ETH Price: $2,526.47 (+0.30%)

Contract

0x59891b95010267F7A3666dcB3221059a73E11AD1
 

Overview

ETH Balance

1.263723235022218174 ETH

Eth Value

$3,192.75 (@ $2,526.47/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Dividen...206142122024-08-26 17:18:474 days ago1724692727IN
0x59891b95...a73E11AD1
0 ETH0.000084131.92742966
Withdraw Dividen...152525852022-07-31 21:12:23761 days ago1659301943IN
0x59891b95...a73E11AD1
0 ETH0.000342337.84259908
Withdraw Dividen...143271642022-03-05 13:32:57909 days ago1646487177IN
0x59891b95...a73E11AD1
0 ETH0.0011609422.13819667
Fetch Dividends ...143271562022-03-05 13:31:36909 days ago1646487096IN
0x59891b95...a73E11AD1
0 ETH0.0027116724.17192752
Withdraw Dividen...129748992021-08-07 1:18:291120 days ago1628299109IN
0x59891b95...a73E11AD1
0 ETH0.0017367233.11765342
Withdraw Dividen...128791972021-07-22 23:32:431135 days ago1626996763IN
0x59891b95...a73E11AD1
0 ETH0.0006847615
Fetch Dividends ...128791912021-07-22 23:31:271135 days ago1626996687IN
0x59891b95...a73E11AD1
0 ETH0.0005454414
Fetch Result128082712021-07-11 20:48:071146 days ago1626036487IN
0x59891b95...a73E11AD1
0 ETH0.0003751810
Withdraw Dividen...128035692021-07-11 3:14:221147 days ago1625973262IN
0x59891b95...a73E11AD1
0 ETH0.000410859
Withdraw Dividen...127247732021-06-28 20:52:431159 days ago1624913563IN
0x59891b95...a73E11AD1
0 ETH0.0014151831
Fetch Dividends ...127247682021-06-28 20:52:151159 days ago1624913535IN
0x59891b95...a73E11AD1
0 ETH0.0034776731
Withdraw Dividen...125740912021-06-05 11:02:461182 days ago1622890966IN
0x59891b95...a73E11AD1
0 ETH0.0006391114
Fetch Dividends ...123377742021-04-29 21:16:221219 days ago1619730982IN
0x59891b95...a73E11AD1
0 ETH0.0019869651
Withdraw Dividen...123208172021-04-27 6:40:051221 days ago1619505605IN
0x59891b95...a73E11AD1
0 ETH0.0015439433.82071
Fetch Dividends ...123207872021-04-27 6:34:111221 days ago1619505251IN
0x59891b95...a73E11AD1
0 ETH0.0014415237
Withdraw Dividen...123207832021-04-27 6:33:381221 days ago1619505218IN
0x59891b95...a73E11AD1
0 ETH0.0012376837
Withdraw Dividen...122979342021-04-23 17:48:471225 days ago1619200127IN
0x59891b95...a73E11AD1
0 ETH0.0037433882
Withdraw Dividen...122344952021-04-13 22:36:011235 days ago1618353361IN
0x59891b95...a73E11AD1
0 ETH0.0038335882
Fetch Dividends ...122344822021-04-13 22:33:291235 days ago1618353209IN
0x59891b95...a73E11AD1
0 ETH0.010002682
Withdraw Dividen...117108302021-01-23 8:49:381315 days ago1611391778IN
0x59891b95...a73E11AD1
0 ETH0.0033193271
Withdraw Dividen...116947632021-01-20 21:18:091318 days ago1611177489IN
0x59891b95...a73E11AD1
0 ETH0.002571355
Fetch Dividends ...116947582021-01-20 21:17:301318 days ago1611177450IN
0x59891b95...a73E11AD1
0 ETH0.0067090655
Withdraw Dividen...115625302020-12-31 14:38:101338 days ago1609425490IN
0x59891b95...a73E11AD1
0 ETH0.0037868381
Withdraw Dividen...115453062020-12-28 23:00:221341 days ago1609196422IN
0x59891b95...a73E11AD1
0 ETH0.0030855666
Fetch Dividends ...115254652020-12-25 22:24:101344 days ago1608935050IN
0x59891b95...a73E11AD1
0 ETH0.0053672544
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
206142122024-08-26 17:18:474 days ago1724692727
0x59891b95...a73E11AD1
0.00793604 ETH
152525852022-07-31 21:12:23761 days ago1659301943
0x59891b95...a73E11AD1
0.01208478 ETH
143271642022-03-05 13:32:57909 days ago1646487177
0x59891b95...a73E11AD1
0.02989165 ETH
143271562022-03-05 13:31:36909 days ago1646487096
0x59891b95...a73E11AD1
0.07057097 ETH
129748992021-08-07 1:18:291120 days ago1628299109
0x59891b95...a73E11AD1
0.05648126 ETH
128791972021-07-22 23:32:431135 days ago1626996763
0x59891b95...a73E11AD1
0.00009708 ETH
128078772021-07-11 19:22:511146 days ago1626031371
0x59891b95...a73E11AD1
0.00051422 ETH
128035692021-07-11 3:14:221147 days ago1625973262
0x59891b95...a73E11AD1
0.01106464 ETH
127247732021-06-28 20:52:431159 days ago1624913563
0x59891b95...a73E11AD1
0.02168033 ETH
127247682021-06-28 20:52:151159 days ago1624913535
0x59891b95...a73E11AD1
0.14348035 ETH
125740912021-06-05 11:02:461182 days ago1622890966
0x59891b95...a73E11AD1
0.02010791 ETH
123208172021-04-27 6:40:051221 days ago1619505605
0x59891b95...a73E11AD1
0.01362091 ETH
123207832021-04-27 6:33:381221 days ago1619505218
0x59891b95...a73E11AD1
0.01106301 ETH
122979342021-04-23 17:48:471225 days ago1619200127
0x59891b95...a73E11AD1
0.03866787 ETH
122344952021-04-13 22:36:011235 days ago1618353361
0x59891b95...a73E11AD1
0.01490913 ETH
122344822021-04-13 22:33:291235 days ago1618353209
0x59891b95...a73E11AD1
0.12181014 ETH
117108302021-01-23 8:49:381315 days ago1611391778
0x59891b95...a73E11AD1
0.04161835 ETH
116947632021-01-20 21:18:091318 days ago1611177489
0x59891b95...a73E11AD1
0.01604675 ETH
116947582021-01-20 21:17:301318 days ago1611177450
0x59891b95...a73E11AD1
0.10275678 ETH
115625302020-12-31 14:38:101338 days ago1609425490
0x59891b95...a73E11AD1
0.01790689 ETH
115453062020-12-28 23:00:221341 days ago1609196422
0x59891b95...a73E11AD1
0.04644276 ETH
115254652020-12-25 22:24:101344 days ago1608935050
0x59891b95...a73E11AD1
0.12480563 ETH
112642872020-11-15 19:15:121384 days ago1605467712
0x59891b95...a73E11AD1
0.01695067 ETH
112060882020-11-06 20:57:071393 days ago1604696227
0x59891b95...a73E11AD1
0.00653565 ETH
112060772020-11-06 20:55:111393 days ago1604696111
0x59891b95...a73E11AD1
0.00708486 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
P3XRoll

Compiler Version
v0.5.6+commit.b259423e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-03-20
*/

pragma solidity 0.5.6;

contract P3XRoll {
    using SafeMath for uint256;
    
    struct Bet {
        uint256 amount;
        uint256 chance;
        uint256 blocknumber;
        bool isOpen;
    }
    
    mapping(address => Bet) public bets;
    uint256 public numberOfBets;
    
    mapping(address => uint256) private playerVault;
    uint256 public pot;
    
    uint256 constant public MIN_BET = 1e18; // 1 P3X
    uint256 constant private MAX_PROFIT_DIVISOR = 100;
    
    event Win(address indexed player, uint256 indexed roll, uint256 indexed amount);
    event Loss(address indexed player, uint256 indexed roll, uint256 indexed amount);
    event Expiration(address indexed player, uint256 indexed amount);
    
    address constant private P3X_ADDRESS = address(0x058a144951e062FC14f310057D2Fd9ef0Cf5095b);
    IP3X constant private p3xContract = IP3X(P3X_ADDRESS);
    
    address constant private DEV = address(0x1EB2acB92624DA2e601EEb77e2508b32E49012ef);
    
    //shareholder setup
    struct Shareholder {
        uint256 tokens;
        uint256 outstandingDividends;
        uint256 lastDividendPoints;
    }

    uint256 constant private MAX_SUPPLY = 20000e18;
    uint256 public totalSupply;
    mapping(address => Shareholder) public shareholders;
    bool public minting = true;
    
    uint256 constant private POINT_MULTIPLIER = 10e18;
    uint256 private totalDividendPoints;
    uint256 public totalOutstandingDividends;
    
    uint256 constant private DIVIDEND_FETCH_TIME = 1 hours;
    uint256 private lastDividendsFetched;
    
    event Mint(address indexed player, uint256 indexed amount);
    
    modifier updateDividends()
    {
        if(now - lastDividendsFetched > DIVIDEND_FETCH_TIME && totalSupply > 0) {
            fetchDividendsFromP3X();
        }
        _;
    }
    
    function() external payable {}
    
    function tokenFallback(address player, uint256 amount, bytes calldata data)
	    external
	    updateDividends
	{
	    require(msg.sender == P3X_ADDRESS);
	    
	    if(data[0] == 0) {
	        fundPot(player, amount);
	    } else {
	        placeBet(player, amount, uint8(data[0]));
	    }
	}
        
    function playFromVault(uint256 amount, uint256 chance)
        external
        updateDividends
    {
        playerVault[msg.sender] = playerVault[msg.sender].sub(amount);
        
        placeBet(msg.sender, amount, chance);
    }
    
    function placeBet(address player, uint256 amount, uint256 chance)
        private
    {
        require(chance >= 1 && chance <= 98);
        require(amount >= MIN_BET);
        
        if(hasActiveBet(player)) {
            fetch(player);
        }
        
        uint256 potentialProfit = potentialProfit(amount, chance);
        require(potentialProfit <= maximumProfit());
        
        bets[player] = Bet(amount, chance, block.number + 1, true);
        numberOfBets++;
        
        pot = pot.add(amount);
        
        if(minting) {
            mint(player, potentialProfit < amount ? potentialProfit : amount);
        }
    }
    
    function fetchResult()
        external
        updateDividends
    {
        require(hasActiveBet(msg.sender));
        
        fetch(msg.sender);
    }
    
    function fetch(address player)
        private
    {
        Bet storage bet = bets[player];
        
        require(bet.blocknumber < block.number);
        
        bet.isOpen = false;
        
        if(block.number - 256 > bet.blocknumber) {
            emit Expiration(player, bet.amount);
            return;
        }
        
        uint256 roll = (uint256(blockhash(bet.blocknumber)) % 100) + 1;
        
        if(roll <= bet.chance) {
            uint256 totalReturn = bet.amount.mul(99) / bet.chance;
            playerVault[player] = playerVault[player].add(totalReturn);
            pot = pot.sub(totalReturn);
            emit Win(player, roll, totalReturn - bet.amount);
        } else {
            emit Loss(player, roll, bet.amount);
        }
    }
    
    function withdrawEarnings()
        external
        updateDividends
    {
        uint256 amount = playerVault[msg.sender];
        
        require(amount > 0);
        
        playerVault[msg.sender] = 0;
        
        p3xContract.transfer(msg.sender, amount);
    }
    
    function withdrawDividends()
        external
    {
        Shareholder storage shareholder = shareholders[msg.sender];
        
        updateOutstandingDividends(shareholder);
        
        uint256 amount = shareholder.outstandingDividends;
        
        require(amount > 0);
        
        shareholder.outstandingDividends = 0;
        totalOutstandingDividends = totalOutstandingDividends.sub(amount);
		
	    msg.sender.transfer(amount);
    }
    
    function fundPot(address player, uint256 amount)
        private
    {
        require(minting);
        
        pot = pot.add(amount);
        
        mint(player, amount);
    }
    
    function mint(address player, uint256 amount)
        private
    {
        uint256 amountToMint;
        if(totalSupply.add(amount) < MAX_SUPPLY) {
            amountToMint = amount;
        } else {
            amountToMint = MAX_SUPPLY.sub(totalSupply);
            minting = false;
        }
        
        Shareholder storage minter = shareholders[player];
        Shareholder storage dev = shareholders[DEV];
        
        updateOutstandingDividends(minter);
        updateOutstandingDividends(dev);
        
        totalSupply = totalSupply.add(amountToMint);
        minter.tokens = minter.tokens.add(amountToMint.mul(19) / 20);
        dev.tokens = dev.tokens.add(amountToMint / 20);
        
        emit Mint(player, amountToMint);
    }
    
    function updateOutstandingDividends(Shareholder storage shareholder)
        private
    {
        uint256 dividendPointsDifference = totalDividendPoints.sub(shareholder.lastDividendPoints);
        
        shareholder.lastDividendPoints = totalDividendPoints;
        shareholder.outstandingDividends = shareholder.outstandingDividends
                                            .add(dividendPointsDifference.mul(shareholder.tokens) / POINT_MULTIPLIER);
    }
    
    function fetchDividendsFromP3X()
        public
    {
        lastDividendsFetched = now;
        
        uint256 dividends = p3xContract.dividendsOf(address(this), true);
        if(dividends > 0) {
              p3xContract.withdraw();
              totalDividendPoints = totalDividendPoints.add(dividends.mul(POINT_MULTIPLIER) / totalSupply);
              totalOutstandingDividends = totalOutstandingDividends.add(dividends);
        }
    }
    
    //
    // VIEW FUNCTIONS
    //
    function maximumProfit()
        public
        view
        returns(uint256)
    {
        return pot / MAX_PROFIT_DIVISOR;
    }
    
    function potentialProfit(uint256 amount, uint256 chance)
        public
        view
        returns(uint256)
    {
       return (amount.mul(99) / chance).sub(amount);
    }
    
    function hasActiveBet(address player)
        public
        view
        returns(bool)
    {
        return bets[player].isOpen;
    }
    
    function myEarnings()
        external
        view
        returns(uint256)
    {
        return playerVault[msg.sender];
    }
    
    function myDividends()
        external
        view
        returns(uint256)
    {
        address shareholder = msg.sender;
        
        uint256 dividendPointsDifference = totalDividendPoints.sub(shareholders[shareholder].lastDividendPoints);
        return shareholders[shareholder].outstandingDividends
                .add(dividendPointsDifference.mul(shareholders[shareholder].tokens) / POINT_MULTIPLIER);
    }
    
    function myTokens()
        external
        view
        returns(uint256)
    {
        return shareholders[msg.sender].tokens;
    }
    
    function myTokenShare()
        external
        view
        returns(uint256)
    {
        return totalSupply > 0 ? shareholders[msg.sender].tokens.mul(100) / totalSupply : 0;
    }
    
    function myP3XBalance()
        external
        view
        returns(uint256)
    {
        return p3xContract.balanceOf(msg.sender);
    }
    
    function fetchableDividendsFromP3X()
        external
        view
        returns(uint256)
    {
        return p3xContract.dividendsOf(address(this), true);
    }
    
    function mintableTokens()
        external
        view
        returns(uint256)
    {
        return MAX_SUPPLY.sub(totalSupply);
    }
    
    function timeUntilNextDividendFetching()
        external
        view
        returns(uint256)
    {
        uint256 difference = now.sub(lastDividendsFetched);
        return difference > DIVIDEND_FETCH_TIME ? 0 : DIVIDEND_FETCH_TIME.sub(difference);
    }
}

interface IP3X {
    function transfer(address to, uint256 value) external returns(bool);
	function transfer(address to, uint value, bytes calldata data) external returns(bool ok);
    function buy(address referrerAddress) payable external returns(uint256);
    function balanceOf(address tokenOwner) external view returns(uint);
	function dividendsOf(address customerAddress, bool includeReferralBonus) external view returns(uint256);
    function withdraw() external;
}

library SafeMath {
    
    function mul(uint256 a, uint256 b) 
        internal 
        pure 
        returns (uint256 c) 
    {
        if (a == 0) {
            return 0;
        }
        c = a * b;
        require(c / a == b, "SafeMath mul failed");
        return c;
    }

    function sub(uint256 a, uint256 b)
        internal
        pure
        returns (uint256) 
    {
        require(b <= a, "SafeMath sub failed");
        return a - b;
    }
    
    function add(uint256 a, uint256 b)
        internal
        pure
        returns (uint256 c) 
    {
        c = a + b;
        require(c >= a, "SafeMath add failed");
        return c;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maximumProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfBets","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalOutstandingDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"fetchResult","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pot","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"shareholders","outputs":[{"name":"tokens","type":"uint256"},{"name":"outstandingDividends","type":"uint256"},{"name":"lastDividendPoints","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_BET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"timeUntilNextDividendFetching","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"bets","outputs":[{"name":"amount","type":"uint256"},{"name":"chance","type":"uint256"},{"name":"blocknumber","type":"uint256"},{"name":"isOpen","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokenShare","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"amount","type":"uint256"},{"name":"chance","type":"uint256"}],"name":"potentialProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"myP3XBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEarnings","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"player","type":"address"},{"name":"amount","type":"uint256"},{"name":"data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"fetchDividendsFromP3X","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fetchableDividendsFromP3X","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintableTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"player","type":"address"}],"name":"hasActiveBet","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"},{"name":"chance","type":"uint256"}],"name":"playFromVault","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myEarnings","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"roll","type":"uint256"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"Win","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"roll","type":"uint256"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"Loss","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"Expiration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"player","type":"address"},{"indexed":true,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"}]

60806040526001600660006101000a81548160ff02191690831515021790555034801561002b57600080fd5b50611af18061003b6000396000f3fe6080604052600436106101665760003560e01c806389a78f1a116100d1578063c0ee0b8a1161008a578063cf3dfae711610064578063cf3dfae7146105f1578063d8a6b6cc1461061c578063e96d977f14610685578063ffe6bbd8146106ca57610166565b8063c0ee0b8a146104ff578063c14d81a9146105af578063cc866c51146105c657610166565b806389a78f1a146103905780638aa785431461040e578063903f5c6714610439578063949e8acd14610492578063b3b2786d146104bd578063b73c6ce9146104e857610166565b8063492790c211610123578063492790c2146102565780634ba2363a1461026d5780635c2930ad146102985780636540742f1461030b5780637dc2268c1461033657806382aec0521461036557610166565b806318160ddd1461016857806323d0e65c146101935780632ca8c6d3146101be5780632e92abdd146101e95780633151ecfc1461020057806346aace161461022b575b005b34801561017457600080fd5b5061017d6106f5565b6040518082815260200191505060405180910390f35b34801561019f57600080fd5b506101a86106fb565b6040518082815260200191505060405180910390f35b3480156101ca57600080fd5b506101d361070f565b6040518082815260200191505060405180910390f35b3480156101f557600080fd5b506101fe610715565b005b34801561020c57600080fd5b506102156107e7565b6040518082815260200191505060405180910390f35b34801561023757600080fd5b50610240610909565b6040518082815260200191505060405180910390f35b34801561026257600080fd5b5061026b61090f565b005b34801561027957600080fd5b50610282610951565b6040518082815260200191505060405180910390f35b3480156102a457600080fd5b506102e7600480360360208110156102bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610957565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561031757600080fd5b50610320610981565b6040518082815260200191505060405180910390f35b34801561034257600080fd5b5061034b61098d565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b5061037a6109a0565b6040518082815260200191505060405180910390f35b34801561039c57600080fd5b506103df600480360360208110156103b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109e6565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b34801561041a57600080fd5b50610423610a23565b6040518082815260200191505060405180910390f35b34801561044557600080fd5b5061047c6004803603604081101561045c57600080fd5b810190808035906020019092919080359060200190929190505050610a9c565b6040518082815260200191505060405180910390f35b34801561049e57600080fd5b506104a7610ad5565b6040518082815260200191505060405180910390f35b3480156104c957600080fd5b506104d2610b1f565b6040518082815260200191505060405180910390f35b3480156104f457600080fd5b506104fd610bf2565b005b34801561050b57600080fd5b506105ad6004803603606081101561052257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b9091929391929390505050610d87565b005b3480156105bb57600080fd5b506105c4610e79565b005b3480156105d257600080fd5b506105db611039565b6040518082815260200191505060405180910390f35b3480156105fd57600080fd5b50610606611119565b6040518082815260200191505060405180910390f35b34801561062857600080fd5b5061066b6004803603602081101561063f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113f565b604051808215151515815260200191505060405180910390f35b34801561069157600080fd5b506106c8600480360360408110156106a857600080fd5b810190808035906020019092919080359060200190929190505050611197565b005b3480156106d657600080fd5b506106df611260565b6040518082815260200191505060405180910390f35b60045481565b600060646003548161070957fe5b04905090565b60015481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610761816112a7565b6000816001015490506000811161077757600080fd5b600082600101819055506107968160085461131990919063ffffffff16565b6008819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156107e2573d6000803e3d6000fd5b505050565b6000803390506000610846600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015460075461131990919063ffffffff16565b9050610902678ac7230489e800006108a9600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548461139c90919063ffffffff16565b816108b057fe5b04600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461143c90919063ffffffff16565b9250505090565b60085481565b610e10600954420311801561092657506000600454115b1561093457610933610e79565b5b61093d3361113f565b61094657600080fd5b61094f336114c2565b565b60035481565b60056020528060005260406000206000915090508060000154908060010154908060020154905083565b670de0b6b3a764000081565b600660009054906101000a900460ff1681565b6000806109b86009544261131990919063ffffffff16565b9050610e1081116109dd576109d881610e1061131990919063ffffffff16565b6109e0565b60005b91505090565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60008060045411610a35576000610a97565b600454610a8e6064600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461139c90919063ffffffff16565b81610a9557fe5b045b905090565b6000610acd8383610ab760638761139c90919063ffffffff16565b81610abe57fe5b0461131990919063ffffffff16565b905092915050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905090565b600073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d6020811015610bdc57600080fd5b8101908080519060200190929190505050905090565b610e106009544203118015610c0957506000600454115b15610c1757610c16610e79565b5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610c6857600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506040513d6020811015610d7257600080fd5b81019080805190602001909291905050505050565b610e106009544203118015610d9e57506000600454115b15610dac57610dab610e79565b5b73058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610df857600080fd5b600060f81b82826000818110610e0a57fe5b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610e4b57610e46848461172e565b610e73565b610e72848484846000818110610e5d57fe5b9050013560f81c60f81b60f81c60ff16611770565b5b50505050565b42600981905550600073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff166374a768163060016040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060206040518083038186803b158015610f2057600080fd5b505afa158015610f34573d6000803e3d6000fd5b505050506040513d6020811015610f4a57600080fd5b8101908080519060200190929190505050905060008111156110365773058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fc257600080fd5b505af1158015610fd6573d6000803e3d6000fd5b50505050611014600454610ffb678ac7230489e800008461139c90919063ffffffff16565b8161100257fe5b0460075461143c90919063ffffffff16565b60078190555061102f8160085461143c90919063ffffffff16565b6008819055505b50565b600073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff166374a768163060016040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060206040518083038186803b1580156110d957600080fd5b505afa1580156110ed573d6000803e3d6000fd5b505050506040513d602081101561110357600080fd5b8101908080519060200190929190505050905090565b600061113a60045469043c33c193756480000061131990919063ffffffff16565b905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff169050919050565b610e1060095442031180156111ae57506000600454115b156111bc576111bb610e79565b5b61120e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061125c338383611770565b5050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006112c2826002015460075461131990919063ffffffff16565b9050600754826002018190555061130d678ac7230489e800006112f284600001548461139c90919063ffffffff16565b816112f957fe5b04836001015461143c90919063ffffffff16565b82600101819055505050565b600082821115611391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f536166654d61746820737562206661696c65640000000000000000000000000081525060200191505060405180910390fd5b818303905092915050565b6000808314156113af5760009050611436565b8183029050818382816113be57fe5b0414611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f536166654d617468206d756c206661696c65640000000000000000000000000081525060200191505060405180910390fd5b8090505b92915050565b60008183019050828110156114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f536166654d61746820616464206661696c65640000000000000000000000000081525060200191505060405180910390fd5b80905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504381600201541061151457600080fd5b60008160030160006101000a81548160ff02191690831515021790555080600201546101004303111561158f5780600001548273ffffffffffffffffffffffffffffffffffffffff167f8327b49305e32e98cdf5f1f42dad9ad03e93774bc01017b84bb42f39da62423560405160405180910390a35061172b565b60006001606483600201544060001c816115a557fe5b06019050816001015481116116de57600082600101546115d36063856000015461139c90919063ffffffff16565b816115da57fe5b04905061162f81600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116878160035461131990919063ffffffff16565b60038190555082600001548103828573ffffffffffffffffffffffffffffffffffffffff167f1547adaaf63fc61e99e29577a820d1c7626e8de63d1cb5830d0edbf3951aeb5c60405160405180910390a450611728565b8160000154818473ffffffffffffffffffffffffffffffffffffffff167f68968dce3e47f9519d4b1886045d266b13a87545a0831788b35556bbf8abb6c760405160405180910390a45b50505b50565b600660009054906101000a900460ff1661174757600080fd5b61175c8160035461143c90919063ffffffff16565b60038190555061176c82826118e1565b5050565b60018110158015611782575060628111155b61178b57600080fd5b670de0b6b3a76400008210156117a057600080fd5b6117a98361113f565b156117b8576117b7836114c2565b5b60006117c48383610a9c565b90506117ce6106fb565b8111156117da57600080fd5b6040518060800160405280848152602001838152602001600143018152602001600115158152506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050506001600081548092919060010191905055506118a78360035461143c90919063ffffffff16565b600381905550600660009054906101000a900460ff16156118db576118da848483106118d357846118d5565b825b6118e1565b5b50505050565b600069043c33c19375648000006119038360045461143c90919063ffffffff16565b10156119115781905061194e565b61193060045469043c33c193756480000061131990919063ffffffff16565b90506000600660006101000a81548160ff0219169083151502179055505b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060056000731eb2acb92624da2e601eeb77e2508b32e49012ef73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506119f1826112a7565b6119fa816112a7565b611a0f8360045461143c90919063ffffffff16565b600481905550611a496014611a2e60138661139c90919063ffffffff16565b81611a3557fe5b04836000015461143c90919063ffffffff16565b8260000181905550611a7260148481611a5e57fe5b04826000015461143c90919063ffffffff16565b8160000181905550828573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a3505050505056fea165627a7a72305820a93f28d352523cb1acb328074b31350f4a64f34ef684bf0a759b367d5d10876c0029

Deployed Bytecode

0x6080604052600436106101665760003560e01c806389a78f1a116100d1578063c0ee0b8a1161008a578063cf3dfae711610064578063cf3dfae7146105f1578063d8a6b6cc1461061c578063e96d977f14610685578063ffe6bbd8146106ca57610166565b8063c0ee0b8a146104ff578063c14d81a9146105af578063cc866c51146105c657610166565b806389a78f1a146103905780638aa785431461040e578063903f5c6714610439578063949e8acd14610492578063b3b2786d146104bd578063b73c6ce9146104e857610166565b8063492790c211610123578063492790c2146102565780634ba2363a1461026d5780635c2930ad146102985780636540742f1461030b5780637dc2268c1461033657806382aec0521461036557610166565b806318160ddd1461016857806323d0e65c146101935780632ca8c6d3146101be5780632e92abdd146101e95780633151ecfc1461020057806346aace161461022b575b005b34801561017457600080fd5b5061017d6106f5565b6040518082815260200191505060405180910390f35b34801561019f57600080fd5b506101a86106fb565b6040518082815260200191505060405180910390f35b3480156101ca57600080fd5b506101d361070f565b6040518082815260200191505060405180910390f35b3480156101f557600080fd5b506101fe610715565b005b34801561020c57600080fd5b506102156107e7565b6040518082815260200191505060405180910390f35b34801561023757600080fd5b50610240610909565b6040518082815260200191505060405180910390f35b34801561026257600080fd5b5061026b61090f565b005b34801561027957600080fd5b50610282610951565b6040518082815260200191505060405180910390f35b3480156102a457600080fd5b506102e7600480360360208110156102bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610957565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561031757600080fd5b50610320610981565b6040518082815260200191505060405180910390f35b34801561034257600080fd5b5061034b61098d565b604051808215151515815260200191505060405180910390f35b34801561037157600080fd5b5061037a6109a0565b6040518082815260200191505060405180910390f35b34801561039c57600080fd5b506103df600480360360208110156103b357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109e6565b604051808581526020018481526020018381526020018215151515815260200194505050505060405180910390f35b34801561041a57600080fd5b50610423610a23565b6040518082815260200191505060405180910390f35b34801561044557600080fd5b5061047c6004803603604081101561045c57600080fd5b810190808035906020019092919080359060200190929190505050610a9c565b6040518082815260200191505060405180910390f35b34801561049e57600080fd5b506104a7610ad5565b6040518082815260200191505060405180910390f35b3480156104c957600080fd5b506104d2610b1f565b6040518082815260200191505060405180910390f35b3480156104f457600080fd5b506104fd610bf2565b005b34801561050b57600080fd5b506105ad6004803603606081101561052257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561056957600080fd5b82018360208201111561057b57600080fd5b8035906020019184600183028401116401000000008311171561059d57600080fd5b9091929391929390505050610d87565b005b3480156105bb57600080fd5b506105c4610e79565b005b3480156105d257600080fd5b506105db611039565b6040518082815260200191505060405180910390f35b3480156105fd57600080fd5b50610606611119565b6040518082815260200191505060405180910390f35b34801561062857600080fd5b5061066b6004803603602081101561063f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061113f565b604051808215151515815260200191505060405180910390f35b34801561069157600080fd5b506106c8600480360360408110156106a857600080fd5b810190808035906020019092919080359060200190929190505050611197565b005b3480156106d657600080fd5b506106df611260565b6040518082815260200191505060405180910390f35b60045481565b600060646003548161070957fe5b04905090565b60015481565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610761816112a7565b6000816001015490506000811161077757600080fd5b600082600101819055506107968160085461131990919063ffffffff16565b6008819055503373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156107e2573d6000803e3d6000fd5b505050565b6000803390506000610846600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206002015460075461131990919063ffffffff16565b9050610902678ac7230489e800006108a9600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548461139c90919063ffffffff16565b816108b057fe5b04600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461143c90919063ffffffff16565b9250505090565b60085481565b610e10600954420311801561092657506000600454115b1561093457610933610e79565b5b61093d3361113f565b61094657600080fd5b61094f336114c2565b565b60035481565b60056020528060005260406000206000915090508060000154908060010154908060020154905083565b670de0b6b3a764000081565b600660009054906101000a900460ff1681565b6000806109b86009544261131990919063ffffffff16565b9050610e1081116109dd576109d881610e1061131990919063ffffffff16565b6109e0565b60005b91505090565b60006020528060005260406000206000915090508060000154908060010154908060020154908060030160009054906101000a900460ff16905084565b60008060045411610a35576000610a97565b600454610a8e6064600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461139c90919063ffffffff16565b81610a9557fe5b045b905090565b6000610acd8383610ab760638761139c90919063ffffffff16565b81610abe57fe5b0461131990919063ffffffff16565b905092915050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154905090565b600073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610bb257600080fd5b505afa158015610bc6573d6000803e3d6000fd5b505050506040513d6020811015610bdc57600080fd5b8101908080519060200190929190505050905090565b610e106009544203118015610c0957506000600454115b15610c1757610c16610e79565b5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008111610c6857600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610d4857600080fd5b505af1158015610d5c573d6000803e3d6000fd5b505050506040513d6020811015610d7257600080fd5b81019080805190602001909291905050505050565b610e106009544203118015610d9e57506000600454115b15610dac57610dab610e79565b5b73058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610df857600080fd5b600060f81b82826000818110610e0a57fe5b9050013560f81c60f81b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415610e4b57610e46848461172e565b610e73565b610e72848484846000818110610e5d57fe5b9050013560f81c60f81b60f81c60ff16611770565b5b50505050565b42600981905550600073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff166374a768163060016040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060206040518083038186803b158015610f2057600080fd5b505afa158015610f34573d6000803e3d6000fd5b505050506040513d6020811015610f4a57600080fd5b8101908080519060200190929190505050905060008111156110365773058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff16633ccfd60b6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610fc257600080fd5b505af1158015610fd6573d6000803e3d6000fd5b50505050611014600454610ffb678ac7230489e800008461139c90919063ffffffff16565b8161100257fe5b0460075461143c90919063ffffffff16565b60078190555061102f8160085461143c90919063ffffffff16565b6008819055505b50565b600073058a144951e062fc14f310057d2fd9ef0cf5095b73ffffffffffffffffffffffffffffffffffffffff166374a768163060016040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060206040518083038186803b1580156110d957600080fd5b505afa1580156110ed573d6000803e3d6000fd5b505050506040513d602081101561110357600080fd5b8101908080519060200190929190505050905090565b600061113a60045469043c33c193756480000061131990919063ffffffff16565b905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160009054906101000a900460ff169050919050565b610e1060095442031180156111ae57506000600454115b156111bc576111bb610e79565b5b61120e82600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461131990919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061125c338383611770565b5050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905090565b60006112c2826002015460075461131990919063ffffffff16565b9050600754826002018190555061130d678ac7230489e800006112f284600001548461139c90919063ffffffff16565b816112f957fe5b04836001015461143c90919063ffffffff16565b82600101819055505050565b600082821115611391576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f536166654d61746820737562206661696c65640000000000000000000000000081525060200191505060405180910390fd5b818303905092915050565b6000808314156113af5760009050611436565b8183029050818382816113be57fe5b0414611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f536166654d617468206d756c206661696c65640000000000000000000000000081525060200191505060405180910390fd5b8090505b92915050565b60008183019050828110156114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f536166654d61746820616464206661696c65640000000000000000000000000081525060200191505060405180910390fd5b80905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090504381600201541061151457600080fd5b60008160030160006101000a81548160ff02191690831515021790555080600201546101004303111561158f5780600001548273ffffffffffffffffffffffffffffffffffffffff167f8327b49305e32e98cdf5f1f42dad9ad03e93774bc01017b84bb42f39da62423560405160405180910390a35061172b565b60006001606483600201544060001c816115a557fe5b06019050816001015481116116de57600082600101546115d36063856000015461139c90919063ffffffff16565b816115da57fe5b04905061162f81600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461143c90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506116878160035461131990919063ffffffff16565b60038190555082600001548103828573ffffffffffffffffffffffffffffffffffffffff167f1547adaaf63fc61e99e29577a820d1c7626e8de63d1cb5830d0edbf3951aeb5c60405160405180910390a450611728565b8160000154818473ffffffffffffffffffffffffffffffffffffffff167f68968dce3e47f9519d4b1886045d266b13a87545a0831788b35556bbf8abb6c760405160405180910390a45b50505b50565b600660009054906101000a900460ff1661174757600080fd5b61175c8160035461143c90919063ffffffff16565b60038190555061176c82826118e1565b5050565b60018110158015611782575060628111155b61178b57600080fd5b670de0b6b3a76400008210156117a057600080fd5b6117a98361113f565b156117b8576117b7836114c2565b5b60006117c48383610a9c565b90506117ce6106fb565b8111156117da57600080fd5b6040518060800160405280848152602001838152602001600143018152602001600115158152506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000155602082015181600101556040820151816002015560608201518160030160006101000a81548160ff0219169083151502179055509050506001600081548092919060010191905055506118a78360035461143c90919063ffffffff16565b600381905550600660009054906101000a900460ff16156118db576118da848483106118d357846118d5565b825b6118e1565b5b50505050565b600069043c33c19375648000006119038360045461143c90919063ffffffff16565b10156119115781905061194e565b61193060045469043c33c193756480000061131990919063ffffffff16565b90506000600660006101000a81548160ff0219169083151502179055505b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600060056000731eb2acb92624da2e601eeb77e2508b32e49012ef73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506119f1826112a7565b6119fa816112a7565b611a0f8360045461143c90919063ffffffff16565b600481905550611a496014611a2e60138661139c90919063ffffffff16565b81611a3557fe5b04836000015461143c90919063ffffffff16565b8260000181905550611a7260148481611a5e57fe5b04826000015461143c90919063ffffffff16565b8160000181905550828573ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a3505050505056fea165627a7a72305820a93f28d352523cb1acb328074b31350f4a64f34ef684bf0a759b367d5d10876c0029

Swarm Source

bzzr://a93f28d352523cb1acb328074b31350f4a64f34ef684bf0a759b367d5d10876c

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.