ETH Price: $3,357.06 (-0.79%)
Gas: 1 Gwei

Contract

0xDa007777D86AC6d989cC9f79A73261b3fC5e0DA0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve200869592024-06-14 2:07:4716 days ago1718330867IN
DAppNode: NODE Token
0 ETH0.000201068.30535227
Approve199967112024-06-01 11:36:3528 days ago1717241795IN
DAppNode: NODE Token
0 ETH0.00021734.70176945
Approve199017212024-05-19 4:52:2342 days ago1716094343IN
DAppNode: NODE Token
0 ETH0.000155513.34927932
Transfer198557532024-05-12 18:33:3548 days ago1715538815IN
DAppNode: NODE Token
0 ETH0.000177563.79432994
Approve198381432024-05-10 7:28:1150 days ago1715326091IN
DAppNode: NODE Token
0 ETH0.000103694.28342767
Approve198306102024-05-09 6:11:2351 days ago1715235083IN
DAppNode: NODE Token
0 ETH0.00013025.37857017
Approve198305832024-05-09 6:05:4751 days ago1715234747IN
DAppNode: NODE Token
0 ETH0.000118164.88100975
Approve198284632024-05-08 22:58:3552 days ago1715209115IN
DAppNode: NODE Token
0 ETH0.000180583.90640058
Approve198243302024-05-08 9:04:1152 days ago1715159051IN
DAppNode: NODE Token
0 ETH0.000210444.52631165
Approve198154812024-05-07 3:21:5954 days ago1715052119IN
DAppNode: NODE Token
0 ETH0.000097824.04075119
Approve198099562024-05-06 8:49:3554 days ago1714985375IN
DAppNode: NODE Token
0 ETH0.0005479111.78478976
Approve198099122024-05-06 8:40:4754 days ago1714984847IN
DAppNode: NODE Token
0 ETH0.0005578811.99931493
Approve197676822024-04-30 10:59:2360 days ago1714474763IN
DAppNode: NODE Token
0 ETH0.00046610.03601764
Approve197598792024-04-29 8:48:5961 days ago1714380539IN
DAppNode: NODE Token
0 ETH0.0002466410.21347312
Approve197407262024-04-26 16:30:2364 days ago1714149023IN
DAppNode: NODE Token
0 ETH0.000376918.10697514
Approve197405052024-04-26 15:45:3564 days ago1714146335IN
DAppNode: NODE Token
0 ETH0.000375198.12227296
Approve197404222024-04-26 15:28:4764 days ago1714145327IN
DAppNode: NODE Token
0 ETH0.0004708310.12691127
Approve197076632024-04-22 1:29:1169 days ago1713749351IN
DAppNode: NODE Token
0 ETH0.00014716.07631767
Approve197076622024-04-22 1:28:5969 days ago1713749339IN
DAppNode: NODE Token
0 ETH0.000137695.68758853
Approve197076622024-04-22 1:28:5969 days ago1713749339IN
DAppNode: NODE Token
0 ETH0.000137695.68758853
Approve197076192024-04-22 1:20:2369 days ago1713748823IN
DAppNode: NODE Token
0 ETH0.000137435.67710657
Approve196986232024-04-20 19:10:2370 days ago1713640223IN
DAppNode: NODE Token
0 ETH0.000182017.53707474
Approve196900052024-04-19 14:13:3571 days ago1713536015IN
DAppNode: NODE Token
0 ETH0.0006708114.53720224
Approve196883582024-04-19 8:41:2371 days ago1713516083IN
DAppNode: NODE Token
0 ETH0.0005319411.50674299
Approve196877012024-04-19 6:27:5971 days ago1713508079IN
DAppNode: NODE Token
0 ETH0.000194768.04531074
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:
NODE

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
Yes with 999999 runs

Other Settings:
default evmVersion
File 1 of 2 : DNDAOToken.sol
// SPDX-License-Identifier: GPL-3.0

pragma solidity 0.8.6;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

// Lightweight token modelled after UNI-LP:
// https://github.com/Uniswap/uniswap-v2-core/blob/v1.0.1/contracts/UniswapV2ERC20.sol
// Adds:
//   - An exposed `burn()` and `mint()` with minting role
//   - ERC-3009 (`transferWithAuthorization()`)
//   - domainSeparator is computed inside `_validateSignedData` to avoid reply-attacks due to Hardforks
//   - to != address(this) && to != address(0); To avoid people sending tokens to this smartcontract and
//          to distinguish burn events from transfer

contract NODE is IERC20 {
    uint256 public initialBalance;

    // bytes32 public constant PERMIT_TYPEHASH =
    //      keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");
    bytes32 public constant PERMIT_TYPEHASH =
        0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;
    // bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH =
    //      keccak256("TransferWithAuthorization(address from,address to,uint256 value,uint256 validAfter,uint256 validBefore,bytes32 nonce)");
    bytes32 public constant TRANSFER_WITH_AUTHORIZATION_TYPEHASH =
        0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267;
    // bytes32 public constant EIP712DOMAIN_HASH =
    //      keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)")
    bytes32 public constant EIP712DOMAIN_HASH =
        0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f;
    // bytes32 public constant NAME_HASH =
    //      keccak256("DAppNode DAO Token")
    bytes32 public constant NAME_HASH =
        0x1516f2223544938aa8c94ede78adef55df8fb03f42c0bafde0491ede41d2ade7;
    // bytes32 public constant VERSION_HASH =
    //      keccak256("1")
    bytes32 public constant VERSION_HASH =
        0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6;

    string public constant name = "DAppNode DAO Token";
    string public constant symbol = "NODE";
    uint8 public constant decimals = 18;

    address public minter;
    uint256 public override totalSupply;
    mapping(address => uint256) public override balanceOf;
    mapping(address => mapping(address => uint256)) public override allowance;

    // ERC-2612, ERC-3009 state
    mapping(address => uint256) public nonces;
    mapping(address => mapping(bytes32 => bool)) public authorizationState;

    event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce);
    event ChangeMinter(address indexed minter);

    modifier onlyMinter {
        require(msg.sender == minter, "NODE: NOT_MINTER");
        _;
    }

    constructor(address initialMinter) {
        _changeMinter(initialMinter);
    }

    function _validateSignedData(
        address signer,
        bytes32 encodeData,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) internal view {
        bytes32 digest = keccak256(
            abi.encodePacked("\x19\x01", getDomainSeparator(), encodeData)
        );
        address recoveredAddress = ecrecover(digest, v, r, s);
        // Explicitly disallow authorizations for address(0) as ecrecover returns address(0) on malformed messages
        require(
            recoveredAddress != address(0) && recoveredAddress == signer,
            "NODE: INVALID_SIGNATURE"
        );
    }

    function _changeMinter(address newMinter) internal {
        minter = newMinter;
        emit ChangeMinter(newMinter);
    }

    function _mint(address to, uint256 value) internal {
        totalSupply = totalSupply + value;
        balanceOf[to] = balanceOf[to] + value;
        emit Transfer(address(0), to, value);
    }

    function _burn(address from, uint256 value) internal {
        // Balance is implicitly checked with solidity underflow protection
        balanceOf[from] = balanceOf[from] - value;
        totalSupply = totalSupply - value;
        emit Transfer(from, address(0), value);
    }

    function _approve(
        address owner,
        address spender,
        uint256 value
    ) private {
        allowance[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

    function _transfer(
        address from,
        address to,
        uint256 value
    ) private {
        require(
            to != address(this) && to != address(0),
            "NODE: NOT_VALID_TRANSFER"
        );
        // Balance is implicitly checked with SafeMath's underflow protection
        balanceOf[from] = balanceOf[from] - value;
        balanceOf[to] = balanceOf[to] + value;
        emit Transfer(from, to, value);
    }

    function getChainId() public view returns (uint256 chainId) {
        assembly {
            chainId := chainid()
        }
    }

    function getDomainSeparator() public view returns (bytes32) {
        return
            keccak256(
                abi.encode(
                    EIP712DOMAIN_HASH,
                    NAME_HASH,
                    VERSION_HASH,
                    getChainId(),
                    address(this)
                )
            );
    }

    function mint(address to, uint256 value)
        external
        onlyMinter
        returns (bool)
    {
        _mint(to, value);
        return true;
    }

    function changeMinter(address newMinter) external onlyMinter {
        _changeMinter(newMinter);
    }

    function burn(uint256 value) external returns (bool) {
        _burn(msg.sender, value);
        return true;
    }

    function approve(address spender, uint256 value)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transfer(address to, uint256 value)
        external
        override
        returns (bool)
    {
        _transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external override returns (bool) {
        uint256 fromAllowance = allowance[from][msg.sender];
        if (fromAllowance != type(uint256).max) {
            // Allowance is implicitly checked with solidity underflow protection
            allowance[from][msg.sender] = fromAllowance - value;
        }
        _transfer(from, to, value);
        return true;
    }

    function permit(
        address owner,
        address spender,
        uint256 value,
        uint256 deadline,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        require(deadline >= block.timestamp, "NODE: AUTH_EXPIRED");
        bytes32 encodeData = keccak256(
            abi.encode(
                PERMIT_TYPEHASH,
                owner,
                spender,
                value,
                nonces[owner]++,
                deadline
            )
        );
        _validateSignedData(owner, encodeData, v, r, s);
        _approve(owner, spender, value);
    }

    function transferWithAuthorization(
        address from,
        address to,
        uint256 value,
        uint256 validAfter,
        uint256 validBefore,
        bytes32 nonce,
        uint8 v,
        bytes32 r,
        bytes32 s
    ) external {
        require(block.timestamp > validAfter, "NODE: AUTH_NOT_YET_VALID");
        require(block.timestamp < validBefore, "NODE: AUTH_EXPIRED");
        require(!authorizationState[from][nonce], "NODE: AUTH_ALREADY_USED");

        bytes32 encodeData = keccak256(
            abi.encode(
                TRANSFER_WITH_AUTHORIZATION_TYPEHASH,
                from,
                to,
                value,
                validAfter,
                validBefore,
                nonce
            )
        );
        _validateSignedData(from, encodeData, v, r, s);

        authorizationState[from][nonce] = true;
        emit AuthorizationUsed(from, nonce);

        _transfer(from, to, value);
    }
}

File 2 of 2 : IERC20.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) 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 `amount` 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 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 999999
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"initialMinter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authorizer","type":"address"},{"indexed":true,"internalType":"bytes32","name":"nonce","type":"bytes32"}],"name":"AuthorizationUsed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"}],"name":"ChangeMinter","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EIP712DOMAIN_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRANSFER_WITH_AUTHORIZATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"authorizationState","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMinter","type":"address"}],"name":"changeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getDomainSeparator","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"validAfter","type":"uint256"},{"internalType":"uint256","name":"validBefore","type":"uint256"},{"internalType":"bytes32","name":"nonce","type":"bytes32"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"transferWithAuthorization","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161154938038061154983398101604081905261002f91610088565b6100388161003e565b506100b8565b600180546001600160a01b0319166001600160a01b0383169081179091556040517fc87aeafc6e4ae6202adf4f08a76769119ae93cc129c0e0cbac08a118bc18e1ce90600090a250565b60006020828403121561009a57600080fd5b81516001600160a01b03811681146100b157600080fd5b9392505050565b611482806100c76000396000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c806342966c68116100ee578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610451578063e3ee160e1461047c578063e94a01021461048f578063ed24911d146104bd57600080fd5b8063a9059cbb14610404578063c473af3314610417578063d505accf1461043e57600080fd5b806395d89b41116100c857806395d89b411461037a5780639e4e7318146103b6578063a0cc6a68146103dd57600080fd5b806342966c681461032757806370a082311461033a5780637ecebe001461035a57600080fd5b806323b872dd11610150578063313ce5671161012a578063313ce567146102f45780633408e4701461030e57806340c10f191461031457600080fd5b806323b872dd146102a55780632c4d4d18146102b857806330adf81f146102cd57600080fd5b8063095ea7b311610181578063095ea7b31461027057806318160ddd1461029357806318369a2a1461029c57600080fd5b806304622c2e146101a857806306fdde03146101e2578063075461721461022b575b600080fd5b6101cf7f1516f2223544938aa8c94ede78adef55df8fb03f42c0bafde0491ede41d2ade781565b6040519081526020015b60405180910390f35b61021e6040518060400160405280601281526020017f444170704e6f64652044414f20546f6b656e000000000000000000000000000081525081565b6040516101d99190611342565b60015461024b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d9565b61028361027e3660046112ff565b610566565b60405190151581526020016101d9565b6101cf60025481565b6101cf60005481565b6102836102b33660046111db565b61057c565b6102cb6102c6366004611186565b610626565b005b6101cf7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102fc601281565b60405160ff90911681526020016101d9565b466101cf565b6102836103223660046112ff565b6106b8565b610283610335366004611329565b610746565b6101cf610348366004611186565b60036020526000908152604090205481565b6101cf610368366004611186565b60056020526000908152604090205481565b61021e6040518060400160405280600481526020017f4e4f44450000000000000000000000000000000000000000000000000000000081525081565b6101cf7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b6101cf7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b6102836104123660046112ff565b61075a565b6101cf7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6102cb61044c366004611295565b610767565b6101cf61045f3660046111a8565b600460209081526000928352604080842090915290825290205481565b6102cb61048a366004611217565b6108ae565b61028361049d3660046112ff565b600660209081526000928352604080842090915290825290205460ff1681565b6101cf60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f1516f2223544938aa8c94ede78adef55df8fb03f42c0bafde0491ede41d2ade77fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000610573338484610b46565b50600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610610576105de83826113cd565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b61061b858585610bb5565b506001949350505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146106ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e4f44453a204e4f545f4d494e5445520000000000000000000000000000000060448201526064015b60405180910390fd5b6106b581610d25565b50565b60015460009073ffffffffffffffffffffffffffffffffffffffff16331461073c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e4f44453a204e4f545f4d494e5445520000000000000000000000000000000060448201526064016106a3565b6105738383610d94565b60006107523383610e40565b506001919050565b6000610573338484610bb5565b428410156107d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e4f44453a20415554485f45585049524544000000000000000000000000000060448201526064016106a3565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260056020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a91908661082b836113e4565b9091555060408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506108998882868686610ef3565b6108a4888888610b46565b5050505050505050565b854211610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e4f44453a20415554485f4e4f545f5945545f56414c4944000000000000000060448201526064016106a3565b844210610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e4f44453a20415554485f45585049524544000000000000000000000000000060448201526064016106a3565b73ffffffffffffffffffffffffffffffffffffffff8916600090815260066020908152604080832087845290915290205460ff1615610a1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e4f44453a20415554485f414c52454144595f5553454400000000000000000060448201526064016106a3565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff8c8116838501528b166060830152608082018a905260a0820189905260c0820188905260e0808301889052835180840390910181526101009092019092528051910120610aae8a82868686610ef3565b73ffffffffffffffffffffffffffffffffffffffff8a16600081815260066020908152604080832089845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a3610b3a8a8a8a610bb5565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff82163014801590610bf0575073ffffffffffffffffffffffffffffffffffffffff821615155b610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e4f44453a204e4f545f56414c49445f5452414e53464552000000000000000060448201526064016106a3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902054610c879082906113cd565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600360205260408082209390935590841681522054610cc49082906113b5565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ba89085815260200190565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fc87aeafc6e4ae6202adf4f08a76769119ae93cc129c0e0cbac08a118bc18e1ce90600090a250565b80600254610da291906113b5565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610dd69082906113b5565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e349085815260200190565b60405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610e719082906113cd565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902055600254610ea59082906113cd565b60025560405181815260009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610e34565b6000610f9e60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f1516f2223544938aa8c94ede78adef55df8fb03f42c0bafde0491ede41d2ade77fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101869052606201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611062573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906110dd57508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e4f44453a20494e56414c49445f5349474e415455524500000000000000000060448201526064016106a3565b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461117057600080fd5b919050565b803560ff8116811461117057600080fd5b60006020828403121561119857600080fd5b6111a18261114c565b9392505050565b600080604083850312156111bb57600080fd5b6111c48361114c565b91506111d26020840161114c565b90509250929050565b6000806000606084860312156111f057600080fd5b6111f98461114c565b92506112076020850161114c565b9150604084013590509250925092565b60008060008060008060008060006101208a8c03121561123657600080fd5b61123f8a61114c565b985061124d60208b0161114c565b975060408a0135965060608a0135955060808a0135945060a08a0135935061127760c08b01611175565b925060e08a013591506101008a013590509295985092959850929598565b600080600080600080600060e0888a0312156112b057600080fd5b6112b98861114c565b96506112c76020890161114c565b955060408801359450606088013593506112e360808901611175565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561131257600080fd5b61131b8361114c565b946020939093013593505050565b60006020828403121561133b57600080fd5b5035919050565b600060208083528351808285015260005b8181101561136f57858101830151858201604001528201611353565b81811115611381576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156113c8576113c861141d565b500190565b6000828210156113df576113df61141d565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114165761141661141d565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212200154ac911f1957cce9534f1871537ae5354419e814687dd61c7c4c0c752a4dff64736f6c634300080600330000000000000000000000003793a5ac0ee459ebe80e7df53f402d0a6c4d42b9

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a35760003560e01c806342966c68116100ee578063a9059cbb11610097578063dd62ed3e11610071578063dd62ed3e14610451578063e3ee160e1461047c578063e94a01021461048f578063ed24911d146104bd57600080fd5b8063a9059cbb14610404578063c473af3314610417578063d505accf1461043e57600080fd5b806395d89b41116100c857806395d89b411461037a5780639e4e7318146103b6578063a0cc6a68146103dd57600080fd5b806342966c681461032757806370a082311461033a5780637ecebe001461035a57600080fd5b806323b872dd11610150578063313ce5671161012a578063313ce567146102f45780633408e4701461030e57806340c10f191461031457600080fd5b806323b872dd146102a55780632c4d4d18146102b857806330adf81f146102cd57600080fd5b8063095ea7b311610181578063095ea7b31461027057806318160ddd1461029357806318369a2a1461029c57600080fd5b806304622c2e146101a857806306fdde03146101e2578063075461721461022b575b600080fd5b6101cf7f1516f2223544938aa8c94ede78adef55df8fb03f42c0bafde0491ede41d2ade781565b6040519081526020015b60405180910390f35b61021e6040518060400160405280601281526020017f444170704e6f64652044414f20546f6b656e000000000000000000000000000081525081565b6040516101d99190611342565b60015461024b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d9565b61028361027e3660046112ff565b610566565b60405190151581526020016101d9565b6101cf60025481565b6101cf60005481565b6102836102b33660046111db565b61057c565b6102cb6102c6366004611186565b610626565b005b6101cf7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b6102fc601281565b60405160ff90911681526020016101d9565b466101cf565b6102836103223660046112ff565b6106b8565b610283610335366004611329565b610746565b6101cf610348366004611186565b60036020526000908152604090205481565b6101cf610368366004611186565b60056020526000908152604090205481565b61021e6040518060400160405280600481526020017f4e4f44450000000000000000000000000000000000000000000000000000000081525081565b6101cf7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b6101cf7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b6102836104123660046112ff565b61075a565b6101cf7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b6102cb61044c366004611295565b610767565b6101cf61045f3660046111a8565b600460209081526000928352604080842090915290825290205481565b6102cb61048a366004611217565b6108ae565b61028361049d3660046112ff565b600660209081526000928352604080842090915290825290205460ff1681565b6101cf60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f1516f2223544938aa8c94ede78adef55df8fb03f42c0bafde0491ede41d2ade77fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000610573338484610b46565b50600192915050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526004602090815260408083203384529091528120547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610610576105de83826113cd565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602090815260408083203384529091529020555b61061b858585610bb5565b506001949350505050565b60015473ffffffffffffffffffffffffffffffffffffffff1633146106ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e4f44453a204e4f545f4d494e5445520000000000000000000000000000000060448201526064015b60405180910390fd5b6106b581610d25565b50565b60015460009073ffffffffffffffffffffffffffffffffffffffff16331461073c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4e4f44453a204e4f545f4d494e5445520000000000000000000000000000000060448201526064016106a3565b6105738383610d94565b60006107523383610e40565b506001919050565b6000610573338484610bb5565b428410156107d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e4f44453a20415554485f45585049524544000000000000000000000000000060448201526064016106a3565b73ffffffffffffffffffffffffffffffffffffffff8716600090815260056020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918a918a918a91908661082b836113e4565b9091555060408051602081019690965273ffffffffffffffffffffffffffffffffffffffff94851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506108998882868686610ef3565b6108a4888888610b46565b5050505050505050565b854211610917576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e4f44453a20415554485f4e4f545f5945545f56414c4944000000000000000060448201526064016106a3565b844210610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601260248201527f4e4f44453a20415554485f45585049524544000000000000000000000000000060448201526064016106a3565b73ffffffffffffffffffffffffffffffffffffffff8916600090815260066020908152604080832087845290915290205460ff1615610a1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e4f44453a20415554485f414c52454144595f5553454400000000000000000060448201526064016106a3565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208083019190915273ffffffffffffffffffffffffffffffffffffffff8c8116838501528b166060830152608082018a905260a0820189905260c0820188905260e0808301889052835180840390910181526101009092019092528051910120610aae8a82868686610ef3565b73ffffffffffffffffffffffffffffffffffffffff8a16600081815260066020908152604080832089845290915280822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055518792917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a3610b3a8a8a8a610bb5565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff82163014801590610bf0575073ffffffffffffffffffffffffffffffffffffffff821615155b610c56576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4e4f44453a204e4f545f56414c49445f5452414e53464552000000000000000060448201526064016106a3565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902054610c879082906113cd565b73ffffffffffffffffffffffffffffffffffffffff8085166000908152600360205260408082209390935590841681522054610cc49082906113b5565b73ffffffffffffffffffffffffffffffffffffffff80841660008181526003602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ba89085815260200190565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fc87aeafc6e4ae6202adf4f08a76769119ae93cc129c0e0cbac08a118bc18e1ce90600090a250565b80600254610da291906113b5565b60025573ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610dd69082906113b5565b73ffffffffffffffffffffffffffffffffffffffff83166000818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e349085815260200190565b60405180910390a35050565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054610e719082906113cd565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040902055600254610ea59082906113cd565b60025560405181815260009073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602001610e34565b6000610f9e60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f1516f2223544938aa8c94ede78adef55df8fb03f42c0bafde0491ede41d2ade77fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281019190915260428101869052606201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611062573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116158015906110dd57508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4e4f44453a20494e56414c49445f5349474e415455524500000000000000000060448201526064016106a3565b50505050505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461117057600080fd5b919050565b803560ff8116811461117057600080fd5b60006020828403121561119857600080fd5b6111a18261114c565b9392505050565b600080604083850312156111bb57600080fd5b6111c48361114c565b91506111d26020840161114c565b90509250929050565b6000806000606084860312156111f057600080fd5b6111f98461114c565b92506112076020850161114c565b9150604084013590509250925092565b60008060008060008060008060006101208a8c03121561123657600080fd5b61123f8a61114c565b985061124d60208b0161114c565b975060408a0135965060608a0135955060808a0135945060a08a0135935061127760c08b01611175565b925060e08a013591506101008a013590509295985092959850929598565b600080600080600080600060e0888a0312156112b057600080fd5b6112b98861114c565b96506112c76020890161114c565b955060408801359450606088013593506112e360808901611175565b925060a0880135915060c0880135905092959891949750929550565b6000806040838503121561131257600080fd5b61131b8361114c565b946020939093013593505050565b60006020828403121561133b57600080fd5b5035919050565b600060208083528351808285015260005b8181101561136f57858101830151858201604001528201611353565b81811115611381576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b600082198211156113c8576113c861141d565b500190565b6000828210156113df576113df61141d565b500390565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156114165761141661141d565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fdfea26469706673582212200154ac911f1957cce9534f1871537ae5354419e814687dd61c7c4c0c752a4dff64736f6c63430008060033

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

0000000000000000000000003793a5ac0ee459ebe80e7df53f402d0a6c4d42b9

-----Decoded View---------------
Arg [0] : initialMinter (address): 0x3793A5AC0eE459EBe80E7DF53F402d0a6c4d42B9

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003793a5ac0ee459ebe80e7df53f402d0a6c4d42b9


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.