More Info
Private Name Tags
ContractCreator
Latest 16 from a total of 16 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update Route | 19388245 | 207 days ago | IN | 0 ETH | 0.00157128 | ||||
Move To Chain | 19105379 | 246 days ago | IN | 0.00023388 ETH | 0.00227391 | ||||
Move To Chain | 18742730 | 297 days ago | IN | 0.00017443 ETH | 0.01330547 | ||||
Move To Chain | 18742729 | 297 days ago | IN | 0.00017443 ETH | 0.01341818 | ||||
Move To Chain | 18742720 | 297 days ago | IN | 0.00017443 ETH | 0.01333308 | ||||
Move To Chain | 18742719 | 297 days ago | IN | 0.00017443 ETH | 0.01328085 | ||||
Move To Chain | 18742717 | 297 days ago | IN | 0.00017443 ETH | 0.0132512 | ||||
Move To Chain | 18718458 | 301 days ago | IN | 0.00018152 ETH | 0.00762028 | ||||
Move To Chain | 18707128 | 302 days ago | IN | 0.00018213 ETH | 0.00624592 | ||||
Move To Chain | 18696030 | 304 days ago | IN | 0.00019005 ETH | 0.00559338 | ||||
Move To Chain | 18691375 | 305 days ago | IN | 0.00018954 ETH | 0.0064737 | ||||
Move To Chain | 18688867 | 305 days ago | IN | 0.00019017 ETH | 0.00680777 | ||||
Move To Chain | 18688845 | 305 days ago | IN | 0.00019017 ETH | 0.0077759 | ||||
Move To Chain | 18686083 | 305 days ago | IN | 0.00019389 ETH | 0.01723277 | ||||
Set Alow Chain | 18592272 | 318 days ago | IN | 0 ETH | 0.00195331 | ||||
0x60806040 | 18592271 | 318 days ago | IN | 0 ETH | 0.05904417 |
Latest 13 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19105379 | 246 days ago | 0.00023388 ETH | ||||
18742730 | 297 days ago | 0.00017443 ETH | ||||
18742729 | 297 days ago | 0.00017443 ETH | ||||
18742720 | 297 days ago | 0.00017443 ETH | ||||
18742719 | 297 days ago | 0.00017443 ETH | ||||
18742717 | 297 days ago | 0.00017443 ETH | ||||
18718458 | 301 days ago | 0.00018152 ETH | ||||
18707128 | 302 days ago | 0.00018213 ETH | ||||
18696030 | 304 days ago | 0.00019005 ETH | ||||
18691375 | 305 days ago | 0.00018954 ETH | ||||
18688867 | 305 days ago | 0.00019017 ETH | ||||
18688845 | 305 days ago | 0.00019017 ETH | ||||
18686083 | 305 days ago | 0.00019389 ETH |
Loading...
Loading
Contract Name:
Bridge
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol"; import {IRouterClient} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IRouterClient.sol"; import {OwnerIsCreator} from "@chainlink/contracts-ccip/src/v0.8/shared/access/OwnerIsCreator.sol"; import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; import "./interfaces/IERC20Token.sol"; import "./interfaces/ITicket.sol"; import "./CCIPReceiver.sol"; contract Bridge is CCIPReceiver, IERC1155Receiver, OwnerIsCreator { IERC20Token public token; ITicket public ticket; bool isMint; mapping(uint64 => bool) public allowChainSelector; event TokenMove( bytes32 indexed messageId, uint64 indexed destinationChainSelector, address receiver, bool isTicket, uint256 idOrAmount, uint256 fees ); event SetAlowChain(uint64 chainSelector, bool allow); event UpdateRoute(address route); event CcipReceive(address user, bool isTicket, uint256 idOrAmount); constructor( address _router, address _token, address _ticket, bool _isMint ) CCIPReceiver(_router) { token = IERC20Token(_token); isMint = _isMint; ticket = ITicket(_ticket); } function updateRoute(address _route) external onlyOwner { i_router = _route; emit UpdateRoute(_route); } function _ccipReceive( Client.Any2EVMMessage memory any2EvmMessage ) internal override { address sender = abi.decode(any2EvmMessage.sender, (address)); require(sender == address(this), "sender error"); (address user, bool isTicket, uint256 idOrAmount) = abi.decode( any2EvmMessage.data, (address, bool, uint256) ); emit CcipReceive(user, isTicket, idOrAmount); if (isTicket) { if (isMint) { ticket.mint(user, idOrAmount, 10); } else { ticket.safeTransferFrom( address(this), user, idOrAmount, 10, "" ); } } else { if (isMint) { token.mint(user, idOrAmount); } else { token.transfer(user, idOrAmount); } } } function calculatedFees( uint64 destinationChainSelector, bool isTicket, uint256 idOrAmount ) external view returns (uint256) { Client.EVM2AnyMessage memory evm2AnyMessage = Client.EVM2AnyMessage({ receiver: abi.encode(address(this)), data: abi.encode(msg.sender, isTicket, idOrAmount), tokenAmounts: new Client.EVMTokenAmount[](0), extraArgs: Client._argsToBytes( Client.EVMExtraArgsV1({gasLimit: 200_000, strict: false}) ), feeToken: address(0) }); return IRouterClient(i_router).getFee( destinationChainSelector, evm2AnyMessage ); } function moveToChain( uint64 destinationChainSelector, bool isTicket, uint256 idOrAmount ) external payable returns (bytes32 messageId) { require( allowChainSelector[destinationChainSelector], "not allow chain" ); if (isTicket) { ticket.safeTransferFrom( msg.sender, address(this), idOrAmount, 10, "" ); if (isMint) { ticket.burn(idOrAmount); } } else { token.transferFrom(msg.sender, address(this), idOrAmount); if (isMint) { token.burn(idOrAmount); } } Client.EVM2AnyMessage memory evm2AnyMessage = Client.EVM2AnyMessage({ receiver: abi.encode(address(this)), data: abi.encode(msg.sender, isTicket, idOrAmount), tokenAmounts: new Client.EVMTokenAmount[](0), extraArgs: Client._argsToBytes( Client.EVMExtraArgsV1({gasLimit: 200_000, strict: false}) ), feeToken: address(0) }); uint256 fees = IRouterClient(i_router).getFee( destinationChainSelector, evm2AnyMessage ); require(msg.value >= fees, "Insufficient funds"); if (msg.value - fees > 0) { bool success = payable(msg.sender).send(msg.value - fees); require(success, "Transfer failed"); } messageId = IRouterClient(i_router).ccipSend{value: fees}( destinationChainSelector, evm2AnyMessage ); emit TokenMove( messageId, destinationChainSelector, msg.sender, isTicket, idOrAmount, fees ); return messageId; } function setAlowChain(uint64 chainSelector, bool allow) external onlyOwner { allowChainSelector[chainSelector] = allow; emit SetAlowChain(chainSelector, allow); } function onERC1155Received( address, address, uint256, uint256, bytes calldata ) external pure returns (bytes4) { return IERC1155Receiver.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] calldata, uint256[] calldata, bytes calldata ) external pure returns (bytes4) { return IERC1155Receiver.onERC1155BatchReceived.selector; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {Client} from "../libraries/Client.sol"; /// @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; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {Client} from "../libraries/Client.sol"; 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 guaranteed execution fee for the specified message /// delivery to destination chain /// @dev returns 0 fee on 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. function ccipSend( uint64 destinationChainSelector, Client.EVM2AnyMessage calldata message ) external payable returns (bytes32); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; // End consumer library. library Client { 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 and strict = false. 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) } // extraArgs will evolve to support new features // bytes4(keccak256("CCIP EVMExtraArgsV1")); bytes4 public constant EVM_EXTRA_ARGS_V1_TAG = 0x97a657c9; struct EVMExtraArgsV1 { uint256 gasLimit; // ATTENTION!!! MAX GAS LIMIT 4M FOR BETA TESTING bool strict; // See strict sequencing details below. } function _argsToBytes(EVMExtraArgsV1 memory extraArgs) internal pure returns (bytes memory bts) { return abi.encodeWithSelector(EVM_EXTRA_ARGS_V1_TAG, extraArgs); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./ConfirmedOwnerWithProposal.sol"; /** * @title The ConfirmedOwner contract * @notice A contract with helpers for basic contract ownership. */ contract ConfirmedOwner is ConfirmedOwnerWithProposal { constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./interfaces/OwnableInterface.sol"; /** * @title The ConfirmedOwner contract * @notice A contract with helpers for basic contract ownership. */ contract ConfirmedOwnerWithProposal is OwnableInterface { 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) { 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, * pending. */ function transferOwnership(address to) public override onlyOwner { _transferOwnership(to); } /** * @notice Allows an ownership transfer to be completed by the recipient. */ function acceptOwnership() external override { 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 { require(to != msg.sender, "Cannot transfer to self"); s_pendingOwner = to; emit OwnershipTransferRequested(s_owner, to); } /** * @notice validate access */ function _validateOwnership() internal view { require(msg.sender == s_owner, "Only callable by owner"); } /** * @notice Reverts if called by anyone other than the contract owner. */ modifier onlyOwner() { _validateOwnership(); _; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface OwnableInterface { function owner() external returns (address); function transferOwnership(address recipient) external; function acceptOwnership() external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {ConfirmedOwner} from "../../ConfirmedOwner.sol"; /// @title The OwnerIsCreator contract /// @notice A contract with helpers for basic contract ownership. contract OwnerIsCreator is ConfirmedOwner { constructor() ConfirmedOwner(msg.sender) {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC1155/IERC1155Receiver.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev _Available since v3.1._ */ interface IERC1155Receiver is IERC165 { /** * @dev Handles the receipt of a single ERC1155 token type. This function is * called at the end of a `safeTransferFrom` after the balance has been updated. * * NOTE: To accept the transfer, this must return * `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` * (i.e. 0xf23a6e61, or its own function selector). * * @param operator The address which initiated the transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param id The ID of the token being transferred * @param value The amount of tokens being transferred * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` if transfer is allowed */ function onERC1155Received( address operator, address from, uint256 id, uint256 value, bytes calldata data ) external returns (bytes4); /** * @dev Handles the receipt of a multiple ERC1155 token types. This function * is called at the end of a `safeBatchTransferFrom` after the balances have * been updated. * * NOTE: To accept the transfer(s), this must return * `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` * (i.e. 0xbc197c81, or its own function selector). * * @param operator The address which initiated the batch transfer (i.e. msg.sender) * @param from The address which previously owned the token * @param ids An array containing ids of each token being transferred (order and length must match values array) * @param values An array containing amounts of each token being transferred (order and length must match ids array) * @param data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` if transfer is allowed */ function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data ) external returns (bytes4); }
// 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); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import {IAny2EVMMessageReceiver} from "@chainlink/contracts-ccip/src/v0.8/ccip/interfaces/IAny2EVMMessageReceiver.sol"; import {Client} from "@chainlink/contracts-ccip/src/v0.8/ccip/libraries/Client.sol"; import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; abstract contract CCIPReceiver is IAny2EVMMessageReceiver, IERC165 { address i_router; constructor(address router) { if (router == address(0)) revert InvalidRouter(address(0)); i_router = router; } function supportsInterface( bytes4 interfaceId ) public pure override returns (bool) { return interfaceId == type(IAny2EVMMessageReceiver).interfaceId || interfaceId == type(IERC165).interfaceId; } function ccipReceive( Client.Any2EVMMessage calldata message ) external virtual override onlyRouter { _ccipReceive(message); } function _ccipReceive( Client.Any2EVMMessage memory message ) internal virtual; function getRouter() public view returns (address) { return address(i_router); } error InvalidRouter(address router); modifier onlyRouter() { if (msg.sender != address(i_router)) revert InvalidRouter(msg.sender); _; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; interface IERC20Token { function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); function mint(address _user, uint256 _amount) external; function burn(uint256 _amount) external; function transfer( address recipient, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface ITicket { function mint(address to, uint256 tokenId, uint256 amount) external; function burn(uint256 tokenId) external; function use(address user, uint256 tokenId, uint256 expires) external; function recover(address user, uint256 tokenId) external; function frozeOf(uint256 id) external view returns (bool); function ticketCount(address user) external view returns (uint256); function freeze(uint256 tokenId, address from) external; function unfreeze(uint256 tokenId) external; function setVault(address _cds) external; function setMiner(address _miner) external; function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) external; }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_ticket","type":"address"},{"internalType":"bool","name":"_isMint","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"InvalidRouter","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isTicket","type":"bool"},{"indexed":false,"internalType":"uint256","name":"idOrAmount","type":"uint256"}],"name":"CcipReceive","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"chainSelector","type":"uint64"},{"indexed":false,"internalType":"bool","name":"allow","type":"bool"}],"name":"SetAlowChain","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"messageId","type":"bytes32"},{"indexed":true,"internalType":"uint64","name":"destinationChainSelector","type":"uint64"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"bool","name":"isTicket","type":"bool"},{"indexed":false,"internalType":"uint256","name":"idOrAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fees","type":"uint256"}],"name":"TokenMove","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"route","type":"address"}],"name":"UpdateRoute","type":"event"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"","type":"uint64"}],"name":"allowChainSelector","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"destinationChainSelector","type":"uint64"},{"internalType":"bool","name":"isTicket","type":"bool"},{"internalType":"uint256","name":"idOrAmount","type":"uint256"}],"name":"calculatedFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"uint64","name":"destinationChainSelector","type":"uint64"},{"internalType":"bool","name":"isTicket","type":"bool"},{"internalType":"uint256","name":"idOrAmount","type":"uint256"}],"name":"moveToChain","outputs":[{"internalType":"bytes32","name":"messageId","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"chainSelector","type":"uint64"},{"internalType":"bool","name":"allow","type":"bool"}],"name":"setAlowChain","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":[],"name":"ticket","outputs":[{"internalType":"contract ITicket","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20Token","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_route","type":"address"}],"name":"updateRoute","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620019d5380380620019d5833981016040819052620000349162000221565b33806000866001600160a01b03811662000069576040516335fdcccd60e21b8152600060048201526024015b60405180910390fd5b600080546001600160a01b0319166001600160a01b039283161790558216620000d55760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f0000000000000000604482015260640162000060565b600180546001600160a01b0319166001600160a01b03848116919091179091558116156200010857620001088162000158565b5050600380546001600160a01b039586166001600160a01b0319918216179091556004805494909516921515600160a01b02166001600160a81b0319909316929092171790915550620002849050565b336001600160a01b03821603620001b25760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640162000060565b600280546001600160a01b0319166001600160a01b03838116918217909255600154604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b80516001600160a01b03811681146200021c57600080fd5b919050565b600080600080608085870312156200023857600080fd5b620002438562000204565b9350620002536020860162000204565b9250620002636040860162000204565b9150606085015180151581146200027957600080fd5b939692955090935050565b61174180620002946000396000f3fe6080604052600436106100e85760003560e01c8063bc197c811161008a578063f23a6e6111610059578063f23a6e61146102a6578063f2fde38b146102d3578063f9dab630146102f3578063fc0c546a1461031357600080fd5b8063bc197c81146101ed578063cc384ff914610235578063e74ac9dc14610265578063e7c600aa1461028557600080fd5b806379ba5097116100c657806379ba50971461017c57806385572ffb146101915780638da5cb5b146101b1578063b0f479a1146101cf57600080fd5b806301ffc9a7146100ed57806341c9a6f4146101225780636cc25db714610144575b600080fd5b3480156100f957600080fd5b5061010d610108366004610f89565b610333565b60405190151581526020015b60405180910390f35b34801561012e57600080fd5b5061014261013d366004610fe4565b61036a565b005b34801561015057600080fd5b50600454610164906001600160a01b031681565b6040516001600160a01b039091168152602001610119565b34801561018857600080fd5b506101426103d5565b34801561019d57600080fd5b506101426101ac36600461101b565b610488565b3480156101bd57600080fd5b506001546001600160a01b0316610164565b3480156101db57600080fd5b506000546001600160a01b0316610164565b3480156101f957600080fd5b5061021c6102083660046110f6565b63bc197c8160e01b98975050505050505050565b6040516001600160e01b03199091168152602001610119565b34801561024157600080fd5b5061010d6102503660046111b4565b60056020526000908152604090205460ff1681565b34801561027157600080fd5b506101426102803660046111cf565b6104c9565b6102986102933660046111ec565b610525565b604051908152602001610119565b3480156102b257600080fd5b5061021c6102c136600461122b565b63f23a6e6160e01b9695505050505050565b3480156102df57600080fd5b506101426102ee3660046111cf565b610a5a565b3480156102ff57600080fd5b5061029861030e3660046111ec565b610a6b565b34801561031f57600080fd5b50600354610164906001600160a01b031681565b60006001600160e01b031982166385572ffb60e01b148061036457506001600160e01b031982166301ffc9a760e01b145b92915050565b610372610bdf565b6001600160401b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f8448c40fb1d6624264ad02e0e024112ed439c58fa311d59f8598fefc611d4a69910160405180910390a15050565b6002546001600160a01b0316331461042d5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b600180546001600160a01b0319808216339081179093556002805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6000546001600160a01b031633146104b5576040516335fdcccd60e21b8152336004820152602401610424565b6104c66104c182611451565b610c34565b50565b6104d1610bdf565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5f1cffb832786ba0fe71c16d4a6dc793c0fd634f29ec02e52de8e8f20db36169060200160405180910390a150565b6001600160401b03831660009081526005602052604081205460ff1661057f5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1030b63637bb9031b430b4b760891b6044820152606401610424565b82156106635760048054604051637921219560e11b81526001600160a01b039091169163f242432a916105bb91339130918891600a91016114fd565b600060405180830381600087803b1580156105d557600080fd5b505af11580156105e9573d6000803e3d6000fd5b5050600454600160a01b900460ff1615915061065e90505760048054604051630852cd8d60e31b81529182018490526001600160a01b0316906342966c6890602401600060405180830381600087803b15801561064557600080fd5b505af1158015610659573d6000803e3d6000fd5b505050505b610750565b6003546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156106ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106de9190611535565b50600454600160a01b900460ff161561075057600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561073757600080fd5b505af115801561074b573d6000803e3d6000fd5b505050505b6040805160a081019091523060c08201526000908060e0810160405160208183030381529060405281526020013386866040516020016107ae939291906001600160a01b039390931683529015156020830152604082015260600190565b60408051601f198184030181529190528152602001600060405190808252806020026020018201604052801561080a57816020015b60408051808201909152600080825260208201528152602001906001900390816107e35790505b50815260200160006001600160a01b03168152602001610843604051806040016040528062030d40815260200160001515815250610e95565b9052600080546040516320487ded60e01b815292935090916001600160a01b03909116906320487ded9061087d9089908690600401611598565b602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be9190611671565b9050803410156109055760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610424565b6000610911823461168a565b1115610981576000336108fc610927843461168a565b6040518115909202916000818181858888f1935050505090508061097f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610424565b505b6000546040516396f4e9f960e01b81526001600160a01b03909116906396f4e9f99083906109b5908a908790600401611598565b60206040518083038185885af11580156109d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f89190611671565b604080513381528715156020820152908101869052606081018390529093506001600160401b0387169084907fc5a3560d3ddae7d1dfd83ad6472f7097105d75b76c7f896ffd5309981196b8759060800160405180910390a350509392505050565b610a62610bdf565b6104c681610edf565b6040805160a081019091523060c082015260009081908060e081016040516020818303038152906040528152602001338686604051602001610acb939291906001600160a01b039390931683529015156020830152604082015260600190565b60408051601f1981840301815291905281526020016000604051908082528060200260200182016040528015610b2757816020015b6040805180820190915260008082526020820152815260200190600190039081610b005790505b50815260200160006001600160a01b03168152602001610b60604051806040016040528062030d40815260200160001515815250610e95565b90526000546040516320487ded60e01b81529192506001600160a01b0316906320487ded90610b959088908590600401611598565b602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190611671565b95945050505050565b6001546001600160a01b03163314610c325760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b6044820152606401610424565b565b60008160400151806020019051810190610c4e91906116ab565b90506001600160a01b0381163014610c975760405162461bcd60e51b815260206004820152600c60248201526b39b2b73232b91032b93937b960a11b6044820152606401610424565b60008060008460600151806020019051810190610cb491906116c8565b604080516001600160a01b0385168152831515602082015290810182905292955090935091507fafba9a639e28cb81704d8050adbfc0ded6623aed00fe76af1b9e2654495998c09060600160405180910390a18115610dca57600454600160a01b900460ff1615610d945760048054604051630ab714fb60e11b81526001600160a01b038681169382019390935260248101849052600a604482015291169063156e29f6906064015b600060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b50505050610e8e565b60048054604051637921219560e11b81526001600160a01b039091169163f242432a91610d5d91309188918791600a91016114fd565b600454600160a01b900460ff1615610e15576003546040516340c10f1960e01b81526001600160a01b03858116600483015260248201849052909116906340c10f1990604401610d5d565b60035460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c9190611535565b505b5050505050565b6040805182516024820152602092830151151560448083019190915282518083039091018152606490910190915290810180516001600160e01b03166397a657c960e01b17905290565b336001600160a01b03821603610f375760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610424565b600280546001600160a01b0319166001600160a01b03838116918217909255600154604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600060208284031215610f9b57600080fd5b81356001600160e01b031981168114610fb357600080fd5b9392505050565b80356001600160401b0381168114610fd157600080fd5b919050565b80151581146104c657600080fd5b60008060408385031215610ff757600080fd5b61100083610fba565b9150602083013561101081610fd6565b809150509250929050565b60006020828403121561102d57600080fd5b81356001600160401b0381111561104357600080fd5b820160a08185031215610fb357600080fd5b6001600160a01b03811681146104c657600080fd5b60008083601f84011261107c57600080fd5b5081356001600160401b0381111561109357600080fd5b6020830191508360208260051b85010111156110ae57600080fd5b9250929050565b60008083601f8401126110c757600080fd5b5081356001600160401b038111156110de57600080fd5b6020830191508360208285010111156110ae57600080fd5b60008060008060008060008060a0898b03121561111257600080fd5b883561111d81611055565b9750602089013561112d81611055565b965060408901356001600160401b038082111561114957600080fd5b6111558c838d0161106a565b909850965060608b013591508082111561116e57600080fd5b61117a8c838d0161106a565b909650945060808b013591508082111561119357600080fd5b506111a08b828c016110b5565b999c989b5096995094979396929594505050565b6000602082840312156111c657600080fd5b610fb382610fba565b6000602082840312156111e157600080fd5b8135610fb381611055565b60008060006060848603121561120157600080fd5b61120a84610fba565b9250602084013561121a81610fd6565b929592945050506040919091013590565b60008060008060008060a0878903121561124457600080fd5b863561124f81611055565b9550602087013561125f81611055565b9450604087013593506060870135925060808701356001600160401b0381111561128857600080fd5b61129489828a016110b5565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156112de576112de6112a6565b60405290565b60405160a081016001600160401b03811182821017156112de576112de6112a6565b604051601f8201601f191681016001600160401b038111828210171561132e5761132e6112a6565b604052919050565b600082601f83011261134757600080fd5b81356001600160401b03811115611360576113606112a6565b611373601f8201601f1916602001611306565b81815284602083860101111561138857600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126113b657600080fd5b813560206001600160401b038211156113d1576113d16112a6565b6113df818360051b01611306565b82815260069290921b840181019181810190868411156113fe57600080fd5b8286015b84811015611446576040818903121561141b5760008081fd5b6114236112bc565b813561142e81611055565b81528185013585820152835291830191604001611402565b509695505050505050565b600060a0823603121561146357600080fd5b61146b6112e4565b8235815261147b60208401610fba565b602082015260408301356001600160401b038082111561149a57600080fd5b6114a636838701611336565b604084015260608501359150808211156114bf57600080fd5b6114cb36838701611336565b606084015260808501359150808211156114e457600080fd5b506114f1368286016113a5565b60808301525092915050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b60006020828403121561154757600080fd5b8151610fb381610fd6565b6000815180845260005b818110156115785760208185018101518683018201520161155c565b506000602082860101526020601f19601f83011685010191505092915050565b600060406001600160401b038516835260208181850152845160a0838601526115c460e0860182611552565b905081860151603f19808784030160608801526115e18383611552565b88860151888203830160808a01528051808352908601945060009350908501905b8084101561163457845180516001600160a01b0316835286015186830152938501936001939093019290860190611602565b5060608901516001600160a01b031660a08901526080890151888203830160c08a015295506116638187611552565b9a9950505050505050505050565b60006020828403121561168357600080fd5b5051919050565b8181038181111561036457634e487b7160e01b600052601160045260246000fd5b6000602082840312156116bd57600080fd5b8151610fb381611055565b6000806000606084860312156116dd57600080fd5b83516116e881611055565b60208501519093506116f981610fd6565b8092505060408401519050925092509256fea2646970667358221220bde0010175c11ee8287cfb2d240aef3fc2c3454e8983acb2a0d65fb4d56c9f7864736f6c63430008120033000000000000000000000000e561d5e02207fb5eb32cca20a699e0d8919a14760000000000000000000000006f6a40a7149b4b4f6568c46a0c5a98927a00e9f1000000000000000000000000f8522853bd9ae4d1215814d81e4f66dc34e444720000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106100e85760003560e01c8063bc197c811161008a578063f23a6e6111610059578063f23a6e61146102a6578063f2fde38b146102d3578063f9dab630146102f3578063fc0c546a1461031357600080fd5b8063bc197c81146101ed578063cc384ff914610235578063e74ac9dc14610265578063e7c600aa1461028557600080fd5b806379ba5097116100c657806379ba50971461017c57806385572ffb146101915780638da5cb5b146101b1578063b0f479a1146101cf57600080fd5b806301ffc9a7146100ed57806341c9a6f4146101225780636cc25db714610144575b600080fd5b3480156100f957600080fd5b5061010d610108366004610f89565b610333565b60405190151581526020015b60405180910390f35b34801561012e57600080fd5b5061014261013d366004610fe4565b61036a565b005b34801561015057600080fd5b50600454610164906001600160a01b031681565b6040516001600160a01b039091168152602001610119565b34801561018857600080fd5b506101426103d5565b34801561019d57600080fd5b506101426101ac36600461101b565b610488565b3480156101bd57600080fd5b506001546001600160a01b0316610164565b3480156101db57600080fd5b506000546001600160a01b0316610164565b3480156101f957600080fd5b5061021c6102083660046110f6565b63bc197c8160e01b98975050505050505050565b6040516001600160e01b03199091168152602001610119565b34801561024157600080fd5b5061010d6102503660046111b4565b60056020526000908152604090205460ff1681565b34801561027157600080fd5b506101426102803660046111cf565b6104c9565b6102986102933660046111ec565b610525565b604051908152602001610119565b3480156102b257600080fd5b5061021c6102c136600461122b565b63f23a6e6160e01b9695505050505050565b3480156102df57600080fd5b506101426102ee3660046111cf565b610a5a565b3480156102ff57600080fd5b5061029861030e3660046111ec565b610a6b565b34801561031f57600080fd5b50600354610164906001600160a01b031681565b60006001600160e01b031982166385572ffb60e01b148061036457506001600160e01b031982166301ffc9a760e01b145b92915050565b610372610bdf565b6001600160401b038216600081815260056020908152604091829020805460ff19168515159081179091558251938452908301527f8448c40fb1d6624264ad02e0e024112ed439c58fa311d59f8598fefc611d4a69910160405180910390a15050565b6002546001600160a01b0316331461042d5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b60448201526064015b60405180910390fd5b600180546001600160a01b0319808216339081179093556002805490911690556040516001600160a01b03909116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6000546001600160a01b031633146104b5576040516335fdcccd60e21b8152336004820152602401610424565b6104c66104c182611451565b610c34565b50565b6104d1610bdf565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527fe5f1cffb832786ba0fe71c16d4a6dc793c0fd634f29ec02e52de8e8f20db36169060200160405180910390a150565b6001600160401b03831660009081526005602052604081205460ff1661057f5760405162461bcd60e51b815260206004820152600f60248201526e3737ba1030b63637bb9031b430b4b760891b6044820152606401610424565b82156106635760048054604051637921219560e11b81526001600160a01b039091169163f242432a916105bb91339130918891600a91016114fd565b600060405180830381600087803b1580156105d557600080fd5b505af11580156105e9573d6000803e3d6000fd5b5050600454600160a01b900460ff1615915061065e90505760048054604051630852cd8d60e31b81529182018490526001600160a01b0316906342966c6890602401600060405180830381600087803b15801561064557600080fd5b505af1158015610659573d6000803e3d6000fd5b505050505b610750565b6003546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156106ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106de9190611535565b50600454600160a01b900460ff161561075057600354604051630852cd8d60e31b8152600481018490526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561073757600080fd5b505af115801561074b573d6000803e3d6000fd5b505050505b6040805160a081019091523060c08201526000908060e0810160405160208183030381529060405281526020013386866040516020016107ae939291906001600160a01b039390931683529015156020830152604082015260600190565b60408051601f198184030181529190528152602001600060405190808252806020026020018201604052801561080a57816020015b60408051808201909152600080825260208201528152602001906001900390816107e35790505b50815260200160006001600160a01b03168152602001610843604051806040016040528062030d40815260200160001515815250610e95565b9052600080546040516320487ded60e01b815292935090916001600160a01b03909116906320487ded9061087d9089908690600401611598565b602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be9190611671565b9050803410156109055760405162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b6044820152606401610424565b6000610911823461168a565b1115610981576000336108fc610927843461168a565b6040518115909202916000818181858888f1935050505090508061097f5760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606401610424565b505b6000546040516396f4e9f960e01b81526001600160a01b03909116906396f4e9f99083906109b5908a908790600401611598565b60206040518083038185885af11580156109d3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109f89190611671565b604080513381528715156020820152908101869052606081018390529093506001600160401b0387169084907fc5a3560d3ddae7d1dfd83ad6472f7097105d75b76c7f896ffd5309981196b8759060800160405180910390a350509392505050565b610a62610bdf565b6104c681610edf565b6040805160a081019091523060c082015260009081908060e081016040516020818303038152906040528152602001338686604051602001610acb939291906001600160a01b039390931683529015156020830152604082015260600190565b60408051601f1981840301815291905281526020016000604051908082528060200260200182016040528015610b2757816020015b6040805180820190915260008082526020820152815260200190600190039081610b005790505b50815260200160006001600160a01b03168152602001610b60604051806040016040528062030d40815260200160001515815250610e95565b90526000546040516320487ded60e01b81529192506001600160a01b0316906320487ded90610b959088908590600401611598565b602060405180830381865afa158015610bb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd69190611671565b95945050505050565b6001546001600160a01b03163314610c325760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b6044820152606401610424565b565b60008160400151806020019051810190610c4e91906116ab565b90506001600160a01b0381163014610c975760405162461bcd60e51b815260206004820152600c60248201526b39b2b73232b91032b93937b960a11b6044820152606401610424565b60008060008460600151806020019051810190610cb491906116c8565b604080516001600160a01b0385168152831515602082015290810182905292955090935091507fafba9a639e28cb81704d8050adbfc0ded6623aed00fe76af1b9e2654495998c09060600160405180910390a18115610dca57600454600160a01b900460ff1615610d945760048054604051630ab714fb60e11b81526001600160a01b038681169382019390935260248101849052600a604482015291169063156e29f6906064015b600060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b50505050610e8e565b60048054604051637921219560e11b81526001600160a01b039091169163f242432a91610d5d91309188918791600a91016114fd565b600454600160a01b900460ff1615610e15576003546040516340c10f1960e01b81526001600160a01b03858116600483015260248201849052909116906340c10f1990604401610d5d565b60035460405163a9059cbb60e01b81526001600160a01b038581166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c9190611535565b505b5050505050565b6040805182516024820152602092830151151560448083019190915282518083039091018152606490910190915290810180516001600160e01b03166397a657c960e01b17905290565b336001600160a01b03821603610f375760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610424565b600280546001600160a01b0319166001600160a01b03838116918217909255600154604051919216907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae127890600090a350565b600060208284031215610f9b57600080fd5b81356001600160e01b031981168114610fb357600080fd5b9392505050565b80356001600160401b0381168114610fd157600080fd5b919050565b80151581146104c657600080fd5b60008060408385031215610ff757600080fd5b61100083610fba565b9150602083013561101081610fd6565b809150509250929050565b60006020828403121561102d57600080fd5b81356001600160401b0381111561104357600080fd5b820160a08185031215610fb357600080fd5b6001600160a01b03811681146104c657600080fd5b60008083601f84011261107c57600080fd5b5081356001600160401b0381111561109357600080fd5b6020830191508360208260051b85010111156110ae57600080fd5b9250929050565b60008083601f8401126110c757600080fd5b5081356001600160401b038111156110de57600080fd5b6020830191508360208285010111156110ae57600080fd5b60008060008060008060008060a0898b03121561111257600080fd5b883561111d81611055565b9750602089013561112d81611055565b965060408901356001600160401b038082111561114957600080fd5b6111558c838d0161106a565b909850965060608b013591508082111561116e57600080fd5b61117a8c838d0161106a565b909650945060808b013591508082111561119357600080fd5b506111a08b828c016110b5565b999c989b5096995094979396929594505050565b6000602082840312156111c657600080fd5b610fb382610fba565b6000602082840312156111e157600080fd5b8135610fb381611055565b60008060006060848603121561120157600080fd5b61120a84610fba565b9250602084013561121a81610fd6565b929592945050506040919091013590565b60008060008060008060a0878903121561124457600080fd5b863561124f81611055565b9550602087013561125f81611055565b9450604087013593506060870135925060808701356001600160401b0381111561128857600080fd5b61129489828a016110b5565b979a9699509497509295939492505050565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156112de576112de6112a6565b60405290565b60405160a081016001600160401b03811182821017156112de576112de6112a6565b604051601f8201601f191681016001600160401b038111828210171561132e5761132e6112a6565b604052919050565b600082601f83011261134757600080fd5b81356001600160401b03811115611360576113606112a6565b611373601f8201601f1916602001611306565b81815284602083860101111561138857600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f8301126113b657600080fd5b813560206001600160401b038211156113d1576113d16112a6565b6113df818360051b01611306565b82815260069290921b840181019181810190868411156113fe57600080fd5b8286015b84811015611446576040818903121561141b5760008081fd5b6114236112bc565b813561142e81611055565b81528185013585820152835291830191604001611402565b509695505050505050565b600060a0823603121561146357600080fd5b61146b6112e4565b8235815261147b60208401610fba565b602082015260408301356001600160401b038082111561149a57600080fd5b6114a636838701611336565b604084015260608501359150808211156114bf57600080fd5b6114cb36838701611336565b606084015260808501359150808211156114e457600080fd5b506114f1368286016113a5565b60808301525092915050565b6001600160a01b0394851681529290931660208301526040820152606081019190915260a06080820181905260009082015260c00190565b60006020828403121561154757600080fd5b8151610fb381610fd6565b6000815180845260005b818110156115785760208185018101518683018201520161155c565b506000602082860101526020601f19601f83011685010191505092915050565b600060406001600160401b038516835260208181850152845160a0838601526115c460e0860182611552565b905081860151603f19808784030160608801526115e18383611552565b88860151888203830160808a01528051808352908601945060009350908501905b8084101561163457845180516001600160a01b0316835286015186830152938501936001939093019290860190611602565b5060608901516001600160a01b031660a08901526080890151888203830160c08a015295506116638187611552565b9a9950505050505050505050565b60006020828403121561168357600080fd5b5051919050565b8181038181111561036457634e487b7160e01b600052601160045260246000fd5b6000602082840312156116bd57600080fd5b8151610fb381611055565b6000806000606084860312156116dd57600080fd5b83516116e881611055565b60208501519093506116f981610fd6565b8092505060408401519050925092509256fea2646970667358221220bde0010175c11ee8287cfb2d240aef3fc2c3454e8983acb2a0d65fb4d56c9f7864736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e561d5e02207fb5eb32cca20a699e0d8919a14760000000000000000000000006f6a40a7149b4b4f6568c46a0c5a98927a00e9f1000000000000000000000000f8522853bd9ae4d1215814d81e4f66dc34e444720000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _router (address): 0xE561d5E02207fb5eB32cca20a699E0d8919a1476
Arg [1] : _token (address): 0x6F6A40a7149b4b4F6568c46A0C5A98927A00E9F1
Arg [2] : _ticket (address): 0xF8522853bD9Ae4D1215814D81e4f66dc34E44472
Arg [3] : _isMint (bool): False
-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000e561d5e02207fb5eb32cca20a699e0d8919a1476
Arg [1] : 0000000000000000000000006f6a40a7149b4b4f6568c46a0c5a98927a00e9f1
Arg [2] : 000000000000000000000000f8522853bd9ae4d1215814d81e4f66dc34e44472
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 27 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.