Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 13 from a total of 13 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer To Chai... | 19988431 | 56 days ago | IN | 0.00014636 ETH | 0.00128638 | ||||
Transfer To Chai... | 19981445 | 57 days ago | IN | 0.00016099 ETH | 0.00239212 | ||||
Transfer To Chai... | 19831153 | 78 days ago | IN | 0.002 ETH | 0.00097963 | ||||
Transfer To Chai... | 19824470 | 79 days ago | IN | 0.00018033 ETH | 0.00087998 | ||||
Transfer To Chai... | 19824454 | 79 days ago | IN | 0.00017633 ETH | 0.00046403 | ||||
Transfer To Chai... | 19824440 | 79 days ago | IN | 0.00017633 ETH | 0.00010642 | ||||
Transfer To Chai... | 19824329 | 79 days ago | IN | 0.00017781 ETH | 0.00030932 | ||||
Transfer To Chai... | 19824198 | 79 days ago | IN | 0.00017781 ETH | 0.00035858 | ||||
Accept Ownership | 19572692 | 115 days ago | IN | 0 ETH | 0.00060491 | ||||
Transfer Ownersh... | 19538402 | 119 days ago | IN | 0 ETH | 0.0011579 | ||||
Transfer To Chai... | 19531191 | 120 days ago | IN | 0.00017931 ETH | 0.00500344 | ||||
Set Allowed Peer | 19530046 | 121 days ago | IN | 0 ETH | 0.00111409 | ||||
0x60a06040 | 19529429 | 121 days ago | IN | 0 ETH | 0.0382413 |
Latest 8 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19988431 | 56 days ago | 0.00014636 ETH | ||||
19981445 | 57 days ago | 0.00016099 ETH | ||||
19831153 | 78 days ago | 0.00182331 ETH | ||||
19831153 | 78 days ago | 0.00017668 ETH | ||||
19824470 | 79 days ago | 0.00000252 ETH | ||||
19824470 | 79 days ago | 0.00017781 ETH | ||||
19531191 | 120 days ago | 0.000001 ETH | ||||
19531191 | 120 days ago | 0.00017831 ETH |
Loading...
Loading
Contract Name:
CCWSTBTMessager
Compiler Version
v0.8.19+commit.7dd6d404
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
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.