More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ERC20Hodl
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
No with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.20; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/utils/ReentrancyGuard.sol"; contract ERC20Hodl is ReentrancyGuard { uint256 id; struct Details { uint256 unlockTime; uint256 lockedTime; address owner; address tokenAddress; uint256 amount; bool withdrawn; } mapping(uint256 => Details) public lockups; mapping(address => uint256[]) public depositIds; event Deposited( uint256 id, uint256 unlockTime, uint256 lockedTime, address owner, address tokenAddress, uint256 amount, bool withdrawn ); event Withdrawn(uint256 id, uint256 amount, address tokenAddress); /** *@dev function deposit in contract *@param _duration {uint256} time duration for the token should be locked *@param _amount {uint256} amount of the tokens which should be locked *@param _tokenAddress {address} contract address of the token */ function deposit( uint256 _duration, uint256 _amount, address _tokenAddress ) public { require(_amount != 0, "Invalid amount: 0"); uint256 _unlockTime = block.timestamp + _duration; address _owner = msg.sender; IERC20(_tokenAddress).transferFrom(_owner, address(this), _amount); lockups[++id] = Details({ lockedTime: block.timestamp, unlockTime: _unlockTime, owner: _owner, tokenAddress: _tokenAddress, amount: _amount, withdrawn: false }); depositIds[msg.sender].push(id); emit Deposited( id, _unlockTime, block.timestamp, _owner, _tokenAddress, _amount, lockups[id].withdrawn ); } /** *@dev function withdraw in contract *@param _id {uint256} lockup id which points to particular lockup */ function withdraw(uint256 _id) public nonReentrant { Details memory _lockups = lockups[_id]; require(!_lockups.withdrawn, "Already Withdrawn"); require(msg.sender == _lockups.owner, "Unauthorized Access"); require( block.timestamp >= _lockups.unlockTime, "You can't withdraw tokens before unlocktime" ); lockups[_id].withdrawn = true; IERC20(_lockups.tokenAddress).transfer(msg.sender, _lockups.amount); emit Withdrawn(_id, _lockups.amount, _lockups.tokenAddress); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets a `value` amount of tokens as the allowance of `spender` over the * caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/ReentrancyGuard.sol) pragma solidity ^0.8.20; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant NOT_ENTERED = 1; uint256 private constant ENTERED = 2; uint256 private _status; /** * @dev Unauthorized reentrant call. */ error ReentrancyGuardReentrantCall(); constructor() { _status = NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be NOT_ENTERED if (_status == ENTERED) { revert ReentrancyGuardReentrantCall(); } // Any calls to nonReentrant after this point will fail _status = ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == ENTERED; } }
{ "evmVersion": "paris", "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockedTime","type":"uint256"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"withdrawn","type":"bool"}],"name":"Deposited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"depositIds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockups","outputs":[{"internalType":"uint256","name":"unlockTime","type":"uint256"},{"internalType":"uint256","name":"lockedTime","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"withdrawn","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506001600081905550610e43806100286000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e1a7d4d14610051578063303ed0e91461006d5780638dbdbe6d1461009d5780638e6f4fb7146100b9575b600080fd5b61006b60048036038101906100669190610849565b6100ee565b005b610087600480360381019061008291906108d4565b610400565b6040516100949190610923565b60405180910390f35b6100b760048036038101906100b2919061093e565b610431565b005b6100d360048036038101906100ce9190610849565b610735565b6040516100e5969594939291906109bb565b60405180910390f35b6100f66107be565b6000600260008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482015481526020016005820160009054906101000a900460ff16151515158152505090508060a0015115610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023990610a79565b60405180910390fd5b806040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ab90610ae5565b60405180910390fd5b80600001514210156102fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f290610b77565b60405180910390fd5b60016002600084815260200190815260200160002060050160006101000a81548160ff021916908315150217905550806060015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3383608001516040518363ffffffff1660e01b815260040161036d929190610b97565b6020604051808303816000875af115801561038c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b09190610bec565b507f02ffa641367f5b897c0f8be81bce51f2ef055b4113d7a1e4fd082feea749bf5282826080015183606001516040516103ec93929190610c19565b60405180910390a1506103fd610804565b50565b6003602052816000526040600020818154811061041c57600080fd5b90600052602060002001600091509150505481565b60008203610474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046b90610c9c565b60405180910390fd5b600083426104829190610ceb565b905060003390508273ffffffffffffffffffffffffffffffffffffffff166323b872dd8230876040518463ffffffff1660e01b81526004016104c693929190610d1f565b6020604051808303816000875af11580156104e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105099190610bec565b506040518060c001604052808381526020014281526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001858152602001600015158152506002600060016000815461057990610d56565b9190508190558152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a08201518160050160006101000a81548160ff021916908315150217905550905050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060015490806001815401808255809150506001900390600052602060002001600090919091909150557ff1bcc1281b4806d13649f9ae58db452eaaafdf6f78d4dc1e56fe7498a296282c600154834284878960026000600154815260200190815260200160002060050160009054906101000a900460ff166040516107269796959493929190610d9e565b60405180910390a15050505050565b60026020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050160009054906101000a900460ff16905086565b6002600054036107fa576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6001600081905550565b600080fd5b6000819050919050565b61082681610813565b811461083157600080fd5b50565b6000813590506108438161081d565b92915050565b60006020828403121561085f5761085e61080e565b5b600061086d84828501610834565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108a182610876565b9050919050565b6108b181610896565b81146108bc57600080fd5b50565b6000813590506108ce816108a8565b92915050565b600080604083850312156108eb576108ea61080e565b5b60006108f9858286016108bf565b925050602061090a85828601610834565b9150509250929050565b61091d81610813565b82525050565b60006020820190506109386000830184610914565b92915050565b6000806000606084860312156109575761095661080e565b5b600061096586828701610834565b935050602061097686828701610834565b9250506040610987868287016108bf565b9150509250925092565b61099a81610896565b82525050565b60008115159050919050565b6109b5816109a0565b82525050565b600060c0820190506109d06000830189610914565b6109dd6020830188610914565b6109ea6040830187610991565b6109f76060830186610991565b610a046080830185610914565b610a1160a08301846109ac565b979650505050505050565b600082825260208201905092915050565b7f416c72656164792057697468647261776e000000000000000000000000000000600082015250565b6000610a63601183610a1c565b9150610a6e82610a2d565b602082019050919050565b60006020820190508181036000830152610a9281610a56565b9050919050565b7f556e617574686f72697a65642041636365737300000000000000000000000000600082015250565b6000610acf601383610a1c565b9150610ada82610a99565b602082019050919050565b60006020820190508181036000830152610afe81610ac2565b9050919050565b7f596f752063616e277420776974686472617720746f6b656e73206265666f726560008201527f20756e6c6f636b74696d65000000000000000000000000000000000000000000602082015250565b6000610b61602b83610a1c565b9150610b6c82610b05565b604082019050919050565b60006020820190508181036000830152610b9081610b54565b9050919050565b6000604082019050610bac6000830185610991565b610bb96020830184610914565b9392505050565b610bc9816109a0565b8114610bd457600080fd5b50565b600081519050610be681610bc0565b92915050565b600060208284031215610c0257610c0161080e565b5b6000610c1084828501610bd7565b91505092915050565b6000606082019050610c2e6000830186610914565b610c3b6020830185610914565b610c486040830184610991565b949350505050565b7f496e76616c696420616d6f756e743a2030000000000000000000000000000000600082015250565b6000610c86601183610a1c565b9150610c9182610c50565b602082019050919050565b60006020820190508181036000830152610cb581610c79565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610cf682610813565b9150610d0183610813565b9250828201905080821115610d1957610d18610cbc565b5b92915050565b6000606082019050610d346000830186610991565b610d416020830185610991565b610d4e6040830184610914565b949350505050565b6000610d6182610813565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d9357610d92610cbc565b5b600182019050919050565b600060e082019050610db3600083018a610914565b610dc06020830189610914565b610dcd6040830188610914565b610dda6060830187610991565b610de76080830186610991565b610df460a0830185610914565b610e0160c08301846109ac565b9897505050505050505056fea264697066735822122053e5e53fb9bf01662a9d70bfeb15040b5c9d2e0fcc385dd2990c149e36fb694064736f6c63430008140033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632e1a7d4d14610051578063303ed0e91461006d5780638dbdbe6d1461009d5780638e6f4fb7146100b9575b600080fd5b61006b60048036038101906100669190610849565b6100ee565b005b610087600480360381019061008291906108d4565b610400565b6040516100949190610923565b60405180910390f35b6100b760048036038101906100b2919061093e565b610431565b005b6100d360048036038101906100ce9190610849565b610735565b6040516100e5969594939291906109bb565b60405180910390f35b6100f66107be565b6000600260008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600482015481526020016005820160009054906101000a900460ff16151515158152505090508060a0015115610242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023990610a79565b60405180910390fd5b806040015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146102b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102ab90610ae5565b60405180910390fd5b80600001514210156102fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102f290610b77565b60405180910390fd5b60016002600084815260200190815260200160002060050160006101000a81548160ff021916908315150217905550806060015173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3383608001516040518363ffffffff1660e01b815260040161036d929190610b97565b6020604051808303816000875af115801561038c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b09190610bec565b507f02ffa641367f5b897c0f8be81bce51f2ef055b4113d7a1e4fd082feea749bf5282826080015183606001516040516103ec93929190610c19565b60405180910390a1506103fd610804565b50565b6003602052816000526040600020818154811061041c57600080fd5b90600052602060002001600091509150505481565b60008203610474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161046b90610c9c565b60405180910390fd5b600083426104829190610ceb565b905060003390508273ffffffffffffffffffffffffffffffffffffffff166323b872dd8230876040518463ffffffff1660e01b81526004016104c693929190610d1f565b6020604051808303816000875af11580156104e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105099190610bec565b506040518060c001604052808381526020014281526020018273ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001858152602001600015158152506002600060016000815461057990610d56565b9190508190558152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506080820151816004015560a08201518160050160006101000a81548160ff021916908315150217905550905050600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060015490806001815401808255809150506001900390600052602060002001600090919091909150557ff1bcc1281b4806d13649f9ae58db452eaaafdf6f78d4dc1e56fe7498a296282c600154834284878960026000600154815260200190815260200160002060050160009054906101000a900460ff166040516107269796959493929190610d9e565b60405180910390a15050505050565b60026020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040154908060050160009054906101000a900460ff16905086565b6002600054036107fa576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600081905550565b6001600081905550565b600080fd5b6000819050919050565b61082681610813565b811461083157600080fd5b50565b6000813590506108438161081d565b92915050565b60006020828403121561085f5761085e61080e565b5b600061086d84828501610834565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006108a182610876565b9050919050565b6108b181610896565b81146108bc57600080fd5b50565b6000813590506108ce816108a8565b92915050565b600080604083850312156108eb576108ea61080e565b5b60006108f9858286016108bf565b925050602061090a85828601610834565b9150509250929050565b61091d81610813565b82525050565b60006020820190506109386000830184610914565b92915050565b6000806000606084860312156109575761095661080e565b5b600061096586828701610834565b935050602061097686828701610834565b9250506040610987868287016108bf565b9150509250925092565b61099a81610896565b82525050565b60008115159050919050565b6109b5816109a0565b82525050565b600060c0820190506109d06000830189610914565b6109dd6020830188610914565b6109ea6040830187610991565b6109f76060830186610991565b610a046080830185610914565b610a1160a08301846109ac565b979650505050505050565b600082825260208201905092915050565b7f416c72656164792057697468647261776e000000000000000000000000000000600082015250565b6000610a63601183610a1c565b9150610a6e82610a2d565b602082019050919050565b60006020820190508181036000830152610a9281610a56565b9050919050565b7f556e617574686f72697a65642041636365737300000000000000000000000000600082015250565b6000610acf601383610a1c565b9150610ada82610a99565b602082019050919050565b60006020820190508181036000830152610afe81610ac2565b9050919050565b7f596f752063616e277420776974686472617720746f6b656e73206265666f726560008201527f20756e6c6f636b74696d65000000000000000000000000000000000000000000602082015250565b6000610b61602b83610a1c565b9150610b6c82610b05565b604082019050919050565b60006020820190508181036000830152610b9081610b54565b9050919050565b6000604082019050610bac6000830185610991565b610bb96020830184610914565b9392505050565b610bc9816109a0565b8114610bd457600080fd5b50565b600081519050610be681610bc0565b92915050565b600060208284031215610c0257610c0161080e565b5b6000610c1084828501610bd7565b91505092915050565b6000606082019050610c2e6000830186610914565b610c3b6020830185610914565b610c486040830184610991565b949350505050565b7f496e76616c696420616d6f756e743a2030000000000000000000000000000000600082015250565b6000610c86601183610a1c565b9150610c9182610c50565b602082019050919050565b60006020820190508181036000830152610cb581610c79565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610cf682610813565b9150610d0183610813565b9250828201905080821115610d1957610d18610cbc565b5b92915050565b6000606082019050610d346000830186610991565b610d416020830185610991565b610d4e6040830184610914565b949350505050565b6000610d6182610813565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d9357610d92610cbc565b5b600182019050919050565b600060e082019050610db3600083018a610914565b610dc06020830189610914565b610dcd6040830188610914565b610dda6060830187610991565b610de76080830186610991565b610df460a0830185610914565b610e0160c08301846109ac565b9897505050505050505056fea264697066735822122053e5e53fb9bf01662a9d70bfeb15040b5c9d2e0fcc385dd2990c149e36fb694064736f6c63430008140033
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.