ETH Price: $2,805.15 (+1.41%)

Contract

0xad0528Aa8FFefB94a22c24720A431822591c1d38
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Self Destroy70258122019-01-07 13:03:152239 days ago1546866195IN
0xad0528Aa...2591c1d38
0 ETH0.000040533
Deactivate70257892019-01-07 12:55:172239 days ago1546865717IN
0xad0528Aa...2591c1d38
0 ETH0.000042463
New Round70227482019-01-06 23:58:332239 days ago1546819113IN
0xad0528Aa...2591c1d38
0 ETH0.0022573922
End Round70227342019-01-06 23:53:232239 days ago1546818803IN
0xad0528Aa...2591c1d38
0 ETH0.0025323322
Draw Round70227152019-01-06 23:48:302239 days ago1546818510IN
0xad0528Aa...2591c1d38
0 ETH0.0061682522
Lock Round70225352019-01-06 23:03:312239 days ago1546815811IN
0xad0528Aa...2591c1d38
0 ETH0.0014456822
New Round70171652019-01-05 23:58:242240 days ago1546732704IN
0xad0528Aa...2591c1d38
0 ETH0.0022573922
End Round70171532019-01-05 23:53:522240 days ago1546732432IN
0xad0528Aa...2591c1d38
0 ETH0.0025323322
Draw Round70171292019-01-05 23:48:182240 days ago1546732098IN
0xad0528Aa...2591c1d38
0 ETH0.0061682522
Lock Round70169632019-01-05 23:03:382240 days ago1546729418IN
0xad0528Aa...2591c1d38
0 ETH0.0014456822
New Round70115432019-01-04 23:58:262241 days ago1546646306IN
0xad0528Aa...2591c1d38
0 ETH0.0022573922
End Round70115262019-01-04 23:53:252241 days ago1546646005IN
0xad0528Aa...2591c1d38
0 ETH0.0025323322
Draw Round70115092019-01-04 23:48:212241 days ago1546645701IN
0xad0528Aa...2591c1d38
0 ETH0.0061682522
Lock Round70113222019-01-04 23:03:232241 days ago1546643003IN
0xad0528Aa...2591c1d38
0 ETH0.0014456822
New Round70059912019-01-03 23:58:122242 days ago1546559892IN
0xad0528Aa...2591c1d38
0 ETH0.0022573922
End Round70059762019-01-03 23:53:252242 days ago1546559605IN
0xad0528Aa...2591c1d38
0 ETH0.0025323322
Draw Round70059602019-01-03 23:48:222242 days ago1546559302IN
0xad0528Aa...2591c1d38
0 ETH0.0058382522
Lock Round70057872019-01-03 23:03:242242 days ago1546556604IN
0xad0528Aa...2591c1d38
0 ETH0.0014456822
New Round70004132019-01-02 23:58:482243 days ago1546473528IN
0xad0528Aa...2591c1d38
0 ETH0.0022573922
End Round70003872019-01-02 23:53:332243 days ago1546473213IN
0xad0528Aa...2591c1d38
0 ETH0.0025323322
Draw Round70003632019-01-02 23:48:042243 days ago1546472884IN
0xad0528Aa...2591c1d38
0 ETH0.0061682522
Lock Round70001842019-01-02 23:03:232243 days ago1546470203IN
0xad0528Aa...2591c1d38
0 ETH0.0014456822
New Round69944792019-01-01 23:58:202244 days ago1546387100IN
0xad0528Aa...2591c1d38
0 ETH0.0022573922
End Round69944592019-01-01 23:53:202244 days ago1546386800IN
0xad0528Aa...2591c1d38
0 ETH0.0025323322
Draw Round69944382019-01-01 23:48:292244 days ago1546386509IN
0xad0528Aa...2591c1d38
0 ETH0.0061682522
View all transactions

Latest 7 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
70258122019-01-07 13:03:152239 days ago1546866195
0xad0528Aa...2591c1d38
4.01 ETH
67765122018-11-26 14:00:202281 days ago1543240820
0xad0528Aa...2591c1d38
1.746 ETH
67765102018-11-26 13:59:372281 days ago1543240777
0xad0528Aa...2591c1d38
1.746 ETH
66569482018-11-06 23:54:192300 days ago1541548459
0xad0528Aa...2591c1d38
0.018 ETH
66325892018-11-02 23:54:192304 days ago1541202859
0xad0528Aa...2591c1d38
0.018 ETH
66176212018-10-31 12:46:112307 days ago1540989971
0xad0528Aa...2591c1d38
4.806 ETH
65798742018-10-25 8:40:192313 days ago1540456819
0xad0528Aa...2591c1d38
1.746 ETH
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x2b2458531e82d10073ccad698c01520023216e065ede660b103c7eb3c48c1b2e


Contract Source Code Verified (Exact Match)

Contract Name:
Lottery

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-10-10
*/

pragma solidity 0.4.24;

contract Owned {
    address public owner;

    constructor() public {
        owner = msg.sender;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        owner = newOwner;
    }
}

contract SafeMath {
    function multiplication(uint a, uint b) internal pure returns (uint) {
        uint c = a * b;
        assert(a == 0 || c / a == b);
        return c;
    }

    function division(uint a, uint b) internal pure returns (uint) {
        assert(b > 0);
        uint c = a / b;
        assert(a == b * c + a % b);
        return c;
    }

    function subtraction(uint a, uint b) internal pure returns (uint) {
        assert(b <= a);
        return a - b;
    }

    function addition(uint a, uint b) internal pure returns (uint) {
        uint c = a + b;
        assert(c >= a);
        return c;
    }
}

contract LottoEvents {
    event BuyTicket(uint indexed _gameIndex, address indexed from, bytes numbers, uint _prizePool, uint _bonusPool);
    event LockRound(uint indexed _gameIndex, uint _state, uint indexed _blockIndex);
    event DrawRound(uint indexed _gameIndex, uint _state, uint indexed _blockIndex, string _blockHash, uint[] _winNumbers);
    event EndRound(uint indexed _gameIndex, uint _state, uint _jackpot, uint _bonusAvg, address[] _jackpotWinners, address[] _goldKeyWinners, bool _autoStartNext);
    event NewRound(uint indexed _gameIndex, uint _state, uint _initPrizeIn);
    event DumpPrize(uint indexed _gameIndex, uint _jackpot);
    event Transfer(uint indexed _gameIndex, uint value);
    event Activated(uint indexed _gameIndex);
    event Deactivated(uint indexed _gameIndex);
    event SelfDestroy(uint indexed _gameIndex);
}

library LottoModels {

    // data struct hold each ticket info
    struct Ticket {
        uint rId;           // round identity
        address player;     // the buyer
        uint btime;         // buy time
        uint[] numbers;     // buy numbers, idx 0,1,2,3,4 are red balls, idx 5 are blue balls
        bool joinBonus;     // join bonus ?
        bool useGoldKey;    // use gold key ?
    }

    // if round ended, each state is freeze, just for view
    struct Round {
        uint rId;            // current id
        uint stime;          // start time
        uint etime;          // end time
        uint8 state;         // 0: live, 1: locked, 2: drawed, 7: ended

        uint[] winNumbers;   // idx 0,1,2,3,4 are red balls, idx 5 are blue balls
        address[] winners;   // the winner's addresses

        uint ethIn;          // how much eth in this Round
        uint prizePool;      // how much eth in prize pool, 40% of ethIn add init prize in
        uint bonusPool;      // how much eth in bonus pool, 40% of ethIn
        uint teamFee;        // how much eth to team, 20% of ethIn

        uint btcBlockNoWhenLock; // the btc block no when lock this round
        uint btcBlockNo;         // use for get win numbers, must higer than btcBlockNoWhenLock;
        string btcBlockHash;     // use for get win numbers

        uint bonusAvg;       // average bouns price for players
        uint jackpot;        // the jackpot to pay
        uint genGoldKeys;    // how many gold key gens
    }
}

contract Lottery is Owned, SafeMath, LottoEvents {
    string constant version = "1.0.1";

    uint constant private GOLD_KEY_CAP = 1500 ether;
    uint constant private BUY_LIMIT_CAP = 100;
    uint8 constant private ROUND_STATE_LIVE = 0;
    uint8 constant private ROUND_STATE_LOCKED = 1;
    uint8 constant private ROUND_STATE_DRAWED = 2;
    uint8 constant private ROUND_STATE_ENDED = 7;

    mapping (uint => LottoModels.Round) public rounds;       // all rounds, rid -> round
    mapping (uint => LottoModels.Ticket[]) public tickets;   // all tickets, rid -> ticket array
    mapping (address => uint) public goldKeyRepo;            // all gold key repo, keeper address -> key count
    address[] private goldKeyKeepers;                           // all gold key keepers, just for clear mapping?!

    uint public goldKeyCounter = 0;               // count for gold keys
    uint public unIssuedGoldKeys = 0;             // un issued gold keys
    uint public price = 0.03 ether;               // the price for each bet
    bool public activated = false;                // contract live?
    uint public rId;                              // current round id

    constructor() public {
        rId = 0;
        activated = true;
        internalNewRound(0, 0); // init with prize 0, bonus 0
    }

    // buy ticket
    // WARNING!!!solidity only allow 16 local variables
    function()
        isHuman()
        isActivated()
        public
        payable {

        require(owner != msg.sender, "owner cannot buy.");
        require(address(this) != msg.sender, "contract cannot buy.");
        require(rounds[rId].state == ROUND_STATE_LIVE,  "this round not start yet, please wait.");
        // data format check
        require(msg.data.length > 9,  "data struct not valid");
        require(msg.data.length % 9 == 1, "data struct not valid");
        // price check
        require(uint(msg.data[0]) < BUY_LIMIT_CAP, "out of buy limit one time.");
        require(msg.value == uint(msg.data[0]) * price, "price not right, please check.");


        uint i = 1;
        while(i < msg.data.length) {
            // fill data
            // [0]: how many
            // [1]: how many gold key use?
            // [2]: join bonus?
            // [3-7]: red balls, [8]: blue ball
            uint _times = uint(msg.data[i++]);
            uint _goldKeys = uint(msg.data[i++]);
            bool _joinBonus = uint(msg.data[i++]) > 0;
            uint[] memory _numbers = new uint[](6);
            for(uint j = 0; j < 6; j++) {
                _numbers[j] = uint(msg.data[i++]);
            }

            // every ticket
            for (uint k = 0; k < _times; k++) {
                bool _useGoldKey = false;
                if (_goldKeys > 0 && goldKeyRepo[msg.sender] > 0) { // can use gold key?
                    _goldKeys--; // reduce you keys you want
                    goldKeyRepo[msg.sender]--; // reduce you keys in repo
                    _useGoldKey = true;
                }
                tickets[rId].push(LottoModels.Ticket(rId, msg.sender,  now, _numbers, _joinBonus, _useGoldKey));
            }
        }

        // update round data
        rounds[rId].ethIn = addition(rounds[rId].ethIn, msg.value);
        uint _amount = msg.value * 4 / 10;
        rounds[rId].prizePool = addition(rounds[rId].prizePool, _amount); // 40% for prize
        rounds[rId].bonusPool = addition(rounds[rId].bonusPool, _amount); // 40% for bonus
        rounds[rId].teamFee = addition(rounds[rId].teamFee, division(_amount, 2));   // 20% for team
        // check gen gold key?
        internalIncreaseGoldKeyCounter(_amount);

        emit BuyTicket(rId, msg.sender, msg.data, rounds[rId].prizePool, rounds[rId].bonusPool);
    }


    // core logic
    //
    // 1. lock the round, can't buy this round
    // 2. on-chain calc win numbuers
    // 3. off-chain calc jackpot, jackpot winners, goldkey winners, average bonus, blue number hits not share bonus.
    // if compute on-chain, out of gas
    // 4. end this round

    // 1. lock the round, can't buy this round
    function lockRound(uint btcBlockNo)
    isActivated()
    onlyOwner()
    public {
        require(rounds[rId].state == ROUND_STATE_LIVE, "this round not live yet, no need lock");
        rounds[rId].btcBlockNoWhenLock = btcBlockNo;
        rounds[rId].state = ROUND_STATE_LOCKED;
        emit LockRound(rId, ROUND_STATE_LOCKED, btcBlockNo);
    }

    // 2. on-chain calc win numbuers
    function drawRound(
        uint  btcBlockNo,
        string  btcBlockHash
    )
    isActivated()
    onlyOwner()
    public {
        require(rounds[rId].state == ROUND_STATE_LOCKED, "this round not locked yet, please lock it first");
        require(rounds[rId].btcBlockNoWhenLock < btcBlockNo,  "the btc block no should higher than the btc block no when lock this round");

        // calculate winner
        rounds[rId].winNumbers = calcWinNumbers(btcBlockHash);
        rounds[rId].btcBlockHash = btcBlockHash;
        rounds[rId].btcBlockNo = btcBlockNo;
        rounds[rId].state = ROUND_STATE_DRAWED;

        emit DrawRound(rId, ROUND_STATE_DRAWED, btcBlockNo, btcBlockHash, rounds[rId].winNumbers);
    }

    // 3. off-chain calc
    // 4. end this round
    function endRound(
        uint jackpot,
        uint bonusAvg,
        address[] jackpotWinners,
        address[] goldKeyWinners,
        bool autoStartNext
    )
    isActivated()
    onlyOwner()
    public {
        require(rounds[rId].state == ROUND_STATE_DRAWED, "this round not drawed yet, please draw it first");

        // end this round
        rounds[rId].state = ROUND_STATE_ENDED;
        rounds[rId].etime = now;
        rounds[rId].jackpot = jackpot;
        rounds[rId].bonusAvg = bonusAvg;
        rounds[rId].winners = jackpotWinners;

        // if jackpot is this contract addr or owner addr, delete it

        // if have winners, all keys will gone.
        if (jackpotWinners.length > 0 && jackpot > 0) {
            unIssuedGoldKeys = 0; // clear un issued gold keys
            // clear players gold key
            // no direct delete mapping in solidity
            // we give an array to store gold key keepers
            // clearing mapping from key keepers
            // delete keepers
            for (uint i = 0; i < goldKeyKeepers.length; i++) {
                goldKeyRepo[goldKeyKeepers[i]] = 0;
            }
            delete goldKeyKeepers;
        } else {
            // else reward gold keys
            if (unIssuedGoldKeys > 0) {
                for (uint k = 0; k < goldKeyWinners.length; k++) {
                    // update repo
                    address _winner = goldKeyWinners[k];

                    // except this address
                    if (_winner == address(this)) {
                        continue;
                    }

                    goldKeyRepo[_winner]++;

                    // update keepers
                    bool _hasKeeper = false;
                    for (uint j = 0; j < goldKeyKeepers.length; j++) {
                        if (goldKeyKeepers[j] == _winner) {
                            _hasKeeper = true;
                            break;
                        }
                    }
                    if (!_hasKeeper) { // no keeper? push it in.
                        goldKeyKeepers.push(_winner);
                    }

                    unIssuedGoldKeys--;
                    if (unIssuedGoldKeys <= 0) { // no more gold keys, let's break;
                        break;
                    }

                }
            }
            // move this round gen gold key to un issued gold keys
            unIssuedGoldKeys = addition(unIssuedGoldKeys, rounds[rId].genGoldKeys);
        }

        emit EndRound(rId, ROUND_STATE_ENDED, jackpot, bonusAvg, jackpotWinners, goldKeyWinners, autoStartNext);
        // round ended

        // start next?
        if (autoStartNext) {
            newRound();
        }
    }

    function newRound()
    isActivated()
    onlyOwner()
    public {
        // check this round is ended?
        require(rounds[rId].state == ROUND_STATE_ENDED, "this round not ended yet, please end it first");

        // lets start next round
        // calculate prize to move, (prize pool - jackpot to pay)
        uint _initPrizeIn = subtraction(rounds[rId].prizePool, rounds[rId].jackpot);
        // move bonus pool, if no one share bonus(maybe)
        uint _initBonusIn = rounds[rId].bonusPool;
        if (rounds[rId].bonusAvg > 0) { // if someone share bonus, bonusAvg > 0, move 0
            _initBonusIn = 0;
        }
        // move to new round
        internalNewRound(_initPrizeIn, _initBonusIn);

        emit NewRound(rId, ROUND_STATE_LIVE, _initPrizeIn);
    }

    function internalNewRound(uint _initPrizeIn, uint _initBonusIn) internal {
        rId++;
        rounds[rId].rId = rId;
        rounds[rId].stime = now;
        rounds[rId].state = ROUND_STATE_LIVE;
        rounds[rId].prizePool = _initPrizeIn;
        rounds[rId].bonusPool = _initBonusIn;
    }
    
    function internalIncreaseGoldKeyCounter(uint _amount) internal {
        goldKeyCounter = addition(goldKeyCounter, _amount);
        if (goldKeyCounter >= GOLD_KEY_CAP) {
            rounds[rId].genGoldKeys = addition(rounds[rId].genGoldKeys, 1);
            goldKeyCounter = subtraction(goldKeyCounter, GOLD_KEY_CAP);
        }
    }

    // utils
    function calcWinNumbers(string blockHash)
    public
    pure
    returns (uint[]) {
        bytes32 random = keccak256(bytes(blockHash));
        uint[] memory allRedNumbers = new uint[](40);
        uint[] memory allBlueNumbers = new uint[](10);
        uint[] memory winNumbers = new uint[](6);
        for (uint i = 0; i < 40; i++) {
            allRedNumbers[i] = i + 1;
            if(i < 10) {
                allBlueNumbers[i] = i;
            }
        }
        for (i = 0; i < 5; i++) {
            uint n = 40 - i;
            uint r = (uint(random[i * 4]) + (uint(random[i * 4 + 1]) << 8) + (uint(random[i * 4 + 2]) << 16) + (uint(random[i * 4 + 3]) << 24)) % (n + 1);
            winNumbers[i] = allRedNumbers[r];
            allRedNumbers[r] = allRedNumbers[n - 1];
        }
        uint t = (uint(random[i * 4]) + (uint(random[i * 4 + 1]) << 8) + (uint(random[i * 4 + 2]) << 16) + (uint(random[i * 4 + 3]) << 24)) % 10;
        winNumbers[5] = allBlueNumbers[t];
        return winNumbers;
    }

    // for views
    function getKeys() public view returns(uint) {
        return goldKeyRepo[msg.sender];
    }
    
    function getRoundByRId(uint _rId)
    public
    view
    returns (uint[] res){
        if(_rId > rId) return res;
        res = new uint[](18);
        uint k;
        res[k++] = _rId;
        res[k++] = uint(rounds[_rId].state);
        res[k++] = rounds[_rId].ethIn;
        res[k++] = rounds[_rId].prizePool;
        res[k++] = rounds[_rId].bonusPool;
        res[k++] = rounds[_rId].teamFee;
        if (rounds[_rId].winNumbers.length == 0) {
            for (uint j = 0; j < 6; j++)
                res[k++] = 0;
        } else {
            for (j = 0; j < 6; j++)
                res[k++] = rounds[_rId].winNumbers[j];
        }
        res[k++] = rounds[_rId].bonusAvg;
        res[k++] = rounds[_rId].jackpot;
        res[k++] = rounds[_rId].genGoldKeys;
        res[k++] = rounds[_rId].btcBlockNo;
        res[k++] = rounds[_rId].stime;
        res[k++] = rounds[_rId].etime;
    }

    // --- danger ops ---

    // angel send luck for players
    function dumpPrize()
    isActivated()
    onlyOwner()
    public
    payable {
        require(rounds[rId].state == ROUND_STATE_LIVE, "this round not live yet.");
        rounds[rId].ethIn = addition(rounds[rId].ethIn, msg.value);
        rounds[rId].prizePool = addition(rounds[rId].prizePool, msg.value);
        // check gen gold key?
        internalIncreaseGoldKeyCounter(msg.value);
        emit DumpPrize(rId, msg.value);
    }

    function activate() public onlyOwner {
        activated = true;
        emit Activated(rId);
    }

    function deactivate() public onlyOwner {
        activated = false;
        emit Deactivated(rId);
    }

    function selfDestroy() public onlyOwner {
        selfdestruct(msg.sender);
        emit SelfDestroy(rId);
    }

    function transferToOwner(uint amount) public payable onlyOwner {
        msg.sender.transfer(amount);
        emit Transfer(rId, amount);
    }
    // --- danger ops end ---

    // modifiers
    modifier isActivated() {
        require(activated == true, "its not ready yet.");
        _;
    }

    modifier isHuman() {
        address _addr = msg.sender;
        require (_addr == tx.origin);

        uint256 _codeLength;

        assembly {_codeLength := extcodesize(_addr)}
        require(_codeLength == 0, "sorry humans only");
        _;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"activate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"activated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_rId","type":"uint256"}],"name":"getRoundByRId","outputs":[{"name":"res","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getKeys","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"deactivate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"transferToOwner","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"btcBlockNo","type":"uint256"}],"name":"lockRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"rounds","outputs":[{"name":"rId","type":"uint256"},{"name":"stime","type":"uint256"},{"name":"etime","type":"uint256"},{"name":"state","type":"uint8"},{"name":"ethIn","type":"uint256"},{"name":"prizePool","type":"uint256"},{"name":"bonusPool","type":"uint256"},{"name":"teamFee","type":"uint256"},{"name":"btcBlockNoWhenLock","type":"uint256"},{"name":"btcBlockNo","type":"uint256"},{"name":"btcBlockHash","type":"string"},{"name":"bonusAvg","type":"uint256"},{"name":"jackpot","type":"uint256"},{"name":"genGoldKeys","type":"uint256"}],"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":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"name":"tickets","outputs":[{"name":"rId","type":"uint256"},{"name":"player","type":"address"},{"name":"btime","type":"uint256"},{"name":"joinBonus","type":"bool"},{"name":"useGoldKey","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"goldKeyRepo","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"jackpot","type":"uint256"},{"name":"bonusAvg","type":"uint256"},{"name":"jackpotWinners","type":"address[]"},{"name":"goldKeyWinners","type":"address[]"},{"name":"autoStartNext","type":"bool"}],"name":"endRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"goldKeyCounter","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"selfDestroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"dumpPrize","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"newRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"unIssuedGoldKeys","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"blockHash","type":"string"}],"name":"calcWinNumbers","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"btcBlockNo","type":"uint256"},{"name":"btcBlockHash","type":"string"}],"name":"drawRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"},{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"numbers","type":"bytes"},{"indexed":false,"name":"_prizePool","type":"uint256"},{"indexed":false,"name":"_bonusPool","type":"uint256"}],"name":"BuyTicket","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"},{"indexed":false,"name":"_state","type":"uint256"},{"indexed":true,"name":"_blockIndex","type":"uint256"}],"name":"LockRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"},{"indexed":false,"name":"_state","type":"uint256"},{"indexed":true,"name":"_blockIndex","type":"uint256"},{"indexed":false,"name":"_blockHash","type":"string"},{"indexed":false,"name":"_winNumbers","type":"uint256[]"}],"name":"DrawRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"},{"indexed":false,"name":"_state","type":"uint256"},{"indexed":false,"name":"_jackpot","type":"uint256"},{"indexed":false,"name":"_bonusAvg","type":"uint256"},{"indexed":false,"name":"_jackpotWinners","type":"address[]"},{"indexed":false,"name":"_goldKeyWinners","type":"address[]"},{"indexed":false,"name":"_autoStartNext","type":"bool"}],"name":"EndRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"},{"indexed":false,"name":"_state","type":"uint256"},{"indexed":false,"name":"_initPrizeIn","type":"uint256"}],"name":"NewRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"},{"indexed":false,"name":"_jackpot","type":"uint256"}],"name":"DumpPrize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"}],"name":"Activated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"}],"name":"Deactivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_gameIndex","type":"uint256"}],"name":"SelfDestroy","type":"event"}]

608060405260006005819055600655666a94d74f4300006007556008805460ff1916905534801561002f57600080fd5b5060008054600160a060020a0319163317815560098190556008805460ff19166001179055610067908064010000000061006c810204565b6100c0565b60098054600190810180835560008181526020839052604080822092835542929093019190915582548152818120600301805460ff1916905582548152818120600701949094559054835290912060080155565b612664806100cf6000396000f3006080604052600436106101275763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630f15f4c081146108f9578063186601ca14610910578063192d65c9146109395780632150c518146109a157806350197646146109c857806351b42b00146109dd57806387c1ed12146109f25780638ab4ca8a146109fd5780638c65c81f14610a155780638da5cb5b14610b06578063a035b1fe14610b37578063a374e43f14610b4c578063aab38aa614610b9e578063abfcc7d814610bbf578063b32b01d814610c5a578063b9750acf14610c6f578063c3c0befb14610c84578063c5b1d9aa14610c8c578063cc4422a214610ca1578063cfbbd90214610cb6578063ee7e18df14610d0f578063f2fde38b14610d6d575b6000808080606081808080338132821461014057600080fd5b50803b8015610199576040805160e560020a62461bcd02815260206004820152601160248201527f736f7272792068756d616e73206f6e6c79000000000000000000000000000000604482015290519081900360640190fd5b60085460ff1615156001146101e6576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415610249576040805160e560020a62461bcd02815260206004820152601160248201527f6f776e65722063616e6e6f74206275792e000000000000000000000000000000604482015290519081900360640190fd5b303314156102a1576040805160e560020a62461bcd02815260206004820152601460248201527f636f6e74726163742063616e6e6f74206275792e000000000000000000000000604482015290519081900360640190fd5b60095460009081526001602052604090206003015460ff1615610334576040805160e560020a62461bcd02815260206004820152602660248201527f7468697320726f756e64206e6f74207374617274207965742c20706c6561736560448201527f20776169742e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6009361161038c576040805160e560020a62461bcd02815260206004820152601560248201527f6461746120737472756374206e6f742076616c69640000000000000000000000604482015290519081900360640190fd5b600160093606146103e7576040805160e560020a62461bcd02815260206004820152601560248201527f6461746120737472756374206e6f742076616c69640000000000000000000000604482015290519081900360640190fd5b6064600036818181106103f657fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900410151561046f576040805160e560020a62461bcd02815260206004820152601a60248201527f6f7574206f6620627579206c696d6974206f6e652074696d652e000000000000604482015290519081900360640190fd5b6007546000368181811061047f57fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900402341415156104fa576040805160e560020a62461bcd02815260206004820152601e60248201527f7072696365206e6f742072696768742c20706c6561736520636865636b2e0000604482015290519081900360640190fd5b60019a505b368b10156107935760018b019a600090369081811061051a57fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900499506000368c806001019d50818110151561055357fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a90049850600080368d806001019e50818110151561058d57fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900411975060066040519080825280602002602001820160405280156105dd578160200160208202803883390190505b509650600095505b60068610156106465760018b019a600090369081811061060157fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a9004878781518110151561063157fe5b602090810290910101526001909501946105e5565b600094505b8985101561078e5760009350600089118015610674575033600090815260036020526040812054115b1561069c57336000908152600360205260409020805460001990810190915590980197600193505b6009546000818152600260208181526040808420815160c0810183529586523386840190815242928701928352606087018e81528f151560808901528b151560a0890152825460018082018086559489529786902089516005909202019081559151968201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390981697909717909655915193820193909355925180519294939261074d9260038501920190612489565b5060808201516004909101805460a09093015115156101000261ff001992151560ff199094169390931791909116919091179055506001949094019361064b565b6104ff565b6009546000908152600160205260409020600601546107b29034610d8e565b6009805460009081526001602052604080822060060193909355905481522060070154600a346004020493506107e89084610d8e565b60098054600090815260016020526040808220600701939093559054815220600801546108159084610d8e565b60098054600090815260016020526040808220600801939093558154815291909120015461084d90610848856002610da4565b610d8e565b600980546000908152600160205260409020015561086a83610dd8565b6009546000818152600160209081526040808320600781015460089091015482519384018290529183018290526060808452369084018190523395947fb99d53e7294a22cbb003f32a3494460628d0609d14a8f6f032cabd76362d659f949093919291908060808101868680828437604051920182900397509095505050505050a35050505050505050505050005b34801561090557600080fd5b5061090e610e4d565b005b34801561091c57600080fd5b50610925610e9f565b604080519115158252519081900360200190f35b34801561094557600080fd5b50610951600435610ea8565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561098d578181015183820152602001610975565b505050509050019250505060405180910390f35b3480156109ad57600080fd5b506109b66111f0565b60408051918252519081900360200190f35b3480156109d457600080fd5b506109b6611204565b3480156109e957600080fd5b5061090e61120a565b61090e600435611259565b348015610a0957600080fd5b5061090e6004356112d7565b348015610a2157600080fd5b50610a2d600435611434565b604051808f81526020018e81526020018d81526020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187815260200186815260200180602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015610abe578181015183820152602001610aa6565b50505050905090810190601f168015610aeb5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b348015610b1257600080fd5b50610b1b611545565b60408051600160a060020a039092168252519081900360200190f35b348015610b4357600080fd5b506109b6611554565b348015610b5857600080fd5b50610b6760043560243561155a565b60408051958652600160a060020a039094166020860152848401929092521515606084015215156080830152519081900360a00190f35b348015610baa57600080fd5b506109b6600160a060020a03600435166115b4565b348015610bcb57600080fd5b50604080516020600460443581810135838102808601850190965280855261090e958335956024803596369695606495939492019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497505050509135151592506115c6915050565b348015610c6657600080fd5b506109b6611a16565b348015610c7b57600080fd5b5061090e611a1c565b61090e611a36565b348015610c9857600080fd5b5061090e611ba9565b348015610cad57600080fd5b506109b6611d45565b348015610cc257600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610951943694929360249392840191908190840183828082843750949750611d4b9650505050505050565b348015610d1b57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261090e95833595369560449491939091019190819084018382808284375094975061208a9650505050505050565b348015610d7957600080fd5b5061090e600160a060020a03600435166123c8565b600082820183811015610d9d57fe5b9392505050565b600080808311610db057fe5b8284811515610dbb57fe5b0490508284811515610dc957fe5b068184020184141515610d9d57fe5b610de460055482610d8e565b6005819055685150ae84a8cdf0000011610e4a57610e1b600160006009548152602001908152602001600020600f01546001610d8e565b6009546000908152600160205260409020600f0155600554610e4690685150ae84a8cdf00000612423565b6005555b50565b600054600160a060020a03163314610e6457600080fd5b6008805460ff191660011790556009546040517f3ec796be1be7d03bff3a62b9fa594a60e947c1809bced06d929f145308ae57ce90600090a2565b60085460ff1681565b6060600080600954841115610ebc576111e9565b60408051601280825261026082019092529060208201610240803883395050815191945050600183019285918591908110610ef357fe5b60209081029091018101919091526000858152600191829052604090206003015484519184019360ff909116918591908110610f2b57fe5b60209081029091018101919091526000858152600191829052604090206006015484519184019390918591908110610f5f57fe5b60209081029091018101919091526000858152600191829052604090206007015484519184019390918591908110610f9357fe5b60209081029091018101919091526000858152600191829052604090206008015484519184019390918591908110610fc757fe5b60209081029091018101919091526000858152600191829052604090206009015484519184019390918591908110610ffb57fe5b6020908102909101810191909152600085815260019091526040902060040154151561105a575060005b60068110156110555782516001830192600091859190811061104357fe5b60209081029091010152600101611025565b6110b3565b5060005b60068110156110b357600084815260016020526040902060040180548290811061108457fe5b60009182526020909120015483516001840193859181106110a157fe5b6020908102909101015260010161105e565b6000848152600160208190526040909120600d0154845191840193909185919081106110db57fe5b6020908102909101810191909152600085815260019182905260409020600e01548451918401939091859190811061110f57fe5b6020908102909101810191909152600085815260019182905260409020600f01548451918401939091859190811061114357fe5b6020908102909101810191909152600085815260019182905260409020600b01548451918401939091859190811061117757fe5b6020908102909101810191909152600085815260019182905260409020810154845191840193909185919081106111aa57fe5b602090810290910181019190915260008581526001918290526040902060020154845191840193909185919081106111de57fe5b602090810290910101525b5050919050565b336000908152600360205260409020545b90565b60095481565b600054600160a060020a0316331461122157600080fd5b6008805460ff191690556009546040517fed48e4e899b34abded07dd8f092a22585a3fdec7db6b83f3927af165bf04cb1e90600090a2565b600054600160a060020a0316331461127057600080fd5b604051339082156108fc029083906000818181858888f1935050505015801561129d573d6000803e3d6000fd5b506009546040805183815290517f19f4d08442a3f0e59d6f5ed694fded7ab1ddd74be5cc60b2c3dd8fa891687f8f9181900360200190a250565b60085460ff161515600114611324576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a0316331461133b57600080fd5b60095460009081526001602052604090206003015460ff16156113ce576040805160e560020a62461bcd02815260206004820152602560248201527f7468697320726f756e64206e6f74206c697665207965742c206e6f206e65656460448201527f206c6f636b000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600980546000908152600160208181526040808420600a018690558454845292839020600301805460ff19168317905592548251918252915184937f8cce2cd32b6fe99b5bfd14b18d216efc4141239cfc480872bc95986699f6774d928290030190a350565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff169080600601549080600701549080600801549080600901549080600a01549080600b01549080600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b50505050509080600d01549080600e01549080600f015490508e565b600054600160a060020a031681565b60075481565b60026020528160005260406000208181548110151561157557fe5b60009182526020909120600590910201805460018201546002830154600490930154919450600160a060020a0316925060ff8082169161010090041685565b60036020526000908152604090205481565b600854600090819081908190819060ff16151560011461161e576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a0316331461163557600080fd5b60095460009081526001602052604090206003015460ff166002146116ca576040805160e560020a62461bcd02815260206004820152602f60248201527f7468697320726f756e64206e6f7420647261776564207965742c20706c65617360448201527f6520647261772069742066697273740000000000000000000000000000000000606482015290519081900360840190fd5b600980546000908152600160209081526040808320600301805460ff19166007179055835483528083204260029091015583548352808320600e018e905583548352808320600d018d9055925482529190208951611730926005909201918b01906124d4565b5060008851118015611742575060008a115b156117b2576000600681905594505b6004548510156117a15760006003600060048881548110151561177057fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205560019490940193611751565b6117ad60046000612542565b611916565b600060065411156118f057600093505b86518410156118f05786848151811015156117d957fe5b602090810290910101519250600160a060020a0383163014156117fb576118e5565b5050600160a060020a038116600090815260036020526040812080546001019055805b60045481101561186d5782600160a060020a031660048281548110151561184157fe5b600091825260209091200154600160a060020a03161415611865576001915061186d565b60010161181e565b8115156118cd57600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161790555b6006805460001901908190556000106118e5576118f0565b6001909301926117c2565b6006546009546000908152600160205260409020600f01546119129190610d8e565b6006555b6009547f79e5206167d2e49dbde2eda642c77eb0600e8949149fccde7cfd23d5336795ea60078c8c8c8c8c604051808760ff168152602001868152602001858152602001806020018060200184151515158152602001838103835286818151815260200191508051906020019060200280838360005b838110156119a457818101518382015260200161198c565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156119e35781810151838201526020016119cb565b505050509050019850505050505050505060405180910390a28515611a0a57611a0a611ba9565b50505050505050505050565b60055481565b600054600160a060020a03163314611a3357600080fd5b33ff5b60085460ff161515600114611a83576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a03163314611a9a57600080fd5b60095460009081526001602052604090206003015460ff1615611b07576040805160e560020a62461bcd02815260206004820152601860248201527f7468697320726f756e64206e6f74206c697665207965742e0000000000000000604482015290519081900360640190fd5b600954600090815260016020526040902060060154611b269034610d8e565b6009805460009081526001602052604080822060060193909355905481522060070154611b539034610d8e565b600954600090815260016020526040902060070155611b7134610dd8565b6009546040805134815290517f3c17e88c8194f5c001432db2492cd3fae87e067b9350d5aef53fcdfc5fe8d31a9181900360200190a2565b600854600090819060ff161515600114611bfb576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a03163314611c1257600080fd5b60095460009081526001602052604090206003015460ff16600714611ca7576040805160e560020a62461bcd02815260206004820152602d60248201527f7468697320726f756e64206e6f7420656e646564207965742c20706c6561736560448201527f20656e6420697420666972737400000000000000000000000000000000000000606482015290519081900360840190fd5b60095460009081526001602052604090206007810154600e90910154611ccd9190612423565b60095460009081526001602052604081206008810154600d9091015492945092501015611cf8575060005b611d028282612435565b60095460408051600081526020810185905281517f5aec57d81928b24d30b1a2aec0d23d693412c37d7ec106b5d8259413716bb1f4929181900390910190a25050565b60065481565b606060006060806060600080600080896040518082805190602001908083835b60208310611d8a5780518252601f199092019160209182019101611d6b565b51815160209384036101000a600019018019909216911617905260408051929094018290038220602880845261052084019095529d5090945091925050820161050080388339505060408051600a808252610160820190925292995090506020820161014080388339505060408051600680825260e0820190925292985090506020820160c080388339019050509450600093505b6028841015611e7257836001018785815181101515611e3a57fe5b60209081029091010152600a841015611e6757838685815181101515611e5c57fe5b602090810290910101525b600190930192611e1f565b600093505b6005841015611fa15760288490039250600183016018896003600488020160208110611e9f57fe5b1a60f860020a0260f860020a90049060020a0260108a87600402600201602081101515611ec857fe5b1a60f860020a0260f860020a90049060020a0260088b88600402600101602081101515611ef157fe5b1a60f860020a0260f860020a90049060020a028b88600402602081101515611f1557fe5b1a60f860020a0260f860020a9004010101811515611f2f57fe5b0691508682815181101515611f4057fe5b906020019060200201518585815181101515611f5857fe5b60209081029091010152865187906000198501908110611f7457fe5b906020019060200201518783815181101515611f8c57fe5b60209081029091010152600190930192611e77565b600a6018896003600488020160208110611fb757fe5b1a60f860020a0260f860020a90049060020a0260108a87600402600201602081101515611fe057fe5b1a60f860020a0260f860020a90049060020a0260088b8860040260010160208110151561200957fe5b1a60f860020a0260f860020a90049060020a028b8860040260208110151561202d57fe5b1a60f860020a0260f860020a900401010181151561204757fe5b069050858181518110151561205857fe5b9060200190602002015185600581518110151561207157fe5b6020908102919091010152509298975050505050505050565b60085460ff1615156001146120d7576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a031633146120ee57600080fd5b60095460009081526001602081905260409091206003015460ff1614612184576040805160e560020a62461bcd02815260206004820152602f60248201527f7468697320726f756e64206e6f74206c6f636b6564207965742c20706c65617360448201527f65206c6f636b2069742066697273740000000000000000000000000000000000606482015290519081900360840190fd5b6009546000908152600160205260409020600a0154821161223b576040805160e560020a62461bcd02815260206004820152604960248201527f7468652062746320626c6f636b206e6f2073686f756c6420686967686572207460448201527f68616e207468652062746320626c6f636b206e6f207768656e206c6f636b207460648201527f68697320726f756e640000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b61224481611d4b565b600160006009548152602001908152602001600020600401908051906020019061226f929190612489565b506009546000908152600160209081526040909120825161229892600c90920191840190612560565b50600980546000908152600160209081526040808320600b0186905583548352808320600301805460ff1916600290811790915593548084528184208251868152606081860181815289519183019190915288518a9894977ff38b9cc42d21935e0d4f210911989fe9b7af94f81c9ae8ddc09f1490dd2d1d4d9795968b96600490960195908501926080860192918801918190849084905b83811015612348578181015183820152602001612330565b50505050905090810190601f1680156123755780820380516001836020036101000a031916815260200191505b5083810382528481815481526020019150805480156123b357602002820191906000526020600020905b81548152602001906001019080831161239f575b50509550505050505060405180910390a35050565b600054600160a060020a031633146123df57600080fd5b600160a060020a03811615156123f457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561242f57fe5b50900390565b60098054600190810180835560008181526020839052604080822092835542929093019190915582548152818120600301805460ff1916905582548152818120600701949094559054835290912060080155565b8280548282559060005260206000209081019282156124c4579160200282015b828111156124c45782518255916020019190600101906124a9565b506124d09291506125cd565b5090565b828054828255906000526020600020908101928215612536579160200282015b82811115612536578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039091161782556020909201916001909101906124f4565b506124d09291506125e7565b5080546000825590600052602060002090810190610e4a91906125cd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125a157805160ff19168380011785556124c4565b828001600101855582156124c457918201828111156124c45782518255916020019190600101906124a9565b61120191905b808211156124d057600081556001016125d3565b61120191905b808211156124d057805473ffffffffffffffffffffffffffffffffffffffff191681556001016125ed5600697473206e6f74207265616479207965742e0000000000000000000000000000a165627a7a72305820fb57afed3519663974c6d5003a39a0c8a95b111e235d02bd192c77c4d4a0b9e70029

Deployed Bytecode

0x6080604052600436106101275763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630f15f4c081146108f9578063186601ca14610910578063192d65c9146109395780632150c518146109a157806350197646146109c857806351b42b00146109dd57806387c1ed12146109f25780638ab4ca8a146109fd5780638c65c81f14610a155780638da5cb5b14610b06578063a035b1fe14610b37578063a374e43f14610b4c578063aab38aa614610b9e578063abfcc7d814610bbf578063b32b01d814610c5a578063b9750acf14610c6f578063c3c0befb14610c84578063c5b1d9aa14610c8c578063cc4422a214610ca1578063cfbbd90214610cb6578063ee7e18df14610d0f578063f2fde38b14610d6d575b6000808080606081808080338132821461014057600080fd5b50803b8015610199576040805160e560020a62461bcd02815260206004820152601160248201527f736f7272792068756d616e73206f6e6c79000000000000000000000000000000604482015290519081900360640190fd5b60085460ff1615156001146101e6576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a0316331415610249576040805160e560020a62461bcd02815260206004820152601160248201527f6f776e65722063616e6e6f74206275792e000000000000000000000000000000604482015290519081900360640190fd5b303314156102a1576040805160e560020a62461bcd02815260206004820152601460248201527f636f6e74726163742063616e6e6f74206275792e000000000000000000000000604482015290519081900360640190fd5b60095460009081526001602052604090206003015460ff1615610334576040805160e560020a62461bcd02815260206004820152602660248201527f7468697320726f756e64206e6f74207374617274207965742c20706c6561736560448201527f20776169742e0000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6009361161038c576040805160e560020a62461bcd02815260206004820152601560248201527f6461746120737472756374206e6f742076616c69640000000000000000000000604482015290519081900360640190fd5b600160093606146103e7576040805160e560020a62461bcd02815260206004820152601560248201527f6461746120737472756374206e6f742076616c69640000000000000000000000604482015290519081900360640190fd5b6064600036818181106103f657fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900410151561046f576040805160e560020a62461bcd02815260206004820152601a60248201527f6f7574206f6620627579206c696d6974206f6e652074696d652e000000000000604482015290519081900360640190fd5b6007546000368181811061047f57fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900402341415156104fa576040805160e560020a62461bcd02815260206004820152601e60248201527f7072696365206e6f742072696768742c20706c6561736520636865636b2e0000604482015290519081900360640190fd5b60019a505b368b10156107935760018b019a600090369081811061051a57fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900499506000368c806001019d50818110151561055357fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a90049850600080368d806001019e50818110151561058d57fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a900411975060066040519080825280602002602001820160405280156105dd578160200160208202803883390190505b509650600095505b60068610156106465760018b019a600090369081811061060157fe5b9050013560f860020a900460f860020a02600160f860020a03191660f860020a9004878781518110151561063157fe5b602090810290910101526001909501946105e5565b600094505b8985101561078e5760009350600089118015610674575033600090815260036020526040812054115b1561069c57336000908152600360205260409020805460001990810190915590980197600193505b6009546000818152600260208181526040808420815160c0810183529586523386840190815242928701928352606087018e81528f151560808901528b151560a0890152825460018082018086559489529786902089516005909202019081559151968201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390981697909717909655915193820193909355925180519294939261074d9260038501920190612489565b5060808201516004909101805460a09093015115156101000261ff001992151560ff199094169390931791909116919091179055506001949094019361064b565b6104ff565b6009546000908152600160205260409020600601546107b29034610d8e565b6009805460009081526001602052604080822060060193909355905481522060070154600a346004020493506107e89084610d8e565b60098054600090815260016020526040808220600701939093559054815220600801546108159084610d8e565b60098054600090815260016020526040808220600801939093558154815291909120015461084d90610848856002610da4565b610d8e565b600980546000908152600160205260409020015561086a83610dd8565b6009546000818152600160209081526040808320600781015460089091015482519384018290529183018290526060808452369084018190523395947fb99d53e7294a22cbb003f32a3494460628d0609d14a8f6f032cabd76362d659f949093919291908060808101868680828437604051920182900397509095505050505050a35050505050505050505050005b34801561090557600080fd5b5061090e610e4d565b005b34801561091c57600080fd5b50610925610e9f565b604080519115158252519081900360200190f35b34801561094557600080fd5b50610951600435610ea8565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561098d578181015183820152602001610975565b505050509050019250505060405180910390f35b3480156109ad57600080fd5b506109b66111f0565b60408051918252519081900360200190f35b3480156109d457600080fd5b506109b6611204565b3480156109e957600080fd5b5061090e61120a565b61090e600435611259565b348015610a0957600080fd5b5061090e6004356112d7565b348015610a2157600080fd5b50610a2d600435611434565b604051808f81526020018e81526020018d81526020018c60ff1660ff1681526020018b81526020018a815260200189815260200188815260200187815260200186815260200180602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015610abe578181015183820152602001610aa6565b50505050905090810190601f168015610aeb5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b348015610b1257600080fd5b50610b1b611545565b60408051600160a060020a039092168252519081900360200190f35b348015610b4357600080fd5b506109b6611554565b348015610b5857600080fd5b50610b6760043560243561155a565b60408051958652600160a060020a039094166020860152848401929092521515606084015215156080830152519081900360a00190f35b348015610baa57600080fd5b506109b6600160a060020a03600435166115b4565b348015610bcb57600080fd5b50604080516020600460443581810135838102808601850190965280855261090e958335956024803596369695606495939492019291829185019084908082843750506040805187358901803560208181028481018201909552818452989b9a9989019892975090820195509350839250850190849080828437509497505050509135151592506115c6915050565b348015610c6657600080fd5b506109b6611a16565b348015610c7b57600080fd5b5061090e611a1c565b61090e611a36565b348015610c9857600080fd5b5061090e611ba9565b348015610cad57600080fd5b506109b6611d45565b348015610cc257600080fd5b506040805160206004803580820135601f8101849004840285018401909552848452610951943694929360249392840191908190840183828082843750949750611d4b9650505050505050565b348015610d1b57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261090e95833595369560449491939091019190819084018382808284375094975061208a9650505050505050565b348015610d7957600080fd5b5061090e600160a060020a03600435166123c8565b600082820183811015610d9d57fe5b9392505050565b600080808311610db057fe5b8284811515610dbb57fe5b0490508284811515610dc957fe5b068184020184141515610d9d57fe5b610de460055482610d8e565b6005819055685150ae84a8cdf0000011610e4a57610e1b600160006009548152602001908152602001600020600f01546001610d8e565b6009546000908152600160205260409020600f0155600554610e4690685150ae84a8cdf00000612423565b6005555b50565b600054600160a060020a03163314610e6457600080fd5b6008805460ff191660011790556009546040517f3ec796be1be7d03bff3a62b9fa594a60e947c1809bced06d929f145308ae57ce90600090a2565b60085460ff1681565b6060600080600954841115610ebc576111e9565b60408051601280825261026082019092529060208201610240803883395050815191945050600183019285918591908110610ef357fe5b60209081029091018101919091526000858152600191829052604090206003015484519184019360ff909116918591908110610f2b57fe5b60209081029091018101919091526000858152600191829052604090206006015484519184019390918591908110610f5f57fe5b60209081029091018101919091526000858152600191829052604090206007015484519184019390918591908110610f9357fe5b60209081029091018101919091526000858152600191829052604090206008015484519184019390918591908110610fc757fe5b60209081029091018101919091526000858152600191829052604090206009015484519184019390918591908110610ffb57fe5b6020908102909101810191909152600085815260019091526040902060040154151561105a575060005b60068110156110555782516001830192600091859190811061104357fe5b60209081029091010152600101611025565b6110b3565b5060005b60068110156110b357600084815260016020526040902060040180548290811061108457fe5b60009182526020909120015483516001840193859181106110a157fe5b6020908102909101015260010161105e565b6000848152600160208190526040909120600d0154845191840193909185919081106110db57fe5b6020908102909101810191909152600085815260019182905260409020600e01548451918401939091859190811061110f57fe5b6020908102909101810191909152600085815260019182905260409020600f01548451918401939091859190811061114357fe5b6020908102909101810191909152600085815260019182905260409020600b01548451918401939091859190811061117757fe5b6020908102909101810191909152600085815260019182905260409020810154845191840193909185919081106111aa57fe5b602090810290910181019190915260008581526001918290526040902060020154845191840193909185919081106111de57fe5b602090810290910101525b5050919050565b336000908152600360205260409020545b90565b60095481565b600054600160a060020a0316331461122157600080fd5b6008805460ff191690556009546040517fed48e4e899b34abded07dd8f092a22585a3fdec7db6b83f3927af165bf04cb1e90600090a2565b600054600160a060020a0316331461127057600080fd5b604051339082156108fc029083906000818181858888f1935050505015801561129d573d6000803e3d6000fd5b506009546040805183815290517f19f4d08442a3f0e59d6f5ed694fded7ab1ddd74be5cc60b2c3dd8fa891687f8f9181900360200190a250565b60085460ff161515600114611324576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a0316331461133b57600080fd5b60095460009081526001602052604090206003015460ff16156113ce576040805160e560020a62461bcd02815260206004820152602560248201527f7468697320726f756e64206e6f74206c697665207965742c206e6f206e65656460448201527f206c6f636b000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600980546000908152600160208181526040808420600a018690558454845292839020600301805460ff19168317905592548251918252915184937f8cce2cd32b6fe99b5bfd14b18d216efc4141239cfc480872bc95986699f6774d928290030190a350565b60016020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff169080600601549080600701549080600801549080600901549080600a01549080600b01549080600c018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115295780601f106114fe57610100808354040283529160200191611529565b820191906000526020600020905b81548152906001019060200180831161150c57829003601f168201915b50505050509080600d01549080600e01549080600f015490508e565b600054600160a060020a031681565b60075481565b60026020528160005260406000208181548110151561157557fe5b60009182526020909120600590910201805460018201546002830154600490930154919450600160a060020a0316925060ff8082169161010090041685565b60036020526000908152604090205481565b600854600090819081908190819060ff16151560011461161e576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a0316331461163557600080fd5b60095460009081526001602052604090206003015460ff166002146116ca576040805160e560020a62461bcd02815260206004820152602f60248201527f7468697320726f756e64206e6f7420647261776564207965742c20706c65617360448201527f6520647261772069742066697273740000000000000000000000000000000000606482015290519081900360840190fd5b600980546000908152600160209081526040808320600301805460ff19166007179055835483528083204260029091015583548352808320600e018e905583548352808320600d018d9055925482529190208951611730926005909201918b01906124d4565b5060008851118015611742575060008a115b156117b2576000600681905594505b6004548510156117a15760006003600060048881548110151561177057fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205560019490940193611751565b6117ad60046000612542565b611916565b600060065411156118f057600093505b86518410156118f05786848151811015156117d957fe5b602090810290910101519250600160a060020a0383163014156117fb576118e5565b5050600160a060020a038116600090815260036020526040812080546001019055805b60045481101561186d5782600160a060020a031660048281548110151561184157fe5b600091825260209091200154600160a060020a03161415611865576001915061186d565b60010161181e565b8115156118cd57600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0385161790555b6006805460001901908190556000106118e5576118f0565b6001909301926117c2565b6006546009546000908152600160205260409020600f01546119129190610d8e565b6006555b6009547f79e5206167d2e49dbde2eda642c77eb0600e8949149fccde7cfd23d5336795ea60078c8c8c8c8c604051808760ff168152602001868152602001858152602001806020018060200184151515158152602001838103835286818151815260200191508051906020019060200280838360005b838110156119a457818101518382015260200161198c565b50505050905001838103825285818151815260200191508051906020019060200280838360005b838110156119e35781810151838201526020016119cb565b505050509050019850505050505050505060405180910390a28515611a0a57611a0a611ba9565b50505050505050505050565b60055481565b600054600160a060020a03163314611a3357600080fd5b33ff5b60085460ff161515600114611a83576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a03163314611a9a57600080fd5b60095460009081526001602052604090206003015460ff1615611b07576040805160e560020a62461bcd02815260206004820152601860248201527f7468697320726f756e64206e6f74206c697665207965742e0000000000000000604482015290519081900360640190fd5b600954600090815260016020526040902060060154611b269034610d8e565b6009805460009081526001602052604080822060060193909355905481522060070154611b539034610d8e565b600954600090815260016020526040902060070155611b7134610dd8565b6009546040805134815290517f3c17e88c8194f5c001432db2492cd3fae87e067b9350d5aef53fcdfc5fe8d31a9181900360200190a2565b600854600090819060ff161515600114611bfb576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a03163314611c1257600080fd5b60095460009081526001602052604090206003015460ff16600714611ca7576040805160e560020a62461bcd02815260206004820152602d60248201527f7468697320726f756e64206e6f7420656e646564207965742c20706c6561736560448201527f20656e6420697420666972737400000000000000000000000000000000000000606482015290519081900360840190fd5b60095460009081526001602052604090206007810154600e90910154611ccd9190612423565b60095460009081526001602052604081206008810154600d9091015492945092501015611cf8575060005b611d028282612435565b60095460408051600081526020810185905281517f5aec57d81928b24d30b1a2aec0d23d693412c37d7ec106b5d8259413716bb1f4929181900390910190a25050565b60065481565b606060006060806060600080600080896040518082805190602001908083835b60208310611d8a5780518252601f199092019160209182019101611d6b565b51815160209384036101000a600019018019909216911617905260408051929094018290038220602880845261052084019095529d5090945091925050820161050080388339505060408051600a808252610160820190925292995090506020820161014080388339505060408051600680825260e0820190925292985090506020820160c080388339019050509450600093505b6028841015611e7257836001018785815181101515611e3a57fe5b60209081029091010152600a841015611e6757838685815181101515611e5c57fe5b602090810290910101525b600190930192611e1f565b600093505b6005841015611fa15760288490039250600183016018896003600488020160208110611e9f57fe5b1a60f860020a0260f860020a90049060020a0260108a87600402600201602081101515611ec857fe5b1a60f860020a0260f860020a90049060020a0260088b88600402600101602081101515611ef157fe5b1a60f860020a0260f860020a90049060020a028b88600402602081101515611f1557fe5b1a60f860020a0260f860020a9004010101811515611f2f57fe5b0691508682815181101515611f4057fe5b906020019060200201518585815181101515611f5857fe5b60209081029091010152865187906000198501908110611f7457fe5b906020019060200201518783815181101515611f8c57fe5b60209081029091010152600190930192611e77565b600a6018896003600488020160208110611fb757fe5b1a60f860020a0260f860020a90049060020a0260108a87600402600201602081101515611fe057fe5b1a60f860020a0260f860020a90049060020a0260088b8860040260010160208110151561200957fe5b1a60f860020a0260f860020a90049060020a028b8860040260208110151561202d57fe5b1a60f860020a0260f860020a900401010181151561204757fe5b069050858181518110151561205857fe5b9060200190602002015185600581518110151561207157fe5b6020908102919091010152509298975050505050505050565b60085460ff1615156001146120d7576040805160e560020a62461bcd0281526020600482015260126024820152600080516020612619833981519152604482015290519081900360640190fd5b600054600160a060020a031633146120ee57600080fd5b60095460009081526001602081905260409091206003015460ff1614612184576040805160e560020a62461bcd02815260206004820152602f60248201527f7468697320726f756e64206e6f74206c6f636b6564207965742c20706c65617360448201527f65206c6f636b2069742066697273740000000000000000000000000000000000606482015290519081900360840190fd5b6009546000908152600160205260409020600a0154821161223b576040805160e560020a62461bcd02815260206004820152604960248201527f7468652062746320626c6f636b206e6f2073686f756c6420686967686572207460448201527f68616e207468652062746320626c6f636b206e6f207768656e206c6f636b207460648201527f68697320726f756e640000000000000000000000000000000000000000000000608482015290519081900360a40190fd5b61224481611d4b565b600160006009548152602001908152602001600020600401908051906020019061226f929190612489565b506009546000908152600160209081526040909120825161229892600c90920191840190612560565b50600980546000908152600160209081526040808320600b0186905583548352808320600301805460ff1916600290811790915593548084528184208251868152606081860181815289519183019190915288518a9894977ff38b9cc42d21935e0d4f210911989fe9b7af94f81c9ae8ddc09f1490dd2d1d4d9795968b96600490960195908501926080860192918801918190849084905b83811015612348578181015183820152602001612330565b50505050905090810190601f1680156123755780820380516001836020036101000a031916815260200191505b5083810382528481815481526020019150805480156123b357602002820191906000526020600020905b81548152602001906001019080831161239f575b50509550505050505060405180910390a35050565b600054600160a060020a031633146123df57600080fd5b600160a060020a03811615156123f457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60008282111561242f57fe5b50900390565b60098054600190810180835560008181526020839052604080822092835542929093019190915582548152818120600301805460ff1916905582548152818120600701949094559054835290912060080155565b8280548282559060005260206000209081019282156124c4579160200282015b828111156124c45782518255916020019190600101906124a9565b506124d09291506125cd565b5090565b828054828255906000526020600020908101928215612536579160200282015b82811115612536578251825473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039091161782556020909201916001909101906124f4565b506124d09291506125e7565b5080546000825590600052602060002090810190610e4a91906125cd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125a157805160ff19168380011785556124c4565b828001600101855582156124c457918201828111156124c45782518255916020019190600101906124a9565b61120191905b808211156124d057600081556001016125d3565b61120191905b808211156124d057805473ffffffffffffffffffffffffffffffffffffffff191681556001016125ed5600697473206e6f74207265616479207965742e0000000000000000000000000000a165627a7a72305820fb57afed3519663974c6d5003a39a0c8a95b111e235d02bd192c77c4d4a0b9e70029

Swarm Source

bzzr://fb57afed3519663974c6d5003a39a0c8a95b111e235d02bd192c77c4d4a0b9e7

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.