ETH Price: $1,643.46 (-1.34%)
Gas: 6 Gwei
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Transaction Hash
Method
Block
From
To
Value
Approve182274852023-09-27 13:46:596 days 13 hrs ago1695822419IN
DAppNode: NODE Token
0 ETH0.0005534311.90367158
Approve181528972023-09-17 2:44:3517 days 24 mins ago1694918675IN
DAppNode: NODE Token
0 ETH0.000195828.08895436
Approve181528952023-09-17 2:44:1117 days 25 mins ago1694918651IN
DAppNode: NODE Token
0 ETH0.000198258.18951434
Approve181528942023-09-17 2:43:5917 days 25 mins ago1694918639IN
DAppNode: NODE Token
0 ETH0.000202568.36746991
Approve181512672023-09-16 21:10:2317 days 5 hrs ago1694898623IN
DAppNode: NODE Token
0 ETH0.0003126612.91505112
Approve181011472023-09-09 20:14:2324 days 6 hrs ago1694290463IN
DAppNode: NODE Token
0 ETH0.0003387212.86504442
Approve181011442023-09-09 20:13:4724 days 6 hrs ago1694290427IN
DAppNode: NODE Token
0 ETH0.0006518714.10094524
Approve180592632023-09-03 23:32:4730 days 3 hrs ago1693783967IN
DAppNode: NODE Token
0 ETH0.0003931315
Approve180592552023-09-03 23:31:1130 days 3 hrs ago1693783871IN
DAppNode: NODE Token
0 ETH0.0003931315
Approve180523252023-09-03 0:14:5931 days 2 hrs ago1693700099IN
DAppNode: NODE Token
0 ETH0.000241789.98732977
Approve180187852023-08-29 7:26:5935 days 19 hrs ago1693294019IN
DAppNode: NODE Token
0 ETH0.000363615.01961051
Approve179754762023-08-23 5:59:3541 days 21 hrs ago1692770375IN
DAppNode: NODE Token
0 ETH0.0004132515.76773316
Approve179754122023-08-23 5:46:4741 days 21 hrs ago1692769607IN
DAppNode: NODE Token
0 ETH0.0004025615.35975296
Approve179486712023-08-19 11:57:5945 days 15 hrs ago1692446279IN
DAppNode: NODE Token
0 ETH0.0006378413.79748026
Approve179459262023-08-19 2:44:4746 days 24 mins ago1692413087IN
DAppNode: NODE Token
0 ETH0.0006935415.00236409
Transfer179459052023-08-19 2:40:3546 days 28 mins ago1692412835IN
DAppNode: NODE Token
0 ETH0.0006429613.7324832
Approve179048902023-08-13 8:57:2351 days 18 hrs ago1691917043IN
DAppNode: NODE Token
0 ETH0.0002859611.81252925
Approve178663732023-08-07 23:36:5957 days 3 hrs ago1691451419IN
DAppNode: NODE Token
0 ETH0.0003428314.16127686
Transfer178599242023-08-07 1:57:1158 days 1 hr ago1691373431IN
DAppNode: NODE Token
0 ETH0.0004592815.45305141
Transfer178599092023-08-07 1:54:1158 days 1 hr ago1691373251IN
DAppNode: NODE Token
0 ETH0.0008406816.29324184
Approve178561742023-08-06 13:19:5958 days 13 hrs ago1691327999IN
DAppNode: NODE Token
0 ETH0.0006584114.24994219
Approve178553112023-08-06 10:26:3558 days 16 hrs ago1691317595IN
DAppNode: NODE Token
0 ETH0.0003387612.86650769
Approve178553032023-08-06 10:24:5958 days 16 hrs ago1691317499IN
DAppNode: NODE Token
0 ETH0.000596612.90539446
Approve178538822023-08-06 5:38:2358 days 21 hrs ago1691300303IN
DAppNode: NODE Token
0 ETH0.0005602112.1277162
Approve178518542023-08-05 22:48:5959 days 4 hrs ago1691275739IN
DAppNode: NODE Token
0 ETH0.0005773812.48972888
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
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

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