ETH Price: $3,539.87 (-1.34%)
Gas: 20 Gwei

Contract

0xF1EF9F5a3d3EC8391016D12EF37f0D70cF73D391
 

Overview

ETH Balance

0.18 ETH

Eth Value

$637.18 (@ $3,539.87/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Buy Sale Non Ref...68448142018-12-07 21:22:211938 days ago1544217741IN
0xF1EF9F5a...0cF73D391
0 ETH0.000337315.3
Refund65427002018-10-19 6:48:501988 days ago1539931730IN
0xF1EF9F5a...0cF73D391
0 ETH0.000098675
Buy Sale Non Ref...65192802018-10-15 10:55:521991 days ago1539600952IN
0xF1EF9F5a...0cF73D391
0 ETH0.000066133
Buy Sale Referre...64946142018-10-11 10:53:251995 days ago1539255205IN
0xF1EF9F5a...0cF73D391
0 ETH0.000048582.05857095
Buy Sale Referre...64945642018-10-11 10:45:061995 days ago1539254706IN
0xF1EF9F5a...0cF73D391
0 ETH0.000049562.1
Buy Sale Referre...64945242018-10-11 10:38:091996 days ago1539254289IN
0xF1EF9F5a...0cF73D391
0 ETH0.00004722
Buy Sale Non Ref...64602032018-10-05 21:26:042001 days ago1538774764IN
0xF1EF9F5a...0cF73D391
0 ETH0.000005510.25
Refund63849082018-09-23 13:22:452013 days ago1537708965IN
0xF1EF9F5a...0cF73D391
0 ETH0.000078934
Refund63740402018-09-21 18:44:322015 days ago1537555472IN
0xF1EF9F5a...0cF73D391
0 ETH0.0002803410
Refund63740382018-09-21 18:44:112015 days ago1537555451IN
0xF1EF9F5a...0cF73D391
0 ETH0.0001973410
Refund63584282018-09-19 4:34:242018 days ago1537331664IN
0xF1EF9F5a...0cF73D391
0 ETH0.000190636.8
Refund63584242018-09-19 4:33:342018 days ago1537331614IN
0xF1EF9F5a...0cF73D391
0 ETH0.000134196.8
Refund63579962018-09-19 2:49:282018 days ago1537325368IN
0xF1EF9F5a...0cF73D391
0 ETH0.000336412
Refund63579862018-09-19 2:46:232018 days ago1537325183IN
0xF1EF9F5a...0cF73D391
0 ETH0.000236812
Refund63552112018-09-18 15:51:542018 days ago1537285914IN
0xF1EF9F5a...0cF73D391
0 ETH0.0001973410
Refund63547252018-09-18 13:49:032018 days ago1537278543IN
0xF1EF9F5a...0cF73D391
0 ETH0.000100645.1
Refund63533352018-09-18 8:14:302019 days ago1537258470IN
0xF1EF9F5a...0cF73D391
0 ETH0.000149977.6
Set Maintainance63479052018-09-17 10:54:322019 days ago1537181672IN
0xF1EF9F5a...0cF73D391
0 ETH0.000138335
Refund63478852018-09-17 10:49:542019 days ago1537181394IN
0xF1EF9F5a...0cF73D391
0 ETH0.000078934
Set Refundable63478742018-09-17 10:47:562019 days ago1537181276IN
0xF1EF9F5a...0cF73D391
0 ETH0.000136315
Buy Sale Non Ref...63359002018-09-15 11:14:212021 days ago1537010061IN
0xF1EF9F5a...0cF73D391
0 ETH0.000747715
Buy Sale Non Ref...63313562018-09-14 17:22:082022 days ago1536945728IN
0xF1EF9F5a...0cF73D391
0 ETH0.000358615
Buy Sale Non Ref...63313482018-09-14 17:18:572022 days ago1536945537IN
0xF1EF9F5a...0cF73D391
0 ETH0.000747465
Buy Sale Non Ref...63298932018-09-14 11:25:002022 days ago1536924300IN
0xF1EF9F5a...0cF73D391
0 ETH0.000358615
Buy Sale Non Ref...63298322018-09-14 11:10:062022 days ago1536923406IN
0xF1EF9F5a...0cF73D391
0 ETH0.000747715
View all transactions

Latest 9 internal transactions

Advanced mode:
Parent Txn Hash Block From To Value
65427002018-10-19 6:48:501988 days ago1539931730
0xF1EF9F5a...0cF73D391
0.09 ETH
63849082018-09-23 13:22:452013 days ago1537708965
0xF1EF9F5a...0cF73D391
0.09 ETH
63740382018-09-21 18:44:112015 days ago1537555451
0xF1EF9F5a...0cF73D391
0.09 ETH
63584242018-09-19 4:33:342018 days ago1537331614
0xF1EF9F5a...0cF73D391
0.09 ETH
63579862018-09-19 2:46:232018 days ago1537325183
0xF1EF9F5a...0cF73D391
0.09 ETH
63552112018-09-18 15:51:542018 days ago1537285914
0xF1EF9F5a...0cF73D391
1.86 ETH
63547252018-09-18 13:49:032018 days ago1537278543
0xF1EF9F5a...0cF73D391
1.86 ETH
63533352018-09-18 8:14:302019 days ago1537258470
0xF1EF9F5a...0cF73D391
0.09 ETH
63478852018-09-17 10:49:542019 days ago1537181394
0xF1EF9F5a...0cF73D391
0.78 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EMPresale

Compiler Version
v0.4.21-nightly.2018.3.7+commit.bd7bc7c4

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.18;

contract EMPresale {
    
    bool inMaintainance;
    bool isRefundable;
    
    // Data -----------------------------
    
    struct Player {
        uint32 id;  // if 0, then player don't exist
        mapping(uint8 => uint8) bought;
        uint256 weiSpent;
        bool hasSpent;
    }
    
    struct Sale {
        uint8 bought;
        uint8 maxBought;
        uint32 cardTypeID;
        uint256 price;
        uint256 saleEndTime;
        
        bool isAirdrop;     // enables minting (+maxBought per hour until leftToMint==0)
                            // + each player can only buy once
                            // + is free
        uint256 nextMintTime;
        uint8 leftToMint;
    }
    
    address admin;
    address[] approverArr; // for display purpose only
    mapping(address => bool) approvers;
    
    address[] playerAddrs;      // 0 index not used
    uint32[] playerRefCounts;   // 0 index not used
    
    mapping(address => Player) players;
    mapping(uint8 => Sale) sales;   // use from 1 onwards
    uint256 refPrize;
    
    // CONSTRUCTOR =======================
    
    function EMPresale() public {
        admin = msg.sender;
        approverArr.push(admin);
        approvers[admin] = true;
        
        playerAddrs.push(address(0));
        playerRefCounts.push(0);
    }
    
    // ADMIN FUNCTIONS =======================
    
    function setSaleType_Presale(uint8 saleID, uint8 maxBought, uint32 cardTypeID, uint256 price, uint256 saleEndTime) external onlyAdmin {
        Sale storage sale = sales[saleID];
        
        // assign sale type
        sale.bought = 0;
        sale.maxBought = maxBought;
        sale.cardTypeID = cardTypeID;
        sale.price = price;
        sale.saleEndTime = saleEndTime;
        
        // airdrop type
        sale.isAirdrop = false;
    }
    
    function setSaleType_Airdrop(uint8 saleID, uint8 maxBought, uint32 cardTypeID, uint8 leftToMint, uint256 firstMintTime) external onlyAdmin {
        Sale storage sale = sales[saleID];
        
        // assign sale type
        sale.bought = 0;
        sale.maxBought = maxBought;
        sale.cardTypeID = cardTypeID;
        sale.price = 0;
        sale.saleEndTime = 2000000000;
        
        // airdrop type
        require(leftToMint >= maxBought);
        sale.isAirdrop = true;
        sale.nextMintTime = firstMintTime;
        sale.leftToMint = leftToMint - maxBought;
    }
    
    function stopSaleType(uint8 saleID) external onlyAdmin {
        delete sales[saleID].saleEndTime;
    }
    
    function redeemCards(address playerAddr, uint8 saleID) external onlyApprover returns(uint8) {
        Player storage player = players[playerAddr];
        uint8 owned = player.bought[saleID];
        player.bought[saleID] = 0;
        return owned;
    }
    
    function setRefundable(bool refundable) external onlyAdmin {
        isRefundable = refundable;
    }
    
    function refund() external {
        require(isRefundable);
        Player storage player = players[msg.sender];
        uint256 spent = player.weiSpent;
        player.weiSpent = 0;
        msg.sender.transfer(spent);
    }
    
    // PLAYER FUNCTIONS ========================
    
    function buySaleNonReferral(uint8 saleID) external payable {
        buySale(saleID, address(0));
    }
    
    function buySaleReferred(uint8 saleID, address referral) external payable {
        buySale(saleID, referral);
    }
    
    function buySale(uint8 saleID, address referral) private {
        
        require(!inMaintainance);
        require(msg.sender != address(0));
        
        // check that sale is still on
        Sale storage sale = sales[saleID];
        require(sale.saleEndTime > now);
        
        bool isAirdrop = sale.isAirdrop;
        if(isAirdrop) {
            // airdrop minting
            if(now >= sale.nextMintTime) {  // hit a cycle
            
                sale.nextMintTime += ((now-sale.nextMintTime)/3600)*3600+3600;   // mint again next hour
                if(sale.bought != 0) {
                    uint8 leftToMint = sale.leftToMint;
                    if(leftToMint < sale.bought) { // not enough to recover, set maximum left to be bought
                        sale.maxBought = sale.maxBought + leftToMint - sale.bought;
                        sale.leftToMint = 0;
                    } else
                        sale.leftToMint -= sale.bought;
                    sale.bought = 0;
                }
            }
        } else {
            // check ether is paid
            require(msg.value >= sale.price);
        }

        // check not all is bought
        require(sale.bought < sale.maxBought);
        sale.bought++;
        
        bool toRegisterPlayer = false;
        bool toRegisterReferral = false;
        
        // register player if unregistered
        Player storage player = players[msg.sender];
        if(player.id == 0)
            toRegisterPlayer = true;
            
        // cannot buy more than once if airdrop
        if(isAirdrop)
            require(player.bought[saleID] == 0);
        
        // give ownership
        player.bought[saleID]++;
        if(!isAirdrop)  // is free otherwise
            player.weiSpent += msg.value;
        
        // if hasn't referred, add referral
        if(!player.hasSpent) {
            player.hasSpent = true;
            if(referral != address(0) && referral != msg.sender) {
                Player storage referredPlayer = players[referral];
                if(referredPlayer.id == 0) {    // add referred player if unregistered
                    toRegisterReferral = true;
                } else {                        // if already registered, just up ref count
                    playerRefCounts[referredPlayer.id]++;
                }
            }
        }
        
        // register player(s)
        if(toRegisterPlayer && toRegisterReferral) {
            uint256 length = (uint32)(playerAddrs.length);
            player.id = (uint32)(length);
            referredPlayer.id = (uint32)(length+1);
            playerAddrs.length = length+2;
            playerRefCounts.length = length+2;
            playerAddrs[length] = msg.sender;
            playerAddrs[length+1] = referral;
            playerRefCounts[length+1] = 1;
            
        } else if(toRegisterPlayer) {
            player.id = (uint32)(playerAddrs.length);
            playerAddrs.push(msg.sender);
            playerRefCounts.push(0);
            
        } else if(toRegisterReferral) {
            referredPlayer.id = (uint32)(playerAddrs.length);
            playerAddrs.push(referral);
            playerRefCounts.push(1);
        }
        
        // referral prize
        refPrize += msg.value/40;    // 2.5% added to prize money
    }
    
    function GetSaleInfo_Presale(uint8 saleID) external view returns (uint8, uint8, uint8, uint32, uint256, uint256) {
        uint8 playerOwned = 0;
        if(msg.sender != address(0))
            playerOwned = players[msg.sender].bought[saleID];
        
        Sale storage sale = sales[saleID];
        return (playerOwned, sale.bought, sale.maxBought, sale.cardTypeID, sale.price, sale.saleEndTime);
    }
    
    function GetSaleInfo_Airdrop(uint8 saleID) external view returns (uint8, uint8, uint8, uint32, uint256, uint8) {
        uint8 playerOwned = 0;
        if(msg.sender != address(0))
            playerOwned = players[msg.sender].bought[saleID];
        
        Sale storage sale = sales[saleID];
        uint8 bought = sale.bought;
        uint8 maxBought = sale.maxBought;
        uint256 nextMintTime = sale.nextMintTime;
        uint8 leftToMintResult = sale.leftToMint;
    
        // airdrop minting
        if(now >= nextMintTime) {  // hit a cycle
            nextMintTime += ((now-nextMintTime)/3600)*3600+3600;   // mint again next hour
            if(bought != 0) {
                uint8 leftToMint = leftToMintResult;
                if(leftToMint < bought) { // not enough to recover, set maximum left to be bought
                    maxBought = maxBought + leftToMint - bought;
                    leftToMintResult = 0;
                } else
                    leftToMintResult -= bought;
                bought = 0;
            }
        }
        
        return (playerOwned, bought, maxBought, sale.cardTypeID, nextMintTime, leftToMintResult);
    }
    
    function GetReferralInfo() external view returns(uint256, uint32) {
        uint32 refCount = 0;
        uint32 id = players[msg.sender].id;
        if(id != 0)
            refCount = playerRefCounts[id];
        return (refPrize, refCount);
    }
    
    function GetPlayer_FromAddr(address playerAddr, uint8 saleID) external view returns(uint32, uint8, uint256, bool, uint32) {
        Player storage player = players[playerAddr];
        return (player.id, player.bought[saleID], player.weiSpent, player.hasSpent, playerRefCounts[player.id]);
    }
    
    function GetPlayer_FromID(uint32 id, uint8 saleID) external view returns(address, uint8, uint256, bool, uint32) {
        address playerAddr = playerAddrs[id];
        Player storage player = players[playerAddr];
        return (playerAddr, player.bought[saleID], player.weiSpent, player.hasSpent, playerRefCounts[id]);
    }
    
    function getAddressesCount() external view returns(uint) {
        return playerAddrs.length;
    }
    
    function getAddresses() external view returns(address[]) {
        return playerAddrs;
    }
    
    function getAddress(uint256 id) external view returns(address) {
        return playerAddrs[id];
    }
    
    function getReferralCounts() external view returns(uint32[]) {
        return playerRefCounts;
    }
    
    function getReferralCount(uint256 playerID) external view returns(uint32) {
        return playerRefCounts[playerID];
    }
    
    function GetNow() external view returns (uint256) {
        return now;
    }

    // PAYMENT FUNCTIONS =======================
    
    function getEtherBalance() external view returns (uint256) {
        return address(this).balance;
    }
    
    function depositEtherBalance() external payable {
    }
    
    function withdrawEtherBalance(uint256 amt) external onlyAdmin {
        admin.transfer(amt);
    }
    
    // RIGHTS FUNCTIONS =======================
    
    function setMaintainance(bool maintaining) external onlyAdmin {
        inMaintainance = maintaining;
    }
    
    function isInMaintainance() external view returns(bool) {
        return inMaintainance;
    }
    
    function getApprovers() external view returns(address[]) {
        return approverArr;
    }
    
    // change admin
    // only admin can perform this function
    function switchAdmin(address newAdmin) external onlyAdmin {
        admin = newAdmin;
    }

    // add a new approver
    // only admin can perform this function
    function addApprover(address newApprover) external onlyAdmin {
        require(!approvers[newApprover]);
        approvers[newApprover] = true;
        approverArr.push(newApprover);
    }

    // remove an approver
    // only admin can perform this function
    function removeApprover(address oldApprover) external onlyAdmin {
        require(approvers[oldApprover]);
        delete approvers[oldApprover];
        
        // swap last address with deleted address (for array)
        uint256 length = approverArr.length;
        address swapAddr = approverArr[length - 1];
        for(uint8 i=0; i<length; i++) {
            if(approverArr[i] == oldApprover) {
                approverArr[i] = swapAddr;
                break;
            }
        }
        approverArr.length--;
    }
    
    // MODIFIERS =======================
    
    modifier onlyAdmin() {
        require(msg.sender == admin);
        _;
    }
    
    modifier onlyApprover() {
        require(approvers[msg.sender]);
        _;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"saleID","type":"uint8"},{"name":"maxBought","type":"uint8"},{"name":"cardTypeID","type":"uint32"},{"name":"leftToMint","type":"uint8"},{"name":"firstMintTime","type":"uint256"}],"name":"setSaleType_Airdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"playerAddr","type":"address"},{"name":"saleID","type":"uint8"}],"name":"redeemCards","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint32"},{"name":"saleID","type":"uint8"}],"name":"GetPlayer_FromID","outputs":[{"name":"","type":"address"},{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"depositEtherBalance","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"refundable","type":"bool"}],"name":"setRefundable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"saleID","type":"uint8"}],"name":"GetSaleInfo_Presale","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint32"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAddressesCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isInMaintainance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"saleID","type":"uint8"}],"name":"buySaleNonReferral","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"saleID","type":"uint8"}],"name":"GetSaleInfo_Airdrop","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint32"},{"name":"","type":"uint256"},{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"saleID","type":"uint8"},{"name":"referral","type":"address"}],"name":"buySaleReferred","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getApprovers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"oldApprover","type":"address"}],"name":"removeApprover","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newAdmin","type":"address"}],"name":"switchAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"saleID","type":"uint8"}],"name":"stopSaleType","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetReferralInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"playerID","type":"uint256"}],"name":"getReferralCount","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAddresses","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amt","type":"uint256"}],"name":"withdrawEtherBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"GetNow","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newApprover","type":"address"}],"name":"addApprover","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"id","type":"uint256"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"maintaining","type":"bool"}],"name":"setMaintainance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getEtherBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"playerAddr","type":"address"},{"name":"saleID","type":"uint8"}],"name":"GetPlayer_FromAddr","outputs":[{"name":"","type":"uint32"},{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"bool"},{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"saleID","type":"uint8"},{"name":"maxBought","type":"uint8"},{"name":"cardTypeID","type":"uint32"},{"name":"price","type":"uint256"},{"name":"saleEndTime","type":"uint256"}],"name":"setSaleType_Presale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getReferralCounts","outputs":[{"name":"","type":"uint32[]"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

606060405234156200001057600080fd5b600080546201000060b060020a0319166201000033600160a060020a031602179055600180548082016200004583826200010c565b5060009182526020808320835492018054600160a060020a031916600160a060020a03620100009485900481169190911790915583549290920490911682526002905260409020805460ff191660019081179091556003805490918101620000ae83826200010c565b5060009182526020909120018054600160a060020a03191690556004805460018101620000dc838262000138565b50600091825260209091206008820401805460079092166004026101000a63ffffffff021990911690556200018e565b8154818355818115116200013357600083815260209020620001339181019083016200016a565b505050565b815481835581811511620001335760070160089004816007016008900483600052602060002091820191016200013391905b6200018b91905b8082111562000187576000815560010162000171565b5090565b90565b6116e0806200019e6000396000f3006060604052600436106101695763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663060df918811461016e57806306a493fa146101a25780631318b88c146101dd57806328d879e4146102435780632d9e87c51461024b5780633aa36dd41461026357806347293d15146102c05780634ca8c1e8146102e55780634d536c031461030c5780635128ab7b1461031a578063590e1ae3146103755780635e80377b146103885780636cb3e8ef146103a25780636cf4c88f14610408578063732617bb14610427578063847f4a88146104465780638856d5171461045f578063a30376b714610490578063a39fac12146104bf578063a904cc53146104d2578063b56ebf42146104e8578063b646c194146104fb578063b93f9b0a1461051a578063dc9d625b1461054c578063ea46193e14610564578063ea59a4e814610577578063ee37e271146105d7578063fd60e1a814610605575b600080fd5b341561017957600080fd5b6101a060ff60043581169060243581169063ffffffff604435169060643516608435610618565b005b34156101ad57600080fd5b6101c7600160a060020a036004351660ff602435166106cd565b60405160ff909116815260200160405180910390f35b34156101e857600080fd5b6101ff63ffffffff6004351660ff60243516610735565b604051600160a060020a03909516855260ff90931660208501526040808501929092521515606084015263ffffffff909116608083015260a0909101905180910390f35b6101a06107f5565b341561025657600080fd5b6101a060043515156107f7565b341561026e57600080fd5b61027c60ff60043516610832565b60405160ff968716815294861660208601529290941660408085019190915263ffffffff9091166060840152608083019390935260a082015260c001905180910390f35b34156102cb57600080fd5b6102d36108c5565b60405190815260200160405180910390f35b34156102f057600080fd5b6102f86108cc565b604051901515815260200160405180910390f35b6101a060ff600435166108d5565b341561032557600080fd5b61033360ff600435166108e3565b60405160ff9687168152948616602086015292851660408086019190915263ffffffff90921660608501526080840152921660a082015260c001905180910390f35b341561038057600080fd5b6101a06109ff565b6101a060ff60043516600160a060020a0360243516610a69565b34156103ad57600080fd5b6103b5610a73565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103f45780820151838201526020016103dc565b505050509050019250505060405180910390f35b341561041357600080fd5b6101a0600160a060020a0360043516610adb565b341561043257600080fd5b6101a0600160a060020a0360043516610c27565b341561045157600080fd5b6101a060ff60043516610c7f565b341561046a57600080fd5b610472610cb7565b60405191825263ffffffff1660208201526040908101905180910390f35b341561049b57600080fd5b6104a6600435610d29565b60405163ffffffff909116815260200160405180910390f35b34156104ca57600080fd5b6103b5610d67565b34156104dd57600080fd5b6101a0600435610dcd565b34156104f357600080fd5b6102d3610e27565b341561050657600080fd5b6101a0600160a060020a0360043516610e2b565b341561052557600080fd5b610530600435610ee0565b604051600160a060020a03909116815260200160405180910390f35b341561055757600080fd5b6101a06004351515610f0c565b341561056f57600080fd5b6102d3610f40565b341561058257600080fd5b61059c600160a060020a036004351660ff60243516610f4e565b60405163ffffffff958616815260ff90941660208501526040808501939093529015156060840152909216608082015260a001905180910390f35b34156105e257600080fd5b6101a060ff6004358116906024351663ffffffff60443516606435608435610fec565b341561061057600080fd5b6103b5611070565b6000805433600160a060020a0390811662010000909204161461063a57600080fd5b5060ff8581166000908152600660205260408120805461ffff19166101008885169081029190911765ffffffff000019166201000063ffffffff891602178255600182019290925563773594006002820155918416101561069a57600080fd5b60038101805460ff19908116600117909155600482019290925560050180549490920360ff169316929092179091555050565b600160a060020a0333166000908152600260205260408120548190819060ff1615156106f857600080fd5b505050600160a060020a0391909116600090815260056020908152604080832060ff94851684526001019091529020805460ff1981169091551690565b600080600080600080600060038963ffffffff1681548110151561075557fe5b6000918252602080832090910154600160a060020a031680835260058252604080842060ff808e16865260018201909452932054600284015460038501546004805494985095965087959285169491939116919063ffffffff8f169081106107b957fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169650965096509650965050509295509295909350565b565b60005433600160a060020a0390811662010000909204161461081857600080fd5b600080549115156101000261ff0019909216919091179055565b60008080808080808033600160a060020a03161561087c57600160a060020a033316600090815260056020908152604080832060ff808e1685526001909101909252909120541691505b5060ff978816600090815260066020526040902080546001820154600290920154929a818b169a61010083041699506201000090910463ffffffff169750909550909350915050565b6003545b90565b60005460ff1690565b6108e08160006110f9565b50565b600080808080808080808080808033600160a060020a031615610950576005600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160008f60ff1660ff16815260200190815260200160002060009054906101000a900460ff1696505b60ff808f1660009081526006602052604090208054600482015460058301549299508184169850610100909104831696509450169150428390106109db57610e104284900304610e1002610e1001830192508460ff1660001415156109db578190508460ff168160ff1610156109d05784818501039350600091506109d6565b84820391505b600094505b509354949c929b509099506201000090930463ffffffff1697509195509350915050565b600080548190610100900460ff161515610a1857600080fd5b5050600160a060020a033316600081815260056020526040808220600281018054939055929082156108fc0290839051600060405180830381858888f193505050501515610a6557600080fd5b5050565b610a6582826110f9565b610a7b61162b565b6001805480602002602001604051908101604052809291908181526020018280548015610ad157602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab3575b5050505050905090565b600080548190819033600160a060020a03908116620100009092041614610b0157600080fd5b600160a060020a03841660009081526002602052604090205460ff161515610b2857600080fd5b600160a060020a0384166000908152600260205260409020805460ff191690556001805493506000198401848110610b5c57fe5b6000918252602082200154600160a060020a0316925090505b828160ff161015610c0d5783600160a060020a031660018260ff16815481101515610b9c57fe5b600091825260209091200154600160a060020a03161415610c05578160018260ff16815481101515610bca57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055610c0d565b600101610b75565b6001805490610c2090600019830161163d565b5050505050565b60005433600160a060020a03908116620100009092041614610c4857600080fd5b60008054600160a060020a03909216620100000275ffffffffffffffffffffffffffffffffffffffff000019909216919091179055565b60005433600160a060020a03908116620100009092041614610ca057600080fd5b60ff16600090815260066020526040812060020155565b600160a060020a0333166000908152600560205260408120548190819063ffffffff168015610d1d576004805463ffffffff8316908110610cf457fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1691505b50600754939092509050565b6000600482815481101515610d3a57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050919050565b610d6f61162b565b6003805480602002602001604051908101604052809291908181526020018280548015610ad157602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610ab3575050505050905090565b60005433600160a060020a03908116620100009092041614610dee57600080fd5b600054620100009004600160a060020a03166108fc82150282604051600060405180830381858888f1935050505015156108e057600080fd5b4290565b60005433600160a060020a03908116620100009092041614610e4c57600080fd5b600160a060020a03811660009081526002602052604090205460ff1615610e7257600080fd5b600160a060020a0381166000908152600260205260409020805460ff191660019081179091558054808201610ea7838261163d565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600382815481101515610ef157fe5b600091825260209091200154600160a060020a031692915050565b60005433600160a060020a03908116620100009092041614610f2d57600080fd5b6000805460ff1916911515919091179055565b600160a060020a0330163190565b600160a060020a0382166000908152600560209081526040808320805460ff8087168652600183019094529184205460028201546003830154600480548897889788978897909663ffffffff9092169590831694919392169185908110610fb157fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1695509550955095509550509295509295909350565b6000805433600160a060020a0390811662010000909204161461100e57600080fd5b5060ff9485166000908152600660205260409020805463ffffffff909416620100000265ffffffff000019959096166101000261ffff19909416939093179390931693909317815560018101929092556002820155600301805460ff19169055565b61107861162b565b6004805480602002602001604051908101604052809291908181526020018280548015610ad157602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116110b35790505050505050905090565b60008054819081908190819081908190819060ff161561111857600080fd5b33600160a060020a0316151561112d57600080fd5b60ff8a166000908152600660205260409020600281015490985042901161115357600080fd5b600388015460ff1696508615611206576004880154421061120157600488018054610e10428290038190048102909101019055875460ff1615611201576005880154885460ff9182169750168610156111d757875461ff0019811660ff8083166101009384900482168a01031690910217885560058801805460ff191690556111f8565b875460058901805460ff9283168184160390921660ff199092169190911790555b875460ff191688555b611217565b600188015434101561121757600080fd5b875460ff6101008204811691161061122e57600080fd5b875460ff8082166001011660ff19909116178855600160a060020a03331660009081526005602052604081208054919650869550935063ffffffff16151561127557600194505b861561129c5760ff808b166000908152600185016020526040902054161561129c57600080fd5b60ff8a8116600090815260018581016020526040909120805460ff1981169084169092019092161790558615156112d857600283018054340190555b600383015460ff1615156113a75760038301805460ff19166001179055600160a060020a0389161580159061131f575033600160a060020a031689600160a060020a031614155b156113a757600160a060020a0389166000908152600560205260409020805490925063ffffffff16151561135657600193506113a7565b815460048054909163ffffffff1690811061136d57fe5b600091825260209091206008820401805460079092166004026101000a63ffffffff81810219841693829004811660010116029190911790555b8480156113b15750835b156114d2575060038054835463ffffffff91821663ffffffff19918216811786558454909116600182019092169190911783559060028201906113f4908261163d565b5060028101611404600482611666565b503360038281548110151561141557fe5b906000526020600020900160006101000a815481600160a060020a030219169083600160a060020a031602179055508860038260010181548110151561145757fe5b906000526020600020900160006101000a815481600160a060020a030219169083600160a060020a03160217905550600160048260010181548110151561149a57fe5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550611614565b84156115735760038054845463ffffffff191663ffffffff909116178455805460018101611500838261163d565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a031617905560048054600181016115448382611666565b50600091825260209091206008820401805460079092166004026101000a63ffffffff02199091169055611614565b83156116145760038054835463ffffffff191663ffffffff9091161783558054600181016115a1838261163d565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038b1617905560048054600181016115e58382611666565b50600091825260209091206008820401805460079092166004026101000a63ffffffff81021990921690911790555b505060078054602834040190555050505050505050565b60206040519081016040526000815290565b81548183558181151161166157600083815260209020611661918101908301611696565b505050565b81548183558181151161166157600701600890048160070160089004836000526020600020918201910161166191905b6108c991905b808211156116b0576000815560010161169c565b50905600a165627a7a72305820e0d5dee7f753720de3e5ba3d28531e6e4103f9cab4fcaa125bc19fc83dc21dee0029

Deployed Bytecode

0x6060604052600436106101695763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663060df918811461016e57806306a493fa146101a25780631318b88c146101dd57806328d879e4146102435780632d9e87c51461024b5780633aa36dd41461026357806347293d15146102c05780634ca8c1e8146102e55780634d536c031461030c5780635128ab7b1461031a578063590e1ae3146103755780635e80377b146103885780636cb3e8ef146103a25780636cf4c88f14610408578063732617bb14610427578063847f4a88146104465780638856d5171461045f578063a30376b714610490578063a39fac12146104bf578063a904cc53146104d2578063b56ebf42146104e8578063b646c194146104fb578063b93f9b0a1461051a578063dc9d625b1461054c578063ea46193e14610564578063ea59a4e814610577578063ee37e271146105d7578063fd60e1a814610605575b600080fd5b341561017957600080fd5b6101a060ff60043581169060243581169063ffffffff604435169060643516608435610618565b005b34156101ad57600080fd5b6101c7600160a060020a036004351660ff602435166106cd565b60405160ff909116815260200160405180910390f35b34156101e857600080fd5b6101ff63ffffffff6004351660ff60243516610735565b604051600160a060020a03909516855260ff90931660208501526040808501929092521515606084015263ffffffff909116608083015260a0909101905180910390f35b6101a06107f5565b341561025657600080fd5b6101a060043515156107f7565b341561026e57600080fd5b61027c60ff60043516610832565b60405160ff968716815294861660208601529290941660408085019190915263ffffffff9091166060840152608083019390935260a082015260c001905180910390f35b34156102cb57600080fd5b6102d36108c5565b60405190815260200160405180910390f35b34156102f057600080fd5b6102f86108cc565b604051901515815260200160405180910390f35b6101a060ff600435166108d5565b341561032557600080fd5b61033360ff600435166108e3565b60405160ff9687168152948616602086015292851660408086019190915263ffffffff90921660608501526080840152921660a082015260c001905180910390f35b341561038057600080fd5b6101a06109ff565b6101a060ff60043516600160a060020a0360243516610a69565b34156103ad57600080fd5b6103b5610a73565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103f45780820151838201526020016103dc565b505050509050019250505060405180910390f35b341561041357600080fd5b6101a0600160a060020a0360043516610adb565b341561043257600080fd5b6101a0600160a060020a0360043516610c27565b341561045157600080fd5b6101a060ff60043516610c7f565b341561046a57600080fd5b610472610cb7565b60405191825263ffffffff1660208201526040908101905180910390f35b341561049b57600080fd5b6104a6600435610d29565b60405163ffffffff909116815260200160405180910390f35b34156104ca57600080fd5b6103b5610d67565b34156104dd57600080fd5b6101a0600435610dcd565b34156104f357600080fd5b6102d3610e27565b341561050657600080fd5b6101a0600160a060020a0360043516610e2b565b341561052557600080fd5b610530600435610ee0565b604051600160a060020a03909116815260200160405180910390f35b341561055757600080fd5b6101a06004351515610f0c565b341561056f57600080fd5b6102d3610f40565b341561058257600080fd5b61059c600160a060020a036004351660ff60243516610f4e565b60405163ffffffff958616815260ff90941660208501526040808501939093529015156060840152909216608082015260a001905180910390f35b34156105e257600080fd5b6101a060ff6004358116906024351663ffffffff60443516606435608435610fec565b341561061057600080fd5b6103b5611070565b6000805433600160a060020a0390811662010000909204161461063a57600080fd5b5060ff8581166000908152600660205260408120805461ffff19166101008885169081029190911765ffffffff000019166201000063ffffffff891602178255600182019290925563773594006002820155918416101561069a57600080fd5b60038101805460ff19908116600117909155600482019290925560050180549490920360ff169316929092179091555050565b600160a060020a0333166000908152600260205260408120548190819060ff1615156106f857600080fd5b505050600160a060020a0391909116600090815260056020908152604080832060ff94851684526001019091529020805460ff1981169091551690565b600080600080600080600060038963ffffffff1681548110151561075557fe5b6000918252602080832090910154600160a060020a031680835260058252604080842060ff808e16865260018201909452932054600284015460038501546004805494985095965087959285169491939116919063ffffffff8f169081106107b957fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169650965096509650965050509295509295909350565b565b60005433600160a060020a0390811662010000909204161461081857600080fd5b600080549115156101000261ff0019909216919091179055565b60008080808080808033600160a060020a03161561087c57600160a060020a033316600090815260056020908152604080832060ff808e1685526001909101909252909120541691505b5060ff978816600090815260066020526040902080546001820154600290920154929a818b169a61010083041699506201000090910463ffffffff169750909550909350915050565b6003545b90565b60005460ff1690565b6108e08160006110f9565b50565b600080808080808080808080808033600160a060020a031615610950576005600033600160a060020a0316600160a060020a0316815260200190815260200160002060010160008f60ff1660ff16815260200190815260200160002060009054906101000a900460ff1696505b60ff808f1660009081526006602052604090208054600482015460058301549299508184169850610100909104831696509450169150428390106109db57610e104284900304610e1002610e1001830192508460ff1660001415156109db578190508460ff168160ff1610156109d05784818501039350600091506109d6565b84820391505b600094505b509354949c929b509099506201000090930463ffffffff1697509195509350915050565b600080548190610100900460ff161515610a1857600080fd5b5050600160a060020a033316600081815260056020526040808220600281018054939055929082156108fc0290839051600060405180830381858888f193505050501515610a6557600080fd5b5050565b610a6582826110f9565b610a7b61162b565b6001805480602002602001604051908101604052809291908181526020018280548015610ad157602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610ab3575b5050505050905090565b600080548190819033600160a060020a03908116620100009092041614610b0157600080fd5b600160a060020a03841660009081526002602052604090205460ff161515610b2857600080fd5b600160a060020a0384166000908152600260205260409020805460ff191690556001805493506000198401848110610b5c57fe5b6000918252602082200154600160a060020a0316925090505b828160ff161015610c0d5783600160a060020a031660018260ff16815481101515610b9c57fe5b600091825260209091200154600160a060020a03161415610c05578160018260ff16815481101515610bca57fe5b6000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055610c0d565b600101610b75565b6001805490610c2090600019830161163d565b5050505050565b60005433600160a060020a03908116620100009092041614610c4857600080fd5b60008054600160a060020a03909216620100000275ffffffffffffffffffffffffffffffffffffffff000019909216919091179055565b60005433600160a060020a03908116620100009092041614610ca057600080fd5b60ff16600090815260066020526040812060020155565b600160a060020a0333166000908152600560205260408120548190819063ffffffff168015610d1d576004805463ffffffff8316908110610cf457fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1691505b50600754939092509050565b6000600482815481101515610d3a57fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050919050565b610d6f61162b565b6003805480602002602001604051908101604052809291908181526020018280548015610ad157602002820191906000526020600020908154600160a060020a03168152600190910190602001808311610ab3575050505050905090565b60005433600160a060020a03908116620100009092041614610dee57600080fd5b600054620100009004600160a060020a03166108fc82150282604051600060405180830381858888f1935050505015156108e057600080fd5b4290565b60005433600160a060020a03908116620100009092041614610e4c57600080fd5b600160a060020a03811660009081526002602052604090205460ff1615610e7257600080fd5b600160a060020a0381166000908152600260205260409020805460ff191660019081179091558054808201610ea7838261163d565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600382815481101515610ef157fe5b600091825260209091200154600160a060020a031692915050565b60005433600160a060020a03908116620100009092041614610f2d57600080fd5b6000805460ff1916911515919091179055565b600160a060020a0330163190565b600160a060020a0382166000908152600560209081526040808320805460ff8087168652600183019094529184205460028201546003830154600480548897889788978897909663ffffffff9092169590831694919392169185908110610fb157fe5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1695509550955095509550509295509295909350565b6000805433600160a060020a0390811662010000909204161461100e57600080fd5b5060ff9485166000908152600660205260409020805463ffffffff909416620100000265ffffffff000019959096166101000261ffff19909416939093179390931693909317815560018101929092556002820155600301805460ff19169055565b61107861162b565b6004805480602002602001604051908101604052809291908181526020018280548015610ad157602002820191906000526020600020906000905b82829054906101000a900463ffffffff1663ffffffff16815260200190600401906020826003010492830192600103820291508084116110b35790505050505050905090565b60008054819081908190819081908190819060ff161561111857600080fd5b33600160a060020a0316151561112d57600080fd5b60ff8a166000908152600660205260409020600281015490985042901161115357600080fd5b600388015460ff1696508615611206576004880154421061120157600488018054610e10428290038190048102909101019055875460ff1615611201576005880154885460ff9182169750168610156111d757875461ff0019811660ff8083166101009384900482168a01031690910217885560058801805460ff191690556111f8565b875460058901805460ff9283168184160390921660ff199092169190911790555b875460ff191688555b611217565b600188015434101561121757600080fd5b875460ff6101008204811691161061122e57600080fd5b875460ff8082166001011660ff19909116178855600160a060020a03331660009081526005602052604081208054919650869550935063ffffffff16151561127557600194505b861561129c5760ff808b166000908152600185016020526040902054161561129c57600080fd5b60ff8a8116600090815260018581016020526040909120805460ff1981169084169092019092161790558615156112d857600283018054340190555b600383015460ff1615156113a75760038301805460ff19166001179055600160a060020a0389161580159061131f575033600160a060020a031689600160a060020a031614155b156113a757600160a060020a0389166000908152600560205260409020805490925063ffffffff16151561135657600193506113a7565b815460048054909163ffffffff1690811061136d57fe5b600091825260209091206008820401805460079092166004026101000a63ffffffff81810219841693829004811660010116029190911790555b8480156113b15750835b156114d2575060038054835463ffffffff91821663ffffffff19918216811786558454909116600182019092169190911783559060028201906113f4908261163d565b5060028101611404600482611666565b503360038281548110151561141557fe5b906000526020600020900160006101000a815481600160a060020a030219169083600160a060020a031602179055508860038260010181548110151561145757fe5b906000526020600020900160006101000a815481600160a060020a030219169083600160a060020a03160217905550600160048260010181548110151561149a57fe5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff160217905550611614565b84156115735760038054845463ffffffff191663ffffffff909116178455805460018101611500838261163d565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff191633600160a060020a031617905560048054600181016115448382611666565b50600091825260209091206008820401805460079092166004026101000a63ffffffff02199091169055611614565b83156116145760038054835463ffffffff191663ffffffff9091161783558054600181016115a1838261163d565b506000918252602090912001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038b1617905560048054600181016115e58382611666565b50600091825260209091206008820401805460079092166004026101000a63ffffffff81021990921690911790555b505060078054602834040190555050505050505050565b60206040519081016040526000815290565b81548183558181151161166157600083815260209020611661918101908301611696565b505050565b81548183558181151161166157600701600890048160070160089004836000526020600020918201910161166191905b6108c991905b808211156116b0576000815560010161169c565b50905600a165627a7a72305820e0d5dee7f753720de3e5ba3d28531e6e4103f9cab4fcaa125bc19fc83dc21dee0029

Swarm Source

bzzr://e0d5dee7f753720de3e5ba3d28531e6e4103f9cab4fcaa125bc19fc83dc21dee

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

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.