ETH Price: $2,124.71 (+3.47%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Assets203011262024-07-14 0:21:23626 days ago1720916483IN
0xD6e2D321...8deCB35Fd
0 ETH0.000729336.60029785
Claim Assets202455852024-07-06 6:08:59634 days ago1720246139IN
0xD6e2D321...8deCB35Fd
0 ETH0.000196191.77583388
Claim Assets201945182024-06-29 3:00:11641 days ago1719630011IN
0xD6e2D321...8deCB35Fd
0 ETH0.000178661.6173942
Claim Assets200067662024-06-02 21:17:11667 days ago1717363031IN
0xD6e2D321...8deCB35Fd
0 ETH0.0013997612.66878313
Claim Assets169164832023-03-27 4:56:111101 days ago1679892971IN
0xD6e2D321...8deCB35Fd
0 ETH0.0014413113.05290151
Claim Assets167434802023-03-02 21:16:471125 days ago1677791807IN
0xD6e2D321...8deCB35Fd
0 ETH0.0032933429.81292334
Claim Assets166594272023-02-19 1:39:231137 days ago1676770763IN
0xD6e2D321...8deCB35Fd
0 ETH0.0019449117.60792155
Claim Assets166406892023-02-16 10:26:591140 days ago1676543219IN
0xD6e2D321...8deCB35Fd
0 ETH0.0027845725.19723836
Claim Assets165908112023-02-09 11:10:591147 days ago1675941059IN
0xD6e2D321...8deCB35Fd
0 ETH0.0006083919
Claim Assets164730012023-01-24 0:11:111163 days ago1674519071IN
0xD6e2D321...8deCB35Fd
0 ETH0.0019755417.88031625
Claim Assets164416262023-01-19 15:03:591168 days ago1674140639IN
0xD6e2D321...8deCB35Fd
0 ETH0.0028079125.4107397
Claim Assets164229142023-01-17 0:24:231170 days ago1673915063IN
0xD6e2D321...8deCB35Fd
0 ETH0.0019881918
Claim Assets163925212023-01-12 18:30:351174 days ago1673548235IN
0xD6e2D321...8deCB35Fd
0 ETH0.0033831430.62250068
Claim Assets163375102023-01-05 2:08:471182 days ago1672884527IN
0xD6e2D321...8deCB35Fd
0 ETH0.0005310816.5730502
Claim Assets161692072022-12-12 14:25:111206 days ago1670855111IN
0xD6e2D321...8deCB35Fd
0 ETH0.0018324916.59162388
Claim Assets161429622022-12-08 22:25:351209 days ago1670538335IN
0xD6e2D321...8deCB35Fd
0 ETH0.0013847414.82929887
Claim Assets161384542022-12-08 7:19:111210 days ago1670483951IN
0xD6e2D321...8deCB35Fd
0 ETH0.001637214.81778601
Claim Assets150564472022-07-01 11:50:001370 days ago1656676200IN
0xD6e2D321...8deCB35Fd
0 ETH0.00091218.25789416
Claim Assets147957222022-05-18 0:38:121414 days ago1652834292IN
0xD6e2D321...8deCB35Fd
0 ETH0.0017979619.25653722
Claim Assets147349692022-05-08 8:22:231424 days ago1651998143IN
0xD6e2D321...8deCB35Fd
0 ETH0.001910720.46225863
Claim Assets147295442022-05-07 11:30:241425 days ago1651923024IN
0xD6e2D321...8deCB35Fd
0 ETH0.0022174920.0738461
Claim Assets146917862022-05-01 11:51:011431 days ago1651405861IN
0xD6e2D321...8deCB35Fd
0 ETH0.0050912346.09664057
Claim Assets146845802022-04-30 8:36:011432 days ago1651307761IN
0xD6e2D321...8deCB35Fd
0 ETH0.0024762522.41825834
Claim Assets146729562022-04-28 12:52:041434 days ago1651150324IN
0xD6e2D321...8deCB35Fd
0 ETH0.0042130645.10724435
Claim Assets145505452022-04-09 8:49:111453 days ago1649494151IN
0xD6e2D321...8deCB35Fd
0 ETH0.0026440923.93301383
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AssetGiveaway

Compiler Version
v0.7.5+commit.eb77ed08

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, MIT license
//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.6.0 <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.6.2 <0.8.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.6.0 <0.8.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;
    }

    /// @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
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;
    }
}

Settings
{
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs",
    "useLiteralContent": true
  },
  "optimizer": {
    "enabled": true,
    "runs": 2000
  },
  "remappings": [],
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"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"}]

60e060405234801561001057600080fd5b50604051610e3b380380610e3b833981810160405260a081101561003357600080fd5b508051602082015160408301516060808501516080958601519185901b6001600160601b0319169095529293919290919084826001600160a01b0381166100775750305b606081811b6001600160601b03191660a052600080546001600160a01b0319166001600160a01b0398891617815560019690965560c0849052608051901c965094909416935091610d5991506100e2903980610442525080610aa5525080610a765250610d596000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146101e9578063bc197c811461020f578063c884ef8314610371578063f23a6e61146103ab5761007d565b80631703e85c146100825780636e9960c3146101a85780637cb64759146101cc575b600080fd5b6101a6600480360360a081101561009857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c357600080fd5b8201836020820111156100d557600080fd5b803590602001918460208302840111640100000000831117156100f757600080fd5b91939092909160208101903564010000000081111561011557600080fd5b82018360208201111561012757600080fd5b8035906020019184602083028401116401000000008311171561014957600080fd5b91939092909160208101903564010000000081111561016757600080fd5b82018360208201111561017957600080fd5b8035906020019184602083028401116401000000008311171561019b57600080fd5b919350915035610440565b005b6101b06105d8565b604080516001600160a01b039092168252519081900360200190f35b6101a6600480360360208110156101e257600080fd5b50356105e7565b6101a6600480360360208110156101ff57600080fd5b50356001600160a01b03166106a0565b61033c600480360360a081101561022557600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184602083028401116401000000008311171561028d57600080fd5b9193909290916020810190356401000000008111156102ab57600080fd5b8201836020820111156102bd57600080fd5b803590602001918460208302840111640100000000831117156102df57600080fd5b9193909290916020810190356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b509092509050610781565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103976004803603602081101561038757600080fd5b50356001600160a01b03166107ae565b604080519115158252519081900360200190f35b61033c600480360360a08110156103c157600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561040157600080fd5b82018360208201111561041357600080fd5b8035906020019184600183028401116401000000008311171561043557600080fd5b5090925090506107c3565b7f000000000000000000000000000000000000000000000000000000000000000042106104b4576040805162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f564552000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03881661050f576040805162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b6001600160a01b03881660009081526002602052604090205460ff161561057d576040805162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d45440000000000604482015290519081900360640190fd5b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556105ce88888888888888886107ee565b5050505050505050565b6000546001600160a01b031690565b6000546001600160a01b03163314610646576040805162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c5900000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001541561069b576040805162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f534554000000000000000000604482015290519081900360640190fd5b600155565b6000546001600160a01b031633146106ff576040805162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e49454400000000000000000000000000604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f9281900390910190a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b60026020526000908152604090205460ff1681565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61088f8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a9250899182918501908490808284376000920191909152508892506109ab915050565b6108fd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a918291850190849080828437600092019190915250610a7492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa2651888888888860405180866001600160a01b0316815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f1916909201829003995090975050505050505050a15050505050505050565b8251845114610a01576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e50555400000000000000000000000000000000000000604482015290519081900360640190fd5b6000610a0f86868685610bd1565b9050610a1b8382610c78565b610a6c576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632eb2c2d67f00000000000000000000000000000000000000000000000000000000000000008585856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001806020018060200180602001848103845286818151815260200191508051906020019060200280838360005b83811015610b3c578181015183820152602001610b24565b50505050905001848103835285818151815260200191508051906020019060200280838360005b83811015610b7b578181015183820152602001610b63565b50505050905001848103825260008152602001602001975050505050505050600060405180830381600087803b158015610bb457600080fd5b505af1158015610bc8573d6000803e3d6000fd5b50505050505050565b60008484848460405160200180856001600160a01b031660601b8152601401848051906020019060200280838360005b83811015610c19578181015183820152602001610c01565b50505050905001838051906020019060200280838360005b83811015610c49578181015183820152602001610c31565b505050509190910192835250506040805180830381526020928301909152805191012098975050505050505050565b600081815b8451811015610d17576000858281518110610c9457fe5b6020026020010151905080831015610cdc5782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250610d0e565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610c7d565b5060015414939250505056fea2646970667358221220317bbaa3d47a7e1dfdd73913dadb7aa6fa00fb0add486bd7b2f7c5b04d03ccd464736f6c63430007050033000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db500000000000000000000000000000000000000000000000000000000000000006934ba711d41e5e641164988330c6dd50899d1337eba6265139f53c19f1761fb0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146101e9578063bc197c811461020f578063c884ef8314610371578063f23a6e61146103ab5761007d565b80631703e85c146100825780636e9960c3146101a85780637cb64759146101cc575b600080fd5b6101a6600480360360a081101561009857600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156100c357600080fd5b8201836020820111156100d557600080fd5b803590602001918460208302840111640100000000831117156100f757600080fd5b91939092909160208101903564010000000081111561011557600080fd5b82018360208201111561012757600080fd5b8035906020019184602083028401116401000000008311171561014957600080fd5b91939092909160208101903564010000000081111561016757600080fd5b82018360208201111561017957600080fd5b8035906020019184602083028401116401000000008311171561019b57600080fd5b919350915035610440565b005b6101b06105d8565b604080516001600160a01b039092168252519081900360200190f35b6101a6600480360360208110156101e257600080fd5b50356105e7565b6101a6600480360360208110156101ff57600080fd5b50356001600160a01b03166106a0565b61033c600480360360a081101561022557600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184602083028401116401000000008311171561028d57600080fd5b9193909290916020810190356401000000008111156102ab57600080fd5b8201836020820111156102bd57600080fd5b803590602001918460208302840111640100000000831117156102df57600080fd5b9193909290916020810190356401000000008111156102fd57600080fd5b82018360208201111561030f57600080fd5b8035906020019184600183028401116401000000008311171561033157600080fd5b509092509050610781565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6103976004803603602081101561038757600080fd5b50356001600160a01b03166107ae565b604080519115158252519081900360200190f35b61033c600480360360a08110156103c157600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561040157600080fd5b82018360208201111561041357600080fd5b8035906020019184600183028401116401000000008311171561043557600080fd5b5090925090506107c3565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42106104b4576040805162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f564552000000000000000000000000604482015290519081900360640190fd5b6001600160a01b03881661050f576040805162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f41444452455353000000000000000000604482015290519081900360640190fd5b6001600160a01b03881660009081526002602052604090205460ff161561057d576040805162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d45440000000000604482015290519081900360640190fd5b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556105ce88888888888888886107ee565b5050505050505050565b6000546001600160a01b031690565b6000546001600160a01b03163314610646576040805162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c5900000000000000000000000000000000000000000000604482015290519081900360640190fd5b6001541561069b576040805162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f534554000000000000000000604482015290519081900360640190fd5b600155565b6000546001600160a01b031633146106ff576040805162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e49454400000000000000000000000000604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f9281900390910190a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b60026020526000908152604090205460ff1681565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b61088f8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a9250899182918501908490808284376000920191909152508892506109ab915050565b6108fd8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a918291850190849080828437600092019190915250610a7492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa2651888888888860405180866001600160a01b0316815260200180602001806020018381038352878782818152602001925060200280828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f1916909201829003995090975050505050505050a15050505050505050565b8251845114610a01576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e50555400000000000000000000000000000000000000604482015290519081900360640190fd5b6000610a0f86868685610bd1565b9050610a1b8382610c78565b610a6c576040805162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d00000000000000000000000000000000000000604482015290519081900360640190fd5b505050505050565b7f000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db56001600160a01b0316632eb2c2d67f000000000000000000000000d6e2d32196ee8f3019ea25bdc9e42d28decb35fd8585856040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b03168152602001806020018060200180602001848103845286818151815260200191508051906020019060200280838360005b83811015610b3c578181015183820152602001610b24565b50505050905001848103835285818151815260200191508051906020019060200280838360005b83811015610b7b578181015183820152602001610b63565b50505050905001848103825260008152602001602001975050505050505050600060405180830381600087803b158015610bb457600080fd5b505af1158015610bc8573d6000803e3d6000fd5b50505050505050565b60008484848460405160200180856001600160a01b031660601b8152601401848051906020019060200280838360005b83811015610c19578181015183820152602001610c01565b50505050905001838051906020019060200280838360005b83811015610c49578181015183820152602001610c31565b505050509190910192835250506040805180830381526020928301909152805191012098975050505050505050565b600081815b8451811015610d17576000858281518110610c9457fe5b6020026020010151905080831015610cdc5782816040516020018083815260200182815260200192505050604051602081830303815290604052805190602001209250610d0e565b808360405160200180838152602001828152602001925050506040516020818303038152906040528051906020012092505b50600101610c7d565b5060015414939250505056fea2646970667358221220317bbaa3d47a7e1dfdd73913dadb7aa6fa00fb0add486bd7b2f7c5b04d03ccd464736f6c63430007050033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db500000000000000000000000000000000000000000000000000000000000000006934ba711d41e5e641164988330c6dd50899d1337eba6265139f53c19f1761fb0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

-----Decoded View---------------
Arg [0] : asset (address): 0xa342f5D851E866E18ff98F351f2c6637f4478dB5
Arg [1] : admin (address): 0x0000000000000000000000000000000000000000
Arg [2] : merkleRoot (bytes32): 0x6934ba711d41e5e641164988330c6dd50899d1337eba6265139f53c19f1761fb
Arg [3] : assetsHolder (address): 0x0000000000000000000000000000000000000000
Arg [4] : expiryTime (uint256): 115792089237316195423570985008687907853269984665640564039457584007913129639935

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db5
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 6934ba711d41e5e641164988330c6dd50899d1337eba6265139f53c19f1761fb
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [4] : ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.