ETH Price: $3,335.13 (-0.41%)
 
Transaction Hash
Method
Block
From
To
Transfer212966012024-11-29 23:24:1132 days ago1732922651IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.000411328.26314964
Transfer212945402024-11-29 16:28:3532 days ago1732897715IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0012005622.00201473
Transfer211525362024-11-09 20:38:3552 days ago1731184715IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.000425138.53640493
Transfer199668902024-05-28 7:31:23217 days ago1716881483IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0008867216.23977575
Transfer199668852024-05-28 7:30:23217 days ago1716881423IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0008106314.84625187
Approve199387582024-05-24 9:10:11221 days ago1716541811IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.000334727.25971001
Approve198511912024-05-12 3:14:23234 days ago1715483663IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.000188164.05354718
Transfer198370102024-05-10 3:39:59236 days ago1715312399IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.00014943
Approve195930862024-04-06 0:23:23270 days ago1712363003IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0002615110.00633
Approve183515112023-10-14 22:09:47444 days ago1697321387IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.000152725.8436947
Approve183458052023-10-14 3:00:23445 days ago1697252423IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.000151135.78277304
Approve178826352023-08-10 6:14:11510 days ago1691648051IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0006123313.28421456
Transfer176530312023-07-09 1:55:59542 days ago1688867759IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0004487713.7181
Transfer176446862023-07-07 21:46:47543 days ago1688766407IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0006540420
Transfer176389472023-07-07 2:25:47544 days ago1688696747IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0006540420
Transfer176389392023-07-07 2:24:11544 days ago1688696651IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0006540420
Transfer176389002023-07-07 2:16:11544 days ago1688696171IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0006540420
Transfer176388102023-07-07 1:58:11544 days ago1688695091IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0006542820
Transfer176364342023-07-06 17:58:23544 days ago1688666303IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0006540420
Transfer176344202023-07-06 11:09:47544 days ago1688641787IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0009960420
Transfer175231362023-06-20 19:59:23560 days ago1687291163IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0008572115.6993
Transfer174876072023-06-15 20:20:11565 days ago1686860411IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0010259118.7849
Transfer174740542023-06-13 22:30:35567 days ago1686695435IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0009196616.8394
Transfer174738212023-06-13 21:43:35567 days ago1686692615IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.0015631128.6149
Transfer174665242023-06-12 21:05:47568 days ago1686603947IN
0x6DD4e4Aa...6C9855b4D
0 ETH0.001660130.3971
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:
ParkgeneToken

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-01-04
*/

pragma solidity ^0.4.16;

/*
 * Abstract Token Smart Contract.  2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[email protected]>
 */
pragma solidity ^0.4.16;

/*
 * ERC-20 Standard Token Smart Contract Interface.
 *  2016–2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[email protected]>
 */
pragma solidity ^0.4.16;

/**
 * ERC-20 standard token interface, as defined
 * <a href="http://github.com/ethereum/EIPs/issues/20">here</a>.
 */
contract Token {
  /**
   * Get total number of tokens in circulation.
   *
   * @return total number of tokens in circulation
   */
  function totalSupply () constant returns (uint256 supply);

  /**
   * Get number of tokens currently belonging to given owner.
   *
   * @param _owner address to get number of tokens currently belonging to the
   *        owner of
   * @return number of tokens currently belonging to the owner of given address
   */
  function balanceOf (address _owner) constant returns (uint256 balance);

  /**
   * Transfer given number of tokens from message sender to given recipient.
   *
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer to the owner of given address
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transfer (address _to, uint256 _value) returns (bool success);

  /**
   * Transfer given number of tokens from given owner to given recipient.
   *
   * @param _from address to transfer tokens from the owner of
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer from given owner to given
   *        recipient
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transferFrom (address _from, address _to, uint256 _value)
  returns (bool success);

  /**
   * Allow given spender to transfer given number of tokens from message sender.
   *
   * @param _spender address to allow the owner of to transfer tokens from
   *        message sender
   * @param _value number of tokens to allow to transfer
   * @return true if token transfer was successfully approved, false otherwise
   */
  function approve (address _spender, uint256 _value) returns (bool success);

  /**
   * Tell how many tokens given spender is currently allowed to transfer from
   * given owner.
   *
   * @param _owner address to get number of tokens allowed to be transferred
   *        from the owner of
   * @param _spender address to get number of tokens allowed to be transferred
   *        by the owner of
   * @return number of tokens given spender is currently allowed to transfer
   *         from given owner
   */
  function allowance (address _owner, address _spender) constant
  returns (uint256 remaining);

  /**
   * Logged when tokens were transferred from one owner to another.
   *
   * @param _from address of the owner, tokens were transferred from
   * @param _to address of the owner, tokens were transferred to
   * @param _value number of tokens transferred
   */
  event Transfer (address indexed _from, address indexed _to, uint256 _value);

  /**
   * Logged when owner approved his tokens to be transferred by some spender.
   *
   * @param _owner owner who approved his tokens to be transferred
   * @param _spender spender who were allowed to transfer the tokens belonging
   *        to the owner
   * @param _value number of tokens belonging to the owner, approved to be
   *        transferred by the spender
   */
  event Approval (
    address indexed _owner, address indexed _spender, uint256 _value);
}

/*
 * Safe Math Smart Contract.  2016–2017 by ABDK Consulting.
 * Author: Mikhail Vladimirov <[email protected]>
 */
pragma solidity ^0.4.16;

/**
 * Provides methods to safely add, subtract and multiply uint256 numbers.
 */
contract SafeMath {
  uint256 constant private MAX_UINT256 =
    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;

  /**
   * Add two uint256 values, throw in case of overflow.
   *
   * @param x first value to add
   * @param y second value to add
   * @return x + y
   */
  function safeAdd (uint256 x, uint256 y)
  constant internal
  returns (uint256 z) {
    assert (x <= MAX_UINT256 - y);
    return x + y;
  }

  /**
   * Subtract one uint256 value from another, throw in case of underflow.
   *
   * @param x value to subtract from
   * @param y value to subtract
   * @return x - y
   */
  function safeSub (uint256 x, uint256 y)
  constant internal
  returns (uint256 z) {
    assert (x >= y);
    return x - y;
  }

  /**
   * Multiply two uint256 values, throw in case of overflow.
   *
   * @param x first value to multiply
   * @param y second value to multiply
   * @return x * y
   */
  function safeMul (uint256 x, uint256 y)
  constant internal
  returns (uint256 z) {
    if (y == 0) return 0; // Prevent division by zero at the next line
    assert (x <= MAX_UINT256 / y);
    return x * y;
  }
}


/**
 * Abstract Token Smart Contract that could be used as a base contract for
 * ERC-20 token contracts.
 */
contract AbstractToken is Token, SafeMath {
  /**
   * Create new Abstract Token contract.
   */
  function AbstractToken () {
    // Do nothing
  }

  /**
   * Get number of tokens currently belonging to given owner.
   *
   * @param _owner address to get number of tokens currently belonging to the
   *        owner of
   * @return number of tokens currently belonging to the owner of given address
   */
  function balanceOf (address _owner) constant returns (uint256 balance) {
    return accounts [_owner];
  }

  /**
   * Transfer given number of tokens from message sender to given recipient.
   *
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer to the owner of given address
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transfer (address _to, uint256 _value) returns (bool success) {
    if (accounts [msg.sender] < _value) return false;
    if (_value > 0 && msg.sender != _to) {
      accounts [msg.sender] = safeSub (accounts [msg.sender], _value);
      accounts [_to] = safeAdd (accounts [_to], _value);
    }
    Transfer (msg.sender, _to, _value);
    return true;
  }

  /**
   * Transfer given number of tokens from given owner to given recipient.
   *
   * @param _from address to transfer tokens from the owner of
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer from given owner to given
   *        recipient
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transferFrom (address _from, address _to, uint256 _value)
  returns (bool success) {
    if (allowances [_from][msg.sender] < _value) return false;
    if (accounts [_from] < _value) return false;

    allowances [_from][msg.sender] =
      safeSub (allowances [_from][msg.sender], _value);

    if (_value > 0 && _from != _to) {
      accounts [_from] = safeSub (accounts [_from], _value);
      accounts [_to] = safeAdd (accounts [_to], _value);
    }
    Transfer (_from, _to, _value);
    return true;
  }

  /**
   * Allow given spender to transfer given number of tokens from message sender.
   *
   * @param _spender address to allow the owner of to transfer tokens from
   *        message sender
   * @param _value number of tokens to allow to transfer
   * @return true if token transfer was successfully approved, false otherwise
   */
  function approve (address _spender, uint256 _value) returns (bool success) {
    allowances [msg.sender][_spender] = _value;
    Approval (msg.sender, _spender, _value);

    return true;
  }

  /**
   * Tell how many tokens given spender is currently allowed to transfer from
   * given owner.
   *
   * @param _owner address to get number of tokens allowed to be transferred
   *        from the owner of
   * @param _spender address to get number of tokens allowed to be transferred
   *        by the owner of
   * @return number of tokens given spender is currently allowed to transfer
   *         from given owner
   */
  function allowance (address _owner, address _spender) constant
  returns (uint256 remaining) {
    return allowances [_owner][_spender];
  }

  /**
   * Mapping from addresses of token holders to the numbers of tokens belonging
   * to these token holders.
   */
  mapping (address => uint256) accounts;

  /**
   * Mapping from addresses of token holders to the mapping of addresses of
   * spenders to the allowances set by these token holders to these spenders.
   */
  mapping (address => mapping (address => uint256)) private allowances;
}


/**
 * ParkGene token smart contract.
 */
contract ParkgeneToken is AbstractToken {
  /**
   * Maximum allowed number of tokens in circulation.
   */
  uint256 constant MAX_TOKEN_COUNT =
    0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;

  /**
   * Address of the owner of this smart contract.
   */
  address private owner;

  /**
   * Current number of tokens in circulation.
   */
  uint256 tokenCount = 0;

  /**
   * True if tokens transfers are currently frozen, false otherwise.
   */
  bool frozen = false;

  /**
   * Create new ParkGene token smart contract and make msg.sender the
   * owner of this smart contract.
   */
  function ParkgeneToken () {
    owner = msg.sender;
  }

  /**
   * Get total number of tokens in circulation.
   *
   * @return total number of tokens in circulation
   */
  function totalSupply () constant returns (uint256 supply) {
    return tokenCount;
  }

  /**
   * Get name of this token.
   *
   * @return name of this token
   */
  function name () constant returns (string result) {
    return "GENE TOKEN (PARKGENE)";
  }

  /**
   * Get symbol of this token.
   *
   * @return symbol of this token
   */
  function symbol () constant returns (string result) {
    return "GENE";
  }

  /**
   * Get number of decimals for this token.
   *
   * @return number of decimals for this token
   */
  function decimals () constant returns (uint8 result) {
    return 8;
  }

  /**
   * Transfer given number of tokens from message sender to given recipient.
   *
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer to the owner of given address
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transfer (address _to, uint256 _value) returns (bool success) {
    if (frozen) return false;
    else return AbstractToken.transfer (_to, _value);
  }

  /**
   * Transfer given number of tokens from given owner to given recipient.
   *
   * @param _from address to transfer tokens from the owner of
   * @param _to address to transfer tokens to the owner of
   * @param _value number of tokens to transfer from given owner to given
   *        recipient
   * @return true if tokens were transferred successfully, false otherwise
   */
  function transferFrom (address _from, address _to, uint256 _value)
    returns (bool success) {
    if (frozen) return false;
    else return AbstractToken.transferFrom (_from, _to, _value);
  }

  /**
   * Change how many tokens given spender is allowed to transfer from message
   * spender.  In order to prevent double spending of allowance, this method
   * receives assumed current allowance value as an argument.  If actual
   * allowance differs from an assumed one, this method just returns false.
   *
   * @param _spender address to allow the owner of to transfer tokens from
   *        message sender
   * @param _currentValue assumed number of tokens currently allowed to be
   *        transferred
   * @param _newValue number of tokens to allow to transfer
   * @return true if token transfer was successfully approved, false otherwise
   */
  function approve (address _spender, uint256 _currentValue, uint256 _newValue)
    returns (bool success) {
    if (allowance (msg.sender, _spender) == _currentValue)
      return approve (_spender, _newValue);
    else return false;
  }

  /**
   * Burn given number of tokens belonging to message sender.
   *
   * @param _value number of tokens to burn
   * @return true on success, false on error
   */
  function burnTokens (uint256 _value) returns (bool success) {
    if (_value > accounts [msg.sender]) return false;
    else if (_value > 0) {
      accounts [msg.sender] = safeSub (accounts [msg.sender], _value);
      tokenCount = safeSub (tokenCount, _value);
      return true;
    } else return true;
  }

  /**
   * Create _value new tokens and give new created tokens to msg.sender.
   * May only be called by smart contract owner.
   *
   * @param _value number of tokens to create
   * @return true if tokens were created successfully, false otherwise
   */
  function createTokens (uint256 _value)
    returns (bool success) {
    require (msg.sender == owner);

    if (_value > 0) {
      if (_value > safeSub (MAX_TOKEN_COUNT, tokenCount)) return false;
      accounts [msg.sender] = safeAdd (accounts [msg.sender], _value);
      tokenCount = safeAdd (tokenCount, _value);
    }

    return true;
  }

  /**
   * Set new owner for the smart contract.
   * May only be called by smart contract owner.
   *
   * @param _newOwner address of new owner of the smart contract
   */
  function setOwner (address _newOwner) {
    require (msg.sender == owner);

    owner = _newOwner;
  }

  /**
   * Freeze token transfers.
   * May only be called by smart contract owner.
   */
  function freezeTransfers () {
    require (msg.sender == owner);

    if (!frozen) {
      frozen = true;
      Freeze ();
    }
  }

  /**
   * Unfreeze token transfers.
   * May only be called by smart contract owner.
   */
  function unfreezeTransfers () {
    require (msg.sender == owner);

    if (frozen) {
      frozen = false;
      Unfreeze ();
    }
  }

  /**
   * Logged when token transfers were frozen.
   */
  event Freeze ();

  /**
   * Logged when token transfers were unfrozen.
   */
  event Unfreeze ();
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"freezeTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"result","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"result","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unfreezeTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_currentValue","type":"uint256"},{"name":"_newValue","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burnTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"createTokens","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"result","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[],"name":"Unfreeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

606060405260006003556004805460ff19169055341561001e57600080fd5b5b5b5b60028054600160a060020a03191633600160a060020a03161790555b5b610b568061004d6000396000f300606060405236156100d85763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146100dd57806306fdde03146100f2578063095ea7b31461017d57806313af4035146101b357806318160ddd146101d457806323b872dd146101f9578063313ce5671461023557806331c420d41461025e578063426a8493146102735780636d1b229d146102ac57806370a08231146102d65780637e1f2bb81461030757806395d89b4114610331578063a9059cbb146103bc578063dd62ed3e146103f2575b600080fd5b34156100e857600080fd5b6100f0610429565b005b34156100fd57600080fd5b61010561048d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018857600080fd5b61019f600160a060020a03600435166024356104cf565b604051901515815260200160405180910390f35b34156101be57600080fd5b6100f0600160a060020a036004351661053c565b005b34156101df57600080fd5b6101e7610583565b60405190815260200160405180910390f35b341561020457600080fd5b61019f600160a060020a036004358116906024351660443561058a565b604051901515815260200160405180910390f35b341561024057600080fd5b6102486105b6565b60405160ff909116815260200160405180910390f35b341561026957600080fd5b6100f06105bc565b005b341561027e57600080fd5b61019f600160a060020a036004351660243560443561061c565b604051901515815260200160405180910390f35b34156102b757600080fd5b61019f600435610650565b604051901515815260200160405180910390f35b34156102e157600080fd5b6101e7600160a060020a03600435166106e0565b60405190815260200160405180910390f35b341561031257600080fd5b61019f6004356106ff565b604051901515815260200160405180910390f35b341561033c57600080fd5b610105610799565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103c757600080fd5b61019f600160a060020a03600435166024356107db565b604051901515815260200160405180910390f35b34156103fd57600080fd5b6101e7600160a060020a0360043581169060243516610809565b60405190815260200160405180910390f35b60025433600160a060020a0390811691161461044457600080fd5b60045460ff16151561048a576004805460ff191660011790557f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b5b565b610495610b18565b60408051908101604052601581527f47454e4520544f4b454e20285041524b47454e45290000000000000000000000602082015290505b90565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60025433600160a060020a0390811691161461055757600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6003545b90565b60045460009060ff16156105a0575060006105ae565b6105ab848484610836565b90505b5b9392505050565b60085b90565b60025433600160a060020a039081169116146105d757600080fd5b60045460ff161561048a576004805460ff191690557f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a15b5b565b6000826106293386610809565b1415610640576105ab84836104cf565b90506105ae565b5060006105ae565b5b9392505050565b600160a060020a033316600090815260208190526040812054821115610678575060006106d9565b60008211156106d557600160a060020a0333166000908152602081905260409020546106a490836109d8565b600160a060020a0333166000908152602081905260409020556003546106ca90836109d8565b6003555060016106d9565b5060015b5b5b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60025460009033600160a060020a0390811691161461071d57600080fd5b60008211156106d5576107346000196003546109d8565b821115610743575060006106d9565b600160a060020a03331660009081526020819052604090205461076690836109ef565b600160a060020a03331660009081526020819052604090205560035461078c90836109ef565b6003555b5060015b919050565b6107a1610b18565b60408051908101604052600481527f47454e4500000000000000000000000000000000000000000000000000000000602082015290505b90565b60045460009060ff16156107f157506000610536565b6107fb8383610a0b565b9050610536565b5b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600160a060020a038084166000908152600160209081526040808320339094168352929052908120548290101561086f575060006105ae565b600160a060020a03841660009081526020819052604090205482901015610898575060006105ae565b600160a060020a03808516600090815260016020908152604080832033909416835292905220546108c990836109d8565b600160a060020a0380861660009081526001602090815260408083203390941683529290529081209190915582118015610915575082600160a060020a031684600160a060020a031614155b1561098657600160a060020a03841660009081526020819052604090205461093d90836109d8565b600160a060020a03808616600090815260208190526040808220939093559085168152205461096c90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b9392505050565b6000818310156109e457fe5b508082035b92915050565b6000600019829003831115610a0057fe5b508181015b92915050565b600160a060020a03331660009081526020819052604081205482901015610a3457506000610536565b600082118015610a56575082600160a060020a031633600160a060020a031614155b15610ac757600160a060020a033316600090815260208190526040902054610a7e90836109d8565b600160a060020a033381166000908152602081905260408082209390935590851681522054610aad90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b92915050565b602060405190810160405260008152905600a165627a7a723058208d4a47f8202e5fc17aae28910f14b06fa8c923f98ab9f907e2880f05e8ded54f0029

Deployed Bytecode

0x606060405236156100d85763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630150246081146100dd57806306fdde03146100f2578063095ea7b31461017d57806313af4035146101b357806318160ddd146101d457806323b872dd146101f9578063313ce5671461023557806331c420d41461025e578063426a8493146102735780636d1b229d146102ac57806370a08231146102d65780637e1f2bb81461030757806395d89b4114610331578063a9059cbb146103bc578063dd62ed3e146103f2575b600080fd5b34156100e857600080fd5b6100f0610429565b005b34156100fd57600080fd5b61010561048d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018857600080fd5b61019f600160a060020a03600435166024356104cf565b604051901515815260200160405180910390f35b34156101be57600080fd5b6100f0600160a060020a036004351661053c565b005b34156101df57600080fd5b6101e7610583565b60405190815260200160405180910390f35b341561020457600080fd5b61019f600160a060020a036004358116906024351660443561058a565b604051901515815260200160405180910390f35b341561024057600080fd5b6102486105b6565b60405160ff909116815260200160405180910390f35b341561026957600080fd5b6100f06105bc565b005b341561027e57600080fd5b61019f600160a060020a036004351660243560443561061c565b604051901515815260200160405180910390f35b34156102b757600080fd5b61019f600435610650565b604051901515815260200160405180910390f35b34156102e157600080fd5b6101e7600160a060020a03600435166106e0565b60405190815260200160405180910390f35b341561031257600080fd5b61019f6004356106ff565b604051901515815260200160405180910390f35b341561033c57600080fd5b610105610799565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101425780820151818401525b602001610129565b50505050905090810190601f16801561016f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103c757600080fd5b61019f600160a060020a03600435166024356107db565b604051901515815260200160405180910390f35b34156103fd57600080fd5b6101e7600160a060020a0360043581169060243516610809565b60405190815260200160405180910390f35b60025433600160a060020a0390811691161461044457600080fd5b60045460ff16151561048a576004805460ff191660011790557f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b5b565b610495610b18565b60408051908101604052601581527f47454e4520544f4b454e20285041524b47454e45290000000000000000000000602082015290505b90565b600160a060020a03338116600081815260016020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60025433600160a060020a0390811691161461055757600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b6003545b90565b60045460009060ff16156105a0575060006105ae565b6105ab848484610836565b90505b5b9392505050565b60085b90565b60025433600160a060020a039081169116146105d757600080fd5b60045460ff161561048a576004805460ff191690557f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a15b5b565b6000826106293386610809565b1415610640576105ab84836104cf565b90506105ae565b5060006105ae565b5b9392505050565b600160a060020a033316600090815260208190526040812054821115610678575060006106d9565b60008211156106d557600160a060020a0333166000908152602081905260409020546106a490836109d8565b600160a060020a0333166000908152602081905260409020556003546106ca90836109d8565b6003555060016106d9565b5060015b5b5b919050565b600160a060020a0381166000908152602081905260409020545b919050565b60025460009033600160a060020a0390811691161461071d57600080fd5b60008211156106d5576107346000196003546109d8565b821115610743575060006106d9565b600160a060020a03331660009081526020819052604090205461076690836109ef565b600160a060020a03331660009081526020819052604090205560035461078c90836109ef565b6003555b5060015b919050565b6107a1610b18565b60408051908101604052600481527f47454e4500000000000000000000000000000000000000000000000000000000602082015290505b90565b60045460009060ff16156107f157506000610536565b6107fb8383610a0b565b9050610536565b5b92915050565b600160a060020a038083166000908152600160209081526040808320938516835292905220545b92915050565b600160a060020a038084166000908152600160209081526040808320339094168352929052908120548290101561086f575060006105ae565b600160a060020a03841660009081526020819052604090205482901015610898575060006105ae565b600160a060020a03808516600090815260016020908152604080832033909416835292905220546108c990836109d8565b600160a060020a0380861660009081526001602090815260408083203390941683529290529081209190915582118015610915575082600160a060020a031684600160a060020a031614155b1561098657600160a060020a03841660009081526020819052604090205461093d90836109d8565b600160a060020a03808616600090815260208190526040808220939093559085168152205461096c90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b9392505050565b6000818310156109e457fe5b508082035b92915050565b6000600019829003831115610a0057fe5b508181015b92915050565b600160a060020a03331660009081526020819052604081205482901015610a3457506000610536565b600082118015610a56575082600160a060020a031633600160a060020a031614155b15610ac757600160a060020a033316600090815260208190526040902054610a7e90836109d8565b600160a060020a033381166000908152602081905260408082209390935590851681522054610aad90836109ef565b600160a060020a0384166000908152602081905260409020555b82600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b92915050565b602060405190810160405260008152905600a165627a7a723058208d4a47f8202e5fc17aae28910f14b06fa8c923f98ab9f907e2880f05e8ded54f0029

Swarm Source

bzzr://8d4a47f8202e5fc17aae28910f14b06fa8c923f98ab9f907e2880f05e8ded54f

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.