More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 241 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Assets | 20477980 | 119 days ago | IN | 0 ETH | 0.00161698 | ||||
Claim Assets | 20058119 | 178 days ago | IN | 0 ETH | 0.00062099 | ||||
Claim Assets | 19945241 | 194 days ago | IN | 0 ETH | 0.00042949 | ||||
Claim Assets | 18324067 | 421 days ago | IN | 0 ETH | 0.00083211 | ||||
Claim Assets | 18156258 | 444 days ago | IN | 0 ETH | 0.00117758 | ||||
Claim Assets | 18078456 | 455 days ago | IN | 0 ETH | 0.00388623 | ||||
Claim Assets | 17809966 | 493 days ago | IN | 0 ETH | 0.00157718 | ||||
Claim Assets | 17428051 | 547 days ago | IN | 0 ETH | 0.00216973 | ||||
Claim Assets | 17394346 | 551 days ago | IN | 0 ETH | 0.00399941 | ||||
Claim Assets | 17375575 | 554 days ago | IN | 0 ETH | 0.00329055 | ||||
Claim Assets | 17144351 | 587 days ago | IN | 0 ETH | 0.0035375 | ||||
Claim Assets | 16999591 | 607 days ago | IN | 0 ETH | 0.00227749 | ||||
Claim Assets | 16830198 | 631 days ago | IN | 0 ETH | 0.00252982 | ||||
Claim Assets | 16818249 | 633 days ago | IN | 0 ETH | 0.00479665 | ||||
Claim Assets | 16648253 | 657 days ago | IN | 0 ETH | 0.00248659 | ||||
Claim Assets | 16638723 | 658 days ago | IN | 0 ETH | 0.00397055 | ||||
Claim Assets | 16437353 | 686 days ago | IN | 0 ETH | 0.00260967 | ||||
Claim Assets | 16425723 | 688 days ago | IN | 0 ETH | 0.0020238 | ||||
Claim Assets | 16326634 | 701 days ago | IN | 0 ETH | 0.00162449 | ||||
Claim Assets | 16228045 | 715 days ago | IN | 0 ETH | 0.0024963 | ||||
Claim Assets | 16223459 | 716 days ago | IN | 0 ETH | 0.00139113 | ||||
Claim Assets | 14886718 | 917 days ago | IN | 0 ETH | 0.00723416 | ||||
Claim Assets | 14845845 | 924 days ago | IN | 0 ETH | 0.00400978 | ||||
Claim Assets | 14677398 | 951 days ago | IN | 0 ETH | 0.00368545 | ||||
Claim Assets | 14664626 | 953 days ago | IN | 0 ETH | 0.00341613 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
AssetGiveaway
Compiler Version
v0.8.2+commit.661d1103
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity 0.8.2; import "@openzeppelin/contracts-0.8/token/ERC1155/IERC1155.sol"; import "@openzeppelin/contracts-0.8/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.8.0; import "../../utils/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.8.0; import "../../utils/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.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.2; import "@openzeppelin/contracts-0.8/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; } /// @dev See for example AssetGiveaway.sol claimAssets. 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 // solhint-disable-next-line compiler-version pragma solidity 0.8.2; 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", "devdoc", "userdoc", "metadata", "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
60e060405234801561001057600080fd5b50604051610ed3380380610ed383398101604081905261002f916100af565b6001600160601b0319606086901b1660805284826001600160a01b0381166100545750305b60601b6001600160601b03191660a05250600080546001600160a01b0319166001600160a01b0395909516949094179093555060015560c05250610105565b80516001600160a01b03811681146100aa57600080fd5b919050565b600080600080600060a086880312156100c6578081fd5b6100cf86610093565b94506100dd60208701610093565b9350604086015192506100f260608701610093565b9150608086015190509295509295909350565b60805160601c60a05160601c60c051610d9961013a60003960006101b701526000610741015260006107140152610d996000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146100ca578063bc197c81146100dd578063c884ef8314610149578063f23a6e611461017c5761007d565b80631703e85c146100825780636e9960c3146100975780637cb64759146100b7575b600080fd5b610095610090366004610aaa565b6101b5565b005b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100c5366004610b58565b610343565b6100956100d836600461095c565b6103f2565b6101186100eb36600461097d565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100ae565b61016c61015736600461095c565b60026020526000908152604090205460ff1681565b60405190151581526020016100ae565b61011861018a366004610a34565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000042106102295760405162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f56455200000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03881661027f5760405162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f414444524553530000000000000000006044820152606401610220565b6001600160a01b03881660009081526002602052604090205460ff16156102e85760405162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d454400000000006044820152606401610220565b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561033988888888888888886104cd565b5050505050505050565b6000546001600160a01b0316331461039d5760405162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c59000000000000000000000000000000000000000000006044820152606401610220565b600154156103ed5760405162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f5345540000000000000000006044820152606401610220565b600155565b6000546001600160a01b0316331461044c5760405162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e494544000000000000000000000000006044820152606401610220565b600054604080516001600160a01b03928316815291831660208301527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61056e8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a925089918291850190849080828437600092019190915250889250610625915050565b6105dc8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a9182918501908490808284376000920191909152506106e492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa26518888888888604051610613959493929190610cc3565b60405180910390a15050505050505050565b82518451146106765760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e505554000000000000000000000000000000000000006044820152606401610220565b6000610684868686856107a6565b905061069083826107df565b6106dc5760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d000000000000000000000000000000000000006044820152606401610220565b505050505050565b6040517f2eb2c2d60000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632eb2c2d69061076f907f000000000000000000000000000000000000000000000000000000000000000090879087908790600401610c6b565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050505050565b6000848484846040516020016107bf9493929190610c1c565b604051602081830303815290604052805190602001209050949350505050565b600081815b84518110156108ab576000858281518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190508083101561086b576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610898565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806108a381610d05565b9150506107e4565b50600154149392505050565b80356001600160a01b03811681146108ce57600080fd5b919050565b60008083601f8401126108e4578182fd5b50813567ffffffffffffffff8111156108fb578182fd5b602083019150836020808302850101111561091557600080fd5b9250929050565b60008083601f84011261092d578182fd5b50813567ffffffffffffffff811115610944578182fd5b60208301915083602082850101111561091557600080fd5b60006020828403121561096d578081fd5b610976826108b7565b9392505050565b60008060008060008060008060a0898b031215610998578384fd5b6109a1896108b7565b97506109af60208a016108b7565b9650604089013567ffffffffffffffff808211156109cb578586fd5b6109d78c838d016108d3565b909850965060608b01359150808211156109ef578586fd5b6109fb8c838d016108d3565b909650945060808b0135915080821115610a13578384fd5b50610a208b828c0161091c565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610a4c578182fd5b610a55876108b7565b9550610a63602088016108b7565b94506040870135935060608701359250608087013567ffffffffffffffff811115610a8c578283fd5b610a9889828a0161091c565b979a9699509497509295939492505050565b60008060008060008060008060a0898b031215610ac5578384fd5b610ace896108b7565b9750602089013567ffffffffffffffff80821115610aea578586fd5b610af68c838d016108d3565b909950975060408b0135915080821115610b0e578586fd5b610b1a8c838d016108d3565b909750955060608b0135915080821115610b32578485fd5b50610b3f8b828c016108d3565b999c989b50969995989497949560800135949350505050565b600060208284031215610b69578081fd5b5035919050565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ba1578081fd5b6020830280836020870137939093016020019283525090919050565b6000815180845260208085019450808401835b83811015610bec57815187529582019590820190600101610bd0565b509495945050505050565b80516000906020808401838315610bec57815187529582019590820190600101610bd0565b60007fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b168252610c5c610c566014840187610bf7565b85610bf7565b92835250506020019392505050565b60006001600160a01b03808716835280861660208401525060a06040830152610c9760a0830185610bbd565b8281036060840152610ca98185610bbd565b838103608090940193909352508152602001949350505050565b60006001600160a01b038716825260606020830152610ce6606083018688610b70565b8281036040840152610cf9818587610b70565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d5c577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b506001019056fea264697066735822122079a96813b9a80513867ec971852e36c6270a7071f421c13cf70652b1947175c164736f6c63430008020033000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db50000000000000000000000000000000000000000000000000000000000000000b1e1723338e0b226ea95dccf407b6480613cd4c8f4826fd36a02b00f2de21f1d0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146100ca578063bc197c81146100dd578063c884ef8314610149578063f23a6e611461017c5761007d565b80631703e85c146100825780636e9960c3146100975780637cb64759146100b7575b600080fd5b610095610090366004610aaa565b6101b5565b005b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100c5366004610b58565b610343565b6100956100d836600461095c565b6103f2565b6101186100eb36600461097d565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100ae565b61016c61015736600461095c565b60026020526000908152604090205460ff1681565b60405190151581526020016100ae565b61011861018a366004610a34565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42106102295760405162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f56455200000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03881661027f5760405162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f414444524553530000000000000000006044820152606401610220565b6001600160a01b03881660009081526002602052604090205460ff16156102e85760405162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d454400000000006044820152606401610220565b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561033988888888888888886104cd565b5050505050505050565b6000546001600160a01b0316331461039d5760405162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c59000000000000000000000000000000000000000000006044820152606401610220565b600154156103ed5760405162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f5345540000000000000000006044820152606401610220565b600155565b6000546001600160a01b0316331461044c5760405162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e494544000000000000000000000000006044820152606401610220565b600054604080516001600160a01b03928316815291831660208301527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61056e8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a925089918291850190849080828437600092019190915250889250610625915050565b6105dc8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a9182918501908490808284376000920191909152506106e492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa26518888888888604051610613959493929190610cc3565b60405180910390a15050505050505050565b82518451146106765760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e505554000000000000000000000000000000000000006044820152606401610220565b6000610684868686856107a6565b905061069083826107df565b6106dc5760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d000000000000000000000000000000000000006044820152606401610220565b505050505050565b6040517f2eb2c2d60000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db51690632eb2c2d69061076f907f000000000000000000000000800b36df64834f7b9d2a5670d73a6c3ef2e9588b90879087908790600401610c6b565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050505050565b6000848484846040516020016107bf9493929190610c1c565b604051602081830303815290604052805190602001209050949350505050565b600081815b84518110156108ab576000858281518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190508083101561086b576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610898565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806108a381610d05565b9150506107e4565b50600154149392505050565b80356001600160a01b03811681146108ce57600080fd5b919050565b60008083601f8401126108e4578182fd5b50813567ffffffffffffffff8111156108fb578182fd5b602083019150836020808302850101111561091557600080fd5b9250929050565b60008083601f84011261092d578182fd5b50813567ffffffffffffffff811115610944578182fd5b60208301915083602082850101111561091557600080fd5b60006020828403121561096d578081fd5b610976826108b7565b9392505050565b60008060008060008060008060a0898b031215610998578384fd5b6109a1896108b7565b97506109af60208a016108b7565b9650604089013567ffffffffffffffff808211156109cb578586fd5b6109d78c838d016108d3565b909850965060608b01359150808211156109ef578586fd5b6109fb8c838d016108d3565b909650945060808b0135915080821115610a13578384fd5b50610a208b828c0161091c565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610a4c578182fd5b610a55876108b7565b9550610a63602088016108b7565b94506040870135935060608701359250608087013567ffffffffffffffff811115610a8c578283fd5b610a9889828a0161091c565b979a9699509497509295939492505050565b60008060008060008060008060a0898b031215610ac5578384fd5b610ace896108b7565b9750602089013567ffffffffffffffff80821115610aea578586fd5b610af68c838d016108d3565b909950975060408b0135915080821115610b0e578586fd5b610b1a8c838d016108d3565b909750955060608b0135915080821115610b32578485fd5b50610b3f8b828c016108d3565b999c989b50969995989497949560800135949350505050565b600060208284031215610b69578081fd5b5035919050565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ba1578081fd5b6020830280836020870137939093016020019283525090919050565b6000815180845260208085019450808401835b83811015610bec57815187529582019590820190600101610bd0565b509495945050505050565b80516000906020808401838315610bec57815187529582019590820190600101610bd0565b60007fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b168252610c5c610c566014840187610bf7565b85610bf7565b92835250506020019392505050565b60006001600160a01b03808716835280861660208401525060a06040830152610c9760a0830185610bbd565b8281036060840152610ca98185610bbd565b838103608090940193909352508152602001949350505050565b60006001600160a01b038716825260606020830152610ce6606083018688610b70565b8281036040840152610cf9818587610b70565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d5c577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b506001019056fea264697066735822122079a96813b9a80513867ec971852e36c6270a7071f421c13cf70652b1947175c164736f6c63430008020033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db50000000000000000000000000000000000000000000000000000000000000000b1e1723338e0b226ea95dccf407b6480613cd4c8f4826fd36a02b00f2de21f1d0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
-----Decoded View---------------
Arg [0] : asset (address): 0xa342f5D851E866E18ff98F351f2c6637f4478dB5
Arg [1] : admin (address): 0x0000000000000000000000000000000000000000
Arg [2] : merkleRoot (bytes32): 0xb1e1723338e0b226ea95dccf407b6480613cd4c8f4826fd36a02b00f2de21f1d
Arg [3] : assetsHolder (address): 0x0000000000000000000000000000000000000000
Arg [4] : expiryTime (uint256): 115792089237316195423570985008687907853269984665640564039457584007913129639935
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db5
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : b1e1723338e0b226ea95dccf407b6480613cd4c8f4826fd36a02b00f2de21f1d
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.