Contract 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706

Contract Overview

Balance:
0 AVAX
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x12c0e8d0f054741c47eefaf5c9f664792259912af9f36b23b3d19142f6b8ab92Retry Payload109685142022-06-25 1:45:382 days 22 hrs ago0x716c59a499fadeb4b5be3b319b6cf24385503ed0 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.041000113 29
0x4748957bdd1078f2872561b8a0fb0a2c06fca6adf72b64e4d1e3d0e515ba4ad3Retry Payload109685082022-06-25 1:45:142 days 22 hrs ago0x716c59a499fadeb4b5be3b319b6cf24385503ed0 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.041001099 29
0x2106804258594efaf7640fb186c6b905d1393d97c5784d2043b3ee51144754c1Force Resume Rec...107609642022-06-17 8:57:5310 days 15 hrs ago0x9d75b11b1a58263d3e3656366a65a9abb25a9d33 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.000699868 26
0x0efbe658ff68d389c3f1f7bee3823f85a845041a9d06d0c23827b141c3f8fc16Retry Payload105742302022-06-09 23:28:2918 days 34 mins ago0xa05e3791e69e60df6a0944d61a6ff952b3c612b4 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.000834925
0x3bfcac47d189d942fb5bfedafa1c6d3581ddd8ba0f756aeb0acfbe59056fececRetry Payload105741812022-06-09 23:26:4618 days 36 mins ago0xa05e3791e69e60df6a0944d61a6ff952b3c612b4 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.02809632525
0xa4b7eca56bb5d3a827906150f17b408682de1f1c869d95299ae6e61a4cbfef18Retry Payload104734232022-06-07 8:16:0820 days 15 hrs ago0x0cc49b3a1a4e207ca82b2a22ecc6b7a91b10edbe IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.06807602525
0xc1f5e67fe3578f074494b446b03caf139379e1f9fc9c83136308ae4b9aded757Retry Payload104733512022-06-07 8:13:4120 days 15 hrs ago0x0cc49b3a1a4e207ca82b2a22ecc6b7a91b10edbe IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.0073061525
0xb2386d5277cd7aa53f62d8b6b87a70bd73c78443acf1a2103b58252a99afd847Retry Payload100479582022-05-24 16:04:3734 days 7 hrs ago0x34607a57e206b2ab1e14ec03fe63ee570be73c4e IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.000892736 26
0x9553411ef0934151d30a160b94940d95072ff6d679047528b71dc27692ad2418Retry Payload100445892022-05-24 14:04:5534 days 9 hrs ago0x34607a57e206b2ab1e14ec03fe63ee570be73c4e IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.00531791 26
0x87e0b548a3efd7d3c2116cb3ad37d9756c35e340bccc63a78c90d8180632dc04Retry Payload93378742022-05-05 23:11:3553 days 51 mins ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.0080217525
0x2d852f37693fa53bec49a7fd2cb498fe3a6ebe0e0440474a81bb1b5c9b166735Retry Payload93377182022-05-05 23:05:4753 days 57 mins ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.0075942525
0xa8eaa5a5484f3c3200cdfa3d3df2b9223db63f5130652daa1ee80a5b7f864db0Retry Payload93373482022-05-05 22:50:5453 days 1 hr ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.0080217525
0x0669d160226ddb3c091f37a8ac48b34db3c16bdec2a682b9c18e74fe304344e1Retry Payload93365602022-05-05 22:19:1853 days 1 hr ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.0080217525
0x6d13dd6ac17142177cf61d723e9992a296152097be7f86156510d1ccebaa4476Retry Payload93364562022-05-05 22:15:3453 days 1 hr ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.0080217525
0x8a596e2ef415dc60707e31d6e93c9e3072cbc40deed4b5d2b530c4738b276f9cRetry Payload93344142022-05-05 20:53:4053 days 3 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.009579925
0x1717c421184abb2d12e7e370108610aeac91487957fa06a1471e6afffe4e8fe6Retry Payload93342722022-05-05 20:48:1753 days 3 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.010007425
0x5e3bb79da549af836db768d9ffc1201abaf69b5ad37608288598f04ed8c5af4fRetry Payload93342072022-05-05 20:45:2853 days 3 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.00706887525
0x649ed689dd26525b52b91aba45e597fa057bc4fc679a836d6cc0c9a653843483Retry Payload93340302022-05-05 20:38:0553 days 3 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.00664317525
0x4d22c96dbc16bd817f0f48a6cd6eda60e5e4a62b548ee5eeb0d960ef4f0f0523Set Default Rece...71718182022-03-11 17:06:32108 days 6 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.0014939375 27.5
0x8dd2b0bc5f637cf14db7c15405cdf4177c40c646607336d9c8a4d74bd6aad2caSet Default Send...71718152022-03-11 17:06:26108 days 6 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.00135927 27.5
0x61a0cd4982f134ff2a2a0c8867628de8532255045d72e709e89a3c14cf6bb423New Version71718132022-03-11 17:06:22108 days 6 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX0.00138985 27.5
0xa9f1ceab98a5830d1586eaf41c2f1443e268eb889125ab7dc5ec6fffc1157d670x60a0604071708352022-03-11 16:33:32108 days 7 hrs ago0xc13b65f7c53cd6db2ea205a4b574b4a0858720a6 IN  Create: Endpoint0 AVAX0.08485762525
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xf5c293ea25335e965d97c783dcb711e39b9ff1c27a7ba3285ce0aa079e34f094110283652022-06-27 22:55:341 hr 7 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060x29fbc4e4092db862218c62a888a00f95216192300 AVAX
0xf5c293ea25335e965d97c783dcb711e39b9ff1c27a7ba3285ce0aa079e34f094110283652022-06-27 22:55:341 hr 7 mins ago 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX
0x948c984757cc9772ec3969343aa396eaf1914accc69c1d529f7f55f6ee1df13e110275332022-06-27 22:18:281 hr 44 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e1 AVAX
0x948c984757cc9772ec3969343aa396eaf1914accc69c1d529f7f55f6ee1df13e110275332022-06-27 22:18:281 hr 44 mins ago 0x4248e2764c4737733b413c3c643eab1af61b37c4 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7061 AVAX
0x948c984757cc9772ec3969343aa396eaf1914accc69c1d529f7f55f6ee1df13e110275332022-06-27 22:18:281 hr 44 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e0 AVAX
0x948c984757cc9772ec3969343aa396eaf1914accc69c1d529f7f55f6ee1df13e110275332022-06-27 22:18:281 hr 44 mins ago 0x4248e2764c4737733b413c3c643eab1af61b37c4 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX
0x222aec6a674a85798f25e512c56a33df207b958316c93fbafc55618bacdc3485110267902022-06-27 21:47:362 hrs 15 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e1 AVAX
0x222aec6a674a85798f25e512c56a33df207b958316c93fbafc55618bacdc3485110267902022-06-27 21:47:362 hrs 15 mins ago 0x08ca733635b973308570cb59a9aec89507ffe206 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7061 AVAX
0x222aec6a674a85798f25e512c56a33df207b958316c93fbafc55618bacdc3485110267902022-06-27 21:47:362 hrs 15 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e0 AVAX
0x222aec6a674a85798f25e512c56a33df207b958316c93fbafc55618bacdc3485110267902022-06-27 21:47:362 hrs 15 mins ago 0x08ca733635b973308570cb59a9aec89507ffe206 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX
0x63becb6ef1197754c3d9e08360d979ad4f66b6d8d2566e8bdb450b7a36c81a62110265822022-06-27 21:39:112 hrs 23 mins ago 0xf0b793e69485fa85c30e4847f240f6674b8d7b2a 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX
0x63becb6ef1197754c3d9e08360d979ad4f66b6d8d2566e8bdb450b7a36c81a62110265822022-06-27 21:39:112 hrs 23 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e1 AVAX
0x63becb6ef1197754c3d9e08360d979ad4f66b6d8d2566e8bdb450b7a36c81a62110265822022-06-27 21:39:112 hrs 23 mins ago 0xf0b793e69485fa85c30e4847f240f6674b8d7b2a 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7061 AVAX
0x0b13bb3af89e26dd7be9b2bd120a07b5288334b913b222f8df7f468b988e265a110260302022-06-27 21:15:592 hrs 47 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e0 AVAX
0x0b13bb3af89e26dd7be9b2bd120a07b5288334b913b222f8df7f468b988e265a110260302022-06-27 21:15:592 hrs 47 mins ago 0xd39f813bc6604d1088ab9a9a3178369eadf662d2 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX
0x251bde599993733c019d6e7742b317e1cf7319ee5cf9ba77fbeb19a7806740f8110256132022-06-27 20:58:413 hrs 4 mins ago 0x7d98e060cb32b012655b16f219f9235f931708fa 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX
0x251bde599993733c019d6e7742b317e1cf7319ee5cf9ba77fbeb19a7806740f8110256132022-06-27 20:58:413 hrs 4 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060x7d98e060cb32b012655b16f219f9235f931708fa0 AVAX
0x251bde599993733c019d6e7742b317e1cf7319ee5cf9ba77fbeb19a7806740f8110256132022-06-27 20:58:413 hrs 4 mins ago 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060 AVAX
0x249a8b38490799bd598777feaf599d81774efb01690632b18a8d1b445547a75c110255422022-06-27 20:55:533 hrs 7 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e0.000000162686433657 AVAX
0x249a8b38490799bd598777feaf599d81774efb01690632b18a8d1b445547a75c110255422022-06-27 20:55:533 hrs 7 mins ago 0x21be56cba7f118e070e200e681c04a474c567274 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060.000000162686433657 AVAX
0xbd2c6a742a4b8e2cb5696aed687e6d120fe95e1936923f9ff72e75fc9cf7e22e110255112022-06-27 20:54:513 hrs 8 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e1.693573238275784824 AVAX
0xbd2c6a742a4b8e2cb5696aed687e6d120fe95e1936923f9ff72e75fc9cf7e22e110255112022-06-27 20:54:513 hrs 8 mins ago 0x21be56cba7f118e070e200e681c04a474c567274 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7061.693573238275784824 AVAX
0xb97597272b9d296ed2462b24a7ec5bb68b8764dd5511cc04437234ce705732e2110237172022-06-27 19:39:034 hrs 24 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e0.1 AVAX
0xb97597272b9d296ed2462b24a7ec5bb68b8764dd5511cc04437234ce705732e2110237172022-06-27 19:39:034 hrs 24 mins ago 0x2d5b91d2c9e34c4d82128d2f04522622ba32f19b 0x93f54d755a063ce7bb9e6ac47eccc8e33411d7060.1 AVAX
0x4970b17153f017e307ae1aed5c43634e613253eb176862f27828160859cd7988110237012022-06-27 19:38:144 hrs 24 mins ago 0x93f54d755a063ce7bb9e6ac47eccc8e33411d706 0x0848b8ad17d4003dde1f1b7ef1fdba4b629da97e0.1 AVAX
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Endpoint

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 30000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at testnet.snowtrace.io on 2022-04-15
*/

/**
 *Submitted for verification at Etherscan.io on 2022-03-25
*/

// SPDX-License-Identifier: BUSL-1.1
pragma solidity 0.7.6;

interface ILayerZeroReceiver {
    // @notice LayerZero endpoint will invoke this function to deliver the message on the destination
    // @param _srcChainId - the source endpoint identifier
    // @param _srcAddress - the source sending contract address from the source chain
    // @param _nonce - the ordered message nonce
    // @param _payload - the signed payload is the UA bytes has encoded to be sent
    function lzReceive(uint16 _srcChainId, bytes calldata _srcAddress, uint64 _nonce, bytes calldata _payload) external;
}

interface ILayerZeroUserApplicationConfig {
    // @notice set the configuration of the LayerZero messaging library of the specified version
    // @param _version - messaging library version
    // @param _chainId - the chainId for the pending config change
    // @param _configType - type of configuration. every messaging library has its own convention.
    // @param _config - configuration in the bytes. can encode arbitrary content.
    function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external;

    // @notice set the send() LayerZero messaging library version to _version
    // @param _version - new messaging library version
    function setSendVersion(uint16 _version) external;

    // @notice set the lzReceive() LayerZero messaging library version to _version
    // @param _version - new messaging library version
    function setReceiveVersion(uint16 _version) external;

    // @notice Only when the UA needs to resume the message flow in blocking mode and clear the stored payload
    // @param _srcChainId - the chainId of the source chain
    // @param _srcAddress - the contract address of the source contract at the source chain
    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external;
}

interface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {
    // @notice send a LayerZero message to the specified address at a LayerZero endpoint.
    // @param _dstChainId - the destination chain identifier
    // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains
    // @param _payload - a custom bytes payload to send to the destination contract
    // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address
    // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction
    // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination
    function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;

    // @notice used by the messaging library to publish verified payload
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source contract (as bytes) at the source chain
    // @param _dstAddress - the address on destination chain
    // @param _nonce - the unbound message ordering nonce
    // @param _gasLimit - the gas limit for external contract execution
    // @param _payload - verified payload to send to the destination contract
    function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external;

    // @notice get the inboundNonce of a receiver from a source chain which could be EVM or non-EVM chain
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source chain contract address
    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (uint64);

    // @notice get the outboundNonce from this source chain which, consequently, is always an EVM
    // @param _srcAddress - the source chain contract address
    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view returns (uint64);

    // @notice gets a quote in source native gas, for the amount that send() requires to pay for message delivery
    // @param _dstChainId - the destination chain identifier
    // @param _userApplication - the user app address on this EVM chain
    // @param _payload - the custom message to send over LayerZero
    // @param _payInZRO - if false, user app pays the protocol fee in native token
    // @param _adapterParam - parameters for the adapter service, e.g. send some dust native token to dstChain
    function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);

    // @notice get this Endpoint's immutable source identifier
    function getChainId() external view returns (uint16);

    // @notice the interface to retry failed message on this Endpoint destination
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source chain contract address
    // @param _payload - the payload to be retried
    function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external;

    // @notice query if any STORED payload (message blocking) at the endpoint.
    // @param _srcChainId - the source chain identifier
    // @param _srcAddress - the source chain contract address
    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view returns (bool);

    // @notice query if the _libraryAddress is valid for sending msgs.
    // @param _userApplication - the user app address on this EVM chain
    function getSendLibraryAddress(address _userApplication) external view returns (address);

    // @notice query if the _libraryAddress is valid for receiving msgs.
    // @param _userApplication - the user app address on this EVM chain
    function getReceiveLibraryAddress(address _userApplication) external view returns (address);

    // @notice query if the non-reentrancy guard for send() is on
    // @return true if the guard is on. false otherwise
    function isSendingPayload() external view returns (bool);

    // @notice query if the non-reentrancy guard for receive() is on
    // @return true if the guard is on. false otherwise
    function isReceivingPayload() external view returns (bool);

    // @notice get the configuration of the LayerZero messaging library of the specified version
    // @param _version - messaging library version
    // @param _chainId - the chainId for the pending config change
    // @param _userApplication - the contract address of the user application
    // @param _configType - type of configuration. every messaging library has its own convention.
    function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);

    // @notice get the send() LayerZero messaging library version
    // @param _userApplication - the contract address of the user application
    function getSendVersion(address _userApplication) external view returns (uint16);

    // @notice get the lzReceive() LayerZero messaging library version
    // @param _userApplication - the contract address of the user application
    function getReceiveVersion(address _userApplication) external view returns (uint16);
}

interface ILayerZeroMessagingLibrary {
    // send(), messages will be inflight.
    function send(address _userApplication, uint64 _lastNonce, uint16 _chainId, bytes calldata _destination, bytes calldata _payload, address payable refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable;

    // estimate native fee at the send side
    function estimateFees(uint16 _chainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParam) external view returns (uint nativeFee, uint zroFee);

    //---------------------------------------------------------------------------
    // setConfig / getConfig are User Application (UA) functions to specify Oracle, Relayer, blockConfirmations, libraryVersion
    function setConfig(uint16 _chainId, address _userApplication, uint _configType, bytes calldata _config) external;

    function getConfig(uint16 _chainId, address _userApplication, uint _configType) external view returns (bytes memory);
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract Endpoint is Ownable, ILayerZeroEndpoint {
    uint16 public immutable chainId;

    // installed libraries and reserved versions
    uint16 public constant BLOCK_VERSION = 65535;
    uint16 public constant DEFAULT_VERSION = 0;
    uint16 public latestVersion;
    mapping(uint16 => ILayerZeroMessagingLibrary) public libraryLookup; // version -> ILayerZeroEndpointLibrary

    // default send/receive libraries
    uint16 public defaultSendVersion;
    uint16 public defaultReceiveVersion;
    ILayerZeroMessagingLibrary public defaultSendLibrary;
    address public defaultReceiveLibraryAddress;

    struct LibraryConfig {
        uint16 sendVersion;
        uint16 receiveVersion;
        address receiveLibraryAddress;
        ILayerZeroMessagingLibrary sendLibrary;
    }

    struct StoredPayload {
        uint64 payloadLength;
        address dstAddress;
        bytes32 payloadHash;
    }

    // user app config = [uaAddress]
    mapping(address => LibraryConfig) public uaConfigLookup;
    // inboundNonce = [srcChainId][srcAddress].
    mapping(uint16 => mapping(bytes => uint64)) public inboundNonce;
    // outboundNonce = [dstChainId][srcAddress].
    mapping(uint16 => mapping(address => uint64)) public outboundNonce;
    // storedPayload = [srcChainId][srcAddress]
    mapping(uint16 => mapping(bytes => StoredPayload)) public storedPayload;

    // library versioning events
    event NewLibraryVersionAdded(uint16 version);
    event DefaultSendVersionSet(uint16 version);
    event DefaultReceiveVersionSet(uint16 version);
    event UaSendVersionSet(address ua, uint16 version);
    event UaReceiveVersionSet(address ua, uint16 version);
    event UaForceResumeReceive(uint16 chainId, bytes srcAddress);
    // payload events
    event PayloadCleared(uint16 srcChainId, bytes srcAddress, uint64 nonce, address dstAddress);
    event PayloadStored(uint16 srcChainId, bytes srcAddress, address dstAddress, uint64 nonce, bytes payload, bytes reason);

    constructor(uint16 _chainId) {
        chainId = _chainId;
    }

    //---------------------------------------------------------------------------
    // send and receive nonreentrant lock
    uint8 internal constant _NOT_ENTERED = 1;
    uint8 internal constant _ENTERED = 2;
    uint8 internal _send_entered_state = 1;
    uint8 internal _receive_entered_state = 1;

    modifier sendNonReentrant() {
        require(_send_entered_state == _NOT_ENTERED, "LayerZero: no send reentrancy");
        _send_entered_state = _ENTERED;
        _;
        _send_entered_state = _NOT_ENTERED;
    }
    modifier receiveNonReentrant() {
        require(_receive_entered_state == _NOT_ENTERED, "LayerZero: no receive reentrancy");
        _receive_entered_state = _ENTERED;
        _;
        _receive_entered_state = _NOT_ENTERED;
    }

    // BLOCK_VERSION is also a valid version
    modifier validVersion(uint16 _version) {
        require(_version <= latestVersion || _version == BLOCK_VERSION, "LayerZero: invalid messaging library version");
        _;
    }

    //---------------------------------------------------------------------------
    // User Application Calls - Endpoint Interface

    function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address _zroPaymentAddress, bytes calldata _adapterParams) external payable override sendNonReentrant {
        LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
        uint64 nonce = ++outboundNonce[_dstChainId][msg.sender];
        _getSendLibrary(uaConfig).send{value: msg.value}(msg.sender, nonce, _dstChainId, _destination, _payload, _refundAddress, _zroPaymentAddress, _adapterParams);
    }

    //---------------------------------------------------------------------------
    // authenticated Library (msg.sender) Calls to pass through Endpoint to UA (dstAddress)
    function receivePayload(uint16 _srcChainId, bytes calldata _srcAddress, address _dstAddress, uint64 _nonce, uint _gasLimit, bytes calldata _payload) external override receiveNonReentrant {
        // assert and increment the nonce. no message shuffling
        require(_nonce == ++inboundNonce[_srcChainId][_srcAddress], "LayerZero: wrong nonce");

        LibraryConfig storage uaConfig = uaConfigLookup[_dstAddress];

        // authentication to prevent cross-version message validation
        // protects against a malicious library from passing arbitrary data
        if (uaConfig.receiveVersion == DEFAULT_VERSION) {
            require(defaultReceiveLibraryAddress == msg.sender, "LayerZero: invalid default library");
        } else {
            require(uaConfig.receiveLibraryAddress == msg.sender, "LayerZero: invalid library");
        }

        // block if any message blocking
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        require(sp.payloadHash == bytes32(0), "LayerZero: in message blocking");

        try ILayerZeroReceiver(_dstAddress).lzReceive{gas: _gasLimit}(_srcChainId, _srcAddress, _nonce, _payload) {
            // success, do nothing, end of the message delivery
        } catch (bytes memory reason) {
            // revert nonce if any uncaught errors/exceptions if the ua chooses the blocking mode
            storedPayload[_srcChainId][_srcAddress] = StoredPayload(uint64(_payload.length), _dstAddress, keccak256(_payload));
            emit PayloadStored(_srcChainId, _srcAddress, _dstAddress, _nonce, _payload, reason);
        }
    }

    function retryPayload(uint16 _srcChainId, bytes calldata _srcAddress, bytes calldata _payload) external override receiveNonReentrant {
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        require(sp.payloadHash != bytes32(0), "LayerZero: no stored payload");
        require(_payload.length == sp.payloadLength && keccak256(_payload) == sp.payloadHash, "LayerZero: invalid payload");

        address dstAddress = sp.dstAddress;
        // empty the storedPayload
        sp.payloadLength = 0;
        sp.dstAddress = address(0);
        sp.payloadHash = bytes32(0);

        uint64 nonce = inboundNonce[_srcChainId][_srcAddress];

        ILayerZeroReceiver(dstAddress).lzReceive(_srcChainId, _srcAddress, nonce, _payload);
        emit PayloadCleared(_srcChainId, _srcAddress, nonce, dstAddress);
    }

    //---------------------------------------------------------------------------
    // Owner Calls, only new library version upgrade (3 steps)

    // note libraryLookup[0] = 0x0, no library implementation
    // LIBRARY UPGRADE step 1: set _newLayerZeroLibraryAddress be the new version
    function newVersion(address _newLayerZeroLibraryAddress) external onlyOwner {
        require(_newLayerZeroLibraryAddress != address(0x0), "LayerZero: new version cannot be zero address");
        require(latestVersion < 65535, "LayerZero: can not add new messaging library");
        latestVersion++;
        libraryLookup[latestVersion] = ILayerZeroMessagingLibrary(_newLayerZeroLibraryAddress);
        emit NewLibraryVersionAdded(latestVersion);
    }

    // LIBRARY UPGRADE step 2: stop sending messages from the old version
    function setDefaultSendVersion(uint16 _newDefaultSendVersion) external onlyOwner validVersion(_newDefaultSendVersion) {
        require(_newDefaultSendVersion != DEFAULT_VERSION, "LayerZero: default send version must > 0");
        defaultSendVersion = _newDefaultSendVersion;
        defaultSendLibrary = libraryLookup[defaultSendVersion];
        emit DefaultSendVersionSet(_newDefaultSendVersion);
    }

    // LIBRARY UPGRADE step 3: stop receiving messages from the old version
    function setDefaultReceiveVersion(uint16 _newDefaultReceiveVersion) external onlyOwner validVersion(_newDefaultReceiveVersion) {
        require(_newDefaultReceiveVersion != DEFAULT_VERSION, "LayerZero: default receive version must > 0");
        defaultReceiveVersion = _newDefaultReceiveVersion;
        defaultReceiveLibraryAddress = address(libraryLookup[defaultReceiveVersion]);
        emit DefaultReceiveVersionSet(_newDefaultReceiveVersion);
    }

    //---------------------------------------------------------------------------
    // User Application Calls - UA set/get Interface

    function setConfig(uint16 _version, uint16 _chainId, uint _configType, bytes calldata _config) external override validVersion(_version) {
        if (_version == DEFAULT_VERSION) {
            require(defaultSendVersion == defaultReceiveVersion, "LayerZero: can not set Config during DEFAULT migration");
            _version = defaultSendVersion;
        }
        require(_version != BLOCK_VERSION, "LayerZero: can not set config for BLOCK_VERSION");
        libraryLookup[_version].setConfig(_chainId, msg.sender, _configType, _config);
    }

    // Migration step 1: set the send version
    // Define what library the UA points too
    function setSendVersion(uint16 _newVersion) external override validVersion(_newVersion) {
        // write into config
        LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
        uaConfig.sendVersion = _newVersion;
        // the libraryLookup[BLOCK_VERSION || DEFAULT_VERSION] = 0x0
        uaConfig.sendLibrary = libraryLookup[_newVersion];
        emit UaSendVersionSet(msg.sender, _newVersion);
    }

    // Migration step 2: set the receive version
    // after all messages sent from the old version are received
    // the UA can now safely switch to the new receive version
    // it is the UA's responsibility make sure all messages from the old version are processed
    function setReceiveVersion(uint16 _newVersion) external override validVersion(_newVersion) {
        // write into config
        LibraryConfig storage uaConfig = uaConfigLookup[msg.sender];
        uaConfig.receiveVersion = _newVersion;
        // the libraryLookup[BLOCK_VERSION || DEFAULT_VERSION] = 0x0
        uaConfig.receiveLibraryAddress = address(libraryLookup[_newVersion]);
        emit UaReceiveVersionSet(msg.sender, _newVersion);
    }

    function forceResumeReceive(uint16 _srcChainId, bytes calldata _srcAddress) external override {
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        // revert if no messages are cached. safeguard malicious UA behaviour
        require(sp.payloadHash != bytes32(0), "LayerZero: no stored payload");
        require(sp.dstAddress == msg.sender, "LayerZero: invalid caller");

        // empty the storedPayload
        sp.payloadLength = 0;
        sp.dstAddress = address(0);
        sp.payloadHash = bytes32(0);

        // emit the event with the new nonce
        emit UaForceResumeReceive(_srcChainId, _srcAddress);
    }

    //---------------------------------------------------------------------------
    // view helper function

    function estimateFees(uint16 _dstChainId, address _userApplication, bytes calldata _payload, bool _payInZRO, bytes calldata _adapterParams) external view override returns (uint nativeFee, uint zroFee) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        ILayerZeroMessagingLibrary lib = uaConfig.sendVersion == DEFAULT_VERSION ? defaultSendLibrary : uaConfig.sendLibrary;
        return lib.estimateFees(_dstChainId, _userApplication, _payload, _payInZRO, _adapterParams);
    }

    function _getSendLibrary(LibraryConfig storage uaConfig) internal view returns (ILayerZeroMessagingLibrary) {
        if (uaConfig.sendVersion == DEFAULT_VERSION) {
            // check if the in send-blocking upgrade
            require(defaultSendVersion != BLOCK_VERSION, "LayerZero: default in BLOCK_VERSION");
            return defaultSendLibrary;
        } else {
            // check if the in send-blocking upgrade
            require(uaConfig.sendVersion != BLOCK_VERSION, "LayerZero: in BLOCK_VERSION");
            return uaConfig.sendLibrary;
        }
    }

    function getSendLibraryAddress(address _userApplication) external view override returns (address sendLibraryAddress) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        uint16 sendVersion = uaConfig.sendVersion;
        require(sendVersion != BLOCK_VERSION, "LayerZero: send version is BLOCK_VERSION");
        if (sendVersion == DEFAULT_VERSION) {
            require(defaultSendVersion != BLOCK_VERSION, "LayerZero: send version (default) is BLOCK_VERSION");
            sendLibraryAddress = address(defaultSendLibrary);
        } else {
            sendLibraryAddress = address(uaConfig.sendLibrary);
        }
    }

    function getReceiveLibraryAddress(address _userApplication) external view override returns (address receiveLibraryAddress) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        uint16 receiveVersion = uaConfig.receiveVersion;
        require(receiveVersion != BLOCK_VERSION, "LayerZero: receive version is BLOCK_VERSION");
        if (receiveVersion == DEFAULT_VERSION) {
            require(defaultReceiveVersion != BLOCK_VERSION, "LayerZero: receive version (default) is BLOCK_VERSION");
            receiveLibraryAddress = defaultReceiveLibraryAddress;
        } else {
            receiveLibraryAddress = uaConfig.receiveLibraryAddress;
        }
    }

    function isSendingPayload() external view override returns (bool) {
        return _send_entered_state == _ENTERED;
    }

    function isReceivingPayload() external view override returns (bool) {
        return _receive_entered_state == _ENTERED;
    }

    function getInboundNonce(uint16 _srcChainId, bytes calldata _srcAddress) external view override returns (uint64) {
        return inboundNonce[_srcChainId][_srcAddress];
    }

    function getOutboundNonce(uint16 _dstChainId, address _srcAddress) external view override returns (uint64) {
        return outboundNonce[_dstChainId][_srcAddress];
    }

    function getChainId() external view override returns (uint16) {
        return chainId;
    }

    function getSendVersion(address _userApplication) external view override returns (uint16) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        return uaConfig.sendVersion == DEFAULT_VERSION ? defaultSendVersion : uaConfig.sendVersion;
    }

    function getReceiveVersion(address _userApplication) external view override returns (uint16) {
        LibraryConfig storage uaConfig = uaConfigLookup[_userApplication];
        return uaConfig.receiveVersion == DEFAULT_VERSION ? defaultReceiveVersion : uaConfig.receiveVersion;
    }

    function getConfig(uint16 _version, uint16 _chainId, address _userApplication, uint _configType) external view override validVersion(_version) returns (bytes memory) {
        if (_version == DEFAULT_VERSION) {
            require(defaultSendVersion == defaultReceiveVersion, "LayerZero: no DEFAULT config while migration");
            _version = defaultSendVersion;
        }
        require(_version != BLOCK_VERSION, "LayerZero: can not get config for BLOCK_VERSION");
        return libraryLookup[_version].getConfig(_chainId, _userApplication, _configType);
    }

    function hasStoredPayload(uint16 _srcChainId, bytes calldata _srcAddress) external view override returns (bool) {
        StoredPayload storage sp = storedPayload[_srcChainId][_srcAddress];
        return sp.payloadHash != bytes32(0);
    }
}

Contract ABI

[{"inputs":[{"internalType":"uint16","name":"_chainId","type":"uint16"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"DefaultReceiveVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"DefaultSendVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"NewLibraryVersionAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"}],"name":"PayloadCleared","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"srcChainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"},{"indexed":false,"internalType":"address","name":"dstAddress","type":"address"},{"indexed":false,"internalType":"uint64","name":"nonce","type":"uint64"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"},{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"PayloadStored","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"chainId","type":"uint16"},{"indexed":false,"internalType":"bytes","name":"srcAddress","type":"bytes"}],"name":"UaForceResumeReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ua","type":"address"},{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"UaReceiveVersionSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"ua","type":"address"},{"indexed":false,"internalType":"uint16","name":"version","type":"uint16"}],"name":"UaSendVersionSet","type":"event"},{"inputs":[],"name":"BLOCK_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultReceiveLibraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultSendLibrary","outputs":[{"internalType":"contract ILayerZeroMessagingLibrary","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_payInZRO","type":"bool"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"estimateFees","outputs":[{"internalType":"uint256","name":"nativeFee","type":"uint256"},{"internalType":"uint256","name":"zroFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"forceResumeReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"address","name":"_userApplication","type":"address"},{"internalType":"uint256","name":"_configType","type":"uint256"}],"name":"getConfig","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"getInboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"address","name":"_srcAddress","type":"address"}],"name":"getOutboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveLibraryAddress","outputs":[{"internalType":"address","name":"receiveLibraryAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getReceiveVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendLibraryAddress","outputs":[{"internalType":"address","name":"sendLibraryAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_userApplication","type":"address"}],"name":"getSendVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"}],"name":"hasStoredPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"inboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isReceivingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSendingPayload","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestVersion","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"}],"name":"libraryLookup","outputs":[{"internalType":"contract ILayerZeroMessagingLibrary","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newLayerZeroLibraryAddress","type":"address"}],"name":"newVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"address","name":"","type":"address"}],"name":"outboundNonce","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"address","name":"_dstAddress","type":"address"},{"internalType":"uint64","name":"_nonce","type":"uint64"},{"internalType":"uint256","name":"_gasLimit","type":"uint256"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"receivePayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_srcChainId","type":"uint16"},{"internalType":"bytes","name":"_srcAddress","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"name":"retryPayload","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_dstChainId","type":"uint16"},{"internalType":"bytes","name":"_destination","type":"bytes"},{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"address payable","name":"_refundAddress","type":"address"},{"internalType":"address","name":"_zroPaymentAddress","type":"address"},{"internalType":"bytes","name":"_adapterParams","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_version","type":"uint16"},{"internalType":"uint16","name":"_chainId","type":"uint16"},{"internalType":"uint256","name":"_configType","type":"uint256"},{"internalType":"bytes","name":"_config","type":"bytes"}],"name":"setConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newDefaultReceiveVersion","type":"uint16"}],"name":"setDefaultReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newDefaultSendVersion","type":"uint16"}],"name":"setDefaultSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newVersion","type":"uint16"}],"name":"setReceiveVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newVersion","type":"uint16"}],"name":"setSendVersion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"","type":"uint16"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"storedPayload","outputs":[{"internalType":"uint64","name":"payloadLength","type":"uint64"},{"internalType":"address","name":"dstAddress","type":"address"},{"internalType":"bytes32","name":"payloadHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"uaConfigLookup","outputs":[{"internalType":"uint16","name":"sendVersion","type":"uint16"},{"internalType":"uint16","name":"receiveVersion","type":"uint16"},{"internalType":"address","name":"receiveLibraryAddress","type":"address"},{"internalType":"contract ILayerZeroMessagingLibrary","name":"sendLibrary","type":"address"}],"stateMutability":"view","type":"function"}]

60a06040526008805461ff001960ff19909116600117166101001790553480156200002957600080fd5b5060405162003c9638038062003c96833981810160405260208110156200004f57600080fd5b505160006200005d620000bd565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060f01b6001600160f01b031916608052620000c1565b3390565b60805160f01c613bb2620000e4600039806117d75280611eb75250613bb26000f3fe6080604052600436106102855760003560e01c80639c729da111610153578063ca066b35116100cb578063f2fde38b1161007f578063f5ecbdbc11610064578063f5ecbdbc14610f17578063faee093f14610fe6578063fdc07c7014610ffb57610285565b8063f2fde38b14610e54578063f4abee4b14610e9457610285565b8063da1a7c9a116100b0578063da1a7c9a14610dea578063e97a448a14610e2a578063ebfea6e014610e3f57610285565b8063ca066b3514610d3d578063cbed8b9c14610d5257610285565b8063bd42a71311610122578063c2fa481311610107578063c2fa481314610abe578063c580310014610bca578063c7e3711714610d0f57610285565b8063bd42a71314610a7b578063c07f47d414610aa957610285565b80639c729da114610902578063a91606df14610942578063aaff5f1614610957578063b208649914610a3157610285565b806342d65a8d1161020157806376a386dc116101b55780638da5cb5b1161019a5780638da5cb5b1461081a5780639924d33b1461082f5780639a8a0592146108ed57610285565b806376a386dc146106b75780637a145748146107b357610285565b80635d9ef01a116101e65780635d9ef01a1461064d578063715018a61461066257806371ba2fd61461067757610285565b806342d65a8d146105875780634afb422b1461060f57610285565b806310ddb1371161025857806324ba3f2c1161023d57806324ba3f2c146104495780633408e4701461045e57806340a7bb101461047357610285565b806310ddb137146103db578063158c81ad1461040957610285565b806307e0db171461028a578063096568f6146102ba5780630b837bb5146103115780630eaf6ea61461033f575b600080fd5b34801561029657600080fd5b506102b8600480360360208110156102ad57600080fd5b503561ffff16611083565b005b3480156102c657600080fd5b506102fa600480360360208110156102dd57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166111c7565b6040805161ffff9092168252519081900360200190f35b34801561031d57600080fd5b506102b86004803603602081101561033457600080fd5b503561ffff16611213565b34801561034b57600080fd5b506103c76004803603604081101561036257600080fd5b61ffff823516919081019060408101602082013564010000000081111561038857600080fd5b82018360208201111561039a57600080fd5b803590602001918460018302840111640100000000831117156103bc57600080fd5b50909250905061141a565b604080519115158252519081900360200190f35b3480156103e757600080fd5b506102b8600480360360208110156103fe57600080fd5b503561ffff16611466565b34801561041557600080fd5b506102b86004803603602081101561042c57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166115b3565b34801561045557600080fd5b506102fa6117d0565b34801561046a57600080fd5b506102fa6117d5565b34801561047f57600080fd5b5061056e600480360360a081101561049657600080fd5b61ffff8235169173ffffffffffffffffffffffffffffffffffffffff602082013516918101906060810160408201356401000000008111156104d757600080fd5b8201836020820111156104e957600080fd5b8035906020019184600183028401116401000000008311171561050b57600080fd5b91939092823515159260408101906020013564010000000081111561052f57600080fd5b82018360208201111561054157600080fd5b8035906020019184600183028401116401000000008311171561056357600080fd5b5090925090506117f9565b6040805192835260208301919091528051918290030190f35b34801561059357600080fd5b506102b8600480360360408110156105aa57600080fd5b61ffff82351691908101906040810160208201356401000000008111156105d057600080fd5b8201836020820111156105e257600080fd5b8035906020019184600183028401116401000000008311171561060457600080fd5b5090925090506119b1565b34801561061b57600080fd5b50610624611b7c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561065957600080fd5b506102fa611ba0565b34801561066e57600080fd5b506102b8611baa565b34801561068357600080fd5b506106246004803603602081101561069a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611ca7565b3480156106c357600080fd5b50610775600480360360408110156106da57600080fd5b61ffff823516919081019060408101602082013564010000000081111561070057600080fd5b82018360208201111561071257600080fd5b8035906020019184600183028401116401000000008311171561073457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611db8945050505050565b6040805167ffffffffffffffff909416845273ffffffffffffffffffffffffffffffffffffffff909216602084015282820152519081900360600190f35b3480156107bf57600080fd5b506107fd600480360360408110156107d657600080fd5b50803561ffff16906020013573ffffffffffffffffffffffffffffffffffffffff16611e1c565b6040805167ffffffffffffffff9092168252519081900360200190f35b34801561082657600080fd5b50610624611e61565b34801561083b57600080fd5b506107fd6004803603604081101561085257600080fd5b61ffff823516919081019060408101602082013564010000000081111561087857600080fd5b82018360208201111561088a57600080fd5b803590602001918460018302840111640100000000831117156108ac57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611e7d945050505050565b3480156108f957600080fd5b506102fa611eb5565b34801561090e57600080fd5b506106246004803603602081101561092557600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611ed9565b34801561094e57600080fd5b506102fa611fdd565b34801561096357600080fd5b506102b86004803603606081101561097a57600080fd5b61ffff82351691908101906040810160208201356401000000008111156109a057600080fd5b8201836020820111156109b257600080fd5b803590602001918460018302840111640100000000831117156109d457600080fd5b9193909290916020810190356401000000008111156109f257600080fd5b820183602082011115610a0457600080fd5b80359060200191846001830284011164010000000083111715610a2657600080fd5b509092509050611fe3565b348015610a3d57600080fd5b506107fd60048036036040811015610a5457600080fd5b50803561ffff16906020013573ffffffffffffffffffffffffffffffffffffffff1661242b565b348015610a8757600080fd5b506102b860048036036020811015610a9e57600080fd5b503561ffff16612452565b348015610ab557600080fd5b506102fa61265f565b348015610aca57600080fd5b506102b8600480360360c0811015610ae157600080fd5b61ffff8235169190810190604081016020820135640100000000811115610b0757600080fd5b820183602082011115610b1957600080fd5b80359060200191846001830284011164010000000083111715610b3b57600080fd5b9193909273ffffffffffffffffffffffffffffffffffffffff8335169267ffffffffffffffff602082013516926040820135929091608081019060600135640100000000811115610b8b57600080fd5b820183602082011115610b9d57600080fd5b80359060200191846001830284011164010000000083111715610bbf57600080fd5b509092509050612681565b6102b8600480360360c0811015610be057600080fd5b61ffff8235169190810190604081016020820135640100000000811115610c0657600080fd5b820183602082011115610c1857600080fd5b80359060200191846001830284011164010000000083111715610c3a57600080fd5b919390929091602081019035640100000000811115610c5857600080fd5b820183602082011115610c6a57600080fd5b80359060200191846001830284011164010000000083111715610c8c57600080fd5b9193909273ffffffffffffffffffffffffffffffffffffffff83358116936020810135909116929190606081019060400135640100000000811115610cd057600080fd5b820183602082011115610ce257600080fd5b80359060200191846001830284011164010000000083111715610d0457600080fd5b509092509050612d66565b348015610d1b57600080fd5b5061062460048036036020811015610d3257600080fd5b503561ffff16613035565b348015610d4957600080fd5b506103c761305d565b348015610d5e57600080fd5b506102b860048036036080811015610d7557600080fd5b61ffff823581169260208101359091169160408201359190810190608081016060820135640100000000811115610dab57600080fd5b820183602082011115610dbd57600080fd5b80359060200191846001830284011164010000000083111715610ddf57600080fd5b50909250905061306e565b348015610df657600080fd5b506102fa60048036036020811015610e0d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613271565b348015610e3657600080fd5b506103c76132cc565b348015610e4b57600080fd5b506106246132d8565b348015610e6057600080fd5b506102b860048036036020811015610e7757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166132f4565b348015610ea057600080fd5b50610ed460048036036020811015610eb757600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16613461565b6040805161ffff958616815293909416602084015273ffffffffffffffffffffffffffffffffffffffff9182168385015216606082015290519081900360800190f35b348015610f2357600080fd5b50610f7160048036036080811015610f3a57600080fd5b5061ffff813581169160208101359091169073ffffffffffffffffffffffffffffffffffffffff60408201351690606001356134ad565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610fab578181015183820152602001610f93565b50505050905090810190601f168015610fd85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ff257600080fd5b506102fa613768565b34801561100757600080fd5b506107fd6004803603604081101561101e57600080fd5b61ffff823516919081019060408101602082013564010000000081111561104457600080fd5b82018360208201111561105657600080fd5b8035906020019184600183028401116401000000008311171561107857600080fd5b509092509050613778565b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806110b9575061ffff818116145b6110f45760405162461bcd60e51b815260040180806020018281038252602c8152602001806138c0602c913960400191505060405180910390fd5b336000818152600460209081526040808320805461ffff88167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000909116811782558085526001808552948390205494820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9690961695909517909455815194855291840192909252815190927ff2bc255571446a2f9b7cb2f0c75fd6a279bdb469f515d5a5c9910f713aeb32ca92908290030190a1505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260408120805461ffff161561120257805461ffff1661120a565b60025461ffff165b9150505b919050565b61121b6137c5565b73ffffffffffffffffffffffffffffffffffffffff16611239611e61565b73ffffffffffffffffffffffffffffffffffffffff16146112a1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff7401000000000000000000000000000000000000000090910481169082161115806112d7575061ffff818116145b6113125760405162461bcd60e51b815260040180806020018281038252602c8152602001806138c0602c913960400191505060405180910390fd5b61ffff82166113525760405162461bcd60e51b8152600401808060200182810382526028815260200180613afb6028913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff848116918217808455908116600090815260016020908152604091829020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff90931673ffffffffffffffffffffffffffffffffffffffff9093166401000000000292909217909355825191825291517feb685c087d38029bbde35299b748c6b80f099c7e5c3f9fe2dbb3ace1099e3b07929181900390910190a15050565b61ffff8316600090815260076020526040808220905182919085908590808383808284379190910194855250506040519283900360200190922060010154151593505050509392505050565b600054819061ffff74010000000000000000000000000000000000000000909104811690821611158061149c575061ffff818116145b6114d75760405162461bcd60e51b815260040180806020018281038252602c8152602001806138c0602c913960400191505060405180910390fd5b33600081815260046020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff8916908102919091178083558186526001855294839020547fffffffffffffffff0000000000000000000000000000000000000000ffffffff90951673ffffffffffffffffffffffffffffffffffffffff90951664010000000002949094178155815194855291840192909252815190927f9c199418af68d1547d7b99c71ee6a9eb18b27990dfcfb38982f3e3fb8c7b6bef92908290030190a1505050565b6115bb6137c5565b73ffffffffffffffffffffffffffffffffffffffff166115d9611e61565b73ffffffffffffffffffffffffffffffffffffffff1614611641576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166116935760405162461bcd60e51b815260040180806020018281038252602d815260200180613a51602d913960400191505060405180910390fd5b60005461ffff740100000000000000000000000000000000000000009091048116106116f05760405162461bcd60e51b815260040180806020018281038252602c815260200180613a25602c913960400191505060405180910390fd5b60008054600161ffff7401000000000000000000000000000000000000000080840482168301821681027fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff909416939093178085558390048116845260209182526040808520805473ffffffffffffffffffffffffffffffffffffffff88167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790559354845193900416825291517f18c7402e58a1bec57f4eb75af242f65ababbbe09d9db383e0542f00635e5b8c5929181900390910190a150565b600081565b7f000000000000000000000000000000000000000000000000000000000000000090565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602052604081208054829190829061ffff161561184e57600182015473ffffffffffffffffffffffffffffffffffffffff16611870565b600254640100000000900473ffffffffffffffffffffffffffffffffffffffff165b90508073ffffffffffffffffffffffffffffffffffffffff166340a7bb108c8c8c8c8c8c8c6040518863ffffffff1660e01b8152600401808861ffff1681526020018773ffffffffffffffffffffffffffffffffffffffff168152602001806020018515158152602001806020018381038352888882818152602001925080828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600081840152601f19601f8201169050808301925050509950505050505050505050604080518083038186803b15801561196c57600080fd5b505afa158015611980573d6000803e3d6000fd5b505050506040513d604081101561199657600080fd5b508051602090910151909c909b509950505050505050505050565b61ffff83166000908152600760205260408082209051849084908083838082843791909101948552505060405192839003602001909220600181015490935015159150611a479050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b805468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff163314611abe576040805162461bcd60e51b815260206004820152601960248201527f4c617965725a65726f3a20696e76616c69642063616c6c657200000000000000604482015290519081900360640190fd5b80547fffffffff00000000000000000000000000000000000000000000000000000000168155600060018201556040805161ffff86168152602081018281529181018490527f23d2684f396e92a6e2ff2d16f98e6fea00d50cb27a64b531bc0748f730211f98918691869186919060608201848480828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909201829003965090945050505050a150505050565b600254640100000000900473ffffffffffffffffffffffffffffffffffffffff1681565b60025461ffff1681565b611bb26137c5565b73ffffffffffffffffffffffffffffffffffffffff16611bd0611e61565b73ffffffffffffffffffffffffffffffffffffffff1614611c38576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260408120805461ffff62010000909104811690811415611d195760405162461bcd60e51b815260040180806020018281038252602b815260200180613b52602b913960400191505060405180910390fd5b61ffff8116611d8e5760025462010000900461ffff9081161415611d6e5760405162461bcd60e51b81526004018080602001828103825260358152602001806138ec6035913960400191505060405180910390fd5b60035473ffffffffffffffffffffffffffffffffffffffff169250611db1565b8154640100000000900473ffffffffffffffffffffffffffffffffffffffff1692505b5050919050565b600760209081526000928352604090922081518083018401805192815290840192909301919091209152805460019091015467ffffffffffffffff82169168010000000000000000900473ffffffffffffffffffffffffffffffffffffffff169083565b61ffff8216600090815260066020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205467ffffffffffffffff1692915050565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b6005602090815260009283526040909220815180830184018051928152908401929093019190912091525467ffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260408120805461ffff90811690811415611f455760405162461bcd60e51b81526004018080602001828103825260288152602001806139fd6028913960400191505060405180910390fd5b61ffff8116611fbc5760025461ffff9081161415611f945760405162461bcd60e51b81526004018080602001828103825260328152602001806139956032913960400191505060405180910390fd5b600254640100000000900473ffffffffffffffffffffffffffffffffffffffff169250611db1565b506001015473ffffffffffffffffffffffffffffffffffffffff1692915050565b61ffff81565b600854610100900460ff16600114612042576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff851660009081526007602052604080822090518690869080838380828437919091019485525050604051928390036020019092206001810154909350151591506121049050576040805162461bcd60e51b815260206004820152601c60248201527f4c617965725a65726f3a206e6f2073746f726564207061796c6f616400000000604482015290519081900360640190fd5b805467ffffffffffffffff168214801561213f5750806001015483836040518083838082843780830192505050925050506040518091039020145b612190576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964207061796c6f6164000000000000604482015290519081900360640190fd5b80547fffffffff000000000000000000000000000000000000000000000000000000008116825560006001830181905561ffff881681526005602052604080822090516801000000000000000090930473ffffffffffffffffffffffffffffffffffffffff16928890889080838380828437919091019485525050604051928390036020018320547e1d356700000000000000000000000000000000000000000000000000000000845261ffff8c166004850190815267ffffffffffffffff90911660448501819052608060248601908152608486018c905290955073ffffffffffffffffffffffffffffffffffffffff871694621d356794508d93508c928c9288928d928d929091606481019060a401888880828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b15801561232357600080fd5b505af1158015612337573d6000803e3d6000fd5b505050507f612434f39581c8e7d99746c9c20c6eb0ce8c0eb99f007c5719d620841370957d8888888486604051808661ffff168152602001806020018467ffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281038252868682818152602001925080828437600083820152604051601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018290039850909650505050505050a15050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16610100179055505050505050565b600660209081526000928352604080842090915290825290205467ffffffffffffffff1681565b61245a6137c5565b73ffffffffffffffffffffffffffffffffffffffff16612478611e61565b73ffffffffffffffffffffffffffffffffffffffff16146124e0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600054819061ffff740100000000000000000000000000000000000000009091048116908216111580612516575061ffff818116145b6125515760405162461bcd60e51b815260040180806020018281038252602c8152602001806138c0602c913960400191505060405180910390fd5b61ffff82166125915760405162461bcd60e51b815260040180806020018281038252602b815260200180613aad602b913960400191505060405180910390fd5b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ffff166201000061ffff85811682810293909317938490559204909116600090815260016020908152604091829020546003805473ffffffffffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179055815192835290517f96874dbe70c8a59e7996847475489a70a1b5096ed92cdc858b63ebabd071f8199281900390910190a15050565b60005474010000000000000000000000000000000000000000900461ffff1681565b600854610100900460ff166001146126e0576040805162461bcd60e51b815260206004820181905260248201527f4c617965725a65726f3a206e6f2072656365697665207265656e7472616e6379604482015290519081900360640190fd5b600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661020017905561ffff8816600090815260056020526040908190209051889088908083838082843791909101948552505060405192839003602001909220805467ffffffffffffffff80821660010181167fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090921682179092559087161491506127d99050576040805162461bcd60e51b815260206004820152601660248201527f4c617965725a65726f3a2077726f6e67206e6f6e636500000000000000000000604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff85166000908152600460205260409020805462010000900461ffff166128695760035473ffffffffffffffffffffffffffffffffffffffff1633146128645760405162461bcd60e51b81526004018080602001828103825260228152602001806139216022913960400191505060405180910390fd5b6128dc565b8054640100000000900473ffffffffffffffffffffffffffffffffffffffff1633146128dc576040805162461bcd60e51b815260206004820152601a60248201527f4c617965725a65726f3a20696e76616c6964206c696272617279000000000000604482015290519081900360640190fd5b61ffff891660009081526007602052604080822090518a908a90808383808284379190910194855250506040519283900360200190922060018101549093501591506129719050576040805162461bcd60e51b815260206004820152601e60248201527f4c617965725a65726f3a20696e206d65737361676520626c6f636b696e670000604482015290519081900360640190fd5b8673ffffffffffffffffffffffffffffffffffffffff16621d3567868c8c8c8b8a8a6040518863ffffffff1660e01b8152600401808761ffff168152602001806020018567ffffffffffffffff168152602001806020018381038352888882818152602001925080828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910184810383528581526020019050858580828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600088803b158015612a5857600080fd5b5087f193505050508015612a6a575060015b612d2e573d808015612a98576040519150601f19603f3d011682016040523d82523d6000602084013e612a9d565b606091505b5060405180606001604052808686905067ffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff16815260200186866040518083838082843780830192505050925050506040518091039020815250600760008d61ffff1661ffff1681526020019081526020016000208b8b604051808383808284378083019250505092505050908152602001604051809103902060008201518160000160006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060208201518160000160086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600101559050507f0f9e4d95b62f08222d612b5ab92039cd8fbbbea550a95e8df9f927436bbdf5db8b8b8b8b8b8a8a88604051808961ffff168152602001806020018773ffffffffffffffffffffffffffffffffffffffff1681526020018667ffffffffffffffff168152602001806020018060200184810384528b8b82818152602001925080828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101858103845287815260200190508787808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920186810384528751815287516020918201939189019250908190849084905b83811015612ce9578181015183820152602001612cd1565b50505050905090810190601f168015612d165780820380516001836020036101000a031916815260200191505b509b50505050505050505050505060405180910390a1505b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555050505050505050565b60085460ff16600114612dc0576040805162461bcd60e51b815260206004820152601d60248201527f4c617965725a65726f3a206e6f2073656e64207265656e7472616e6379000000604482015290519081900360640190fd5b6008805460027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090911617905533600081815260046020908152604080832061ffff8e1684526006835281842094845293909152902080547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000811667ffffffffffffffff91821660010191821617909155612e5a826137c9565b73ffffffffffffffffffffffffffffffffffffffff16634d3a0f7c3433848f8f8f8f8f8f8f8f8f6040518d63ffffffff1660e01b8152600401808c73ffffffffffffffffffffffffffffffffffffffff1681526020018b67ffffffffffffffff1681526020018a61ffff16815260200180602001806020018773ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018060200184810384528c8c82818152602001925080828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910185810384528a815260200190508a8a80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910185810383528681526020019050868680828437600081840152601f19601f8201169050808301925050509e5050505050505050505050505050506000604051808303818588803b158015612fe457600080fd5b505af1158015612ff8573d6000803e3d6000fd5b5050600880547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555050505050505050505050505050565b60016020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600854610100900460ff1660021490565b600054859061ffff7401000000000000000000000000000000000000000090910481169082161115806130a4575061ffff818116145b6130df5760405162461bcd60e51b815260040180806020018281038252602c8152602001806138c0602c913960400191505060405180910390fd5b61ffff861661313f5760025461ffff8082166201000090920416146131355760405162461bcd60e51b81526004018080602001828103825260368152602001806139c76036913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156131825760405162461bcd60e51b815260040180806020018281038252602f815260200180613b23602f913960400191505060405180910390fd5b61ffff808716600090815260016020526040908190205490517ff8e1734c000000000000000000000000000000000000000000000000000000008152918716600483019081523360248401819052604484018890526080606485019081526084850187905273ffffffffffffffffffffffffffffffffffffffff9093169363f8e1734c938a938a928a928a929160a401848480828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b15801561325157600080fd5b505af1158015613265573d6000803e3d6000fd5b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260408120805462010000900461ffff16156132b857805462010000900461ffff1661120a565b505060025462010000900461ffff16919050565b60085460ff1660021490565b60035473ffffffffffffffffffffffffffffffffffffffff1681565b6132fc6137c5565b73ffffffffffffffffffffffffffffffffffffffff1661331a611e61565b73ffffffffffffffffffffffffffffffffffffffff1614613382576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b73ffffffffffffffffffffffffffffffffffffffff81166133d45760405162461bcd60e51b81526004018080602001828103825260268152602001806139436026913960400191505060405180910390fd5b6000805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6004602052600090815260409020805460019091015461ffff808316926201000081049091169173ffffffffffffffffffffffffffffffffffffffff6401000000009092048216911684565b600054606090859061ffff7401000000000000000000000000000000000000000090910481169082161115806134e6575061ffff818116145b6135215760405162461bcd60e51b815260040180806020018281038252602c8152602001806138c0602c913960400191505060405180910390fd5b61ffff86166135815760025461ffff8082166201000090920416146135775760405162461bcd60e51b815260040180806020018281038252602c815260200180613969602c913960400191505060405180910390fd5b60025461ffff1695505b61ffff86811614156135c45760405162461bcd60e51b815260040180806020018281038252602f815260200180613a7e602f913960400191505060405180910390fd5b61ffff8087166000908152600160205260408082205481517f52d2871f000000000000000000000000000000000000000000000000000000008152938916600485015273ffffffffffffffffffffffffffffffffffffffff88811660248601526044850188905291519116926352d2871f926064808301939192829003018186803b15801561365257600080fd5b505afa158015613666573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405260208110156136ad57600080fd5b81019080805160405193929190846401000000008211156136cd57600080fd5b9083019060208201858111156136e257600080fd5b82516401000000008111828201881017156136fc57600080fd5b82525081516020918201929091019080838360005b83811015613729578181015183820152602001613711565b50505050905090810190601f1680156137565780820380516001836020036101000a031916815260200191505b50604052505050915050949350505050565b60025462010000900461ffff1681565b61ffff831660009081526005602052604080822090518490849080838380828437919091019485525050604051928390036020019092205467ffffffffffffffff16925050509392505050565b3390565b805460009061ffff166138435760025461ffff908116141561381c5760405162461bcd60e51b8152600401808060200182810382526023815260200180613ad86023913960400191505060405180910390fd5b50600254640100000000900473ffffffffffffffffffffffffffffffffffffffff1661120e565b815461ffff908116141561389e576040805162461bcd60e51b815260206004820152601b60248201527f4c617965725a65726f3a20696e20424c4f434b5f56455253494f4e0000000000604482015290519081900360640190fd5b50600181015473ffffffffffffffffffffffffffffffffffffffff1661120e56fe4c617965725a65726f3a20696e76616c6964206d6573736167696e67206c6962726172792076657273696f6e4c617965725a65726f3a20726563656976652076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a20696e76616c69642064656661756c74206c6962726172794f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734c617965725a65726f3a206e6f2044454641554c5420636f6e666967207768696c65206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e202864656661756c742920697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f742073657420436f6e66696720647572696e672044454641554c54206d6967726174696f6e4c617965725a65726f3a2073656e642076657273696f6e20697320424c4f434b5f56455253494f4e4c617965725a65726f3a2063616e206e6f7420616464206e6577206d6573736167696e67206c6962726172794c617965725a65726f3a206e65772076657273696f6e2063616e6e6f74206265207a65726f20616464726573734c617965725a65726f3a2063616e206e6f742067657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c7420726563656976652076657273696f6e206d757374203e20304c617965725a65726f3a2064656661756c7420696e20424c4f434b5f56455253494f4e4c617965725a65726f3a2064656661756c742073656e642076657273696f6e206d757374203e20304c617965725a65726f3a2063616e206e6f742073657420636f6e66696720666f7220424c4f434b5f56455253494f4e4c617965725a65726f3a20726563656976652076657273696f6e20697320424c4f434b5f56455253494f4ea2646970667358221220e6b5d21c6f8c2c9877013db38439d495d6ef7349de08e614e2356e88b774c06c64736f6c634300070600330000000000000000000000000000000000000000000000000000000000002716

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000000000000000000000000000000000000002716

-----Decoded View---------------
Arg [0] : _chainId (uint16): 10006

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000002716


Deployed ByteCode Sourcemap

11811:15669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20885:428;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20885:428:0;;;;:::i;:::-;;26072:275;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26072:275:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19129:411;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19129:411:0;;;;:::i;27234:243::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27234:243:0;;-1:-1:-1;27234:243:0;-1:-1:-1;27234:243:0;:::i;:::-;;;;;;;;;;;;;;;;;;21597:456;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21597:456:0;;;;:::i;18585:461::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18585:461:0;;;;:::i;12008:42::-;;;;;;;;;;;;;:::i;25969:95::-;;;;;;;;;;;;;:::i;22851:514::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22851:514:0;;-1:-1:-1;22851:514:0;-1:-1:-1;22851:514:0;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22061:668;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22061:668:0;;-1:-1:-1;22061:668:0;-1:-1:-1;22061:668:0;:::i;12326:52::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12245:32;;;;;;;;;;;;;:::i;11257:148::-;;;;;;;;;;;;;:::i;24632:697::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24632:697:0;;;;:::i;13142:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13142:71:0;;-1:-1:-1;13142:71:0;;-1:-1:-1;;;;;13142:71:0:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25789:172;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25789:172:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10606:87;;;;;;;;;;;;;:::i;12900:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12900:63:0;;-1:-1:-1;12900:63:0;;-1:-1:-1;;;;;12900:63:0:i;11867:31::-;;;;;;;;;;;;;:::i;23962:662::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23962:662:0;;;;:::i;11957:44::-;;;;;;;;;;;;;:::i;17432:850::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17432:850:0;;-1:-1:-1;17432:850:0;-1:-1:-1;17432:850:0;:::i;13020:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13020:66:0;;;;;;;;;;;:::i;19625:460::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19625:460:0;;;;:::i;12057:27::-;;;;;;;;;;;;;:::i;15790:1634::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15790:1634:0;;-1:-1:-1;15790:1634:0;-1:-1:-1;15790:1634:0;:::i;15073:533::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15073:533:0;;-1:-1:-1;15073:533:0;-1:-1:-1;15073:533:0;:::i;12091:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12091:66:0;;;;:::i;25468:128::-;;;;;;;;;;;;;:::i;20232:552::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20232:552:0;;-1:-1:-1;20232:552:0;-1:-1:-1;20232:552:0;:::i;26355:287::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26355:287:0;;;;:::i;25337:123::-;;;;;;;;;;;;;:::i;12385:43::-;;;;;;;;;;;;;:::i;11560:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11560:244:0;;;;:::i;12789:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12789:55:0;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26650:576;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26650:576:0;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12284:35;;;;;;;;;;;;;:::i;25604:177::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25604:177:0;;-1:-1:-1;25604:177:0;-1:-1:-1;25604:177:0;:::i;20885:428::-;14817:13;;20960:11;;14817:13;;;;;;;14805:25;;;;;;:54;;-1:-1:-1;11996:5:0;14834:25;;;;14805:54;14797:111;;;;-1:-1:-1;;;14797:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21062:10:::1;21014:30;21047:26:::0;;;:14:::1;:26;::::0;;;;;;;21084:34;;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;21222:26;;;21084:34;21222:26;;;;;;;;21199:20;;::::1;:49:::0;;;::::1;21047:26;21222::::0;;;::::1;21199:49:::0;;;::::1;::::0;;;21264:41;;;;;;;::::1;::::0;;;;;;21047:26;;21264:41:::1;::::0;;;;;;;::::1;14919:1;20885:428:::0;;:::o;26072:275::-;26206:32;;;26154:6;26206:32;;;:14;:32;;;;;26256:20;;:39;:20;:39;:83;;26319:20;;;;26256:83;;;26298:18;;;;26256:83;26249:90;;;26072:275;;;;:::o;19129:411::-;10837:12;:10;:12::i;:::-;10826:23;;:7;:5;:7::i;:::-;:23;;;10818:68;;;;;-1:-1:-1;;;10818:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14817:13:::1;::::0;19223:22;;14817:13:::1;::::0;;;::::1;::::0;::::1;14805:25:::0;;::::1;;;::::0;:54:::1;;-1:-1:-1::0;11996:5:0::1;14834:25:::0;;::::1;;14805:54;14797:111;;;;-1:-1:-1::0;;;14797:111:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19266:41:::2;::::0;::::2;19258:94;;;;-1:-1:-1::0;;;19258:94:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19363:18;:43:::0;;;::::2;;::::0;;::::2;::::0;;::::2;::::0;;;19452:18;;::::2;-1:-1:-1::0;19438:33:0;;;-1:-1:-1;19438:33:0::2;::::0;;;;;;;;;19417:54;;;::::2;19438:33;::::0;;::::2;19417:54:::0;::::2;::::0;;;::::2;::::0;;;19487:45;;;;;;;::::2;::::0;;;;;;;;;::::2;10897:1:::1;19129:411:::0;:::o;27234:243::-;27384:26;;;27340:4;27384:26;;;:13;:26;;;;;;:39;;27340:4;;27384:26;27411:11;;;;27384:39;27411:11;;;;27384:39;;;;;;;;;-1:-1:-1;;27384:39:0;;;;;;;;;;;27441:14;;;:28;;;-1:-1:-1;;;;27234:243:0;;;;;:::o;21597:456::-;14817:13;;21675:11;;14817:13;;;;;;;14805:25;;;;;;:54;;-1:-1:-1;11996:5:0;14834:25;;;;14805:54;14797:111;;;;-1:-1:-1;;;14797:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21777:10:::1;21729:30;21762:26:::0;;;:14:::1;:26;::::0;;;;;;;21799:37;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;21958:26;;;-1:-1:-1;21958:26:0;;;;;;;21917:68;;;::::1;21762:26;21958::::0;;::::1;21917:68:::0;::::1;::::0;;;::::1;::::0;;22001:44;;;;;;;::::1;::::0;;;;;;21762:26;;22001:44:::1;::::0;;;;;;;::::1;14919:1;21597:456:::0;;:::o;18585:461::-;10837:12;:10;:12::i;:::-;10826:23;;:7;:5;:7::i;:::-;:23;;;10818:68;;;;;-1:-1:-1;;;10818:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18680:43:::1;::::0;::::1;18672:101;;;;-1:-1:-1::0;;;18672:101:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18792:13;::::0;18808:5:::1;18792:13:::0;;;::::1;::::0;::::1;:21;18784:78;;;;-1:-1:-1::0;;;18784:78:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18873:13;:15:::0;;::::1;;::::0;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;18913:13;;::::1;::::0;::::1;18899:28:::0;;::::1;::::0;;;;;;;:86;;::::1;::::0;::::1;::::0;;;::::1;;::::0;;19024:13;;19001:37;;19024:13;;::::1;;19001:37:::0;;;;::::1;::::0;;;;;;;;;::::1;18585:461:::0;:::o;12008:42::-;12049:1;12008:42;:::o;25969:95::-;26049:7;25969:95;:::o;22851:514::-;23096:32;;;23023:14;23096:32;;;:14;:32;;;;;23172:20;;23023:14;;23096:32;23023:14;;23172:39;:20;:39;:83;;23235:20;;;;;;23172:83;;;23214:18;;;;;;;23172:83;23139:116;;23273:3;:16;;;23290:11;23303:16;23321:8;;23331:9;23342:14;;23273:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23273:84:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23273:84:0;;;;;;;;;;;-1:-1:-1;22851:514:0;-1:-1:-1;;;;;;;;;;22851:514:0:o;22061:668::-;22193:26;;;22166:24;22193:26;;;:13;:26;;;;;;:39;;22220:11;;;;22193:39;22220:11;;;;22193:39;;;;;;;;;-1:-1:-1;;22193:39:0;;;;;;;;;;;22330:14;;;;22193:39;;-1:-1:-1;22330:28:0;;;-1:-1:-1;22322:69:0;;-1:-1:-1;22322:69:0;;;;-1:-1:-1;;;22322:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22410:13;;;;;:27;:13;22427:10;22410:27;22402:65;;;;;-1:-1:-1;;;22402:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22516:20;;22547:26;;;;22535:1;22516:20;22584:14;;:27;22675:46;;;;;;;;;;;;;;;;;;;;;;22696:11;;22709;;;;22675:46;;;;22709:11;;;;22675:46;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22675:46:0;;-1:-1:-1;;;;;22675:46:0;22061:668;;;;:::o;12326:52::-;;;;;;;;;:::o;12245:32::-;;;;;;:::o;11257:148::-;10837:12;:10;:12::i;:::-;10826:23;;:7;:5;:7::i;:::-;:23;;;10818:68;;;;;-1:-1:-1;;;10818:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11364:1:::1;11348:6:::0;;11327:40:::1;::::0;::::1;11348:6:::0;;::::1;::::0;11327:40:::1;::::0;11364:1;;11327:40:::1;11395:1;11378:19:::0;;;::::1;::::0;;11257:148::o;24632:697::-;24799:32;;;24724:29;24799:32;;;:14;:32;;;;;24866:23;;;;;;;;;;24908:31;;;24900:87;;;;-1:-1:-1;;;24900:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25002:33;;;24998:324;;25060:21;;;;;11996:5;25060:21;;;:38;;25052:104;;;;-1:-1:-1;;;25052:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25195:28;;;;;-1:-1:-1;24998:324:0;;;25280:30;;;;;;;;-1:-1:-1;24998:324:0;24632:697;;;;;:::o;13142:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25789:172::-;25914:26;;;25888:6;25914:26;;;:13;:26;;;;;;;;:39;;;;;;;;;;;;;25789:172;;;;:::o;10606:87::-;10652:7;10679:6;;;10606:87;:::o;12900:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11867:31::-;;;:::o;23962:662::-;24123:32;;;24051:26;24123:32;;;:14;:32;;;;;24187:20;;;;;;;24226:28;;;24218:81;;;;-1:-1:-1;;;24218:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24314:30;;;24310:307;;24369:18;;11996:5;24369:18;;;:35;;24361:98;;;;-1:-1:-1;;;24361:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24503:18;;;;;;;;-1:-1:-1;24310:307:0;;;-1:-1:-1;24584:20:0;;;;;;23962:662;-1:-1:-1;;23962:662:0:o;11957:44::-;11996:5;11957:44;:::o;17432:850::-;14506:22;;;;;:38;:22;14082:1;14506:38;14498:83;;;;;-1:-1:-1;;;14498:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14592:22;:33;;;;;;;;17603:26:::1;::::0;::::1;-1:-1:-1::0;17603:26:0;;;:13:::1;:26;::::0;;;;;:39;;17630:11;;;;17603:39;17630:11;;;;17603:39;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;17603:39:0::1;::::0;;;;;::::1;::::0;;;;17661:14:::1;::::0;::::1;::::0;17603:39;;-1:-1:-1;17661:28:0;::::1;::::0;-1:-1:-1;17653:69:0::1;::::0;-1:-1:-1;17653:69:0::1;;::::0;;-1:-1:-1;;;17653:69:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17760:16:::0;;::::1;;17741:35:::0;::::1;:76:::0;::::1;;;;17803:2;:14;;;17790:8;;17780:19;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;17741:76;17733:115;;;::::0;;-1:-1:-1;;;17733:115:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;17882:13:::0;;17973:26;;;;;-1:-1:-1;;18010:14:0;::::1;:27:::0;;;18065:25:::1;::::0;::::1;::::0;;:12:::1;:25;::::0;;;;;:38;;17882:13;;;::::1;;;::::0;18091:11;;;;18065:38;18091:11;;;;18065:38;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;18065:38:0::1;::::0;;;;;::::1;::::0;;;;18116:83;;;::::1;::::0;::::1;;::::0;::::1;::::0;;;18065:38:::1;::::0;;::::1;18116:83:::0;;;;;;;;;;;;;;;;;;;18065:38;;-1:-1:-1;18116:40:0::1;::::0;::::1;::::0;::::1;::::0;-1:-1:-1;18157:11:0;;-1:-1:-1;18170:11:0;;;;18065:38;;18190:8;;;;18116:83;;;;;;;;18170:11;;;;18116:83;::::1;;::::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;18116:83:0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18215:59;18230:11;18243;;18256:5;18263:10;18215:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;18215:59:0;;-1:-1:-1;;;;;;;18215:59:0::1;-1:-1:-1::0;;14648:22:0;:37;;;;;;;;-1:-1:-1;;;;;;17432:850:0:o;13020:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19625:460::-;10837:12;:10;:12::i;:::-;10826:23;;:7;:5;:7::i;:::-;:23;;;10818:68;;;;;-1:-1:-1;;;10818:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14817:13:::1;::::0;19725:25;;14817:13:::1;::::0;;;::::1;::::0;::::1;14805:25:::0;;::::1;;;::::0;:54:::1;;-1:-1:-1::0;11996:5:0::1;14834:25:::0;;::::1;;14805:54;14797:111;;;;-1:-1:-1::0;;;14797:111:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19771:44:::2;::::0;::::2;19763:100;;;;-1:-1:-1::0;;;19763:100:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19874:21;:49:::0;;;::::2;::::0;::::2;::::0;;::::2;::::0;;::::2;::::0;;;::::2;::::0;;;;19987:21;::::2;::::0;;::::2;-1:-1:-1::0;19973:36:0;;;-1:-1:-1;19973:36:0::2;::::0;;;;;;;;;19934:28:::2;:76:::0;;19973:36:::2;::::0;;::::2;19934:76:::0;;;::::2;::::0;;;::::2;::::0;;20026:51;;;;;;;::::2;::::0;;;;;;;;::::2;10897:1:::1;19625:460:::0;:::o;12057:27::-;;;;;;;;;:::o;15790:1634::-;14506:22;;;;;:38;:22;14082:1;14506:38;14498:83;;;;;-1:-1:-1;;;14498:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14592:22;:33;;;;;;;;16073:25:::1;::::0;::::1;-1:-1:-1::0;16073:25:0;;;:12:::1;:25;::::0;;;;;;:38;;16099:11;;;;16073:38;16099:11;;;;16073:38;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;16073:38:0::1;::::0;;;;;::::1;::::0;;;;16071:40;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;::::1;::::0;;;16061:50;;::::1;;::::0;-1:-1:-1;16053:85:0::1;::::0;-1:-1:-1;16053:85:0::1;;::::0;;-1:-1:-1;;;16053:85:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16184:27;::::0;::::1;16151:30;16184:27:::0;;;:14:::1;:27;::::0;;;;16376:23;;;;::::1;:42;:23;16372:280;;16443:28;::::0;:42:::1;:28;16475:10;16443:42;16435:89;;;;-1:-1:-1::0;;;16435:89:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16372:280;;;16565:30:::0;;;;::::1;:44;:30;16599:10;16565:44;16557:83;;;::::0;;-1:-1:-1;;;16557:83:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16733:26;::::0;::::1;16706:24;16733:26:::0;;;:13:::1;:26;::::0;;;;;:39;;16760:11;;;;16733:39;16760:11;;;;16733:39;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;;16733:39:0::1;::::0;;;;;::::1;::::0;;;;16791:14:::1;::::0;::::1;::::0;16733:39;;-1:-1:-1;16791:28:0;;-1:-1:-1;16783:71:0::1;::::0;-1:-1:-1;16783:71:0::1;;::::0;;-1:-1:-1;;;16783:71:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;16890:11;16871:41;;;16918:9;16929:11;16942;;16955:6;16963:8;;16871:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;16871:101:0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;16867:550;;;::::0;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17235:72;;;;;;;;17256:8;;:15;;17235:72;;;;;;17274:11;17235:72;;;;;;17297:8;;17287:19;;;;;;;;;;;;;;;;;;;;;;;;;;;17235:72;;::::0;17193:13:::1;:26;17207:11;17193:26;;;;;;;;;;;;;;;17220:11;;17193:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17327:78;17341:11;17354;;17367;17380:6;17388:8;;17398:6;17327:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;17327:78:0;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;-1:-1:-1;17327:78:0;;;;;;;::::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17051:366;16867:550;-1:-1:-1::0;;14648:22:0;:37;;;;;;;;-1:-1:-1;;;;;;;;15790:1634:0:o;15073:533::-;14275:19;;:35;:19;14082:1;14275:35;14267:77;;;;;-1:-1:-1;;;14267:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14355:19;:30;;14125:1;14355:30;;;;;;;15354:10:::1;-1:-1:-1::0;15339:26:0;;;:14:::1;:26;::::0;;;;;;;15393::::1;::::0;::::1;::::0;;:13:::1;:26:::0;;;;;:38;;;;;;;;;15391:40;;;;::::1;;::::0;;::::1;-1:-1:-1::0;15391:40:0::1;::::0;;::::1;;::::0;;;15442:25:::1;15339:26:::0;15442:15:::1;:25::i;:::-;:30;;;15480:9;15491:10;15503:5;15510:11;15523:12;;15537:8;;15547:14;15563:18;15583:14;;15442:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;15442:156:0;;;;;::::1;;::::0;;::::1;::::0;::::1;;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;::::1;;::::0;-1:-1:-1;15442:156:0;;;;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14408:19:0;:34;;;;14082:1;14408:34;;;-1:-1:-1;;;;;;;;;;;;;;15073:533:0:o;12091:66::-;;;;;;;;;;;;;;;:::o;25468:128::-;25554:22;;;;;:34;:22;14125:1;25554:34;25468:128;:::o;20232:552::-;14817:13;;20358:8;;14817:13;;;;;;;14805:25;;;;;;:54;;-1:-1:-1;11996:5:0;14834:25;;;;14805:54;14797:111;;;;-1:-1:-1;;;14797:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20383:27:::1;::::0;::::1;20379:214;;20457:21;::::0;::::1;20435:18:::0;;::::1;20457:21:::0;;;::::1;;20435:43;20427:110;;;;-1:-1:-1::0;;;20427:110:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20563:18;::::0;::::1;;::::0;-1:-1:-1;20379:214:0::1;11996:5;20611:25:::0;;::::1;;;20603:85;;;;-1:-1:-1::0;;;20603:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20699:23;::::0;;::::1;;::::0;;;:13:::1;:23;::::0;;;;;;;:77;;;;;;;::::1;;::::0;::::1;::::0;;;20743:10:::1;20699:77:::0;;;;;;;;;;;;;;;;;;;;;;;;;:23:::1;::::0;;::::1;::::0;:33:::1;::::0;20733:8;;20755:11;;20768:7;;;;20699:77;;;20768:7;;;;20699:77;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;20232:552:::0;;;;;;:::o;26355:287::-;26492:32;;;26440:6;26492:32;;;:14;:32;;;;;26542:23;;;;;:42;:23;:42;:92;;26611:23;;;;;;;26542:92;;;-1:-1:-1;;26587:21:0;;;;;;;;26355:287;-1:-1:-1;26355:287:0:o;25337:123::-;25421:19;;:31;:19;14125:1;25421:31;25337:123;:::o;12385:43::-;;;;;;:::o;11560:244::-;10837:12;:10;:12::i;:::-;10826:23;;:7;:5;:7::i;:::-;:23;;;10818:68;;;;;-1:-1:-1;;;10818:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11649:22:::1;::::0;::::1;11641:73;;;;-1:-1:-1::0;;;11641:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11751:6;::::0;;11730:38:::1;::::0;::::1;::::0;;::::1;::::0;11751:6;::::1;::::0;11730:38:::1;::::0;::::1;11779:6;:17:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;11560:244::o;12789:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;26650:576::-;14817:13;;26802:12;;26783:8;;14817:13;;;;;;;14805:25;;;;;;:54;;-1:-1:-1;11996:5:0;14834:25;;;;14805:54;14797:111;;;;-1:-1:-1;;;14797:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26831:27:::1;::::0;::::1;26827:204;;26905:21;::::0;::::1;26883:18:::0;;::::1;26905:21:::0;;;::::1;;26883:43;26875:100;;;;-1:-1:-1::0;;;26875:100:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27001:18;::::0;::::1;;::::0;-1:-1:-1;26827:204:0::1;11996:5;27049:25:::0;;::::1;;;27041:85;;;;-1:-1:-1::0;;;27041:85:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27144:23;::::0;;::::1;;::::0;;;:13:::1;:23;::::0;;;;;;:74;;;;;;;::::1;;::::0;::::1;::::0;:23:::1;:74:::0;;::::1;::::0;;;;;;;;;;;;:23;::::1;::::0;:33:::1;::::0;:74;;;;;:23;;:74;;;;;:23;:74;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;::::1;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;;;;;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;-1:-1:-1;27144:74:0::1;;;;;::::0;::::1;;::::0;;-1:-1:-1;27144:74:0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;27137:81;;26650:576:::0;;;;;;;:::o;12284:35::-;;;;;;;;;:::o;25604:177::-;25735:25;;;25709:6;25735:25;;;:12;:25;;;;;;:38;;25761:11;;;;25735:38;25761:11;;;;25735:38;;;;;;;;;-1:-1:-1;;25735:38:0;;;;;;;;;;;;;;;-1:-1:-1;;;25604:177:0;;;;;:::o;9244:106::-;9332:10;9244:106;:::o;23373:581::-;23496:20;;23453:26;;23496:39;:20;23492:455;;23614:18;;11996:5;23614:18;;;:35;;23606:83;;;;-1:-1:-1;;;23606:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23711:18:0;;;;;;;23704:25;;23492:455;23824:20;;11996:5;23824:20;;;:37;;23816:77;;;;;-1:-1:-1;;;23816:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23915:20:0;;;;;;23908:27;

Swarm Source

ipfs://e6b5d21c6f8c2c9877013db38439d495d6ef7349de08e614e2356e88b774c06c
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading