Source Code
Latest 25 from a total of 151 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Claim Assets | 20301126 | 626 days ago | IN | 0 ETH | 0.00072933 | ||||
| Claim Assets | 20245585 | 634 days ago | IN | 0 ETH | 0.00019619 | ||||
| Claim Assets | 20194518 | 641 days ago | IN | 0 ETH | 0.00017866 | ||||
| Claim Assets | 20006766 | 667 days ago | IN | 0 ETH | 0.00139976 | ||||
| Claim Assets | 16916483 | 1101 days ago | IN | 0 ETH | 0.00144131 | ||||
| Claim Assets | 16743480 | 1125 days ago | IN | 0 ETH | 0.00329334 | ||||
| Claim Assets | 16659427 | 1137 days ago | IN | 0 ETH | 0.00194491 | ||||
| Claim Assets | 16640689 | 1140 days ago | IN | 0 ETH | 0.00278457 | ||||
| Claim Assets | 16590811 | 1147 days ago | IN | 0 ETH | 0.00060839 | ||||
| Claim Assets | 16473001 | 1163 days ago | IN | 0 ETH | 0.00197554 | ||||
| Claim Assets | 16441626 | 1168 days ago | IN | 0 ETH | 0.00280791 | ||||
| Claim Assets | 16422914 | 1170 days ago | IN | 0 ETH | 0.00198819 | ||||
| Claim Assets | 16392521 | 1174 days ago | IN | 0 ETH | 0.00338314 | ||||
| Claim Assets | 16337510 | 1182 days ago | IN | 0 ETH | 0.00053108 | ||||
| Claim Assets | 16169207 | 1206 days ago | IN | 0 ETH | 0.00183249 | ||||
| Claim Assets | 16142962 | 1209 days ago | IN | 0 ETH | 0.00138474 | ||||
| Claim Assets | 16138454 | 1210 days ago | IN | 0 ETH | 0.0016372 | ||||
| Claim Assets | 15056447 | 1370 days ago | IN | 0 ETH | 0.0009121 | ||||
| Claim Assets | 14795722 | 1414 days ago | IN | 0 ETH | 0.00179796 | ||||
| Claim Assets | 14734969 | 1424 days ago | IN | 0 ETH | 0.0019107 | ||||
| Claim Assets | 14729544 | 1425 days ago | IN | 0 ETH | 0.00221749 | ||||
| Claim Assets | 14691786 | 1431 days ago | IN | 0 ETH | 0.00509123 | ||||
| Claim Assets | 14684580 | 1432 days ago | IN | 0 ETH | 0.00247625 | ||||
| Claim Assets | 14672956 | 1434 days ago | IN | 0 ETH | 0.00421306 | ||||
| Claim Assets | 14550545 | 1453 days ago | IN | 0 ETH | 0.00264409 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
AssetGiveaway
Compiler Version
v0.7.5+commit.eb77ed08
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT
pragma solidity 0.7.5;
import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol";
import "./ClaimERC1155.sol";
import "../../common/BaseWithStorage/WithAdmin.sol";
/// @title AssetGiveaway contract.
/// @notice This contract manages ERC1155 claims.
contract AssetGiveaway is WithAdmin, ClaimERC1155 {
bytes4 private constant ERC1155_RECEIVED = 0xf23a6e61;
bytes4 private constant ERC1155_BATCH_RECEIVED = 0xbc197c81;
uint256 internal immutable _expiryTime;
mapping(address => bool) public claimed;
constructor(
address asset,
address admin,
bytes32 merkleRoot,
address assetsHolder,
uint256 expiryTime
) ClaimERC1155(IERC1155(asset), assetsHolder) {
_admin = admin;
_merkleRoot = merkleRoot;
_expiryTime = expiryTime;
}
/// @notice Function to set the merkle root hash for the asset data, if it is 0.
/// @param merkleRoot The merkle root hash of the asset data.
function setMerkleRoot(bytes32 merkleRoot) external onlyAdmin {
require(_merkleRoot == 0, "MERKLE_ROOT_ALREADY_SET");
_merkleRoot = merkleRoot;
}
/// @notice Function to permit the claiming of an asset to a reserved address.
/// @param to The intended recipient (reserved address) of the ERC1155 tokens.
/// @param assetIds The array of IDs of the asset tokens.
/// @param assetValues The amounts of each token ID to transfer.
/// @param proof The proof submitted for verification.
/// @param salt The salt submitted for verification.
function claimAssets(
address to,
uint256[] calldata assetIds,
uint256[] calldata assetValues,
bytes32[] calldata proof,
bytes32 salt
) external {
require(block.timestamp < _expiryTime, "CLAIM_PERIOD_IS_OVER");
require(to != address(0), "INVALID_TO_ZERO_ADDRESS");
require(claimed[to] == false, "DESTINATION_ALREADY_CLAIMED");
claimed[to] = true;
_claimERC1155(to, assetIds, assetValues, proof, salt);
}
function onERC1155Received(
address, /*operator*/
address, /*from*/
uint256, /*id*/
uint256, /*value*/
bytes calldata /*data*/
) external pure returns (bytes4) {
return ERC1155_RECEIVED;
}
function onERC1155BatchReceived(
address, /*operator*/
address, /*from*/
uint256[] calldata, /*ids*/
uint256[] calldata, /*values*/
bytes calldata /*data*/
) external pure returns (bytes4) {
return ERC1155_BATCH_RECEIVED;
}
}// SPDX-License-Identifier: MIT
pragma solidity >=0.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;
}
}{
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs",
"useLiteralContent": true
},
"optimizer": {
"enabled": true,
"runs": 2000
},
"remappings": [],
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.