ETH Price: $1,572.69 (-13.09%)

Contract

0x78E0743B2cC9967BaC4643D559A027FA53F6BC88
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer42774092017-09-15 17:21:542760 days ago1505496114IN
ChangeBank: Presale
1.643 ETH0.0052521
Transfer42737182017-09-14 16:51:292761 days ago1505407889IN
ChangeBank: Presale
2 ETH0.0052521
Transfer42735842017-09-14 16:00:122761 days ago1505404812IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42734822017-09-14 15:18:212761 days ago1505402301IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42734282017-09-14 14:56:332761 days ago1505400993IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42734122017-09-14 14:52:192761 days ago1505400739IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42734122017-09-14 14:52:192761 days ago1505400739IN
ChangeBank: Presale
10 ETH0.0052521
Finish Presale42734092017-09-14 14:50:062761 days ago1505400606IN
ChangeBank: Presale
0 ETH0.0008692527.367
Transfer42734052017-09-14 14:49:142761 days ago1505400554IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733922017-09-14 14:45:562761 days ago1505400356IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733832017-09-14 14:42:062761 days ago1505400126IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733792017-09-14 14:40:432761 days ago1505400043IN
ChangeBank: Presale
10 ETH0.0015805162.71875
Transfer42733702017-09-14 14:36:202761 days ago1505399780IN
ChangeBank: Presale
14.792 ETH0.00052521
Transfer42733702017-09-14 14:36:202761 days ago1505399780IN
ChangeBank: Presale
10 ETH0.0006325
Transfer42733632017-09-14 14:30:412761 days ago1505399441IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733512017-09-14 14:26:492761 days ago1505399209IN
ChangeBank: Presale
14.793 ETH0.00044121
Transfer42733502017-09-14 14:26:362761 days ago1505399196IN
ChangeBank: Presale
10 ETH0.001520
Transfer42733502017-09-14 14:26:362761 days ago1505399196IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733462017-09-14 14:25:072761 days ago1505399107IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733462017-09-14 14:25:072761 days ago1505399107IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733452017-09-14 14:24:082761 days ago1505399048IN
ChangeBank: Presale
1 ETH0.001520
Transfer42733432017-09-14 14:23:252761 days ago1505399005IN
ChangeBank: Presale
10 ETH0.0052521
Transfer42733432017-09-14 14:23:252761 days ago1505399005IN
ChangeBank: Presale
0.04 ETH0.0062525
Transfer42733342017-09-14 14:19:252761 days ago1505398765IN
ChangeBank: Presale
11 ETH0.007530
Transfer42733302017-09-14 14:17:372761 days ago1505398657IN
ChangeBank: Presale
10 ETH0.0052521
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer42732622017-09-14 13:51:192761 days ago1505397079
ChangeBank: Presale
10 ETH
Transfer42732352017-09-14 13:38:482761 days ago1505396328
ChangeBank: Presale
10 ETH
Transfer42731642017-09-14 13:13:472761 days ago1505394827
ChangeBank: Presale
15.99475 ETH
Transfer42731502017-09-14 13:08:212761 days ago1505394501
ChangeBank: Presale
10 ETH
Transfer42731102017-09-14 12:52:572761 days ago1505393577
ChangeBank: Presale
15 ETH
Transfer42731082017-09-14 12:52:162761 days ago1505393536
ChangeBank: Presale
10 ETH
Transfer42730892017-09-14 12:42:162761 days ago1505392936
ChangeBank: Presale
10.98475 ETH
Transfer42730842017-09-14 12:39:462761 days ago1505392786
ChangeBank: Presale
10 ETH
Transfer42730572017-09-14 12:27:492761 days ago1505392069
ChangeBank: Presale
10 ETH
Transfer42730292017-09-14 12:17:222761 days ago1505391442
ChangeBank: Presale
10 ETH
Transfer42730082017-09-14 12:08:072761 days ago1505390887
ChangeBank: Presale
10 ETH
Transfer42729742017-09-14 11:47:172761 days ago1505389637
ChangeBank: Presale
10 ETH
Transfer42729592017-09-14 11:43:332761 days ago1505389413
ChangeBank: Presale
11.3 ETH
Transfer42729512017-09-14 11:39:502761 days ago1505389190
ChangeBank: Presale
10 ETH
Transfer42729452017-09-14 11:38:432761 days ago1505389123
ChangeBank: Presale
10 ETH
Transfer42729022017-09-14 11:21:522761 days ago1505388112
ChangeBank: Presale
10 ETH
Transfer42728982017-09-14 11:19:432761 days ago1505387983
ChangeBank: Presale
30 ETH
Transfer42728962017-09-14 11:18:432761 days ago1505387923
ChangeBank: Presale
10 ETH
Transfer42728942017-09-14 11:17:582761 days ago1505387878
ChangeBank: Presale
10 ETH
Transfer42728802017-09-14 11:11:512761 days ago1505387511
ChangeBank: Presale
25 ETH
Transfer42728802017-09-14 11:11:512761 days ago1505387511
ChangeBank: Presale
11.797 ETH
Transfer42728542017-09-14 10:59:432761 days ago1505386783
ChangeBank: Presale
11 ETH
Transfer42728442017-09-14 10:56:212761 days ago1505386581
ChangeBank: Presale
10.52 ETH
Transfer42728312017-09-14 10:53:522761 days ago1505386432
ChangeBank: Presale
10 ETH
Transfer42728142017-09-14 10:46:302761 days ago1505385990
ChangeBank: Presale
10 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ChangeCoinPresale

Compiler Version
v0.4.16+commit.d7661dd9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2017-09-08
*/

pragma solidity ^0.4.16;

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() {
    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 {
    if (newOwner != address(0)) {
      owner = newOwner;
    }
  }

}

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal constant returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal constant 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 sub(uint256 a, uint256 b) internal constant returns (uint256) {
    assert(b <= a);
    return a - b;
  }

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

/**
 * @title ERC20Basic
 * @dev Simpler version of ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/179
 */
contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) constant returns (uint256);
  function transfer(address to, uint256 value) returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

/**
 * @title Basic token
 * @dev Basic version of StandardToken, with no allowances.
 */
contract BasicToken is ERC20Basic {
  using SafeMath for uint256;

  mapping(address => uint256) balances;

  /**
  * @dev transfer token for a specified address
  * @param _to The address to transfer to.
  * @param _value The amount to be transferred.
  */
  function transfer(address _to, uint256 _value) returns (bool) {
    balances[msg.sender] = balances[msg.sender].sub(_value);
    balances[_to] = balances[_to].add(_value);
    Transfer(msg.sender, _to, _value);
    return true;
  }

  /**
  * @dev Gets the balance of the specified address.
  * @param _owner The address to query the the balance of.
  * @return An uint256 representing the amount owned by the passed address.
  */
  function balanceOf(address _owner) constant returns (uint256 balance) {
    return balances[_owner];
  }

}

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) returns (bool);
  function approve(address spender, uint256 value) returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}


 contract StandardToken is ERC20, BasicToken {

   mapping (address => mapping (address => uint256)) allowed;


   /**
    * @dev Transfer 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 amout of tokens to be transfered
    */
   function transferFrom(address _from, address _to, uint256 _value) returns (bool) {
     var _allowance = allowed[_from][msg.sender];

     // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met
     // require (_value <= _allowance);

     balances[_to] = balances[_to].add(_value);
     balances[_from] = balances[_from].sub(_value);
     allowed[_from][msg.sender] = _allowance.sub(_value);
     Transfer(_from, _to, _value);
     return true;
   }

   /**
    * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender.
    * @param _spender The address which will spend the funds.
    * @param _value The amount of tokens to be spent.
    */
   function approve(address _spender, uint256 _value) returns (bool) {

     // 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
     require((_value == 0) || (allowed[msg.sender][_spender] == 0));

     allowed[msg.sender][_spender] = _value;
     Approval(msg.sender, _spender, _value);
     return true;
   }

   /**
    * @dev Function to check the amount of tokens that an owner allowed to a spender.
    * @param _owner address The address which owns the funds.
    * @param _spender address The address which will spend the funds.
    * @return A uint256 specifing the amount of tokens still avaible for the spender.
    */
   function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
     return allowed[_owner][_spender];
   }

 }

contract MintableToken is StandardToken, Ownable {
  event MintFinished();

  bool public mintingFinished = false;


  modifier canMint() {
    require(!mintingFinished);
    _;
  }

  /**
   * @dev Function to mint tokens
   * @param _to The address that will recieve the minted tokens.
   * @param _amount The amount of tokens to mint.
   * @return A boolean that indicates if the operation was successful.
   */
  function mint(address _to, uint256 _amount) onlyOwner canMint returns (bool) {
    totalSupply = totalSupply.add(_amount);
    balances[_to] = balances[_to].add(_amount);
    Transfer(0X0, _to, _amount);
    return true;
  }

  /**
   * @dev Function to stop minting new tokens.
   * @return True if the operation was successful.
   */
  function finishMinting() onlyOwner returns (bool) {
    mintingFinished = true;
    MintFinished();
    return true;
  }
}

contract ChangeCoin is MintableToken {
  string public name = "Change COIN";
  string public symbol = "CAG";
  uint256 public decimals = 18;

  bool public tradingStarted = false;

  /**
   * @dev modifier that throws if trading has not started yet
   */
  modifier hasStartedTrading() {
    require(tradingStarted);
    _;
  }

  /**
   * @dev Allows the owner to enable the trading. This can not be undone
   */
  function startTrading() onlyOwner {
    tradingStarted = true;
  }


  /**
   * @dev Allows anyone to transfer the Change tokens once trading has started
   * @param _to the recipient address of the tokens.
   * @param _value number of tokens to be transfered.
   */
  function transfer(address _to, uint _value) hasStartedTrading returns (bool){
    return super.transfer(_to, _value);
  }

  /**
   * @dev Allows anyone to transfer the Change tokens once trading has started
   * @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 uint the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint _value) hasStartedTrading returns (bool){
    return super.transferFrom(_from, _to, _value);
  }
}

contract ChangeCoinPresale is Ownable {
  using SafeMath for uint256;

  // The token being sold
  ChangeCoin public token;

  // start and end block where investments are allowed (both inclusive)
  uint256 public startTimestamp;
  uint256 public endTimestamp;

  // address where funds are collected
  address public hardwareWallet;

  // how many token units a buyer gets per wei
  uint256 public rate;

  // amount of raised money in wei
  uint256 public weiRaised;

  // minimum contributio to participate in tokensale
  uint256 public minContribution;

  // maximum amount of ether being raised
  uint256 public hardcap;

  // number of participants in presale
  uint256 public numberOfPurchasers = 0;

  event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount);
  event PreSaleClosed();

  function ChangeCoinPresale() {
    startTimestamp = 1504945800;
    endTimestamp = 1505397600;
    rate = 500;
    hardwareWallet = 0x71B1Ee0848c4F68df05429490fc4237089692e1e;
    token = new ChangeCoin();
    minContribution = 9.9 ether;
    hardcap = 50000 ether;

    require(startTimestamp >= now);
    require(endTimestamp >= startTimestamp);
  }

  /**
   * @dev Calculates the amount of bonus coins the buyer gets
   * @param tokens uint the amount of tokens you get according to current rate
   * @return uint the amount of bonus tokens the buyer gets
   */
  function bonusAmmount(uint256 tokens) internal returns(uint256) {
    // first 500 get extra 30%
    if (numberOfPurchasers < 501) {
      return tokens * 3 / 10;
    } else {
      return tokens /4;
    }
  }

  // check if valid purchase
  modifier validPurchase {
    require(now >= startTimestamp);
    require(now <= endTimestamp);
    require(msg.value >= minContribution);
    require(weiRaised.add(msg.value) <= hardcap);
    _;
  }

  // @return true if crowdsale event has ended
  function hasEnded() public constant returns (bool) {
    bool timeLimitReached = now > endTimestamp;
    bool capReached = weiRaised >= hardcap;
    return timeLimitReached || capReached;
  }

  // low level token purchase function
  function buyTokens(address beneficiary) payable validPurchase {
    require(beneficiary != 0x0);

    uint256 weiAmount = msg.value;

    // calculate token amount to be created
    uint256 tokens = weiAmount.mul(rate);
    tokens = tokens + bonusAmmount(tokens);

    // update state
    weiRaised = weiRaised.add(weiAmount);
    numberOfPurchasers = numberOfPurchasers + 1;

    token.mint(beneficiary, tokens);
    TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
    hardwareWallet.transfer(msg.value);
  }

  // transfer ownership of the token to the owner of the presale contract
  function finishPresale() public onlyOwner {
    require(hasEnded());
    token.transferOwnership(owner);
    PreSaleClosed();
  }

  // fallback function can be used to buy tokens
  function () payable {
    buyTokens(msg.sender);
  }

}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"rate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"weiRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfPurchasers","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishPresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"endTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minContribution","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"hardwareWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"hasEnded","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"purchaser","type":"address"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"TokenPurchase","type":"event"},{"anonymous":false,"inputs":[],"name":"PreSaleClosed","type":"event"}]

60606040526000600955341561001457600080fd5b5b5b60008054600160a060020a03191633600160a060020a03161790555b6359b3a6886002556359ba8b606003556101f460055560048054600160a060020a0319167371b1ee0848c4f68df05429490fc4237089692e1e1790556100766100ed565b604051809103906000f080151561008c57600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055678963dd8c2c5e0000600755690a968163f0a57b400000600855600254429010156100d657600080fd5b60025460035410156100e757600080fd5b5b6100fd565b604051610cd1806107c083390190565b6106b48061010c6000396000f300606060405236156100b45763ffffffff60e060020a6000350416632c4e722e81146100c15780634042b66f146100e6578063580c2ae91461010b5780638da5cb5b14610130578063974654c61461015f578063a85adeab14610174578063aaffadf314610199578063b071cbe6146101be578063e6fd48bc146101e3578063e9edf4cd14610208578063ec8ac4d814610237578063ecb70fb71461024d578063f2fde38b14610274578063fc0c546a14610295575b5b6100be336102c4565b5b005b34156100cc57600080fd5b6100d4610475565b60405190815260200160405180910390f35b34156100f157600080fd5b6100d461047b565b60405190815260200160405180910390f35b341561011657600080fd5b6100d4610481565b60405190815260200160405180910390f35b341561013b57600080fd5b610143610487565b604051600160a060020a03909116815260200160405180910390f35b341561016a57600080fd5b6100be610496565b005b341561017f57600080fd5b6100d461055f565b60405190815260200160405180910390f35b34156101a457600080fd5b6100d4610565565b60405190815260200160405180910390f35b34156101c957600080fd5b6100d461056b565b60405190815260200160405180910390f35b34156101ee57600080fd5b6100d4610571565b60405190815260200160405180910390f35b341561021357600080fd5b610143610577565b604051600160a060020a03909116815260200160405180910390f35b6100be600160a060020a03600435166102c4565b005b341561025857600080fd5b610260610586565b604051901515815260200160405180910390f35b341561027f57600080fd5b6100be600160a060020a03600435166105a9565b005b34156102a057600080fd5b610143610601565b604051600160a060020a03909116815260200160405180910390f35b60008060025442101515156102d857600080fd5b6003544211156102e757600080fd5b6007543410156102f657600080fd5b60085460065461030c903463ffffffff61061016565b111561031757600080fd5b600160a060020a038316151561032c57600080fd5b60055434925061034390839063ffffffff61062a16565b905061034e81610659565b600654910190610364908363ffffffff61061016565b60065560098054600190810190915554600160a060020a03166340c10f19848360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156103d057600080fd5b6102c65a03f115156103e157600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3600454600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561046e57600080fd5b5b5b505050565b60055481565b60065481565b60095481565b600054600160a060020a031681565b60005433600160a060020a039081169116146104b157600080fd5b6104b9610586565b15156104c457600080fd5b600154600054600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561051b57600080fd5b6102c65a03f1151561052c57600080fd5b5050507ffd12c90a5e51aa8a18eeaafb67ad4e7606ec2db88b5b57077a40c5712cbfb2b760405160405180910390a15b5b565b60035481565b60075481565b60085481565b60025481565b600454600160a060020a031681565b60035460085460065460009242119190101581806105a15750805b92505b505090565b60005433600160a060020a039081169116146105c457600080fd5b600160a060020a038116156105fc576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600154600160a060020a031681565b60008282018381101561061f57fe5b8091505b5092915050565b6000828202831580610646575082848281151561064357fe5b04145b151561061f57fe5b8091505b5092915050565b60006101f5600954101561067657600a600383025b049050610682565b60048261066e565b0490505b5b9190505600a165627a7a723058204b6e174d734c2277ca0e8a86fc32dfdc54a5828cad7daceb8452a86c6bfb37820029606060409081526003805460a060020a60ff02191690558051908101604052600b81527f4368616e676520434f494e0000000000000000000000000000000000000000006020820152600490805161005b9291602001906100d5565b5060408051908101604052600381527f4341470000000000000000000000000000000000000000000000000000000000602082015260059080516100a39291602001906100d5565b5060126006556007805460ff191690555b60038054600160a060020a03191633600160a060020a03161790555b610175565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061011657805160ff1916838001178555610143565b82800160010185558215610143579182015b82811115610143578251825591602001919060010190610128565b5b50610150929150610154565b5090565b61017291905b80821115610150576000815560010161015a565b5090565b90565b610b4d806101846000396000f300606060405236156100e35763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146100e857806306fdde031461010f578063095ea7b31461019a57806318160ddd146101d057806323b872dd146101f5578063293230b814610231578063313ce5671461024657806340c10f191461026b5780635b4f472a146102a157806370a08231146102c85780637d64bcb4146102f95780638da5cb5b1461032057806395d89b411461034f578063a9059cbb146103da578063dd62ed3e14610410578063f2fde38b14610447575b600080fd5b34156100f357600080fd5b6100fb610468565b604051901515815260200160405180910390f35b341561011a57600080fd5b610122610489565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561015f5780820151818401525b602001610146565b50505050905090810190601f16801561018c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156101a557600080fd5b6100fb600160a060020a0360043516602435610527565b604051901515815260200160405180910390f35b34156101db57600080fd5b6101e36105ce565b60405190815260200160405180910390f35b341561020057600080fd5b6100fb600160a060020a03600435811690602435166044356105d4565b604051901515815260200160405180910390f35b341561023c57600080fd5b6102446105fe565b005b341561025157600080fd5b6101e361062a565b60405190815260200160405180910390f35b341561027657600080fd5b6100fb600160a060020a0360043516602435610630565b604051901515815260200160405180910390f35b34156102ac57600080fd5b6100fb610712565b604051901515815260200160405180910390f35b34156102d357600080fd5b6101e3600160a060020a036004351661071b565b60405190815260200160405180910390f35b341561030457600080fd5b6100fb61073a565b604051901515815260200160405180910390f35b341561032b57600080fd5b6103336107c1565b604051600160a060020a03909116815260200160405180910390f35b341561035a57600080fd5b6101226107d0565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561015f5780820151818401525b602001610146565b50505050905090810190601f16801561018c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103e557600080fd5b6100fb600160a060020a036004351660243561086e565b604051901515815260200160405180910390f35b341561041b57600080fd5b6101e3600160a060020a0360043581169060243516610896565b60405190815260200160405180910390f35b341561045257600080fd5b610244600160a060020a03600435166108c3565b005b60035474010000000000000000000000000000000000000000900460ff1681565b60048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b505050505081565b60008115806105595750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561056457600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b60005481565b60075460009060ff1615156105e857600080fd5b6105f384848461091b565b90505b5b9392505050565b60035433600160a060020a0390811691161461061957600080fd5b6007805460ff191660011790555b5b565b60065481565b60035460009033600160a060020a0390811691161461064e57600080fd5b60035474010000000000000000000000000000000000000000900460ff161561067657600080fd5b600054610689908363ffffffff610a3016565b6000908155600160a060020a0384168152600160205260409020546106b4908363ffffffff610a3016565b600160a060020a0384166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b5b5b92915050565b60075460ff1681565b600160a060020a0381166000908152600160205260409020545b919050565b60035460009033600160a060020a0390811691161461075857600080fd5b6003805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790557fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0860405160405180910390a15060015b5b90565b600354600160a060020a031681565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561051f5780601f106104f45761010080835404028352916020019161051f565b820191906000526020600020905b81548152906001019060200180831161050257829003601f168201915b505050505081565b60075460009060ff16151561088257600080fd5b61088c8383610a4a565b90505b5b92915050565b600160a060020a038083166000908152600260209081526040808320938516835292905220545b92915050565b60035433600160a060020a039081169116146108de57600080fd5b600160a060020a03811615610916576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152812054909190610962908463ffffffff610a3016565b600160a060020a038086166000908152600160205260408082209390935590871681522054610997908463ffffffff610b0a16565b600160a060020a0386166000908152600160205260409020556109c0818463ffffffff610b0a16565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3600191505b509392505050565b600082820183811015610a3f57fe5b8091505b5092915050565b600160a060020a033316600090815260016020526040812054610a73908363ffffffff610b0a16565b600160a060020a033381166000908152600160205260408082209390935590851681522054610aa8908363ffffffff610a3016565b600160a060020a0380851660008181526001602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060015b92915050565b600082821115610b1657fe5b508082035b929150505600a165627a7a72305820023769bef759d94a6c5aae171107c9f5c2a6263cf18d83bbdbbade8901dc8e630029

Deployed Bytecode

0x606060405236156100b45763ffffffff60e060020a6000350416632c4e722e81146100c15780634042b66f146100e6578063580c2ae91461010b5780638da5cb5b14610130578063974654c61461015f578063a85adeab14610174578063aaffadf314610199578063b071cbe6146101be578063e6fd48bc146101e3578063e9edf4cd14610208578063ec8ac4d814610237578063ecb70fb71461024d578063f2fde38b14610274578063fc0c546a14610295575b5b6100be336102c4565b5b005b34156100cc57600080fd5b6100d4610475565b60405190815260200160405180910390f35b34156100f157600080fd5b6100d461047b565b60405190815260200160405180910390f35b341561011657600080fd5b6100d4610481565b60405190815260200160405180910390f35b341561013b57600080fd5b610143610487565b604051600160a060020a03909116815260200160405180910390f35b341561016a57600080fd5b6100be610496565b005b341561017f57600080fd5b6100d461055f565b60405190815260200160405180910390f35b34156101a457600080fd5b6100d4610565565b60405190815260200160405180910390f35b34156101c957600080fd5b6100d461056b565b60405190815260200160405180910390f35b34156101ee57600080fd5b6100d4610571565b60405190815260200160405180910390f35b341561021357600080fd5b610143610577565b604051600160a060020a03909116815260200160405180910390f35b6100be600160a060020a03600435166102c4565b005b341561025857600080fd5b610260610586565b604051901515815260200160405180910390f35b341561027f57600080fd5b6100be600160a060020a03600435166105a9565b005b34156102a057600080fd5b610143610601565b604051600160a060020a03909116815260200160405180910390f35b60008060025442101515156102d857600080fd5b6003544211156102e757600080fd5b6007543410156102f657600080fd5b60085460065461030c903463ffffffff61061016565b111561031757600080fd5b600160a060020a038316151561032c57600080fd5b60055434925061034390839063ffffffff61062a16565b905061034e81610659565b600654910190610364908363ffffffff61061016565b60065560098054600190810190915554600160a060020a03166340c10f19848360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156103d057600080fd5b6102c65a03f115156103e157600080fd5b505050604051805190505082600160a060020a031633600160a060020a03167f623b3804fa71d67900d064613da8f94b9617215ee90799290593e1745087ad18848460405191825260208201526040908101905180910390a3600454600160a060020a03163480156108fc0290604051600060405180830381858888f19350505050151561046e57600080fd5b5b5b505050565b60055481565b60065481565b60095481565b600054600160a060020a031681565b60005433600160a060020a039081169116146104b157600080fd5b6104b9610586565b15156104c457600080fd5b600154600054600160a060020a039182169163f2fde38b911660405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561051b57600080fd5b6102c65a03f1151561052c57600080fd5b5050507ffd12c90a5e51aa8a18eeaafb67ad4e7606ec2db88b5b57077a40c5712cbfb2b760405160405180910390a15b5b565b60035481565b60075481565b60085481565b60025481565b600454600160a060020a031681565b60035460085460065460009242119190101581806105a15750805b92505b505090565b60005433600160a060020a039081169116146105c457600080fd5b600160a060020a038116156105fc576000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b5b5b50565b600154600160a060020a031681565b60008282018381101561061f57fe5b8091505b5092915050565b6000828202831580610646575082848281151561064357fe5b04145b151561061f57fe5b8091505b5092915050565b60006101f5600954101561067657600a600383025b049050610682565b60048261066e565b0490505b5b9190505600a165627a7a723058204b6e174d734c2277ca0e8a86fc32dfdc54a5828cad7daceb8452a86c6bfb37820029

Swarm Source

bzzr://023769bef759d94a6c5aae171107c9f5c2a6263cf18d83bbdbbade8901dc8e63

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  ]
[ 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.