48 txs
16.6k calls
constructor
constructor(address bridge_)
functions
baseFees
viewfunction baseFees(uint64, address) view returns (uint256)
bridge
viewfunction bridge() view returns (address)
calculateCost
viewfunction calculateCost(address payToken, uint256 dataLength, uint64 chainIdTo, address sender) view returns (uint256 amountToPay)
castToAddress
purefunction castToAddress(bytes32 x) pure returns (address)
castToBytes32
purefunction castToBytes32(address a) pure returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
discounts
viewfunction discounts(address) view returns (uint256)
getNonce
viewfunction getNonce() view returns (uint256 nonce)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
OPERATOR_ROLE
viewfunction OPERATOR_ROLE() view returns (bytes32)
rates
viewfunction rates(uint64, address) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
treasury
viewfunction treasury() view returns (address)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
sendData
payablefunction sendData(bytes data, address to, uint64 chainIdTo, address payToken) payable
setBaseFee
nonpayablefunction setBaseFee(tuple[] baseFees_)
setBridge
nonpayablefunction setBridge(address bridge_)
setDiscount
nonpayablefunction setDiscount(address caller, uint256 discount)
setRate
nonpayablefunction setRate(tuple[] rates_)
setTreasury
nonpayablefunction setTreasury(address treasury_)
withdrawFees
nonpayablefunction withdrawFees(address token, uint256 amount)
events
BaseFeeSet
event BaseFeeSet(uint64 chainId, address payToken, uint256 fee)
BridgeSet
event BridgeSet(address bridge)
CrossChainCallPaid
event CrossChainCallPaid(address indexed sender, address indexed token, uint256 transactionCost)
DiscountSet
event DiscountSet(address caller, uint256 discount)
FeesWithdrawn
event FeesWithdrawn(address token, uint256 amount, address to)
RateSet
event RateSet(uint64 chainId, address payToken, uint256 rate)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TreasurySet
event TreasurySet(address treasury)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200223d3803806200223d83398101604081905262000034916200021d565b600160025562000046600033620000c7565b6001600160a01b038116620000a15760405162461bcd60e51b815260206004820152601860248201527f476174654b65657065723a207a65726f20616464726573730000000000000000604482015260640160405180910390fd5b600380546001600160a01b0319166001600160a01b03929092169190911790556200024f565b620000de82826200010a60201b620010011760201c565b60008281526001602090815260409091206200010591839062001085620001ab821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001a7576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001663390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620001c2836001600160a01b038416620001cb565b90505b92915050565b60008181526001830160205260408120546200021457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001c5565b506000620001c5565b6000602082840312156200023057600080fd5b81516001600160a01b03811681146200024857600080fd5b9392505050565b611fde806200025f6000396000f3fe6080604052600436106101815760003560e01c806361d027b3116100d1578063ad3b1b471161008a578063d547741f11610064578063d547741f146104b2578063e78cea92146104d2578063f0f44260146104f2578063f5b541a61461051257600080fd5b8063ad3b1b471461045d578063ca15c8731461047d578063d087d2881461049d57600080fd5b806361d027b3146103b557806374107dec146103d55780638dd14802146103e85780639010d07c1461040857806391d1485414610428578063a217fddf1461044857600080fd5b806329bb74c81161013e57806336568abe1161011857806336568abe146102fe5780633e7e25c11461031e57806356847eed14610345578063569459161461037d57600080fd5b806329bb74c81461029e5780632de481e3146102be5780632f2ff15d146102de57600080fd5b806301ffc9a71461018657806302560c5b146101bb5780630e03e490146101dd5780630fff4474146102135780631e92ffe51461024e578063248a9ca31461026e575b600080fd5b34801561019257600080fd5b506101a66101a1366004611938565b610534565b60405190151581526020015b60405180910390f35b3480156101c757600080fd5b506101db6101d6366004611a7f565b61055f565b005b3480156101e957600080fd5b506101fb6101f8366004611ac8565b90565b6040516001600160a01b0390911681526020016101b2565b34801561021f57600080fd5b5061024061022e366004611ae1565b60066020526000908152604090205481565b6040519081526020016101b2565b34801561025a57600080fd5b506101db610269366004611afc565b610655565b34801561027a57600080fd5b50610240610289366004611ac8565b60009081526020819052604090206001015490565b3480156102aa57600080fd5b506102406102b9366004611b26565b61071d565b3480156102ca57600080fd5b506101db6102d9366004611a7f565b610842565b3480156102ea57600080fd5b506101db6102f9366004611b73565b610933565b34801561030a57600080fd5b506101db610319366004611b73565b610958565b34801561032a57600080fd5b50610240610339366004611ae1565b6001600160a01b031690565b34801561035157600080fd5b50610240610360366004611b9f565b600460209081526000928352604080842090915290825290205481565b34801561038957600080fd5b50610240610398366004611b9f565b600560209081526000928352604080842090915290825290205481565b3480156103c157600080fd5b506007546101fb906001600160a01b031681565b6101db6103e3366004611bc9565b6109d6565b3480156103f457600080fd5b506101db610403366004611ae1565b610c0c565b34801561041457600080fd5b506101fb610423366004611c6c565b610cbe565b34801561043457600080fd5b506101a6610443366004611b73565b610cdd565b34801561045457600080fd5b50610240600081565b34801561046957600080fd5b506101db610478366004611afc565b610d06565b34801561048957600080fd5b50610240610498366004611ac8565b610ea4565b3480156104a957600080fd5b50610240610ebb565b3480156104be57600080fd5b506101db6104cd366004611b73565b610f2c565b3480156104de57600080fd5b506003546101fb906001600160a01b031681565b3480156104fe57600080fd5b506101db61050d366004611ae1565b610f51565b34801561051e57600080fd5b50610240600080516020611f8983398151915281565b60006001600160e01b03198216635a05180f60e01b148061055957506105598261109a565b92915050565b600080516020611f89833981519152610577816110cf565b60005b825181101561065057600083828151811061059757610597611c8e565b60209081029190910181015160408082018051835167ffffffffffffffff1660009081526005865283812085870180516001600160a01b0316835296528390205582519351905191519294507f0adecf987f53689a164e57450038e59d9ebbd56448b098f9f90664b03ded7bec936106379390929067ffffffffffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60405180910390a15061064981611cba565b905061057a565b505050565b600080516020611f8983398151915261066d816110cf565b6127108211156106c45760405162461bcd60e51b815260206004820152601a60248201527f476174654b65657065723a2077726f6e6720646973636f756e7400000000000060448201526064015b60405180910390fd5b6001600160a01b038316600081815260066020908152604091829020859055815192835282018490527f637bd656a37735385d7cdf9d178f011d76219f7bce376e3b4af724f636ccaba7910160405180910390a1505050565b67ffffffffffffffff821660008181526004602090815260408083206001600160a01b03891680855290835281842054948452600583528184209084529091528120549091908183036107b25760405162461bcd60e51b815260206004820152601c60248201527f476174654b65657065723a206261736520666565206e6f74207365740000000060448201526064016106bb565b806000036108025760405162461bcd60e51b815260206004820152601860248201527f476174654b65657065723a2072617465206e6f7420736574000000000000000060448201526064016106bb565b61083761080f8288611cd3565b6108199084611cea565b6001600160a01b0386166000908152600660205260409020546110dc565b979650505050505050565b600080516020611f8983398151915261085a816110cf565b60005b825181101561065057600083828151811061087a5761087a611c8e565b60209081029190910181015160408082018051835167ffffffffffffffff1660009081526004865283812085870180516001600160a01b0316835296528390205582519351905191519294507ff01d94c0ef9a14a0739f8de5ca2a540864c4a6a10c3b7961cb89ffaf2e1226329361091a9390929067ffffffffffffffff9390931683526001600160a01b03919091166020830152604082015260600190565b60405180910390a15061092c81611cba565b905061085d565b60008281526020819052604090206001015461094e816110cf565b610650838361115c565b6001600160a01b03811633146109c85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016106bb565b6109d2828261117e565b5050565b6109de6111a0565b60006109ec8286853361071d565b90506109f882826111f7565b600354604051623f675f60e91b81523360048201526000916001600160a01b031690637ecebe0090602401602060405180830381865afa158015610a40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a649190611cfd565b604080513360208083019190915281830184905267ffffffffffffffff881660608301524660808301526001600160a01b03891660a0808401919091528351808403909101815260c09092019092528051910120909150600063b4ccca0d60e01b610ad26004838b8d611d16565b610adb91611d40565b6040516001600160e01b0319909116602482015233604482015246606482015260840160408051601f19818403018152918152602080830180516001600160e01b03166001600160e01b03199095169490941790935251909250600091610b48918c918c91869101611dc0565b60408051601f19818403018152600354608084018352868452602084018290526001600160a01b038c81168585015267ffffffffffffffff8c166060860152925163e586447f60e01b8152919450919091169163e586447f91610bb2919033908990600401611e08565b6020604051808303816000875af1158015610bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf59190611e60565b505050505050610c056001600255565b5050505050565b6000610c17816110cf565b6001600160a01b038216610c685760405162461bcd60e51b8152602060048201526018602482015277476174654b65657065723a207a65726f206164647265737360401b60448201526064016106bb565b600380546001600160a01b0319166001600160a01b0384169081179091556040519081527fa49730bff544fd0b716395c592e39c6fd2d2481a19b9229b5b240483db95a495906020015b60405180910390a15050565b6000828152600160205260408120610cd690836112ac565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600080516020611f89833981519152610d1e816110cf565b610d266111a0565b6007546001600160a01b0316610d7e5760405162461bcd60e51b815260206004820152601c60248201527f476174654b65657065723a207472656173757279206e6f74207365740000000060448201526064016106bb565b6001600160a01b038316610e35576007546040516000916001600160a01b03169084908381818185875af1925050503d8060008114610dd9576040519150601f19603f3d011682016040523d82523d6000602084013e610dde565b606091505b5050905080610e2f5760405162461bcd60e51b815260206004820181905260248201527f476174654b65657065723a206661696c656420746f2073656e6420457468657260448201526064016106bb565b50610e4d565b600754610e4d9084906001600160a01b0316846112b8565b600754604080516001600160a01b0386811682526020820186905290921682820152517f87044da2612407bc001bb0985725dcc651a0dc71eaabfd1d7e8617ca85a8c19c9181900360600190a16106506001600255565b60008181526001602052604081206105599061131b565b600354604051623f675f60e91b81523360048201526000916001600160a01b031690637ecebe0090602401602060405180830381865afa158015610f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f279190611cfd565b905090565b600082815260208190526040902060010154610f47816110cf565b610650838361117e565b6000610f5c816110cf565b6001600160a01b038216610fad5760405162461bcd60e51b8152602060048201526018602482015277476174654b65657065723a207a65726f206164647265737360401b60448201526064016106bb565b600780546001600160a01b0319166001600160a01b0384811691909117909155600354604051911681527f3c864541ef71378c6229510ed90f376565ee42d9c5e0904a984a9e863e6db44f90602001610cb2565b61100b8282610cdd565b6109d2576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556110413390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610cd6836001600160a01b038416611325565b60006001600160e01b03198216637965db0b60e01b148061055957506301ffc9a760e01b6001600160e01b0319831614610559565b6110d98133611374565b50565b6000600a83101561112f5760405162461bcd60e51b815260206004820152601f60248201527f476174654b65657065723a20616d6f756e7420697320746f6f20736d616c6c0060448201526064016106bb565b600061271061113e8486611cd3565b6111489190611e82565b90506111548185611ea4565b949350505050565b6111668282611001565b60008281526001602052604090206106509082611085565b61118882826113cd565b60008281526001602052604090206106509082611432565b60028054036111f15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106bb565b60028055565b6040518181526001600160a01b0383169033907f143963faf991902e2924cc3beb9697c8313703db6f5142bb7bd6716752d7f5f09060200160405180910390a36001600160a01b0382166112a057803410156109d25760405162461bcd60e51b815260206004820152602260248201527f476174654b65657065723a20696e76616c6964207061796d656e7420616d6f756044820152611b9d60f21b60648201526084016106bb565b6109d282333084611447565b6000610cd68383611485565b6040516001600160a01b03831660248201526044810182905261065090849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526114af565b6000610559825490565b600081815260018301602052604081205461136c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610559565b506000610559565b61137e8282610cdd565b6109d25761138b81611584565b611396836020611596565b6040516020016113a7929190611eb7565b60408051601f198184030181529082905262461bcd60e51b82526106bb91600401611f2c565b6113d78282610cdd565b156109d2576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610cd6836001600160a01b038416611732565b6040516001600160a01b038085166024830152831660448201526064810182905261147f9085906323b872dd60e01b906084016112e4565b50505050565b600082600001828154811061149c5761149c611c8e565b9060005260206000200154905092915050565b6000611504826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166118259092919063ffffffff16565b90508051600014806115255750808060200190518101906115259190611e60565b6106505760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106bb565b60606105596001600160a01b03831660145b606060006115a5836002611cd3565b6115b0906002611cea565b67ffffffffffffffff8111156115c8576115c8611962565b6040519080825280601f01601f1916602001820160405280156115f2576020820181803683370190505b509050600360fc1b8160008151811061160d5761160d611c8e565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061163c5761163c611c8e565b60200101906001600160f81b031916908160001a9053506000611660846002611cd3565b61166b906001611cea565b90505b60018111156116e3576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061169f5761169f611c8e565b1a60f81b8282815181106116b5576116b5611c8e565b60200101906001600160f81b031916908160001a90535060049490941c936116dc81611f3f565b905061166e565b508315610cd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016106bb565b6000818152600183016020526040812054801561181b576000611756600183611ea4565b855490915060009061176a90600190611ea4565b90508181146117cf57600086600001828154811061178a5761178a611c8e565b90600052602060002001549050808760000184815481106117ad576117ad611c8e565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806117e0576117e0611f56565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610559565b6000915050610559565b6060611154848460008585600080866001600160a01b0316858760405161184c9190611f6c565b60006040518083038185875af1925050503d8060008114611889576040519150601f19603f3d011682016040523d82523d6000602084013e61188e565b606091505b50915091506108378783838760608315611909578251600003611902576001600160a01b0385163b6119025760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106bb565b5081611154565b611154838381511561191e5781518083602001fd5b8060405162461bcd60e51b81526004016106bb9190611f2c565b60006020828403121561194a57600080fd5b81356001600160e01b031981168114610cd657600080fd5b634e487b7160e01b600052604160045260246000fd5b803567ffffffffffffffff8116811461199057600080fd5b919050565b80356001600160a01b038116811461199057600080fd5b600067ffffffffffffffff808411156119c7576119c7611962565b60408051601f19603f8760051b0116810181811084821117156119ec576119ec611962565b825285815292506060602080850190828802870189811115611a0d57600080fd5b875b81811015611a715784818c031215611a275760008081fd5b85518581018181108982111715611a4057611a40611962565b8752611a4b82611978565b8152611a58848301611995565b8185015281870135878201528452928201928401611a0f565b505050505050509392505050565b600060208284031215611a9157600080fd5b813567ffffffffffffffff811115611aa857600080fd5b8201601f81018413611ab957600080fd5b611154848235602084016119ac565b600060208284031215611ada57600080fd5b5035919050565b600060208284031215611af357600080fd5b610cd682611995565b60008060408385031215611b0f57600080fd5b611b1883611995565b946020939093013593505050565b60008060008060808587031215611b3c57600080fd5b611b4585611995565b935060208501359250611b5a60408601611978565b9150611b6860608601611995565b905092959194509250565b60008060408385031215611b8657600080fd5b82359150611b9660208401611995565b90509250929050565b60008060408385031215611bb257600080fd5b611bbb83611978565b9150611b9660208401611995565b600080600080600060808688031215611be157600080fd5b853567ffffffffffffffff80821115611bf957600080fd5b818801915088601f830112611c0d57600080fd5b813581811115611c1c57600080fd5b896020828501011115611c2e57600080fd5b602092830197509550611c449188019050611995565b9250611c5260408701611978565b9150611c6060608701611995565b90509295509295909350565b60008060408385031215611c7f57600080fd5b50508035926020909101359150565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611ccc57611ccc611ca4565b5060010190565b808202811582820484141761055957610559611ca4565b8082018082111561055957610559611ca4565b600060208284031215611d0f57600080fd5b5051919050565b60008085851115611d2657600080fd5b83861115611d3357600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015611d685780818660040360031b1b83161692505b505092915050565b60005b83811015611d8b578181015183820152602001611d73565b50506000910152565b60008151808452611dac816020860160208601611d70565b601f01601f19169290920160200192915050565b60408152826040820152828460608301376000606084830101526000601f19601f85011682016060838203016020840152611dfe6060820185611d94565b9695505050505050565b606081528351606082015260006020850151608080840152611e2d60e0840182611d94565b6040878101516001600160a01b0390811660a087015260609098015160c086015295909616602084015250509091015290565b600060208284031215611e7257600080fd5b81518015158114610cd657600080fd5b600082611e9f57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561055957610559611ca4565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611eef816017850160208801611d70565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611f20816028840160208801611d70565b01602801949350505050565b602081526000610cd66020830184611d94565b600081611f4e57611f4e611ca4565b506000190190565b634e487b7160e01b600052603160045260246000fd5b60008251611f7e818460208701611d70565b919091019291505056fe97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929a26469706673582212200405e149784dea19b2dce1a7433dd5903c17617375be19fa8fffed2e8aeea65764736f6c63430008110033000000000000000000000000ece9cf6a8f2768a3b8b65060925b646afeaa5167