ETH Price: $3,594.74 (+3.69%)
 
Transaction Hash
Method
Block
From
To
Transfer215083392024-12-29 13:10:595 days ago1735477859IN
Nimiq Token
0 ETH0.000147136
Approve214055962024-12-15 4:40:5919 days ago1734237659IN
Nimiq Token
0 ETH0.000215588.24476382
Approve214055942024-12-15 4:40:3519 days ago1734237635IN
Nimiq Token
0 ETH0.000225018.60556754
Approve201824632024-06-27 10:35:23190 days ago1719484523IN
Nimiq Token
0 ETH0.000073442.80765432
Approve198722192024-05-15 1:53:47234 days ago1715738027IN
Nimiq Token
0 ETH0.000104093.98840687
Approve195942722024-04-06 4:22:23272 days ago1712377343IN
Nimiq Token
0 ETH0.0002615210.00175037
Approve169033272023-03-25 8:35:59650 days ago1679733359IN
Nimiq Token
0 ETH0.0004252116.26196258
Transfer137668072021-12-08 20:08:171122 days ago1638994097IN
Nimiq Token
0 ETH0.0015996165.2
Transfer132969692021-09-25 19:54:151196 days ago1632599655IN
Nimiq Token
0 ETH0.0012215349.83806727
Transfer122420192021-04-15 2:43:341360 days ago1618454614IN
Nimiq Token
0 ETH0.0021828694
Transfer122417502021-04-15 1:44:021360 days ago1618451042IN
Nimiq Token
0 ETH0.0019506484
Transfer115438292020-12-28 17:41:091467 days ago1609177269IN
Nimiq Token
0 ETH0.002321100
Transfer115437672020-12-28 17:27:331467 days ago1609176453IN
Nimiq Token
0 ETH0.0034815150
Transfer114280192020-12-10 23:00:391485 days ago1607641239IN
Nimiq Token
0 ETH0.0013193556.78571428
Approve112692332020-11-16 13:50:041509 days ago1605534604IN
Nimiq Token
0 ETH0.0009156737
Transfer107493332020-08-28 13:05:081589 days ago1598619908IN
Nimiq Token
0 ETH0.0042671.00000112
Transfer105815212020-08-02 16:39:501615 days ago1596386390IN
Nimiq Token
0 ETH0.00329752142
Transfer101213032020-05-23 9:29:141686 days ago1590226154IN
Nimiq Token
0 ETH0.0002786612
Transfer101212662020-05-23 9:19:481686 days ago1590225588IN
Nimiq Token
0 ETH0.0002786612
Approve100050542020-05-05 8:08:471704 days ago1588666127IN
Nimiq Token
0 ETH0.000378678.6
Transfer From100044512020-05-05 5:53:261704 days ago1588658006IN
Nimiq Token
0 ETH0.0002310
Transfer100043542020-05-05 5:32:371704 days ago1588656757IN
Nimiq Token
0 ETH0.0002325810
Approve99427722020-04-25 16:42:321714 days ago1587832952IN
Nimiq Token
0 ETH0.000176124
Transfer97089532020-03-20 13:58:551750 days ago1584712735IN
Nimiq Token
0 ETH0.0002786612
Name95066602020-02-18 10:50:141781 days ago1582023014IN
Nimiq Token
0 ETH0.000172928
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
39993832017-07-09 18:07:322735 days ago1499623652
Nimiq Token
59,999 ETH
39450352017-06-28 23:40:522746 days ago1498693252
Nimiq Token
1 ETH
39430822017-06-28 14:15:182746 days ago1498659318
Nimiq Token
3 ETH
39430742017-06-28 14:13:582746 days ago1498659238
Nimiq Token
3 ETH
39427762017-06-28 12:45:072746 days ago1498653907
Nimiq Token
10 ETH
39427332017-06-28 12:35:022746 days ago1498653302
Nimiq Token
1 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NEToken

Compiler Version
v0.4.11+commit.68ef5810

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.11;

/* taking ideas from FirstBlood token */
contract SafeMath {

    function safeAdd(uint256 x, uint256 y) internal returns(uint256) {
        uint256 z = x + y;
        assert((z >= x) && (z >= y));
        return z;
    }

    function safeSubtract(uint256 x, uint256 y) internal returns(uint256) {
        assert(x >= y);
        uint256 z = x - y;
        return z;
    }

    function safeMult(uint256 x, uint256 y) internal returns(uint256) {
        uint256 z = x * y;
        assert((x == 0)||(z/x == y));
        return z;
    }
}

contract Token {
    uint256 public totalSupply;

    function balanceOf(address _owner) constant returns (uint256 balance);
    function transfer(address _to, uint256 _value) returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
    function approve(address _spender, uint256 _value) returns (bool success);
    function allowance(address _owner, address _spender) constant returns (uint256 remaining);

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

/*  ERC 20 token */
contract StandardToken is Token, SafeMath {

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

    modifier onlyPayloadSize(uint numwords) {
        assert(msg.data.length == numwords * 32 + 4);
        _;
    }

    function transfer(address _to, uint256 _value)
    returns (bool success)
    {
        if (balances[msg.sender] >= _value && _value > 0 && balances[_to] + _value > balances[_to]) {
            balances[msg.sender] = safeSubtract(balances[msg.sender], _value);
            balances[_to] = safeAdd(balances[_to], _value);
            Transfer(msg.sender, _to, _value);
            return true;
        } else {
            return false;
        }
    }

    function transferFrom(address _from, address _to, uint256 _value)
    returns (bool success)
    {
        if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0 && balances[_to] + _value > balances[_to]) {
            balances[_to] = safeAdd(balances[_to], _value);
            balances[_from] = safeSubtract(balances[_from], _value);
            allowed[_from][msg.sender] = safeSubtract(allowed[_from][msg.sender], _value);
            Transfer(_from, _to, _value);
            return true;
        } else {
            return false;
        }
    }

    function balanceOf(address _owner) constant returns (uint256 balance) {
        return balances[_owner];
    }

    function approve(address _spender, uint256 _value)
    onlyPayloadSize(2)
    returns (bool success)
    {
        allowed[msg.sender][_spender] = _value;
        Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender)
    constant
    onlyPayloadSize(2)
    returns (uint256 remaining)
    {
        return allowed[_owner][_spender];
    }
}

/* Taking ideas from BAT token */
contract NEToken is StandardToken {

    // Token metadata
    string public constant name = "Nimiq Network Interim Token";
    string public constant symbol = "NET";
    uint256 public constant decimals = 18;
    string public version = "0.8";

    // Deposit address of Multisig account controlled by the creators
    address public ethFundDeposit;

    // Fundraising parameters
    enum ContractState { Fundraising, Finalized, Redeeming, Paused }
    ContractState public state;           // Current state of the contract
    ContractState private savedState;     // State of the contract before pause

    uint256 public fundingStartBlock;        // These two blocks need to be chosen to comply with the
    uint256 public fundingEndBlock;          // start date and 28 day duration requirements
    uint256 public exchangeRateChangesBlock; // block number that triggers the exchange rate change

    uint256 public constant TOKEN_FIRST_EXCHANGE_RATE = 175; // 175 NETs per 1 ETH
    uint256 public constant TOKEN_SECOND_EXCHANGE_RATE = 125; // 125 NETs per 1 ETH
    uint256 public constant TOKEN_CREATION_CAP = 10.5 * (10**6) * 10**decimals; // 10.5 million NETs
    uint256 public constant ETH_RECEIVED_CAP = 60 * (10**3) * 10**decimals; // 60 000 ETH
    uint256 public constant ETH_RECEIVED_MIN = 5 * (10**3) * 10**decimals; // 5 000 ETH
    uint256 public constant TOKEN_MIN = 1 * 10**decimals; // 1 NET

    // We need to keep track of how much ether have been contributed, since we have a cap for ETH too
    uint256 public totalReceivedEth = 0;

    // Since we have different exchange rates at different stages, we need to keep track
    // of how much ether each contributed in case that we need to issue a refund
    mapping (address => uint256) private ethBalances;

    // Events used for logging
    event LogRefund(address indexed _to, uint256 _value);
    event LogCreateNET(address indexed _to, uint256 _value);
    event LogRedeemNET(address indexed _to, uint256 _value, bytes32 _nimiqAddress);

    modifier isFinalized() {
        require(state == ContractState.Finalized);
        _;
    }

    modifier isFundraising() {
        require(state == ContractState.Fundraising);
        _;
    }

    modifier isRedeeming() {
        require(state == ContractState.Redeeming);
        _;
    }

    modifier isPaused() {
        require(state == ContractState.Paused);
        _;
    }

    modifier notPaused() {
        require(state != ContractState.Paused);
        _;
    }

    modifier isFundraisingIgnorePaused() {
        require(state == ContractState.Fundraising || (state == ContractState.Paused && savedState == ContractState.Fundraising));
        _;
    }

    modifier onlyOwner() {
        require(msg.sender == ethFundDeposit);
        _;
    }

    modifier minimumReached() {
        require(totalReceivedEth >= ETH_RECEIVED_MIN);
        _;
    }

    // Constructor
    function NEToken(
    address _ethFundDeposit,
    uint256 _fundingStartBlock,
    uint256 _fundingEndBlock,
    uint256 _exchangeRateChangesBlock)
    {
        // Check that the parameters make sense
        require(block.number <= _fundingStartBlock); // The start of the fundraising should happen in the future
        require(_fundingStartBlock <= _exchangeRateChangesBlock); // The exchange rate change should happen after the start of the fundraising
        require(_exchangeRateChangesBlock <= _fundingEndBlock); // And the end of the fundraising should happen after the exchange rate change

        // Contract state
        state = ContractState.Fundraising;
        savedState = ContractState.Fundraising;

        ethFundDeposit = _ethFundDeposit;
        fundingStartBlock = _fundingStartBlock;
        fundingEndBlock = _fundingEndBlock;
        exchangeRateChangesBlock = _exchangeRateChangesBlock;
        totalSupply = 0;
    }

    // Overridden method to check for end of fundraising before allowing transfer of tokens
    function transfer(address _to, uint256 _value)
    isFinalized // Only allow token transfer after the fundraising has ended
    onlyPayloadSize(2)
    returns (bool success)
    {
        return super.transfer(_to, _value);
    }


    // Overridden method to check for end of fundraising before allowing transfer of tokens
    function transferFrom(address _from, address _to, uint256 _value)
    isFinalized // Only allow token transfer after the fundraising has ended
    onlyPayloadSize(3)
    returns (bool success)
    {
        return super.transferFrom(_from, _to, _value);
    }


    /// @dev Accepts ether and creates new NET tokens
    function createTokens()
    payable
    external
    isFundraising
    {
        require(block.number >= fundingStartBlock);
        require(block.number <= fundingEndBlock);
        require(msg.value > 0);

        // First we check the ETH cap, as it's easier to calculate, return
        // the contribution if the cap has been reached already
        uint256 checkedReceivedEth = safeAdd(totalReceivedEth, msg.value);
        require(checkedReceivedEth <= ETH_RECEIVED_CAP);

        // If all is fine with the ETH cap, we continue to check the
        // minimum amount of tokens and the cap for how many tokens
        // have been generated so far
        uint256 tokens = safeMult(msg.value, getCurrentTokenPrice());
        require(tokens >= TOKEN_MIN);
        uint256 checkedSupply = safeAdd(totalSupply, tokens);
        require(checkedSupply <= TOKEN_CREATION_CAP);

        // Only when all the checks have passed, then we update the state (ethBalances,
        // totalReceivedEth, totalSupply, and balances) of the contract
        ethBalances[msg.sender] = safeAdd(ethBalances[msg.sender], msg.value);
        totalReceivedEth = checkedReceivedEth;
        totalSupply = checkedSupply;
        balances[msg.sender] += tokens;  // safeAdd not needed; bad semantics to use here

        // Log the creation of this tokens
        LogCreateNET(msg.sender, tokens);
    }


    /// @dev Returns the current token price
    function getCurrentTokenPrice()
    private
    constant
    returns (uint256 currentPrice)
    {
        if (block.number < exchangeRateChangesBlock) {
            return TOKEN_FIRST_EXCHANGE_RATE;
        } else {
            return TOKEN_SECOND_EXCHANGE_RATE;
        }
    }


    /// @dev Redeems NETs and records the Nimiq address of the sender
    function redeemTokens(bytes32 nimiqAddress)
    external
    isRedeeming
    {
        uint256 netVal = balances[msg.sender];
        require(netVal >= TOKEN_MIN); // At least TOKEN_MIN tokens have to be redeemed

        // Move the tokens of the caller to Nimiq's address
        if (!super.transfer(ethFundDeposit, netVal)) throw;

        // Log the redeeming of this tokens
        LogRedeemNET(msg.sender, netVal, nimiqAddress);
    }


    /// @dev Allows to transfer ether from the contract as soon as the minimum is reached
    function retrieveEth(uint256 _value)
    external
    minimumReached
    onlyOwner
    {
        require(_value <= this.balance);

        // send the eth to Nimiq Creators
        ethFundDeposit.transfer(_value);
    }


    /// @dev Ends the fundraising period and sends the ETH to the Multisig wallet
    function finalize()
    external
    isFundraising
    minimumReached
    onlyOwner // Only the owner of the ethFundDeposit address can finalize the contract
    {
        require(block.number > fundingEndBlock || totalSupply >= TOKEN_CREATION_CAP || totalReceivedEth >= ETH_RECEIVED_CAP); // Only allow to finalize the contract before the ending block if we already reached any of the two caps

        // Move the contract to Finalized state
        state = ContractState.Finalized;
        savedState = ContractState.Finalized;

        // Send the ETH to Nimiq Creators
        ethFundDeposit.transfer(this.balance);
    }


    /// @dev Starts the redeeming period
    function startRedeeming()
    external
    isFinalized // The redeeming period can only be started after the contract is finalized
    onlyOwner   // Only the owner of the ethFundDeposit address can start the redeeming period
    {
        // Move the contract to Redeeming state
        state = ContractState.Redeeming;
        savedState = ContractState.Redeeming;
    }


    /// @dev Pauses the contract
    function pause()
    external
    notPaused   // Prevent the contract getting stuck in the Paused state
    onlyOwner   // Only the owner of the ethFundDeposit address can pause the contract
    {
        // Move the contract to Paused state
        savedState = state;
        state = ContractState.Paused;
    }


    /// @dev Proceeds with the contract
    function proceed()
    external
    isPaused
    onlyOwner   // Only the owner of the ethFundDeposit address can proceed with the contract
    {
        // Move the contract to the previous state
        state = savedState;
    }


    /// @dev Allows contributors to recover their ether in case the minimum funding goal is not reached
    function refund()
    external
    isFundraisingIgnorePaused // Refunding is only possible in the fundraising phase (no matter if paused) by definition
    {
        require(block.number > fundingEndBlock); // Prevents refund until fundraising period is over
        require(totalReceivedEth < ETH_RECEIVED_MIN);  // No refunds if the minimum has been reached

        uint256 netVal = balances[msg.sender];
        require(netVal > 0);
        uint256 ethVal = ethBalances[msg.sender];
        require(ethVal > 0);

        // Update the state only after all the checks have passed
        balances[msg.sender] = 0;
        ethBalances[msg.sender] = 0;
        totalSupply = safeSubtract(totalSupply, netVal); // Extra safe

        // Log this refund
        LogRefund(msg.sender, ethVal);

        // Send the contributions only after we have updated all the balances
        // If you're using a contract, make sure it works with .transfer() gas limits
        msg.sender.transfer(ethVal);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"TOKEN_SECOND_EXCHANGE_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_FIRST_EXCHANGE_RATE","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ETH_RECEIVED_MIN","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"nimiqAddress","type":"bytes32"}],"name":"redeemTokens","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"exchangeRateChangesBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"proceed","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalReceivedEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundingEndBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ethFundDeposit","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"createTokens","outputs":[],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"fundingStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"ETH_RECEIVED_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"startRedeeming","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"retrieveEth","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_MIN","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_CREATION_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[{"name":"_ethFundDeposit","type":"address"},{"name":"_fundingStartBlock","type":"uint256"},{"name":"_fundingEndBlock","type":"uint256"},{"name":"_exchangeRateChangesBlock","type":"uint256"}],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"LogRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"LogCreateNET","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"},{"indexed":false,"name":"_nimiqAddress","type":"bytes32"}],"name":"LogRedeemNET","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60a0604052600360608190527f302e38000000000000000000000000000000000000000000000000000000000060809081526200003e9190816200013b565b50600060085534156200004d57fe5b6040516080806200163d83398101604090815281516020830151918301516060909301519092905b4383901115620000855760006000fd5b80831115620000945760006000fd5b81811115620000a35760006000fd5b600480546000919060a060020a60ff02191674010000000000000000000000000000000000000000835b0217905550600480546000919060a860020a60ff0219167501000000000000000000000000000000000000000000835b021790555060048054600160a060020a031916600160a060020a038616179055600583905560068290556007819055600080555b50505050620001e5565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017e57805160ff1916838001178555620001ae565b82800160010185558215620001ae579182015b82811115620001ae57825182559160200191906001019062000191565b5b50620001bd929150620001c1565b5090565b620001e291905b80821115620001bd5760008155600101620001c8565b5090565b90565b61144880620001f56000396000f3006060604052361561017d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301e8b608811461017f57806306fdde03146101a1578063095ea7b314610231578063106f6a3d14610264578063168213491461028657806318160ddd146102a85780631fa3c372146102ca57806323b872dd146102df578063249f7aa0146103185780632a33fec61461033a578063313ce5671461034c5780634bb278f31461036e57806354fd4d5014610380578063590e1ae31461041057806370a08231146104225780637801fc3e146104505780638456cb591461047257806391b43d131461048457806395d89b41146104a6578063a81c3bdf14610536578063a9059cbb14610562578063b442726314610595578063c19d93fb1461059f578063d648a647146105d3578063d8e30740146105f5578063daf8f43814610617578063dd62ed3e14610629578063df5f06031461065d578063e74799b414610672578063f9fae4f714610694575bfe5b341561018757fe5b61018f6106b6565b60408051918252519081900360200190f35b34156101a957fe5b6101b16106bb565b6040805160208082528351818301528351919283929083019185019080838382156101f7575b8051825260208311156101f757601f1990920191602091820191016101d7565b505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023957fe5b610250600160a060020a03600435166024356106f2565b604080519115158252519081900360200190f35b341561026c57fe5b61018f61076a565b60408051918252519081900360200190f35b341561028e57fe5b61018f61076f565b60408051918252519081900360200190f35b34156102b057fe5b61018f61077d565b60408051918252519081900360200190f35b34156102d257fe5b6102dd600435610783565b005b34156102e757fe5b610250600160a060020a0360043581169060243516604435610846565b604080519115158252519081900360200190f35b341561032057fe5b61018f610892565b60408051918252519081900360200190f35b341561034257fe5b6102dd610898565b005b341561035457fe5b61018f61091d565b60408051918252519081900360200190f35b341561037657fe5b6102dd610922565b005b341561038857fe5b6101b1610a52565b6040805160208082528351818301528351919283929083019185019080838382156101f7575b8051825260208311156101f757601f1990920191602091820191016101d7565b505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041857fe5b6102dd610ae0565b005b341561042a57fe5b61018f600160a060020a0360043516610c70565b60408051918252519081900360200190f35b341561045857fe5b61018f610c8f565b60408051918252519081900360200190f35b341561047a57fe5b6102dd610c95565b005b341561048c57fe5b61018f610d4c565b60408051918252519081900360200190f35b34156104ae57fe5b6101b1610d52565b6040805160208082528351818301528351919283929083019185019080838382156101f7575b8051825260208311156101f757601f1990920191602091820191016101d7565b505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561053e57fe5b610546610d89565b60408051600160a060020a039092168252519081900360200190f35b341561056a57fe5b610250600160a060020a0360043516602435610d98565b604080519115158252519081900360200190f35b6102dd610de2565b005b34156105a757fe5b6105af610f42565b604051808260038111156105bf57fe5b60ff16815260200191505060405180910390f35b34156105db57fe5b61018f610f52565b60408051918252519081900360200190f35b34156105fd57fe5b61018f610f58565b60408051918252519081900360200190f35b341561061f57fe5b6102dd610f66565b005b341561063157fe5b61018f600160a060020a036004358116906024351661100a565b60408051918252519081900360200190f35b341561066557fe5b6102dd600435611049565b005b341561067a57fe5b61018f6110cf565b60408051918252519081900360200190f35b341561069c57fe5b61018f6110db565b60408051918252519081900360200190f35b607d81565b60408051808201909152601b81527f4e696d6971204e6574776f726b20496e746572696d20546f6b656e0000000000602082015281565b600060023660441461070057fe5b600160a060020a03338116600081815260026020908152604080832094891680845294825291829020879055815187815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600191505b5b5092915050565b60af81565b69010f0cf064dd5920000081565b60005481565b600060025b60045460a060020a900460ff1660038111156107a057fe5b146107ab5760006000fd5b50600160a060020a033316600090815260016020526040902054670de0b6b3a76400008110156107db5760006000fd5b6004546107f190600160a060020a0316826110ea565b15156107fd5760006000fd5b60408051828152602081018490528151600160a060020a033316927f32f07d013bbbed31ffbf01e74743d19f394b593429fd3c9c22e4ad2386fb897c928290030190a25b5b5050565b600060015b60045460a060020a900460ff16600381111561086357fe5b1461086e5760006000fd5b60033660641461087a57fe5b6108858585856111fe565b91505b5b505b9392505050565b60075481565b60035b60045460a060020a900460ff1660038111156108b357fe5b146108be5760006000fd5b60045433600160a060020a039081169116146108da5760006000fd5b6004805460ff60a860020a820416919074ff0000000000000000000000000000000000000000191660a060020a83600381111561091357fe5b02179055505b5b5b565b601281565b60005b60045460a060020a900460ff16600381111561093d57fe5b146109485760006000fd5b60085469010f0cf064dd592000009010156109635760006000fd5b60045433600160a060020a0390811691161461097f5760006000fd5b60065443118061099d57506000546a08af7623fb67bf1a8000009010155b806109b55750600854690cb49b44ba602d8000009010155b15156109c15760006000fd5b600480546001919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600480546001919075ff000000000000000000000000000000000000000000191660a860020a835b0217905550600454604051600160a060020a039182169130163180156108fc02916000818181858888f19350505050151561091957fe5b5b5b5b5b565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ad85780601f10610aad57610100808354040283529160200191610ad8565b820191906000526020600020905b815481529060010190602001808311610abb57829003601f168201915b505050505081565b600080805b60045460a060020a900460ff166003811115610afd57fe5b1480610b44575060035b60045460a060020a900460ff166003811115610b1f57fe5b148015610b44575060005b60045460a860020a900460ff166003811115610b4257fe5b145b5b1515610b515760006000fd5b6006544311610b605760006000fd5b60085469010f0cf064dd592000009010610b7a5760006000fd5b600160a060020a03331660009081526001602052604081205492508211610ba15760006000fd5b50600160a060020a033316600090815260096020526040812054908111610bc85760006000fd5b600160a060020a03331660009081526001602090815260408083208390556009909152812081905554610bfb908361138e565b600055604080518281529051600160a060020a033316917fb6c0eca8138e097d71e2dd31e19a1266487f0553f170b7260ffe68bcbe9ff8a7919081900360200190a2604051600160a060020a0333169082156108fc029083906000818181858888f19350505050151561084157fe5b5b5b5050565b600160a060020a0381166000908152600160205260409020545b919050565b60085481565b60035b60045460a060020a900460ff166003811115610cb057fe5b1415610cbc5760006000fd5b60045433600160a060020a03908116911614610cd85760006000fd5b6004805460ff60a060020a820416919075ff000000000000000000000000000000000000000000191660a860020a836003811115610d1257fe5b0217905550600480546003919074ff0000000000000000000000000000000000000000191660a060020a83610913565b02179055505b5b5b565b60065481565b60408051808201909152600381527f4e45540000000000000000000000000000000000000000000000000000000000602082015281565b600454600160a060020a031681565b600060015b60045460a060020a900460ff166003811115610db557fe5b14610dc05760006000fd5b600236604414610dcc57fe5b610dd684846110ea565b91505b5b505b92915050565b60008080805b60045460a060020a900460ff166003811115610e0057fe5b14610e0b5760006000fd5b600554431015610e1b5760006000fd5b600654431115610e2b5760006000fd5b60003411610e395760006000fd5b610e45600854346113a9565b9250690cb49b44ba602d800000831115610e5f5760006000fd5b610e7034610e6b6113d1565b6113ed565b9150670de0b6b3a7640000821015610e885760006000fd5b610e94600054836113a9565b90506a08af7623fb67bf1a800000811115610eaf5760006000fd5b600160a060020a033316600090815260096020526040902054610ed290346113a9565b600160a060020a033316600081815260096020908152604080832094909455600887905584825560018152908390208054860190558251858152925191927fa851e2f6a23bffc9297b0cf5ce98ab7cc1c12bb5badfd864192c8f760ed58078929081900390910190a25b5b505050565b60045460a060020a900460ff1681565b60055481565b690cb49b44ba602d80000081565b60015b60045460a060020a900460ff166003811115610f8157fe5b14610f8c5760006000fd5b60045433600160a060020a03908116911614610fa85760006000fd5b600480546002919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600480546002919075ff000000000000000000000000000000000000000000191660a860020a83610913565b02179055505b5b5b565b600060023660441461101857fe5b600160a060020a0380851660009081526002602090815260408083209387168352929052205491505b5b5092915050565b60085469010f0cf064dd592000009010156110645760006000fd5b60045433600160a060020a039081169116146110805760006000fd5b600160a060020a033016318111156110985760006000fd5b600454604051600160a060020a039091169082156108fc029083906000818181858888f1935050505015156110c957fe5b5b5b5b50565b670de0b6b3a764000081565b6a08af7623fb67bf1a80000081565b600160a060020a0333166000908152600160205260408120548290108015906111135750600082115b80156111385750600160a060020a038316600090815260016020526040902054828101115b156111ef57600160a060020a033316600090815260016020526040902054611160908361138e565b600160a060020a03338116600090815260016020526040808220939093559085168152205461118f90836113a9565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001610ddc565b506000610ddc565b5b92915050565b600160a060020a03831660009081526001602052604081205482901080159061124e5750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b801561125a5750600082115b801561127f5750600160a060020a038316600090815260016020526040902054828101115b1561137e57600160a060020a0383166000908152600160205260409020546112a790836113a9565b600160a060020a0380851660009081526001602052604080822093909355908616815220546112d6908361138e565b600160a060020a0380861660009081526001602090815260408083209490945560028152838220339093168252919091522054611313908361138e565b600160a060020a038086166000818152600260209081526040808320338616845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600161088b565b50600061088b565b5b9392505050565b6000808284101561139b57fe5b5050808203805b5092915050565b60008282018381108015906113be5750828110155b15156113c657fe5b8091505b5092915050565b60006007544310156113e5575060af6113e9565b50607d5b5b90565b60008282028315806113be575082848281151561140657fe5b04145b15156113c657fe5b8091505b50929150505600a165627a7a72305820ded3953a291dfd70cb7876ef7ecf2087935d6cd5b2e326321960d61488a9586f0029000000000000000000000000efa351d189c367d109859afdf6f3d17eeb0825a500000000000000000000000000000000000000000000000000000000003c290e00000000000000000000000000000000000000000000000000000000003e45ea00000000000000000000000000000000000000000000000000000000003d377c

Deployed Bytecode

0x6060604052361561017d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301e8b608811461017f57806306fdde03146101a1578063095ea7b314610231578063106f6a3d14610264578063168213491461028657806318160ddd146102a85780631fa3c372146102ca57806323b872dd146102df578063249f7aa0146103185780632a33fec61461033a578063313ce5671461034c5780634bb278f31461036e57806354fd4d5014610380578063590e1ae31461041057806370a08231146104225780637801fc3e146104505780638456cb591461047257806391b43d131461048457806395d89b41146104a6578063a81c3bdf14610536578063a9059cbb14610562578063b442726314610595578063c19d93fb1461059f578063d648a647146105d3578063d8e30740146105f5578063daf8f43814610617578063dd62ed3e14610629578063df5f06031461065d578063e74799b414610672578063f9fae4f714610694575bfe5b341561018757fe5b61018f6106b6565b60408051918252519081900360200190f35b34156101a957fe5b6101b16106bb565b6040805160208082528351818301528351919283929083019185019080838382156101f7575b8051825260208311156101f757601f1990920191602091820191016101d7565b505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023957fe5b610250600160a060020a03600435166024356106f2565b604080519115158252519081900360200190f35b341561026c57fe5b61018f61076a565b60408051918252519081900360200190f35b341561028e57fe5b61018f61076f565b60408051918252519081900360200190f35b34156102b057fe5b61018f61077d565b60408051918252519081900360200190f35b34156102d257fe5b6102dd600435610783565b005b34156102e757fe5b610250600160a060020a0360043581169060243516604435610846565b604080519115158252519081900360200190f35b341561032057fe5b61018f610892565b60408051918252519081900360200190f35b341561034257fe5b6102dd610898565b005b341561035457fe5b61018f61091d565b60408051918252519081900360200190f35b341561037657fe5b6102dd610922565b005b341561038857fe5b6101b1610a52565b6040805160208082528351818301528351919283929083019185019080838382156101f7575b8051825260208311156101f757601f1990920191602091820191016101d7565b505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561041857fe5b6102dd610ae0565b005b341561042a57fe5b61018f600160a060020a0360043516610c70565b60408051918252519081900360200190f35b341561045857fe5b61018f610c8f565b60408051918252519081900360200190f35b341561047a57fe5b6102dd610c95565b005b341561048c57fe5b61018f610d4c565b60408051918252519081900360200190f35b34156104ae57fe5b6101b1610d52565b6040805160208082528351818301528351919283929083019185019080838382156101f7575b8051825260208311156101f757601f1990920191602091820191016101d7565b505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561053e57fe5b610546610d89565b60408051600160a060020a039092168252519081900360200190f35b341561056a57fe5b610250600160a060020a0360043516602435610d98565b604080519115158252519081900360200190f35b6102dd610de2565b005b34156105a757fe5b6105af610f42565b604051808260038111156105bf57fe5b60ff16815260200191505060405180910390f35b34156105db57fe5b61018f610f52565b60408051918252519081900360200190f35b34156105fd57fe5b61018f610f58565b60408051918252519081900360200190f35b341561061f57fe5b6102dd610f66565b005b341561063157fe5b61018f600160a060020a036004358116906024351661100a565b60408051918252519081900360200190f35b341561066557fe5b6102dd600435611049565b005b341561067a57fe5b61018f6110cf565b60408051918252519081900360200190f35b341561069c57fe5b61018f6110db565b60408051918252519081900360200190f35b607d81565b60408051808201909152601b81527f4e696d6971204e6574776f726b20496e746572696d20546f6b656e0000000000602082015281565b600060023660441461070057fe5b600160a060020a03338116600081815260026020908152604080832094891680845294825291829020879055815187815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3600191505b5b5092915050565b60af81565b69010f0cf064dd5920000081565b60005481565b600060025b60045460a060020a900460ff1660038111156107a057fe5b146107ab5760006000fd5b50600160a060020a033316600090815260016020526040902054670de0b6b3a76400008110156107db5760006000fd5b6004546107f190600160a060020a0316826110ea565b15156107fd5760006000fd5b60408051828152602081018490528151600160a060020a033316927f32f07d013bbbed31ffbf01e74743d19f394b593429fd3c9c22e4ad2386fb897c928290030190a25b5b5050565b600060015b60045460a060020a900460ff16600381111561086357fe5b1461086e5760006000fd5b60033660641461087a57fe5b6108858585856111fe565b91505b5b505b9392505050565b60075481565b60035b60045460a060020a900460ff1660038111156108b357fe5b146108be5760006000fd5b60045433600160a060020a039081169116146108da5760006000fd5b6004805460ff60a860020a820416919074ff0000000000000000000000000000000000000000191660a060020a83600381111561091357fe5b02179055505b5b5b565b601281565b60005b60045460a060020a900460ff16600381111561093d57fe5b146109485760006000fd5b60085469010f0cf064dd592000009010156109635760006000fd5b60045433600160a060020a0390811691161461097f5760006000fd5b60065443118061099d57506000546a08af7623fb67bf1a8000009010155b806109b55750600854690cb49b44ba602d8000009010155b15156109c15760006000fd5b600480546001919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600480546001919075ff000000000000000000000000000000000000000000191660a860020a835b0217905550600454604051600160a060020a039182169130163180156108fc02916000818181858888f19350505050151561091957fe5b5b5b5b5b565b6003805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610ad85780601f10610aad57610100808354040283529160200191610ad8565b820191906000526020600020905b815481529060010190602001808311610abb57829003601f168201915b505050505081565b600080805b60045460a060020a900460ff166003811115610afd57fe5b1480610b44575060035b60045460a060020a900460ff166003811115610b1f57fe5b148015610b44575060005b60045460a860020a900460ff166003811115610b4257fe5b145b5b1515610b515760006000fd5b6006544311610b605760006000fd5b60085469010f0cf064dd592000009010610b7a5760006000fd5b600160a060020a03331660009081526001602052604081205492508211610ba15760006000fd5b50600160a060020a033316600090815260096020526040812054908111610bc85760006000fd5b600160a060020a03331660009081526001602090815260408083208390556009909152812081905554610bfb908361138e565b600055604080518281529051600160a060020a033316917fb6c0eca8138e097d71e2dd31e19a1266487f0553f170b7260ffe68bcbe9ff8a7919081900360200190a2604051600160a060020a0333169082156108fc029083906000818181858888f19350505050151561084157fe5b5b5b5050565b600160a060020a0381166000908152600160205260409020545b919050565b60085481565b60035b60045460a060020a900460ff166003811115610cb057fe5b1415610cbc5760006000fd5b60045433600160a060020a03908116911614610cd85760006000fd5b6004805460ff60a060020a820416919075ff000000000000000000000000000000000000000000191660a860020a836003811115610d1257fe5b0217905550600480546003919074ff0000000000000000000000000000000000000000191660a060020a83610913565b02179055505b5b5b565b60065481565b60408051808201909152600381527f4e45540000000000000000000000000000000000000000000000000000000000602082015281565b600454600160a060020a031681565b600060015b60045460a060020a900460ff166003811115610db557fe5b14610dc05760006000fd5b600236604414610dcc57fe5b610dd684846110ea565b91505b5b505b92915050565b60008080805b60045460a060020a900460ff166003811115610e0057fe5b14610e0b5760006000fd5b600554431015610e1b5760006000fd5b600654431115610e2b5760006000fd5b60003411610e395760006000fd5b610e45600854346113a9565b9250690cb49b44ba602d800000831115610e5f5760006000fd5b610e7034610e6b6113d1565b6113ed565b9150670de0b6b3a7640000821015610e885760006000fd5b610e94600054836113a9565b90506a08af7623fb67bf1a800000811115610eaf5760006000fd5b600160a060020a033316600090815260096020526040902054610ed290346113a9565b600160a060020a033316600081815260096020908152604080832094909455600887905584825560018152908390208054860190558251858152925191927fa851e2f6a23bffc9297b0cf5ce98ab7cc1c12bb5badfd864192c8f760ed58078929081900390910190a25b5b505050565b60045460a060020a900460ff1681565b60055481565b690cb49b44ba602d80000081565b60015b60045460a060020a900460ff166003811115610f8157fe5b14610f8c5760006000fd5b60045433600160a060020a03908116911614610fa85760006000fd5b600480546002919074ff0000000000000000000000000000000000000000191660a060020a835b0217905550600480546002919075ff000000000000000000000000000000000000000000191660a860020a83610913565b02179055505b5b5b565b600060023660441461101857fe5b600160a060020a0380851660009081526002602090815260408083209387168352929052205491505b5b5092915050565b60085469010f0cf064dd592000009010156110645760006000fd5b60045433600160a060020a039081169116146110805760006000fd5b600160a060020a033016318111156110985760006000fd5b600454604051600160a060020a039091169082156108fc029083906000818181858888f1935050505015156110c957fe5b5b5b5b50565b670de0b6b3a764000081565b6a08af7623fb67bf1a80000081565b600160a060020a0333166000908152600160205260408120548290108015906111135750600082115b80156111385750600160a060020a038316600090815260016020526040902054828101115b156111ef57600160a060020a033316600090815260016020526040902054611160908361138e565b600160a060020a03338116600090815260016020526040808220939093559085168152205461118f90836113a9565b600160a060020a038085166000818152600160209081526040918290209490945580518681529051919333909316927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506001610ddc565b506000610ddc565b5b92915050565b600160a060020a03831660009081526001602052604081205482901080159061124e5750600160a060020a0380851660009081526002602090815260408083203390941683529290522054829010155b801561125a5750600082115b801561127f5750600160a060020a038316600090815260016020526040902054828101115b1561137e57600160a060020a0383166000908152600160205260409020546112a790836113a9565b600160a060020a0380851660009081526001602052604080822093909355908616815220546112d6908361138e565b600160a060020a0380861660009081526001602090815260408083209490945560028152838220339093168252919091522054611313908361138e565b600160a060020a038086166000818152600260209081526040808320338616845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a350600161088b565b50600061088b565b5b9392505050565b6000808284101561139b57fe5b5050808203805b5092915050565b60008282018381108015906113be5750828110155b15156113c657fe5b8091505b5092915050565b60006007544310156113e5575060af6113e9565b50607d5b5b90565b60008282028315806113be575082848281151561140657fe5b04145b15156113c657fe5b8091505b50929150505600a165627a7a72305820ded3953a291dfd70cb7876ef7ecf2087935d6cd5b2e326321960d61488a9586f0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000efa351d189c367d109859afdf6f3d17eeb0825a500000000000000000000000000000000000000000000000000000000003c290e00000000000000000000000000000000000000000000000000000000003e45ea00000000000000000000000000000000000000000000000000000000003d377c

-----Decoded View---------------
Arg [0] : _ethFundDeposit (address): 0xEFa351D189c367D109859AFdF6f3D17EEb0825a5
Arg [1] : _fundingStartBlock (uint256): 3942670
Arg [2] : _fundingEndBlock (uint256): 4081130
Arg [3] : _exchangeRateChangesBlock (uint256): 4011900

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000efa351d189c367d109859afdf6f3d17eeb0825a5
Arg [1] : 00000000000000000000000000000000000000000000000000000000003c290e
Arg [2] : 00000000000000000000000000000000000000000000000000000000003e45ea
Arg [3] : 00000000000000000000000000000000000000000000000000000000003d377c


Swarm Source

bzzr://ded3953a291dfd70cb7876ef7ecf2087935d6cd5b2e326321960d61488a9586f

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.