4 txs
5 calls
constructor
constructor(address _delegate)
functions
allowInitializePath
viewfunction allowInitializePath(tuple origin) view returns (bool)
combineOptions
viewfunction combineOptions(uint32 _eid, uint16 _msgType, bytes _extraOptions) view returns (bytes)
endpoint
viewfunction endpoint() view returns (address)
enforcedOptions
viewfunction enforcedOptions(uint32 eid, uint16 msgType) view returns (bytes enforcedOption)
ETHEREUM_LZ_CHAIN_ID
viewfunction ETHEREUM_LZ_CHAIN_ID() view returns (uint32)
getCmd
viewfunction getCmd() view returns (bytes)
isComposeMsgSender
viewfunction isComposeMsgSender(tuple, bytes, address _sender) view returns (bool)
latestRate
viewfunction latestRate() view returns (uint256)
latestRateAnswer
viewfunction latestRateAnswer() view returns (uint256 rate, uint256 timestamp)
LZ_ENDPOINT
viewfunction LZ_ENDPOINT() view returns (address)
MAINNET_CONTRACT
viewfunction MAINNET_CONTRACT() view returns (address)
nextNonce
viewfunction nextNonce(uint32, bytes32) view returns (uint64 nonce)
oAppVersion
purefunction oAppVersion() pure returns (uint64 senderVersion, uint64 receiverVersion)
owner
viewfunction owner() view returns (address)
peers
viewfunction peers(uint32 eid) view returns (bytes32 peer)
READ_CHANNEL
viewfunction READ_CHANNEL() view returns (uint32)
READ_MSG_TYPE
viewfunction READ_MSG_TYPE() view returns (uint16)
timeSinceLastUpdate
viewfunction timeSinceLastUpdate() view returns (uint256)
lzReceive
payablefunction lzReceive(tuple _origin, bytes32 _guid, bytes _message, address _executor, bytes _extraData) payable
renounceOwnership
nonpayablefunction renounceOwnership()
requestAssetToShareRate
payablefunction requestAssetToShareRate(bytes _extraOptions) payable returns (tuple receipt)
setDelegate
nonpayablefunction setDelegate(address _delegate)
setEnforcedOptions
nonpayablefunction setEnforcedOptions(tuple[] _enforcedOptions)
setPeer
nonpayablefunction setPeer(uint32 _eid, bytes32 _peer)
setReadChannel
nonpayablefunction setReadChannel(uint32 _channelId, bool _active)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AssetRateReceived
event AssetRateReceived(bytes32 requestId, uint256 rate)
AssetRateRequested
event AssetRateRequested(bytes32 requestId)
EnforcedOptionSet
event EnforcedOptionSet((uint32 eid, uint16 msgType, bytes options)[] _enforcedOptions)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PeerSet
event PeerSet(uint32 eid, bytes32 peer)
errors
InvalidDelegate
error InvalidDelegate()
InvalidEndpointCall
error InvalidEndpointCall()
InvalidOptions
error InvalidOptions(bytes options)
LzTokenUnavailable
error LzTokenUnavailable()
NoPeer
error NoPeer(uint32 eid)
NotEnoughNative
error NotEnoughNative(uint256 msgValue)
OnlyEndpoint
error OnlyEndpoint(address addr)
OnlyPeer
error OnlyPeer(uint32 eid, bytes32 sender)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a060405234801562000010575f80fd5b50604051620024023803806200240283398101604081905262000033916200016e565b731a44076050125825900e736c501f859c50fe728c8181818181806001600160a01b0381166200007c57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b62000087816200011f565b506001600160a01b038083166080528116620000b657604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b158015620000fb575f80fd5b505af11580156200010e573d5f803e3d5ffd5b50505050505050505050506200019d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156200017f575f80fd5b81516001600160a01b038116811462000196575f80fd5b9392505050565b608051612229620001d95f395f81816102f50152818161057601528181610b7f01528181610dd80152818161120e015261130501526122295ff3fe608060405260043610610199575f3560e01c806398d4102f116100dc578063bc70b35411610087578063cd4d1c6411610062578063cd4d1c64146104f0578063f0a9e48114610517578063f2fde38b14610536578063ff7bd03d14610555575f80fd5b8063bc70b3541461048b578063c1bd92e3146104aa578063ca5eb5e1146104d1575f80fd5b8063b10c7544116100b7578063b10c75441461042d578063b98bd07014610441578063bb0b6a5314610460575f80fd5b806398d4102f146103d05780639ef4ca08146103f2578063a1d4f77914610406575f80fd5b80635535d46111610147578063715018a611610122578063715018a61461032c5780637d25a05e1461034057806382413eac146103785780638da5cb5b146103a7575f80fd5b80635535d461146102b85780635e280f11146102e4578063641627e014610317575f80fd5b80632244ec6c116101775780632244ec6c146102245780633400288b146102705780633859d9371461028f575f80fd5b806313137d651461019d57806315711e48146101b257806317442b7014610203575b5f80fd5b6101b06101ab366004611619565b610574565b005b6101c56101c03660046116b2565b610673565b604080518251815260208084015167ffffffffffffffff16818301529282015180519282019290925291015160608201526080015b60405180910390f35b34801561020e575f80fd5b50604080516001815260026020820152016101fa565b34801561022f575f80fd5b5061024b7369378e2142be773c86c78320eac929770d3d740e81565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fa565b34801561027b575f80fd5b506101b061028a366004611709565b6106f3565b34801561029a575f80fd5b506102a3600181565b60405163ffffffff90911681526020016101fa565b3480156102c3575f80fd5b506102d76102d2366004611742565b610709565b6040516101fa91906117de565b3480156102ef575f80fd5b5061024b7f000000000000000000000000000000000000000000000000000000000000000081565b348015610322575f80fd5b506102a361759581565b348015610337575f80fd5b506101b06107ab565b34801561034b575f80fd5b5061035f61035a366004611709565b6107be565b60405167ffffffffffffffff90911681526020016101fa565b348015610383575f80fd5b506103976103923660046117f7565b6107c6565b60405190151581526020016101fa565b3480156103b2575f80fd5b505f5473ffffffffffffffffffffffffffffffffffffffff1661024b565b3480156103db575f80fd5b506103e46107e8565b6040519081526020016101fa565b3480156103fd575f80fd5b506003546103e4565b348015610411575f80fd5b50600354600454604080519283526020830191909152016101fa565b348015610438575f80fd5b506102d76107fc565b34801561044c575f80fd5b506101b061045b36600461185a565b61095e565b34801561046b575f80fd5b506103e461047a3660046118c9565b60016020525f908152604090205481565b348015610496575f80fd5b506102d76104a53660046118e2565b610978565b3480156104b5575f80fd5b506104be600181565b60405161ffff90911681526020016101fa565b3480156104dc575f80fd5b506101b06104eb36600461193f565b610b32565b3480156104fb575f80fd5b5061024b731a44076050125825900e736c501f859c50fe728c81565b348015610522575f80fd5b506101b061053136600461195a565b610bd9565b348015610541575f80fd5b506101b061055036600461193f565b610bf6565b348015610560575f80fd5b5061039761056f366004611993565b610c59565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1633146105ea576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610604906105ff908a6118c9565b610c8d565b1461065b5761061660208801886118c9565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016105e1565b61066a87878787878787610ce1565b50505050505050565b61067b611559565b5f6106846107fc565b90506106b46001826106996001808989610978565b60405180604001604052803481526020015f81525033610da7565b80516040519081529092507f46e9bf37bf7ac5a4bc611eae6e9dfcb7e71fdd344468246c1203fc8fb32a42219060200160405180910390a15092915050565b6106fb610eba565b6107058282610f0c565b5050565b600260209081525f92835260408084209091529082529020805461072c906119ad565b80601f0160208091040260200160405190810160405280929190818152602001828054610758906119ad565b80156107a35780601f1061077a576101008083540402835291602001916107a3565b820191905f5260205f20905b81548152906001019060200180831161078657829003601f168201915b505050505081565b6107b3610eba565b6107bc5f610f60565b565b5f5b92915050565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b5f600454426107f79190611a25565b905090565b604080516001808252818301909252606091905f9082816020015b6040805160e0810182525f808252602080830182905292820181905260608083018290526080830182905260a083019190915260c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909201910181610817579050506040805160e081018252600181526175956020808301919091525f82840181905267ffffffffffffffff42166060840152600f60808401527369378e2142be773c86c78320eac929770d3d740e60a08401528351600481526024810190945290830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4d27f8c90000000000000000000000000000000000000000000000000000000017905260c082019290925282519293509183919061094257610942611a65565b60200260200101819052506109575f82610fd4565b9250505090565b610966610eba565b6107056109738284611b0a565b61107a565b63ffffffff84165f90815260026020908152604080832061ffff871684529091528120805460609291906109ab906119ad565b80601f01602080910402602001604051908101604052809291908181526020018280546109d7906119ad565b8015610a225780601f106109f957610100808354040283529160200191610a22565b820191905f5260205f20905b815481529060010190602001808311610a0557829003601f168201915b5050505050905080515f03610a705783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152509294506107e09350505050565b5f839003610a7f5790506107e0565b60028310610afc57610ac584848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061118692505050565b80610ad38460028188611c41565b604051602001610ae593929190611c68565b6040516020818303038152906040529150506107e0565b83836040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016105e1929190611c8e565b610b3a610eba565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015610bc0575f80fd5b505af1158015610bd2573d5f803e3d5ffd5b5050505050565b610be1610eba565b6107058282610bf0575f610f0c565b30610f0c565b610bfe610eba565b73ffffffffffffffffffffffffffffffffffffffff8116610c4d576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024016105e1565b610c5681610f60565b50565b5f602082018035906001908390610c7090866118c9565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f90815260016020526040812054806107c0576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016105e1565b60208414610d4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e76616c6964206d657373616765206c656e6774680000000000000000000060448201526064016105e1565b5f610d5885870187611cda565b60038190554260045560408051898152602081018390529192507fd1c4a6de1fff60cbb60091d26e9ef8b59d7aae4291a6aed7c95731bf590c1828910160405180910390a15050505050505050565b610daf611559565b5f610dbc845f01516111cb565b602085015190915015610dd657610dd6846020015161120b565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff168152602001610e338c610c8d565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401610e6e929190611cf1565b60806040518083038185885af1158015610e8a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eaf9190611d94565b979650505050505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107bc576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016105e1565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60605f600184610fe4855161132a565b6040517fffff00000000000000000000000000000000000000000000000000000000000060f094851b8116602083015292841b83166022820152921b16602482015260260160405160208183030381529060405290505f5b8351811015611072576110688285838151811061105b5761105b611a65565b6020026020010151611371565b915060010161103c565b509392505050565b5f5b815181101561114b576110ab82828151811061109a5761109a611a65565b602002602001015160400151611186565b8181815181106110bd576110bd611a65565b60200260200101516040015160025f8484815181106110de576110de611a65565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f84848151811061111557611115611a65565b60200260200101516020015161ffff1661ffff1681526020019081526020015f2090816111429190611e86565b5060010161107c565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748160405161117b9190611fa2565b60405180910390a150565b600281015161ffff811660031461070557816040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016105e191906117de565b5f813414611207576040517f9f7041200000000000000000000000000000000000000000000000000000000081523460048201526024016105e1565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015611275573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112999190612049565b905073ffffffffffffffffffffffffffffffffffffffff81166112e8576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61070573ffffffffffffffffffffffffffffffffffffffff8216337f00000000000000000000000000000000000000000000000000000000000000008561141f565b5f61ffff821115611207576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260106004820152602481018390526044016105e1565b60605f836001845f015160016113978760c001515160236113929190612064565b61132a565b6020808901516040516113af97969594939201612077565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252908501516060860151608087015160a088015160c089015194965061140795879590602001612131565b60405160208183030381529060405291505092915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526114b49085906114ba565b50505050565b5f8060205f8451602086015f885af1806114d9576040513d5f823e3d81fd5b50505f513d915081156114f057806001141561150a565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156114b4576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024016105e1565b60405180606001604052805f80191681526020015f67ffffffffffffffff16815260200161159860405180604001604052805f81526020015f81525090565b905290565b5f606082840312156115ad575f80fd5b50919050565b5f8083601f8401126115c3575f80fd5b50813567ffffffffffffffff8111156115da575f80fd5b6020830191508360208285010111156115f1575f80fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114610c56575f80fd5b5f805f805f805f60e0888a03121561162f575f80fd5b611639898961159d565b965060608801359550608088013567ffffffffffffffff8082111561165c575f80fd5b6116688b838c016115b3565b909750955060a08a0135915061167d826115f8565b90935060c08901359080821115611692575f80fd5b5061169f8a828b016115b3565b989b979a50959850939692959293505050565b5f80602083850312156116c3575f80fd5b823567ffffffffffffffff8111156116d9575f80fd5b6116e5858286016115b3565b90969095509350505050565b803563ffffffff81168114611704575f80fd5b919050565b5f806040838503121561171a575f80fd5b611723836116f1565b946020939093013593505050565b803561ffff81168114611704575f80fd5b5f8060408385031215611753575f80fd5b61175c836116f1565b915061176a60208401611731565b90509250929050565b5f5b8381101561178d578181015183820152602001611775565b50505f910152565b5f81518084526117ac816020860160208601611773565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f6117f06020830184611795565b9392505050565b5f805f8060a0858703121561180a575f80fd5b611814868661159d565b9350606085013567ffffffffffffffff81111561182f575f80fd5b61183b878288016115b3565b909450925050608085013561184f816115f8565b939692955090935050565b5f806020838503121561186b575f80fd5b823567ffffffffffffffff80821115611882575f80fd5b818501915085601f830112611895575f80fd5b8135818111156118a3575f80fd5b8660208260051b85010111156118b7575f80fd5b60209290920196919550909350505050565b5f602082840312156118d9575f80fd5b6117f0826116f1565b5f805f80606085870312156118f5575f80fd5b6118fe856116f1565b935061190c60208601611731565b9250604085013567ffffffffffffffff811115611927575f80fd5b611933878288016115b3565b95989497509550505050565b5f6020828403121561194f575f80fd5b81356117f0816115f8565b5f806040838503121561196b575f80fd5b611974836116f1565b915060208301358015158114611988575f80fd5b809150509250929050565b5f606082840312156119a3575f80fd5b6117f0838361159d565b600181811c908216806119c157607f821691505b6020821081036115ad577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156107c0576107c06119f8565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b6040516060810167ffffffffffffffff81118282101715611ab557611ab5611a38565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611b0257611b02611a38565b604052919050565b5f67ffffffffffffffff80841115611b2457611b24611a38565b8360051b6020611b35818301611abb565b868152918501918181019036841115611b4c575f80fd5b865b84811015611c3557803586811115611b64575f80fd5b88016060368290031215611b76575f80fd5b611b7e611a92565b611b87826116f1565b8152611b94868301611731565b8682015260408083013589811115611baa575f80fd5b9290920191601f3681850112611bbe575f80fd5b83358a811115611bd057611bd0611a38565b611bff897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08484011601611abb565b91508082523689828701011115611c14575f80fd5b808986018a8401375f90820189015290820152845250918301918301611b4e565b50979650505050505050565b5f8085851115611c4f575f80fd5b83861115611c5b575f80fd5b5050820193919092039150565b5f8451611c79818460208901611773565b8201838582375f930192835250909392505050565b60208152816020820152818360408301375f818301604090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160101919050565b5f60208284031215611cea575f80fd5b5035919050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a06080840152611d2660e0840182611795565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152611d618282611795565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f8183036080811215611da5575f80fd5b611dad611a92565b83518152602084015167ffffffffffffffff8082168214611dcc575f80fd5b81602084015260409150817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc085011215611e04575f80fd5b815193508184018481108282111715611e1f57611e1f611a38565b82525084810151835260609094015160208301529283015250919050565b601f821115611e8157805f5260205f20601f840160051c81016020851015611e625750805b601f840160051c820191505b81811015610bd2575f8155600101611e6e565b505050565b815167ffffffffffffffff811115611ea057611ea0611a38565b611eb481611eae84546119ad565b84611e3d565b602080601f831160018114611f06575f8415611ed05750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611f9a565b5f858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015611f5257888601518255948401946001909101908401611f33565b5085821015611f8e57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101561203b578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261202781860183611795565b968901969450505090860190600101611fc9565b509098975050505050505050565b5f60208284031215612059575f80fd5b81516117f0816115f8565b808201808211156107c0576107c06119f8565b5f8751612088818460208c01611773565b60f89790971b7fff00000000000000000000000000000000000000000000000000000000000000169190960190815260f094851b7fffff000000000000000000000000000000000000000000000000000000000000908116600183015293851b841660038201529190931b909116600582015260e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166007820152600b0192915050565b5f8751612142818460208c01611773565b808301905087151560f81b81527fffffffffffffffff0000000000000000000000000000000000000000000000008760c01b1660018201527fffff0000000000000000000000000000000000000000000000000000000000008660f01b1660098201527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b16600b82015283516121e381601f840160208801611773565b01601f019897505050505050505056fea2646970667358221220077318a21307acc15415810094a5990f8a2d680f89f12cdc1dde96d014c575c264736f6c634300081600330000000000000000000000002f1567c4a651ed93db0fc6d9df1ea9196054f63e