Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 568 txns
 Latest 25 txns From a total of 568 Transactions

TxHash Age From To Value [TxFee]
0x8990faa6dcc8ae98ea935538005ea71d9ac368ee9cfe1f3817c191bb5dd0667d296 days 19 hrs ago0x1d858dfbff7d2557e86a92e7a5593981bea12c94  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.00022869
0x2b7033174441504e5e01abc85bc0aca2d049ecdbf0e5348d4ef1122531282c6f296 days 19 hrs ago0x1d858dfbff7d2557e86a92e7a5593981bea12c94  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.000700112
0x9a868f279974ba3d0ae40baa598cbba8b8134ddb6041f15d81fb1f5c91c87672297 days 3 hrs ago0x1d858dfbff7d2557e86a92e7a5593981bea12c94  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.000125764
0x3517d8b7208bd3c5580935eb2e876a5afcdc8537208b56592af58c87c35b9885303 days 20 hrs ago0x5e2e70700508c9ab072e7dc1f2c3ce1ccaf28ba4  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.000597322
0x1996720229f3ba14ec078ac49572443015c2ed768f293941c42474cba56af3f3303 days 22 hrs ago0x3b7a2f5308067dd84e688efd3d9183c60bf78d17  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.00078807
0xf8e242880885f8aed22be30eff4fd233fe799581b9488207b834a7ed29827239303 days 22 hrs ago0x3b7a2f5308067dd84e688efd3d9183c60bf78d17  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.00208592
0xdf47d9e644c23ba62ea23985896118fdc8e029b6f9ab8989890cf4f8f22e1531303 days 23 hrs ago0x3b7a2f5308067dd84e688efd3d9183c60bf78d17  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.0021004
0xed167e5d58f29562083335704b1f25f0de94a059afb2cbf5256bffe3d4672a47303 days 23 hrs ago0x3b7a2f5308067dd84e688efd3d9183c60bf78d17  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.0010886
0x65001bffe46eccc5378e4bd26c20a72e2326342c4b4cd671bb4f4d0129cf3194303 days 23 hrs ago0x3b7a2f5308067dd84e688efd3d9183c60bf78d17  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.00108604
0x25986542f864d63cc4ec2bcce0e73c51b912c8d96d5f96115415bc20b66c160b304 days 18 mins ago0x5e2e70700508c9ab072e7dc1f2c3ce1ccaf28ba4  IN   0x40658db197bddea6a51cb576fe975ca488ab36930 Ether0.0021004
0x560e4297e75ff8a07d5cffce1ec599d65f13eb71a0a9685c39723b80b26f8aa5307 days 4 hrs ago0xae4598766dba48f88cf55b1083bfc374315a365f  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.027 Ether0.000034224
0x1dc5cae3de4bfa816853329f04d9b577c55b6c9e138404e6948b27f18a3a4ff5309 days 1 hr ago0x3d45c585e3d2ae4d4f48d7d410323f2f5d70d751  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.009 Ether0.0003173816
0xf970c5f934cf927f6619d34ef3e81ff2070db9dc64a41c79a3ea11c2bf00d474309 days 1 hr ago0x3d45c585e3d2ae4d4f48d7d410323f2f5d70d751  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.018 Ether0.0001052822
0x31a90e1783229cd21c6771d622b786b2e00c32b92f39836ecc687feb7788b131312 days 6 hrs ago0x544e81e0485f8b4dc59e66dbbf8804cca8a8781a  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.009 Ether0.0001384324
0x54641e8da55a070f1664fe10bd18c5fe3818a1cfd153994a0ed28b689e097def312 days 16 hrs ago0x53ede7cae3eb6a7d11429fe589c0278c9acbe21a  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.045 Ether0.000481218
0x4ef25b3eef35eaeef44ed131e009b0bd1e218471a12f2a8cf50a79c584badd08312 days 16 hrs ago0x53ede7cae3eb6a7d11429fe589c0278c9acbe21a  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.045 Ether0.0006924
0x4a841358e2da52639cbcfe03cc010914e7ffdfff19ab259fc3df1fb7df2f7361312 days 16 hrs ago0x53ede7cae3eb6a7d11429fe589c0278c9acbe21a  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.045 Ether0.0002453476
0xc8babd00a8cfbf7f57106f832cf927a3bb17f5f0738eaf225bf7cbc96e210568313 days 2 hrs ago0xa8ac59d2607226125f6c7e968266c48974c6f3ca  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.045 Ether0.0002177028
0x110dfb23272801c801a28eac0ab240f8a657a34fc001b1f0cb8a2221b8df5a8e313 days 5 hrs ago0xf672a08ccdf9b18dbc65d074b7cd32a8a9f7f6f7  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.027 Ether0.00025668
0x10effefc2c3a47a592c1c257aff220f6fd4767fc7617f8bffa2a0b329e8f5aa2313 days 5 hrs ago0x4b44337c6ff23ac9103f9c585c1b78c8f69283de  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.009 Ether0.0002672412
0xaf511625fed9a232d3f14b75a7a48c10b458ec7210490f13d43ce011b86d8f10313 days 5 hrs ago0x6c6cae09110ac5902a89fb90c0f5a324f95130b5  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.009 Ether0.0002464772
0xadf70866e0db505d9e6dea3c33c9dcb29c5eb82b6b741f8b507e9f173cbea542313 days 9 hrs ago0x3b9d18fe5a1f0ed758d8d71ed3dd1493fa3372ae  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.009 Ether0.0002734884
0xb7fb9fbe804a4f8310782d4193886326d88f2eda428904bc32874bfee64ed4f5313 days 11 hrs ago0x005a44f49f6ec7566be45051783284b5faad36fd  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.045 Ether0.000725676
0x6005d8acdcec55b5aef346a420eed1b23ea2dadd37cc7daa00adbd5c6074b819313 days 11 hrs ago0x005a44f49f6ec7566be45051783284b5faad36fd  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.045 Ether0.0004551988
0x83ced410143db363cd12481372be6113fed117eaa7fee68be2ddb3b415ba75ec313 days 11 hrs ago0xfe09e1c24cf050515674a24349d149f784fcd9cc  IN   0x40658db197bddea6a51cb576fe975ca488ab36930.036 Ether0.0003138226
[ 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
0x8990faa6dcc8ae98ea935538005ea71d9ac368ee9cfe1f3817c191bb5dd0667d4808161296 days 19 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x549b38e8e5fb1ba4acd4187d8b7c8a04deb532060.2 Ether
0x8990faa6dcc8ae98ea935538005ea71d9ac368ee9cfe1f3817c191bb5dd0667d4808161296 days 19 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xd87f339a5a1a897bbab8a5fb2d69570eda6c98642.5 Ether
0x560e4297e75ff8a07d5cffce1ec599d65f13eb71a0a9685c39723b80b26f8aa54747892307 days 4 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xae4598766dba48f88cf55b1083bfc374315a365f0.027 Ether
0x1dc5cae3de4bfa816853329f04d9b577c55b6c9e138404e6948b27f18a3a4ff54737075309 days 1 hr ago0x40658db197bddea6a51cb576fe975ca488ab36930x3d45c585e3d2ae4d4f48d7d410323f2f5d70d7510.009 Ether
0xf970c5f934cf927f6619d34ef3e81ff2070db9dc64a41c79a3ea11c2bf00d4744737069309 days 1 hr ago0x40658db197bddea6a51cb576fe975ca488ab36930x3d45c585e3d2ae4d4f48d7d410323f2f5d70d7510.018 Ether
0x31a90e1783229cd21c6771d622b786b2e00c32b92f39836ecc687feb7788b1314718704312 days 6 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x544e81e0485f8b4dc59e66dbbf8804cca8a8781a0.009 Ether
0x54641e8da55a070f1664fe10bd18c5fe3818a1cfd153994a0ed28b689e097def4716461312 days 16 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x53ede7cae3eb6a7d11429fe589c0278c9acbe21a0.045 Ether
0x4ef25b3eef35eaeef44ed131e009b0bd1e218471a12f2a8cf50a79c584badd084716458312 days 16 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x53ede7cae3eb6a7d11429fe589c0278c9acbe21a0.045 Ether
0x4a841358e2da52639cbcfe03cc010914e7ffdfff19ab259fc3df1fb7df2f73614716445312 days 16 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x53ede7cae3eb6a7d11429fe589c0278c9acbe21a0.045 Ether
0xc8babd00a8cfbf7f57106f832cf927a3bb17f5f0738eaf225bf7cbc96e2105684713894313 days 2 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xa8ac59d2607226125f6c7e968266c48974c6f3ca0.045 Ether
0x110dfb23272801c801a28eac0ab240f8a657a34fc001b1f0cb8a2221b8df5a8e4713384313 days 5 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xf672a08ccdf9b18dbc65d074b7cd32a8a9f7f6f70.027 Ether
0x10effefc2c3a47a592c1c257aff220f6fd4767fc7617f8bffa2a0b329e8f5aa24713384313 days 5 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x4b44337c6ff23ac9103f9c585c1b78c8f69283de0.009 Ether
0xaf511625fed9a232d3f14b75a7a48c10b458ec7210490f13d43ce011b86d8f104713333313 days 5 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x6c6cae09110ac5902a89fb90c0f5a324f95130b50.009 Ether
0xadf70866e0db505d9e6dea3c33c9dcb29c5eb82b6b741f8b507e9f173cbea5424712444313 days 9 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x3b9d18fe5a1f0ed758d8d71ed3dd1493fa3372ae0.009 Ether
0xb7fb9fbe804a4f8310782d4193886326d88f2eda428904bc32874bfee64ed4f54711882313 days 11 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x005a44f49f6ec7566be45051783284b5faad36fd0.045 Ether
0x6005d8acdcec55b5aef346a420eed1b23ea2dadd37cc7daa00adbd5c6074b8194711881313 days 11 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x005a44f49f6ec7566be45051783284b5faad36fd0.045 Ether
0x83ced410143db363cd12481372be6113fed117eaa7fee68be2ddb3b415ba75ec4711846313 days 11 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xfe09e1c24cf050515674a24349d149f784fcd9cc0.036 Ether
0x1d8c1952a952447f2d37cfc391cba7ff1eb090f70220546c7ce24e3f1876882c4711846313 days 11 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x005a44f49f6ec7566be45051783284b5faad36fd0.045 Ether
0xec58ea0eeeec310bd0413ca03f5c5acdc8c4fcfb270f50bb5191face7f06b27d4711148313 days 14 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xe117a2c56ebabb86db0699ac7ac684fc141e11d60.009 Ether
0xfd1ceba5ebab9cc0e2783a640b375104d3a36a4b846f5da0a9f8e8d509dbc3ad4711144313 days 14 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xe117a2c56ebabb86db0699ac7ac684fc141e11d60.009 Ether
0xcc6b6ac095b0e52eea052a8fff67e4b59f896aa11c5ddb03be258ad17a6b27664710657313 days 16 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xc20f7c69234ad7ef2501f0397caf6a48b40ba96b0.045 Ether
0xc40e4236c8d5095ac702c4b57d99000b8a436653b595175eb9efe666bbbf98794710530313 days 16 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x74e6f03b9644b00fe0fe966cf9462eeae1cf0a810.045 Ether
0x0bc8b43777519ad5c96bca46081c765c706a1eea2d8a40855f393b2ccf486f414710410313 days 17 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x99de49acb41a6552ded4fa1bb841a20fc0abc9c60.018 Ether
0x445799d5c1e366de5333e964aeeb0dcb0666a49c2f210ad4e0e84e521999fa9c4710275313 days 17 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930x1d9abfc6e9c2534f2b6fe5cc6b7a6d939ec7bfda0.009 Ether
0x69d830efb12516b33c8d132343429e24e54286c4ec89fd98704f0027effed8e64709618313 days 20 hrs ago0x40658db197bddea6a51cb576fe975ca488ab36930xfd425c76b702e9a8ca26ff7976e2a7c47731aa840.009 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

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



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.15;

contract BTCRelay {
    function getLastBlockHeight() public returns (int);
    function getBlockchainHead() public returns (int);
    function getFeeAmount(int blockHash) public returns (int);
    function getBlockHeader(int blockHash) public returns (bytes32[5]);
    function storeBlockHeader(bytes blockHeader) public returns (int);
}

contract Escrow {
    function deposit(address recipient) payable;
}

contract AffiliateNetwork {
    function affiliateAddresses(uint code) returns (address);
}

contract EthereumLottery {
    uint constant GAS_LIMIT_DEPOSIT = 300000;
    uint constant GAS_LIMIT_AFFILIATE = 35000;

    struct Lottery {
        uint jackpot;
        int decidingBlock;
        uint numTickets;
        uint numTicketsSold;
        uint ticketPrice;
        uint affiliateCut;
        int winningTicket;
        address winner;
        uint finalizationBlock;
        address finalizer;
        string message;
        mapping (uint => address) tickets;
        int nearestKnownBlock;
        int nearestKnownBlockHash;
    }

    address public owner;
    address public admin;
    address public proposedOwner;

    int public id = -1;
    uint public lastInitTimestamp;
    uint public lastSaleTimestamp;

    uint public recentActivityIdx;
    uint[1000] public recentActivity;

    mapping (int => Lottery) public lotteries;

    address public btcRelay;
    address public escrow;
    address public affiliateNetwork;

    enum Reason { TicketSaleClosed, TicketAlreadySold }
    event PurchaseFailed(address indexed buyer, uint mark, Reason reason);
    event PurchaseSuccessful(address indexed buyer, uint mark);

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

    modifier onlyAdminOrOwner {
        require(msg.sender == owner || msg.sender == admin);
        _;
    }

    modifier afterInitialization {
        require(id >= 0);
        _;
    }

    function EthereumLottery(address _btcRelay,
                             address _escrow,
                             address _affiliateNetwork) {
        owner = msg.sender;
        admin = msg.sender;
        btcRelay = _btcRelay;
        escrow = _escrow;
        affiliateNetwork = _affiliateNetwork;
    }

    function needsInitialization() constant returns (bool) {
        return id == -1 || lotteries[id].finalizationBlock > 0;
    }

    function initLottery(uint _jackpot, uint _numTickets, uint _ticketPrice)
             onlyAdminOrOwner {
        require(needsInitialization());
        require(_numTickets * _ticketPrice > _jackpot);

        id += 1;
        lotteries[id].jackpot = _jackpot;
        lotteries[id].decidingBlock = -1;
        lotteries[id].numTickets = _numTickets;
        lotteries[id].ticketPrice = _ticketPrice;
        lotteries[id].winningTicket = -1;

        uint affiliateCut = (_ticketPrice - (_jackpot / _numTickets)) / 2;
        lotteries[id].affiliateCut = affiliateCut;

        lastInitTimestamp = block.timestamp;
        lastSaleTimestamp = 0;
    }

    function buyTickets(uint[] _tickets, uint _mark, uint _affiliate)
             payable afterInitialization {
        if (lotteries[id].numTicketsSold == lotteries[id].numTickets) {
            PurchaseFailed(msg.sender, _mark, Reason.TicketSaleClosed);
            msg.sender.transfer(msg.value);
            return;
        }

        require(_tickets.length > 0);
        require(msg.value == _tickets.length * lotteries[id].ticketPrice);

        for (uint i = 0; i < _tickets.length; i++) {
            uint ticket = _tickets[i];
            require(ticket >= 0);
            require(ticket < lotteries[id].numTickets);

            if (lotteries[id].tickets[ticket] != 0) {
                PurchaseFailed(msg.sender, _mark, Reason.TicketAlreadySold);
                msg.sender.transfer(msg.value);
                return;
            }
        }

        for (i = 0; i < _tickets.length; i++) {
            ticket = _tickets[i];
            lotteries[id].tickets[ticket] = msg.sender;
            recentActivity[recentActivityIdx] = ticket;

            recentActivityIdx += 1;
            if (recentActivityIdx >= recentActivity.length) {
                recentActivityIdx = 0;
            }
        }

        lotteries[id].numTicketsSold += _tickets.length;
        lastSaleTimestamp = block.timestamp;

        address affiliateAddress =
            AffiliateNetwork(affiliateNetwork).affiliateAddresses(_affiliate);
        if (affiliateAddress != 0) {
            uint cut = lotteries[id].affiliateCut * _tickets.length;
            var _ = affiliateAddress.call.gas(GAS_LIMIT_AFFILIATE).value(cut)();
        }

        PurchaseSuccessful(msg.sender, _mark);
    }

    function needsBlockFinalization()
             afterInitialization constant returns (bool) {
        // Check the timestamp of the latest block known to BTCRelay
        // and require it to be no more than 2 hours older than the
        // timestamp of our block. This should ensure that BTCRelay
        // is reasonably up to date.
        uint btcTimestamp;
        int blockHash = BTCRelay(btcRelay).getBlockchainHead();
        (,btcTimestamp) = getBlockHeader(blockHash);

        uint delta = 0;
        if (btcTimestamp < block.timestamp) {
            delta = block.timestamp - btcTimestamp;
        }

        return delta < 2 * 60 * 60 &&
               lotteries[id].numTicketsSold == lotteries[id].numTickets &&
               lotteries[id].decidingBlock == -1;
    }

    function finalizeBlock()
             afterInitialization {
        require(needsBlockFinalization());

        // At this point we know that the timestamp of the latest block
        // known to BTCRelay is within 2 hours of what the Ethereum network
        // considers 'now'. If we assume this to be correct within +/- 3 hours,
        // we can conclude that 'out there' in the real world at most 5 hours
        // have passed. Assuming an actual block time of 9 minutes for Bitcoin,
        // we can use the Poisson distribution to calculate, that if we wait for
        // 54 more blocks, then the probability for all of these 54 blocks
        // having already been mined in 5 hours is less than 0.1 %.
        int blockHeight = BTCRelay(btcRelay).getLastBlockHeight();
        lotteries[id].decidingBlock = blockHeight + 54;
    }

    function needsLotteryFinalization()
             afterInitialization constant returns (bool) {
        int blockHeight = BTCRelay(btcRelay).getLastBlockHeight();
        return lotteries[id].decidingBlock != -1 &&
               blockHeight >= lotteries[id].decidingBlock + 6 &&
               lotteries[id].finalizationBlock == 0;
    }

    function finalizeLottery(uint _steps)
             afterInitialization {
        require(needsLotteryFinalization());

        if (lotteries[id].nearestKnownBlock != lotteries[id].decidingBlock) {
            walkTowardsBlock(_steps);
        } else {
            int winningTicket = lotteries[id].nearestKnownBlockHash %
                                int(lotteries[id].numTickets);
            address winner = lotteries[id].tickets[uint(winningTicket)];

            lotteries[id].winningTicket = winningTicket;
            lotteries[id].winner = winner;
            lotteries[id].finalizationBlock = block.number;
            lotteries[id].finalizer = tx.origin;

            if (winner != 0) {
                uint value = lotteries[id].jackpot;
                bool successful =
                    winner.call.gas(GAS_LIMIT_DEPOSIT).value(value)();
                if (!successful) {
                    Escrow(escrow).deposit.value(value)(winner);
                }
            }

            var _ = admin.call.gas(GAS_LIMIT_DEPOSIT).value(this.balance)();
        }
    }

    function walkTowardsBlock(uint _steps) internal {
        int blockHeight;
        int blockHash;
        if (lotteries[id].nearestKnownBlock == 0) {
            blockHeight = BTCRelay(btcRelay).getLastBlockHeight();
            blockHash = BTCRelay(btcRelay).getBlockchainHead();
        } else {
            blockHeight = lotteries[id].nearestKnownBlock;
            blockHash = lotteries[id].nearestKnownBlockHash;
        }

        // Walk only a few steps to keep an upper limit on gas costs.
        for (uint step = 0; step < _steps; step++) {
            blockHeight -= 1;
            (blockHash,) = getBlockHeader(blockHash);

            if (blockHeight == lotteries[id].decidingBlock) { break; }
        }

        // Store the progress to pick up from there next time.
        lotteries[id].nearestKnownBlock = blockHeight;
        lotteries[id].nearestKnownBlockHash = blockHash;
    }

    function getBlockHeader(int blockHash)
             internal returns (int prevBlockHash, uint timestamp) {
        // We expect free access to BTCRelay.
        int fee = BTCRelay(btcRelay).getFeeAmount(blockHash);
        require(fee == 0);

        // Code is based on tjade273's BTCRelayTools.
        bytes32[5] memory blockHeader =
            BTCRelay(btcRelay).getBlockHeader(blockHash);

        prevBlockHash = 0;
        for (uint i = 0; i < 32; i++) {
            uint pos = 68 + i;  // prev. block hash starts at position 68
            byte data = blockHeader[pos / 32][pos % 32];
            prevBlockHash = prevBlockHash | int(data) * int(0x100 ** i);
        }

        timestamp = 0;
        for (i = 0; i < 4; i++) {
            pos = 132 + i;  // timestamp starts at position 132
            data = blockHeader[pos / 32][pos % 32];
            timestamp = timestamp | uint(data) * uint(0x100 ** i);
        }

        return (prevBlockHash, timestamp);
    }

    function getMessageLength(string _message) constant returns (uint) {
        return bytes(_message).length;
    }

    function setMessage(int _id, string _message)
             afterInitialization {
        require(lotteries[_id].winner != 0);
        require(lotteries[_id].winner == msg.sender);
        require(getMessageLength(_message) <= 500);
        lotteries[_id].message = _message;
    }

    function getLotteryDetailsA(int _id)
             constant returns (int _actualId, uint _jackpot,
                               int _decidingBlock,
                               uint _numTickets, uint _numTicketsSold,
                               uint _lastSaleTimestamp, uint _ticketPrice) {
        if (_id == -1) {
            _actualId = id;
        } else {
            _actualId = _id;
        }
        _jackpot = lotteries[_actualId].jackpot;
        _decidingBlock = lotteries[_actualId].decidingBlock;
        _numTickets = lotteries[_actualId].numTickets;
        _numTicketsSold = lotteries[_actualId].numTicketsSold;
        _lastSaleTimestamp = lastSaleTimestamp;
        _ticketPrice = lotteries[_actualId].ticketPrice;
    }

    function getLotteryDetailsB(int _id)
             constant returns (int _actualId,
                               int _winningTicket, address _winner,
                               uint _finalizationBlock, address _finalizer,
                               string _message,
                               int _prevLottery, int _nextLottery,
                               int _blockHeight) {
        if (_id == -1) {
            _actualId = id;
        } else {
            _actualId = _id;
        }
        _winningTicket = lotteries[_actualId].winningTicket;
        _winner = lotteries[_actualId].winner;
        _finalizationBlock = lotteries[_actualId].finalizationBlock;
        _finalizer = lotteries[_actualId].finalizer;
        _message = lotteries[_actualId].message;

        if (_actualId == 0) {
            _prevLottery = -1;
        } else {
            _prevLottery = _actualId - 1;
        }
        if (_actualId == id) {
            _nextLottery = -1;
        } else {
            _nextLottery = _actualId + 1;
        }

        _blockHeight = BTCRelay(btcRelay).getLastBlockHeight();
    }

    function getTicketDetails(int _id, uint _offset, uint _n, address _addr)
             constant returns (uint8[] details) {
        require(_offset + _n <= lotteries[_id].numTickets);

        details = new uint8[](_n);
        for (uint i = 0; i < _n; i++) {
            address addr = lotteries[_id].tickets[_offset + i];
            if (addr == _addr && _addr != 0) {
                details[i] = 2;
            } else if (addr != 0) {
                details[i] = 1;
            } else {
                details[i] = 0;
            }
        }
    }

    function getFullTicketDetails(int _id, uint _offset, uint _n)
             constant returns (address[] details) {
        require(_offset + _n <= lotteries[_id].numTickets);

        details = new address[](_n);
        for (uint i = 0; i < _n; i++) {
            details[i] = lotteries[_id].tickets[_offset + i];
        }
    }

    function getTicketOwner(int _id, uint _ticket) constant returns (address) {
        require(_id >= 0);
        return lotteries[_id].tickets[_ticket];
    }

    function getRecentActivity()
             constant returns (int _id, uint _idx, uint[1000] _recentActivity) {
        _id = id;
        _idx = recentActivityIdx;
        for (uint i = 0; i < recentActivity.length; i++) {
            _recentActivity[i] = recentActivity[i];
        }
    }

    function setAdmin(address _admin) onlyOwner {
        admin = _admin;
    }

    function proposeOwner(address _owner) onlyOwner {
        proposedOwner = _owner;
    }

    function acceptOwnership() {
        require(proposedOwner != 0);
        require(msg.sender == proposedOwner);
        owner = proposedOwner;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[],"name":"lastInitTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"int256"}],"name":"lotteries","outputs":[{"name":"jackpot","type":"uint256"},{"name":"decidingBlock","type":"int256"},{"name":"numTickets","type":"uint256"},{"name":"numTicketsSold","type":"uint256"},{"name":"ticketPrice","type":"uint256"},{"name":"affiliateCut","type":"uint256"},{"name":"winningTicket","type":"int256"},{"name":"winner","type":"address"},{"name":"finalizationBlock","type":"uint256"},{"name":"finalizer","type":"address"},{"name":"message","type":"string"},{"name":"nearestKnownBlock","type":"int256"},{"name":"nearestKnownBlockHash","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"recentActivity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"needsBlockFinalization","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"needsLotteryFinalization","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"int256"},{"name":"_offset","type":"uint256"},{"name":"_n","type":"uint256"},{"name":"_addr","type":"address"}],"name":"getTicketDetails","outputs":[{"name":"details","type":"uint8[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"affiliateNetwork","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_message","type":"string"}],"name":"getMessageLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_admin","type":"address"}],"name":"setAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finalizeBlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"int256"}],"name":"getLotteryDetailsB","outputs":[{"name":"_actualId","type":"int256"},{"name":"_winningTicket","type":"int256"},{"name":"_winner","type":"address"},{"name":"_finalizationBlock","type":"uint256"},{"name":"_finalizer","type":"address"},{"name":"_message","type":"string"},{"name":"_prevLottery","type":"int256"},{"name":"_nextLottery","type":"int256"},{"name":"_blockHeight","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getRecentActivity","outputs":[{"name":"_id","type":"int256"},{"name":"_idx","type":"uint256"},{"name":"_recentActivity","type":"uint256[1000]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"recentActivityIdx","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"id","outputs":[{"name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_id","type":"int256"},{"name":"_message","type":"string"}],"name":"setMessage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"int256"},{"name":"_offset","type":"uint256"},{"name":"_n","type":"uint256"}],"name":"getFullTicketDetails","outputs":[{"name":"details","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"proposeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"needsInitialization","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_jackpot","type":"uint256"},{"name":"_numTickets","type":"uint256"},{"name":"_ticketPrice","type":"uint256"}],"name":"initLottery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"proposedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"btcRelay","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"int256"}],"name":"getLotteryDetailsA","outputs":[{"name":"_actualId","type":"int256"},{"name":"_jackpot","type":"uint256"},{"name":"_decidingBlock","type":"int256"},{"name":"_numTickets","type":"uint256"},{"name":"_numTicketsSold","type":"uint256"},{"name":"_lastSaleTimestamp","type":"uint256"},{"name":"_ticketPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"escrow","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tickets","type":"uint256[]"},{"name":"_mark","type":"uint256"},{"name":"_affiliate","type":"uint256"}],"name":"buyTickets","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_id","type":"int256"},{"name":"_ticket","type":"uint256"}],"name":"getTicketOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_steps","type":"uint256"}],"name":"finalizeLottery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastSaleTimestamp","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"admin","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_btcRelay","type":"address"},{"name":"_escrow","type":"address"},{"name":"_affiliateNetwork","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"mark","type":"uint256"},{"indexed":false,"name":"reason","type":"uint8"}],"name":"PurchaseFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"buyer","type":"address"},{"indexed":false,"name":"mark","type":"uint256"}],"name":"PurchaseSuccessful","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052600019600355341561001557600080fd5b604051606080611cfb83398101604052808051919060200180519190602001805160008054600160a060020a031990811633600160a060020a0390811691821784556001805484169092179091556103f080548316988216989098179097556103f180548216968816969096179095556103f28054909516919095161790925550611c54918291506100a790396000f3006060604052600436106101665763ffffffff60e060020a60003504166302baaf40811461016b578063179b51b1146101905780631b7cf8991461029e578063347cda88146102b45780633a79a55c146102db5780634d4aa77f146102ee5780635985ac40146103695780635f8af05414610398578063704b6c02146103e957806375395a581461040a57806379ba50971461041d5780637bf0e0541461043057806388d0b42d1461051a5780638da5cb5b14610575578063a509b03014610588578063af640d0f1461059b578063b3a1362a146105ae578063b477e7d514610604578063b5ed298a14610620578063b62535391461063f578063b91bb31c14610652578063d153b60c1461066e578063debbc6eb14610681578063e23caa0614610694578063e2fdcc17146106e8578063e3c5a852146106fb578063e67eed4414610746578063ea7f7a591461075f578063f5c217da14610775578063f851a44014610788575b600080fd5b341561017657600080fd5b61017e61079b565b60405190815260200160405180910390f35b341561019b57600080fd5b6101a66004356107a1565b6040518d8152602081018d9052604081018c9052606081018b9052608081018a905260a0810189905260c08101889052600160a060020a0387811660e0830152610100808301889052908616610120830152610160820184905261018082018390526101a061014083018181528654600260018216159094026000190116929092049083018190526101c0830190869080156102835780601f1061025857610100808354040283529160200191610283565b820191906000526020600020905b81548152906001019060200180831161026657829003601f168201915b50509e50505050505050505050505050505060405180910390f35b34156102a957600080fd5b61017e600435610812565b34156102bf57600080fd5b6102c7610827565b604051901515815260200160405180910390f35b34156102e657600080fd5b6102c7610916565b34156102f957600080fd5b610316600435602435604435600160a060020a03606435166109f6565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561035557808201518382015260200161033d565b505050509050019250505060405180910390f35b341561037457600080fd5b61037c610b0f565b604051600160a060020a03909116815260200160405180910390f35b34156103a357600080fd5b61017e60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610b1f95505050505050565b34156103f457600080fd5b610408600160a060020a0360043516610b29565b005b341561041557600080fd5b610408610b73565b341561042857600080fd5b610408610c1c565b341561043b57600080fd5b610446600435610c7f565b604051808a815260200189815260200188600160a060020a0316600160a060020a0316815260200187815260200186600160a060020a0316600160a060020a0316815260200180602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b838110156104d75780820151838201526020016104bf565b50505050905090810190601f1680156105045780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390f35b341561052557600080fd5b61052d610e36565b604051838152602081018390526040810182617d0080838360005b83811015610560578082015183820152602001610548565b50505050905001935050505060405180910390f35b341561058057600080fd5b61037c610e89565b341561059357600080fd5b61017e610e98565b34156105a657600080fd5b61017e610e9e565b34156105b957600080fd5b610408600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610ea495505050505050565b341561060f57600080fd5b610316600435602435604435610f46565b341561062b57600080fd5b610408600160a060020a0360043516610ff9565b341561064a57600080fd5b6102c7611043565b341561065d57600080fd5b610408600435602435604435611070565b341561067957600080fd5b61037c61115c565b341561068c57600080fd5b61037c61116b565b341561069f57600080fd5b6106aa60043561117b565b60405196875260208701959095526040808701949094526060860192909252608085015260a084015260c083019190915260e0909101905180910390f35b34156106f357600080fd5b61037c6111dc565b6104086004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020013593506111ec92505050565b341561075157600080fd5b61037c60043560243561158f565b341561076a57600080fd5b6104086004356115ca565b341561078057600080fd5b61017e6117c6565b341561079357600080fd5b61037c6117cc565b60045481565b6103ef60205260009081526040902080546001820154600283015460038401546004850154600586015460068701546007880154600889015460098a0154600c8b0154600d8c01549a9b999a98999798969795969495600160a060020a0394851695939490921692600a909201918d565b6007816103e8811061082057fe5b0154905081565b60008060008060006003541215151561083f57600080fd5b6103f054600160a060020a03166309dd0e816000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561088857600080fd5b6102c65a03f1151561089957600080fd5b5050506040518051905091506108ae826117db565b93506000915050428310156108c35782420390505b611c20811080156108ec57506003805460009081526103ef602052604090206002810154910154145b801561090e575060035460009081526103ef6020526040902060010154600019145b935050505090565b60008060006003541215151561092b57600080fd5b6103f054600160a060020a031663023948726000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561097457600080fd5b6102c65a03f1151561098557600080fd5b505050604051805160035460009081526103ef602052604090206001015490925060001914801591506109d0575060035460009081526103ef60205260409020600101546006018112155b80156109ef575060035460009081526103ef6020526040902060080154155b91505b5090565b6109fe611b30565b60008581526103ef602052604081206002015481908686011115610a2157600080fd5b84604051805910610a2f5750595b90808252806020026020018201604052509250600091505b84821015610b05575060008681526103ef602090815260408083208885018452600b01909152902054600160a060020a0390811690841681148015610a945750600160a060020a03841615155b15610abd576002838381518110610aa757fe5b60ff909216602092830290910190910152610afa565b600160a060020a03811615610ada576001838381518110610aa757fe5b6000838381518110610ae857fe5b60ff9092166020928302909101909101525b600190910190610a47565b5050949350505050565b6103f254600160a060020a031681565b6000815192915050565b60005433600160a060020a03908116911614610b4457600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008060035412151515610b8657600080fd5b610b8e610827565b1515610b9957600080fd5b6103f054600160a060020a031663023948726000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610be257600080fd5b6102c65a03f11515610bf357600080fd5b505050604051805160035460009081526103ef6020526040902060369091016001909101555050565b600254600160a060020a03161515610c3357600080fd5b60025433600160a060020a03908116911614610c4e57600080fd5b6002546000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b6000806000806000610c8f611b30565b6000806000896000191415610ca8576003549850610cac565b8998505b60008981526103ef60209081526040918290206006810154600782015460088301546009840154600a9094018054939e50600160a060020a039283169d50909b509216985090926002600019600184161561010002019092169190910491601f830181900481020190519081016040528092919081815260200182805460018160011615610100020316600290048015610d875780601f10610d5c57610100808354040283529160200191610d87565b820191906000526020600020905b815481529060010190602001808311610d6a57829003601f168201915b505050505093508860001415610da1576000199250610da8565b6001890392505b600354891415610dbc576000199150610dc3565b8860010191505b6103f054600160a060020a031663023948726000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610e0c57600080fd5b6102c65a03f11515610e1d57600080fd5b5050506040518051905090509193959799909294969850565b600080610e41611b42565b600354600654909350915060005b6103e8811015610e83576007816103e88110610e6757fe5b015482826103e88110610e7657fe5b6020020152600101610e4f565b50909192565b600054600160a060020a031681565b60065481565b60035481565b6003546000901215610eb557600080fd5b60008281526103ef6020526040902060070154600160a060020a03161515610edc57600080fd5b60008281526103ef602052604090206007015433600160a060020a03908116911614610f0757600080fd5b6101f4610f1382610b1f565b1115610f1e57600080fd5b60008281526103ef60205260409020600a01818051610f41929160200190611b6b565b505050565b610f4e611b30565b60008481526103ef60205260408120600201548484011115610f6f57600080fd5b82604051805910610f7d5750595b90808252806020026020018201604052509150600090505b82811015610ff15760008581526103ef602090815260408083208785018452600b01909152902054600160a060020a0316828281518110610fd257fe5b600160a060020a03909216602092830290910190910152600101610f95565b509392505050565b60005433600160a060020a0390811691161461101457600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600354600019148061106a575060035460009081526103ef6020526040812060080154115b90505b90565b6000805433600160a060020a039081169116148061109c575060015433600160a060020a039081169116145b15156110a757600080fd5b6110af611043565b15156110ba57600080fd5b8282028490116110c957600080fd5b60038054600190810180835560009081526103ef60205260408082208890558354825280822060001993018390558354825280822060029081018890558454835281832060040187905593548252902060060155838581151561112857fe5b04830381151561113457fe5b60035460009081526103ef602052604081209290910460059283015542600455905550505050565b600254600160a060020a031681565b6103f054600160a060020a031681565b600080600080600080600087600019141561119a57600354965061119e565b8796505b50505060008481526103ef602052604090208054600182015460028301546003840154600554600490950154989a9399509197909650909450919250565b6103f154600160a060020a031681565b6000806000806000806003541215151561120557600080fd5b6003805460009081526103ef60205260409020600281015491015414156112b55733600160a060020a03167f30fb641b8def53b5cbac985d2438ff724798a80a8887f82566ebcebb33a809f68860006040518083815260200182600181111561126a57fe5b60ff1681526020019250505060405180910390a2600160a060020a0333163480156108fc0290604051600060405180830381858888f1935050505015156112b057600080fd5b611585565b60008851116112c357600080fd5b60035460009081526103ef602052604090206004015488510234146112e757600080fd5b600094505b87518510156113ba5787858151811061130157fe5b906020019060200201519350600084101561131b57600080fd5b60035460009081526103ef6020526040902060020154841061133c57600080fd5b60035460009081526103ef60209081526040808320878452600b01909152902054600160a060020a0316156113af5733600160a060020a03167f30fb641b8def53b5cbac985d2438ff724798a80a8887f82566ebcebb33a809f68860016040518083815260200182600181111561126a57fe5b6001909401936112ec565b600094505b8751851015611461578785815181106113d457fe5b9060200190602002015160035460009081526103ef60209081526040808320848452600b019091529020805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a031617905560065490945084906007906103e8811061143a57fe5b015560068054600101908190556103e890106114565760006006555b6001909401936113bf565b87516003805460009081526103ef60205260408082209092018054909301909255426005556103f254600160a060020a031691633fb8b69291899190516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156114d857600080fd5b6102c65a03f115156114e957600080fd5b5050506040518051935050600160a060020a038316156115475787516103ef600060035481526020019081526020016000206005015402915082600160a060020a03166188b883604051600060405180830381858888f19450505050505b33600160a060020a03167fd36711665fc21bf1b85b0d418dbd344aadc6c179646ee976400fc6b209df60e18860405190815260200160405180910390a25b5050505050505050565b60008083121561159e57600080fd5b5060009182526103ef60209081526040808420928452600b9092019052902054600160a060020a031690565b600080600080600080600354121515156115e357600080fd5b6115eb610916565b15156115f657600080fd5b60035460009081526103ef602052604090206001810154600c909101541461162657611621866119a7565b6117be565b60035460009081526103ef602052604090206002810154600d9091015481151561164c57fe5b6003805460009081526103ef6020818152604080842096909507808452600b8701825285842054929091526006909501859055825482528382206007018054600160a060020a0392831673ffffffffffffffffffffffffffffffffffffffff19918216811790925584548452858420436008909101559354835293909120600901805490921632909116179055909550935083156117905760035460009081526103ef602052604090819020549350600160a060020a03851690620493e090859051600060405180830381858888f193505050509150811515611790576103f154600160a060020a031663f340fa01848660405160e060020a63ffffffff8516028152600160a060020a0390911660048201526024016000604051808303818588803b151561177a57600080fd5b6125ee5a03f1151561178b57600080fd5b505050505b600154600160a060020a0390811690620493e090301631604051600060405180830381858888f19450505050505b505050505050565b60055481565b600154600160a060020a031681565b60008060006117e8611be5565b6103f05460009081908190600160a060020a0316630aece23c89836040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561184057600080fd5b6102c65a03f1151561185157600080fd5b5050506040518051955050841561186757600080fd5b6103f054600160a060020a0316631f79443689600060405160a0015260405160e060020a63ffffffff8416028152600481019190915260240160a060405180830381600087803b15156118b957600080fd5b6102c65a03f115156118ca57600080fd5b5050506040518060a001604052935060009650600092505b602083101561193b5760448301915083602083046005811061190057fe5b6020020151602083066020811061191357fe5b1a60f860020a029050826101000a8160f860020a9004028717965082806001019350506118e2565b60009550600092505b600483101561199d5760848301915083602083046005811061196257fe5b6020020151602083066020811061197557fe5b1a60f860020a029050826101000a8160f860020a900402861795508280600101935050611944565b5050505050915091565b60035460009081526103ef60205260408120600c0154819081901515611a99576103f054600160a060020a031663023948726000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a1057600080fd5b6102c65a03f11515611a2157600080fd5b50505060405180516103f054909450600160a060020a031690506309dd0e816000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a7757600080fd5b6102c65a03f11515611a8857600080fd5b505050604051805190509150611abc565b60035460009081526103ef60205260409020600c810154600d9091015490935091505b5060005b83811015611b0557600183039250611ad7826117db565b5060035460009081526103ef6020526040902060010154909250831415611afd57611b05565b600101611ac0565b506003805460009081526103ef6020526040808220600c01949094559054815291909120600d015550565b60206040519081016040526000815290565b617d006040519081016040526103e8815b6000815260200190600190039081611b535790505090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611bac57805160ff1916838001178555611bd9565b82800160010185558215611bd9579182015b82811115611bd9578251825591602001919060010190611bbe565b506109f2929150611c0e565b60a06040519081016040526005815b60008152600019919091019060200181611bf45790505090565b61106d91905b808211156109f25760008155600101611c145600a165627a7a72305820f039b9d4fe33369cb8c1ae668969684dbea3a43f475cea705ee4b73e88b6b839002900000000000000000000000041f274c0023f83391de4e0733c609df5a124c3d4000000000000000000000000e28942df3b9502193a3547e6f6bad16ce63b1e2d00000000000000000000000053848e6049e19bf83acba186aeb42117011becb6

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

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000041f274c0023f83391de4e0733c609df5a124c3d4
Arg [1] : 000000000000000000000000e28942df3b9502193a3547e6f6bad16ce63b1e2d
Arg [2] : 00000000000000000000000053848e6049e19bf83acba186aeb42117011becb6


   Swarm Source:
bzzr://f039b9d4fe33369cb8c1ae668969684dbea3a43f475cea705ee4b73e88b6b839

 

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.