ETH Price: $3,382.13 (+0.21%)

Contract

0xf8483E2d6560585C02D46bF7B3186Bf154a96166
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

IdeaChain (ICH) (@$0.0025)
Transaction Hash
Method
Block
From
To
Transfer211213522024-11-05 12:09:1117 days ago1730808551IN
0xf8483E2d...154a96166
0 ETH0.000461818.20666718
Transfer211028172024-11-02 22:04:2320 days ago1730585063IN
0xf8483E2d...154a96166
0 ETH0.000327795.82390575
Transfer210766332024-10-30 6:20:5924 days ago1730269259IN
0xf8483E2d...154a96166
0 ETH0.0003981313
Approve209317162024-10-10 0:46:5944 days ago1728521219IN
0xf8483E2d...154a96166
0 ETH0.000178487.27839387
Approve207023582024-09-08 0:37:4776 days ago1725755867IN
0xf8483E2d...154a96166
0 ETH0.000022050.89959633
Transfer206018522024-08-24 23:52:1190 days ago1724543531IN
0xf8483E2d...154a96166
0 ETH0.000022910.74848001
Transfer206016222024-08-24 23:05:4790 days ago1724540747IN
0xf8483E2d...154a96166
0 ETH0.000023050.75316092
Transfer206016122024-08-24 23:03:4790 days ago1724540627IN
0xf8483E2d...154a96166
0 ETH0.000022230.72621766
Transfer205982402024-08-24 11:44:3590 days ago1724499875IN
0xf8483E2d...154a96166
0 ETH0.00014972.9077633
Transfer205618962024-08-19 9:51:4795 days ago1724061107IN
0xf8483E2d...154a96166
0 ETH0.000276354.90997403
Transfer205270702024-08-14 13:08:35100 days ago1723640915IN
0xf8483E2d...154a96166
0 ETH0.000289488.42783849
Transfer205252942024-08-14 7:11:47101 days ago1723619507IN
0xf8483E2d...154a96166
0 ETH0.000176933.14484716
Transfer205236352024-08-14 1:38:11101 days ago1723599491IN
0xf8483E2d...154a96166
0 ETH0.000158662.81957755
Transfer202906752024-07-12 13:19:23133 days ago1720790363IN
0xf8483E2d...154a96166
0 ETH0.000218764.24911367
Approve202863252024-07-11 22:43:35134 days ago1720737815IN
0xf8483E2d...154a96166
0 ETH0.000057172.33145286
Approve202863172024-07-11 22:41:59134 days ago1720737719IN
0xf8483E2d...154a96166
0 ETH0.000112842.42771328
Approve202589002024-07-08 2:46:11138 days ago1720406771IN
0xf8483E2d...154a96166
0 ETH0.000040641.65756881
Transfer202311992024-07-04 5:56:11142 days ago1720072571IN
0xf8483E2d...154a96166
0 ETH0.000110042.1378846
Approve201926182024-06-28 20:37:11147 days ago1719607031IN
0xf8483E2d...154a96166
0 ETH0.000119872.5616096
Approve201678252024-06-25 9:32:59150 days ago1719307979IN
0xf8483E2d...154a96166
0 ETH0.000177323.8148373
Transfer201611302024-06-24 11:05:23151 days ago1719227123IN
0xf8483E2d...154a96166
0 ETH0.000174343.38718229
Approve201610102024-06-24 10:41:11151 days ago1719225671IN
0xf8483E2d...154a96166
0 ETH0.000190714.07551205
Transfer201503792024-06-22 23:00:23153 days ago1719097223IN
0xf8483E2d...154a96166
0 ETH0.000088511.71925554
Approve201253342024-06-19 10:57:35156 days ago1718794655IN
0xf8483E2d...154a96166
0 ETH0.000071712.92454704
Approve201251292024-06-19 10:16:23156 days ago1718792183IN
0xf8483E2d...154a96166
0 ETH0.00015463.32683793
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:
ICH

Compiler Version
v0.5.13+commit.5b0b510c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-01-19
*/

pragma solidity ^0.5.13;

/*
 * Creator: IdeaChain

/*
 * Abstract Token Smart Contract
 *
 */

 
 /*
 * Safe Math Smart Contract. 
 * https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/math/SafeMath.sol
 */

contract SafeMath {
  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;
  }

  function safeDiv(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}




/**
 * ERC-20 standard token interface, as defined
 * <a href="http://github.com/ethereum/EIPs/issues/20">here</a>.
 */
contract Token {
  
  function totalSupply() public view returns (uint256 supply);
  function balanceOf(address _owner) public view returns (uint256 balance);
  function transfer(address _to, uint256 _value) public returns (bool success);
  function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
  function approve(address _spender, uint256 _value) public returns (bool success);
  function allowance(address _owner, address _spender) public view returns (uint256 remaining);
  event Transfer(address indexed _from, address indexed _to, uint256 _value);
  event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}



/**
 * 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.
   */
  constructor () public {
    // 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) public view 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
   * accounts [_to] + _value > accounts [_to] for overflow check
   * which is already in safeMath
   */
  function transfer(address _to, uint256 _value) public returns (bool success) {
    require(_to != address(0));
    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);
    }
    emit 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
   * accounts [_to] + _value > accounts [_to] for overflow check
   * which is already in safeMath
   */
  function transferFrom(address _from, address _to, uint256 _value) public
  returns (bool success) {
    require(_to != address(0));
    if (allowances [_from][msg.sender] < _value) return false;
    if (accounts [_from] < _value) return false; 

    if (_value > 0 && _from != _to) {
	  allowances [_from][msg.sender] = safeSub (allowances [_from][msg.sender], _value);
      accounts [_from] = safeSub (accounts [_from], _value);
      accounts [_to] = safeAdd (accounts [_to], _value);
    }
    emit 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) public returns (bool success) {
    allowances [msg.sender][_spender] = _value;
    emit 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) public view
  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;
  
}


/**
 * IdeaChain smart contract.
 */
contract ICH is AbstractToken {
  /**
   * Maximum allowed number of tokens in circulation.
   * tokenSupply = tokensIActuallyWant * (10 ^ decimals)
   */
   
   
  uint256 constant MAX_TOKEN_COUNT = 55000000 * (10**8);
   
  /**
   * Address of the owner of this smart contract.
   */
  address private owner;
  
  /**
   * Frozen account list holder
   */
  mapping (address => bool) private frozenAccount;

  /**
   * Current number of tokens in circulation.
   */
  uint256 tokenCount = 0;
  
 
  /**
   * True if tokens transfers are currently frozen, false otherwise.
   */
  bool frozen = false;
  
 
  /**
   * Create new token smart contract and make msg.sender the
   * owner of this smart contract.
   */
  constructor () public {
    owner = msg.sender;
  }

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

  string constant public name = "IdeaChain";
  string constant public symbol = "ICH";
  uint8 constant public decimals = 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) public returns (bool success) {
    require(!frozenAccount[msg.sender]);
	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) public
    returns (bool success) {
	require(!frozenAccount[_from]);
    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,
   * To change the approve amount you first have to reduce the addresses`
   * allowance to zero by calling `approve(_spender, 0)` if it is not
   * already 0 to mitigate the race condition described here:
   * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
   * @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) public
    returns (bool success) {
	require(allowance (msg.sender, _spender) == 0 || _value == 0);
    return AbstractToken.approve (_spender, _value);
  }

  /**
   * 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) public
    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);
	  
	  // adding transfer event and _from address as null address
	  emit Transfer(address(0), msg.sender, _value);
	  
	  return true;
    }
	
	  return false;
    
  }
  

  /**
   * 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) public {
    require (msg.sender == owner);

    owner = _newOwner;
  }

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

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

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

    if (frozen) {
      frozen = false;
      emit Unfreeze ();
    }
  }
  
  
  /*A user is able to unintentionally send tokens to a contract 
  * and if the contract is not prepared to refund them they will get stuck in the contract. 
  * The same issue used to happen for Ether too but new Solidity versions added the payable modifier to
  * prevent unintended Ether transfers. However, there’s no such mechanism for token transfers.
  * so the below function is created
  */
  
  function refundTokens(address _token, address _refund, uint256 _value) public {
    require (msg.sender == owner);
    require(_token != address(this));
    AbstractToken token = AbstractToken(_token);
    token.transfer(_refund, _value);
    emit RefundTokens(_token, _refund, _value);
  }
  
  /**
   * Freeze specific account
   * May only be called by smart contract owner.
   */
  function freezeAccount(address _target, bool freeze) public {
      require (msg.sender == owner);
	  require (msg.sender != _target);
      frozenAccount[_target] = freeze;
      emit FrozenFunds(_target, freeze);
 }

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

  /**
   * Logged when token transfers were unfrozen.
   */
  event Unfreeze ();
  
  /**
   * Logged when a particular account is frozen.
   */
  
  event FrozenFunds(address target, bool frozen);


  
  /**
   * when accidentally send other tokens are refunded
   */
  
  event RefundTokens(address _token, address _refund, uint256 _value);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"payable":false,"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":[],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bool","name":"frozen","type":"bool"}],"name":"FrozenFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"address","name":"_refund","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"RefundTokens","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"},{"anonymous":false,"inputs":[],"name":"Unfreeze","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"createTokens","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bool","name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"freezeTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_refund","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"refundTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unfreezeTransfers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

608060405260006004556000600560006101000a81548160ff02191690831515021790555034801561003057600080fd5b5033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506116f1806100816000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806331c420d41161009757806395d89b411161006657806395d89b411461040f578063a9059cbb14610492578063dd62ed3e146104f8578063e724529c14610570576100f5565b806331c420d4146102f957806370a08231146103035780637e1f2bb81461035b57806389519c50146103a1576100f5565b806313af4035116100d357806313af4035146101ed57806318160ddd1461023157806323b872dd1461024f578063313ce567146102d5576100f5565b806301502460146100fa57806306fdde0314610104578063095ea7b314610187575b600080fd5b6101026105c0565b005b61010c610678565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014c578082015181840152602081019050610131565b50505050905090810190601f1680156101795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d36004803603604081101561019d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106b1565b604051808215151515815260200191505060405180910390f35b61022f6004803603602081101561020357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e5565b005b610239610783565b6040518082815260200191505060405180910390f35b6102bb6004803603606081101561026557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061078d565b604051808215151515815260200191505060405180910390f35b6102dd610819565b604051808260ff1660ff16815260200191505060405180910390f35b61030161081e565b005b6103456004803603602081101561031957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108d7565b6040518082815260200191505060405180910390f35b6103876004803603602081101561037157600080fd5b810190808035906020019092919050505061091f565b604051808215151515815260200191505060405180910390f35b61040d600480360360608110156103b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610abc565b005b610417610cbc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045757808201518184015260208101905061043c565b50505050905090810190601f1680156104845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104de600480360360408110156104a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cf5565b604051808215151515815260200191505060405180910390f35b61055a6004803603604081101561050e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7f565b6040518082815260200191505060405180910390f35b6105be6004803603604081101561058657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e06565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461061a57600080fd5b600560009054906101000a900460ff16610676576001600560006101000a81548160ff0219169083151502179055507f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b565b6040518060400160405280600981526020017f49646561436861696e000000000000000000000000000000000000000000000081525081565b6000806106be3385610d7f565b14806106ca5750600082145b6106d357600080fd5b6106dd8383610f63565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461073f57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600454905090565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156107e657600080fd5b600560009054906101000a900460ff16156108045760009050610812565b61080f848484611055565b90505b9392505050565b600881565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461087857600080fd5b600560009054906101000a900460ff16156108d5576000600560006101000a81548160ff0219169083151502179055507f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a15b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097b57600080fd5b6000821115610ab25761099766138a388a43c000600454611439565b8211156109a75760009050610ab7565b6109ef6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611450565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a3d60045483611450565b6004819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610ab7565b600090505b919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b4f57600080fd5b60008390508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610bdb57600080fd5b505af1158015610bef573d6000803e3d6000fd5b505050506040513d6020811015610c0557600080fd5b8101908080519060200190929190505050507ffab5e7a27e02736e52f60776d307340051d8bc15aee0ef211c7a4aa2a8cdc154848484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505050565b6040518060400160405280600381526020017f494348000000000000000000000000000000000000000000000000000000000081525081565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d4e57600080fd5b600560009054906101000a900460ff1615610d6c5760009050610d79565b610d76838361146c565b90505b92915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610e9957600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109057600080fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561111d5760009050611432565b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561116c5760009050611432565b6000821180156111a857508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113c857611233600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611439565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112fb6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611439565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113856000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611450565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b60008282111561144557fe5b818303905092915050565b60008082840190508381101561146257fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a757600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114f657600090506116b6565b60008211801561153257508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561164c5761157f6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611439565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116096000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611450565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9291505056fea265627a7a72315820577946df9c89063e9dd0b9e557860076a42004909a550bef930dc8fdbbf39f8264736f6c634300050d0032

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806331c420d41161009757806395d89b411161006657806395d89b411461040f578063a9059cbb14610492578063dd62ed3e146104f8578063e724529c14610570576100f5565b806331c420d4146102f957806370a08231146103035780637e1f2bb81461035b57806389519c50146103a1576100f5565b806313af4035116100d357806313af4035146101ed57806318160ddd1461023157806323b872dd1461024f578063313ce567146102d5576100f5565b806301502460146100fa57806306fdde0314610104578063095ea7b314610187575b600080fd5b6101026105c0565b005b61010c610678565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014c578082015181840152602081019050610131565b50505050905090810190601f1680156101795780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d36004803603604081101561019d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106b1565b604051808215151515815260200191505060405180910390f35b61022f6004803603602081101561020357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506106e5565b005b610239610783565b6040518082815260200191505060405180910390f35b6102bb6004803603606081101561026557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061078d565b604051808215151515815260200191505060405180910390f35b6102dd610819565b604051808260ff1660ff16815260200191505060405180910390f35b61030161081e565b005b6103456004803603602081101561031957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108d7565b6040518082815260200191505060405180910390f35b6103876004803603602081101561037157600080fd5b810190808035906020019092919050505061091f565b604051808215151515815260200191505060405180910390f35b61040d600480360360608110156103b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610abc565b005b610417610cbc565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561045757808201518184015260208101905061043c565b50505050905090810190601f1680156104845780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104de600480360360408110156104a857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cf5565b604051808215151515815260200191505060405180910390f35b61055a6004803603604081101561050e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7f565b6040518082815260200191505060405180910390f35b6105be6004803603604081101561058657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610e06565b005b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461061a57600080fd5b600560009054906101000a900460ff16610676576001600560006101000a81548160ff0219169083151502179055507f615acbaede366d76a8b8cb2a9ada6a71495f0786513d71aa97aaf0c3910b78de60405160405180910390a15b565b6040518060400160405280600981526020017f49646561436861696e000000000000000000000000000000000000000000000081525081565b6000806106be3385610d7f565b14806106ca5750600082145b6106d357600080fd5b6106dd8383610f63565b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461073f57600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600454905090565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156107e657600080fd5b600560009054906101000a900460ff16156108045760009050610812565b61080f848484611055565b90505b9392505050565b600881565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461087857600080fd5b600560009054906101000a900460ff16156108d5576000600560006101000a81548160ff0219169083151502179055507f2f05ba71d0df11bf5fa562a6569d70c4f80da84284badbe015ce1456063d0ded60405160405180910390a15b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461097b57600080fd5b6000821115610ab25761099766138a388a43c000600454611439565b8211156109a75760009050610ab7565b6109ef6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611450565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a3d60045483611450565b6004819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050610ab7565b600090505b919050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b1657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b4f57600080fd5b60008390508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610bdb57600080fd5b505af1158015610bef573d6000803e3d6000fd5b505050506040513d6020811015610c0557600080fd5b8101908080519060200190929190505050507ffab5e7a27e02736e52f60776d307340051d8bc15aee0ef211c7a4aa2a8cdc154848484604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a150505050565b6040518060400160405280600381526020017f494348000000000000000000000000000000000000000000000000000000000081525081565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d4e57600080fd5b600560009054906101000a900460ff1615610d6c5760009050610d79565b610d76838361146c565b90505b92915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6057600080fd5b8173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610e9957600080fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15050565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561109057600080fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561111d5760009050611432565b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561116c5760009050611432565b6000821180156111a857508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156113c857611233600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611439565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506112fb6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611439565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113856000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611450565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b60008282111561144557fe5b818303905092915050565b60008082840190508381101561146257fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a757600080fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114f657600090506116b6565b60008211801561153257508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b1561164c5761157f6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611439565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116096000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611450565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9291505056fea265627a7a72315820577946df9c89063e9dd0b9e557860076a42004909a550bef930dc8fdbbf39f8264736f6c634300050d0032

Deployed Bytecode Sourcemap

5981:6308:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5981:6308:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10384:151;;;:::i;:::-;;7010:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7010:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8982:212;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8982:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10168:112;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10168:112:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;6914:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8055:238;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8055:238:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7098:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10641:155;;;:::i;:::-;;2368:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2368:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9463:515;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9463:515:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11220:296;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11220:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7056:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;7056:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7448:208;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7448:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5369:145;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5369:145:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11618:222;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11618:222:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10384:151;10449:5;;;;;;;;;;;10435:19;;:10;:19;;;10426:29;;;;;;10469:6;;;;;;;;;;;10464:66;;10495:4;10486:6;;:13;;;;;;;;;;;;;;;;;;10513:9;;;;;;;;;;10464:66;10384:151::o;7010:41::-;;;;;;;;;;;;;;;;;;;:::o;8982:212::-;9055:12;9117:1;9081:32;9092:10;9104:8;9081:9;:32::i;:::-;:37;:52;;;;9132:1;9122:6;:11;9081:52;9073:61;;;;;;9148:40;9171:8;9181:6;9148:21;:40::i;:::-;9141:47;;8982:212;;;;:::o;10168:112::-;10242:5;;;;;;;;;;;10228:19;;:10;:19;;;10219:29;;;;;;10265:9;10257:5;;:17;;;;;;;;;;;;;;;;;;10168:112;:::o;6914:90::-;6958:14;6988:10;;6981:17;;6914:90;:::o;8055:238::-;8142:12;8169:13;:20;8183:5;8169:20;;;;;;;;;;;;;;;;;;;;;;;;;8168:21;8160:30;;;;;;8201:6;;;;;;;;;;;8197:90;;;8216:5;8209:12;;;;8197:90;8240:47;8268:5;8275:3;8280:6;8240:26;:47::i;:::-;8233:54;;8055:238;;;;;;:::o;7098:34::-;7131:1;7098:34;:::o;10641:155::-;10708:5;;;;;;;;;;;10694:19;;:10;:19;;;10685:29;;;;;;10727:6;;;;;;;;;;;10723:68;;;10753:5;10744:6;;:14;;;;;;;;;;;;;;;;;;10772:11;;;;;;;;;;10723:68;10641:155::o;2368:110::-;2424:15;2455:8;:17;2465:6;2455:17;;;;;;;;;;;;;;;;2448:24;;2368:110;;;:::o;9463:515::-;9522:12;9566:5;;;;;;;;;;;9552:19;;:10;:19;;;9543:29;;;;;;9594:1;9585:6;:10;9581:365;;;9619:37;6188:18;9645:10;;9619:7;:37::i;:::-;9610:6;:46;9606:64;;;9665:5;9658:12;;;;9606:64;9708:39;9717:8;:21;9727:10;9717:21;;;;;;;;;;;;;;;;9740:6;9708:7;:39::i;:::-;9684:8;:21;9694:10;9684:21;;;;;;;;;;;;;;;:63;;;;9769:28;9778:10;;9790:6;9769:7;:28::i;:::-;9756:10;:41;;;;9897:10;9876:40;;9893:1;9876:40;;;9909:6;9876:40;;;;;;;;;;;;;;;;;;9934:4;9927:11;;;;9581:365;9961:5;9954:12;;9463:515;;;;:::o;11220:296::-;11328:5;;;;;;;;;;;11314:19;;:10;:19;;;11305:29;;;;;;11367:4;11349:23;;:6;:23;;;;11341:32;;;;;;11380:19;11416:6;11380:43;;11430:5;:14;;;11445:7;11454:6;11430:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11430:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11430:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11430:31:0;;;;;;;;;;;;;;;;;11473:37;11486:6;11494:7;11503:6;11473:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11220:296;;;;:::o;7056:37::-;;;;;;;;;;;;;;;;;;;:::o;7448:208::-;7511:12;7541:13;:25;7555:10;7541:25;;;;;;;;;;;;;;;;;;;;;;;;;7540:26;7532:35;;;;;;7575:6;;;;;;;;;;;7571:79;;;7590:5;7583:12;;;;7571:79;7614:36;7638:3;7643:6;7614:22;:36::i;:::-;7607:43;;7448:208;;;;;:::o;5369:145::-;5446:17;5479:10;:19;5491:6;5479:19;;;;;;;;;;;;;;;:29;5499:8;5479:29;;;;;;;;;;;;;;;;5472:36;;5369:145;;;;:::o;11618:222::-;11710:5;;;;;;;;;;;11696:19;;:10;:19;;;11687:29;;;;;;11745:7;11731:21;;:10;:21;;;;11722:31;;;;;;11787:6;11762:13;:22;11776:7;11762:22;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;11807:28;11819:7;11828:6;11807:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11618:222;;:::o;4712:206::-;4780:12;4837:6;4801:10;:23;4813:10;4801:23;;;;;;;;;;;;;;;:33;4825:8;4801:33;;;;;;;;;;;;;;;:42;;;;4877:8;4855:39;;4865:10;4855:39;;;4887:6;4855:39;;;;;;;;;;;;;;;;;;4908:4;4901:11;;4712:206;;;;:::o;3814:566::-;3899:12;3943:1;3928:17;;:3;:17;;;;3920:26;;;;;;3990:6;3957:10;:18;3969:5;3957:18;;;;;;;;;;;;;;;:30;3976:10;3957:30;;;;;;;;;;;;;;;;:39;3953:57;;;4005:5;3998:12;;;;3953:57;4040:6;4021:8;:16;4031:5;4021:16;;;;;;;;;;;;;;;;:25;4017:43;;;4055:5;4048:12;;;;4017:43;4083:1;4074:6;:10;:26;;;;;4097:3;4088:12;;:5;:12;;;;4074:26;4070:247;;;4141:48;4150:10;:18;4162:5;4150:18;;;;;;;;;;;;;;;:30;4169:10;4150:30;;;;;;;;;;;;;;;;4182:6;4141:7;:48::i;:::-;4108:10;:18;4120:5;4108:18;;;;;;;;;;;;;;;:30;4127:10;4108:30;;;;;;;;;;;;;;;:81;;;;4217:34;4226:8;:16;4236:5;4226:16;;;;;;;;;;;;;;;;4244:6;4217:7;:34::i;:::-;4198:8;:16;4208:5;4198:16;;;;;;;;;;;;;;;:53;;;;4277:32;4286:8;:14;4296:3;4286:14;;;;;;;;;;;;;;;;4302:6;4277:7;:32::i;:::-;4260:8;:14;4270:3;4260:14;;;;;;;;;;;;;;;:49;;;;4070:247;4344:3;4328:28;;4337:5;4328:28;;;4349:6;4328:28;;;;;;;;;;;;;;;;;;4370:4;4363:11;;3814:566;;;;;;:::o;735:117::-;797:7;825:1;820;:6;;813:14;;;;845:1;841;:5;834:12;;735:117;;;;:::o;858:137::-;920:7;936:9;952:1;948;:5;936:17;;972:1;967;:6;;960:14;;;;988:1;981:8;;;858:137;;;;:::o;2898:416::-;2961:12;3005:1;2990:17;;:3;:17;;;;2982:26;;;;;;3043:6;3019:8;:21;3029:10;3019:21;;;;;;;;;;;;;;;;:30;3015:48;;;3058:5;3051:12;;;;3015:48;3083:1;3074:6;:10;:31;;;;;3102:3;3088:17;;:10;:17;;;;3074:31;3070:175;;;3140:39;3149:8;:21;3159:10;3149:21;;;;;;;;;;;;;;;;3172:6;3140:7;:39::i;:::-;3116:8;:21;3126:10;3116:21;;;;;;;;;;;;;;;:63;;;;3205:32;3214:8;:14;3224:3;3214:14;;;;;;;;;;;;;;;;3230:6;3205:7;:32::i;:::-;3188:8;:14;3198:3;3188:14;;;;;;;;;;;;;;;:49;;;;3070:175;3278:3;3256:34;;3266:10;3256:34;;;3283:6;3256:34;;;;;;;;;;;;;;;;;;3304:4;3297:11;;2898:416;;;;;:::o

Swarm Source

bzzr://577946df9c89063e9dd0b9e557860076a42004909a550bef930dc8fdbbf39f82

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.