0 txs
0 calls
constructor
constructor(address _etherFiDataProvider)
functions
etherFiDataProvider
viewfunction etherFiDataProvider() view returns (address)
getDeposit
viewfunction getDeposit(address token) view returns (uint256)
getTxId
purefunction getTxId(bytes32 txHash, address user, address token) pure returns (bytes32)
isTransactionCompleted
viewfunction isTransactionCompleted(bytes32 txHash, address user, address token) view returns (bool)
isTransactionCompletedByTxId
viewfunction isTransactionCompletedByTxId(bytes32 txId) view returns (bool)
paused
viewfunction paused() view returns (bool)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
roleRegistry
viewfunction roleRegistry() view returns (address)
TOP_UP_DEPOSITOR_ROLE
viewfunction TOP_UP_DEPOSITOR_ROLE() view returns (bytes32)
TOP_UP_ROLE
viewfunction TOP_UP_ROLE() view returns (bytes32)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
deposit
nonpayablefunction deposit(address token, uint256 amount)
initialize
nonpayablefunction initialize(address _roleRegistry)
pause
nonpayablefunction pause()
topUpUserSafe
nonpayablefunction topUpUserSafe(bytes32 txHash, address user, uint256 chainId, address token, uint256 amount)
topUpUserSafeBatch
nonpayablefunction topUpUserSafeBatch(bytes32[] txHashes, address[] users, uint256[] chainIds, address[] tokens, uint256[] amounts)
unpause
nonpayablefunction unpause()
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
withdraw
nonpayablefunction withdraw(address token, uint256 amount)
events
Deposit
event Deposit(address indexed token, uint256 amount)
Initialized
event Initialized(uint64 version)
Paused
event Paused(address account)
TopUp
event TopUp(bytes32 indexed txId, address indexed user, address indexed token, bytes32 sourceTxHash, uint256 chainId, uint256 amount)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
Withdrawal
event Withdrawal(address indexed token, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AmountCannotBeZero
error AmountCannotBeZero()
AmountGreaterThanDeposit
error AmountGreaterThanDeposit()
ArrayLengthMismatch
error ArrayLengthMismatch()
BalanceTooLow
error BalanceTooLow()
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExpectedPause
error ExpectedPause()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotARegisteredSafe
error NotARegisteredSafe()
NotInitializing
error NotInitializing()
OnlyRoleRegistryOwner
error OnlyRoleRegistryOwner()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TopUpAlreadyProcessed
error TopUpAlreadyProcessed()
Unauthorized
error Unauthorized()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60c060405230608052348015610013575f5ffd5b50604051611c5f380380611c5f833981016040819052610032916100ff565b6001600160a01b03811660a05261004761004d565b5061012c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561009d5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100fc5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b5f6020828403121561010f575f5ffd5b81516001600160a01b0381168114610125575f5ffd5b9392505050565b60805160a051611afd6101625f395f81816103f10152610d4301525f8181610f8001528181610fa9015261115f0152611afd5ff3fe608060405260043610610110575f3560e01c80636fce8ab21161009d578063c4d66de811610062578063c4d66de81461032f578063d6b18ed51461034e578063e1254fba14610381578063f3fef3a3146103c1578063f9fba81b146103e0575f5ffd5b80636fce8ab21461023f5780638456cb591461027257806385faf8e6146102865780639e784431146102d3578063ad3cb1cc146102f2575f5ffd5b806347e7ef24116100e357806347e7ef24146101a95780634f1ef286146101c857806352d1902d146101db57806355ed3515146101fd5780635c975abb1461021c575f5ffd5b806308c73259146101145780632319a8ce146101455780632b4911e0146101745780633f4ba83a14610195575b5f5ffd5b34801561011f575f5ffd5b50610128610413565b6040516001600160a01b0390911681526020015b60405180910390f35b348015610150575f5ffd5b5061016461015f3660046115fd565b610441565b604051901515815260200161013c565b34801561017f575f5ffd5b5061019361018e36600461163c565b61048c565b005b3480156101a0575f5ffd5b5061019361056d565b3480156101b4575f5ffd5b506101936101c336600461168a565b6105d4565b6101936101d63660046116f9565b610738565b3480156101e6575f5ffd5b506101ef610757565b60405190815260200161013c565b348015610208575f5ffd5b506101ef6102173660046115fd565b610772565b348015610227575f5ffd5b505f516020611ad15f395f51905f525460ff16610164565b34801561024a575f5ffd5b506101ef7f5e4bd437d29fad01c10cdcfff414f0d6b0e84b96d2dade88d780d45b5630696b81565b34801561027d575f5ffd5b506101936107c1565b348015610291575f5ffd5b506101646102a03660046117a0565b5f9081527fcf0121b0f46cee8ebfce652f58f0ad785e4fcd91a62127b83995179fc450fe01602052604090205460ff1690565b3480156102de575f5ffd5b506101936102ed3660046118a8565b610826565b3480156102fd575f5ffd5b50610322604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161013c919061198b565b34801561033a575f5ffd5b506101936103493660046119c0565b6109da565b348015610359575f5ffd5b506101ef7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b34801561038c575f5ffd5b506101ef61039b3660046119c0565b6001600160a01b03165f9081525f516020611ab15f395f51905f52602052604090205490565b3480156103cc575f5ffd5b506101936103db36600461168a565b610ae8565b3480156103eb575f5ffd5b506101287f000000000000000000000000000000000000000000000000000000000000000081565b7fa5586bb7fe6c4d1a576fc53fefe6d5915940638d338769f6905020734977f500546001600160a01b031690565b5f7fcf0121b0f46cee8ebfce652f58f0ad785e4fcd91a62127b83995179fc450fe018161046f868686610772565b815260208101919091526040015f205460ff1690505b9392505050565b610494610c6a565b61049c610c9a565b7f5e4bd437d29fad01c10cdcfff414f0d6b0e84b96d2dade88d780d45b5630696b6104c5610413565b604051632474521560e21b8152600481018390523360248201526001600160a01b0391909116906391d1485490604401602060405180830381865afa158015610510573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053491906119db565b610550576040516282b42960e81b815260040160405180910390fd5b61055d8686868686610d07565b50610566610e7f565b5050505050565b610575610413565b6040516317bf301f60e21b81523360048201526001600160a01b039190911690635efcc07c906024015f6040518083038186803b1580156105b4575f5ffd5b505afa1580156105c6573d5f5f3e3d5ffd5b505050506105d2610ea9565b565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a96105fd610413565b604051632474521560e21b8152600481018390523360248201526001600160a01b0391909116906391d1485490604401602060405180830381865afa158015610648573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061066c91906119db565b610688576040516282b42960e81b815260040160405180910390fd5b815f036106a85760405163d11b25af60e01b815260040160405180910390fd5b6106bd6001600160a01b038416333085610f08565b6001600160a01b0383165f9081525f516020611ab15f395f51905f526020526040812080548492906106f0908490611a0e565b90915550506040518281526001600160a01b038416907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2505050565b610740610f75565b61074982611019565b610753828261108e565b5050565b5f610760611154565b505f516020611a915f395f51905f5290565b5f8383836040516020016107a2939291909283526001600160a01b03918216602084015216604082015260600190565b6040516020818303038152906040528051906020012090509392505050565b6107c9610413565b604051632fd0067b60e21b81523360048201526001600160a01b03919091169063bf4019ec906024015f6040518083038186803b158015610808575f5ffd5b505afa15801561081a573d5f5f3e3d5ffd5b505050506105d261119d565b61082e610c6a565b610836610c9a565b7f5e4bd437d29fad01c10cdcfff414f0d6b0e84b96d2dade88d780d45b5630696b61085f610413565b604051632474521560e21b8152600481018390523360248201526001600160a01b0391909116906391d1485490604401602060405180830381865afa1580156108aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108ce91906119db565b6108ea576040516282b42960e81b815260040160405180910390fd5b85518551811415806108fd575084518114155b80610909575083518114155b80610915575082518114155b156109335760405163512509d360e11b815260040160405180910390fd5b5f5b818110156109cf576109c788828151811061095257610952611a21565b602002602001015188838151811061096c5761096c611a21565b602002602001015188848151811061098657610986611a21565b60200260200101518885815181106109a0576109a0611a21565b60200260200101518886815181106109ba576109ba611a21565b6020026020010151610d07565b600101610935565b505050610566610e7f565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f81158015610a1f5750825b90505f8267ffffffffffffffff166001148015610a3b5750303b155b905081158015610a49575080155b15610a675760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a9157845460ff60401b1916600160401b1785555b610a9a866111e5565b8315610ae057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b610af0610c9a565b33610af9610413565b6001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b34573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b589190611a35565b6001600160a01b031614610b7f5760405163ab1899a760e01b815260040160405180910390fd5b5f516020611ab15f395f51905f525f829003610bae5760405163d11b25af60e01b815260040160405180910390fd5b6001600160a01b0383165f90815260208290526040902054821115610be657604051633983265760e11b815260040160405180910390fd5b6001600160a01b0383165f9081526020829052604081208054849290610c0d908490611a50565b90915550610c1e9050338484611237565b826001600160a01b03167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b6583604051610c5991815260200190565b60405180910390a250610753610e7f565b5f516020611ad15f395f51905f525460ff16156105d25760405163d93c066560e01b815260040160405180910390fd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c15610cda57604051633ee5aeb560e01b815260040160405180910390fd5b6105d260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005b906112d2565b5f516020611ab15f395f51905f525f610d21878786610772565b60405163b7ca418b60e01b81526001600160a01b0388811660048301529192507f00000000000000000000000000000000000000000000000000000000000000009091169063b7ca418b90602401602060405180830381865afa158015610d8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dae91906119db565b610dcb57604051632ab641d560e01b815260040160405180910390fd5b5f81815260018301602052604090205460ff1615610dfc57604051631281610360e11b815260040160405180910390fd5b5f81815260018381016020526040909120805460ff19169091179055610e23868585611237565b60408051888152602081018790529081018490526001600160a01b03808616919088169083907f2ff66106aff37c72533c0686de51adb6d1b86dd1709407dc6a2236533ebe3c199060600160405180910390a450505050505050565b6105d25f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00610d01565b610eb16112d9565b5f516020611ad15f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b6040516001600160a01b038481166024830152838116604483015260648201839052610f6f9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611308565b50505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610ffb57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fef5f516020611a915f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156105d25760405163703e46dd60e11b815260040160405180910390fd5b5f7fa5586bb7fe6c4d1a576fc53fefe6d5915940638d338769f6905020734977f5008054604051634766d28760e01b81523360048201529192506001600160a01b031690634766d287906024015f6040518083038186803b15801561107c575f5ffd5b505afa158015610ae0573d5f5f3e3d5ffd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156110e8575060408051601f3d908101601f191682019092526110e591810190611a63565b60015b61111557604051634c9c8ce360e01b81526001600160a01b03831660048201526024015b60405180910390fd5b5f516020611a915f395f51905f52811461114557604051632a87526960e21b81526004810182905260240161110c565b61114f8383611374565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105d25760405163703e46dd60e11b815260040160405180910390fd5b6111a5610c6a565b5f516020611ad15f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833610eea565b6111ed6113c9565b7fa5586bb7fe6c4d1a576fc53fefe6d5915940638d338769f6905020734977f50080546001600160a01b0319166001600160a01b03831617815561122f611412565b61075361141a565b6040516370a0823160e01b815230600482015281906001600160a01b038416906370a0823190602401602060405180830381865afa15801561127b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061129f9190611a63565b10156112be576040516351940b3960e11b815260040160405180910390fd5b61114f6001600160a01b038316848361143a565b80825d5050565b5f516020611ad15f395f51905f525460ff166105d257604051638dfc202b60e01b815260040160405180910390fd5b5f5f60205f8451602086015f885af180611327576040513d5f823e3d81fd5b50505f513d9150811561133e57806001141561134b565b6001600160a01b0384163b155b15610f6f57604051635274afe760e01b81526001600160a01b038516600482015260240161110c565b61137d8261146b565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156113c15761114f82826114ce565b610753611542565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166105d257604051631afcd79f60e31b815260040160405180910390fd5b6105d26113c9565b6114226113c9565b5f516020611ad15f395f51905f52805460ff19169055565b6040516001600160a01b0383811660248301526044820183905261114f91859182169063a9059cbb90606401610f3d565b806001600160a01b03163b5f036114a057604051634c9c8ce360e01b81526001600160a01b038216600482015260240161110c565b5f516020611a915f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b0316846040516114ea9190611a7a565b5f60405180830381855af49150503d805f8114611522576040519150601f19603f3d011682016040523d82523d5f602084013e611527565b606091505b5091509150611537858383611561565b925050505b92915050565b34156105d25760405163b398979f60e01b815260040160405180910390fd5b60608261157657611571826115bd565b610485565b815115801561158d57506001600160a01b0384163b155b156115b657604051639996b31560e01b81526001600160a01b038516600482015260240161110c565b5080610485565b8051156115cd5780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b03811681146115e6575f5ffd5b5f5f5f6060848603121561160f575f5ffd5b833592506020840135611621816115e9565b91506040840135611631816115e9565b809150509250925092565b5f5f5f5f5f60a08688031215611650575f5ffd5b853594506020860135611662816115e9565b9350604086013592506060860135611679816115e9565b949793965091946080013592915050565b5f5f6040838503121561169b575f5ffd5b82356116a6816115e9565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156116f1576116f16116b4565b604052919050565b5f5f6040838503121561170a575f5ffd5b8235611715816115e9565b9150602083013567ffffffffffffffff811115611730575f5ffd5b8301601f81018513611740575f5ffd5b803567ffffffffffffffff81111561175a5761175a6116b4565b61176d601f8201601f19166020016116c8565b818152866020838501011115611781575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f602082840312156117b0575f5ffd5b5035919050565b5f67ffffffffffffffff8211156117d0576117d06116b4565b5060051b60200190565b5f82601f8301126117e9575f5ffd5b81356117fc6117f7826117b7565b6116c8565b8082825260208201915060208360051b86010192508583111561181d575f5ffd5b602085015b8381101561183a578035835260209283019201611822565b5095945050505050565b5f82601f830112611853575f5ffd5b81356118616117f7826117b7565b8082825260208201915060208360051b860101925085831115611882575f5ffd5b602085015b8381101561183a57803561189a816115e9565b835260209283019201611887565b5f5f5f5f5f60a086880312156118bc575f5ffd5b853567ffffffffffffffff8111156118d2575f5ffd5b6118de888289016117da565b955050602086013567ffffffffffffffff8111156118fa575f5ffd5b61190688828901611844565b945050604086013567ffffffffffffffff811115611922575f5ffd5b61192e888289016117da565b935050606086013567ffffffffffffffff81111561194a575f5ffd5b61195688828901611844565b925050608086013567ffffffffffffffff811115611972575f5ffd5b61197e888289016117da565b9150509295509295909350565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f602082840312156119d0575f5ffd5b8135610485816115e9565b5f602082840312156119eb575f5ffd5b81518015158114610485575f5ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561153c5761153c6119fa565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611a45575f5ffd5b8151610485816115e9565b8181038181111561153c5761153c6119fa565b5f60208284031215611a73575f5ffd5b5051919050565b5f82518060208501845e5f92019182525091905056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbccf0121b0f46cee8ebfce652f58f0ad785e4fcd91a62127b83995179fc450fe00cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a164736f6c634300081c000a0000000000000000000000004a9c44c97bbf6079db37c4769aebe425bbcdd09a