25 txs
67.8k calls
constructor
constructor(address _tokenController)
functions
burnLimitsPerMessage
viewfunction burnLimitsPerMessage(address) view returns (uint256)
getLocalToken
viewfunction getLocalToken(uint32 remoteDomain, bytes32 remoteToken) view returns (address)
localTokenMessenger
viewfunction localTokenMessenger() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pauser
viewfunction pauser() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
remoteTokensToLocalTokens
viewfunction remoteTokensToLocalTokens(bytes32) view returns (address)
rescuer
viewfunction rescuer() view returns (address)
tokenController
viewfunction tokenController() view returns (address)
acceptOwnership
nonpayablefunction acceptOwnership()
addLocalTokenMessenger
nonpayablefunction addLocalTokenMessenger(address newLocalTokenMessenger)
burn
nonpayablefunction burn(address burnToken, uint256 burnAmount)
linkTokenPair
nonpayablefunction linkTokenPair(address localToken, uint32 remoteDomain, bytes32 remoteToken)
mint
nonpayablefunction mint(uint32 sourceDomain, bytes32 burnToken, address recipientOne, address recipientTwo, uint256 amountOne, uint256 amountTwo) returns (address)
mint
nonpayablefunction mint(uint32 sourceDomain, bytes32 burnToken, address to, uint256 amount) returns (address mintToken)
pause
nonpayablefunction pause()
removeLocalTokenMessenger
nonpayablefunction removeLocalTokenMessenger()
rescueERC20
nonpayablefunction rescueERC20(address tokenContract, address to, uint256 amount)
setMaxBurnAmountPerMessage
nonpayablefunction setMaxBurnAmountPerMessage(address localToken, uint256 burnLimitPerMessage)
setTokenController
nonpayablefunction setTokenController(address newTokenController)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unlinkTokenPair
nonpayablefunction unlinkTokenPair(address localToken, uint32 remoteDomain, bytes32 remoteToken)
unpause
nonpayablefunction unpause()
updatePauser
nonpayablefunction updatePauser(address _newPauser)
updateRescuer
nonpayablefunction updateRescuer(address newRescuer)
events
LocalTokenMessengerAdded
event LocalTokenMessengerAdded(address localTokenMessenger)
LocalTokenMessengerRemoved
event LocalTokenMessengerRemoved(address localTokenMessenger)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Pause
event Pause()
PauserChanged
event PauserChanged(address indexed newAddress)
RescuerChanged
event RescuerChanged(address indexed newRescuer)
SetBurnLimitPerMessage
event SetBurnLimitPerMessage(address indexed token, uint256 burnLimitPerMessage)
SetTokenController
event SetTokenController(address tokenController)
TokenPairLinked
event TokenPairLinked(address localToken, uint32 remoteDomain, bytes32 remoteToken)
TokenPairUnlinked
event TokenPairUnlinked(address localToken, uint32 remoteDomain, bytes32 remoteToken)
Unpause
event Unpause()
errors
No errors.
creation bytecode
0x60806040526005805460ff60a01b191690553480156200001e57600080fd5b50604051620025fd380380620025fd833981810160405260208110156200004457600080fd5b5051806200005b620000556200006e565b62000072565b62000066816200009c565b50506200019e565b3390565b600480546001600160a01b031916905562000099816200014c602090811b62001a3f17901c565b50565b6001600160a01b038116620000f8576040805162461bcd60e51b815260206004820181905260248201527f496e76616c696420746f6b656e20636f6e74726f6c6c65722061646472657373604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fbc661161c0cbda8d30350f565f4a00497983a8204ce97d977fa633359160b0759181900360200190a150565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b61244f80620001ae6000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638da5cb5b116100ee578063cec74c0311610097578063e30c397811610071578063e30c397814610559578063eddd9d8214610561578063eed3b9da14610569578063f2fde38b14610586576101ae565b8063cec74c03146104d3578063d54de06f146104db578063e102baab14610526576101ae565b80639fd0506d116100c85780639fd0506d14610443578063a56ec6321461044b578063b2118a8d14610490576101ae565b80638da5cb5b146103a75780638dfcfa90146103af5780639dc29fac1461040a576101ae565b8063554bab3c1161015b578063770fc1f011610135578063770fc1f01461036657806378a0565e1461036e57806379ba5097146103975780638456cb591461039f576101ae565b8063554bab3c146102de5780635c975abb146103115780637235ea0c1461032d576101ae565b806336a816da1161018c57806336a816da1461027257806338a63183146102a55780633f4ba83a146102d6576101ae565b806311b35fa4146101b35780632ab60045146101fa5780632b2b90e11461022d575b600080fd5b6101f8600480360360608110156101c957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff60208201351690604001356105b9565b005b6101f86004803603602081101561021057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610777565b6101f86004803603606081101561024357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169063ffffffff602082013516906040013561078b565b6101f86004803603602081101561028857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610950565b6102ad610ade565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6101f8610afa565b6101f8600480360360208110156102f457600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610bbd565b610319610bce565b604080519115158252519081900360200190f35b6101f86004803603604081101561034357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610bef565b6102ad610cd4565b6102ad6004803603604081101561038457600080fd5b5063ffffffff8135169060200135610cf0565b6101f8610d03565b6101f8610da3565b6102ad610e7d565b6102ad600480360360c08110156103c557600080fd5b5063ffffffff8135169060208101359073ffffffffffffffffffffffffffffffffffffffff604082013581169160608101359091169060808101359060a00135610e99565b6101f86004803603604081101561042057600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561124d565b6102ad6114c7565b61047e6004803603602081101561046157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166114e3565b60408051918252519081900360200190f35b6101f8600480360360608110156104a657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135811691602081013590911690604001356114f5565b6101f861158b565b6102ad600480360360808110156104f157600080fd5b5063ffffffff8135169060208101359073ffffffffffffffffffffffffffffffffffffffff604082013516906060013561168c565b6101f86004803603602081101561053c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611936565b6102ad611947565b6102ad611963565b6102ad6004803603602081101561057f57600080fd5b503561197f565b6101f86004803603602081101561059c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166119a7565b60025473ffffffffffffffffffffffffffffffffffffffff16331461063f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f43616c6c6572206973206e6f7420746f6b656e436f6e74726f6c6c6572000000604482015290519081900360640190fd5b600061064b8383611ab6565b60008181526001602052604090205490915073ffffffffffffffffffffffffffffffffffffffff166106de57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f556e61626c6520746f20756e6c696e6b20746f6b656e20706169720000000000604482015290519081900360640190fd5b60008181526001602090815260409182902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055815173ffffffffffffffffffffffffffffffffffffffff8716815263ffffffff86169181019190915280820184905290517fa545a3b499d14157d483b3da15afb4c3845531142505def4697f46863750b09e9181900360600190a150505050565b61077f611af8565b61078881611ba2565b50565b60025473ffffffffffffffffffffffffffffffffffffffff16331461081157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f43616c6c6572206973206e6f7420746f6b656e436f6e74726f6c6c6572000000604482015290519081900360640190fd5b600061081d8383611ab6565b60008181526001602052604090205490915073ffffffffffffffffffffffffffffffffffffffff16156108b157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f556e61626c6520746f206c696e6b20746f6b656e207061697200000000000000604482015290519081900360640190fd5b600081815260016020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff88167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117909155825190815263ffffffff86169181019190915280820184905290517f0d62f22541e067b40918826c6ea1d53a5d3d8cd6db5ea2412f98ee13658067279181900360600190a150505050565b610958611af8565b73ffffffffffffffffffffffffffffffffffffffff81166109da57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f496e76616c696420546f6b656e4d657373656e67657220616464726573730000604482015290519081900360640190fd5b60075473ffffffffffffffffffffffffffffffffffffffff1615610a5f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4c6f63616c20546f6b656e4d657373656e67657220616c726561647920736574604482015290519081900360640190fd5b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179182905560408051929091168252517f9b5383f8f338b0114c8a37985032531722c23d3266b6304c09d5712c7aa9c53a916020908290030190a150565b60065473ffffffffffffffffffffffffffffffffffffffff1690565b60055473ffffffffffffffffffffffffffffffffffffffff163314610b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806123ce6022913960400191505060405180910390fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b610bc5611af8565b61078881611c7d565b60055474010000000000000000000000000000000000000000900460ff1681565b60025473ffffffffffffffffffffffffffffffffffffffff163314610c7557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f43616c6c6572206973206e6f7420746f6b656e436f6e74726f6c6c6572000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660008181526020818152604091829020849055815184815291517f6aa98de3efb0f031e70a96b4bd97fafc58474ad59f4e890aa3733bba321ecca29281900390910190a25050565b60075473ffffffffffffffffffffffffffffffffffffffff1681565b6000610cfc8383611d5e565b9392505050565b6000610d0d611d98565b90508073ffffffffffffffffffffffffffffffffffffffff16610d2e611947565b73ffffffffffffffffffffffffffffffffffffffff1614610d9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806123316029913960400191505060405180910390fd5b61078881611d9c565b60055473ffffffffffffffffffffffffffffffffffffffff163314610e13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806123ce6022913960400191505060405180910390fd5b600580547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b60035473ffffffffffffffffffffffffffffffffffffffff1690565b60055460009074010000000000000000000000000000000000000000900460ff1615610f2657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b610f2e611dcd565b610f9957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43616c6c6572206e6f74206c6f63616c20546f6b656e4d657373656e67657200604482015290519081900360640190fd5b6000610fa58888611d5e565b905073ffffffffffffffffffffffffffffffffffffffff811661102957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d696e7420746f6b656e206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b604080517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015260248201879052915183928316916340c10f199160448083019260209291908290030181600087803b1580156110a257600080fd5b505af11580156110b6573d6000803e3d6000fd5b505050506040513d60208110156110cc57600080fd5b505161113957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4669727374206d696e74206f7065726174696f6e206661696c65640000000000604482015290519081900360640190fd5b8073ffffffffffffffffffffffffffffffffffffffff166340c10f1987866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156111aa57600080fd5b505af11580156111be573d6000803e3d6000fd5b505050506040513d60208110156111d457600080fd5b505161124157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f5365636f6e64206d696e74206f7065726174696f6e206661696c656400000000604482015290519081900360640190fd5b50979650505050505050565b60055474010000000000000000000000000000000000000000900460ff16156112d757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b6112df611dcd565b61134a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43616c6c6572206e6f74206c6f63616c20546f6b656e4d657373656e67657200604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090205482908290806113e057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4275726e20746f6b656e206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b8082111561144f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4275726e20616d6f756e74206578636565647320706572207478206c696d6974604482015290519081900360640190fd5b60008590508073ffffffffffffffffffffffffffffffffffffffff166342966c68866040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156114a757600080fd5b505af11580156114bb573d6000803e3d6000fd5b50505050505050505050565b60055473ffffffffffffffffffffffffffffffffffffffff1690565b60006020819052908152604090205481565b60065473ffffffffffffffffffffffffffffffffffffffff163314611565576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806123aa6024913960400191505060405180910390fd5b61158673ffffffffffffffffffffffffffffffffffffffff84168383611e13565b505050565b611593611af8565b60075473ffffffffffffffffffffffffffffffffffffffff168061161857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4e6f206c6f63616c20546f6b656e4d657373656e676572206973207365740000604482015290519081900360640190fd5b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556040805173ffffffffffffffffffffffffffffffffffffffff8316815290517ff38224d382e0b9cd3f016a2cc70e00cc46f3c902a50d96f1e32f10a9c9ecc5bc9181900360200190a150565b60055460009074010000000000000000000000000000000000000000900460ff161561171957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015290519081900360640190fd5b611721611dcd565b61178c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f43616c6c6572206e6f74206c6f63616c20546f6b656e4d657373656e67657200604482015290519081900360640190fd5b60006117988686611d5e565b905073ffffffffffffffffffffffffffffffffffffffff811661181c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4d696e7420746f6b656e206e6f7420737570706f727465640000000000000000604482015290519081900360640190fd5b604080517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015260248201869052915183928316916340c10f199160448083019260209291908290030181600087803b15801561189557600080fd5b505af11580156118a9573d6000803e3d6000fd5b505050506040513d60208110156118bf57600080fd5b505161192c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4d696e74206f7065726174696f6e206661696c65640000000000000000000000604482015290519081900360640190fd5b5095945050505050565b61193e611af8565b61078881611ea0565b60045473ffffffffffffffffffffffffffffffffffffffff1690565b60025473ffffffffffffffffffffffffffffffffffffffff1690565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b6119af611af8565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556119fa610e7d565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6003805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008282604051602001808363ffffffff1660e01b81526004018281526020019250505060405160208183030381529060405280519060200120905092915050565b611b00611d98565b73ffffffffffffffffffffffffffffffffffffffff16611b1e610e7d565b73ffffffffffffffffffffffffffffffffffffffff1614611ba057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b565b73ffffffffffffffffffffffffffffffffffffffff8116611c0e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061235a602a913960400191505060405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fe475e580d85111348e40d8ca33cfdd74c30fe1655c2d8537a13abc10065ffa5a90600090a250565b73ffffffffffffffffffffffffffffffffffffffff8116611ce9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806123096028913960400191505060405180910390fd5b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83811691909117918290556040519116907fb80482a293ca2e013eda8683c9bd7fc8347cfdaeea5ede58cba46df502c2a60490600090a250565b600080611d6b8484611ab6565b60009081526001602052604090205473ffffffffffffffffffffffffffffffffffffffff16949350505050565b3390565b600480547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561078881611a3f565b60075460009073ffffffffffffffffffffffffffffffffffffffff1615801590611e0e575060075473ffffffffffffffffffffffffffffffffffffffff1633145b905090565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611586908490611f9b565b73ffffffffffffffffffffffffffffffffffffffff8116611f2257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f496e76616c696420746f6b656e20636f6e74726f6c6c65722061646472657373604482015290519081900360640190fd5b6002805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517fbc661161c0cbda8d30350f565f4a00497983a8204ce97d977fa633359160b0759181900360200190a150565b6000611ffd826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166120739092919063ffffffff16565b8051909150156115865780806020019051602081101561201c57600080fd5b5051611586576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806123f0602a913960400191505060405180910390fd5b6060612082848460008561208a565b949350505050565b6060824710156120e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806123846026913960400191505060405180910390fd5b6120ee85612244565b61215957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106121c257805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612185565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612224576040519150601f19603f3d011682016040523d82523d6000602084013e612229565b606091505b509150915061223982828661224a565b979650505050505050565b3b151590565b60608315612259575081610cfc565b8251156122695782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122cd5781810151838201526020016122b5565b50505050905090810190601f1680156122fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fdfe5061757361626c653a206e65772070617573657220697320746865207a65726f20616464726573734f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865206e6577206f776e6572526573637561626c653a206e6577207265736375657220697320746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526573637561626c653a2063616c6c6572206973206e6f742074686520726573637565725061757361626c653a2063616c6c6572206973206e6f7420746865207061757365725361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220466a05abc4d3b59412d236ae55182e66a208ae14bacb0aa3f581df2df059f70464736f6c63430007060033000000000000000000000000e7b84d8846c96bb83155da5537625c75e42d6e42