ETH Price: $3,253.55 (-0.45%)
Gas: 1 Gwei

Contract

0xBAa370135ec8ec5A6d2cf3434EE56ecdC32Cb690
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer To Chai...199884312024-05-31 7:49:3556 days ago1717141775IN
0xBAa37013...dC32Cb690
0.00014636 ETH0.001286386.24385955
Transfer To Chai...199814452024-05-30 8:23:1157 days ago1717057391IN
0xBAa37013...dC32Cb690
0.00016099 ETH0.0023921211.6108809
Transfer To Chai...198311532024-05-09 8:00:2378 days ago1715241623IN
0xBAa37013...dC32Cb690
0.002 ETH0.000979634.59895259
Transfer To Chai...198244702024-05-08 9:32:3579 days ago1715160755IN
0xBAa37013...dC32Cb690
0.00018033 ETH0.000879984.13159956
Transfer To Chai...198244542024-05-08 9:29:2379 days ago1715160563IN
0xBAa37013...dC32Cb690
0.00017633 ETH0.000464033.97496793
Transfer To Chai...198244402024-05-08 9:26:3579 days ago1715160395IN
0xBAa37013...dC32Cb690
0.00017633 ETH0.000106424.15037499
Transfer To Chai...198243292024-05-08 9:03:5979 days ago1715159039IN
0xBAa37013...dC32Cb690
0.00017781 ETH0.000309325.55430182
Transfer To Chai...198241982024-05-08 8:37:3579 days ago1715157455IN
0xBAa37013...dC32Cb690
0.00017781 ETH0.000358586.43876749
Accept Ownership195726922024-04-03 3:53:35115 days ago1712116415IN
0xBAa37013...dC32Cb690
0 ETH0.0006049121.47054979
Transfer Ownersh...195384022024-03-29 8:13:47119 days ago1711700027IN
0xBAa37013...dC32Cb690
0 ETH0.001157924.21590691
Transfer To Chai...195311912024-03-28 7:42:11120 days ago1711611731IN
0xBAa37013...dC32Cb690
0.00017931 ETH0.0050034420.24301015
Set Allowed Peer195300462024-03-28 3:50:23121 days ago1711597823IN
0xBAa37013...dC32Cb690
0 ETH0.0011140923.82626082
0x60a06040195294292024-03-28 1:45:23121 days ago1711590323IN
 Create: CCWSTBTMessager
0 ETH0.038241330

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
199884312024-05-31 7:49:3556 days ago1717141775
0xBAa37013...dC32Cb690
0.00014636 ETH
199814452024-05-30 8:23:1157 days ago1717057391
0xBAa37013...dC32Cb690
0.00016099 ETH
198311532024-05-09 8:00:2378 days ago1715241623
0xBAa37013...dC32Cb690
0.00182331 ETH
198311532024-05-09 8:00:2378 days ago1715241623
0xBAa37013...dC32Cb690
0.00017668 ETH
198244702024-05-08 9:32:3579 days ago1715160755
0xBAa37013...dC32Cb690
0.00000252 ETH
198244702024-05-08 9:32:3579 days ago1715160755
0xBAa37013...dC32Cb690
0.00017781 ETH
195311912024-03-28 7:42:11120 days ago1711611731
0xBAa37013...dC32Cb690
0.000001 ETH
195311912024-03-28 7:42:11120 days ago1711611731
0xBAa37013...dC32Cb690
0.00017831 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CCWSTBTMessager

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-28
*/

// Sources flattened with hardhat v2.22.2 https://hardhat.org

// SPDX-License-Identifier: MIT

// File @chainlink/contracts-ccip/src/v0.8/ccip/libraries/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

// End consumer library.
library Client {
  /// @dev RMN depends on this struct, if changing, please notify the RMN maintainers.
  struct EVMTokenAmount {
    address token; // token address on the local chain.
    uint256 amount; // Amount of tokens.
  }

  struct Any2EVMMessage {
    bytes32 messageId; // MessageId corresponding to ccipSend on source.
    uint64 sourceChainSelector; // Source chain selector.
    bytes sender; // abi.decode(sender) if coming from an EVM chain.
    bytes data; // payload sent in original message.
    EVMTokenAmount[] destTokenAmounts; // Tokens and their amounts in their destination chain representation.
  }

  // If extraArgs is empty bytes, the default is 200k gas limit.
  struct EVM2AnyMessage {
    bytes receiver; // abi.encode(receiver address) for dest EVM chains
    bytes data; // Data payload
    EVMTokenAmount[] tokenAmounts; // Token transfers
    address feeToken; // Address of feeToken. address(0) means you will send msg.value.
    bytes extraArgs; // Populate this with _argsToBytes(EVMExtraArgsV1)
  }

  // bytes4(keccak256("CCIP EVMExtraArgsV1"));
  bytes4 public constant EVM_EXTRA_ARGS_V1_TAG = 0x97a657c9;
  struct EVMExtraArgsV1 {
    uint256 gasLimit;
  }

  function _argsToBytes(EVMExtraArgsV1 memory extraArgs) internal pure returns (bytes memory bts) {
    return abi.encodeWithSelector(EVM_EXTRA_ARGS_V1_TAG, extraArgs);
  }
}


// File @chainlink/contracts-ccip/src/v0.8/ccip/interfaces/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

/// @notice Application contracts that intend to receive messages from
/// the router should implement this interface.
interface IAny2EVMMessageReceiver {
  /// @notice Called by the Router to deliver a message.
  /// If this reverts, any token transfers also revert. The message
  /// will move to a FAILED state and become available for manual execution.
  /// @param message CCIP Message
  /// @dev Note ensure you check the msg.sender is the OffRampRouter
  function ccipReceive(Client.Any2EVMMessage calldata message) external;
}


// File @chainlink/contracts-ccip/src/v0.8/vendor/openzeppelin-solidity/v4.8.3/contracts/utils/introspection/[email protected]

// Original license: SPDX_License_Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}


// File @chainlink/contracts-ccip/src/v0.8/ccip/applications/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

/// @title CCIPReceiver - Base contract for CCIP applications that can receive messages.
abstract contract CCIPReceiver is IAny2EVMMessageReceiver, IERC165 {
  address internal immutable i_ccipRouter;

  constructor(address router) {
    if (router == address(0)) revert InvalidRouter(address(0));
    i_ccipRouter = router;
  }

  /// @notice IERC165 supports an interfaceId
  /// @param interfaceId The interfaceId to check
  /// @return true if the interfaceId is supported
  /// @dev Should indicate whether the contract implements IAny2EVMMessageReceiver
  /// e.g. return interfaceId == type(IAny2EVMMessageReceiver).interfaceId || interfaceId == type(IERC165).interfaceId
  /// This allows CCIP to check if ccipReceive is available before calling it.
  /// If this returns false or reverts, only tokens are transferred to the receiver.
  /// If this returns true, tokens are transferred and ccipReceive is called atomically.
  /// Additionally, if the receiver address does not have code associated with
  /// it at the time of execution (EXTCODESIZE returns 0), only tokens will be transferred.
  function supportsInterface(bytes4 interfaceId) public pure virtual override returns (bool) {
    return interfaceId == type(IAny2EVMMessageReceiver).interfaceId || interfaceId == type(IERC165).interfaceId;
  }

  /// @inheritdoc IAny2EVMMessageReceiver
  function ccipReceive(Client.Any2EVMMessage calldata message) external virtual override onlyRouter {
    _ccipReceive(message);
  }

  /// @notice Override this function in your implementation.
  /// @param message Any2EVMMessage
  function _ccipReceive(Client.Any2EVMMessage memory message) internal virtual;

  /////////////////////////////////////////////////////////////////////
  // Plumbing
  /////////////////////////////////////////////////////////////////////

  /// @notice Return the current router
  /// @return CCIP router address
  function getRouter() public view returns (address) {
    return address(i_ccipRouter);
  }

  error InvalidRouter(address router);

  /// @dev only calls from the set router are accepted.
  modifier onlyRouter() {
    if (msg.sender != address(i_ccipRouter)) revert InvalidRouter(msg.sender);
    _;
  }
}


// File @chainlink/contracts-ccip/src/v0.8/ccip/interfaces/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

interface IRouterClient {
  error UnsupportedDestinationChain(uint64 destChainSelector);
  error InsufficientFeeTokenAmount();
  error InvalidMsgValue();

  /// @notice Checks if the given chain ID is supported for sending/receiving.
  /// @param chainSelector The chain to check.
  /// @return supported is true if it is supported, false if not.
  function isChainSupported(uint64 chainSelector) external view returns (bool supported);

  /// @notice Gets a list of all supported tokens which can be sent or received
  /// to/from a given chain id.
  /// @param chainSelector The chainSelector.
  /// @return tokens The addresses of all tokens that are supported.
  function getSupportedTokens(uint64 chainSelector) external view returns (address[] memory tokens);

  /// @param destinationChainSelector The destination chainSelector
  /// @param message The cross-chain CCIP message including data and/or tokens
  /// @return fee returns execution fee for the message
  /// delivery to destination chain, denominated in the feeToken specified in the message.
  /// @dev Reverts with appropriate reason upon invalid message.
  function getFee(
    uint64 destinationChainSelector,
    Client.EVM2AnyMessage memory message
  ) external view returns (uint256 fee);

  /// @notice Request a message to be sent to the destination chain
  /// @param destinationChainSelector The destination chain ID
  /// @param message The cross-chain CCIP message including data and/or tokens
  /// @return messageId The message ID
  /// @dev Note if msg.value is larger than the required fee (from getFee) we accept
  /// the overpayment with no refund.
  /// @dev Reverts with appropriate reason upon invalid message.
  function ccipSend(
    uint64 destinationChainSelector,
    Client.EVM2AnyMessage calldata message
  ) external payable returns (bytes32);
}


// File @chainlink/contracts-ccip/src/v0.8/shared/interfaces/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

interface IOwnable {
  function owner() external returns (address);

  function transferOwnership(address recipient) external;

  function acceptOwnership() external;
}


// File @chainlink/contracts-ccip/src/v0.8/shared/access/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

/// @title The ConfirmedOwner contract
/// @notice A contract with helpers for basic contract ownership.
contract ConfirmedOwnerWithProposal is IOwnable {
  address private s_owner;
  address private s_pendingOwner;

  event OwnershipTransferRequested(address indexed from, address indexed to);
  event OwnershipTransferred(address indexed from, address indexed to);

  constructor(address newOwner, address pendingOwner) {
    // solhint-disable-next-line custom-errors
    require(newOwner != address(0), "Cannot set owner to zero");

    s_owner = newOwner;
    if (pendingOwner != address(0)) {
      _transferOwnership(pendingOwner);
    }
  }

  /// @notice Allows an owner to begin transferring ownership to a new address.
  function transferOwnership(address to) public override onlyOwner {
    _transferOwnership(to);
  }

  /// @notice Allows an ownership transfer to be completed by the recipient.
  function acceptOwnership() external override {
    // solhint-disable-next-line custom-errors
    require(msg.sender == s_pendingOwner, "Must be proposed owner");

    address oldOwner = s_owner;
    s_owner = msg.sender;
    s_pendingOwner = address(0);

    emit OwnershipTransferred(oldOwner, msg.sender);
  }

  /// @notice Get the current owner
  function owner() public view override returns (address) {
    return s_owner;
  }

  /// @notice validate, transfer ownership, and emit relevant events
  function _transferOwnership(address to) private {
    // solhint-disable-next-line custom-errors
    require(to != msg.sender, "Cannot transfer to self");

    s_pendingOwner = to;

    emit OwnershipTransferRequested(s_owner, to);
  }

  /// @notice validate access
  function _validateOwnership() internal view {
    // solhint-disable-next-line custom-errors
    require(msg.sender == s_owner, "Only callable by owner");
  }

  /// @notice Reverts if called by anyone other than the contract owner.
  modifier onlyOwner() {
    _validateOwnership();
    _;
  }
}


// File @chainlink/contracts-ccip/src/v0.8/shared/access/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

/// @title The ConfirmedOwner contract
/// @notice A contract with helpers for basic contract ownership.
contract ConfirmedOwner is ConfirmedOwnerWithProposal {
  constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {}
}


// File @chainlink/contracts-ccip/src/v0.8/shared/access/[email protected]

// Original license: SPDX_License_Identifier: MIT
pragma solidity ^0.8.0;

/// @title The OwnerIsCreator contract
/// @notice A contract with helpers for basic contract ownership.
contract OwnerIsCreator is ConfirmedOwner {
  constructor() ConfirmedOwner(msg.sender) {}
}


// File contracts/CCWSTBTMessager.sol

// Original license: SPDX_License_Identifier: MIT
pragma solidity 0.8.19;




interface ICCIPClient {
    function getCcSendData(address sender, address receiver, uint256 value) external view returns (bytes memory message);

    function ccSend(address sender, address recipient, uint256 value) external returns (bytes memory message);

    function ccReceive(bytes calldata message) external;
}

contract CCWSTBTMessager is CCIPReceiver, OwnerIsCreator {
    ICCIPClient public ccipClient;

    mapping(uint64 => mapping(address => bool)) public allowedPeer;

    event AllowedPeer(uint64 chainSelector, address messager, bool allowed);
    event CCReceive(bytes32 indexed messageID, bytes messageData);
    event CCSend(bytes32 indexed messageID, bytes messageData);

    error NotAllowlisted(uint64 chainSelector, address messager);

    constructor(
        address _router,
        address _ccipClient
    ) CCIPReceiver(_router) {
        ccipClient = ICCIPClient(_ccipClient);
    }

    function setAllowedPeer(uint64 chainSelector, address messager, bool allowed) external onlyOwner {
        allowedPeer[chainSelector][messager] = allowed;
    }

    function _ccipReceive(
        Client.Any2EVMMessage memory any2EvmMessage
    ) internal override {
        address sender = abi.decode(any2EvmMessage.sender, (address));
        if (!allowedPeer[any2EvmMessage.sourceChainSelector][sender]) {
            revert NotAllowlisted(any2EvmMessage.sourceChainSelector, sender);
        }

        ccipClient.ccReceive(any2EvmMessage.data);
        emit CCReceive(any2EvmMessage.messageId, any2EvmMessage.data);
    }

    function calculateFeeAndMessage(
        uint64 destinationChainSelector,
        address messageReceiver,
        address sender,
        address recipient,
        uint value,
        bytes calldata extraArgs
    ) public view returns (uint256 fee, Client.EVM2AnyMessage memory evm2AnyMessage) {
        bytes memory data = ccipClient.getCcSendData(sender, recipient, value);
        evm2AnyMessage = Client.EVM2AnyMessage({
        receiver : abi.encode(messageReceiver),
        data : data,
        tokenAmounts : new Client.EVMTokenAmount[](0),
        extraArgs : extraArgs,
        feeToken : address(0)
        });
        fee = IRouterClient(getRouter()).getFee(destinationChainSelector, evm2AnyMessage);
    }

    function transferToChain(
        uint64 destinationChainSelector,
        address messageReceiver,
        address recipient,
        uint value,
        bytes calldata extraArgs
    ) external payable returns (bytes32 messageId) {
        if (!allowedPeer[destinationChainSelector][messageReceiver]) {
            revert NotAllowlisted(destinationChainSelector, messageReceiver);
        }
        bytes memory data = ccipClient.ccSend(msg.sender, recipient, value);
        Client.EVM2AnyMessage memory evm2AnyMessage = Client.EVM2AnyMessage({
        receiver : abi.encode(messageReceiver),
        data : data,
        tokenAmounts : new Client.EVMTokenAmount[](0),
        extraArgs : extraArgs,
        feeToken : address(0)
        });
        uint256 fee = IRouterClient(getRouter()).getFee(destinationChainSelector, evm2AnyMessage);
        require(msg.value >= fee, "CCWSTBTMessager: INSUFFICIENT_FUNDS");
        messageId = IRouterClient(getRouter()).ccipSend{value : fee}(
            destinationChainSelector,
            evm2AnyMessage
        );
        if (msg.value - fee > 0) {
            bool success = payable(msg.sender).send(msg.value - fee);
            require(success, "CCWSTBTMessager: TRANSFER_FAILED");
        }
        emit CCSend(messageId, data);
        return messageId;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_ccipClient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"InvalidRouter","type":"error"},{"inputs":[{"internalType":"uint64","name":"chainSelector","type":"uint64"},{"internalType":"address","name":"messager","type":"address"}],"name":"NotAllowlisted","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"chainSelector","type":"uint64"},{"indexed":false,"internalType":"address","name":"messager","type":"address"},{"indexed":false,"internalType":"bool","name":"allowed","type":"bool"}],"name":"AllowedPeer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"messageID","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"messageData","type":"bytes"}],"name":"CCReceive","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"messageID","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"messageData","type":"bytes"}],"name":"CCSend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"},{"internalType":"address","name":"","type":"address"}],"name":"allowedPeer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"destinationChainSelector","type":"uint64"},{"internalType":"address","name":"messageReceiver","type":"address"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"extraArgs","type":"bytes"}],"name":"calculateFeeAndMessage","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"},{"components":[{"internalType":"bytes","name":"receiver","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Client.EVMTokenAmount[]","name":"tokenAmounts","type":"tuple[]"},{"internalType":"address","name":"feeToken","type":"address"},{"internalType":"bytes","name":"extraArgs","type":"bytes"}],"internalType":"struct Client.EVM2AnyMessage","name":"evm2AnyMessage","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ccipClient","outputs":[{"internalType":"contract ICCIPClient","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"uint64","name":"sourceChainSelector","type":"uint64"},{"internalType":"bytes","name":"sender","type":"bytes"},{"internalType":"bytes","name":"data","type":"bytes"},{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct Client.EVMTokenAmount[]","name":"destTokenAmounts","type":"tuple[]"}],"internalType":"struct Client.Any2EVMMessage","name":"message","type":"tuple"}],"name":"ccipReceive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRouter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"chainSelector","type":"uint64"},{"internalType":"address","name":"messager","type":"address"},{"internalType":"bool","name":"allowed","type":"bool"}],"name":"setAllowedPeer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"destinationChainSelector","type":"uint64"},{"internalType":"address","name":"messageReceiver","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"extraArgs","type":"bytes"}],"name":"transferToChain","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"payable","type":"function"}]

60a06040523480156200001157600080fd5b5060405162001796380380620017968339810160408190526200003491620001ee565b33806000846001600160a01b03811662000069576040516335fdcccd60e21b8152600060048201526024015b60405180910390fd5b6001600160a01b039081166080528216620000c75760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604482015260640162000060565b600080546001600160a01b0319166001600160a01b0384811691909117909155811615620000fa57620000fa8162000126565b5050600280546001600160a01b0319166001600160a01b03939093169290921790915550620002269050565b336001600160a01b03821603620001805760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000060565b600180546001600160a01b0319166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b80516001600160a01b0381168114620001e957600080fd5b919050565b600080604083850312156200020257600080fd5b6200020d83620001d1565b91506200021d60208401620001d1565b90509250929050565b6080516115386200025e6000396000818161020e0152818161054d0152818161066e015281816108840152610aac01526115386000f3fe6080604052600436106100bc5760003560e01c806379ba509711610074578063b0f479a11161004e578063b0f479a1146101ff578063b4c3d37f14610232578063f2fde38b1461026057600080fd5b806379ba5097146101ac57806385572ffb146101c15780638da5cb5b146101e157600080fd5b8063045e3af2116100a5578063045e3af2146101185780631fbae57e1461015357806354e6ca701461017457600080fd5b806301ffc9a7146100c1578063024135f6146100f6575b600080fd5b3480156100cd57600080fd5b506100e16100dc366004610da5565b610280565b60405190151581526020015b60405180910390f35b34801561010257600080fd5b50610116610111366004610e20565b610319565b005b34801561012457600080fd5b506100e1610133366004610e6e565b600360209081526000928352604080842090915290825290205460ff1681565b610166610161366004610eee565b610362565b6040519081526020016100ed565b34801561018057600080fd5b50600254610194906001600160a01b031681565b6040516001600160a01b0390911681526020016100ed565b3480156101b857600080fd5b506101166107bb565b3480156101cd57600080fd5b506101166101dc366004610f71565b610879565b3480156101ed57600080fd5b506000546001600160a01b0316610194565b34801561020b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610194565b34801561023e57600080fd5b5061025261024d366004610fac565b6108f1565b6040516100ed929190611155565b34801561026c57600080fd5b5061011661027b366004611176565b610b33565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f85572ffb00000000000000000000000000000000000000000000000000000000148061031357507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610321610b44565b67ffffffffffffffff90921660009081526003602090815260408083206001600160a01b03909416835292905220805491151560ff19909216919091179055565b67ffffffffffffffff861660009081526003602090815260408083206001600160a01b038916845290915281205460ff166103d05760405163596613ef60e11b815267ffffffffffffffff881660048201526001600160a01b03871660248201526044015b60405180910390fd5b6002546040517f8ec8eda30000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038781166024830152604482018790526000921690638ec8eda3906064016000604051808303816000875af1158015610443573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261046b919081019061124e565b6040805160a0810182526001600160a01b038a1660c0808301919091528251808303909101815260e08201835281526020808201849052825160008082529181018452939450929091820190836104e4565b60408051808201909152600080825260208201528152602001906001900390816104bd5790505b50815260200160006001600160a01b0316815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506040516320487ded60e01b8152929350916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691506320487ded90610585908d9086906004016112ca565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906112ed565b90508034101561063e5760405162461bcd60e51b815260206004820152602360248201527f434357535442544d657373616765723a20494e53554646494349454e545f465560448201527f4e4453000000000000000000000000000000000000000000000000000000000060648201526084016103c7565b6040517f96f4e9f90000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906396f4e9f99083906106a7908e9087906004016112ca565b60206040518083038185885af11580156106c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106ea91906112ed565b935060006106f88234611306565b1115610776576000336108fc61070e8434611306565b6040518115909202916000818181858888f193505050509050806107745760405162461bcd60e51b815260206004820181905260248201527f434357535442544d657373616765723a205452414e534645525f4641494c454460448201526064016103c7565b505b837fda8e2b0b9a96c24814e67697564048ae4ed9e0a079edffc1a26891a87c559a05846040516107a69190611327565b60405180910390a25050509695505050505050565b6001546001600160a01b031633146108155760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016103c7565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146108dd576040517fd7f733340000000000000000000000000000000000000000000000000000000081523360048201526024016103c7565b6108ee6108e982611438565b610ba0565b50565b600061092e6040518060a0016040528060608152602001606081526020016060815260200160006001600160a01b03168152602001606081525090565b6002546040517f6092d2250000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301528881166024830152604482018890526000921690636092d22590606401600060405180830381865afa1580156109a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c9919081019061124e565b6040805160a081019091526001600160a01b038b1660c08201529091508060e0810160408051808303601f190181529181529082526020808301859052815160008082529181018352929091019190610a44565b6040805180820190915260008082526020820152815260200190600190039081610a1d5790505b50815260200160006001600160a01b0316815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040516320487ded60e01b81529092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906320487ded90610ae3908d9086906004016112ca565b602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2491906112ed565b92505097509795505050505050565b610b3b610b44565b6108ee81610cef565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016103c7565b565b60008160400151806020019051810190610bba91906114e5565b60208084015167ffffffffffffffff1660009081526003825260408082206001600160a01b0385168352909252205490915060ff16610c2d57602082015160405163596613ef60e11b815267ffffffffffffffff90911660048201526001600160a01b03821660248201526044016103c7565b60025460608301516040517ff6ec1c4d0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163f6ec1c4d91610c7991600401611327565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b5050505081600001517fa76e8bfca7bc12668a76418f51e4b6a884e03734335e3ad93d4d6355af6497708360600151604051610ce39190611327565b60405180910390a25050565b336001600160a01b03821603610d475760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016103c7565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208284031215610db757600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610de757600080fd5b9392505050565b803567ffffffffffffffff81168114610e0657600080fd5b919050565b6001600160a01b03811681146108ee57600080fd5b600080600060608486031215610e3557600080fd5b610e3e84610dee565b92506020840135610e4e81610e0b565b915060408401358015158114610e6357600080fd5b809150509250925092565b60008060408385031215610e8157600080fd5b610e8a83610dee565b91506020830135610e9a81610e0b565b809150509250929050565b60008083601f840112610eb757600080fd5b50813567ffffffffffffffff811115610ecf57600080fd5b602083019150836020828501011115610ee757600080fd5b9250929050565b60008060008060008060a08789031215610f0757600080fd5b610f1087610dee565b95506020870135610f2081610e0b565b94506040870135610f3081610e0b565b935060608701359250608087013567ffffffffffffffff811115610f5357600080fd5b610f5f89828a01610ea5565b979a9699509497509295939492505050565b600060208284031215610f8357600080fd5b813567ffffffffffffffff811115610f9a57600080fd5b820160a08185031215610de757600080fd5b600080600080600080600060c0888a031215610fc757600080fd5b610fd088610dee565b96506020880135610fe081610e0b565b95506040880135610ff081610e0b565b9450606088013561100081610e0b565b93506080880135925060a088013567ffffffffffffffff81111561102357600080fd5b61102f8a828b01610ea5565b989b979a50959850939692959293505050565b60005b8381101561105d578181015183820152602001611045565b50506000910152565b6000815180845261107e816020860160208601611042565b601f01601f19169290920160200192915050565b6000815160a084526110a760a0850182611066565b9050602080840151858303828701526110c08382611066565b60408681015188830389830152805180845290850195509092506000918401905b8083101561111357855180516001600160a01b03168352850151858301529484019460019290920191908301906110e1565b506060870151945061113060608901866001600160a01b03169052565b6080870151945087810360808901526111498186611066565b98975050505050505050565b82815260406020820152600061116e6040830184611092565b949350505050565b60006020828403121561118857600080fd5b8135610de781610e0b565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156111cc576111cc611193565b60405290565b60405160a0810167ffffffffffffffff811182821017156111cc576111cc611193565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121e5761121e611193565b604052919050565b600067ffffffffffffffff82111561124057611240611193565b50601f01601f191660200190565b60006020828403121561126057600080fd5b815167ffffffffffffffff81111561127757600080fd5b8201601f8101841361128857600080fd5b805161129b61129682611226565b6111f5565b8181528560208385010111156112b057600080fd5b6112c1826020830160208601611042565b95945050505050565b67ffffffffffffffff8316815260406020820152600061116e6040830184611092565b6000602082840312156112ff57600080fd5b5051919050565b8181038181111561031357634e487b7160e01b600052601160045260246000fd5b602081526000610de76020830184611066565b600082601f83011261134b57600080fd5b813561135961129682611226565b81815284602083860101111561136e57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261139c57600080fd5b8135602067ffffffffffffffff8211156113b8576113b8611193565b6113c6818360051b016111f5565b82815260069290921b840181019181810190868411156113e557600080fd5b8286015b8481101561142d57604081890312156114025760008081fd5b61140a6111a9565b813561141581610e0b565b815281850135858201528352918301916040016113e9565b509695505050505050565b600060a0823603121561144a57600080fd5b6114526111d2565b8235815261146260208401610dee565b6020820152604083013567ffffffffffffffff8082111561148257600080fd5b61148e3683870161133a565b604084015260608501359150808211156114a757600080fd5b6114b33683870161133a565b606084015260808501359150808211156114cc57600080fd5b506114d93682860161138b565b60808301525092915050565b6000602082840312156114f757600080fd5b8151610de781610e0b56fea26469706673582212209f36076b36cf652688c2482bca8fd57393af028a7e7d4819da88feaaf423b6a264736f6c6343000813003300000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d000000000000000000000000c6c1706bf9b034fa8fe5591769261a8b19eded06

Deployed Bytecode

0x6080604052600436106100bc5760003560e01c806379ba509711610074578063b0f479a11161004e578063b0f479a1146101ff578063b4c3d37f14610232578063f2fde38b1461026057600080fd5b806379ba5097146101ac57806385572ffb146101c15780638da5cb5b146101e157600080fd5b8063045e3af2116100a5578063045e3af2146101185780631fbae57e1461015357806354e6ca701461017457600080fd5b806301ffc9a7146100c1578063024135f6146100f6575b600080fd5b3480156100cd57600080fd5b506100e16100dc366004610da5565b610280565b60405190151581526020015b60405180910390f35b34801561010257600080fd5b50610116610111366004610e20565b610319565b005b34801561012457600080fd5b506100e1610133366004610e6e565b600360209081526000928352604080842090915290825290205460ff1681565b610166610161366004610eee565b610362565b6040519081526020016100ed565b34801561018057600080fd5b50600254610194906001600160a01b031681565b6040516001600160a01b0390911681526020016100ed565b3480156101b857600080fd5b506101166107bb565b3480156101cd57600080fd5b506101166101dc366004610f71565b610879565b3480156101ed57600080fd5b506000546001600160a01b0316610194565b34801561020b57600080fd5b507f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d610194565b34801561023e57600080fd5b5061025261024d366004610fac565b6108f1565b6040516100ed929190611155565b34801561026c57600080fd5b5061011661027b366004611176565b610b33565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f85572ffb00000000000000000000000000000000000000000000000000000000148061031357507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b610321610b44565b67ffffffffffffffff90921660009081526003602090815260408083206001600160a01b03909416835292905220805491151560ff19909216919091179055565b67ffffffffffffffff861660009081526003602090815260408083206001600160a01b038916845290915281205460ff166103d05760405163596613ef60e11b815267ffffffffffffffff881660048201526001600160a01b03871660248201526044015b60405180910390fd5b6002546040517f8ec8eda30000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b038781166024830152604482018790526000921690638ec8eda3906064016000604051808303816000875af1158015610443573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261046b919081019061124e565b6040805160a0810182526001600160a01b038a1660c0808301919091528251808303909101815260e08201835281526020808201849052825160008082529181018452939450929091820190836104e4565b60408051808201909152600080825260208201528152602001906001900390816104bd5790505b50815260200160006001600160a01b0316815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506040516320487ded60e01b8152929350916001600160a01b037f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d1691506320487ded90610585908d9086906004016112ca565b602060405180830381865afa1580156105a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c691906112ed565b90508034101561063e5760405162461bcd60e51b815260206004820152602360248201527f434357535442544d657373616765723a20494e53554646494349454e545f465560448201527f4e4453000000000000000000000000000000000000000000000000000000000060648201526084016103c7565b6040517f96f4e9f90000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d16906396f4e9f99083906106a7908e9087906004016112ca565b60206040518083038185885af11580156106c5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906106ea91906112ed565b935060006106f88234611306565b1115610776576000336108fc61070e8434611306565b6040518115909202916000818181858888f193505050509050806107745760405162461bcd60e51b815260206004820181905260248201527f434357535442544d657373616765723a205452414e534645525f4641494c454460448201526064016103c7565b505b837fda8e2b0b9a96c24814e67697564048ae4ed9e0a079edffc1a26891a87c559a05846040516107a69190611327565b60405180910390a25050509695505050505050565b6001546001600160a01b031633146108155760405162461bcd60e51b815260206004820152601660248201527f4d7573742062652070726f706f736564206f776e65720000000000000000000060448201526064016103c7565b600080543373ffffffffffffffffffffffffffffffffffffffff19808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b336001600160a01b037f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d16146108dd576040517fd7f733340000000000000000000000000000000000000000000000000000000081523360048201526024016103c7565b6108ee6108e982611438565b610ba0565b50565b600061092e6040518060a0016040528060608152602001606081526020016060815260200160006001600160a01b03168152602001606081525090565b6002546040517f6092d2250000000000000000000000000000000000000000000000000000000081526001600160a01b0389811660048301528881166024830152604482018890526000921690636092d22590606401600060405180830381865afa1580156109a1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c9919081019061124e565b6040805160a081019091526001600160a01b038b1660c08201529091508060e0810160408051808303601f190181529181529082526020808301859052815160008082529181018352929091019190610a44565b6040805180820190915260008082526020820152815260200190600190039081610a1d5790505b50815260200160006001600160a01b0316815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040516320487ded60e01b81529092506001600160a01b037f00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d16906320487ded90610ae3908d9086906004016112ca565b602060405180830381865afa158015610b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2491906112ed565b92505097509795505050505050565b610b3b610b44565b6108ee81610cef565b6000546001600160a01b03163314610b9e5760405162461bcd60e51b815260206004820152601660248201527f4f6e6c792063616c6c61626c65206279206f776e65720000000000000000000060448201526064016103c7565b565b60008160400151806020019051810190610bba91906114e5565b60208084015167ffffffffffffffff1660009081526003825260408082206001600160a01b0385168352909252205490915060ff16610c2d57602082015160405163596613ef60e11b815267ffffffffffffffff90911660048201526001600160a01b03821660248201526044016103c7565b60025460608301516040517ff6ec1c4d0000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163f6ec1c4d91610c7991600401611327565b600060405180830381600087803b158015610c9357600080fd5b505af1158015610ca7573d6000803e3d6000fd5b5050505081600001517fa76e8bfca7bc12668a76418f51e4b6a884e03734335e3ad93d4d6355af6497708360600151604051610ce39190611327565b60405180910390a25050565b336001600160a01b03821603610d475760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c6600000000000000000060448201526064016103c7565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383811691821790925560008054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b600060208284031215610db757600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610de757600080fd5b9392505050565b803567ffffffffffffffff81168114610e0657600080fd5b919050565b6001600160a01b03811681146108ee57600080fd5b600080600060608486031215610e3557600080fd5b610e3e84610dee565b92506020840135610e4e81610e0b565b915060408401358015158114610e6357600080fd5b809150509250925092565b60008060408385031215610e8157600080fd5b610e8a83610dee565b91506020830135610e9a81610e0b565b809150509250929050565b60008083601f840112610eb757600080fd5b50813567ffffffffffffffff811115610ecf57600080fd5b602083019150836020828501011115610ee757600080fd5b9250929050565b60008060008060008060a08789031215610f0757600080fd5b610f1087610dee565b95506020870135610f2081610e0b565b94506040870135610f3081610e0b565b935060608701359250608087013567ffffffffffffffff811115610f5357600080fd5b610f5f89828a01610ea5565b979a9699509497509295939492505050565b600060208284031215610f8357600080fd5b813567ffffffffffffffff811115610f9a57600080fd5b820160a08185031215610de757600080fd5b600080600080600080600060c0888a031215610fc757600080fd5b610fd088610dee565b96506020880135610fe081610e0b565b95506040880135610ff081610e0b565b9450606088013561100081610e0b565b93506080880135925060a088013567ffffffffffffffff81111561102357600080fd5b61102f8a828b01610ea5565b989b979a50959850939692959293505050565b60005b8381101561105d578181015183820152602001611045565b50506000910152565b6000815180845261107e816020860160208601611042565b601f01601f19169290920160200192915050565b6000815160a084526110a760a0850182611066565b9050602080840151858303828701526110c08382611066565b60408681015188830389830152805180845290850195509092506000918401905b8083101561111357855180516001600160a01b03168352850151858301529484019460019290920191908301906110e1565b506060870151945061113060608901866001600160a01b03169052565b6080870151945087810360808901526111498186611066565b98975050505050505050565b82815260406020820152600061116e6040830184611092565b949350505050565b60006020828403121561118857600080fd5b8135610de781610e0b565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156111cc576111cc611193565b60405290565b60405160a0810167ffffffffffffffff811182821017156111cc576111cc611193565b604051601f8201601f1916810167ffffffffffffffff8111828210171561121e5761121e611193565b604052919050565b600067ffffffffffffffff82111561124057611240611193565b50601f01601f191660200190565b60006020828403121561126057600080fd5b815167ffffffffffffffff81111561127757600080fd5b8201601f8101841361128857600080fd5b805161129b61129682611226565b6111f5565b8181528560208385010111156112b057600080fd5b6112c1826020830160208601611042565b95945050505050565b67ffffffffffffffff8316815260406020820152600061116e6040830184611092565b6000602082840312156112ff57600080fd5b5051919050565b8181038181111561031357634e487b7160e01b600052601160045260246000fd5b602081526000610de76020830184611066565b600082601f83011261134b57600080fd5b813561135961129682611226565b81815284602083860101111561136e57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261139c57600080fd5b8135602067ffffffffffffffff8211156113b8576113b8611193565b6113c6818360051b016111f5565b82815260069290921b840181019181810190868411156113e557600080fd5b8286015b8481101561142d57604081890312156114025760008081fd5b61140a6111a9565b813561141581610e0b565b815281850135858201528352918301916040016113e9565b509695505050505050565b600060a0823603121561144a57600080fd5b6114526111d2565b8235815261146260208401610dee565b6020820152604083013567ffffffffffffffff8082111561148257600080fd5b61148e3683870161133a565b604084015260608501359150808211156114a757600080fd5b6114b33683870161133a565b606084015260808501359150808211156114cc57600080fd5b506114d93682860161138b565b60808301525092915050565b6000602082840312156114f757600080fd5b8151610de781610e0b56fea26469706673582212209f36076b36cf652688c2482bca8fd57393af028a7e7d4819da88feaaf423b6a264736f6c63430008130033

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

00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d000000000000000000000000c6c1706bf9b034fa8fe5591769261a8b19eded06

-----Decoded View---------------
Arg [0] : _router (address): 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D
Arg [1] : _ccipClient (address): 0xC6C1706bF9b034FA8FE5591769261A8b19edeD06

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000080226fc0ee2b096224eeac085bb9a8cba1146f7d
Arg [1] : 000000000000000000000000c6c1706bf9b034fa8fe5591769261a8b19eded06


Deployed Bytecode Sourcemap

11745:3356:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4742:211;;;;;;;;;;-1:-1:-1;4742:211:0;;;;;:::i;:::-;;:::i;:::-;;;516:14:1;;509:22;491:41;;479:2;464:18;4742:211:0;;;;;;;;12361:162;;;;;;;;;;-1:-1:-1;12361:162:0;;;;;:::i;:::-;;:::i;:::-;;11847:62;;;;;;;;;;-1:-1:-1;11847:62:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13755:1343;;;;;;:::i;:::-;;:::i;:::-;;;3025:25:1;;;3013:2;2998:18;13755:1343:0;2879:177:1;11809:29:0;;;;;;;;;;-1:-1:-1;11809:29:0;;;;-1:-1:-1;;;;;11809:29:0;;;;;;-1:-1:-1;;;;;3244:55:1;;;3226:74;;3214:2;3199:18;11809:29:0;3061:245:1;9389:321:0;;;;;;;;;;;;;:::i;5002:132::-;;;;;;;;;;-1:-1:-1;5002:132:0;;;;;:::i;:::-;;:::i;9753:83::-;;;;;;;;;;-1:-1:-1;9800:7:0;9823;-1:-1:-1;;;;;9823:7:0;9753:83;;5561:92;;;;;;;;;;-1:-1:-1;5634:12:0;5561:92;;13010:737;;;;;;;;;;-1:-1:-1;13010:737:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;9205:100::-;;;;;;;;;;-1:-1:-1;9205:100:0;;;;;:::i;:::-;;:::i;4742:211::-;4827:4;4847:56;;;4862:41;4847:56;;:100;;-1:-1:-1;4907:40:0;;;4922:25;4907:40;4847:100;4840:107;4742:211;-1:-1:-1;;4742:211:0:o;12361:162::-;10460:20;:18;:20::i;:::-;12469:26:::1;::::0;;::::1;;::::0;;;:11:::1;:26;::::0;;;;;;;-1:-1:-1;;;;;12469:36:0;;::::1;::::0;;;;;;:46;;;::::1;;-1:-1:-1::0;;12469:46:0;;::::1;::::0;;;::::1;::::0;;12361:162::o;13755:1343::-;14008:37;;;13973:17;14008:37;;;:11;:37;;;;;;;;-1:-1:-1;;;;;14008:54:0;;;;;;;;;;;;14003:152;;14086:57;;-1:-1:-1;;;14086:57:0;;7685:18:1;7673:31;;14086:57:0;;;7655:50:1;-1:-1:-1;;;;;7741:55:1;;7721:18;;;7714:83;7628:18;;14086:57:0;;;;;;;;14003:152;14185:10;;:47;;;;;14203:10;14185:47;;;8071:34:1;-1:-1:-1;;;;;8141:15:1;;;8121:18;;;8114:43;8173:18;;;8166:34;;;14165:17:0;;14185:10;;:17;;7983:18:1;;14185:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14185:47:0;;;;;;;;;;;;:::i;:::-;14289:225;;;;;;;;-1:-1:-1;;;;;3244:55:1;;14333:27:0;;;;3226:74:1;;;;14333:27:0;;;;;;;;;;3199:18:1;;;14333:27:0;;14289:225;;14333:27;14289:225;;;;;;14408:30;;-1:-1:-1;14408:30:0;;;;;;;;14165:67;;-1:-1:-1;;14289:225:0;;;;;-1:-1:-1;14408:30:0;;;-1:-1:-1;;;;;;;;;;;;;;;;;14408:30:0;;;;;;;;;;;;;;;;14289:225;;;;14500:1;-1:-1:-1;;;;;14289:225:0;;;;;14461:9;;14289:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14289:225:0;;;;-1:-1:-1;;14539:75:0;;-1:-1:-1;;;14539:75:0;;14243:271;;-1:-1:-1;14289:225:0;-1:-1:-1;;;;;5634:12:0;14539:33;;-1:-1:-1;14539:33:0;;:75;;14573:24;;14243:271;;14539:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14525:89;;14646:3;14633:9;:16;;14625:64;;;;-1:-1:-1;;;14625:64:0;;10808:2:1;14625:64:0;;;10790:21:1;10847:2;10827:18;;;10820:30;10886:34;10866:18;;;10859:62;10957:5;10937:18;;;10930:33;10980:19;;14625:64:0;10606:399:1;14625:64:0;14712:127;;;;;-1:-1:-1;;;;;5634:12:0;14712:35;;;;14756:3;;14712:127;;14775:24;;14814:14;;14712:127;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14700:139;-1:-1:-1;14872:1:0;14854:15;14866:3;14854:9;:15;:::i;:::-;:19;14850:175;;;14890:12;14913:10;14905:41;14930:15;14942:3;14930:9;:15;:::i;:::-;14905:41;;;;;;;;;;;;;;;;;;;;;14890:56;;14969:7;14961:52;;;;-1:-1:-1;;;14961:52:0;;11688:2:1;14961:52:0;;;11670:21:1;;;11707:18;;;11700:30;11766:34;11746:18;;;11739:62;11818:18;;14961:52:0;11486:356:1;14961:52:0;14875:150;14850:175;15047:9;15040:23;15058:4;15040:23;;;;;;:::i;:::-;;;;;;;;15074:16;;;13755:1343;;;;;;;;:::o;9389:321::-;9511:14;;-1:-1:-1;;;;;9511:14:0;9497:10;:28;9489:63;;;;-1:-1:-1;;;9489:63:0;;12271:2:1;9489:63:0;;;12253:21:1;12310:2;12290:18;;;12283:30;12349:24;12329:18;;;12322:52;12391:18;;9489:63:0;12069:346:1;9489:63:0;9561:16;9580:7;;9604:10;-1:-1:-1;;9594:20:0;;;;;;;-1:-1:-1;9621:27:0;;;;;;;9662:42;;-1:-1:-1;;;;;9580:7:0;;;;9604:10;;9580:7;;9662:42;;;9434:276;9389:321::o;5002:132::-;5791:10;-1:-1:-1;;;;;5813:12:0;5791:35;;5787:73;;5835:25;;;;;5849:10;5835:25;;;3226:74:1;3199:18;;5835:25:0;3061:245:1;5787:73:0;5107:21:::1;;5120:7:::0;5107:21:::1;:::i;:::-;:12;:21::i;:::-;5002:132:::0;:::o;13010:737::-;13255:11;13268:43;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13268:43:0;13344:10;;:50;;;;;-1:-1:-1;;;;;8089:15:1;;;13344:50:0;;;8071:34:1;8141:15;;;8121:18;;;8114:43;8173:18;;;8166:34;;;13324:17:0;;13344:10;;:24;;7983:18:1;;13344:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13344:50:0;;;;;;;;;;;;:::i;:::-;13422:225;;;;;;;;;-1:-1:-1;;;;;3244:55:1;;13466:27:0;;;3226:74:1;13324:70:0;;-1:-1:-1;13422:225:0;3199:18:1;;;13466:27:0;;;;;;-1:-1:-1;;13466:27:0;;;;;;13422:225;;;13466:27;13422:225;;;;;;13541:30;;-1:-1:-1;13541:30:0;;;;;;;;13422:225;;;;;13541:30;;;;-1:-1:-1;;;;;;;;;;;;;;;;;13541:30:0;;;;;;;;;;;;;;;;13422:225;;;;13633:1;-1:-1:-1;;;;;13422:225:0;;;;;13594:9;;13422:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13422:225:0;;-1:-1:-1;13664:75:0;;-1:-1:-1;;;13664:75:0;;13405:242;;-1:-1:-1;;;;;;5634:12:0;13664:33;;;;:75;;13698:24;;13405:242;;13664:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13658:81;;13313:434;13010:737;;;;;;;;;;:::o;9205:100::-;10460:20;:18;:20::i;:::-;9277:22:::1;9296:2;9277:18;:22::i;10191:161::-:0;10312:7;;-1:-1:-1;;;;;10312:7:0;10298:10;:21;10290:56;;;;-1:-1:-1;;;10290:56:0;;15173:2:1;10290:56:0;;;15155:21:1;15212:2;15192:18;;;15185:30;15251:24;15231:18;;;15224:52;15293:18;;10290:56:0;14971:346:1;10290:56:0;10191:161::o;12531:471::-;12643:14;12671;:21;;;12660:44;;;;;;;;;;;;:::i;:::-;12732:34;;;;;12720:47;;;;;;:11;:47;;;;;;-1:-1:-1;;;;;12720:55:0;;;;;;;;;12643:61;;-1:-1:-1;12720:55:0;;12715:154;;12814:34;;;;12799:58;;-1:-1:-1;;;12799:58:0;;7685:18:1;7673:31;;;12799:58:0;;;7655:50:1;-1:-1:-1;;;;;7741:55:1;;7721:18;;;7714:83;7628:18;;12799:58:0;7483:320:1;12715:154:0;12881:10;;12902:19;;;;12881:41;;;;;-1:-1:-1;;;;;12881:10:0;;;;:20;;:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12948:14;:24;;;12938:56;12974:14;:19;;;12938:56;;;;;;:::i;:::-;;;;;;;;12632:370;12531:471;:::o;9912:242::-;10029:10;-1:-1:-1;;;;;10023:16:0;;;10015:52;;;;-1:-1:-1;;;10015:52:0;;15788:2:1;10015:52:0;;;15770:21:1;15827:2;15807:18;;;15800:30;15866:25;15846:18;;;15839:53;15909:18;;10015:52:0;15586:347:1;10015:52:0;10076:14;:19;;-1:-1:-1;;10076:19:0;-1:-1:-1;;;;;10076:19:0;;;;;;;;;-1:-1:-1;10136:7:0;;10109:39;;10076:19;;10136:7;;10109:39;;-1:-1:-1;10109:39:0;9912:242;:::o;14:332:1:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;199:117;335:5;14:332;-1:-1:-1;;;14:332:1:o;543:171::-;610:20;;670:18;659:30;;649:41;;639:69;;704:1;701;694:12;639:69;543:171;;;:::o;719:154::-;-1:-1:-1;;;;;798:5:1;794:54;787:5;784:65;774:93;;863:1;860;853:12;878:488;951:6;959;967;1020:2;1008:9;999:7;995:23;991:32;988:52;;;1036:1;1033;1026:12;988:52;1059:28;1077:9;1059:28;:::i;:::-;1049:38;;1137:2;1126:9;1122:18;1109:32;1150:31;1175:5;1150:31;:::i;:::-;1200:5;-1:-1:-1;1257:2:1;1242:18;;1229:32;1299:15;;1292:23;1280:36;;1270:64;;1330:1;1327;1320:12;1270:64;1353:7;1343:17;;;878:488;;;;;:::o;1371:319::-;1438:6;1446;1499:2;1487:9;1478:7;1474:23;1470:32;1467:52;;;1515:1;1512;1505:12;1467:52;1538:28;1556:9;1538:28;:::i;:::-;1528:38;;1616:2;1605:9;1601:18;1588:32;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1669:15;;;1371:319;;;;;:::o;1695:347::-;1746:8;1756:6;1810:3;1803:4;1795:6;1791:17;1787:27;1777:55;;1828:1;1825;1818:12;1777:55;-1:-1:-1;1851:20:1;;1894:18;1883:30;;1880:50;;;1926:1;1923;1916:12;1880:50;1963:4;1955:6;1951:17;1939:29;;2015:3;2008:4;1999:6;1991;1987:19;1983:30;1980:39;1977:59;;;2032:1;2029;2022:12;1977:59;1695:347;;;;;:::o;2047:827::-;2152:6;2160;2168;2176;2184;2192;2245:3;2233:9;2224:7;2220:23;2216:33;2213:53;;;2262:1;2259;2252:12;2213:53;2285:28;2303:9;2285:28;:::i;:::-;2275:38;;2363:2;2352:9;2348:18;2335:32;2376:31;2401:5;2376:31;:::i;:::-;2426:5;-1:-1:-1;2483:2:1;2468:18;;2455:32;2496:33;2455:32;2496:33;:::i;:::-;2548:7;-1:-1:-1;2602:2:1;2587:18;;2574:32;;-1:-1:-1;2657:3:1;2642:19;;2629:33;2685:18;2674:30;;2671:50;;;2717:1;2714;2707:12;2671:50;2756:58;2806:7;2797:6;2786:9;2782:22;2756:58;:::i;:::-;2047:827;;;;-1:-1:-1;2047:827:1;;-1:-1:-1;2047:827:1;;2833:8;;2047:827;-1:-1:-1;;;2047:827:1:o;3311:392::-;3402:6;3455:2;3443:9;3434:7;3430:23;3426:32;3423:52;;;3471:1;3468;3461:12;3423:52;3511:9;3498:23;3544:18;3536:6;3533:30;3530:50;;;3576:1;3573;3566:12;3530:50;3599:22;;3655:3;3637:16;;;3633:26;3630:46;;;3672:1;3669;3662:12;4071:969;4185:6;4193;4201;4209;4217;4225;4233;4286:3;4274:9;4265:7;4261:23;4257:33;4254:53;;;4303:1;4300;4293:12;4254:53;4326:28;4344:9;4326:28;:::i;:::-;4316:38;;4404:2;4393:9;4389:18;4376:32;4417:31;4442:5;4417:31;:::i;:::-;4467:5;-1:-1:-1;4524:2:1;4509:18;;4496:32;4537:33;4496:32;4537:33;:::i;:::-;4589:7;-1:-1:-1;4648:2:1;4633:18;;4620:32;4661:33;4620:32;4661:33;:::i;:::-;4713:7;-1:-1:-1;4767:3:1;4752:19;;4739:33;;-1:-1:-1;4823:3:1;4808:19;;4795:33;4851:18;4840:30;;4837:50;;;4883:1;4880;4873:12;4837:50;4922:58;4972:7;4963:6;4952:9;4948:22;4922:58;:::i;:::-;4071:969;;;;-1:-1:-1;4071:969:1;;-1:-1:-1;4071:969:1;;;;4896:84;;-1:-1:-1;;;4071:969:1:o;5045:250::-;5130:1;5140:113;5154:6;5151:1;5148:13;5140:113;;;5230:11;;;5224:18;5211:11;;;5204:39;5176:2;5169:10;5140:113;;;-1:-1:-1;;5287:1:1;5269:16;;5262:27;5045:250::o;5300:270::-;5341:3;5379:5;5373:12;5406:6;5401:3;5394:19;5422:76;5491:6;5484:4;5479:3;5475:14;5468:4;5461:5;5457:16;5422:76;:::i;:::-;5552:2;5531:15;-1:-1:-1;;5527:29:1;5518:39;;;;5559:4;5514:50;;5300:270;-1:-1:-1;;5300:270:1:o;5575:1300::-;5632:3;5676:5;5670:12;5703:4;5698:3;5691:17;5729:46;5769:4;5764:3;5760:14;5746:12;5729:46;:::i;:::-;5717:58;;5794:4;5846:2;5839:5;5835:14;5829:21;5890:3;5884:4;5880:14;5875:2;5870:3;5866:12;5859:36;5918:38;5951:4;5935:14;5918:38;:::i;:::-;5975:4;6016:14;;;6010:21;6061:16;;;6047:12;;;6040:38;6129:21;;6159:22;;;6237:23;;;;-1:-1:-1;5975:4:1;;-1:-1:-1;;;6199:15:1;;;6288:311;6302:6;6299:1;6296:13;6288:311;;;6361:13;;6405:9;;-1:-1:-1;;;;;6401:58:1;6387:73;;6502:11;;6496:18;6480:14;;;6473:42;6574:15;;;;6324:1;6317:9;;;;;6537:14;;;;6288:311;;;6292:3;6647:4;6640:5;6636:16;6630:23;6608:45;;6662:50;6706:4;6701:3;6697:14;6681;-1:-1:-1;;;;;3774:54:1;3762:67;;3708:127;6662:50;6760:4;6753:5;6749:16;6743:23;6721:45;;6809:3;6802:5;6798:15;6791:4;6786:3;6782:14;6775:39;6830;6863:5;6847:14;6830:39;:::i;:::-;6823:46;5575:1300;-1:-1:-1;;;;;;;;5575:1300:1:o;6880:346::-;7097:6;7086:9;7079:25;7140:2;7135;7124:9;7120:18;7113:30;7060:4;7160:60;7216:2;7205:9;7201:18;7193:6;7160:60;:::i;:::-;7152:68;6880:346;-1:-1:-1;;;;6880:346:1:o;7231:247::-;7290:6;7343:2;7331:9;7322:7;7318:23;7314:32;7311:52;;;7359:1;7356;7349:12;7311:52;7398:9;7385:23;7417:31;7442:5;7417:31;:::i;8211:184::-;-1:-1:-1;;;8260:1:1;8253:88;8360:4;8357:1;8350:15;8384:4;8381:1;8374:15;8400:257;8472:4;8466:11;;;8504:17;;8551:18;8536:34;;8572:22;;;8533:62;8530:88;;;8598:18;;:::i;:::-;8634:4;8627:24;8400:257;:::o;8662:253::-;8734:2;8728:9;8776:4;8764:17;;8811:18;8796:34;;8832:22;;;8793:62;8790:88;;;8858:18;;:::i;8920:275::-;8991:2;8985:9;9056:2;9037:13;;-1:-1:-1;;9033:27:1;9021:40;;9091:18;9076:34;;9112:22;;;9073:62;9070:88;;;9138:18;;:::i;:::-;9174:2;9167:22;8920:275;;-1:-1:-1;8920:275:1:o;9200:186::-;9248:4;9281:18;9273:6;9270:30;9267:56;;;9303:18;;:::i;:::-;-1:-1:-1;9369:2:1;9348:15;-1:-1:-1;;9344:29:1;9375:4;9340:40;;9200:186::o;9391:647::-;9470:6;9523:2;9511:9;9502:7;9498:23;9494:32;9491:52;;;9539:1;9536;9529:12;9491:52;9572:9;9566:16;9605:18;9597:6;9594:30;9591:50;;;9637:1;9634;9627:12;9591:50;9660:22;;9713:4;9705:13;;9701:27;-1:-1:-1;9691:55:1;;9742:1;9739;9732:12;9691:55;9771:2;9765:9;9796:48;9812:31;9840:2;9812:31;:::i;:::-;9796:48;:::i;:::-;9867:2;9860:5;9853:17;9907:7;9902:2;9897;9893;9889:11;9885:20;9882:33;9879:53;;;9928:1;9925;9918:12;9879:53;9941:67;10005:2;10000;9993:5;9989:14;9984:2;9980;9976:11;9941:67;:::i;:::-;10027:5;9391:647;-1:-1:-1;;;;;9391:647:1:o;10043:369::-;10270:18;10262:6;10258:31;10247:9;10240:50;10326:2;10321;10310:9;10306:18;10299:30;10221:4;10346:60;10402:2;10391:9;10387:18;10379:6;10346:60;:::i;10417:184::-;10487:6;10540:2;10528:9;10519:7;10515:23;10511:32;10508:52;;;10556:1;10553;10546:12;10508:52;-1:-1:-1;10579:16:1;;10417:184;-1:-1:-1;10417:184:1:o;11199:282::-;11266:9;;;11287:11;;;11284:191;;;-1:-1:-1;;;11328:1:1;11321:88;11432:4;11429:1;11422:15;11460:4;11457:1;11450:15;11847:217;11994:2;11983:9;11976:21;11957:4;12014:44;12054:2;12043:9;12039:18;12031:6;12014:44;:::i;12420:462::-;12462:5;12515:3;12508:4;12500:6;12496:17;12492:27;12482:55;;12533:1;12530;12523:12;12482:55;12569:6;12556:20;12600:48;12616:31;12644:2;12616:31;:::i;12600:48::-;12673:2;12664:7;12657:19;12719:3;12712:4;12707:2;12699:6;12695:15;12691:26;12688:35;12685:55;;;12736:1;12733;12726:12;12685:55;12801:2;12794:4;12786:6;12782:17;12775:4;12766:7;12762:18;12749:55;12849:1;12824:16;;;12842:4;12820:27;12813:38;;;;12828:7;12420:462;-1:-1:-1;;;12420:462:1:o;12887:1067::-;12955:5;13008:3;13001:4;12993:6;12989:17;12985:27;12975:55;;13026:1;13023;13016:12;12975:55;13062:6;13049:20;13088:4;13111:18;13107:2;13104:26;13101:52;;;13133:18;;:::i;:::-;13173:36;13205:2;13200;13197:1;13193:10;13189:19;13173:36;:::i;:::-;13243:15;;;13329:1;13325:10;;;;13313:23;;13309:32;;;13274:12;;;;13353:15;;;13350:35;;;13381:1;13378;13371:12;13350:35;13417:2;13409:6;13405:15;13429:496;13445:6;13440:3;13437:15;13429:496;;;13523:4;13517:3;13512;13508:13;13504:24;13501:114;;;13569:1;13598:2;13594;13587:14;13501:114;13641:22;;:::i;:::-;13704:3;13691:17;13721:33;13746:7;13721:33;:::i;:::-;13767:22;;13838:12;;;13825:26;13809:14;;;13802:50;13865:18;;13903:12;;;;13471:4;13462:14;13429:496;;;-1:-1:-1;13943:5:1;12887:1067;-1:-1:-1;;;;;;12887:1067:1:o;13959:1007::-;14071:9;14130:4;14122:5;14106:14;14102:26;14098:37;14095:57;;;14148:1;14145;14138:12;14095:57;14176:22;;:::i;:::-;14236:5;14223:19;14214:7;14207:36;14277:33;14306:2;14299:5;14295:14;14277:33;:::i;:::-;14272:2;14263:7;14259:16;14252:59;14358:2;14351:5;14347:14;14334:28;14381:18;14422:2;14414:6;14411:14;14408:34;;;14438:1;14435;14428:12;14408:34;14476:52;14513:14;14504:6;14497:5;14493:18;14476:52;:::i;:::-;14471:2;14462:7;14458:16;14451:78;14578:2;14571:5;14567:14;14554:28;14538:44;;14607:2;14597:8;14594:16;14591:36;;;14623:1;14620;14613:12;14591:36;14661:54;14700:14;14689:8;14682:5;14678:20;14661:54;:::i;:::-;14656:2;14647:7;14643:16;14636:80;14765:3;14758:5;14754:15;14741:29;14725:45;;14795:2;14785:8;14782:16;14779:36;;;14811:1;14808;14801:12;14779:36;;14850:80;14915:14;14904:8;14897:5;14893:20;14850:80;:::i;:::-;14844:3;14831:17;;14824:107;-1:-1:-1;14835:7:1;13959:1007;-1:-1:-1;;13959:1007:1:o;15322:259::-;15400:6;15453:2;15441:9;15432:7;15428:23;15424:32;15421:52;;;15469:1;15466;15459:12;15421:52;15501:9;15495:16;15520:31;15545:5;15520:31;:::i

Swarm Source

ipfs://9f36076b36cf652688c2482bca8fd57393af028a7e7d4819da88feaaf423b6a2

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.