Latest 25 transactions from a total of 7976 transactions

TxHash Age From To Value [TxFee]
0xb5de5888d5fbad064e61d50bef022f77c514add1a5e9c554bf07c70cd8b2e105371 days 6 hrs ago0x2fcdef09932b7087e9470934c55b69ed3b13a041  IN   RaidenTokenAuctionContract100 Ether0.000448602
0x2b90ad00da76fa2690ed9a8951f92113da6d88d09441f9a4fbcf1f95506d74e9391 days 1 hr ago0x52fbc4f5a19208b3a850254b7f7d6788af550b65  IN   RaidenTokenAuctionContract0 Ether0.000448602
0x64b7ee8e0892391df0e34b3fe90c4def0e34469e4619ae4949afefde8338c566395 days 5 hrs ago0xe05e2a789a7b11fea0911b6b9cb1aaccea019b03  IN   RaidenTokenAuctionContract0.05 Ether0.00010681
0xfcf3e27fea1a32fa81e071ed49f37188a14291cbaffe0cba1b7302264a583edf395 days 7 hrs ago0xe4fb0a16db6ec0aeaa17bffdabd570988c4ec906  IN   RaidenTokenAuctionContract0.01 Ether0.000441
0x837e3f574953de5194ed0f6ddd70f89ca970b4243d0258cd1f80ca1347a4d758398 days 13 hrs ago0x120c322c0b1477a5c2eeb6f9f06d2c98797f485f  IN   RaidenTokenAuctionContract1 Ether0.000448602
0x230206596c72018160775164aae34d0de9334d84e4e5631f6d570394b3f9077f402 days 12 hrs ago0x5333a79cf7213d538ba3ccda2f88632321aa9d55  IN   RaidenTokenAuctionContract0 Ether0.000460194
0x80a000b9b491e62f6409c1170dc8a973cb10dbea321fdf9acd9f5b5cf2f375e4402 days 21 hrs ago0xe2ca8411d05b4a6bfe0bab9571ecf05916d5971d  IN   RaidenTokenAuctionContract0 Ether0.000022968
0x2423fcdab093375905e65715ec8a523ba287f51c8f64adba022f18444fdb1a96402 days 21 hrs ago0x1cd7ed3a06746bec03e69574fbb3260c349bb6f1  IN   RaidenTokenAuctionContract0 Ether0.000114804
0x397523c37752e06e5c06dfbb7082ea856a6db4cea5c0394c6e75736efc0501c8402 days 22 hrs ago0xa8072bf0e57dbf10d9c486e56224ef05c45ab65c  IN   RaidenTokenAuctionContract0 Ether0.0000058799
0x5e4f678dafae2b5f4e6fb6c759b8971c701e3a047cd33cb1462e607b9d1e681f402 days 22 hrs ago0x3ca8f31eb775f4f95a94d643393254be52b511bd  IN   RaidenTokenAuctionContract0 Ether0.00036201
0x2deb2ec8474c541bd4060653badf4ba677800753a5e50b4905812e98248b3a84402 days 22 hrs ago0xf3019dc6a28af019e2d6730f3d2defe3bdb28e62  IN   RaidenTokenAuctionContract0 Ether0.000044988
0x314478fce37aff398d607068f62e7f3a9ac23104205a13656453ea014e849490402 days 23 hrs ago0xf3019dc6a28af019e2d6730f3d2defe3bdb28e62  IN   RaidenTokenAuctionContract0 Ether0.00004782
0x1aee43444f7c5ab0fa244fc396104f9c304b7ae9f4b702d484781f9db7eb4d7b408 days 22 hrs ago0x86850f5f7d035dd96b07a75c484d520cff13eb58  IN   RaidenTokenAuctionContract2.5 Ether0.000448602
0x13ec5ab2ad2b4606e5fdb05a1fce513b1aea61095a27abaa72d94a415f50e987409 days 16 hrs ago0x38b7821957501660c8a2580fcca5362fac073be1  IN   RaidenTokenAuctionContract1.1 Ether0.000441
0x91255f5355f9a7b1cdd43b2b64cb2be215f2941f7aaf0019a9a260bef6037fe5409 days 18 hrs ago0x3028bd3d6472ebf58ba9e1319ebc0c246de4ec17  IN   RaidenTokenAuctionContract0.1 Ether0.000448602
0x05277b6101858dce3b84cbd62a5090744c5a6dfd03a480980ef8ff6815c60459409 days 19 hrs ago0xacd9ddac29e751b0769d8b8ce7cd42da971bc8d8  IN   RaidenTokenAuctionContract2.5 Ether0.00042724
0x9959d76f7154f0edfd24101b3469874603b0fd0dfbf6d40b42f557d49d708f07409 days 19 hrs ago0xcd6b9c9d40ae9d4db6dcefa18167658c8c5afa1b  IN   RaidenTokenAuctionContract2.5 Ether0.0021362
0x17be463fc08d728a6eb5375db91e47da8da0689a8b8762ce360ef9497301243a409 days 19 hrs ago0xad0e630dcee13997cb75e36ea7cab9d66dd7a859  IN   RaidenTokenAuctionContract2 Ether0.00064086
0xe54d8d9467266e0d2d394b03306978bc2189fbeb7a080f6a909d08bd93bef8c2409 days 19 hrs ago0x6038cd980c7a0ddfe21fbf6135b1c27f012c312f  IN   RaidenTokenAuctionContract2.5 Ether0.000224301
0x3bcf06b81fb7920040ca9f9562996d1b5c482370b77814d44a6d51aa804852d0409 days 19 hrs ago0x32b9b7b335479e172921d62dc3cd24074abb172b  IN   RaidenTokenAuctionContract2.5 Ether0.00042724
0x632029c568aab0244afa7a6fea2fb68bb55966567b9ca440628d81293b006b03409 days 19 hrs ago0xacd9ddac29e751b0769d8b8ce7cd42da971bc8d8  IN   RaidenTokenAuctionContract2.5 Ether0.00042724
0x0da04c90ff55eeed8e8ccc5a53a8e9729d5301ddeee6260dcfc4bfc0718dc2d3409 days 19 hrs ago0xcd6b9c9d40ae9d4db6dcefa18167658c8c5afa1b  IN   RaidenTokenAuctionContract2.5 Ether0.00064086
0x6d809fc6c71f41e0f454a54ced4b670fcef29f83829fdc66e5534e11e438e4c6409 days 20 hrs ago0x5bfa99909fa894e008c70be9178f0d5a13986aad  IN   RaidenTokenAuctionContract1 Ether0.000224301
0xcd1c218e9d2096122fa62ae3bdd05b2ee55079d782361bfea80d45b01441137b409 days 20 hrs ago0x5bfa99909fa894e008c70be9178f0d5a13986aad  IN   RaidenTokenAuctionContract1 Ether0.0000021362
0xc4a9b64cec6b15601200ee7818abed7a22bfc4443e9d1afa7b64d0a3e78c4956409 days 21 hrs ago0xe2ca8411d05b4a6bfe0bab9571ecf05916d5971d  IN   RaidenTokenAuctionContract0 Ether0.000022332
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0x6b174e4d7d6e78ce198df95017084af432df9a0171d1eaee67ea827721f772f45450454244 days 15 mins ago0x1dfabf381d80dd29d43bc347207b30a5c484bbd00xb5e5585d0057501c91c48094029a6f4fb10b5a010.000000007777777777 Ether
0x9843ff49104ca314e6a79af857730a392ac0a99050fa3fcf7a21588944d41cb64470238409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2 Ether
0xa5c7e3f49870d094ae4111c1c711c76f984adc1b04ee06faba5017806e5afcf54470238409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x899873c4c1020b362d81d5ab7c861364eda6c3b700cd59eaae5f17695e0c93f94470237409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.5 Ether
0x4c64c7776dacec4e6de1fa080e7a4b5b3d7ec66de0cac4e8c8e2482a39371e294470236409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1 Ether
0x87c3d4a3260989c7b08c4f9d62b91a4194cba4be964106cbea53a583a8515e2b4470230409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.5 Ether
0x0d6223fb64a749e8100498591181a20bd93bdf7a5f4c3fa818e0e8c28d40ebf84470226409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e50 Ether
0x10089c79582e29139939d706499936ffcec98fd26b731e5d4deabbf68d849f754470223409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x172ccfa54612f54d2e3209a4ae873ea8d0fee40c0527e2d736fd3fe9e7bc32f34470221409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.8 Ether
0xe334ca3e9067fb8967df27e40eca45746c1c8434e8e4123f11b5555e17d5787d4470217409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1 Ether
0x0a11c6e5c9363a7d4f7e6aca0d4166da20eb8d30c2f032d1b237563a03c16a384470217409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.86 Ether
0x01b965f5fb858a71b0ee6c28b3debb14a9fe06504577678bcbda7a44d2c8ff564470215409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e12.25363375 Ether
0x8312be188008bb69c3303e3bb644df889970c7616a1bd173a36338fadea11d7a4470211409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0xecbea99d83fd41bc837bc377450fb0ecd0d7743308047297996f153c1fefa0434470210409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.6 Ether
0xeca16608a31d5db64e91664220fed0759e064cb53f7e8e1ee20b7f8c38b0b2564470207409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e84 Ether
0xa1643b01abec91f8f6e51a767307b0c66fe0f3f6b121132016d07e9cccd711434470206409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x454ae79b2a1cf2795a30033dec8af37f55c856c36732ce83ffbff3fae1f477c64470198409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e3 Ether
0x037e7cd631d7c1112925caf25846d335be8813575a47ec7b4ce642e10400f5b34470197409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e0.25 Ether
0xa68314a319e64c7121b49483ccd42206d22a06806531cd500795d574be70cf494470196409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x02b195ac907df81618f451663dee8f14c70532bf376b0411b45d610dccb12b4e4470196409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0xf63cec43dd5887793e7f9691245d5e29f4f2e49e7a2de7647e70233e356ce3264470195409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1.49 Ether
0x46bb7cdfa79ee94838c40eccb1b7fb89e7b396426576a7bba1a5e4ddf8b5cf3a4470194409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e1,000 Ether
0x46bb7cdfa79ee94838c40eccb1b7fb89e7b396426576a7bba1a5e4ddf8b5cf3a4470194409 days 22 hrs ago0xce52a8dd7c8ad08e94b44620622e3630f7c1fc900xb5e5585d0057501c91c48094029a6f4fb10b5a011,000 Ether
0xb807818c3801e6d02a044b12c43454fe54209da0f5d8beda94716c3d48d9d1514470192409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e2.5 Ether
0x5f73c36b0122e1fe8c993c76818314d8395dfc13f52ab14f0605c9a9ab005e604470190409 days 22 hrs ago0xb5e5585d0057501c91c48094029a6f4fb10b5a010x00c7122633a4ef0bc72f7d02456ee2b11e97561e7 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity), ZeroFunctionSelector (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: DutchAuction
Compiler Text: v0.4.17+commit.bdeb9e52
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.17;

/// @title ERC223ReceivingContract - Standard contract implementation for compatibility with ERC223 tokens.
contract ERC223ReceivingContract {

    /// @dev Function that is called when a user or another contract wants to transfer funds.
    /// @param _from Transaction initiator, analogue of msg.sender
    /// @param _value Number of tokens to transfer.
    /// @param _data Data containig a function signature and/or parameters
    function tokenFallback(address _from, uint256 _value, bytes _data) public;
}

contract Token {
    /*
     * Implements ERC 20 standard.
     * https://github.com/ethereum/EIPs/blob/f90864a3d2b2b45c4decf95efd26b3f0c276051a/EIPS/eip-20-token-standard.md
     * https://github.com/ethereum/EIPs/issues/20
     *
     *  Added support for the ERC 223 "tokenFallback" method in a "transfer" function with a payload.
     *  https://github.com/ethereum/EIPs/issues/223
     */

    /*
     * This is a slight change to the ERC20 base standard.
     * function totalSupply() constant returns (uint256 supply);
     * is replaced with:
     * uint256 public totalSupply;
     * This automatically creates a getter function for the totalSupply.
     * This is moved to the base contract since public getter functions are not
     * currently recognised as an implementation of the matching abstract
     * function by the compiler.
     */
    uint256 public totalSupply;

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

    /*
     * ERC 223
     */
    function transfer(address _to, uint256 _value, bytes _data) public returns (bool success);

    /*
     * Events
     */
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    // There is no ERC223 compatible Transfer event, with `_data` included.
}


/// @title Standard token contract - Standard token implementation.
contract StandardToken is Token {

    /*
     * Data structures
     */
    mapping (address => uint256) balances;
    mapping (address => mapping (address => uint256)) allowed;

    /*
     * Public functions
     */
    /// @notice Send `_value` tokens to `_to` from `msg.sender`.
    /// @dev Transfers sender's tokens to a given address. Returns success.
    /// @param _to Address of token receiver.
    /// @param _value Number of tokens to transfer.
    /// @return Returns success of function call.
    function transfer(address _to, uint256 _value) public returns (bool) {
        require(_to != 0x0);
        require(_to != address(this));
        require(balances[msg.sender] >= _value);
        require(balances[_to] + _value >= balances[_to]);

        balances[msg.sender] -= _value;
        balances[_to] += _value;

        Transfer(msg.sender, _to, _value);

        return true;
    }

    /// @notice Send `_value` tokens to `_to` from `msg.sender` and trigger
    /// tokenFallback if sender is a contract.
    /// @dev Function that is called when a user or another contract wants to transfer funds.
    /// @param _to Address of token receiver.
    /// @param _value Number of tokens to transfer.
    /// @param _data Data to be sent to tokenFallback
    /// @return Returns success of function call.
    function transfer(
        address _to,
        uint256 _value,
        bytes _data)
        public
        returns (bool)
    {
        require(transfer(_to, _value));

        uint codeLength;

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

        if (codeLength > 0) {
            ERC223ReceivingContract receiver = ERC223ReceivingContract(_to);
            receiver.tokenFallback(msg.sender, _value, _data);
        }

        return true;
    }

    /// @notice Transfer `_value` tokens from `_from` to `_to` if `msg.sender` is allowed.
    /// @dev Allows for an approved third party to transfer tokens from one
    /// address to another. Returns success.
    /// @param _from Address from where tokens are withdrawn.
    /// @param _to Address to where tokens are sent.
    /// @param _value Number of tokens to transfer.
    /// @return Returns success of function call.
    function transferFrom(address _from, address _to, uint256 _value)
        public
        returns (bool)
    {
        require(_from != 0x0);
        require(_to != 0x0);
        require(_to != address(this));
        require(balances[_from] >= _value);
        require(allowed[_from][msg.sender] >= _value);
        require(balances[_to] + _value >= balances[_to]);

        balances[_to] += _value;
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;

        Transfer(_from, _to, _value);

        return true;
    }

    /// @notice Allows `_spender` to transfer `_value` tokens from `msg.sender` to any address.
    /// @dev Sets approved amount of tokens for spender. Returns success.
    /// @param _spender Address of allowed account.
    /// @param _value Number of approved tokens.
    /// @return Returns success of function call.
    function approve(address _spender, uint256 _value) public returns (bool) {
        require(_spender != 0x0);

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

    /*
     * Read functions
     */
    /// @dev Returns number of allowed tokens that a spender can transfer on
    /// behalf of a token owner.
    /// @param _owner Address of token owner.
    /// @param _spender Address of token spender.
    /// @return Returns remaining allowance for spender.
    function allowance(address _owner, address _spender)
        constant
        public
        returns (uint256)
    {
        return allowed[_owner][_spender];
    }

    /// @dev Returns number of tokens owned by the given address.
    /// @param _owner Address of token owner.
    /// @return Returns balance of owner.
    function balanceOf(address _owner) constant public returns (uint256) {
        return balances[_owner];
    }
}


/// @title Raiden Token
contract RaidenToken is StandardToken {

    /*
     *  Terminology:
     *  1 token unit = Rei
     *  1 token = RDN = Rei * multiplier
     *  multiplier set from token's number of decimals (i.e. 10 ** decimals)
     */

    /*
     *  Token metadata
     */
    string constant public name = "Raiden Token";
    string constant public symbol = "RDN";
    uint8 constant public decimals = 18;
    uint constant multiplier = 10 ** uint(decimals);

    event Deployed(uint indexed _total_supply);
    event Burnt(
        address indexed _receiver,
        uint indexed _num,
        uint indexed _total_supply
    );

    /*
     *  Public functions
     */
    /// @dev Contract constructor function sets dutch auction contract address
    /// and assigns all tokens to dutch auction.
    /// @param auction_address Address of dutch auction contract.
    /// @param wallet_address Address of wallet.
    /// @param initial_supply Number of initially provided token units (Rei).
    function RaidenToken(
        address auction_address,
        address wallet_address,
        uint initial_supply)
        public
    {
        // Auction address should not be null.
        require(auction_address != 0x0);
        require(wallet_address != 0x0);

        // Initial supply is in Rei
        require(initial_supply > multiplier);

        // Total supply of Rei at deployment
        totalSupply = initial_supply;

        balances[auction_address] = initial_supply / 2;
        balances[wallet_address] = initial_supply / 2;

        Transfer(0x0, auction_address, balances[auction_address]);
        Transfer(0x0, wallet_address, balances[wallet_address]);

        Deployed(totalSupply);

        assert(totalSupply == balances[auction_address] + balances[wallet_address]);
    }

    /// @notice Allows `msg.sender` to simply destroy `num` token units (Rei). This means the total
    /// token supply will decrease.
    /// @dev Allows to destroy token units (Rei).
    /// @param num Number of token units (Rei) to burn.
    function burn(uint num) public {
        require(num > 0);
        require(balances[msg.sender] >= num);
        require(totalSupply >= num);

        uint pre_balance = balances[msg.sender];

        balances[msg.sender] -= num;
        totalSupply -= num;
        Burnt(msg.sender, num, totalSupply);
        Transfer(msg.sender, 0x0, num);

        assert(balances[msg.sender] == pre_balance - num);
    }

}


/// @title Dutch auction contract - distribution of a fixed number of tokens using an auction.
/// The contract code is inspired by the Gnosis auction contract. Main difference is that the
/// auction ends if a fixed number of tokens was sold.
contract DutchAuction {
    /*
     * Auction for the RDN Token.
     *
     * Terminology:
     * 1 token unit = Rei
     * 1 token = RDN = Rei * token_multiplier
     * token_multiplier set from token's number of decimals (i.e. 10 ** decimals)
     */

    // Wait 7 days after the end of the auction, before anyone can claim tokens
    uint constant public token_claim_waiting_period = 7 days;

    // Bid value over which the address has to be whitelisted
    // At deployment moment, less than 1k$
    uint constant public bid_threshold = 2.5 ether;

    /*
     * Storage
     */

    RaidenToken public token;
    address public owner_address;
    address public wallet_address;
    address public whitelister_address;

    // Price decay function parameters to be changed depending on the desired outcome

    // Starting price in WEI; e.g. 2 * 10 ** 18
    uint public price_start;

    // Divisor constant; e.g. 524880000
    uint public price_constant;

    // Divisor exponent; e.g. 3
    uint32 public price_exponent;

    // For calculating elapsed time for price
    uint public start_time;
    uint public end_time;
    uint public start_block;

    // Keep track of all ETH received in the bids
    uint public received_wei;

    // Keep track of cumulative ETH funds for which the tokens have been claimed
    uint public funds_claimed;

    uint public token_multiplier;

    // Total number of Rei (RDN * token_multiplier) that will be auctioned
    uint public num_tokens_auctioned;

    // Wei per RDN (Rei * token_multiplier)
    uint public final_price;

    // Bidder address => bid value
    mapping (address => uint) public bids;

    // Whitelist for addresses that want to bid more than bid_threshold
    mapping (address => bool) public whitelist;

    Stages public stage;

    /*
     * Enums
     */
    enum Stages {
        AuctionDeployed,
        AuctionSetUp,
        AuctionStarted,
        AuctionEnded,
        TokensDistributed
    }

    /*
     * Modifiers
     */
    modifier atStage(Stages _stage) {
        require(stage == _stage);
        _;
    }

    modifier isOwner() {
        require(msg.sender == owner_address);
        _;
    }

    modifier isWhitelister() {
        require(msg.sender == whitelister_address);
        _;
    }

    /*
     * Events
     */

    event Deployed(
        uint indexed _price_start,
        uint indexed _price_constant,
        uint32 indexed _price_exponent
    );
    event Setup();
    event AuctionStarted(uint indexed _start_time, uint indexed _block_number);
    event BidSubmission(
        address indexed _sender,
        uint _amount,
        uint _missing_funds
    );
    event ClaimedTokens(address indexed _recipient, uint _sent_amount);
    event AuctionEnded(uint _final_price);
    event TokensDistributed();

    /*
     * Public functions
     */

    /// @dev Contract constructor function sets the starting price, divisor constant and
    /// divisor exponent for calculating the Dutch Auction price.
    /// @param _wallet_address Wallet address to which all contributed ETH will be forwarded.
    /// @param _price_start High price in WEI at which the auction starts.
    /// @param _price_constant Auction price divisor constant.
    /// @param _price_exponent Auction price divisor exponent.
    function DutchAuction(
        address _wallet_address,
        address _whitelister_address,
        uint _price_start,
        uint _price_constant,
        uint32 _price_exponent)
        public
    {
        require(_wallet_address != 0x0);
        require(_whitelister_address != 0x0);
        wallet_address = _wallet_address;
        whitelister_address = _whitelister_address;

        owner_address = msg.sender;
        stage = Stages.AuctionDeployed;
        changeSettings(_price_start, _price_constant, _price_exponent);
        Deployed(_price_start, _price_constant, _price_exponent);
    }

    /// @dev Fallback function for the contract, which calls bid() if the auction has started.
    function () public payable atStage(Stages.AuctionStarted) {
        bid();
    }

    /// @notice Set `_token_address` as the token address to be used in the auction.
    /// @dev Setup function sets external contracts addresses.
    /// @param _token_address Token address.
    function setup(address _token_address) public isOwner atStage(Stages.AuctionDeployed) {
        require(_token_address != 0x0);
        token = RaidenToken(_token_address);

        // Get number of Rei (RDN * token_multiplier) to be auctioned from token auction balance
        num_tokens_auctioned = token.balanceOf(address(this));

        // Set the number of the token multiplier for its decimals
        token_multiplier = 10 ** uint(token.decimals());

        stage = Stages.AuctionSetUp;
        Setup();
    }

    /// @notice Set `_price_start`, `_price_constant` and `_price_exponent` as
    /// the new starting price, price divisor constant and price divisor exponent.
    /// @dev Changes auction price function parameters before auction is started.
    /// @param _price_start Updated start price.
    /// @param _price_constant Updated price divisor constant.
    /// @param _price_exponent Updated price divisor exponent.
    function changeSettings(
        uint _price_start,
        uint _price_constant,
        uint32 _price_exponent)
        internal
    {
        require(stage == Stages.AuctionDeployed || stage == Stages.AuctionSetUp);
        require(_price_start > 0);
        require(_price_constant > 0);

        price_start = _price_start;
        price_constant = _price_constant;
        price_exponent = _price_exponent;
    }

    /// @notice Adds account addresses to whitelist.
    /// @dev Adds account addresses to whitelist.
    /// @param _bidder_addresses Array of addresses.
    function addToWhitelist(address[] _bidder_addresses) public isWhitelister {
        for (uint32 i = 0; i < _bidder_addresses.length; i++) {
            whitelist[_bidder_addresses[i]] = true;
        }
    }

    /// @notice Removes account addresses from whitelist.
    /// @dev Removes account addresses from whitelist.
    /// @param _bidder_addresses Array of addresses.
    function removeFromWhitelist(address[] _bidder_addresses) public isWhitelister {
        for (uint32 i = 0; i < _bidder_addresses.length; i++) {
            whitelist[_bidder_addresses[i]] = false;
        }
    }

    /// @notice Start the auction.
    /// @dev Starts auction and sets start_time.
    function startAuction() public isOwner atStage(Stages.AuctionSetUp) {
        stage = Stages.AuctionStarted;
        start_time = now;
        start_block = block.number;
        AuctionStarted(start_time, start_block);
    }

    /// @notice Finalize the auction - sets the final RDN token price and changes the auction
    /// stage after no bids are allowed anymore.
    /// @dev Finalize auction and set the final RDN token price.
    function finalizeAuction() public atStage(Stages.AuctionStarted)
    {
        // Missing funds should be 0 at this point
        uint missing_funds = missingFundsToEndAuction();
        require(missing_funds == 0);

        // Calculate the final price = WEI / RDN = WEI / (Rei / token_multiplier)
        // Reminder: num_tokens_auctioned is the number of Rei (RDN * token_multiplier) that are auctioned
        final_price = token_multiplier * received_wei / num_tokens_auctioned;

        end_time = now;
        stage = Stages.AuctionEnded;
        AuctionEnded(final_price);

        assert(final_price > 0);
    }

    /// --------------------------------- Auction Functions ------------------


    /// @notice Send `msg.value` WEI to the auction from the `msg.sender` account.
    /// @dev Allows to send a bid to the auction.
    function bid()
        public
        payable
        atStage(Stages.AuctionStarted)
    {
        require(msg.value > 0);
        require(bids[msg.sender] + msg.value <= bid_threshold || whitelist[msg.sender]);
        assert(bids[msg.sender] + msg.value >= msg.value);

        // Missing funds without the current bid value
        uint missing_funds = missingFundsToEndAuction();

        // We require bid values to be less than the funds missing to end the auction
        // at the current price.
        require(msg.value <= missing_funds);

        bids[msg.sender] += msg.value;
        received_wei += msg.value;

        // Send bid amount to wallet
        wallet_address.transfer(msg.value);

        BidSubmission(msg.sender, msg.value, missing_funds);

        assert(received_wei >= msg.value);
    }

    /// @notice Claim auction tokens for `msg.sender` after the auction has ended.
    /// @dev Claims tokens for `msg.sender` after auction. To be used if tokens can
    /// be claimed by beneficiaries, individually.
    function claimTokens() public atStage(Stages.AuctionEnded) returns (bool) {
        return proxyClaimTokens(msg.sender);
    }

    /// @notice Claim auction tokens for `receiver_address` after the auction has ended.
    /// @dev Claims tokens for `receiver_address` after auction has ended.
    /// @param receiver_address Tokens will be assigned to this address if eligible.
    function proxyClaimTokens(address receiver_address)
        public
        atStage(Stages.AuctionEnded)
        returns (bool)
    {
        // Waiting period after the end of the auction, before anyone can claim tokens
        // Ensures enough time to check if auction was finalized correctly
        // before users start transacting tokens
        require(now > end_time + token_claim_waiting_period);
        require(receiver_address != 0x0);

        if (bids[receiver_address] == 0) {
            return false;
        }

        // Number of Rei = bid_wei / Rei = bid_wei / (wei_per_RDN * token_multiplier)
        uint num = (token_multiplier * bids[receiver_address]) / final_price;

        // Due to final_price floor rounding, the number of assigned tokens may be higher
        // than expected. Therefore, the number of remaining unassigned auction tokens
        // may be smaller than the number of tokens needed for the last claimTokens call
        uint auction_tokens_balance = token.balanceOf(address(this));
        if (num > auction_tokens_balance) {
            num = auction_tokens_balance;
        }

        // Update the total amount of funds for which tokens have been claimed
        funds_claimed += bids[receiver_address];

        // Set receiver bid to 0 before assigning tokens
        bids[receiver_address] = 0;

        require(token.transfer(receiver_address, num));

        ClaimedTokens(receiver_address, num);

        // After the last tokens are claimed, we change the auction stage
        // Due to the above logic, rounding errors will not be an issue
        if (funds_claimed == received_wei) {
            stage = Stages.TokensDistributed;
            TokensDistributed();
        }

        assert(token.balanceOf(receiver_address) >= num);
        assert(bids[receiver_address] == 0);
        return true;
    }

    /// @notice Get the RDN price in WEI during the auction, at the time of
    /// calling this function. Returns `0` if auction has ended.
    /// Returns `price_start` before auction has started.
    /// @dev Calculates the current RDN token price in WEI.
    /// @return Returns WEI per RDN (token_multiplier * Rei).
    function price() public constant returns (uint) {
        if (stage == Stages.AuctionEnded ||
            stage == Stages.TokensDistributed) {
            return 0;
        }
        return calcTokenPrice();
    }

    /// @notice Get the missing funds needed to end the auction,
    /// calculated at the current RDN price in WEI.
    /// @dev The missing funds amount necessary to end the auction at the current RDN price in WEI.
    /// @return Returns the missing funds amount in WEI.
    function missingFundsToEndAuction() constant public returns (uint) {

        // num_tokens_auctioned = total number of Rei (RDN * token_multiplier) that is auctioned
        uint required_wei_at_price = num_tokens_auctioned * price() / token_multiplier;
        if (required_wei_at_price <= received_wei) {
            return 0;
        }

        // assert(required_wei_at_price - received_wei > 0);
        return required_wei_at_price - received_wei;
    }

    /*
     *  Private functions
     */

    /// @dev Calculates the token price (WEI / RDN) at the current timestamp
    /// during the auction; elapsed time = 0 before auction starts.
    /// Based on the provided parameters, the price does not change in the first
    /// `price_constant^(1/price_exponent)` seconds due to rounding.
    /// Rounding in `decay_rate` also produces values that increase instead of decrease
    /// in the beginning; these spikes decrease over time and are noticeable
    /// only in first hours. This should be calculated before usage.
    /// @return Returns the token price - Wei per RDN.
    function calcTokenPrice() constant private returns (uint) {
        uint elapsed;
        if (stage == Stages.AuctionStarted) {
            elapsed = now - start_time;
        }

        uint decay_rate = elapsed ** price_exponent / price_constant;
        return price_start * (1 + elapsed) / (1 + elapsed + decay_rate);
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"num_tokens_auctioned","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"final_price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price_exponent","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"end_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"bid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"token_multiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price_start","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bid_threshold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"funds_claimed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token_claim_waiting_period","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"whitelister_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bidder_addresses","type":"address[]"}],"name":"removeFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"bids","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token_address","type":"address"}],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"startAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"received_wei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bidder_addresses","type":"address[]"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"start_time","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price_constant","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"receiver_address","type":"address"}],"name":"proxyClaimTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"start_block","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stage","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"missingFundsToEndAuction","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet_address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalizeAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_wallet_address","type":"address"},{"name":"_whitelister_address","type":"address"},{"name":"_price_start","type":"uint256"},{"name":"_price_constant","type":"uint256"},{"name":"_price_exponent","type":"uint32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_price_start","type":"uint256"},{"indexed":true,"name":"_price_constant","type":"uint256"},{"indexed":true,"name":"_price_exponent","type":"uint32"}],"name":"Deployed","type":"event"},{"anonymous":false,"inputs":[],"name":"Setup","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_start_time","type":"uint256"},{"indexed":true,"name":"_block_number","type":"uint256"}],"name":"AuctionStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_sender","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"},{"indexed":false,"name":"_missing_funds","type":"uint256"}],"name":"BidSubmission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_recipient","type":"address"},{"indexed":false,"name":"_sent_amount","type":"uint256"}],"name":"ClaimedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_final_price","type":"uint256"}],"name":"AuctionEnded","type":"event"},{"anonymous":false,"inputs":[],"name":"TokensDistributed","type":"event"}]

  Contract Creation Code Switch To Opcodes View
606060405234156200001057600080fd5b60405160a08062001cfa8339810160405280805190602001909190805190602001909190805190602001909190805190602001909190805190602001909190505060008573ffffffffffffffffffffffffffffffffffffffff16141515156200007857600080fd5b60008473ffffffffffffffffffffffffffffffffffffffff16141515156200009f57600080fd5b84600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160006101000a81548160ff021916908360048111156200018257fe5b0217905550620001a8838383620001e86401000000000262001962176401000000009004565b8063ffffffff1682847f386f36f3306fb418dd13e11a0f5b005c8b23a70fb5da6c18ab5123e5fe68598560405160405180910390a45050505050620002a6565b60006004811115620001f657fe5b601160009054906101000a900460ff1660048111156200021257fe5b1480620002465750600160048111156200022857fe5b601160009054906101000a900460ff1660048111156200024457fe5b145b15156200025257600080fd5b6000831115156200026257600080fd5b6000821115156200027257600080fd5b826004819055508160058190555080600660006101000a81548163ffffffff021916908363ffffffff160217905550505050565b611a4480620002b66000396000f3006060604052361561017e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303cc7b85146101be57806308b309e3146101e75780630c64a7391461021057806316243356146102455780631998aeef1461026e5780631e3359621461027857806329b4d111146102a15780632a887299146102ca5780632aefb7c5146102f357806348c54b9d1461031c5780634b7829f1146103495780634e01291814610372578063548db174146103c757806362ea82db1461042157806366d382031461046e5780636b64c769146104a75780637b10e717146104bc5780637f649783146104e557806380edef8e1461053f578063834ee417146105945780639b19251a146105bd5780639dbf05431461060e578063a035b1fe14610637578063aeaaaa0814610660578063b87fb3db146106b1578063c040e6b8146106da578063c5cd88db14610711578063e776a5b51461073a578063f77282ab1461078f578063fc0c546a146107a4575b600280600481111561018c57fe5b601160009054906101000a900460ff1660048111156101a757fe5b1415156101b357600080fd5b6101bb6107f9565b50005b34156101c957600080fd5b6101d1610a78565b6040518082815260200191505060405180910390f35b34156101f257600080fd5b6101fa610a7e565b6040518082815260200191505060405180910390f35b341561021b57600080fd5b610223610a84565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b341561025057600080fd5b610258610a9a565b6040518082815260200191505060405180910390f35b6102766107f9565b005b341561028357600080fd5b61028b610aa0565b6040518082815260200191505060405180910390f35b34156102ac57600080fd5b6102b4610aa6565b6040518082815260200191505060405180910390f35b34156102d557600080fd5b6102dd610aac565b6040518082815260200191505060405180910390f35b34156102fe57600080fd5b610306610ab8565b6040518082815260200191505060405180910390f35b341561032757600080fd5b61032f610abe565b604051808215151515815260200191505060405180910390f35b341561035457600080fd5b61035c610b04565b6040518082815260200191505060405180910390f35b341561037d57600080fd5b610385610b0b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156103d257600080fd5b61041f600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050610b31565b005b341561042c57600080fd5b610458600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c29565b6040518082815260200191505060405180910390f35b341561047957600080fd5b6104a5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610c41565b005b34156104b257600080fd5b6104ba610f25565b005b34156104c757600080fd5b6104cf61101d565b6040518082815260200191505060405180910390f35b34156104f057600080fd5b61053d600480803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091905050611023565b005b341561054a57600080fd5b61055261111b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561059f57600080fd5b6105a7611141565b6040518082815260200191505060405180910390f35b34156105c857600080fd5b6105f4600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611147565b604051808215151515815260200191505060405180910390f35b341561061957600080fd5b610621611167565b6040518082815260200191505060405180910390f35b341561064257600080fd5b61064a61116d565b6040518082815260200191505060405180910390f35b341561066b57600080fd5b610697600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506111e3565b604051808215151515815260200191505060405180910390f35b34156106bc57600080fd5b6106c461175c565b6040518082815260200191505060405180910390f35b34156106e557600080fd5b6106ed611762565b604051808260048111156106fd57fe5b60ff16815260200191505060405180910390f35b341561071c57600080fd5b610724611775565b6040518082815260200191505060405180910390f35b341561074557600080fd5b61074d6117b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561079a57600080fd5b6107a26117d9565b005b34156107af57600080fd5b6107b76118b9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000600280600481111561080957fe5b601160009054906101000a900460ff16600481111561082457fe5b14151561083057600080fd5b60003411151561083f57600080fd5b6722b1c8c1227a000034600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115806108e05750601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15156108eb57600080fd5b3434600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011015151561093857fe5b610940611775565b915081341115151561095157600080fd5b34600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555034600a60008282540192505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050501515610a1057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167fc9c6176cbf7c0a8c29655fe8ccbe5e28382ca11459d145223308723bfc6975453484604051808381526020018281526020019250505060405180910390a234600a5410151515610a7457fe5b5050565b600d5481565b600e5481565b600660009054906101000a900463ffffffff1681565b60085481565b600c5481565b60045481565b6722b1c8c1227a000081565b600b5481565b60006003806004811115610ace57fe5b601160009054906101000a900460ff166004811115610ae957fe5b141515610af557600080fd5b610afe336111e3565b91505090565b62093a8081565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8f57600080fd5b600090505b81518163ffffffff161015610c2557600060106000848463ffffffff16815181101515610bbd57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050610b94565b5050565b600f6020528060005260406000206000915090505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c9d57600080fd5b6000806004811115610cab57fe5b601160009054906101000a900460ff166004811115610cc657fe5b141515610cd257600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610cf857600080fd5b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1515610dfc57600080fd5b6102c65a03f11515610e0d57600080fd5b50505060405180519050600d819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515610eaa57600080fd5b6102c65a03f11515610ebb57600080fd5b5050506040518051905060ff16600a0a600c819055506001601160006101000a81548160ff02191690836004811115610ef057fe5b02179055507f587930504fa5b1062f394d90f9dac9ecadd354ed23a97af9ea4e44dff4870a8460405160405180910390a15050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f8157600080fd5b6001806004811115610f8f57fe5b601160009054906101000a900460ff166004811115610faa57fe5b141515610fb657600080fd5b6002601160006101000a81548160ff02191690836004811115610fd557fe5b021790555042600781905550436009819055506009546007547ff8910119ddbef5440c54532457dfe8250a10ed39e583292818f44724b9e1344c60405160405180910390a350565b600a5481565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561108157600080fd5b600090505b81518163ffffffff16101561111757600160106000848463ffffffff168151811015156110af57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080600101915050611086565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075481565b60106020528060005260406000206000915054906101000a900460ff1681565b60055481565b60006003600481111561117c57fe5b601160009054906101000a900460ff16600481111561119757fe5b14806111c757506004808111156111aa57fe5b601160009054906101000a900460ff1660048111156111c557fe5b145b156111d557600090506111e0565b6111dd6118de565b90505b90565b600080600060038060048111156111f657fe5b601160009054906101000a900460ff16600481111561121157fe5b14151561121d57600080fd5b62093a80600854014211151561123257600080fd5b60008573ffffffffffffffffffffffffffffffffffffffff161415151561125857600080fd5b6000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414156112a95760009350611754565b600e54600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600c54028115156112f957fe5b0492506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156113c057600080fd5b6102c65a03f115156113d157600080fd5b505050604051805190509150818311156113e9578192505b600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b600082825401925050819055506000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86856000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561154957600080fd5b6102c65a03f1151561155a57600080fd5b50505060405180519050151561156f57600080fd5b8473ffffffffffffffffffffffffffffffffffffffff167fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d7907846040518082815260200191505060405180910390a2600a54600b54141561161a576004601160006101000a81548160ff021916908360048111156115e857fe5b02179055507fcea85459abe456c560868e61c476933dcee35a72aba5f546e93715929a69618660405160405180910390a15b826000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231876000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15156116df57600080fd5b6102c65a03f115156116f057600080fd5b505050604051805190501015151561170457fe5b6000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414151561174f57fe5b600193505b505050919050565b60095481565b601160009054906101000a900460ff1681565b600080600c5461178361116d565b600d540281151561179057fe5b049050600a54811115156117a757600091506117af565b600a54810391505b5090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060028060048111156117e957fe5b601160009054906101000a900460ff16600481111561180457fe5b14151561181057600080fd5b611818611775565b915060008214151561182957600080fd5b600d54600a54600c540281151561183c57fe5b04600e81905550426008819055506003601160006101000a81548160ff0219169083600481111561186957fe5b02179055507f45806e512b1f4f10e33e8b3cb64d1d11d998d8c554a95e0841fc1c701278bd5d600e546040518082815260200191505060405180910390a16000600e541115156118b557fe5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600260048111156118f057fe5b601160009054906101000a900460ff16600481111561190b57fe5b141561191957600754420391505b600554600660009054906101000a900463ffffffff1663ffffffff16830a81151561194057fe5b049050808260010101826001016004540281151561195a57fe5b049250505090565b6000600481111561196f57fe5b601160009054906101000a900460ff16600481111561198a57fe5b14806119bb57506001600481111561199e57fe5b601160009054906101000a900460ff1660048111156119b957fe5b145b15156119c657600080fd5b6000831115156119d557600080fd5b6000821115156119e457600080fd5b826004819055508160058190555080600660006101000a81548163ffffffff021916908363ffffffff1602179055505050505600a165627a7a72305820c02791b2eab317ec1431d443a7209661995d304d4de51163c18e708c731a4759002900000000000000000000000000c7122633a4ef0bc72f7d02456ee2b11e97561e0000000000000000000000007f07a4a25863ff8445f28cd89b7228d91f2f818b0000000000000000000000000000000000000000000000001bc16d674ec80000000000000000000000000000000000000000000000000000000000005ddb19800000000000000000000000000000000000000000000000000000000000000003

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

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 00000000000000000000000000c7122633a4ef0bc72f7d02456ee2b11e97561e
Arg [1] : 0000000000000000000000007f07a4a25863ff8445f28cd89b7228d91f2f818b
Arg [2] : 0000000000000000000000000000000000000000000000001bc16d674ec80000
Arg [3] : 000000000000000000000000000000000000000000000000000000005ddb1980
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000003


   Swarm Source:
bzzr://c02791b2eab317ec1431d443a7209661995d304d4de51163c18e708c731a4759

 

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.