ETH Price: $3,453.64 (+4.96%)

Contract

0xBD933d9CF8A401274e6D3cc2c33292ab9799Af49
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim Assets207632762024-09-16 12:48:1168 days ago1726490891IN
0xBD933d9C...b9799Af49
0 ETH0.000907188.05131495
Claim Assets206057102024-08-25 12:49:1190 days ago1724590151IN
0xBD933d9C...b9799Af49
0 ETH0.000108120.95993064
Claim Assets204244232024-07-31 5:24:11115 days ago1722403451IN
0xBD933d9C...b9799Af49
0 ETH0.000291172.58489259
Claim Assets201968232024-06-29 10:43:35147 days ago1719657815IN
0xBD933d9C...b9799Af49
0 ETH0.000241672.14514303
Claim Assets199957742024-06-01 8:27:59175 days ago1717230479IN
0xBD933d9C...b9799Af49
0 ETH0.00051834.60335441
Claim Assets199485092024-05-25 17:53:59181 days ago1716659639IN
0xBD933d9C...b9799Af49
0 ETH0.000480834.27042343
Claim Assets198847372024-05-16 19:51:11190 days ago1715889071IN
0xBD933d9C...b9799Af49
0 ETH0.000805627.15058739
Claim Assets198806882024-05-16 6:15:59191 days ago1715840159IN
0xBD933d9C...b9799Af49
0 ETH0.000474334.20936149
Claim Assets198017702024-05-05 5:20:59202 days ago1714886459IN
0xBD933d9C...b9799Af49
0 ETH0.000518254.60046373
Claim Assets197524762024-04-28 7:58:23209 days ago1714291103IN
0xBD933d9C...b9799Af49
0 ETH0.000814727.23282322
Claim Assets194956462024-03-23 6:54:59245 days ago1711176899IN
0xBD933d9C...b9799Af49
0 ETH0.00191416.98816328
Claim Assets191510412024-02-03 23:16:59293 days ago1707002219IN
0xBD933d9C...b9799Af49
0 ETH0.0015807914.03215171
Claim Assets191222402024-01-30 22:15:35297 days ago1706652935IN
0xBD933d9C...b9799Af49
0 ETH0.0026130423.19756312
Claim Assets191101802024-01-29 5:44:47299 days ago1706507087IN
0xBD933d9C...b9799Af49
0 ETH0.000884847.85491264
Claim Assets189940182024-01-12 23:12:47315 days ago1705101167IN
0xBD933d9C...b9799Af49
0 ETH0.003036326.95324318
Claim Assets189308232024-01-04 1:54:59324 days ago1704333299IN
0xBD933d9C...b9799Af49
0 ETH0.0031742728.17441822
Claim Assets188940622023-12-29 22:01:11329 days ago1703887271IN
0xBD933d9C...b9799Af49
0 ETH0.0025967523.06195168
Claim Assets188652432023-12-25 20:54:11333 days ago1703537651IN
0xBD933d9C...b9799Af49
0 ETH0.001557813.82835045
Claim Assets188625002023-12-25 11:38:11334 days ago1703504291IN
0xBD933d9C...b9799Af49
0 ETH0.0020138117.88005848
Claim Assets188093562023-12-18 0:37:47341 days ago1702859867IN
0xBD933d9C...b9799Af49
0 ETH0.0032213228.60067114
Claim Assets187556902023-12-10 12:04:11349 days ago1702209851IN
0xBD933d9C...b9799Af49
0 ETH0.0026367923.41053104
Claim Assets185974302023-11-18 8:04:59371 days ago1700294699IN
0xBD933d9C...b9799Af49
0 ETH0.0020871618.52702543
Claim Assets185345892023-11-09 13:08:35380 days ago1699535315IN
0xBD933d9C...b9799Af49
0 ETH0.0048641543.20737217
Claim Assets183980052023-10-21 10:11:23399 days ago1697883083IN
0xBD933d9C...b9799Af49
0 ETH0.000716576.36318754
Claim Assets183971812023-10-21 7:25:47399 days ago1697873147IN
0xBD933d9C...b9799Af49
0 ETH0.000748776.65004229
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
AssetGiveaway

Compiler Version
v0.8.2+commit.661d1103

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, MIT license
File 1 of 6 : AssetGiveaway.sol
//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;
    }
}

File 2 of 6 : IERC1155.sol
// 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;
}

File 3 of 6 : IERC1155Receiver.sol
// 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);
}

File 4 of 6 : IERC165.sol
// 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);
}

File 5 of 6 : ClaimERC1155.sol
//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, "");
    }
}

File 6 of 6 : WithAdmin.sol
//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;
    }
}

Settings
{
  "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

Contract ABI

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

60e060405234801561001057600080fd5b50604051610ed3380380610ed383398101604081905261002f916100af565b6001600160601b0319606086901b1660805284826001600160a01b0381166100545750305b60601b6001600160601b03191660a05250600080546001600160a01b0319166001600160a01b0395909516949094179093555060015560c05250610105565b80516001600160a01b03811681146100aa57600080fd5b919050565b600080600080600060a086880312156100c6578081fd5b6100cf86610093565b94506100dd60208701610093565b9350604086015192506100f260608701610093565b9150608086015190509295509295909350565b60805160601c60a05160601c60c051610d9961013a60003960006101b701526000610741015260006107140152610d996000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146100ca578063bc197c81146100dd578063c884ef8314610149578063f23a6e611461017c5761007d565b80631703e85c146100825780636e9960c3146100975780637cb64759146100b7575b600080fd5b610095610090366004610aaa565b6101b5565b005b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100c5366004610b58565b610343565b6100956100d836600461095c565b6103f2565b6101186100eb36600461097d565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100ae565b61016c61015736600461095c565b60026020526000908152604090205460ff1681565b60405190151581526020016100ae565b61011861018a366004610a34565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b7f000000000000000000000000000000000000000000000000000000000000000042106102295760405162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f56455200000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03881661027f5760405162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f414444524553530000000000000000006044820152606401610220565b6001600160a01b03881660009081526002602052604090205460ff16156102e85760405162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d454400000000006044820152606401610220565b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561033988888888888888886104cd565b5050505050505050565b6000546001600160a01b0316331461039d5760405162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c59000000000000000000000000000000000000000000006044820152606401610220565b600154156103ed5760405162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f5345540000000000000000006044820152606401610220565b600155565b6000546001600160a01b0316331461044c5760405162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e494544000000000000000000000000006044820152606401610220565b600054604080516001600160a01b03928316815291831660208301527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61056e8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a925089918291850190849080828437600092019190915250889250610625915050565b6105dc8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a9182918501908490808284376000920191909152506106e492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa26518888888888604051610613959493929190610cc3565b60405180910390a15050505050505050565b82518451146106765760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e505554000000000000000000000000000000000000006044820152606401610220565b6000610684868686856107a6565b905061069083826107df565b6106dc5760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d000000000000000000000000000000000000006044820152606401610220565b505050505050565b6040517f2eb2c2d60000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690632eb2c2d69061076f907f000000000000000000000000000000000000000000000000000000000000000090879087908790600401610c6b565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050505050565b6000848484846040516020016107bf9493929190610c1c565b604051602081830303815290604052805190602001209050949350505050565b600081815b84518110156108ab576000858281518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190508083101561086b576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610898565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806108a381610d05565b9150506107e4565b50600154149392505050565b80356001600160a01b03811681146108ce57600080fd5b919050565b60008083601f8401126108e4578182fd5b50813567ffffffffffffffff8111156108fb578182fd5b602083019150836020808302850101111561091557600080fd5b9250929050565b60008083601f84011261092d578182fd5b50813567ffffffffffffffff811115610944578182fd5b60208301915083602082850101111561091557600080fd5b60006020828403121561096d578081fd5b610976826108b7565b9392505050565b60008060008060008060008060a0898b031215610998578384fd5b6109a1896108b7565b97506109af60208a016108b7565b9650604089013567ffffffffffffffff808211156109cb578586fd5b6109d78c838d016108d3565b909850965060608b01359150808211156109ef578586fd5b6109fb8c838d016108d3565b909650945060808b0135915080821115610a13578384fd5b50610a208b828c0161091c565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610a4c578182fd5b610a55876108b7565b9550610a63602088016108b7565b94506040870135935060608701359250608087013567ffffffffffffffff811115610a8c578283fd5b610a9889828a0161091c565b979a9699509497509295939492505050565b60008060008060008060008060a0898b031215610ac5578384fd5b610ace896108b7565b9750602089013567ffffffffffffffff80821115610aea578586fd5b610af68c838d016108d3565b909950975060408b0135915080821115610b0e578586fd5b610b1a8c838d016108d3565b909750955060608b0135915080821115610b32578485fd5b50610b3f8b828c016108d3565b999c989b50969995989497949560800135949350505050565b600060208284031215610b69578081fd5b5035919050565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ba1578081fd5b6020830280836020870137939093016020019283525090919050565b6000815180845260208085019450808401835b83811015610bec57815187529582019590820190600101610bd0565b509495945050505050565b80516000906020808401838315610bec57815187529582019590820190600101610bd0565b60007fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b168252610c5c610c566014840187610bf7565b85610bf7565b92835250506020019392505050565b60006001600160a01b03808716835280861660208401525060a06040830152610c9760a0830185610bbd565b8281036060840152610ca98185610bbd565b838103608090940193909352508152602001949350505050565b60006001600160a01b038716825260606020830152610ce6606083018688610b70565b8281036040840152610cf9818587610b70565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d5c577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b506001019056fea264697066735822122079a96813b9a80513867ec971852e36c6270a7071f421c13cf70652b1947175c164736f6c63430008020033000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db5000000000000000000000000000000000000000000000000000000000000000035f0d15dacf180d73b0e7cc7ee6e248e2e566c6ec4a42864da62693e977d14ac0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638f2839701161005b5780638f283970146100ca578063bc197c81146100dd578063c884ef8314610149578063f23a6e611461017c5761007d565b80631703e85c146100825780636e9960c3146100975780637cb64759146100b7575b600080fd5b610095610090366004610aaa565b6101b5565b005b6000546040516001600160a01b0390911681526020015b60405180910390f35b6100956100c5366004610b58565b610343565b6100956100d836600461095c565b6103f2565b6101186100eb36600461097d565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100ae565b61016c61015736600461095c565b60026020526000908152604090205460ff1681565b60405190151581526020016100ae565b61011861018a366004610a34565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff42106102295760405162461bcd60e51b815260206004820152601460248201527f434c41494d5f504552494f445f49535f4f56455200000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b03881661027f5760405162461bcd60e51b815260206004820152601760248201527f494e56414c49445f544f5f5a45524f5f414444524553530000000000000000006044820152606401610220565b6001600160a01b03881660009081526002602052604090205460ff16156102e85760405162461bcd60e51b815260206004820152601b60248201527f44455354494e4154494f4e5f414c52454144595f434c41494d454400000000006044820152606401610220565b6001600160a01b038816600090815260026020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561033988888888888888886104cd565b5050505050505050565b6000546001600160a01b0316331461039d5760405162461bcd60e51b815260206004820152600a60248201527f41444d494e5f4f4e4c59000000000000000000000000000000000000000000006044820152606401610220565b600154156103ed5760405162461bcd60e51b815260206004820152601760248201527f4d45524b4c455f524f4f545f414c52454144595f5345540000000000000000006044820152606401610220565b600155565b6000546001600160a01b0316331461044c5760405162461bcd60e51b815260206004820152601360248201527f41444d494e5f4143434553535f44454e494544000000000000000000000000006044820152606401610220565b600054604080516001600160a01b03928316815291831660208301527f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a1600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b61056e8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a91829185019084908082843760009201919091525050604080516020808b0282810182019093528a82529093508a925089918291850190849080828437600092019190915250889250610625915050565b6105dc8888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808c0282810182019093528b82529093508b92508a9182918501908490808284376000920191909152506106e492505050565b7f7197de5398384ebaa85c57406356f07bec2ea8a342960e5445ac084ae8fa26518888888888604051610613959493929190610cc3565b60405180910390a15050505050505050565b82518451146106765760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f494e505554000000000000000000000000000000000000006044820152606401610220565b6000610684868686856107a6565b905061069083826107df565b6106dc5760405162461bcd60e51b815260206004820152600d60248201527f494e56414c49445f434c41494d000000000000000000000000000000000000006044820152606401610220565b505050505050565b6040517f2eb2c2d60000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db51690632eb2c2d69061076f907f000000000000000000000000bd933d9cf8a401274e6d3cc2c33292ab9799af4990879087908790600401610c6b565b600060405180830381600087803b15801561078957600080fd5b505af115801561079d573d6000803e3d6000fd5b50505050505050565b6000848484846040516020016107bf9493929190610c1c565b604051602081830303815290604052805190602001209050949350505050565b600081815b84518110156108ab576000858281518110610828577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015190508083101561086b576040805160208101859052908101829052606001604051602081830303815290604052805190602001209250610898565b60408051602081018390529081018490526060016040516020818303038152906040528051906020012092505b50806108a381610d05565b9150506107e4565b50600154149392505050565b80356001600160a01b03811681146108ce57600080fd5b919050565b60008083601f8401126108e4578182fd5b50813567ffffffffffffffff8111156108fb578182fd5b602083019150836020808302850101111561091557600080fd5b9250929050565b60008083601f84011261092d578182fd5b50813567ffffffffffffffff811115610944578182fd5b60208301915083602082850101111561091557600080fd5b60006020828403121561096d578081fd5b610976826108b7565b9392505050565b60008060008060008060008060a0898b031215610998578384fd5b6109a1896108b7565b97506109af60208a016108b7565b9650604089013567ffffffffffffffff808211156109cb578586fd5b6109d78c838d016108d3565b909850965060608b01359150808211156109ef578586fd5b6109fb8c838d016108d3565b909650945060808b0135915080821115610a13578384fd5b50610a208b828c0161091c565b999c989b5096995094979396929594505050565b60008060008060008060a08789031215610a4c578182fd5b610a55876108b7565b9550610a63602088016108b7565b94506040870135935060608701359250608087013567ffffffffffffffff811115610a8c578283fd5b610a9889828a0161091c565b979a9699509497509295939492505050565b60008060008060008060008060a0898b031215610ac5578384fd5b610ace896108b7565b9750602089013567ffffffffffffffff80821115610aea578586fd5b610af68c838d016108d3565b909950975060408b0135915080821115610b0e578586fd5b610b1a8c838d016108d3565b909750955060608b0135915080821115610b32578485fd5b50610b3f8b828c016108d3565b999c989b50969995989497949560800135949350505050565b600060208284031215610b69578081fd5b5035919050565b60008284527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115610ba1578081fd5b6020830280836020870137939093016020019283525090919050565b6000815180845260208085019450808401835b83811015610bec57815187529582019590820190600101610bd0565b509495945050505050565b80516000906020808401838315610bec57815187529582019590820190600101610bd0565b60007fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008660601b168252610c5c610c566014840187610bf7565b85610bf7565b92835250506020019392505050565b60006001600160a01b03808716835280861660208401525060a06040830152610c9760a0830185610bbd565b8281036060840152610ca98185610bbd565b838103608090940193909352508152602001949350505050565b60006001600160a01b038716825260606020830152610ce6606083018688610b70565b8281036040840152610cf9818587610b70565b98975050505050505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610d5c577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b506001019056fea264697066735822122079a96813b9a80513867ec971852e36c6270a7071f421c13cf70652b1947175c164736f6c63430008020033

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

000000000000000000000000a342f5d851e866e18ff98f351f2c6637f4478db5000000000000000000000000000000000000000000000000000000000000000035f0d15dacf180d73b0e7cc7ee6e248e2e566c6ec4a42864da62693e977d14ac0000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff

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

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


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.