0 txs
0 calls
constructor
constructor()
functions
allowedToken
viewfunction allowedToken(bytes32) view returns (address)
crossChainManagerAddress
viewfunction crossChainManagerAddress() view returns (address)
depositId
viewfunction depositId() view returns (uint64)
getAllAllowedBroker
viewfunction getAllAllowedBroker() view returns (bytes32[])
getAllAllowedToken
viewfunction getAllAllowedToken() view returns (bytes32[])
getAllowedBroker
viewfunction getAllowedBroker(bytes32 _brokerHash) view returns (bool)
getAllowedToken
viewfunction getAllowedToken(bytes32 _tokenHash) view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
changeTokenAddressAndAllow
nonpayablefunction changeTokenAddressAndAllow(bytes32 _tokenHash, address _tokenAddress)
deposit
nonpayablefunction deposit(tuple data)
depositTo
nonpayablefunction depositTo(address receiver, tuple data)
emergencyPause
nonpayablefunction emergencyPause()
emergencyUnpause
nonpayablefunction emergencyUnpause()
initialize
nonpayablefunction initialize()
renounceOwnership
nonpayablefunction renounceOwnership()
setAllowedBroker
nonpayablefunction setAllowedBroker(bytes32 _brokerHash, bool _allowed)
setAllowedToken
nonpayablefunction setAllowedToken(bytes32 _tokenHash, bool _allowed)
setCrossChainManager
nonpayablefunction setCrossChainManager(address _crossChainManagerAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdraw
nonpayablefunction withdraw(tuple data)
events
AccountDeposit
event AccountDeposit(bytes32 indexed accountId, address indexed userAddress, uint64 indexed depositNonce, bytes32 tokenHash, uint128 tokenAmount)
AccountDepositTo
event AccountDepositTo(bytes32 indexed accountId, address indexed userAddress, uint64 indexed depositNonce, bytes32 tokenHash, uint128 tokenAmount)
AccountWithdraw
event AccountWithdraw(bytes32 indexed accountId, uint64 indexed withdrawNonce, bytes32 brokerHash, address sender, address receiver, bytes32 tokenHash, uint128 tokenAmount, uint128 fee)
ChangeCrossChainManager
event ChangeCrossChainManager(address oldAddress, address newAddress)
ChangeTokenAddressAndAllow
event ChangeTokenAddressAndAllow(bytes32 indexed _tokenHash, address _tokenAddress)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
SetAllowedBroker
event SetAllowedBroker(bytes32 indexed _brokerHash, bool _allowed)
SetAllowedToken
event SetAllowedToken(bytes32 indexed _tokenHash, bool _allowed)
Unpaused
event Unpaused(address account)
errors
AccountIdInvalid
error AccountIdInvalid()
AddressZero
error AddressZero()
BalanceNotEnough
error BalanceNotEnough(uint256 balance, uint128 amount)
BrokerNotAllowed
error BrokerNotAllowed()
EnumerableSetError
error EnumerableSetError()
OnlyCrossChainManagerCanCall
error OnlyCrossChainManagerCanCall()
TokenNotAllowed
error TokenNotAllowed()
creation bytecode
0x608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b61220080620000ed6000396000f3fe608060405234801561001057600080fd5b50600436106101775760003560e01c80638da5cb5b116100d8578063ba46a1771161008c578063d6aeb43111610066578063d6aeb43114610349578063df0f4ae714610351578063f2fde38b1461036457600080fd5b8063ba46a17714610310578063c7eeb9c214610323578063c9fc87971461033657600080fd5b80639852099c116100bd5780639852099c1461029857806398c2d086146102dd578063b182dc69146102f057600080fd5b80638da5cb5b146102655780639305a91a1461028357600080fd5b80635c975abb1161012f578063681d527c11610114578063681d527c146101fa578063715018a6146102555780638129fc1c1461025d57600080fd5b80635c975abb146101dc5780635e1eb4ce146101e757600080fd5b8063322dda6d11610160578063322dda6d146101b95780634a4e3bd5146101cc57806351858e27146101d457600080fd5b806311e2e8c21461017c578063258082f514610191575b600080fd5b61018f61018a366004611db4565b610377565b005b6101a461019f366004611de0565b610473565b60405190151581526020015b60405180910390f35b61018f6101c7366004611e11565b610486565b61018f6107d3565b61018f6107ed565b60335460ff166101a4565b61018f6101f5366004611e2d565b610805565b610230610208366004611de0565b609c6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b61018f6108f5565b61018f610907565b60655473ffffffffffffffffffffffffffffffffffffffff16610230565b61028b610a8c565b6040516101b09190611e48565b6097546102c49074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101b0565b61018f6102eb366004611e8c565b610a9d565b6097546102309073ffffffffffffffffffffffffffffffffffffffff1681565b61018f61031e366004611e9f565b610d03565b610230610331366004611de0565b61104b565b61018f610344366004611ed8565b611093565b61028b611196565b61018f61035f366004611ed8565b6111a2565b61018f610372366004611e2d565b61123d565b61037f6112d7565b73ffffffffffffffffffffffffffffffffffffffff81166103cc576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152609c6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8316179055610423609a8361133e565b5060405173ffffffffffffffffffffffffffffffffffffffff8216815282907fdd5c3f86e468e8e3d0da2fcfd07779497eec7c153f181f4859a704d66e2444f89060200160405180910390a25050565b6000610480609883611351565b92915050565b61048e611369565b61049d609a6040830135611351565b6104d3576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104e260986020830135611351565b610518576040517f59d9b86300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604080513360208281019190915280840135828401528251808303840181526060909201909252805191012081351461057d576040517fc7ee9ce600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808201356000908152609c602052205473ffffffffffffffffffffffffffffffffffffffff166105eb33306105ba6080860160608701611f28565b73ffffffffffffffffffffffffffffffffffffffff85169291906fffffffffffffffffffffffffffffffff166113bc565b60006040518060c00160405280846000013581526020013373ffffffffffffffffffffffffffffffffffffffff16815260200184602001358152602001846040013581526020018460600160208101906106459190611f28565b6fffffffffffffffffffffffffffffffff16815260200161066461149e565b67ffffffffffffffff908116909152609754604080517fa8f0d07000000000000000000000000000000000000000000000000000000000815284516004820152602085015173ffffffffffffffffffffffffffffffffffffffff90811660248301529185015160448201526060850151606482015260808501516fffffffffffffffffffffffffffffffff16608482015260a085015190931660a4840152929350919091169063a8f0d0709060c401600060405180830381600087803b15801561072d57600080fd5b505af1158015610741573d6000803e3d6000fd5b505060975474010000000000000000000000000000000000000000900467ffffffffffffffff16915033905084357f51728ea86d7100caac5bc6bd1be247a832a5099c23b6d6efccf7c2de577a799660408701356107a56080890160608a01611f28565b604080519283526fffffffffffffffffffffffffffffffff90911660208301520160405180910390a4505050565b6107db6114ec565b6107e36112d7565b6107eb61153e565b565b6107f5611369565b6107fd6112d7565b6107eb6115bb565b61080d6112d7565b73ffffffffffffffffffffffffffffffffffffffff811661085a576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097546040805173ffffffffffffffffffffffffffffffffffffffff928316815291831660208301527f171f28064de7df65eb845ec06e0161ab312efa47a10fee262fab3dac2f33e80a910160405180910390a1609780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6108fd6112d7565b6107eb6000611616565b600054610100900460ff16158080156109275750600054600160ff909116105b806109415750303b158015610941575060005460ff166001145b6109b85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610a1657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610a1e61168d565b610a26611712565b8015610a8957600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50565b6060610a98609a611797565b905090565b60975473ffffffffffffffffffffffffffffffffffffffff163314610aee576040517f833d33e700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610af6611369565b6097546040517f98c2d08600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116906398c2d08690610b4c908490600401611f5b565b600060405180830381600087803b158015610b6657600080fd5b505af1158015610b7a573d6000803e3d6000fd5b505050506040808201356000908152609c6020529081205473ffffffffffffffffffffffffffffffffffffffff1690610bb960a0840160808501611f28565b610bc96080850160608601611f28565b610bd39190612040565b9050610c18610be860e0850160c08601611e2d565b73ffffffffffffffffffffffffffffffffffffffff8416906fffffffffffffffffffffffffffffffff84166117a4565b610c29610100840160e08501612069565b67ffffffffffffffff1683357f732a6fe7863c74cbd74d2f2b1e3c27304465e354a9d38f03bf10c8436a70aa276020860135610c6b60c0880160a08901611e2d565b610c7b60e0890160c08a01611e2d565b6040890135610c9060808b0160608c01611f28565b610ca060a08c0160808d01611f28565b6040805196875273ffffffffffffffffffffffffffffffffffffffff9586166020880152949093169385019390935260608401526fffffffffffffffffffffffffffffffff91821660808401521660a082015260c00160405180910390a3505050565b610d0b611369565b610d1a609a6040830135611351565b610d50576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d5f60986020830135611351565b610d95576040517f59d9b86300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602082810191909152808401358284015282518083038401815260609092019092528051910120813514610e10576040517fc7ee9ce600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040808201356000908152609c602052205473ffffffffffffffffffffffffffffffffffffffff16610e4d33306105ba6080860160608701611f28565b60006040518060c00160405280846000013581526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018460200135815260200184604001358152602001846060016020810190610ea79190611f28565b6fffffffffffffffffffffffffffffffff168152602001610ec661149e565b67ffffffffffffffff908116909152609754604080517fa8f0d07000000000000000000000000000000000000000000000000000000000815284516004820152602085015173ffffffffffffffffffffffffffffffffffffffff90811660248301529185015160448201526060850151606482015260808501516fffffffffffffffffffffffffffffffff16608482015260a085015190931660a4840152929350919091169063a8f0d0709060c401600060405180830381600087803b158015610f8f57600080fd5b505af1158015610fa3573d6000803e3d6000fd5b505060975474010000000000000000000000000000000000000000900467ffffffffffffffff1691505073ffffffffffffffffffffffffffffffffffffffff851684357f11f843b2ed43e9b4b568b4dff0c777a6c5ca538b4115a6149f28bce4bea90148604087013561101c6080890160608a01611f28565b604080519283526fffffffffffffffffffffffffffffffff90911660208301520160405180910390a450505050565b6000611058609a83611351565b1561108657506000908152609c602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b506000919050565b919050565b61109b6112d7565b60008115611110576000838152609c602052604090205473ffffffffffffffffffffffffffffffffffffffff166110fe576040517f9fabe1c100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611109609a8461133e565b905061111e565b61111b609a846117ff565b90505b80611155576040517fa65b249b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b827f75982e4722797db7bbfd209216413b5edd134de5cd687de171dd12deeee642ff83604051611189911515815260200190565b60405180910390a2505050565b6060610a986098611797565b6111aa6112d7565b600081156111c4576111bd60988461133e565b90506111d2565b6111cf6098846117ff565b90505b80611209576040517fa65b249b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b827fe2004c296ac9fa6b9b57d55d8bbe257982d1111c229081bb672d5ddbec7f260683604051611189911515815260200190565b6112456112d7565b73ffffffffffffffffffffffffffffffffffffffff81166112ce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016109af565b610a8981611616565b60655473ffffffffffffffffffffffffffffffffffffffff1633146107eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016109af565b600061134a838361180b565b9392505050565b6000818152600183016020526040812054151561134a565b60335460ff16156107eb5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a207061757365640000000000000000000000000000000060448201526064016109af565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526114989085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261185a565b50505050565b60006097601481819054906101000a900467ffffffffffffffff166114c290612084565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055905090565b60335460ff166107eb5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f742070617573656400000000000000000000000060448201526064016109af565b6115466114ec565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6115c3611369565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115913390565b6065805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661170a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109af565b6107eb61194c565b600054610100900460ff1661178f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109af565b6107eb6119d2565b6060600061134a83611a79565b60405173ffffffffffffffffffffffffffffffffffffffff83166024820152604481018290526117fa9084907fa9059cbb0000000000000000000000000000000000000000000000000000000090606401611416565b505050565b600061134a8383611ad5565b600081815260018301602052604081205461185257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610480565b506000610480565b60006118bc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611bcf9092919063ffffffff16565b8051909150156117fa57808060200190518101906118da91906120ab565b6117fa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016109af565b600054610100900460ff166119c95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109af565b6107eb33611616565b600054610100900460ff16611a4f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016109af565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b606081600001805480602002602001604051908101604052809291908181526020018280548015611ac957602002820191906000526020600020905b815481526020019060010190808311611ab5575b50505050509050919050565b60008181526001830160205260408120548015611bbe576000611af96001836120c8565b8554909150600090611b0d906001906120c8565b9050818114611b72576000866000018281548110611b2d57611b2d6120db565b9060005260206000200154905080876000018481548110611b5057611b506120db565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611b8357611b8361210a565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610480565b6000915050610480565b5092915050565b6060611bde8484600085611be6565b949350505050565b606082471015611c5e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016109af565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611c87919061215d565b60006040518083038185875af1925050503d8060008114611cc4576040519150601f19603f3d011682016040523d82523d6000602084013e611cc9565b606091505b5091509150611cda87838387611ce5565b979650505050505050565b60608315611d61578251600003611d5a5773ffffffffffffffffffffffffffffffffffffffff85163b611d5a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016109af565b5081611bde565b611bde8383815115611d765781518083602001fd5b8060405162461bcd60e51b81526004016109af9190612179565b803573ffffffffffffffffffffffffffffffffffffffff8116811461108e57600080fd5b60008060408385031215611dc757600080fd5b82359150611dd760208401611d90565b90509250929050565b600060208284031215611df257600080fd5b5035919050565b600060808284031215611e0b57600080fd5b50919050565b600060808284031215611e2357600080fd5b61134a8383611df9565b600060208284031215611e3f57600080fd5b61134a82611d90565b6020808252825182820181905260009190848201906040850190845b81811015611e8057835183529284019291840191600101611e64565b50909695505050505050565b60006101008284031215611e0b57600080fd5b60008060a08385031215611eb257600080fd5b611ebb83611d90565b9150611dd78460208501611df9565b8015158114610a8957600080fd5b60008060408385031215611eeb57600080fd5b823591506020830135611efd81611eca565b809150509250929050565b80356fffffffffffffffffffffffffffffffff8116811461108e57600080fd5b600060208284031215611f3a57600080fd5b61134a82611f08565b803567ffffffffffffffff8116811461108e57600080fd5b8135815260208083013590820152604080830135908201526101008101611f8460608401611f08565b6fffffffffffffffffffffffffffffffff808216606085015280611faa60808701611f08565b1660808501525050611fbe60a08401611d90565b73ffffffffffffffffffffffffffffffffffffffff80821660a085015280611fe860c08701611d90565b1660c0850152505067ffffffffffffffff61200560e08501611f43565b1660e083015292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6fffffffffffffffffffffffffffffffff828116828216039080821115611bc857611bc8612011565b60006020828403121561207b57600080fd5b61134a82611f43565b600067ffffffffffffffff8083168181036120a1576120a1612011565b6001019392505050565b6000602082840312156120bd57600080fd5b815161134a81611eca565b8181038181111561048057610480612011565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60005b8381101561215457818101518382015260200161213c565b50506000910152565b6000825161216f818460208701612139565b9190910192915050565b6020815260008251806020840152612198816040850160208701612139565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220d2f1edf9bae107adbb4d61dc35e7f5d37d8a08994dc5905e2913d333ded7855a64736f6c63430008130033