ETH Price: $3,067.97 (-6.08%)
 
Transaction Hash
Method
Block
From
To
Transfer217571712025-02-02 6:54:475 hrs ago1738479287IN
0xcert: ZXC Token
0 ETH0.000107682.08026296
Transfer217523452025-02-01 14:43:4721 hrs ago1738421027IN
0xcert: ZXC Token
0 ETH0.000174063.36243891
Transfer217151572025-01-27 10:06:356 days ago1737972395IN
0xcert: ZXC Token
0 ETH0.000271535.246471
Approve213594112024-12-08 17:57:2355 days ago1733680643IN
0xcert: ZXC Token
0 ETH0.0006221913.42496145
Approve213267852024-12-04 4:35:4760 days ago1733286947IN
0xcert: ZXC Token
0 ETH0.0003885416.08003552
Transfer211822532024-11-14 0:08:1180 days ago1731542891IN
0xcert: ZXC Token
0 ETH0.0018350135.45573962
Approve210491012024-10-26 10:08:1199 days ago1729937291IN
0xcert: ZXC Token
0 ETH0.000103493.95577999
Approve210491002024-10-26 10:07:5999 days ago1729937279IN
0xcert: ZXC Token
0 ETH0.000096774.00507809
Transfer208566432024-09-29 13:37:59125 days ago1727617079IN
0xcert: ZXC Token
0 ETH0.0007574414.63173804
Transfer208560992024-09-29 11:48:47126 days ago1727610527IN
0xcert: ZXC Token
0 ETH0.000286255.52963393
Approve205819492024-08-22 5:06:23164 days ago1724303183IN
0xcert: ZXC Token
0 ETH0.000065651.41621686
Approve205431282024-08-16 18:57:23169 days ago1723834643IN
0xcert: ZXC Token
0 ETH0.000067331.45184733
Approve203525832024-07-21 4:40:47196 days ago1721536847IN
0xcert: ZXC Token
0 ETH0.00013932.98864055
Transfer203258072024-07-17 10:59:47200 days ago1721213987IN
0xcert: ZXC Token
0 ETH0.000497289.60618234
Approve203058922024-07-14 16:18:59202 days ago1720973939IN
0xcert: ZXC Token
0 ETH0.000420039
Transfer203016122024-07-14 1:58:59203 days ago1720922339IN
0xcert: ZXC Token
0 ETH0.000226224
Transfer203016062024-07-14 1:57:47203 days ago1720922267IN
0xcert: ZXC Token
0 ETH0.000282835
Transfer203009652024-07-13 23:48:47203 days ago1720914527IN
0xcert: ZXC Token
0 ETH0.000678812
Approve202613132024-07-08 10:52:11209 days ago1720435931IN
0xcert: ZXC Token
0 ETH0.000057182.36643951
Transfer202174452024-07-02 7:49:47215 days ago1719906587IN
0xcert: ZXC Token
0 ETH0.000177435.11840784
Approve202173722024-07-02 7:35:11215 days ago1719905711IN
0xcert: ZXC Token
0 ETH0.000303356.5
Transfer202172542024-07-02 7:11:11215 days ago1719904271IN
0xcert: ZXC Token
0 ETH0.000118363
Transfer202171542024-07-02 6:50:59215 days ago1719903059IN
0xcert: ZXC Token
0 ETH0.000254494.5
Transfer201029422024-06-16 7:45:11231 days ago1718523911IN
0xcert: ZXC Token
0 ETH0.000270685.22892378
Approve200946692024-06-15 3:57:59232 days ago1718423879IN
0xcert: ZXC Token
0 ETH0.000270875.81154994
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:
Zxc

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.24;

// File: @0xcert/ethereum-erc20/contracts/tokens/ERC20.sol

/**
 * @title A standard interface for tokens.
 */
interface ERC20 {

  /**
   * @dev Returns the name of the token.
   */
  function name()
    external
    view
    returns (string _name);

  /**
   * @dev Returns the symbol of the token.
   */
  function symbol()
    external
    view
    returns (string _symbol);

  /**
   * @dev Returns the number of decimals the token uses.
   */
  function decimals()
    external
    view
    returns (uint8 _decimals);

  /**
   * @dev Returns the total token supply.
   */
  function totalSupply()
    external
    view
    returns (uint256 _totalSupply);

  /**
   * @dev Returns the account balance of another account with address _owner.
   * @param _owner The address from which the balance will be retrieved.
   */
  function balanceOf(
    address _owner
  )
    external
    view
    returns (uint256 _balance);

  /**
   * @dev Transfers _value amount of tokens to address _to, and MUST fire the Transfer event. The
   * function SHOULD throw if the _from account balance does not have enough tokens to spend.
   * @param _to The address of the recipient.
   * @param _value The amount of token to be transferred.
   */
  function transfer(
    address _to,
    uint256 _value
  )
    external
    returns (bool _success);

  /**
   * @dev Transfers _value amount of tokens from address _from to address _to, and MUST fire the
   * Transfer event.
   * @param _from The address of the sender.
   * @param _to The address of the recipient.
   * @param _value The amount of token to be transferred.
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  )
    external
    returns (bool _success);

  /**
   * @dev Allows _spender to withdraw from your account multiple times, up to
   * the _value amount. If this function is called again it overwrites the current
   * allowance with _value.
   * @param _spender The address of the account able to transfer the tokens.
   * @param _value The amount of tokens to be approved for transfer.
   */
  function approve(
    address _spender,
    uint256 _value
  )
    external
    returns (bool _success);

  /**
   * @dev Returns the amount which _spender is still allowed to withdraw from _owner.
   * @param _owner The address of the account owning tokens.
   * @param _spender The address of the account able to transfer the tokens.
   */
  function allowance(
    address _owner,
    address _spender
  )
    external
    view
    returns (uint256 _remaining);

  /**
   * @dev Triggers when tokens are transferred, including zero value transfers.
   */
  event Transfer(
    address indexed _from,
    address indexed _to,
    uint256 _value
  );

  /**
   * @dev Triggers on any successful call to approve(address _spender, uint256 _value).
   */
  event Approval(
    address indexed _owner,
    address indexed _spender,
    uint256 _value
  );

}

// File: @0xcert/ethereum-utils/contracts/math/SafeMath.sol

/**
 * @dev Math operations with safety checks that throw on error. This contract is based
 * on the source code at https://goo.gl/iyQsmU.
 */
library SafeMath {

  /**
   * @dev Multiplies two numbers, throws on overflow.
   * @param _a Factor number.
   * @param _b Factor number.
   */
  function mul(
    uint256 _a,
    uint256 _b
  )
    internal
    pure
    returns (uint256)
  {
    if (_a == 0) {
      return 0;
    }
    uint256 c = _a * _b;
    assert(c / _a == _b);
    return c;
  }

  /**
   * @dev Integer division of two numbers, truncating the quotient.
   * @param _a Dividend number.
   * @param _b Divisor number.
   */
  function div(
    uint256 _a,
    uint256 _b
  )
    internal
    pure
    returns (uint256)
  {
    uint256 c = _a / _b;
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
   * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
   * @param _a Minuend number.
   * @param _b Subtrahend number.
   */
  function sub(
    uint256 _a,
    uint256 _b
  )
    internal
    pure
    returns (uint256)
  {
    assert(_b <= _a);
    return _a - _b;
  }

  /**
   * @dev Adds two numbers, throws on overflow.
   * @param _a Number.
   * @param _b Number.
   */
  function add(
    uint256 _a,
    uint256 _b
  )
    internal
    pure
    returns (uint256)
  {
    uint256 c = _a + _b;
    assert(c >= _a);
    return c;
  }

}

// File: @0xcert/ethereum-erc20/contracts/tokens/Token.sol

/**
 * @title ERC20 standard token implementation.
 * @dev Standard ERC20 token. This contract follows the implementation at https://goo.gl/mLbAPJ.
 */
contract Token is
  ERC20
{
  using SafeMath for uint256;

  /**
   * Token name.
   */
  string internal tokenName;

  /**
   * Token symbol.
   */
  string internal tokenSymbol;

  /**
   * Number of decimals.
   */
  uint8 internal tokenDecimals;

  /**
   * Total supply of tokens.
   */
  uint256 internal tokenTotalSupply;

  /**
   * Balance information map.
   */
  mapping (address => uint256) internal balances;

  /**
   * Token allowance mapping.
   */
  mapping (address => mapping (address => uint256)) internal allowed;

  /**
   * @dev Trigger when tokens are transferred, including zero value transfers.
   */
  event Transfer(
    address indexed _from,
    address indexed _to,
    uint256 _value
  );

  /**
   * @dev Trigger on any successful call to approve(address _spender, uint256 _value).
   */
  event Approval(
    address indexed _owner,
    address indexed _spender,
    uint256 _value
  );

  /**
   * @dev Returns the name of the token.
   */
  function name()
    external
    view
    returns (string _name)
  {
    _name = tokenName;
  }

  /**
   * @dev Returns the symbol of the token.
   */
  function symbol()
    external
    view
    returns (string _symbol)
  {
    _symbol = tokenSymbol;
  }

  /**
   * @dev Returns the number of decimals the token uses.
   */
  function decimals()
    external
    view
    returns (uint8 _decimals)
  {
    _decimals = tokenDecimals;
  }

  /**
   * @dev Returns the total token supply.
   */
  function totalSupply()
    external
    view
    returns (uint256 _totalSupply)
  {
    _totalSupply = tokenTotalSupply;
  }

  /**
   * @dev Returns the account balance of another account with address _owner.
   * @param _owner The address from which the balance will be retrieved.
   */
  function balanceOf(
    address _owner
  )
    external
    view
    returns (uint256 _balance)
  {
    _balance = balances[_owner];
  }

  /**
   * @dev Transfers _value amount of tokens to address _to, and MUST fire the Transfer event. The
   * function SHOULD throw if the _from account balance does not have enough tokens to spend.
   * @param _to The address of the recipient.
   * @param _value The amount of token to be transferred.
   */
  function transfer(
    address _to,
    uint256 _value
  )
    public
    returns (bool _success)
  {
    require(_value <= balances[msg.sender]);

    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);

    emit Transfer(msg.sender, _to, _value);
    _success = true;
  }

  /**
   * @dev Allows _spender to withdraw from your account multiple times, up to the _value amount. If
   * this function is called again it overwrites the current allowance with _value.
   * @param _spender The address of the account able to transfer the tokens.
   * @param _value The amount of tokens to be approved for transfer.
   */
  function approve(
    address _spender,
    uint256 _value
  )
    public
    returns (bool _success)
  {
    require((_value == 0) || (allowed[msg.sender][_spender] == 0));

    allowed[msg.sender][_spender] = _value;

    emit Approval(msg.sender, _spender, _value);
    _success = true;
  }

  /**
   * @dev Returns the amount which _spender is still allowed to withdraw from _owner.
   * @param _owner The address of the account owning tokens.
   * @param _spender The address of the account able to transfer the tokens.
   */
  function allowance(
    address _owner,
    address _spender
  )
    external
    view
    returns (uint256 _remaining)
  {
    _remaining = allowed[_owner][_spender];
  }

  /**
   * @dev Transfers _value amount of tokens from address _from to address _to, and MUST fire the
   * Transfer event.
   * @param _from The address of the sender.
   * @param _to The address of the recipient.
   * @param _value The amount of token to be transferred.
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  )
    public
    returns (bool _success)
  {
    require(_value <= balances[_from]);
    require(_value <= allowed[_from][msg.sender]);

    balances[_from] = balances[_from].sub(_value);
    balances[_to] = balances[_to].add(_value);
    allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);

    emit Transfer(_from, _to, _value);
    _success = true;
  }

}

// File: @0xcert/ethereum-utils/contracts/ownership/Ownable.sol

/**
 * @dev The contract has an owner address, and provides basic authorization control whitch
 * simplifies the implementation of user permissions. This contract is based on the source code
 * at https://goo.gl/n2ZGVt.
 */
contract Ownable {
  address public owner;

  /**
   * @dev An event which is triggered when the owner is changed.
   * @param previousOwner The address of the previous owner.
   * @param newOwner The address of the new owner.
   */
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The constructor sets the original `owner` of the contract to the sender account.
   */
  constructor()
    public
  {
    owner = msg.sender;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(msg.sender == owner);
    _;
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param _newOwner The address to transfer ownership to.
   */
  function transferOwnership(
    address _newOwner
  )
    onlyOwner
    public
  {
    require(_newOwner != address(0));
    emit OwnershipTransferred(owner, _newOwner);
    owner = _newOwner;
  }

}

// File: @0xcert/ethereum-utils/contracts/ownership/Claimable.sol

/**
 * @dev The contract has an owner address, and provides basic authorization control whitch
 * simplifies the implementation of user permissions. This contract is based on the source code
 * at goo.gl/CfEAkv and upgrades Ownable contracts with additional claim step which makes ownership
 * transfers less prone to errors.
 */
contract Claimable is Ownable {
  address public pendingOwner;

  /**
   * @dev An event which is triggered when the owner is changed.
   * @param previousOwner The address of the previous owner.
   * @param newOwner The address of the new owner.
   */
  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev Allows the current owner to give new owner ability to claim the ownership of the contract.
   * This differs from the Owner's function in that it allows setting pedingOwner address to 0x0,
   * which effectively cancels an active claim.
   * @param _newOwner The address which can claim ownership of the contract.
   */
  function transferOwnership(
    address _newOwner
  )
    onlyOwner
    public
  {
    pendingOwner = _newOwner;
  }

  /**
   * @dev Allows the current pending owner to claim the ownership of the contract. It emits
   * OwnershipTransferred event and resets pending owner to 0.
   */
  function claimOwnership()
    public
  {
    require(msg.sender == pendingOwner);
    address previousOwner = owner;
    owner = pendingOwner;
    pendingOwner = 0;
    emit OwnershipTransferred(previousOwner, owner);
  }
}

// File: contracts/tokens/Zxc.sol

/*
 * @title ZXC protocol token.
 * @dev Standard ERC20 token used by the 0xcert protocol. This contract follows the implementation
 * at https://goo.gl/twbPwp.
 */
contract Zxc is
  Token,
  Claimable
{
  using SafeMath for uint256;

  /**
   * Transfer feature state.
   */
  bool internal transferEnabled;

  /**
   * Crowdsale smart contract address.
   */
  address public crowdsaleAddress;

  /**
   * @dev An event which is triggered when tokens are burned.
   * @param _burner The address which burns tokens.
   * @param _value The amount of burned tokens.
   */
  event Burn(
    address indexed _burner,
    uint256 _value
  );

  /**
   * @dev Assures that the provided address is a valid destination to transfer tokens to.
   * @param _to Target address.
   */
  modifier validDestination(
    address _to
  )
  {
    require(_to != address(0x0));
    require(_to != address(this));
    require(_to != address(crowdsaleAddress));
    _;
  }

  /**
   * @dev Assures that tokens can be transfered.
   */
  modifier onlyWhenTransferAllowed()
  {
    require(transferEnabled || msg.sender == crowdsaleAddress);
    _;
  }

  /**
   * @dev Contract constructor.
   */
  constructor()
    public
  {
    tokenName = "0xcert Protocol Token";
    tokenSymbol = "ZXC";
    tokenDecimals = 18;
    tokenTotalSupply = 500000000000000000000000000;
    transferEnabled = false;

    balances[owner] = tokenTotalSupply;
    emit Transfer(address(0x0), owner, tokenTotalSupply);
  }

  /**
   * @dev Transfers token to a specified address.
   * @param _to The address to transfer to.
   * @param _value The amount to be transferred.
   */
  function transfer(
    address _to,
    uint256 _value
  )
    onlyWhenTransferAllowed()
    validDestination(_to)
    public
    returns (bool _success)
  {
    _success = super.transfer(_to, _value);
  }

  /**
   * @dev Transfers tokens from one address to another.
   * @param _from address The address which you want to send tokens from.
   * @param _to address The address which you want to transfer to.
   * @param _value uint256 The amount of tokens to be transferred.
   */
  function transferFrom(
    address _from,
    address _to,
    uint256 _value
  )
    onlyWhenTransferAllowed()
    validDestination(_to)
    public
    returns (bool _success)
  {
    _success = super.transferFrom(_from, _to, _value);
  }

  /**
   * @dev Enables token transfers.
   */
  function enableTransfer()
    onlyOwner()
    external
  {
    transferEnabled = true;
  }

  /**
   * @dev Burns a specific amount of tokens. This function is based on BurnableToken implementation
   * at goo.gl/GZEhaq.
   * @notice Only owner is allowed to perform this operation.
   * @param _value The amount of tokens to be burned.
   */
  function burn(
    uint256 _value
  )
    onlyOwner()
    external
  {
    require(_value <= balances[msg.sender]);

    balances[owner] = balances[owner].sub(_value);
    tokenTotalSupply = tokenTotalSupply.sub(_value);

    emit Burn(owner, _value);
    emit Transfer(owner, address(0x0), _value);
  }

  /**
    * @dev Set crowdsale address which can distribute tokens even when onlyWhenTransferAllowed is
    * false.
    * @param crowdsaleAddr Address of token offering contract.
    */
  function setCrowdsaleAddress(
    address crowdsaleAddr
  )
    external
    onlyOwner()
  {
    crowdsaleAddress = crowdsaleAddr;
  }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"_name","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":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"_totalSupply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"crowdsaleAddr","type":"address"}],"name":"setCrowdsaleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"crowdsaleAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"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":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"_symbol","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"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"enableTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_burner","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"}]

608060405234801561001057600080fd5b5060068054600160a060020a031916331790556040805180820190915260158082527f3078636572742050726f746f636f6c20546f6b656e000000000000000000000060209092019182526100679160009161013f565b506040805180820190915260038082527f5a5843000000000000000000000000000000000000000000000000000000000060209092019182526100ac9160019161013f565b506002805460ff191660121790556b019d971e4fe8401e7400000060038190556007805460a060020a60ff021916905560068054600160a060020a039081166000908152600460209081526040808320869055935484519586529351939092169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a36101da565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061018057805160ff19168380011785556101ad565b828001600101855582156101ad579182015b828111156101ad578251825591602001919060010190610192565b506101b99291506101bd565b5090565b6101d791905b808211156101b957600081556001016101c3565b90565b610be1806101e96000396000f3006080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b75780631f35bc40146101de57806323b872dd14610201578063313ce5671461022b57806331d2f8911461025657806342966c68146102875780634e71e0c81461029f57806370a08231146102b45780638da5cb5b146102d557806395d89b41146102ea578063a9059cbb146102ff578063dd62ed3e14610323578063e30c39781461034a578063f1b50c1d1461035f578063f2fde38b14610374575b600080fd5b34801561010157600080fd5b5061010a610395565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a036004351660243561042b565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc6104cd565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101ff600160a060020a03600435166104d3565b005b34801561020d57600080fd5b506101a3600160a060020a0360043581169060243516604435610519565b34801561023757600080fd5b506102406105b5565b6040805160ff9092168252519081900360200190f35b34801561026257600080fd5b5061026b6105be565b60408051600160a060020a039092168252519081900360200190f35b34801561029357600080fd5b506101ff6004356105cd565b3480156102ab57600080fd5b506101ff6106e5565b3480156102c057600080fd5b506101cc600160a060020a036004351661076d565b3480156102e157600080fd5b5061026b610788565b3480156102f657600080fd5b5061010a610797565b34801561030b57600080fd5b506101a3600160a060020a03600435166024356107f7565b34801561032f57600080fd5b506101cc600160a060020a0360043581169060243516610891565b34801561035657600080fd5b5061026b6108bc565b34801561036b57600080fd5b506101ff6108cb565b34801561038057600080fd5b506101ff600160a060020a0360043516610919565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104215780601f106103f657610100808354040283529160200191610421565b820191906000526020600020905b81548152906001019060200180831161040457829003601f168201915b5050505050905090565b600081158061045b5750336000908152600560209081526040808320600160a060020a0387168452909152902054155b151561046657600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60035490565b600654600160a060020a031633146104ea57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60075460009074010000000000000000000000000000000000000000900460ff168061054f5750600854600160a060020a031633145b151561055a57600080fd5b82600160a060020a038116151561057057600080fd5b600160a060020a03811630141561058657600080fd5b600854600160a060020a03828116911614156105a157600080fd5b6105ac85858561095f565b95945050505050565b60025460ff1690565b600854600160a060020a031681565b600654600160a060020a031633146105e457600080fd5b3360009081526004602052604090205481111561060057600080fd5b600654600160a060020a031660009081526004602052604090205461062b908263ffffffff610ac116565b600654600160a060020a0316600090815260046020526040902055600354610659908263ffffffff610ac116565b600355600654604080518381529051600160a060020a03909216917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59181900360200190a2600654604080518381529051600092600160a060020a0316917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a350565b600754600090600160a060020a031633146106ff57600080fd5b50600680546007805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600160a060020a031660009081526004602052604090205490565b600654600160a060020a031681565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104215780601f106103f657610100808354040283529160200191610421565b60075460009074010000000000000000000000000000000000000000900460ff168061082d5750600854600160a060020a031633145b151561083857600080fd5b82600160a060020a038116151561084e57600080fd5b600160a060020a03811630141561086457600080fd5b600854600160a060020a038281169116141561087f57600080fd5b6108898484610ad3565b949350505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600754600160a060020a031681565b600654600160a060020a031633146108e257600080fd5b6007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600654600160a060020a0316331461093057600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03831660009081526004602052604081205482111561098457600080fd5b600160a060020a03841660009081526005602090815260408083203384529091529020548211156109b457600080fd5b600160a060020a0384166000908152600460205260409020546109dd908363ffffffff610ac116565b600160a060020a038086166000908152600460205260408082209390935590851681522054610a12908363ffffffff610b9f16565b600160a060020a038085166000908152600460209081526040808320949094559187168152600582528281203382529091522054610a56908363ffffffff610ac116565b600160a060020a03808616600081815260056020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600082821115610acd57fe5b50900390565b33600090815260046020526040812054821115610aef57600080fd5b33600090815260046020526040902054610b0f908363ffffffff610ac116565b3360009081526004602052604080822092909255600160a060020a03851681522054610b41908363ffffffff610b9f16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600082820183811015610bae57fe5b93925050505600a165627a7a7230582036d05124dd6101a74018a2c04541adcf48d7b1bbfb9d7da91a9a7934b59ad7d80029

Deployed Bytecode

0x6080604052600436106100f05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063095ea7b31461017f57806318160ddd146101b75780631f35bc40146101de57806323b872dd14610201578063313ce5671461022b57806331d2f8911461025657806342966c68146102875780634e71e0c81461029f57806370a08231146102b45780638da5cb5b146102d557806395d89b41146102ea578063a9059cbb146102ff578063dd62ed3e14610323578063e30c39781461034a578063f1b50c1d1461035f578063f2fde38b14610374575b600080fd5b34801561010157600080fd5b5061010a610395565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561014457818101518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561018b57600080fd5b506101a3600160a060020a036004351660243561042b565b604080519115158252519081900360200190f35b3480156101c357600080fd5b506101cc6104cd565b60408051918252519081900360200190f35b3480156101ea57600080fd5b506101ff600160a060020a03600435166104d3565b005b34801561020d57600080fd5b506101a3600160a060020a0360043581169060243516604435610519565b34801561023757600080fd5b506102406105b5565b6040805160ff9092168252519081900360200190f35b34801561026257600080fd5b5061026b6105be565b60408051600160a060020a039092168252519081900360200190f35b34801561029357600080fd5b506101ff6004356105cd565b3480156102ab57600080fd5b506101ff6106e5565b3480156102c057600080fd5b506101cc600160a060020a036004351661076d565b3480156102e157600080fd5b5061026b610788565b3480156102f657600080fd5b5061010a610797565b34801561030b57600080fd5b506101a3600160a060020a03600435166024356107f7565b34801561032f57600080fd5b506101cc600160a060020a0360043581169060243516610891565b34801561035657600080fd5b5061026b6108bc565b34801561036b57600080fd5b506101ff6108cb565b34801561038057600080fd5b506101ff600160a060020a0360043516610919565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104215780601f106103f657610100808354040283529160200191610421565b820191906000526020600020905b81548152906001019060200180831161040457829003601f168201915b5050505050905090565b600081158061045b5750336000908152600560209081526040808320600160a060020a0387168452909152902054155b151561046657600080fd5b336000818152600560209081526040808320600160a060020a03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b60035490565b600654600160a060020a031633146104ea57600080fd5b6008805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60075460009074010000000000000000000000000000000000000000900460ff168061054f5750600854600160a060020a031633145b151561055a57600080fd5b82600160a060020a038116151561057057600080fd5b600160a060020a03811630141561058657600080fd5b600854600160a060020a03828116911614156105a157600080fd5b6105ac85858561095f565b95945050505050565b60025460ff1690565b600854600160a060020a031681565b600654600160a060020a031633146105e457600080fd5b3360009081526004602052604090205481111561060057600080fd5b600654600160a060020a031660009081526004602052604090205461062b908263ffffffff610ac116565b600654600160a060020a0316600090815260046020526040902055600354610659908263ffffffff610ac116565b600355600654604080518381529051600160a060020a03909216917fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59181900360200190a2600654604080518381529051600092600160a060020a0316917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef919081900360200190a350565b600754600090600160a060020a031633146106ff57600080fd5b50600680546007805473ffffffffffffffffffffffffffffffffffffffff19808416600160a060020a038381169190911795869055911690915560405191811692169082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b600160a060020a031660009081526004602052604090205490565b600654600160a060020a031681565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156104215780601f106103f657610100808354040283529160200191610421565b60075460009074010000000000000000000000000000000000000000900460ff168061082d5750600854600160a060020a031633145b151561083857600080fd5b82600160a060020a038116151561084e57600080fd5b600160a060020a03811630141561086457600080fd5b600854600160a060020a038281169116141561087f57600080fd5b6108898484610ad3565b949350505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b600754600160a060020a031681565b600654600160a060020a031633146108e257600080fd5b6007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600654600160a060020a0316331461093057600080fd5b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03831660009081526004602052604081205482111561098457600080fd5b600160a060020a03841660009081526005602090815260408083203384529091529020548211156109b457600080fd5b600160a060020a0384166000908152600460205260409020546109dd908363ffffffff610ac116565b600160a060020a038086166000908152600460205260408082209390935590851681522054610a12908363ffffffff610b9f16565b600160a060020a038085166000908152600460209081526040808320949094559187168152600582528281203382529091522054610a56908363ffffffff610ac116565b600160a060020a03808616600081815260056020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b600082821115610acd57fe5b50900390565b33600090815260046020526040812054821115610aef57600080fd5b33600090815260046020526040902054610b0f908363ffffffff610ac116565b3360009081526004602052604080822092909255600160a060020a03851681522054610b41908363ffffffff610b9f16565b600160a060020a0384166000818152600460209081526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b600082820183811015610bae57fe5b93925050505600a165627a7a7230582036d05124dd6101a74018a2c04541adcf48d7b1bbfb9d7da91a9a7934b59ad7d80029

Swarm Source

bzzr://36d05124dd6101a74018a2c04541adcf48d7b1bbfb9d7da91a9a7934b59ad7d8

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

Create, own, and validate unique assets on the blockchain.

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.