ETH Price: $2,081.57 (-4.47%)

Contract

0x3fCe61b5eBfe5Cc2B6Be196BFC35DA11331C1eBd
 

Overview

ETH Balance

0.000000008 ETH

Eth Value

Less Than $0.01 (@ $2,081.57/ETH)

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Claim_reward62539432018-09-01 18:37:022742 days ago1535827022IN
0x3fCe61b5...1331C1eBd
0 ETH0.00016084
Claim_reward62537592018-09-01 17:53:482742 days ago1535824428IN
0x3fCe61b5...1331C1eBd
0 ETH0.000201015
Claim_reward62537352018-09-01 17:45:162742 days ago1535823916IN
0x3fCe61b5...1331C1eBd
0 ETH0.000096482.4
Claim_reward62535962018-09-01 17:14:542742 days ago1535822094IN
0x3fCe61b5...1331C1eBd
0 ETH0.000088134
Claim_reward62535942018-09-01 17:14:112742 days ago1535822051IN
0x3fCe61b5...1331C1eBd
0 ETH0.00016084
Claim_reward62535612018-09-01 17:05:482742 days ago1535821548IN
0x3fCe61b5...1331C1eBd
0 ETH0.000241216
Claim_reward62535522018-09-01 17:04:002742 days ago1535821440IN
0x3fCe61b5...1331C1eBd
0 ETH0.00012063
Place Bet62533082018-09-01 15:59:492742 days ago1535817589IN
0x3fCe61b5...1331C1eBd
0.03 ETH0.000379735
Place Bet62533082018-09-01 15:59:492742 days ago1535817589IN
0x3fCe61b5...1331C1eBd
0.05 ETH0.0008354715
Place Bet62533062018-09-01 15:59:332742 days ago1535817573IN
0x3fCe61b5...1331C1eBd
0.05 ETH0.0007594610
Place Bet62533052018-09-01 15:59:092742 days ago1535817549IN
0x3fCe61b5...1331C1eBd
0.02 ETH0.000334186
Place Bet62533032018-09-01 15:58:482742 days ago1535817528IN
0x3fCe61b5...1331C1eBd
0.02 ETH0.000222794
Place Bet62533032018-09-01 15:58:482742 days ago1535817528IN
0x3fCe61b5...1331C1eBd
0.02 ETH0.000303784
Place Bet62533012018-09-01 15:58:302742 days ago1535817510IN
0x3fCe61b5...1331C1eBd
0.02 ETH0.000303784
Place Bet62532822018-09-01 15:53:402742 days ago1535817220IN
0x3fCe61b5...1331C1eBd
0.01 ETH0.000227833
Place Bet62532732018-09-01 15:51:152742 days ago1535817075IN
0x3fCe61b5...1331C1eBd
0.05 ETH0.000445588
Place Bet62532712018-09-01 15:50:552742 days ago1535817055IN
0x3fCe61b5...1331C1eBd
0.05 ETH0.000455676
Place Bet62532242018-09-01 15:38:312742 days ago1535816311IN
0x3fCe61b5...1331C1eBd
1 ETH0.000303784
Place Bet62528542018-09-01 14:08:412742 days ago1535810921IN
0x3fCe61b5...1331C1eBd
0.2 ETH0.000303784
Place Bet62520922018-09-01 11:06:072742 days ago1535799967IN
0x3fCe61b5...1331C1eBd
0.45 ETH0.0007069810
Place Bet62520892018-09-01 11:05:372742 days ago1535799937IN
0x3fCe61b5...1331C1eBd
0.4 ETH0.0007069810
Place Bet62520872018-09-01 11:05:202742 days ago1535799920IN
0x3fCe61b5...1331C1eBd
0.35 ETH0.0010594610

Latest 9 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer62539432018-09-01 18:37:022742 days ago1535827022
0x3fCe61b5...1331C1eBd
0.72927536 ETH
Transfer62537592018-09-01 17:53:482742 days ago1535824428
0x3fCe61b5...1331C1eBd
1.27623188 ETH
Transfer62537352018-09-01 17:45:162742 days ago1535823916
0x3fCe61b5...1331C1eBd
0.07292753 ETH
Transfer62535942018-09-01 17:14:112742 days ago1535822051
0x3fCe61b5...1331C1eBd
0.07292753 ETH
Transfer62535612018-09-01 17:05:482742 days ago1535821548
0x3fCe61b5...1331C1eBd
0.18231884 ETH
Transfer62535522018-09-01 17:04:002742 days ago1535821440
0x3fCe61b5...1331C1eBd
0.18231884 ETH
Transfer62535462018-09-01 17:03:002742 days ago1535821380
0x3fCe61b5...1331C1eBd
0.068 ETH
Transfer62535462018-09-01 17:03:002742 days ago1535821380
0x3fCe61b5...1331C1eBd
0.136 ETH
Transfer62520692018-09-01 11:00:052742 days ago1535799605  Contract Creation0 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xC8ABbe9b...7847e31B0
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
Betting

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-09-01
*/

pragma solidity ^0.4.20;

pragma solidity ^0.4.21;
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

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

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

interface P3DTakeout {
    function buyTokens() external payable;
}

contract Betting{
    using SafeMath for uint256; //using safemath

    address public owner; //owner address
    address house_takeout = 0xf783A81F046448c38f3c863885D9e99D10209779;
    P3DTakeout P3DContract_;

    uint public winnerPoolTotal;
    string public constant version = "0.2.4";

    struct chronus_info {
        bool  betting_open; // boolean: check if betting is open
        bool  race_start; //boolean: check if race has started
        bool  race_end; //boolean: check if race has ended
        bool  voided_bet; //boolean: check if race has been voided
        uint32  starting_time; // timestamp of when the race starts
        uint32  betting_duration;
        uint32  race_duration; // duration of the race
        uint32 voided_timestamp;
    }

    struct horses_info{
        int64  BTC_delta; //horses.BTC delta value
        int64  ETH_delta; //horses.ETH delta value
        int64  LTC_delta; //horses.LTC delta value
        bytes32 BTC; //32-bytes equivalent of horses.BTC
        bytes32 ETH; //32-bytes equivalent of horses.ETH
        bytes32 LTC;  //32-bytes equivalent of horses.LTC
    }

    struct bet_info{
        bytes32 horse; // coin on which amount is bet on
        uint amount; // amount bet by Bettor
    }
    struct coin_info{
        uint256 pre; // locking price
        uint256 post; // ending price
        uint160 total; // total coin pool
        uint32 count; // number of bets
        bool price_check;
    }
    struct voter_info {
        uint160 total_bet; //total amount of bet placed
        bool rewarded; // boolean: check for double spending
        mapping(bytes32=>uint) bets; //array of bets
    }

    mapping (bytes32 => coin_info) public coinIndex; // mapping coins with pool information
    mapping (address => voter_info) voterIndex; // mapping voter address with Bettor information

    uint public total_reward; // total reward to be awarded
    uint32 total_bettors;
    mapping (bytes32 => bool) public winner_horse;


    // tracking events
    event Deposit(address _from, uint256 _value, bytes32 _horse, uint256 _date);
    event Withdraw(address _to, uint256 _value);
    event PriceCallback(bytes32 coin_pointer, uint256 result, bool isPrePrice);
    event RefundEnabled(string reason);

    // constructor
    constructor() public payable {
        
        owner = msg.sender;
        
        horses.BTC = bytes32("BTC");
        horses.ETH = bytes32("ETH");
        horses.LTC = bytes32("LTC");
        
        P3DContract_ = P3DTakeout(0x72b2670e55139934D6445348DC6EaB4089B12576);
    }

    // data access structures
    horses_info public horses;
    chronus_info public chronus;

    // modifiers for restricting access to methods
    modifier onlyOwner {
        require(owner == msg.sender);
        _;
    }

    modifier duringBetting {
        require(chronus.betting_open);
        require(now < chronus.starting_time + chronus.betting_duration);
        _;
    }

    modifier beforeBetting {
        require(!chronus.betting_open && !chronus.race_start);
        _;
    }

    modifier afterRace {
        require(chronus.race_end);
        _;
    }

    //function to change owner
    function changeOwnership(address _newOwner) onlyOwner external {
        require(now > chronus.starting_time + chronus.race_duration + 60 minutes);
        owner = _newOwner;
    }

    function priceCallback (bytes32 coin_pointer, uint256 result, bool isPrePrice ) external onlyOwner {
        require (!chronus.race_end);
        emit PriceCallback(coin_pointer, result, isPrePrice);
        chronus.race_start = true;
        chronus.betting_open = false;
        if (isPrePrice) {
            if (now >= chronus.starting_time+chronus.betting_duration+ 60 minutes) {
                emit RefundEnabled("Late start price");
                forceVoidRace();
            } else {
                coinIndex[coin_pointer].pre = result;
            }
        } else if (!isPrePrice){
            if (coinIndex[coin_pointer].pre > 0 ){
                if (now >= chronus.starting_time+chronus.race_duration+ 60 minutes) {
                    emit RefundEnabled("Late end price");
                    forceVoidRace();
                } else {
                    coinIndex[coin_pointer].post = result;
                    coinIndex[coin_pointer].price_check = true;

                    if (coinIndex[horses.ETH].price_check && coinIndex[horses.BTC].price_check && coinIndex[horses.LTC].price_check) {
                        reward();
                    }
                }
            } else {
                emit RefundEnabled("End price came before start price");
                forceVoidRace();
            }
        }
    }

    // place a bet on a coin(horse) lockBetting
    function placeBet(bytes32 horse) external duringBetting payable  {
        require(msg.value >= 0.01 ether);
        if (voterIndex[msg.sender].total_bet==0) {
            total_bettors+=1;
        }
        uint _newAmount = voterIndex[msg.sender].bets[horse] + msg.value;
        voterIndex[msg.sender].bets[horse] = _newAmount;
        voterIndex[msg.sender].total_bet += uint160(msg.value);
        uint160 _newTotal = coinIndex[horse].total + uint160(msg.value);
        uint32 _newCount = coinIndex[horse].count + 1;
        coinIndex[horse].total = _newTotal;
        coinIndex[horse].count = _newCount;
        emit Deposit(msg.sender, msg.value, horse, now);
    }

    // fallback method for accepting payments
    function () private payable {}

    // method to place the oraclize queries
    function setupRace(uint32 _bettingDuration, uint32 _raceDuration) onlyOwner beforeBetting external payable {
            chronus.starting_time = uint32(block.timestamp);
            chronus.betting_open = true;
            chronus.betting_duration = _bettingDuration;
            chronus.race_duration = _raceDuration;
    }

    // method to calculate reward (called internally by callback)
    function reward() internal {
        /*
        calculating the difference in price with a precision of 5 digits
        not using safemath since signed integers are handled
        */
        horses.BTC_delta = int64(coinIndex[horses.BTC].post - coinIndex[horses.BTC].pre)*100000/int64(coinIndex[horses.BTC].pre);
        horses.ETH_delta = int64(coinIndex[horses.ETH].post - coinIndex[horses.ETH].pre)*100000/int64(coinIndex[horses.ETH].pre);
        horses.LTC_delta = int64(coinIndex[horses.LTC].post - coinIndex[horses.LTC].pre)*100000/int64(coinIndex[horses.LTC].pre);

        total_reward = (coinIndex[horses.BTC].total) + (coinIndex[horses.ETH].total) + (coinIndex[horses.LTC].total);
        if (total_bettors <= 1) {
            emit RefundEnabled("Not enough participants");
            forceVoidRace();
        } else {
            // house takeout
            uint house_fee = total_reward.mul(5).div(100);
            require(house_fee < address(this).balance);
            total_reward = total_reward.sub(house_fee);
            house_takeout.transfer(house_fee);
            
            // p3d takeout
            uint p3d_fee = house_fee/2;
            require(p3d_fee < address(this).balance);
            total_reward = total_reward.sub(p3d_fee);
            P3DContract_.buyTokens.value(p3d_fee)();
        }

        if (horses.BTC_delta > horses.ETH_delta) {
            if (horses.BTC_delta > horses.LTC_delta) {
                winner_horse[horses.BTC] = true;
                winnerPoolTotal = coinIndex[horses.BTC].total;
            }
            else if(horses.LTC_delta > horses.BTC_delta) {
                winner_horse[horses.LTC] = true;
                winnerPoolTotal = coinIndex[horses.LTC].total;
            } else {
                winner_horse[horses.BTC] = true;
                winner_horse[horses.LTC] = true;
                winnerPoolTotal = coinIndex[horses.BTC].total + (coinIndex[horses.LTC].total);
            }
        } else if(horses.ETH_delta > horses.BTC_delta) {
            if (horses.ETH_delta > horses.LTC_delta) {
                winner_horse[horses.ETH] = true;
                winnerPoolTotal = coinIndex[horses.ETH].total;
            }
            else if (horses.LTC_delta > horses.ETH_delta) {
                winner_horse[horses.LTC] = true;
                winnerPoolTotal = coinIndex[horses.LTC].total;
            } else {
                winner_horse[horses.ETH] = true;
                winner_horse[horses.LTC] = true;
                winnerPoolTotal = coinIndex[horses.ETH].total + (coinIndex[horses.LTC].total);
            }
        } else {
            if (horses.LTC_delta > horses.ETH_delta) {
                winner_horse[horses.LTC] = true;
                winnerPoolTotal = coinIndex[horses.LTC].total;
            } else if(horses.LTC_delta < horses.ETH_delta){
                winner_horse[horses.ETH] = true;
                winner_horse[horses.BTC] = true;
                winnerPoolTotal = coinIndex[horses.ETH].total + (coinIndex[horses.BTC].total);
            } else {
                winner_horse[horses.LTC] = true;
                winner_horse[horses.ETH] = true;
                winner_horse[horses.BTC] = true;
                winnerPoolTotal = coinIndex[horses.ETH].total + (coinIndex[horses.BTC].total) + (coinIndex[horses.LTC].total);
            }
        }
        chronus.race_end = true;
    }

    // method to calculate an invidual's reward
    function calculateReward(address candidate) internal afterRace constant returns(uint winner_reward) {
        voter_info storage bettor = voterIndex[candidate];
        if(chronus.voided_bet) {
            winner_reward = bettor.total_bet;
        } else {
            uint winning_bet_total;
            if(winner_horse[horses.BTC]) {
                winning_bet_total += bettor.bets[horses.BTC];
            } if(winner_horse[horses.ETH]) {
                winning_bet_total += bettor.bets[horses.ETH];
            } if(winner_horse[horses.LTC]) {
                winning_bet_total += bettor.bets[horses.LTC];
            }
            winner_reward += (((total_reward.mul(10000000)).div(winnerPoolTotal)).mul(winning_bet_total)).div(10000000);
        }
    }

    // method to just check the reward amount
    function checkReward() afterRace external constant returns (uint) {
        require(!voterIndex[msg.sender].rewarded);
        return calculateReward(msg.sender);
    }

    // method to claim the reward amount
    function claim_reward() afterRace external {
        require(!voterIndex[msg.sender].rewarded);
        uint transfer_amount = calculateReward(msg.sender);
        require(address(this).balance >= transfer_amount);
        voterIndex[msg.sender].rewarded = true;
        msg.sender.transfer(transfer_amount);
        emit Withdraw(msg.sender, transfer_amount);
    }

    function forceVoidRace() internal {
        require(!chronus.voided_bet);
        chronus.voided_bet=true;
        chronus.race_end = true;
        chronus.voided_timestamp=uint32(now);
    }
    
    //this methohd can only be called by controller contract in case of timestamp errors
    function forceVoidExternal() external onlyOwner {
        forceVoidRace();
        emit RefundEnabled("Inaccurate price timestamp");
    }

    // exposing the coin pool details for DApp
    function getCoinIndex(bytes32 index, address candidate) external constant returns (uint, uint, uint, bool, uint) {
        uint256 coinPrePrice;
        uint256 coinPostPrice;
        if (coinIndex[horses.ETH].pre > 0 && coinIndex[horses.BTC].pre > 0 && coinIndex[horses.LTC].pre > 0) {
            coinPrePrice = coinIndex[index].pre;
        } 
        if (coinIndex[horses.ETH].post > 0 && coinIndex[horses.BTC].post > 0 && coinIndex[horses.LTC].post > 0) {
            coinPostPrice = coinIndex[index].post;
        }
        return (coinIndex[index].total, coinPrePrice, coinPostPrice, coinIndex[index].price_check, voterIndex[candidate].bets[index]);
    }

    // exposing the total reward amount for DApp
    function reward_total() external constant returns (uint) {
        return ((coinIndex[horses.BTC].total) + (coinIndex[horses.ETH].total) + (coinIndex[horses.LTC].total));
    }
    
    function getChronus() external view returns (uint32[]) {
        uint32[] memory chronusData = new uint32[](3);
        chronusData[0] = chronus.starting_time;
        chronusData[1] = chronus.betting_duration;
        chronusData[2] = chronus.race_duration;
        return (chronusData);
        // return (chronus.starting_time, chronus.betting_duration ,chronus.race_duration);
    }

    // in case of any errors in race, enable full refund for the Bettors to claim
    function refund() external onlyOwner {
        require(now > chronus.starting_time + chronus.race_duration + 60 minutes);
        require((chronus.betting_open && !chronus.race_start)
            || (chronus.race_start && !chronus.race_end));
        chronus.voided_bet = true;
        chronus.race_end = true;
        chronus.voided_timestamp=uint32(now);
    }

    // method to claim unclaimed winnings after 30 day notice period
    function recovery() external onlyOwner{
        require((chronus.race_end && now > chronus.starting_time + chronus.race_duration + (30 days))
            || (chronus.voided_bet && now > chronus.voided_timestamp + (30 days)));
        house_takeout.transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[{"name":"horse","type":"bytes32"}],"name":"placeBet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"claim_reward","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"winner_horse","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"coin_pointer","type":"bytes32"},{"name":"result","type":"uint256"},{"name":"isPrePrice","type":"bool"}],"name":"priceCallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"winnerPoolTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"changeOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"horses","outputs":[{"name":"BTC_delta","type":"int64"},{"name":"ETH_delta","type":"int64"},{"name":"LTC_delta","type":"int64"},{"name":"BTC","type":"bytes32"},{"name":"ETH","type":"bytes32"},{"name":"LTC","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"forceVoidExternal","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getChronus","outputs":[{"name":"","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"index","type":"bytes32"},{"name":"candidate","type":"address"}],"name":"getCoinIndex","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"chronus","outputs":[{"name":"betting_open","type":"bool"},{"name":"race_start","type":"bool"},{"name":"race_end","type":"bool"},{"name":"voided_bet","type":"bool"},{"name":"starting_time","type":"uint32"},{"name":"betting_duration","type":"uint32"},{"name":"race_duration","type":"uint32"},{"name":"voided_timestamp","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_bettingDuration","type":"uint32"},{"name":"_raceDuration","type":"uint32"}],"name":"setupRace","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reward_total","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"checkReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"coinIndex","outputs":[{"name":"pre","type":"uint256"},{"name":"post","type":"uint256"},{"name":"total","type":"uint160"},{"name":"count","type":"uint32"},{"name":"price_check","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"total_reward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"recovery","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"},{"indexed":false,"name":"_horse","type":"bytes32"},{"indexed":false,"name":"_date","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Withdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"coin_pointer","type":"bytes32"},{"indexed":false,"name":"result","type":"uint256"},{"indexed":false,"name":"isPrePrice","type":"bool"}],"name":"PriceCallback","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"reason","type":"string"}],"name":"RefundEnabled","type":"event"}]

0x608060405260018054600160a060020a031990811673f783a81f046448c38f3c863885d9e99d1020977917909155600080548216331790557f4254430000000000000000000000000000000000000000000000000000000000600a557f4554480000000000000000000000000000000000000000000000000000000000600b557f4c54430000000000000000000000000000000000000000000000000000000000600c55600280549091167372b2670e55139934d6445348dc6eab4089b12576179055611acc806100d16000396000f3006080604052600436106101115763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663042b5fed8114610113578063055ee2531461011e5780630f7696441461013357806311dcee2f1461015f57806329114d651461017f5780632af4c31e146101a657806343bddf40146101c75780634564ea361461021e57806354fd4d5014610233578063590e1ae3146102bd5780635ad6ba47146102d25780637274f35b1461033757806384304ee5146103885780638b63c86f146103eb5780638da5cb5b14610402578063aa93038b14610433578063c4b24a4614610448578063d2aed6d71461045d578063d3d2172e146104b0578063ddceafa9146104c5575b005b6101116004356104da565b34801561012a57600080fd5b50610111610675565b34801561013f57600080fd5b5061014b600435610765565b604080519115158252519081900360200190f35b34801561016b57600080fd5b50610111600435602435604435151561077a565b34801561018b57600080fd5b50610194610a7e565b60408051918252519081900360200190f35b3480156101b257600080fd5b50610111600160a060020a0360043516610a84565b3480156101d357600080fd5b506101dc610b04565b60408051600797880b880b815295870b870b602087015293860b90950b848401526060840191909152608083015260a082019290925290519081900360c00190f35b34801561022a57600080fd5b50610111610b36565b34801561023f57600080fd5b50610248610ba5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028257818101518382015260200161026a565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c957600080fd5b50610111610bdc565b3480156102de57600080fd5b506102e7610cc2565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561032357818101518382015260200161030b565b505050509050019250505060405180910390f35b34801561034357600080fd5b5061035b600435600160a060020a0360243516610d8f565b60408051958652602086019490945284840192909252151560608401526080830152519081900360a00190f35b34801561039457600080fd5b5061039d610ebb565b604080519815158952961515602089015294151587870152921515606087015263ffffffff9182166080870152811660a086015290811660c08501521660e083015251908190036101000190f35b61011163ffffffff60043581169060243516610f1d565b34801561040e57600080fd5b50610417610fdb565b60408051600160a060020a039092168252519081900360200190f35b34801561043f57600080fd5b50610194610fea565b34801561045457600080fd5b5061019461102f565b34801561046957600080fd5b5061047560043561107b565b604080519586526020860194909452600160a060020a039092168484015263ffffffff16606084015215156080830152519081900360a00190f35b3480156104bc57600080fd5b506101946110bf565b3480156104d157600080fd5b506101116110c5565b600d546000908190819060ff1615156104f257600080fd5b600d54640100000000810463ffffffff9081166801000000000000000090920481169190910116421061052457600080fd5b662386f26fc1000034101561053857600080fd5b33600090815260056020526040902054600160a060020a03161515610574576007805463ffffffff8082166001011663ffffffff199091161790555b50503360008181526005602090815260408083208684526001808201845282852080543490810191829055835473ffffffffffffffffffffffffffffffffffffffff19808216600160a060020a0392831684018316179095556004875296859020600201805494851685891683019889161777ffffffff0000000000000000000000000000000000000000191660a060020a9586900463ffffffff90811690950194851690950294909417909355835196875293860191909152848201879052426060860152905191945091927f60452eb7177e8d41c9d9fbc4c6e9ccf55a4d44d412355fbf2f02668e0d1a0ce1916080918190039190910190a150505050565b600d5460009062010000900460ff16151561068f57600080fd5b3360009081526005602052604090205460a060020a900460ff16156106b357600080fd5b6106bc3361119f565b905030318111156106cc57600080fd5b33600081815260056020526040808220805474ff0000000000000000000000000000000000000000191660a060020a1790555183156108fc0291849190818181858888f19350505050158015610726573d6000803e3d6000fd5b50604080513381526020810183905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a150565b60086020526000908152604090205460ff1681565b600054600160a060020a0316331461079157600080fd5b600d5462010000900460ff16156107a757600080fd5b60408051848152602081018490528215158183015290517fde16ef9c49ad256644606beb97130511ba3d64bbd230380f8edd107527e5a9da9181900360600190a1600d805460ff1961ff00199091166101001716905580156108a657600d54610e10640100000000820463ffffffff908116680100000000000000009093048116929092010116421061088f576040805160208082526010908201527f4c61746520737461727420707269636500000000000000000000000000000000818301529051600080516020611a818339815191529181900360600190a161088a6112d9565b6108a1565b60008381526004602052604090208290555b610a79565b801515610a795760008381526004602052604081205411156109fd57600d54610e10640100000000820463ffffffff9081166c010000000000000000000000009093048116929092010116421061094d57604080516020808252600e908201527f4c61746520656e64207072696365000000000000000000000000000000000000818301529051600080516020611a818339815191529181900360600190a161088a6112d9565b600083815260046020526040808220600181018590556002908101805478ff000000000000000000000000000000000000000000000000191660c060020a908117909155600b54845291909220909101540460ff1680156109c95750600a5460009081526004602052604090206002015460c060020a900460ff165b80156109f05750600c5460009081526004602052604090206002015460c060020a900460ff165b156108a1576108a16112f0565b6040805160208082526021908201527f456e642070726963652063616d65206265666f72652073746172742070726963818301527f650000000000000000000000000000000000000000000000000000000000000060608201529051600080516020611a818339815191529181900360800190a1610a796112d9565b505050565b60035481565b600054600160a060020a03163314610a9b57600080fd5b600d54610e10640100000000820463ffffffff9081166c0100000000000000000000000090930481169290920101164211610ad557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600a54600b54600c54600784810b94680100000000000000008104820b94608060020a90910490910b92909186565b600054600160a060020a03163314610b4d57600080fd5b610b556112d9565b604080516020808252601a908201527f496e61636375726174652070726963652074696d657374616d70000000000000818301529051600080516020611a818339815191529181900360600190a1565b60408051808201909152600581527f302e322e34000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a03163314610bf357600080fd5b600d54610e10640100000000820463ffffffff9081166c0100000000000000000000000090930481169290920101164211610c2d57600080fd5b600d5460ff168015610c475750600d54610100900460ff16155b80610c6d5750600d54610100900460ff168015610c6d5750600d5462010000900460ff16155b1515610c7857600080fd5b600d805462010000630100000063ff000000199092169190911762ff000019161773ffffffff000000000000000000000000000000001916608060020a4263ffffffff1602179055565b604080516003808252608082019092526060918291906020820183803883395050600d548251929350640100000000900463ffffffff16918391506000908110610d0857fe5b63ffffffff92831660209182029092010152600d548251680100000000000000009091049091169082906001908110610d3d57fe5b63ffffffff92831660209182029092010152600d5482516c010000000000000000000000009091049091169082906002908110610d7657fe5b63ffffffff909216602092830290910190910152905090565b600b5460009081526004602052604081205481908190819081908190819081108015610dca5750600a54600090815260046020526040812054115b8015610de55750600c54600090815260046020526040812054115b15610dfc5760008981526004602052604090205491505b600b54600090815260046020526040812060010154118015610e305750600a54600090815260046020526040812060010154115b8015610e4e5750600c54600090815260046020526040812060010154115b15610e6757506000888152600460205260409020600101545b600089815260046020908152604080832060020154600160a060020a039b8c168452600583528184209c84526001909c01909152902054978916999198909760c060020a90910460ff169650945092505050565b600d5460ff808216916101008104821691620100008204811691630100000081049091169063ffffffff64010000000082048116916801000000000000000081048216916c010000000000000000000000008204811691608060020a90041688565b600054600160a060020a03163314610f3457600080fd5b600d5460ff16158015610f4f5750600d54610100900460ff16155b1515610f5a57600080fd5b600d805463ffffffff9283166c01000000000000000000000000026fffffffff0000000000000000000000001994841668010000000000000000026bffffffff00000000000000001960ff1942969096166401000000000267ffffffff00000000199094169390931794909416600117919091169290921792909216179055565b600054600160a060020a031681565b600c54600090815260046020526040808220600290810154600b548452828420820154600a548552929093200154600160a060020a0392831691831690831601011690565b600d5460009062010000900460ff16151561104957600080fd5b3360009081526005602052604090205460a060020a900460ff161561106d57600080fd5b6110763361119f565b905090565b600460205260009081526040902080546001820154600290920154909190600160a060020a0381169060a060020a810463ffffffff169060c060020a900460ff1685565b60065481565b600054600160a060020a031633146110dc57600080fd5b600d5462010000900460ff1680156111225750600d5462278d00640100000000820463ffffffff9081166c01000000000000000000000000909304811692909201011642115b806111575750600d546301000000900460ff1680156111575750600d5462278d0063ffffffff608060020a9092048216011642115b151561116257600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f1935050505015801561119c573d6000803e3d6000fd5b50565b600d546000908190819062010000900460ff1615156111bd57600080fd5b600160a060020a0384166000908152600560205260409020600d549092506301000000900460ff16156111fc578154600160a060020a031692506112d2565b600a5460009081526008602052604090205460ff161561122c57600a546000908152600183016020526040902054015b600b5460009081526008602052604090205460ff161561125c57600b546000908152600183016020526040902054015b600c5460009081526008602052604090205460ff161561128c57600c546000908152600183016020526040902054015b6112cd629896806112b5836112c16003546112b562989680600654611a2c90919063ffffffff16565b9063ffffffff611a5716565b9063ffffffff611a2c16565b830192505b5050919050565b600d546301000000900460ff1615610c7857600080fd5b600a54600090815260046020526040812080546001909101548291600781810b9291909103620186a002900b81151561132557fe5b6009805467ffffffffffffffff191667ffffffffffffffff93909205600790810b93909316919091179055600b54600090815260046020526040902080546001919091015481830b92919003620186a002900b81151561138157fe5b6009805492909105600790810b67ffffffffffffffff1668010000000000000000026fffffffffffffffff000000000000000019909316929092179055600c54600090815260046020526040902080546001919091015481830b92620186a09290910391909102900b8115156113f357fe5b6009805477ffffffffffffffff000000000000000000000000000000001916608060020a67ffffffffffffffff94909305600790810b9490941692909202919091179055600c54600090815260046020526040808220600290810154600b548452828420820154600a548552929093200154600160a060020a0392831691831690831601011660065554600163ffffffff909116116114e7576040805160208082526017908201527f4e6f7420656e6f756768207061727469636970616e7473000000000000000000818301529051600080516020611a818339815191529181900360600190a16114e26112d9565b611604565b61150260646112b56005600654611a2c90919063ffffffff16565b91503031821061151157600080fd5b600654611524908363ffffffff611a6e16565b600655600154604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015611561573d6000803e3d6000fd5b5050600281043031811061157457600080fd5b600654611587908263ffffffff611a6e16565b600655600254604080517fd0febe4c0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163d0febe4c918491600480830192600092919082900301818588803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b50505050505b600954680100000000000000008104600790810b810b91810b900b131561174257600954608060020a8104600790810b810b91810b900b131561167f57600a80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600954600781810b810b608060020a909204810b900b13156116d957600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600a805460009081526008602090815260408083208054600160ff199182168117909255600c805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a0391821690821601166003555b611a17565b600954600781810b810b68010000000000000000909204810b900b131561189757600954608060020a8104600790810b810b68010000000000000000909204810b900b13156117c957600b80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600954680100000000000000008104600790810b810b608060020a909204810b900b131561182f57600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600b805460009081526008602090815260408083208054600160ff199182168117909255600c805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a039182169082160116600355611a17565b600954680100000000000000008104600790810b810b608060020a909204810b900b13156118fd57600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a0316600355611a17565b600954680100000000000000008104600790810b810b608060020a909204810b900b121561198d57600b805460009081526008602090815260408083208054600160ff199182168117909255600a805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a039182169082160116600355611a17565b600c805460009081526008602090815260408083208054600160ff199182168117909255600b805486528386208054831684179055600a8054875284872080549093169093179091559454845260049092528083206002908101549254845281842081015494548452922090910154600160a060020a039182169282169082160191909101166003555b5050600d805462ff0000191662010000179055565b6000828202831580611a485750828482811515611a4557fe5b04145b1515611a5057fe5b9392505050565b6000808284811515611a6557fe5b04949350505050565b600082821115611a7a57fe5b5090039056009267bd1e840f8c032ec399dab88550ddacce435477212b384a3d761f395efa7fa165627a7a723058201f3b20058944317c51c1cb504e8b999a681845a394959778778115fccfd9ece20029

Deployed Bytecode

0x6080604052600436106101115763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663042b5fed8114610113578063055ee2531461011e5780630f7696441461013357806311dcee2f1461015f57806329114d651461017f5780632af4c31e146101a657806343bddf40146101c75780634564ea361461021e57806354fd4d5014610233578063590e1ae3146102bd5780635ad6ba47146102d25780637274f35b1461033757806384304ee5146103885780638b63c86f146103eb5780638da5cb5b14610402578063aa93038b14610433578063c4b24a4614610448578063d2aed6d71461045d578063d3d2172e146104b0578063ddceafa9146104c5575b005b6101116004356104da565b34801561012a57600080fd5b50610111610675565b34801561013f57600080fd5b5061014b600435610765565b604080519115158252519081900360200190f35b34801561016b57600080fd5b50610111600435602435604435151561077a565b34801561018b57600080fd5b50610194610a7e565b60408051918252519081900360200190f35b3480156101b257600080fd5b50610111600160a060020a0360043516610a84565b3480156101d357600080fd5b506101dc610b04565b60408051600797880b880b815295870b870b602087015293860b90950b848401526060840191909152608083015260a082019290925290519081900360c00190f35b34801561022a57600080fd5b50610111610b36565b34801561023f57600080fd5b50610248610ba5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561028257818101518382015260200161026a565b50505050905090810190601f1680156102af5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c957600080fd5b50610111610bdc565b3480156102de57600080fd5b506102e7610cc2565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561032357818101518382015260200161030b565b505050509050019250505060405180910390f35b34801561034357600080fd5b5061035b600435600160a060020a0360243516610d8f565b60408051958652602086019490945284840192909252151560608401526080830152519081900360a00190f35b34801561039457600080fd5b5061039d610ebb565b604080519815158952961515602089015294151587870152921515606087015263ffffffff9182166080870152811660a086015290811660c08501521660e083015251908190036101000190f35b61011163ffffffff60043581169060243516610f1d565b34801561040e57600080fd5b50610417610fdb565b60408051600160a060020a039092168252519081900360200190f35b34801561043f57600080fd5b50610194610fea565b34801561045457600080fd5b5061019461102f565b34801561046957600080fd5b5061047560043561107b565b604080519586526020860194909452600160a060020a039092168484015263ffffffff16606084015215156080830152519081900360a00190f35b3480156104bc57600080fd5b506101946110bf565b3480156104d157600080fd5b506101116110c5565b600d546000908190819060ff1615156104f257600080fd5b600d54640100000000810463ffffffff9081166801000000000000000090920481169190910116421061052457600080fd5b662386f26fc1000034101561053857600080fd5b33600090815260056020526040902054600160a060020a03161515610574576007805463ffffffff8082166001011663ffffffff199091161790555b50503360008181526005602090815260408083208684526001808201845282852080543490810191829055835473ffffffffffffffffffffffffffffffffffffffff19808216600160a060020a0392831684018316179095556004875296859020600201805494851685891683019889161777ffffffff0000000000000000000000000000000000000000191660a060020a9586900463ffffffff90811690950194851690950294909417909355835196875293860191909152848201879052426060860152905191945091927f60452eb7177e8d41c9d9fbc4c6e9ccf55a4d44d412355fbf2f02668e0d1a0ce1916080918190039190910190a150505050565b600d5460009062010000900460ff16151561068f57600080fd5b3360009081526005602052604090205460a060020a900460ff16156106b357600080fd5b6106bc3361119f565b905030318111156106cc57600080fd5b33600081815260056020526040808220805474ff0000000000000000000000000000000000000000191660a060020a1790555183156108fc0291849190818181858888f19350505050158015610726573d6000803e3d6000fd5b50604080513381526020810183905281517f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a9424364929181900390910190a150565b60086020526000908152604090205460ff1681565b600054600160a060020a0316331461079157600080fd5b600d5462010000900460ff16156107a757600080fd5b60408051848152602081018490528215158183015290517fde16ef9c49ad256644606beb97130511ba3d64bbd230380f8edd107527e5a9da9181900360600190a1600d805460ff1961ff00199091166101001716905580156108a657600d54610e10640100000000820463ffffffff908116680100000000000000009093048116929092010116421061088f576040805160208082526010908201527f4c61746520737461727420707269636500000000000000000000000000000000818301529051600080516020611a818339815191529181900360600190a161088a6112d9565b6108a1565b60008381526004602052604090208290555b610a79565b801515610a795760008381526004602052604081205411156109fd57600d54610e10640100000000820463ffffffff9081166c010000000000000000000000009093048116929092010116421061094d57604080516020808252600e908201527f4c61746520656e64207072696365000000000000000000000000000000000000818301529051600080516020611a818339815191529181900360600190a161088a6112d9565b600083815260046020526040808220600181018590556002908101805478ff000000000000000000000000000000000000000000000000191660c060020a908117909155600b54845291909220909101540460ff1680156109c95750600a5460009081526004602052604090206002015460c060020a900460ff165b80156109f05750600c5460009081526004602052604090206002015460c060020a900460ff165b156108a1576108a16112f0565b6040805160208082526021908201527f456e642070726963652063616d65206265666f72652073746172742070726963818301527f650000000000000000000000000000000000000000000000000000000000000060608201529051600080516020611a818339815191529181900360800190a1610a796112d9565b505050565b60035481565b600054600160a060020a03163314610a9b57600080fd5b600d54610e10640100000000820463ffffffff9081166c0100000000000000000000000090930481169290920101164211610ad557600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600954600a54600b54600c54600784810b94680100000000000000008104820b94608060020a90910490910b92909186565b600054600160a060020a03163314610b4d57600080fd5b610b556112d9565b604080516020808252601a908201527f496e61636375726174652070726963652074696d657374616d70000000000000818301529051600080516020611a818339815191529181900360600190a1565b60408051808201909152600581527f302e322e34000000000000000000000000000000000000000000000000000000602082015281565b600054600160a060020a03163314610bf357600080fd5b600d54610e10640100000000820463ffffffff9081166c0100000000000000000000000090930481169290920101164211610c2d57600080fd5b600d5460ff168015610c475750600d54610100900460ff16155b80610c6d5750600d54610100900460ff168015610c6d5750600d5462010000900460ff16155b1515610c7857600080fd5b600d805462010000630100000063ff000000199092169190911762ff000019161773ffffffff000000000000000000000000000000001916608060020a4263ffffffff1602179055565b604080516003808252608082019092526060918291906020820183803883395050600d548251929350640100000000900463ffffffff16918391506000908110610d0857fe5b63ffffffff92831660209182029092010152600d548251680100000000000000009091049091169082906001908110610d3d57fe5b63ffffffff92831660209182029092010152600d5482516c010000000000000000000000009091049091169082906002908110610d7657fe5b63ffffffff909216602092830290910190910152905090565b600b5460009081526004602052604081205481908190819081908190819081108015610dca5750600a54600090815260046020526040812054115b8015610de55750600c54600090815260046020526040812054115b15610dfc5760008981526004602052604090205491505b600b54600090815260046020526040812060010154118015610e305750600a54600090815260046020526040812060010154115b8015610e4e5750600c54600090815260046020526040812060010154115b15610e6757506000888152600460205260409020600101545b600089815260046020908152604080832060020154600160a060020a039b8c168452600583528184209c84526001909c01909152902054978916999198909760c060020a90910460ff169650945092505050565b600d5460ff808216916101008104821691620100008204811691630100000081049091169063ffffffff64010000000082048116916801000000000000000081048216916c010000000000000000000000008204811691608060020a90041688565b600054600160a060020a03163314610f3457600080fd5b600d5460ff16158015610f4f5750600d54610100900460ff16155b1515610f5a57600080fd5b600d805463ffffffff9283166c01000000000000000000000000026fffffffff0000000000000000000000001994841668010000000000000000026bffffffff00000000000000001960ff1942969096166401000000000267ffffffff00000000199094169390931794909416600117919091169290921792909216179055565b600054600160a060020a031681565b600c54600090815260046020526040808220600290810154600b548452828420820154600a548552929093200154600160a060020a0392831691831690831601011690565b600d5460009062010000900460ff16151561104957600080fd5b3360009081526005602052604090205460a060020a900460ff161561106d57600080fd5b6110763361119f565b905090565b600460205260009081526040902080546001820154600290920154909190600160a060020a0381169060a060020a810463ffffffff169060c060020a900460ff1685565b60065481565b600054600160a060020a031633146110dc57600080fd5b600d5462010000900460ff1680156111225750600d5462278d00640100000000820463ffffffff9081166c01000000000000000000000000909304811692909201011642115b806111575750600d546301000000900460ff1680156111575750600d5462278d0063ffffffff608060020a9092048216011642115b151561116257600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f1935050505015801561119c573d6000803e3d6000fd5b50565b600d546000908190819062010000900460ff1615156111bd57600080fd5b600160a060020a0384166000908152600560205260409020600d549092506301000000900460ff16156111fc578154600160a060020a031692506112d2565b600a5460009081526008602052604090205460ff161561122c57600a546000908152600183016020526040902054015b600b5460009081526008602052604090205460ff161561125c57600b546000908152600183016020526040902054015b600c5460009081526008602052604090205460ff161561128c57600c546000908152600183016020526040902054015b6112cd629896806112b5836112c16003546112b562989680600654611a2c90919063ffffffff16565b9063ffffffff611a5716565b9063ffffffff611a2c16565b830192505b5050919050565b600d546301000000900460ff1615610c7857600080fd5b600a54600090815260046020526040812080546001909101548291600781810b9291909103620186a002900b81151561132557fe5b6009805467ffffffffffffffff191667ffffffffffffffff93909205600790810b93909316919091179055600b54600090815260046020526040902080546001919091015481830b92919003620186a002900b81151561138157fe5b6009805492909105600790810b67ffffffffffffffff1668010000000000000000026fffffffffffffffff000000000000000019909316929092179055600c54600090815260046020526040902080546001919091015481830b92620186a09290910391909102900b8115156113f357fe5b6009805477ffffffffffffffff000000000000000000000000000000001916608060020a67ffffffffffffffff94909305600790810b9490941692909202919091179055600c54600090815260046020526040808220600290810154600b548452828420820154600a548552929093200154600160a060020a0392831691831690831601011660065554600163ffffffff909116116114e7576040805160208082526017908201527f4e6f7420656e6f756768207061727469636970616e7473000000000000000000818301529051600080516020611a818339815191529181900360600190a16114e26112d9565b611604565b61150260646112b56005600654611a2c90919063ffffffff16565b91503031821061151157600080fd5b600654611524908363ffffffff611a6e16565b600655600154604051600160a060020a039091169083156108fc029084906000818181858888f19350505050158015611561573d6000803e3d6000fd5b5050600281043031811061157457600080fd5b600654611587908263ffffffff611a6e16565b600655600254604080517fd0febe4c0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163d0febe4c918491600480830192600092919082900301818588803b1580156115ea57600080fd5b505af11580156115fe573d6000803e3d6000fd5b50505050505b600954680100000000000000008104600790810b810b91810b900b131561174257600954608060020a8104600790810b810b91810b900b131561167f57600a80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600954600781810b810b608060020a909204810b900b13156116d957600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600a805460009081526008602090815260408083208054600160ff199182168117909255600c805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a0391821690821601166003555b611a17565b600954600781810b810b68010000000000000000909204810b900b131561189757600954608060020a8104600790810b810b68010000000000000000909204810b900b13156117c957600b80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600954680100000000000000008104600790810b810b608060020a909204810b900b131561182f57600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a031660035561173d565b600b805460009081526008602090815260408083208054600160ff199182168117909255600c805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a039182169082160116600355611a17565b600954680100000000000000008104600790810b810b608060020a909204810b900b13156118fd57600c80546000908152600860209081526040808320805460ff1916600117905592548252600490522060020154600160a060020a0316600355611a17565b600954680100000000000000008104600790810b810b608060020a909204810b900b121561198d57600b805460009081526008602090815260408083208054600160ff199182168117909255600a805486528386208054909216909217905554835260049091528082206002908101549354835291200154600160a060020a039182169082160116600355611a17565b600c805460009081526008602090815260408083208054600160ff199182168117909255600b805486528386208054831684179055600a8054875284872080549093169093179091559454845260049092528083206002908101549254845281842081015494548452922090910154600160a060020a039182169282169082160191909101166003555b5050600d805462ff0000191662010000179055565b6000828202831580611a485750828482811515611a4557fe5b04145b1515611a5057fe5b9392505050565b6000808284811515611a6557fe5b04949350505050565b600082821115611a7a57fe5b5090039056009267bd1e840f8c032ec399dab88550ddacce435477212b384a3d761f395efa7fa165627a7a723058201f3b20058944317c51c1cb504e8b999a681845a394959778778115fccfd9ece20029

Swarm Source

bzzr://1f3b20058944317c51c1cb504e8b999a681845a394959778778115fccfd9ece2

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.