More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 1,412 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Assets | 14279560 | 1061 days ago | IN | 0 ETH | 0.00072751 | ||||
Claim Assets | 12539283 | 1332 days ago | IN | 0 ETH | 0.00167419 | ||||
Claim Assets | 12539282 | 1332 days ago | IN | 0 ETH | 0.00167368 | ||||
Claim Assets | 12307651 | 1368 days ago | IN | 0 ETH | 0.00379687 | ||||
Claim Assets | 12098201 | 1400 days ago | IN | 0 ETH | 0.0120258 | ||||
Claim Assets | 11926542 | 1426 days ago | IN | 0 ETH | 0.01532287 | ||||
Claim Assets | 11743802 | 1454 days ago | IN | 0 ETH | 0.00561092 | ||||
Claim Assets | 11715043 | 1459 days ago | IN | 0 ETH | 0.00561316 | ||||
Claim Assets | 11681001 | 1464 days ago | IN | 0 ETH | 0.0060129 | ||||
Claim Assets | 11674442 | 1465 days ago | IN | 0 ETH | 0.00330557 | ||||
Claim Assets | 11668535 | 1466 days ago | IN | 0 ETH | 0.00571293 | ||||
Claim Assets | 11661184 | 1467 days ago | IN | 0 ETH | 0.0100203 | ||||
Claim Assets | 11661004 | 1467 days ago | IN | 0 ETH | 0.00451066 | ||||
Claim Assets | 11660977 | 1467 days ago | IN | 0 ETH | 0.00450917 | ||||
Claim Assets | 11660614 | 1467 days ago | IN | 0 ETH | 0.00901917 | ||||
Claim Assets | 11659589 | 1467 days ago | IN | 0 ETH | 0.0046109 | ||||
Claim Assets | 11659511 | 1467 days ago | IN | 0 ETH | 0.00360615 | ||||
Claim Assets | 11659139 | 1467 days ago | IN | 0 ETH | 0.00450931 | ||||
Claim Assets | 11659083 | 1467 days ago | IN | 0 ETH | 0.00551226 | ||||
Claim Assets | 11656561 | 1468 days ago | IN | 0 ETH | 0.00565837 | ||||
Claim Assets | 11655630 | 1468 days ago | IN | 0 ETH | 0.00570582 | ||||
Claim Assets | 11654950 | 1468 days ago | IN | 0 ETH | 0.0041066 | ||||
Claim Assets | 11654855 | 1468 days ago | IN | 0 ETH | 0.00892198 | ||||
Claim Assets | 11654596 | 1468 days ago | IN | 0 ETH | 0.00571396 | ||||
Claim Assets | 11652907 | 1468 days ago | IN | 0 ETH | 0.00567717 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AssetGiveaway
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity 0.7.5; import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; import "./ClaimERC1155.sol"; import "../common/BaseWithStorage/WithAdmin.sol"; /// @title AssetGiveaway contract /// @notice This contract manages ERC1155 claims contract AssetGiveaway is WithAdmin, ClaimERC1155 { bytes4 private constant ERC1155_RECEIVED = 0xf23a6e61; bytes4 private constant ERC1155_BATCH_RECEIVED = 0xbc197c81; uint256 internal immutable _expiryTime; mapping(address => bool) public claimed; constructor( address asset, address admin, bytes32 merkleRoot, address assetsHolder, uint256 expiryTime ) ClaimERC1155(IERC1155(asset), assetsHolder) { _admin = admin; _merkleRoot = merkleRoot; _expiryTime = expiryTime; } /// @notice Function to set the merkle root hash for the asset data, if it is 0 /// @param merkleRoot The merkle root hash of the asset data function setMerkleRoot(bytes32 merkleRoot) external onlyAdmin { require(_merkleRoot == 0, "MERKLE_ROOT_ALREADY_SET"); _merkleRoot = merkleRoot; } /// @notice Function to permit the claiming of an asset to a reserved address /// @param to The intended recipient (reserved address) of the ERC1155 tokens /// @param assetIds The array of IDs of the asset tokens /// @param assetValues The amounts of each token ID to transfer /// @param proof The proof submitted for verification /// @param salt The salt submitted for verification function claimAssets( address to, uint256[] calldata assetIds, uint256[] calldata assetValues, bytes32[] calldata proof, bytes32 salt ) external { require(block.timestamp < _expiryTime, "CLAIM_PERIOD_IS_OVER"); require(to != address(0), "INVALID_TO_ZERO_ADDRESS"); require(claimed[to] == false, "DESTINATION_ALREADY_CLAIMED"); claimed[to] = true; _claimERC1155(to, assetIds, assetValues, proof, salt); } function onERC1155Received( address, /*operator*/ address, /*from*/ uint256, /*id*/ uint256, /*value*/ bytes calldata /*data*/ ) external pure returns (bytes4) { return ERC1155_RECEIVED; } function onERC1155BatchReceived( address, /*operator*/ address, /*from*/ uint256[] calldata, /*ids*/ uint256[] calldata, /*values*/ bytes calldata /*data*/ ) external pure returns (bytes4) { return ERC1155_BATCH_RECEIVED; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.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.7.0; import "../../introspection/IERC165.sol"; /** * @dev Required interface of an ERC1155 compliant contract, as defined in the * https://eips.ethereum.org/EIPS/eip-1155[EIP]. * * _Available since v3.1._ */ interface IERC1155 is IERC165 { /** * @dev Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`. */ event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); /** * @dev Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all * transfers. */ event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values); /** * @dev Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to * `approved`. */ event ApprovalForAll(address indexed account, address indexed operator, bool approved); /** * @dev Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. * * If an {URI} event was emitted for `id`, the standard * https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value * returned by {IERC1155MetadataURI-uri}. */ event URI(string value, uint256 indexed id); /** * @dev Returns the amount of tokens of token type `id` owned by `account`. * * Requirements: * * - `account` cannot be the zero address. */ function balanceOf(address account, uint256 id) external view returns (uint256); /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. * * Requirements: * * - `accounts` and `ids` must have the same length. */ function balanceOfBatch(address[] calldata accounts, uint256[] calldata ids) external view returns (uint256[] memory); /** * @dev Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, * * Emits an {ApprovalForAll} event. * * Requirements: * * - `operator` cannot be the caller. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Returns true if `operator` is approved to transfer ``account``'s tokens. * * See {setApprovalForAll}. */ function isApprovedForAll(address account, address operator) external view returns (bool); /** * @dev Transfers `amount` tokens of token type `id` from `from` to `to`. * * Emits a {TransferSingle} event. * * Requirements: * * - `to` cannot be the zero address. * - If the caller is not `from`, it must be have been approved to spend ``from``'s tokens via {setApprovalForAll}. * - `from` must have a balance of tokens of type `id` of at least `amount`. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the * acceptance magic value. */ function safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes calldata data) external; /** * @dev xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. * * Emits a {TransferBatch} event. * * Requirements: * * - `ids` and `amounts` must have the same length. * - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the * acceptance magic value. */ function safeBatchTransferFrom(address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.7.0; import "../../introspection/IERC165.sol"; /** * _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. 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. 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 pragma solidity 0.7.5; import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; contract ClaimERC1155 { bytes32 internal _merkleRoot; IERC1155 internal immutable _asset; address internal immutable _assetsHolder; event ClaimedAssets(address to, uint256[] assetIds, uint256[] assetValues); constructor(IERC1155 asset, address assetsHolder) { _asset = asset; if (assetsHolder == address(0)) { assetsHolder = address(this); } _assetsHolder = assetsHolder; } function _claimERC1155( address to, uint256[] calldata assetIds, uint256[] calldata assetValues, bytes32[] calldata proof, bytes32 salt ) internal { _checkValidity(to, assetIds, assetValues, proof, salt); _sendAssets(to, assetIds, assetValues); emit ClaimedAssets(to, assetIds, assetValues); } function _checkValidity( address to, uint256[] memory assetIds, uint256[] memory assetValues, bytes32[] memory proof, bytes32 salt ) internal view { require(assetIds.length == assetValues.length, "INVALID_INPUT"); bytes32 leaf = _generateClaimHash(to, assetIds, assetValues, salt); require(_verify(proof, leaf), "INVALID_CLAIM"); } function _generateClaimHash( address to, uint256[] memory assetIds, uint256[] memory assetValues, bytes32 salt ) internal pure returns (bytes32) { return keccak256(abi.encodePacked(to, assetIds, assetValues, salt)); } function _verify(bytes32[] memory proof, bytes32 leaf) internal view returns (bool) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofElement = proof[i]; if (computedHash < proofElement) { computedHash = keccak256(abi.encodePacked(computedHash, proofElement)); } else { computedHash = keccak256(abi.encodePacked(proofElement, computedHash)); } } return computedHash == _merkleRoot; } function _sendAssets( address to, uint256[] memory assetIds, uint256[] memory assetValues ) internal { _asset.safeBatchTransferFrom(_assetsHolder, to, assetIds, assetValues, ""); } }
//SPDX-License-Identifier: MIT pragma solidity 0.7.5; contract WithAdmin { address internal _admin; /// @dev Emits when the contract administrator is changed. /// @param oldAdmin The address of the previous administrator. /// @param newAdmin The address of the new administrator. event AdminChanged(address oldAdmin, address newAdmin); modifier onlyAdmin() { require(msg.sender == _admin, "ADMIN_ONLY"); _; } /// @dev Get the current administrator of this contract. /// @return The current administrator of this contract. function getAdmin() external view returns (address) { return _admin; } /// @dev Change the administrator to be `newAdmin`. /// @param newAdmin The address of the new administrator. function changeAdmin(address newAdmin) external { require(msg.sender == _admin, "ADMIN_ACCESS_DENIED"); emit AdminChanged(_admin, newAdmin); _admin = newAdmin; } }
{ "evmVersion": "istanbul", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "enabled": true, "runs": 2000 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"admin","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"address","name":"assetsHolder","type":"address"},{"internalType":"uint256","name":"expiryTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"assetIds","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"assetValues","type":"uint256[]"}],"name":"ClaimedAssets","type":"event"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"assetIds","type":"uint256[]"},{"internalType":"uint256[]","name":"assetValues","type":"uint256[]"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"claimAssets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60e060405234801561001057600080fd5b50604051610e3b380380610e3b833981810160405260a081101561003357600080fd5b508051602082015160408301516060808501516080958601519185901b6001600160601b0319169095529293919290919084826001600160a01b0381166100775750305b606081811b6001600160601b03191660a052600080546001600160a01b0319166001600160a01b0398891617815560019690965560c0849052608051901c965094909416935091610d5991506100e2903980610442525080610aa5525080610a765250610d596000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146101e9578063bc197c811461020f578063c884ef8314610371578063f23a6e61146103ab5761007d565b80631703e85c146100825780636e9960c3146101a85780637cb64759146101cc575b600080fd5b6101a6600480360360a081101561009857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c357600080fd5b8201836020820111156100d557600080fd5b803590602001918460208302840111640100000000831117156100f757600080fd5b91939092909160208101903564010000000081111561011557600080fd5b82018360208201111561012757600080fd5b8035906020019184602083028401116401000000008311171561014957600080fd5b91939092909160208101903564010000000081111561016757600080fd5b82018360208201111561017957600080fd5b8035906020019184602083028401116401000000008311171561019b57600080fd5b919350915035610440565b005b6101b06105d8565b604080516001600160a01b039092168252519081900360200190f35b6101a6600480360360208110156101e257600080fd5b50356105e7565b6101a6600480360360208110156101ff57600080fd5b50356001600160a01b03166106a0565b61033c600480360360a081101561022557600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184602083028401116401000000008311171561028d57600080fd5b9193909290916020810190356401000000008111156102ab57600080fd5b8201836020820111156102bd57600080fd5b803590602001918460208302840111640100000000831117156102df57600080fd5b9193909290916020810190356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b509092509050610781565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103976004803603602081101561038757600080fd5b50356001600160a01b03166107ae565b604080519115158252519081900360200190f35b61033c600480360360a08110156103c157600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561040157600080fd5b82018360208201111561041357600080fd5b8035906020019184600183028401116401000000008311171561043557600080fd5b5090925090506107c3565b7f000000000000000000000000000000000000000000000000000000000000000042106104b4576040805162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f564552000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03881661050f576040805162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b6001600160a01b03881660009081526002602052604090205460ff161561057d576040805162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d45440000000000604482015290519081900360640190fd5b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556105ce88888888888888886107ee565b5050505050505050565b6000546001600160a01b031690565b6000546001600160a01b03163314610646576040805162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c5900000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001541561069b576040805162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f534554000000000000000000604482015290519081900360640190fd5b600155565b6000546001600160a01b031633146106ff576040805162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e49454400000000000000000000000000604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f9281900390910190a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b60026020526000908152604090205460ff1681565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61088f8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a9250899182918501908490808284376000920191909152508892506109ab915050565b6108fd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a918291850190849080828437600092019190915250610a7492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa2651888888888860405180866001600160a01b0316815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f1916909201829003995090975050505050505050a15050505050505050565b8251845114610a01576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e50555400000000000000000000000000000000000000604482015290519081900360640190fd5b6000610a0f86868685610bd1565b9050610a1b8382610c78565b610a6c576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632eb2c2d67f00000000000000000000000000000000000000000000000000000000000000008585856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001806020018060200180602001848103845286818151815260200191508051906020019060200280838360005b83811015610b3c578181015183820152602001610b24565b50505050905001848103835285818151815260200191508051906020019060200280838360005b83811015610b7b578181015183820152602001610b63565b50505050905001848103825260008152602001602001975050505050505050600060405180830381600087803b158015610bb457600080fd5b505af1158015610bc8573d6000803e3d6000fd5b50505050505050565b60008484848460405160200180856001600160a01b031660601b8152601401848051906020019060200280838360005b83811015610c19578181015183820152602001610c01565b50505050905001838051906020019060200280838360005b83811015610c49578181015183820152602001610c31565b505050509190910192835250506040805180830381526020928301909152805191012098975050505050505050565b600081815b8451811015610d17576000858281518110610c9457fe5b6020026020010151905080831015610cdc5782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250610d0e565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610c7d565b5060015414939250505056fea264697066735822122068184c1374d369fb58b799429ca7c834b9ec90926aeab24926699d5a7d1ea41864736f6c63430007050033000000000000000000000000067a1eb5e383ed24b66d72aaf80d8d7db3d299a800000000000000000000000000000000000000000000000000000000000000005fb1bbae8606b978826eefa4238897449bd526b0cbd470d4c3d28691221eef8a0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146101e9578063bc197c811461020f578063c884ef8314610371578063f23a6e61146103ab5761007d565b80631703e85c146100825780636e9960c3146101a85780637cb64759146101cc575b600080fd5b6101a6600480360360a081101561009857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c357600080fd5b8201836020820111156100d557600080fd5b803590602001918460208302840111640100000000831117156100f757600080fd5b91939092909160208101903564010000000081111561011557600080fd5b82018360208201111561012757600080fd5b8035906020019184602083028401116401000000008311171561014957600080fd5b91939092909160208101903564010000000081111561016757600080fd5b82018360208201111561017957600080fd5b8035906020019184602083028401116401000000008311171561019b57600080fd5b919350915035610440565b005b6101b06105d8565b604080516001600160a01b039092168252519081900360200190f35b6101a6600480360360208110156101e257600080fd5b50356105e7565b6101a6600480360360208110156101ff57600080fd5b50356001600160a01b03166106a0565b61033c600480360360a081101561022557600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184602083028401116401000000008311171561028d57600080fd5b9193909290916020810190356401000000008111156102ab57600080fd5b8201836020820111156102bd57600080fd5b803590602001918460208302840111640100000000831117156102df57600080fd5b9193909290916020810190356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b509092509050610781565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103976004803603602081101561038757600080fd5b50356001600160a01b03166107ae565b604080519115158252519081900360200190f35b61033c600480360360a08110156103c157600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561040157600080fd5b82018360208201111561041357600080fd5b8035906020019184600183028401116401000000008311171561043557600080fd5b5090925090506107c3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42106104b4576040805162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f564552000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03881661050f576040805162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b6001600160a01b03881660009081526002602052604090205460ff161561057d576040805162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d45440000000000604482015290519081900360640190fd5b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556105ce88888888888888886107ee565b5050505050505050565b6000546001600160a01b031690565b6000546001600160a01b03163314610646576040805162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c5900000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001541561069b576040805162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f534554000000000000000000604482015290519081900360640190fd5b600155565b6000546001600160a01b031633146106ff576040805162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e49454400000000000000000000000000604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f9281900390910190a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b60026020526000908152604090205460ff1681565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61088f8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a9250899182918501908490808284376000920191909152508892506109ab915050565b6108fd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a918291850190849080828437600092019190915250610a7492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa2651888888888860405180866001600160a01b0316815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f1916909201829003995090975050505050505050a15050505050505050565b8251845114610a01576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e50555400000000000000000000000000000000000000604482015290519081900360640190fd5b6000610a0f86868685610bd1565b9050610a1b8382610c78565b610a6c576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b7f000000000000000000000000067a1eb5e383ed24b66d72aaf80d8d7db3d299a86001600160a01b0316632eb2c2d67f00000000000000000000000005831537ff42ac82ddf89790f81cb5c4664be9c18585856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001806020018060200180602001848103845286818151815260200191508051906020019060200280838360005b83811015610b3c578181015183820152602001610b24565b50505050905001848103835285818151815260200191508051906020019060200280838360005b83811015610b7b578181015183820152602001610b63565b50505050905001848103825260008152602001602001975050505050505050600060405180830381600087803b158015610bb457600080fd5b505af1158015610bc8573d6000803e3d6000fd5b50505050505050565b60008484848460405160200180856001600160a01b031660601b8152601401848051906020019060200280838360005b83811015610c19578181015183820152602001610c01565b50505050905001838051906020019060200280838360005b83811015610c49578181015183820152602001610c31565b505050509190910192835250506040805180830381526020928301909152805191012098975050505050505050565b600081815b8451811015610d17576000858281518110610c9457fe5b6020026020010151905080831015610cdc5782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250610d0e565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610c7d565b5060015414939250505056fea264697066735822122068184c1374d369fb58b799429ca7c834b9ec90926aeab24926699d5a7d1ea41864736f6c63430007050033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000067a1eb5e383ed24b66d72aaf80d8d7db3d299a800000000000000000000000000000000000000000000000000000000000000005fb1bbae8606b978826eefa4238897449bd526b0cbd470d4c3d28691221eef8a0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-----Decoded View---------------
Arg [0] : asset (address): 0x067a1Eb5E383eD24b66D72aAf80d8D7dB3d299A8
Arg [1] : admin (address): 0x0000000000000000000000000000000000000000
Arg [2] : merkleRoot (bytes32): 0x5fb1bbae8606b978826eefa4238897449bd526b0cbd470d4c3d28691221eef8a
Arg [3] : assetsHolder (address): 0x0000000000000000000000000000000000000000
Arg [4] : expiryTime (uint256): 115792089237316195423570985008687907853269984665640564039457584007913129639935
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000067a1eb5e383ed24b66d72aaf80d8d7db3d299a8
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 5fb1bbae8606b978826eefa4238897449bd526b0cbd470d4c3d28691221eef8a
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.