17 txs
18 calls
constructor
constructor(uint256 _conversionRate, uint256 _transferDelay, address _baseToken, address _migrationRecorder, address _migrationProcessor)
functions
baseToken
viewfunction baseToken() view returns (address)
conversionRate
viewfunction conversionRate() view returns (uint256)
depositIds
viewfunction depositIds(address, uint256) view returns (uint64)
deposits
viewfunction deposits(uint64) view returns (address recipient, uint256 amount, uint256 baseAmount, uint256 timestamp)
getBaseAmount
viewfunction getBaseAmount(uint256 amount) view returns (uint256)
getDeposit
viewfunction getDeposit(uint64 depositId) view returns (tuple)
getDepositIds
viewfunction getDepositIds(address account) view returns (uint64[])
getDepositStatuses
viewfunction getDepositStatuses() view returns (tuple[])
getDepositStatusIndex
viewfunction getDepositStatusIndex(uint64 depositId) view returns (uint256 statusIndex)
isProcessed
viewfunction isProcessed(uint64 depositId) view returns (bool)
migrationProcessor
viewfunction migrationProcessor() view returns (address)
migrationRecorder
viewfunction migrationRecorder() view returns (address)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
transferDelay
viewfunction transferDelay() view returns (uint256)
acceptOwnership
nonpayablefunction acceptOwnership()
distributeTokens
nonpayablefunction distributeTokens(uint64 depositId)
recordDeposit
nonpayablefunction recordDeposit(uint64 depositId, address recipient, uint256 amount) returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
setMigrationProcessor
nonpayablefunction setMigrationProcessor(address _migrationProcessor)
setMigrationRecorder
nonpayablefunction setMigrationRecorder(address _migrationRecorder)
setTransferDelay
nonpayablefunction setTransferDelay(uint256 _transferDelay)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DistributeTokens
event DistributeTokens(uint64 depositId, address recipient, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
RecordDeposit
event RecordDeposit(uint64 depositId, address recipient, uint256 amount)
SetMigrationProcessor
event SetMigrationProcessor(address migrationProcessor)
SetMigrationRecorder
event SetMigrationRecorder(address migrationRecorder)
SetTransferDelay
event SetTransferDelay(uint256 transferDelay)
errors
MigrationDistributor__DepositExists
error MigrationDistributor__DepositExists(uint64 depositId)
MigrationDistributor__DepositNotFound
error MigrationDistributor__DepositNotFound(uint64 depositId)
MigrationDistributor__OnlyMigrationProcessor
error MigrationDistributor__OnlyMigrationProcessor()
MigrationDistributor__OnlyMigrationRecorder
error MigrationDistributor__OnlyMigrationRecorder()
MigrationDistributor__TokensAlreadyDistributed
error MigrationDistributor__TokensAlreadyDistributed(uint64 depositId)
MigrationDistributor__TransferDelayNotElapsed
error MigrationDistributor__TransferDelayNotElapsed(uint64 depositId)
MigrationDistributor__TransferFailed
error MigrationDistributor__TransferFailed(address account, uint256 amount)
MigrationDistributor__ZeroAddress_BaseToken
error MigrationDistributor__ZeroAddress_BaseToken()
MigrationDistributor__ZeroAddress_MigrationProcessor
error MigrationDistributor__ZeroAddress_MigrationProcessor()
MigrationDistributor__ZeroAddress_MigrationRecorder
error MigrationDistributor__ZeroAddress_MigrationRecorder()
MigrationDistributor__ZeroConversionRate
error MigrationDistributor__ZeroConversionRate()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x608060405234801561001057600080fd5b5060405161114c38038061114c83398101604081905261002f916101c8565b338061005557604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b61005e81610140565b50846000036100805760405163080d85df60e31b815260040160405180910390fd5b6001600160a01b0383166100a757604051637e21fcdf60e01b815260040160405180910390fd5b6001600160a01b0382166100ce5760405163ed421cf760e01b815260040160405180910390fd5b6001600160a01b0381166100f557604051630cb9206f60e01b815260040160405180910390fd5b600680546001600160a01b039485166001600160a01b031991821617909155600480549385169382169390931790925560058054919093169116179055600291909155600355610220565b600180546001600160a01b03191690556101598161015c565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146101c357600080fd5b919050565b600080600080600060a086880312156101e057600080fd5b8551602087015190955093506101f8604087016101ac565b9250610206606087016101ac565b9150610214608087016101ac565b90509295509295909350565b610f1d8061022f6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80639cb5b361116100c3578063c5ebc2f71161007c578063c5ebc2f71461037d578063cacca2381461039d578063d9a862c7146103b0578063e30c3978146103c5578063e5a5edf6146103d6578063f2fde38b146103e957600080fd5b80639cb5b361146102cf578063ae59a6b2146102e2578063ba23c73914610331578063bf3b842814610344578063c55dae6314610357578063c5b662831461036a57600080fd5b80637584307b116101155780637584307b146101c957806379ba5097146101f25780637a22977c146101fa5780637ffdf53e146102385780638c32a2b1146102415780638da5cb5b146102aa57600080fd5b80630a702e8d14610152578063303ed0e91461016e57806336e8c9b31461019957806360dfa498146101ae578063715018a6146101c1575b600080fd5b61015b60035481565b6040519081526020015b60405180910390f35b61018161017c366004610d00565b6103fc565b6040516001600160401b039091168152602001610165565b6101ac6101a7366004610d2a565b610448565b005b6101ac6101bc366004610d43565b61048c565b6101ac6104e2565b61015b6101d7366004610d7c565b6001600160401b03166000908152600a602052604090205490565b6101ac6104f6565b610228610208366004610d7c565b6001600160401b0316600090815260086020526040902060020154151590565b6040519015158152602001610165565b61015b60025481565b61028061024f366004610d7c565b60086020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909184565b604080516001600160a01b0390951685526020850193909352918301526060820152608001610165565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b6101ac6102dd366004610d43565b61053f565b6102f56102f0366004610d7c565b610595565b604051610165919081516001600160a01b0316815260208083015190820152604080830151908201526060918201519181019190915260800190565b6004546102b7906001600160a01b031681565b61015b610352366004610d97565b610620565b6006546102b7906001600160a01b031681565b6101ac610378366004610d7c565b610808565b61039061038b366004610d43565b610aa6565b6040516101659190610dd4565b61015b6103ab366004610d2a565b610b44565b6103b8610b55565b6040516101659190610e20565b6001546001600160a01b03166102b7565b6005546102b7906001600160a01b031681565b6101ac6103f7366004610d43565b610bcd565b6009602052816000526040600020818154811061041857600080fd5b9060005260206000209060049182820401919006600802915091509054906101000a90046001600160401b031681565b610450610c3e565b60038190556040518181527f1dba96e74324cc7cd07d6d79e73423280b665a4b529d13655416430d6a86b57b906020015b60405180910390a150565b610494610c3e565b600580546001600160a01b0319166001600160a01b0383169081179091556040519081527f7b0f19c5817ab8763ea0590e58ad69e55d6e030c8fa4a9c42c145bb5af58661590602001610481565b6104ea610c3e565b6104f46000610c6b565b565b60015433906001600160a01b031681146105335760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61053c81610c6b565b50565b610547610c3e565b600480546001600160a01b0319166001600160a01b0383169081179091556040519081527fe20b7885631b964f0b5b714857aeeabf58aff435d8337f25679927e454ee669290602001610481565b6105c9604051806080016040528060006001600160a01b031681526020016000815260200160008152602001600081525090565b506001600160401b0316600090815260086020908152604091829020825160808101845281546001600160a01b03168152600182015492810192909252600281015492820192909252600390910154606082015290565b6004546000906001600160a01b0316331461064e576040516304c5035360e31b815260040160405180910390fd5b6001600160401b0384166000908152600860205260409020546001600160a01b03161561069957604051636ff1e49160e01b81526001600160401b038516600482015260240161052a565b604080516080810182526001600160a01b03858116808352602080840187815260008587018181524260608089019182526001600160401b038e811680865260088089528c87209b518c546001600160a01b0319169b169a909a178b5595516001808c0191909155935160028b015591516003998a015586845260098652898420805480850182559085528685206004820401805491909a169098026101000a808302199098169785029790971790975560078054848452600a86528984208190558951808b018b52858152808701858152938201835591909352517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909201805491519290971668ffffffffffffffffff1990911617600160401b911515919091021790945584519384528301529181018490527f9745863ff50cc15a6b0f82085f5a73915b700095f34ee2af8416168594ee2152910160405180910390a15050506001600160401b031690565b6005546001600160a01b031633146108335760405163ec9d8d4160e01b815260040160405180910390fd5b6001600160401b038116600090815260086020908152604091829020825160808101845281546001600160a01b0316815260018201549281019290925260028101549282019290925260039182015460608201819052915490916108979190610e85565b4210156108c2576040516367b7dec160e11b81526001600160401b038316600482015260240161052a565b80516001600160a01b03166108f557604051636ac8ec2960e01b81526001600160401b038316600482015260240161052a565b6040810151156109235760405163668c35d560e01b81526001600160401b038316600482015260240161052a565b60006109328260200151610c84565b6001600160401b0384166000908152600860209081526040808320600201849055600a909152902054600780549293509091600191908390811061097857610978610e98565b60009182526020909120018054911515600160401b0268ff000000000000000019909216919091179055600654835160405163a9059cbb60e01b81526001600160a01b0391821660048201526024810185905291169063a9059cbb906044016020604051808303816000875af11580156109f6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1a9190610eae565b610a4c578251604051632d2593d760e11b81526001600160a01b0390911660048201526024810183905260440161052a565b8251604080516001600160401b03871681526001600160a01b03909216602083015281018390527fe5c3c971f703acf6450d605f59282b9163808a24bdf58aa8d2c5e5fd31c9e0c29060600160405180910390a150505050565b6001600160a01b038116600090815260096020908152604091829020805483518184028101840190945280845260609392830182828015610b3857602002820191906000526020600020906000905b82829054906101000a90046001600160401b03166001600160401b031681526020019060080190602082600701049283019260010382029150808411610af55790505b50505050509050919050565b6000610b4f82610c84565b92915050565b60606007805480602002602001604051908101604052809291908181526020016000905b82821015610bc457600084815260209081902060408051808201909152908401546001600160401b0381168252600160401b900460ff16151581830152825260019092019101610b79565b50505050905090565b610bd5610c3e565b600180546001600160a01b0383166001600160a01b03199091168117909155610c066000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000546001600160a01b031633146104f45760405163118cdaa760e01b815233600482015260240161052a565b600180546001600160a01b031916905561053c81610c94565b600060025482610b4f9190610ed0565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b0381168114610cfb57600080fd5b919050565b60008060408385031215610d1357600080fd5b610d1c83610ce4565b946020939093013593505050565b600060208284031215610d3c57600080fd5b5035919050565b600060208284031215610d5557600080fd5b610d5e82610ce4565b9392505050565b80356001600160401b0381168114610cfb57600080fd5b600060208284031215610d8e57600080fd5b610d5e82610d65565b600080600060608486031215610dac57600080fd5b610db584610d65565b9250610dc360208501610ce4565b929592945050506040919091013590565b602080825282518282018190526000918401906040840190835b81811015610e155783516001600160401b0316835260209384019390920191600101610dee565b509095945050505050565b602080825282518282018190526000918401906040840190835b81811015610e1557835180516001600160401b0316845260209081015115158185015290930192604090920191600101610e3a565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b4f57610b4f610e6f565b634e487b7160e01b600052603260045260246000fd5b600060208284031215610ec057600080fd5b81518015158114610d5e57600080fd5b8082028115828204841417610b4f57610b4f610e6f56fea2646970667358221220acb56c0eb337173634cd922a6752830e3696fec84cbc0cfcbd24d1fdf660b0d264736f6c634300081a0033000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000aa5ad1f869b910e5f794b9366e05e5f2cab4bfad0000000000000000000000009e05afca64d1e521c6f8c6496d5f279a526562f000000000000000000000000093c279949f0e854b7cf0bf19074ff79cd03832e8