Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 493 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Execute | 19346856 | 122 days ago | IN | 0 ETH | 0.005561 | ||||
Execute | 19340096 | 123 days ago | IN | 0 ETH | 0.00378174 | ||||
Execute | 19312573 | 127 days ago | IN | 0 ETH | 0.00559765 | ||||
Execute | 19300765 | 129 days ago | IN | 0 ETH | 0.00450251 | ||||
Execute | 19295001 | 129 days ago | IN | 0 ETH | 0.00213966 | ||||
Execute | 19291917 | 130 days ago | IN | 0 ETH | 0.00322849 | ||||
Execute | 19280325 | 131 days ago | IN | 0 ETH | 0.00275065 | ||||
Execute | 19254431 | 135 days ago | IN | 0 ETH | 0.00340746 | ||||
Execute | 19231895 | 138 days ago | IN | 0 ETH | 0.00185001 | ||||
Execute | 19223095 | 139 days ago | IN | 0 ETH | 0.00180124 | ||||
Execute | 19221212 | 140 days ago | IN | 0 ETH | 0.00308052 | ||||
Execute | 19168762 | 147 days ago | IN | 0 ETH | 0.00250337 | ||||
Execute | 19165586 | 148 days ago | IN | 0 ETH | 0.00194572 | ||||
Execute | 19150655 | 150 days ago | IN | 0 ETH | 0.00210564 | ||||
Execute | 19109258 | 155 days ago | IN | 0 ETH | 0.00090376 | ||||
Execute | 19100247 | 157 days ago | IN | 0 ETH | 0.00105834 | ||||
Execute | 19071896 | 161 days ago | IN | 0 ETH | 0.00120303 | ||||
Execute | 19070415 | 161 days ago | IN | 0 ETH | 0.00181187 | ||||
Execute | 19070118 | 161 days ago | IN | 0 ETH | 0.00228787 | ||||
Execute | 19051511 | 164 days ago | IN | 0 ETH | 0.00189735 | ||||
Execute | 18950364 | 178 days ago | IN | 0 ETH | 0.00210049 | ||||
Execute | 18945563 | 178 days ago | IN | 0 ETH | 0.00139881 | ||||
Execute | 18903633 | 184 days ago | IN | 0 ETH | 0.00109851 | ||||
Execute | 18476118 | 244 days ago | IN | 0 ETH | 0.00139526 | ||||
Execute | 18435039 | 250 days ago | IN | 0 ETH | 0.00463614 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
JunkyardStorage
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 100 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; import "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; import {AxelarExecutable} from "@axelar-network/axelar-gmp-sdk-solidity/contracts/executables/AxelarExecutable.sol"; /** * @title JunkyardStorage * @author Razmo * @notice Deployed on Ethereum, this contract receives and sends the NFTs * @dev The transfer function is called by the Manager from Polygon through Axelar */ contract JunkyardStorage is AxelarExecutable, Ownable { string public managerChain; string public managerAddress; event TokenSent(address indexed, address, uint256); // To, collection, tokenId event ContractValueUpdate(string, string); // Value name, new value modifier isFromManager( string calldata _sourceChain, string calldata _sourceAddress ) { bytes32 source = keccak256(abi.encodePacked(_sourceChain, _sourceAddress)); bytes32 manager = keccak256(abi.encodePacked(managerChain, managerAddress)); require(source == manager, "Not allowed to call this contract"); _; } constructor(address _gateway) AxelarExecutable(_gateway) {} /** * @notice Update the name of the chain of the Manager * @param newManagerChain New chain */ function setManagerChain(string memory newManagerChain) external onlyOwner { managerChain = newManagerChain; emit ContractValueUpdate('managerChain', newManagerChain); } /** * @notice Update the address of the Manager * @param newManagerAddress New address */ function setManagerAddress(string memory newManagerAddress) external onlyOwner { managerAddress = newManagerAddress; emit ContractValueUpdate('managerAddress', newManagerAddress); } /** * @notice Send an NFT to a Player * @dev Called by the Manager from Polygon after a verification * @param _sourceChain Chain name of the source transaction * @param _sourceAddress Address of the contract who calls this function * @param _payload Payload of token (uid, from, collection, tokenId, transferTx) */ function _execute( string calldata _sourceChain, string calldata _sourceAddress, bytes calldata _payload ) internal override isFromManager(_sourceChain, _sourceAddress) { (address to, uint256 tokenId, address collection) = abi.decode( _payload, (address, uint256, address) ); IERC721(collection).safeTransferFrom(address(this), to, tokenId); emit TokenSent(to, collection, tokenId); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import { IAxelarGateway } from '../interfaces/IAxelarGateway.sol'; import { IAxelarExecutable } from '../interfaces/IAxelarExecutable.sol'; contract AxelarExecutable is IAxelarExecutable { IAxelarGateway public immutable gateway; constructor(address gateway_) { if (gateway_ == address(0)) revert InvalidAddress(); gateway = IAxelarGateway(gateway_); } function execute( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, bytes calldata payload ) external override { bytes32 payloadHash = keccak256(payload); if (!gateway.validateContractCall(commandId, sourceChain, sourceAddress, payloadHash)) revert NotApprovedByGateway(); _execute(sourceChain, sourceAddress, payload); } function executeWithToken( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, bytes calldata payload, string calldata tokenSymbol, uint256 amount ) external override { bytes32 payloadHash = keccak256(payload); if ( !gateway.validateContractCallAndMint( commandId, sourceChain, sourceAddress, payloadHash, tokenSymbol, amount ) ) revert NotApprovedByGateway(); _executeWithToken(sourceChain, sourceAddress, payload, tokenSymbol, amount); } function _execute( string calldata sourceChain, string calldata sourceAddress, bytes calldata payload ) internal virtual {} function _executeWithToken( string calldata sourceChain, string calldata sourceAddress, bytes calldata payload, string calldata tokenSymbol, uint256 amount ) internal virtual {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// 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; interface IAxelarGateway { /**********\ |* Errors *| \**********/ error NotSelf(); error NotProxy(); error InvalidCodeHash(); error SetupFailed(); error InvalidAuthModule(); error InvalidTokenDeployer(); error InvalidAmount(); error InvalidChainId(); error InvalidCommands(); error TokenDoesNotExist(string symbol); error TokenAlreadyExists(string symbol); error TokenDeployFailed(string symbol); error TokenContractDoesNotExist(address token); error BurnFailed(string symbol); error MintFailed(string symbol); error InvalidSetMintLimitsParams(); error ExceedMintLimit(string symbol); /**********\ |* Events *| \**********/ event TokenSent( address indexed sender, string destinationChain, string destinationAddress, string symbol, uint256 amount ); event ContractCall( address indexed sender, string destinationChain, string destinationContractAddress, bytes32 indexed payloadHash, bytes payload ); event ContractCallWithToken( address indexed sender, string destinationChain, string destinationContractAddress, bytes32 indexed payloadHash, bytes payload, string symbol, uint256 amount ); event Executed(bytes32 indexed commandId); event TokenDeployed(string symbol, address tokenAddresses); event ContractCallApproved( bytes32 indexed commandId, string sourceChain, string sourceAddress, address indexed contractAddress, bytes32 indexed payloadHash, bytes32 sourceTxHash, uint256 sourceEventIndex ); event ContractCallApprovedWithMint( bytes32 indexed commandId, string sourceChain, string sourceAddress, address indexed contractAddress, bytes32 indexed payloadHash, string symbol, uint256 amount, bytes32 sourceTxHash, uint256 sourceEventIndex ); event TokenMintLimitUpdated(string symbol, uint256 limit); event OperatorshipTransferred(bytes newOperatorsData); event Upgraded(address indexed implementation); /********************\ |* Public Functions *| \********************/ function sendToken( string calldata destinationChain, string calldata destinationAddress, string calldata symbol, uint256 amount ) external; function callContract( string calldata destinationChain, string calldata contractAddress, bytes calldata payload ) external; function callContractWithToken( string calldata destinationChain, string calldata contractAddress, bytes calldata payload, string calldata symbol, uint256 amount ) external; function isContractCallApproved( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, address contractAddress, bytes32 payloadHash ) external view returns (bool); function isContractCallAndMintApproved( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, address contractAddress, bytes32 payloadHash, string calldata symbol, uint256 amount ) external view returns (bool); function validateContractCall( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, bytes32 payloadHash ) external returns (bool); function validateContractCallAndMint( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, bytes32 payloadHash, string calldata symbol, uint256 amount ) external returns (bool); /***********\ |* Getters *| \***********/ function authModule() external view returns (address); function tokenDeployer() external view returns (address); function tokenMintLimit(string memory symbol) external view returns (uint256); function tokenMintAmount(string memory symbol) external view returns (uint256); function allTokensFrozen() external view returns (bool); function implementation() external view returns (address); function tokenAddresses(string memory symbol) external view returns (address); function tokenFrozen(string memory symbol) external view returns (bool); function isCommandExecuted(bytes32 commandId) external view returns (bool); function adminEpoch() external view returns (uint256); function adminThreshold(uint256 epoch) external view returns (uint256); function admins(uint256 epoch) external view returns (address[] memory); /*******************\ |* Admin Functions *| \*******************/ function setTokenMintLimits(string[] calldata symbols, uint256[] calldata limits) external; function upgrade( address newImplementation, bytes32 newImplementationCodeHash, bytes calldata setupParams ) external; /**********************\ |* External Functions *| \**********************/ function setup(bytes calldata params) external; function execute(bytes calldata input) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import { IAxelarGateway } from '../interfaces/IAxelarGateway.sol'; interface IAxelarExecutable { error InvalidAddress(); error NotApprovedByGateway(); function gateway() external view returns (IAxelarGateway); function execute( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, bytes calldata payload ) external; function executeWithToken( bytes32 commandId, string calldata sourceChain, string calldata sourceAddress, bytes calldata payload, string calldata tokenSymbol, uint256 amount ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "evmVersion": "london", "optimizer": { "enabled": true, "runs": 100 }, "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":"_gateway","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"NotApprovedByGateway","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"},{"indexed":false,"internalType":"string","name":"","type":"string"}],"name":"ContractValueUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"TokenSent","type":"event"},{"inputs":[{"internalType":"bytes32","name":"commandId","type":"bytes32"},{"internalType":"string","name":"sourceChain","type":"string"},{"internalType":"string","name":"sourceAddress","type":"string"},{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"commandId","type":"bytes32"},{"internalType":"string","name":"sourceChain","type":"string"},{"internalType":"string","name":"sourceAddress","type":"string"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"executeWithToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gateway","outputs":[{"internalType":"contract IAxelarGateway","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managerAddress","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managerChain","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newManagerAddress","type":"string"}],"name":"setManagerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newManagerChain","type":"string"}],"name":"setManagerChain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b50604051610f43380380610f4383398101604081905261002f916100c2565b806001600160a01b0381166100575760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b031660805261006c33610072565b506100f2565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100d457600080fd5b81516001600160a01b03811681146100eb57600080fd5b9392505050565b608051610e2961011a6000396000818160a80152818161020501526102f70152610e296000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80636ef0d869116100665780636ef0d86914610137578063715018a61461014a5780638da5cb5b14610152578063cf73a1bc14610163578063f2fde38b1461016b57600080fd5b8063116191b6146100a357806312c17e15146100e75780631a98b2e0146100fc578063491606581461010f5780636bcfec8214610122575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100fa6100f5366004610823565b61017e565b005b6100fa61010a36600461091d565b6101d4565b6100fa61011d3660046109f7565b6102c6565b61012a6103bd565b6040516100de9190610ae8565b6100fa610145366004610823565b61044b565b6100fa610496565b6000546001600160a01b03166100ca565b61012a6104aa565b6100fa610179366004610b17565b6104b7565b610186610535565b8051610199906002906020840190610774565b507fb184d45c94ae2787281f233737a5474fa098c94de3debaacf9986e2755c3b8f3816040516101c99190610b34565b60405180910390a150565b600085856040516101e6929190610b6c565b604051908190038120631876eed960e01b825291506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631876eed99061024a908e908e908e908e908e9089908d908d908d90600401610ba5565b602060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029c9190610c04565b6102b957604051631403112d60e21b815260040160405180910390fd5b5050505050505050505050565b600082826040516102d8929190610b6c565b604051908190038120635f6970c360e01b825291506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690635f6970c390610336908b908b908b908b908b908990600401610c26565b602060405180830381600087803b15801561035057600080fd5b505af1158015610364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103889190610c04565b6103a557604051631403112d60e21b815260040160405180910390fd5b6103b387878787878761058f565b5050505050505050565b600180546103ca90610c67565b80601f01602080910402602001604051908101604052809291908181526020018280546103f690610c67565b80156104435780601f1061041857610100808354040283529160200191610443565b820191906000526020600020905b81548152906001019060200180831161042657829003601f168201915b505050505081565b610453610535565b8051610466906001906020840190610774565b507fb184d45c94ae2787281f233737a5474fa098c94de3debaacf9986e2755c3b8f3816040516101c99190610ca2565b61049e610535565b6104a86000610724565b565b600280546103ca90610c67565b6104bf610535565b6001600160a01b0381166105295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61053281610724565b50565b6000546001600160a01b031633146104a85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610520565b858585856000848484846040516020016105ac9493929190610cd8565b6040516020818303038152906040528051906020012090506000600160026040516020016105db929190610d94565b60405160208183030381529060405280519060200120905080821461064c5760405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f2063616c6c207468697320636f6e747261636044820152601d60fa1b6064820152608401610520565b6000808061065c8a8c018c610db1565b604051632142170760e11b81523060048201526001600160a01b038085166024830152604482018490529396509194509250908216906342842e0e90606401600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201879052871693507f3ddb739c68dd901671f09fbe0bc2344c179ed55f8e8110a7c7a3c5665bd9518d92500160405180910390a2505050505050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805461078090610c67565b90600052602060002090601f0160209004810192826107a257600085556107e8565b82601f106107bb57805160ff19168380011785556107e8565b828001600101855582156107e8579182015b828111156107e85782518255916020019190600101906107cd565b506107f49291506107f8565b5090565b5b808211156107f457600081556001016107f9565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561083557600080fd5b813567ffffffffffffffff8082111561084d57600080fd5b818401915084601f83011261086157600080fd5b8135818111156108735761087361080d565b604051601f8201601f19908116603f0116810190838211818310171561089b5761089b61080d565b816040528281528760208487010111156108b457600080fd5b826020860160208301376000928101602001929092525095945050505050565b60008083601f8401126108e657600080fd5b50813567ffffffffffffffff8111156108fe57600080fd5b60208301915083602082850101111561091657600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561093c57600080fd5b8a35995060208b013567ffffffffffffffff8082111561095b57600080fd5b6109678e838f016108d4565b909b50995060408d013591508082111561098057600080fd5b61098c8e838f016108d4565b909950975060608d01359150808211156109a557600080fd5b6109b18e838f016108d4565b909750955060808d01359150808211156109ca57600080fd5b506109d78d828e016108d4565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60008060008060008060006080888a031215610a1257600080fd5b87359650602088013567ffffffffffffffff80821115610a3157600080fd5b610a3d8b838c016108d4565b909850965060408a0135915080821115610a5657600080fd5b610a628b838c016108d4565b909650945060608a0135915080821115610a7b57600080fd5b50610a888a828b016108d4565b989b979a50959850939692959293505050565b6000815180845260005b81811015610ac157602081850181015186830182015201610aa5565b81811115610ad3576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610afb6020830184610a9b565b9392505050565b6001600160a01b038116811461053257600080fd5b600060208284031215610b2957600080fd5b8135610afb81610b02565b60408152600e60408201526d6d616e616765724164647265737360901b6060820152608060208201526000610afb6080830184610a9b565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b89815260c060208201526000610bbf60c083018a8c610b7c565b8281036040840152610bd281898b610b7c565b90508660608401528281036080840152610bed818688610b7c565b9150508260a08301529a9950505050505050505050565b600060208284031215610c1657600080fd5b81518015158114610afb57600080fd5b868152608060208201526000610c40608083018789610b7c565b8281036040840152610c53818688610b7c565b915050826060830152979650505050505050565b600181811c90821680610c7b57607f821691505b60208210811415610c9c57634e487b7160e01b600052602260045260246000fd5b50919050565b60408152600c60408201526b36b0b730b3b2b921b430b4b760a11b6060820152608060208201526000610afb6080830184610a9b565b8385823760008482016000815283858237600093019283525090949350505050565b8054600090600181811c9080831680610d1457607f831692505b6020808410821415610d3657634e487b7160e01b600052602260045260246000fd5b818015610d4a5760018114610d5b57610d88565b60ff19861689528489019650610d88565b60008881526020902060005b86811015610d805781548b820152908501908301610d67565b505084890196505b50505050505092915050565b6000610da9610da38386610cfa565b84610cfa565b949350505050565b600080600060608486031215610dc657600080fd5b8335610dd181610b02565b9250602084013591506040840135610de881610b02565b80915050925092509256fea26469706673582212204301b964a265f0e73af3bc17da0cb9db547fd6acc692e7a10f773e5e3ccc4b9264736f6c634300080900330000000000000000000000004f4495243837681061c4743b74b3eedf548d56a5
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061009e5760003560e01c80636ef0d869116100665780636ef0d86914610137578063715018a61461014a5780638da5cb5b14610152578063cf73a1bc14610163578063f2fde38b1461016b57600080fd5b8063116191b6146100a357806312c17e15146100e75780631a98b2e0146100fc578063491606581461010f5780636bcfec8214610122575b600080fd5b6100ca7f0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a581565b6040516001600160a01b0390911681526020015b60405180910390f35b6100fa6100f5366004610823565b61017e565b005b6100fa61010a36600461091d565b6101d4565b6100fa61011d3660046109f7565b6102c6565b61012a6103bd565b6040516100de9190610ae8565b6100fa610145366004610823565b61044b565b6100fa610496565b6000546001600160a01b03166100ca565b61012a6104aa565b6100fa610179366004610b17565b6104b7565b610186610535565b8051610199906002906020840190610774565b507fb184d45c94ae2787281f233737a5474fa098c94de3debaacf9986e2755c3b8f3816040516101c99190610b34565b60405180910390a150565b600085856040516101e6929190610b6c565b604051908190038120631876eed960e01b825291506001600160a01b037f0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a51690631876eed99061024a908e908e908e908e908e9089908d908d908d90600401610ba5565b602060405180830381600087803b15801561026457600080fd5b505af1158015610278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029c9190610c04565b6102b957604051631403112d60e21b815260040160405180910390fd5b5050505050505050505050565b600082826040516102d8929190610b6c565b604051908190038120635f6970c360e01b825291506001600160a01b037f0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a51690635f6970c390610336908b908b908b908b908b908990600401610c26565b602060405180830381600087803b15801561035057600080fd5b505af1158015610364573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103889190610c04565b6103a557604051631403112d60e21b815260040160405180910390fd5b6103b387878787878761058f565b5050505050505050565b600180546103ca90610c67565b80601f01602080910402602001604051908101604052809291908181526020018280546103f690610c67565b80156104435780601f1061041857610100808354040283529160200191610443565b820191906000526020600020905b81548152906001019060200180831161042657829003601f168201915b505050505081565b610453610535565b8051610466906001906020840190610774565b507fb184d45c94ae2787281f233737a5474fa098c94de3debaacf9986e2755c3b8f3816040516101c99190610ca2565b61049e610535565b6104a86000610724565b565b600280546103ca90610c67565b6104bf610535565b6001600160a01b0381166105295760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b61053281610724565b50565b6000546001600160a01b031633146104a85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610520565b858585856000848484846040516020016105ac9493929190610cd8565b6040516020818303038152906040528051906020012090506000600160026040516020016105db929190610d94565b60405160208183030381529060405280519060200120905080821461064c5760405162461bcd60e51b815260206004820152602160248201527f4e6f7420616c6c6f77656420746f2063616c6c207468697320636f6e747261636044820152601d60fa1b6064820152608401610520565b6000808061065c8a8c018c610db1565b604051632142170760e11b81523060048201526001600160a01b038085166024830152604482018490529396509194509250908216906342842e0e90606401600060405180830381600087803b1580156106b557600080fd5b505af11580156106c9573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201879052871693507f3ddb739c68dd901671f09fbe0bc2344c179ed55f8e8110a7c7a3c5665bd9518d92500160405180910390a2505050505050505050505050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805461078090610c67565b90600052602060002090601f0160209004810192826107a257600085556107e8565b82601f106107bb57805160ff19168380011785556107e8565b828001600101855582156107e8579182015b828111156107e85782518255916020019190600101906107cd565b506107f49291506107f8565b5090565b5b808211156107f457600081556001016107f9565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561083557600080fd5b813567ffffffffffffffff8082111561084d57600080fd5b818401915084601f83011261086157600080fd5b8135818111156108735761087361080d565b604051601f8201601f19908116603f0116810190838211818310171561089b5761089b61080d565b816040528281528760208487010111156108b457600080fd5b826020860160208301376000928101602001929092525095945050505050565b60008083601f8401126108e657600080fd5b50813567ffffffffffffffff8111156108fe57600080fd5b60208301915083602082850101111561091657600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561093c57600080fd5b8a35995060208b013567ffffffffffffffff8082111561095b57600080fd5b6109678e838f016108d4565b909b50995060408d013591508082111561098057600080fd5b61098c8e838f016108d4565b909950975060608d01359150808211156109a557600080fd5b6109b18e838f016108d4565b909750955060808d01359150808211156109ca57600080fd5b506109d78d828e016108d4565b9150809450508092505060a08b013590509295989b9194979a5092959850565b60008060008060008060006080888a031215610a1257600080fd5b87359650602088013567ffffffffffffffff80821115610a3157600080fd5b610a3d8b838c016108d4565b909850965060408a0135915080821115610a5657600080fd5b610a628b838c016108d4565b909650945060608a0135915080821115610a7b57600080fd5b50610a888a828b016108d4565b989b979a50959850939692959293505050565b6000815180845260005b81811015610ac157602081850181015186830182015201610aa5565b81811115610ad3576000602083870101525b50601f01601f19169290920160200192915050565b602081526000610afb6020830184610a9b565b9392505050565b6001600160a01b038116811461053257600080fd5b600060208284031215610b2957600080fd5b8135610afb81610b02565b60408152600e60408201526d6d616e616765724164647265737360901b6060820152608060208201526000610afb6080830184610a9b565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b89815260c060208201526000610bbf60c083018a8c610b7c565b8281036040840152610bd281898b610b7c565b90508660608401528281036080840152610bed818688610b7c565b9150508260a08301529a9950505050505050505050565b600060208284031215610c1657600080fd5b81518015158114610afb57600080fd5b868152608060208201526000610c40608083018789610b7c565b8281036040840152610c53818688610b7c565b915050826060830152979650505050505050565b600181811c90821680610c7b57607f821691505b60208210811415610c9c57634e487b7160e01b600052602260045260246000fd5b50919050565b60408152600c60408201526b36b0b730b3b2b921b430b4b760a11b6060820152608060208201526000610afb6080830184610a9b565b8385823760008482016000815283858237600093019283525090949350505050565b8054600090600181811c9080831680610d1457607f831692505b6020808410821415610d3657634e487b7160e01b600052602260045260246000fd5b818015610d4a5760018114610d5b57610d88565b60ff19861689528489019650610d88565b60008881526020902060005b86811015610d805781548b820152908501908301610d67565b505084890196505b50505050505092915050565b6000610da9610da38386610cfa565b84610cfa565b949350505050565b600080600060608486031215610dc657600080fd5b8335610dd181610b02565b9250602084013591506040840135610de881610b02565b80915050925092509256fea26469706673582212204301b964a265f0e73af3bc17da0cb9db547fd6acc692e7a10f773e5e3ccc4b9264736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a5
-----Decoded View---------------
Arg [0] : _gateway (address): 0x4F4495243837681061C4743b74B3eEdf548D56A5
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000004f4495243837681061c4743b74b3eedf548d56a5
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.