Sponsored:   [Largest VC Funded] TEMCO, millions sold out in seconds. Join TEMCO's last presale at CoinBene!
Contract Overview
Balance: 0.5616 Ether
Ether Value: $50.77 (@ $90.41/ETH)
Transactions: 10 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0x1ca0ceb275e95196f57b32608f082c9c3c669f10at txn 0x962d3240828101787fc6bdae304437ff23706760636cda472b064bf3688d90e3
Token Balance:
 Latest 10 txns

TxHash Age From To Value [TxFee]
0xd127249c48ee0f661f4236efaec6fdda19c908fa78701f9240230fc9eb7a2695198 days 4 hrs ago0xe00018b6778bf73b668f8bc5f6f4e5cd06e87986  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.015 Ether0.0051758
0x567dcd05156cff1ec3095f6c12025730b61c339a03a6d84c848a0d974f7a2228260 days 14 hrs ago0x16490bbfd4362ece6b061bfc095ca7b64db5eb9f  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.0008 Ether0.000310548
0xbc5fb59be3e92968d230bfa150d0a33ef58598665a3ddbab8f247b893a30e568296 days 2 hrs ago0x102f4ffd0861dc31aabbf53841c89868e2a7b79b  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.023 Ether0.0051758
0xe4ddecd98f7e51c61623e4c909ca4a4cf100f7d0fb513d6f8dc43ad6f802cecf309 days 13 hrs ago0x4f83f4b1de3950e19d0ab3f0dc18cb64f14a7d00  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.2 Ether0.0051758
0x338923566747f499d407f816a1bfc391988431997ddf15a96599f740f1c64011315 days 2 hrs ago0x096d346482c4347255bee9b9d29f3467b820732c  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.3 Ether0.002277352
0x7dbeb1d04ac9f63f964ba3fe58476142d78c434a7c57aa07d51b81b96db28e23323 days 9 mins ago0x80739c7da7012f6d8ee0acc7e87fa5363936447c  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.02 Ether0.001948484
0x22f85f84bf432bd4d4bf9c5b7b0a026dab116be67092d4f28bb753771c5456dc323 days 11 mins ago0x80739c7da7012f6d8ee0acc7e87fa5363936447c  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.002 Ether0.001948484
0x5683d9bc3b4cb21823d62a4f3b723bdb9fa591263bddea25142182e4d06361a2323 days 4 hrs ago0x87bf71ab00680994c3d7b05424b665c7c92fe3c6  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.02 Ether0.00243
0xf5b28c83e8159acba700d8d2c2631748e2651b2a56c640d567fe0c2cffaeed57323 days 10 hrs ago0x80739c7da7012f6d8ee0acc7e87fa5363936447c  IN   0xe59015e2d097b545f0b1701c64310f98e36004950.0008 Ether0.002488836
0x962d3240828101787fc6bdae304437ff23706760636cda472b064bf3688d90e3323 days 10 hrs ago0x1ca0ceb275e95196f57b32608f082c9c3c669f10  IN    Contract Creation0 Ether0.043802598
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 1 Internal Transaction

ParentTxHash Block Age From To Value
0x962d3240828101787fc6bdae304437ff23706760636cda472b064bf3688d90e34962890323 days 10 hrs ago0xe59015e2d097b545f0b1701c64310f98e3600495  Contract Creation0 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: TokenSale
Compiler Text: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.18;

 
 /*
 * NYX Token sale
 *
 * Supports ERC20, ERC223 stadards
 *
 * The NYX token is mintable during Token Sale. On Token Sale finalization it
 * will be minted up to the cap and minting will be finished forever
 */


pragma solidity ^0.4.18;


/*************************************************************************
 * import "./include/MintableToken.sol" : start
 *************************************************************************/

/*************************************************************************
 * import "zeppelin/contracts/token/StandardToken.sol" : start
 *************************************************************************/


/*************************************************************************
 * import "./BasicToken.sol" : start
 *************************************************************************/


/*************************************************************************
 * import "./ERC20Basic.sol" : start
 *************************************************************************/


/**
 * @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);
}
/*************************************************************************
 * import "./ERC20Basic.sol" : end
 *************************************************************************/
/*************************************************************************
 * import "../math/SafeMath.sol" : start
 *************************************************************************/


/**
 * @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;
  }
}
/*************************************************************************
 * import "../math/SafeMath.sol" : end
 *************************************************************************/


/**
 * @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];
  }

}
/*************************************************************************
 * import "./BasicToken.sol" : end
 *************************************************************************/
/*************************************************************************
 * import "./ERC20.sol" : start
 *************************************************************************/





/**
 * @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);
}
/*************************************************************************
 * import "./ERC20.sol" : end
 *************************************************************************/


/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * @dev https://github.com/ethereum/EIPs/issues/20
 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
 */
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];
  }

}
/*************************************************************************
 * import "zeppelin/contracts/token/StandardToken.sol" : end
 *************************************************************************/
/*************************************************************************
 * import "zeppelin/contracts/ownership/Ownable.sol" : start
 *************************************************************************/


/**
 * @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;
    }
  }

}
/*************************************************************************
 * import "zeppelin/contracts/ownership/Ownable.sol" : end
 *************************************************************************/

/**
 * Mintable token
 */

contract MintableToken is StandardToken, Ownable {
    uint public totalSupply = 0;
    address minter;

    modifier onlyMinter(){
        require(minter == msg.sender);
        _;
    }

    function setMinter(address _minter) onlyOwner {
        minter = _minter;
    }

    function mint(address _to, uint _amount) onlyMinter {
        totalSupply = totalSupply.add(_amount);
        balances[_to] = balances[_to].add(_amount);
        Transfer(address(0x0), _to, _amount);
    }
}
/*************************************************************************
 * import "./include/MintableToken.sol" : end
 *************************************************************************/
/*************************************************************************
 * import "./include/ERC23PayableToken.sol" : start
 *************************************************************************/



/*************************************************************************
 * import "./ERC23.sol" : start
 *************************************************************************/




/*
 * ERC23
 * ERC23 interface
 * see https://github.com/ethereum/EIPs/issues/223
 */
contract ERC23 is ERC20Basic {
    function transfer(address to, uint value, bytes data);

    event TransferData(address indexed from, address indexed to, uint value, bytes data);
}
/*************************************************************************
 * import "./ERC23.sol" : end
 *************************************************************************/
/*************************************************************************
 * import "./ERC23PayableReceiver.sol" : start
 *************************************************************************/

/*
* Contract that is working with ERC223 tokens
*/

contract ERC23PayableReceiver {
    function tokenFallback(address _from, uint _value, bytes _data) payable;
}

/*************************************************************************
 * import "./ERC23PayableReceiver.sol" : end
 *************************************************************************/

/**  https://github.com/Dexaran/ERC23-tokens/blob/master/token/ERC223/ERC223BasicToken.sol
 *
 */
contract ERC23PayableToken is BasicToken, ERC23{
    // Function that is called when a user or another contract wants to transfer funds .
    function transfer(address to, uint value, bytes data){
        transferAndPay(to, value, data);
    }

    // Standard function transfer similar to ERC20 transfer with no _data .
    // Added due to backwards compatibility reasons .
    function transfer(address to, uint value) returns (bool){
        bytes memory empty;
        transfer(to, value, empty);
        return true;
    }

    function transferAndPay(address to, uint value, bytes data) payable {

        uint codeLength;

        assembly {
            // Retrieve the size of the code on target address, this needs assembly .
            codeLength := extcodesize(to)
        }

        balances[msg.sender] = balances[msg.sender].sub(value);
        balances[to] = balances[to].add(value);

        if(codeLength>0) {
            ERC23PayableReceiver receiver = ERC23PayableReceiver(to);
            receiver.tokenFallback.value(msg.value)(msg.sender, value, data);
        }else if(msg.value > 0){
            to.transfer(msg.value);
        }

        Transfer(msg.sender, to, value);
        if(data.length > 0)
            TransferData(msg.sender, to, value, data);
    }
}
/*************************************************************************
 * import "./include/ERC23PayableToken.sol" : end
 *************************************************************************/


contract NYXToken is MintableToken, ERC23PayableToken {
    string public constant name = "NYX Token";
    string public constant symbol = "NYX";

    bool public transferEnabled = true;

    //The cap is 15 mln NYX
    uint private constant CAP = 15*(10**6);

    function mint(address _to, uint _amount){
        require(totalSupply.add(_amount) <= CAP);
        super.mint(_to, _amount);
    }

    function NYXToken(address team) {
        //Transfer ownership on the token to team on creation
        transferOwnership(team);
        // minter is the TokenSale contract
        minter = msg.sender; 
        /// Preserve 3 000 000 tokens for the team
        mint(team, 3000000);
    }

    /**
    * Overriding all transfers to check if transfers are enabled
    */
    function transferAndPay(address to, uint value, bytes data) payable{
        require(transferEnabled);
        super.transferAndPay(to, value, data);
    }

    function enableTransfer(bool enabled) onlyOwner{
        transferEnabled = enabled;
    }

}

contract TokenSale is Ownable {
    using SafeMath for uint;

    // Constants
    // =========
    uint private constant millions = 1e6;

    uint private constant CAP = 15*millions;
    uint private constant SALE_CAP = 12*millions;
    uint private constant SOFT_CAP = 1400000;
    
    // Allocated for the team upon contract creation
    // =========
    uint private constant TEAM_CAP = 3000000;

    uint public price = 0.001 ether;
    
    // Hold investor's ether amounts to refund
    address[] contributors;
    mapping(address => uint) contributions;

    // Events
    // ======

    event AltBuy(address holder, uint tokens, string txHash);
    event Buy(address holder, uint tokens);
    event RunSale();
    event PauseSale();
    event FinishSale();
    event PriceSet(uint weiPerNYX);

    // State variables
    // ===============
    bool public presale = true;
    NYXToken public token;
    address authority; //An account to control the contract on behalf of the owner
    address robot; //An account to purchase tokens for altcoins
    bool public isOpen = true;

    // Constructor
    // ===========

    function TokenSale(){
        token = new NYXToken(msg.sender);

        authority = msg.sender;
        robot = msg.sender;
        transferOwnership(msg.sender);
    }

    // Public functions
    // ================
    function togglePresale(bool activate) onlyAuthority {
        presale = activate;
    }


    function getCurrentPrice() constant returns(uint) {
        if(presale) {
            return price - (price*20/100);
        }
        return price;
    }
    /**
    * Computes number of tokens with bonus for the specified ether. Correctly
    * adds bonuses if the sum is large enough to belong to several bonus intervals
    */
    function getTokensAmount(uint etherVal) constant returns (uint) {
        uint tokens = 0;
        tokens += etherVal/getCurrentPrice();
        return tokens;
    }

    function buy(address to) onlyOpen payable{
        uint amount = msg.value;
        uint tokens = getTokensAmountUnderCap(amount);
        
        // owner.transfer(amount);

		token.mint(to, tokens);
		
		uint alreadyContributed = contributions[to];
		if(alreadyContributed == 0) // new contributor
		    contributors.push(to);
		    
		contributions[to] = contributions[to].add(msg.value);

        Buy(to, tokens);
    }

    function () payable{
        buy(msg.sender);
    }

    // Modifiers
    // =================

    modifier onlyAuthority() {
        require(msg.sender == authority || msg.sender == owner);
        _;
    }

    modifier onlyRobot() {
        require(msg.sender == robot);
        _;
    }

    modifier onlyOpen() {
        require(isOpen);
        _;
    }

    // Priveleged functions
    // ====================

    /**
    * Used to buy tokens for altcoins.
    * Robot may call it before TokenSale officially starts to migrate early investors
    */
    function buyAlt(address to, uint etherAmount, string _txHash) onlyRobot {
        uint tokens = getTokensAmountUnderCap(etherAmount);
        token.mint(to, tokens);
        AltBuy(to, tokens, _txHash);
    }

    function setAuthority(address _authority) onlyOwner {
        authority = _authority;
    }

    function setRobot(address _robot) onlyAuthority {
        robot = _robot;
    }

    function setPrice(uint etherPerNYX) onlyAuthority {
        price = etherPerNYX;
        PriceSet(price);
    }

    // SALE state management: start / pause / finalize
    // --------------------------------------------
    function open(bool opn) onlyAuthority {
        isOpen = opn;
        opn ? RunSale() : PauseSale();
    }
    
    function finalizePresale() onlyAuthority {
        // Check for SOFT_CAP
        require(token.totalSupply() > SOFT_CAP + TEAM_CAP);
        // Transfer collected softcap to the team
        owner.transfer(this.balance);
    }

    function finalize() onlyAuthority {
        // Check for SOFT_CAP
        if(token.totalSupply() < SOFT_CAP + TEAM_CAP) { // Soft cap is not reached, return all contributions to investors
            uint x = 0;
            while(x < contributors.length) {
                uint amountToReturn = contributions[contributors[x]];
                contributors[x].transfer(amountToReturn);
                x++;
            }
        }
        
        uint diff = CAP.sub(token.totalSupply());
        if(diff > 0) //The unsold capacity moves to team
            token.mint(owner, diff);
        selfdestruct(owner);
        FinishSale();
    }

    // Private functions
    // =========================

    /**
    * Gets tokens for specified ether provided that they are still under the cap
    */
    function getTokensAmountUnderCap(uint etherAmount) private constant returns (uint){
        uint tokens = getTokensAmount(etherAmount);
        require(tokens > 0);
        require(tokens.add(token.totalSupply()) <= SALE_CAP);
        return tokens;
    }

}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"etherAmount","type":"uint256"},{"name":"_txHash","type":"string"}],"name":"buyAlt","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_robot","type":"address"}],"name":"setRobot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOpen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"activate","type":"bool"}],"name":"togglePresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_authority","type":"address"}],"name":"setAuthority","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"etherVal","type":"uint256"}],"name":"getTokensAmount","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":"etherPerNYX","type":"uint256"}],"name":"setPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalizePresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"opn","type":"bool"}],"name":"open","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","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"},{"constant":true,"inputs":[],"name":"presale","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"holder","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"txHash","type":"string"}],"name":"AltBuy","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"holder","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Buy","type":"event"},{"anonymous":false,"inputs":[],"name":"RunSale","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseSale","type":"event"},{"anonymous":false,"inputs":[],"name":"FinishSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"weiPerNYX","type":"uint256"}],"name":"PriceSet","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405266038d7ea4c6800060019081556004805460ff191690911790556006805460a060020a60ff02191674010000000000000000000000000000000000000000179055341561005057600080fd5b60008054600160a060020a03191633600160a060020a03811691909117909155610078610149565b600160a060020a039091168152602001604051809103906000f080151561009e57600080fd5b6004805461010060a860020a031916610100600160a060020a039384160217905560058054600160a060020a0319908116339384169081179092556006805490911690911790556100fb906401000000006101008102610bd31704565b610159565b60005433600160a060020a0390811691161461011b57600080fd5b600160a060020a038116156101465760008054600160a060020a031916600160a060020a0383161790555b50565b604051610e4b80610ef383390190565b610d8b806101686000396000f3006060604052600436106100d75763ffffffff60e060020a60003504166337c3d50d81146100e25780633f7eabc91461014757806347535d7b146101665780634bb278f31461018d5780636b2ce7f1146101a05780637a9e5e4b146101b85780638526492f146101d75780638da5cb5b146101ff57806391b7f5ed1461022e578063a035b1fe14610244578063a0a6e94014610257578063a85717d31461026a578063eb91d37e14610282578063f088d54714610295578063f2fde38b146102a9578063fc0c546a146102c8578063fdea8e0b146102db575b6100e0336102ee565b005b34156100ed57600080fd5b6100e060048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061048495505050505050565b341561015257600080fd5b6100e0600160a060020a03600435166105d5565b341561017157600080fd5b61017961063a565b604051901515815260200160405180910390f35b341561019857600080fd5b6100e061065b565b34156101ab57600080fd5b6100e060043515156108b6565b34156101c357600080fd5b6100e0600160a060020a03600435166108ff565b34156101e257600080fd5b6101ed600435610949565b60405190815260200160405180910390f35b341561020a57600080fd5b610212610966565b604051600160a060020a03909116815260200160405180910390f35b341561023957600080fd5b6100e0600435610975565b341561024f57600080fd5b6101ed6109e6565b341561026257600080fd5b6100e06109ec565b341561027557600080fd5b6100e06004351515610ad6565b341561028d57600080fd5b6101ed610bab565b6100e0600160a060020a03600435166102ee565b34156102b457600080fd5b6100e0600160a060020a0360043516610bd3565b34156102d357600080fd5b610212610c2a565b34156102e657600080fd5b610179610c3e565b6000806000600660149054906101000a900460ff16151561030e57600080fd5b34925061031a83610c47565b6004549092506101009004600160a060020a03166340c10f19858460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561037857600080fd5b6102c65a03f1151561038957600080fd5b50505050600160a060020a0383166000908152600360205260409020548015156103f25760028054600181016103bf8382610d18565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0386161790555b600160a060020a03841660009081526003602052604090205461041b903463ffffffff610cf016565b600160a060020a03851660009081526003602052604090819020919091557fe3d4187f6ca4248660cc0ac8b8056515bac4a8132be2eca31d6d0cc170722a7e908590849051600160a060020a03909216825260208201526040908101905180910390a150505050565b60065460009033600160a060020a039081169116146104a257600080fd5b6104ab83610c47565b6004549091506101009004600160a060020a03166340c10f19858360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561050957600080fd5b6102c65a03f1151561051a57600080fd5b5050507f279586f3c9fa12e50cdeea0d69152248e3b471b4a7d7561e476cd1d3155d5aeb848284604051600160a060020a03841681526020810183905260606040820181815290820183818151815260200191508051906020019080838360005b8381101561059357808201518382015260200161057b565b50505050905090810190601f1680156105c05780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a150505050565b60055433600160a060020a0390811691161480610600575060005433600160a060020a039081169116145b151561060b57600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60065474010000000000000000000000000000000000000000900460ff1681565b6005546000908190819033600160a060020a039081169116148061068d575060005433600160a060020a039081169116145b151561069857600080fd5b60045462432380906101009004600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156106ea57600080fd5b6102c65a03f115156106fb57600080fd5b5050506040518051905010156107ab57600092505b6002548310156107ab576003600060028581548110151561072d57fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460028054919350908490811061076457fe5b600091825260209091200154600160a060020a031682156108fc0283604051600060405180830381858888f1935050505015156107a057600080fd5b600190920191610710565b600454610826906101009004600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156107fc57600080fd5b6102c65a03f1151561080d57600080fd5b505050604051805162e4e1c0915063ffffffff610d0616565b905060008111156108a857600454600054600160a060020a036101009092048216916340c10f1991168360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561089357600080fd5b6102c65a03f115156108a457600080fd5b5050505b600054600160a060020a0316ff5b60055433600160a060020a03908116911614806108e1575060005433600160a060020a039081169116145b15156108ec57600080fd5b6004805460ff1916911515919091179055565b60005433600160a060020a0390811691161461091a57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080610954610bab565b8381151561095e57fe5b040192915050565b600054600160a060020a031681565b60055433600160a060020a03908116911614806109a0575060005433600160a060020a039081169116145b15156109ab57600080fd5b60018190557f6bfd5e75539a9d2626425a2e2922675256b219fe546d63dad56011759b9a2f668160405190815260200160405180910390a150565b60015481565b60055433600160a060020a0390811691161480610a17575060005433600160a060020a039081169116145b1515610a2257600080fd5b60045462432380906101009004600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610a7457600080fd5b6102c65a03f11515610a8557600080fd5b50505060405180519050111515610a9b57600080fd5b600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610ad457600080fd5b565b60055433600160a060020a0390811691161480610b01575060005433600160a060020a039081169116145b1515610b0c57600080fd5b6006805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000008315150217905580610b7b577f1aadb89fe0887ac16ce54a382201c6cd7db3a9930eae4ff5035a3d9e0d59eb6960405160405180910390a1610ba8565b7f895b4da752cea2df8126243a35f1d868e3bbceed4b5e6e357df62b1f4d7171be60405160405180910390a15b50565b60045460009060ff1615610bcb5750600154606460148202049003610bd0565b506001545b90565b60005433600160a060020a03908116911614610bee57600080fd5b600160a060020a03811615610ba85760008054600160a060020a03831673ffffffffffffffffffffffffffffffffffffffff1990911617905550565b6004546101009004600160a060020a031681565b60045460ff1681565b600080610c5383610949565b905060008111610c6257600080fd5b60045462b71b0090610cdf906101009004600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610cb857600080fd5b6102c65a03f11515610cc957600080fd5b505050604051805184915063ffffffff610cf016565b1115610cea57600080fd5b92915050565b600082820183811015610cff57fe5b9392505050565b600082821115610d1257fe5b50900390565b815481835581811511610d3c57600083815260209020610d3c918101908301610d41565b505050565b610bd091905b80821115610d5b5760008155600101610d47565b50905600a165627a7a723058208a7dbe5e39ac7a99a6e4d21b6ab8def570d71b20f863c660ad53092bc46a1b280029606060405260006004556005805460a060020a60ff0219167401000000000000000000000000000000000000000017905534156200003c57600080fd5b60405160208062000e4b8339810160405280805160038054600160a060020a03191633600160a060020a0316179055915062000088905081640100000000620000c781026200077d1704565b60058054600160a060020a03191633600160a060020a0316179055620000c081622dc6c0640100000000620001128102620005e11704565b506200023a565b60035433600160a060020a03908116911614620000e357600080fd5b600160a060020a038116156200010f5760038054600160a060020a031916600160a060020a0383161790555b50565b60045462e4e1c0906200013490836401000000006200081d6200015e82021704565b11156200014057600080fd5b6200015a8282640100000000620008456200017582021704565b5050565b6000828201838110156200016e57fe5b9392505050565b60055433600160a060020a039081169116146200019157600080fd5b600454620001ae90826401000000006200081d6200015e82021704565b600455600160a060020a038216600090815260016020526040902054620001e490826401000000006200081d6200015e82021704565b600160a060020a0383166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b610c01806200024a6000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100ea578063095ea7b31461017457806318160ddd146101aa57806323b872dd146101cf57806340c10f19146101f75780634cd412d51461021b57806370a082311461022e5780638da5cb5b1461024d57806395d89b411461027c578063a9059cbb1461028f578063be45fd62146102b1578063d8615e5b14610316578063dd62ed3e14610370578063ef7ac0e514610395578063f2fde38b146103ad578063fca3b5aa146103cc575b600080fd5b34156100f557600080fd5b6100fd6103eb565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015610139578082015183820152602001610121565b50505050905090810190601f1680156101665780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561017f57600080fd5b610196600160a060020a0360043516602435610422565b604051901515815260200160405180910390f35b34156101b557600080fd5b6101bd6104c8565b60405190815260200160405180910390f35b34156101da57600080fd5b610196600160a060020a03600435811690602435166044356104ce565b341561020257600080fd5b610219600160a060020a03600435166024356105e1565b005b341561022657600080fd5b610196610612565b341561023957600080fd5b6101bd600160a060020a0360043516610633565b341561025857600080fd5b61026061064e565b604051600160a060020a03909116815260200160405180910390f35b341561028757600080fd5b6100fd61065d565b341561029a57600080fd5b610196600160a060020a0360043516602435610694565b34156102bc57600080fd5b61021960048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506106b395505050505050565b61021960048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506106c395505050505050565b341561037b57600080fd5b6101bd600160a060020a03600435811690602435166106f7565b34156103a057600080fd5b6102196004351515610722565b34156103b857600080fd5b610219600160a060020a036004351661077d565b34156103d757600080fd5b610219600160a060020a03600435166107d3565b60408051908101604052600981527f4e595820546f6b656e0000000000000000000000000000000000000000000000602082015281565b60008115806104545750600160a060020a03338116600090815260026020908152604080832093871683529290522054155b151561045f57600080fd5b600160a060020a03338116600081815260026020908152604080832094881680845294909152908190208590557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b60045481565b600160a060020a038084166000908152600260209081526040808320338516845282528083205493861683526001909152812054909190610515908463ffffffff61081d16565b600160a060020a03808616600090815260016020526040808220939093559087168152205461054a908463ffffffff61083316565b600160a060020a038616600090815260016020526040902055610573818463ffffffff61083316565b600160a060020a03808716600081815260026020908152604080832033861684529091529081902093909355908616917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9086905190815260200160405180910390a3506001949350505050565b60045462e4e1c0906105f9908363ffffffff61081d16565b111561060457600080fd5b61060e8282610845565b5050565b60055474010000000000000000000000000000000000000000900460ff1681565b600160a060020a031660009081526001602052604090205490565b600354600160a060020a031681565b60408051908101604052600381527f4e59580000000000000000000000000000000000000000000000000000000000602082015281565b600061069e610bc3565b6106a98484836106b3565b5060019392505050565b6106be8383836106c3565b505050565b60055474010000000000000000000000000000000000000000900460ff1615156106ec57600080fd5b6106be8383836108f5565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60035433600160a060020a0390811691161461073d57600080fd5b60058054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b60035433600160a060020a0390811691161461079857600080fd5b600160a060020a038116156107d0576003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790555b50565b60035433600160a060020a039081169116146107ee57600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282018381101561082c57fe5b9392505050565b60008282111561083f57fe5b50900390565b60055433600160a060020a0390811691161461086057600080fd5b600454610873908263ffffffff61081d16565b600455600160a060020a03821660009081526001602052604090205461089f908263ffffffff61081d16565b600160a060020a0383166000818152600160205260408082209390935590917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a35050565b600160a060020a033316600090815260016020526040812054843b9190610922908563ffffffff61083316565b600160a060020a033381166000908152600160205260408082209390935590871681522054610957908563ffffffff61081d16565b600160a060020a038616600090815260016020526040812091909155821115610a7b575083600160a060020a03811663c0ee0b8a343387876040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a155780820151838201526020016109fd565b50505050905090810190601f168015610a425780820380516001836020036101000a031916815260200191505b509450505050506000604051808303818588803b1515610a6157600080fd5b6125ee5a03f11515610a7257600080fd5b50505050610ab6565b6000341115610ab657600160a060020a0385163480156108fc0290604051600060405180830381858888f193505050501515610ab657600080fd5b84600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405190815260200160405180910390a3600083511115610bbc5784600160a060020a031633600160a060020a03167f9b6aa1faccbd47218eb2870ae6411b374a3cf25c4285a37ef90bcb3c1fdde9ac868660405182815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610b80578082015183820152602001610b68565b50505050905090810190601f168015610bad5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35b5050505050565b602060405190810160405260008152905600a165627a7a7230582082396bf7baef16349ca73a1e6cc459e3cc987ceabe541134d442b5b97a795c4d0029

   Swarm Source:
bzzr://82396bf7baef16349ca73a1e6cc459e3cc987ceabe541134d442b5b97a795c4d

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.