ETH Price: $3,128.00 (-4.48%)

Contract

0xfC8BDBbf0b121387f914194F53FB3c278FFEa9a5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Award Raffle Pri...61912122018-08-22 4:00:522276 days ago1534910452IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000314614.01
Buy Raffle Ticke...61870852018-08-21 11:29:102277 days ago1534850950IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000414692.5
Buy Raffle Ticke...61854262018-08-21 4:50:542277 days ago1534827054IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000332382
Buy Raffle Ticke...61839182018-08-20 22:42:482277 days ago1534804968IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000301752
Buy Raffle Ticke...61837242018-08-20 21:56:252277 days ago1534802185IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.00030152
Buy Raffle Ticke...61837212018-08-20 21:55:122277 days ago1534802112IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000302252
Buy Raffle Ticke...61834412018-08-20 20:50:042277 days ago1534798204IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000242332.1
Buy Raffle Ticke...61810982018-08-20 11:22:002278 days ago1534764120IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000300252
Buy Raffle Ticke...61797462018-08-20 5:46:292278 days ago1534743989IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000230792
Buy Raffle Ticke...61784202018-08-20 0:23:462278 days ago1534724626IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000664764
Buy Raffle Ticke...61782352018-08-19 23:38:262278 days ago1534721906IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000173091.5
Buy Raffle Ticke...61769972018-08-19 18:39:082279 days ago1534703948IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000377032.5
Buy Raffle Ticke...61763132018-08-19 15:51:142279 days ago1534693874IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000230792
Buy Raffle Ticke...61761372018-08-19 15:10:312279 days ago1534691431IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000463342
Buy Raffle Ticke...61752472018-08-19 11:38:022279 days ago1534678682IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000230792
Buy Raffle Ticke...61721762018-08-18 23:05:212279 days ago1534633521IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000230792
Buy Raffle Ticke...61708032018-08-18 17:40:342280 days ago1534614034IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000463342
Buy Raffle Ticke...61701712018-08-18 15:14:412280 days ago1534605281IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000127383
Buy Raffle Ticke...61701682018-08-18 15:13:212280 days ago1534605201IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000695013
Buy Raffle Ticke...61698642018-08-18 13:56:122280 days ago1534600572IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000452063
Buy Raffle Ticke...61678972018-08-18 5:47:142280 days ago1534571234IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000404113.5
Buy Raffle Ticke...61668702018-08-18 1:35:552280 days ago1534556155IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000452063
Buy Raffle Ticke...61667332018-08-18 0:59:372280 days ago1534553977IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.001273145.5
Buy Raffle Ticke...61666282018-08-18 0:33:032280 days ago1534552383IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000579022.5
Buy Raffle Ticke...61647342018-08-17 16:44:582281 days ago1534524298IN
0xfC8BDBbf...78FFEa9a5
0 ETH0.000603514
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SponsoredItemGooRaffle

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.0;

contract SponsoredItemGooRaffle {
    
    Goo goo = Goo(0x57b116da40f21f91aec57329ecb763d29c1b2355);
    
    address owner;
    
    // Raffle tickets
    mapping(address => TicketPurchases) private ticketsBoughtByPlayer;
    mapping(uint256 => address[]) private rafflePlayers;

    // Current Raffle info
    uint256 private constant RAFFLE_TICKET_BASE_GOO_PRICE = 1000;
    uint256 private raffleEndTime;
    uint256 private raffleTicketsBought;
    uint256 private raffleId;
    address private raffleWinner;
    bool private raffleWinningTicketSelected;
    uint256 private raffleTicketThatWon;
    
    
    // Raffle structures
    struct TicketPurchases {
        TicketPurchase[] ticketsBought;
        uint256 numPurchases; // Allows us to reset without clearing TicketPurchase[] (avoids potential for gas limit)
        uint256 raffleId;
    }
    
    // Allows us to query winner without looping (avoiding potential for gas limit)
    struct TicketPurchase {
        uint256 startId;
        uint256 endId;
    }
    
    function SponsoredItemGooRaffle() public {
        owner = msg.sender;
    }
    
    function startTokenRaffle(uint256 endTime, address tokenContract, uint256 id, bool hasItemAlready) external {
        require(msg.sender == owner);
        require(block.timestamp < endTime);
        
        if (raffleId != 0) { // Sanity to assure raffle has ended before next one starts
            require(raffleWinner != 0);
        }
        
        // Reset previous raffle info
        raffleWinningTicketSelected = false;
        raffleTicketThatWon = 0;
        raffleWinner = 0;
        raffleTicketsBought = 0;
        
        // Set current raffle info
        raffleEndTime = endTime;
        raffleId++;
    }
    

    function buyRaffleTicket(uint256 amount) external {
        require(raffleEndTime >= block.timestamp);
        require(amount > 0);
        
        uint256 ticketsCost = SafeMath.mul(RAFFLE_TICKET_BASE_GOO_PRICE, amount);
        goo.transferFrom(msg.sender, this, ticketsCost);
        // Burn 95% of the Goo (save 5% for contests / marketing fund)
        goo.transfer(address(0), (ticketsCost * 95) / 100);
        
        // Handle new tickets
        TicketPurchases storage purchases = ticketsBoughtByPlayer[msg.sender];
        
        // If we need to reset tickets from a previous raffle
        if (purchases.raffleId != raffleId) {
            purchases.numPurchases = 0;
            purchases.raffleId = raffleId;
            rafflePlayers[raffleId].push(msg.sender); // Add user to raffle
        }
        
        // Store new ticket purchase
        if (purchases.numPurchases == purchases.ticketsBought.length) {
            purchases.ticketsBought.length += 1;
        }
        purchases.ticketsBought[purchases.numPurchases++] = TicketPurchase(raffleTicketsBought, raffleTicketsBought + (amount - 1)); // (eg: buy 10, get id's 0-9)
        
        // Finally update ticket total
        raffleTicketsBought += amount;
    }
    
    function awardRafflePrize(address checkWinner, uint256 checkIndex) external {
        require(raffleEndTime < block.timestamp);
        require(raffleWinner == 0);
        
        if (!raffleWinningTicketSelected) {
            drawRandomWinner(); // Ideally do it in one call (gas limit cautious)
        }
        
        // Reduce gas by (optionally) offering an address to _check_ for winner
        if (checkWinner != 0) {
            TicketPurchases storage tickets = ticketsBoughtByPlayer[checkWinner];
            if (tickets.numPurchases > 0 && checkIndex < tickets.numPurchases && tickets.raffleId == raffleId) {
                TicketPurchase storage checkTicket = tickets.ticketsBought[checkIndex];
                if (raffleTicketThatWon >= checkTicket.startId && raffleTicketThatWon <= checkTicket.endId) {
                    assignRaffleWinner(checkWinner); // WINNER!
                    return;
                }
            }
        }
        
        // Otherwise just naively try to find the winner (will work until mass amounts of players)
        for (uint256 i = 0; i < rafflePlayers[raffleId].length; i++) {
            address player = rafflePlayers[raffleId][i];
            TicketPurchases storage playersTickets = ticketsBoughtByPlayer[player];
            
            uint256 endIndex = playersTickets.numPurchases - 1;
            // Minor optimization to avoid checking every single player
            if (raffleTicketThatWon >= playersTickets.ticketsBought[0].startId && raffleTicketThatWon <= playersTickets.ticketsBought[endIndex].endId) {
                for (uint256 j = 0; j < playersTickets.numPurchases; j++) {
                    TicketPurchase storage playerTicket = playersTickets.ticketsBought[j];
                    if (raffleTicketThatWon >= playerTicket.startId && raffleTicketThatWon <= playerTicket.endId) {
                        assignRaffleWinner(player); // WINNER!
                        return;
                    }
                }
            }
        }
    }
    
    function assignRaffleWinner(address winner) internal {
        raffleWinner = winner;
    }
    
    // Random enough for small contests (Owner only to prevent trial & error execution)
    function drawRandomWinner() public {
        require(msg.sender == owner);
        require(raffleEndTime < block.timestamp);
        require(!raffleWinningTicketSelected);
        
        uint256 seed = raffleTicketsBought + block.timestamp;
        raffleTicketThatWon = addmod(uint256(block.blockhash(block.number-1)), seed, (raffleTicketsBought + 1));
        raffleWinningTicketSelected = true;
    }
    
    // 5% of Goo gained will be reinvested into the game (contests / marketing / acquiring more raffle assets)
    function transferGoo(address recipient, uint256 amount) external {
        require(msg.sender == owner);
        goo.transfer(recipient, amount);
    }
    
     // To display on website
    function getLatestRaffleInfo() external constant returns (uint256, uint256, uint256, address, uint256) {
        return (raffleEndTime, raffleId, raffleTicketsBought, raffleWinner, raffleTicketThatWon);
    }
    
    // To allow clients to verify contestants
    function getRafflePlayers(uint256 raffle) external constant returns (address[]) {
        return (rafflePlayers[raffle]);
    }
    
     // To allow clients to verify contestants
    function getPlayersTickets(address player) external constant returns (uint256[], uint256[]) {
        TicketPurchases storage playersTickets = ticketsBoughtByPlayer[player];
        
        if (playersTickets.raffleId == raffleId) {
            uint256[] memory startIds = new uint256[](playersTickets.numPurchases);
            uint256[] memory endIds = new uint256[](playersTickets.numPurchases);
            
            for (uint256 i = 0; i < playersTickets.numPurchases; i++) {
                startIds[i] = playersTickets.ticketsBought[i].startId;
                endIds[i] = playersTickets.ticketsBought[i].endId;
            }
        }
        
        return (startIds, endIds);
    }
}


interface Goo {
    function transfer(address to, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
}

library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(c / a == b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"player","type":"address"}],"name":"getPlayersTickets","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getLatestRaffleInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"address"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"checkWinner","type":"address"},{"name":"checkIndex","type":"uint256"}],"name":"awardRafflePrize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"raffle","type":"uint256"}],"name":"getRafflePlayers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"endTime","type":"uint256"},{"name":"tokenContract","type":"address"},{"name":"id","type":"uint256"},{"name":"hasItemAlready","type":"bool"}],"name":"startTokenRaffle","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"buyRaffleTicket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"drawRandomWinner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"recipient","type":"address"},{"name":"amount","type":"uint256"}],"name":"transferGoo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]

608060405260008054600160a060020a0319167357b116da40f21f91aec57329ecb763d29c1b235517905534801561003657600080fd5b5060018054600160a060020a03191633179055610bb7806100586000396000f30060806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632693c1508114610092578063431dbd9e1461014c57806349c9dcf514610195578063789a12fd146101bb578063a78488af14610223578063b9de1c411461024f578063c2de290914610267578063db86d8501461027c575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a03600435166102a0565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100f75781810151838201526020016100df565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561013657818101518382015260200161011e565b5050505090500194505050505060405180910390f35b34801561015857600080fd5b506101616103c8565b60408051958652602086019490945284840192909252600160a060020a031660608401526080830152519081900360a00190f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356103e8565b005b3480156101c757600080fd5b506101d3600435610628565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561020f5781810151838201526020016101f7565b505050509050019250505060405180910390f35b34801561022f57600080fd5b506101b9600435600160a060020a03602435166044356064351515610694565b34801561025b57600080fd5b506101b9600435610712565b34801561027357600080fd5b506101b961096e565b34801561028857600080fd5b506101b9600160a060020a0360043516602435610a15565b600160a060020a03811660009081526002602081905260408220600654918101546060938493849283929114156103bc5783600101546040519080825280602002602001820160405280156102ff578160200160208202803883390190505b5092508360010154604051908082528060200260200182016040528015610330578160200160208202803883390190505b509150600090505b83600101548110156103bc57835484908290811061035257fe5b906000526020600020906002020160000154838281518110151561037257fe5b60209081029091010152835484908290811061038a57fe5b90600052602060002090600202016001015482828151811015156103aa57fe5b60209081029091010152600101610338565b50909590945092505050565b600454600654600554600754600854600160a060020a0390911691929394565b6000806000806000806000804260045410151561040457600080fd5b600754600160a060020a03161561041a57600080fd5b60075474010000000000000000000000000000000000000000900460ff1615156104465761044661096e565b600160a060020a038a16156104e857600160a060020a038a16600090815260026020526040812060018101549099501180156104855750876001015489105b801561049657506006548860020154145b156104e857875488908a9081106104a957fe5b906000526020600020906002020196508660000154600854101580156104d55750866001015460085411155b156104e8576104e38a610ace565b61061c565b600095505b60065460009081526003602052604090205486101561061c57600654600090815260036020526040902080548790811061052357fe5b6000918252602080832090910154600160a060020a031680835260029091526040822060018101548154929850909650600019019450859190811061056457fe5b906000526020600020906002020160000154600854101580156105a85750835484908490811061059057fe5b90600052602060002090600202016001015460085411155b1561061157600091505b83600101548210156106115783548490839081106105cc57fe5b906000526020600020906002020190508060000154600854101580156105f85750806001015460085411155b15610606576104e385610ace565b6001909101906105b2565b6001909501946104ed565b50505050505050505050565b60008181526003602090815260409182902080548351818402810184019094528084526060939283018282801561068857602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161066a575b50505050509050919050565b600154600160a060020a031633146106ab57600080fd5b4284116106b757600080fd5b600654156106d657600754600160a060020a031615156106d657600080fd5b5050600780546000600881905574ffffffffffffffffffffffffffffffffffffffffff1990911690915560055550600455600680546001019055565b600080426004541015151561072657600080fd5b6000831161073357600080fd5b61073f6103e884610afd565b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051939550600160a060020a03909116926323b872dd92606480840193602093929083900390910190829087803b1580156107b757600080fd5b505af11580156107cb573d6000803e3d6000fd5b505050506040513d60208110156107e157600080fd5b505060008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600481018490526064605f87020460248201529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b15801561085757600080fd5b505af115801561086b573d6000803e3d6000fd5b505050506040513d602081101561088157600080fd5b505033600090815260026020819052604090912060065491810154909250146108f05760006001808301829055600654600284018190558252600360209081526040832080549283018155835290912001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b80546001820154141561090e57805460010161090c8282610b33565b505b6040805180820190915260055480825284016000190160208201526001828101805491820190558254839190811061094257fe5b600091825260209182902083516002909202019081559101516001909101555050600580549091019055565b600154600090600160a060020a0316331461098857600080fd5b600454421161099657600080fd5b60075474010000000000000000000000000000000000000000900460ff16156109be57600080fd5b50600554428101906001018015156109d257fe5b8160001943014008600855506007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600154600160a060020a03163314610a2c57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018690529151919092169263a9059cbb92604480820193602093909283900390910190829087803b158015610a9e57600080fd5b505af1158015610ab2573d6000803e3d6000fd5b505050506040513d6020811015610ac857600080fd5b50505050565b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080831515610b105760009150610b2c565b50828202828482811515610b2057fe5b0414610b2857fe5b8091505b5092915050565b815481835581811115610b5f57600202816002028360005260206000209182019101610b5f9190610b64565b505050565b610b8891905b80821115610b845760008082556001820155600201610b6a565b5090565b905600a165627a7a72305820a7964e7d1a6b05614e4348e4484d7c12c11a57b4302b3ec5102e036fb0d7869c0029

Deployed Bytecode

0x60806040526004361061008d5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632693c1508114610092578063431dbd9e1461014c57806349c9dcf514610195578063789a12fd146101bb578063a78488af14610223578063b9de1c411461024f578063c2de290914610267578063db86d8501461027c575b600080fd5b34801561009e57600080fd5b506100b3600160a060020a03600435166102a0565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156100f75781810151838201526020016100df565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561013657818101518382015260200161011e565b5050505090500194505050505060405180910390f35b34801561015857600080fd5b506101616103c8565b60408051958652602086019490945284840192909252600160a060020a031660608401526080830152519081900360a00190f35b3480156101a157600080fd5b506101b9600160a060020a03600435166024356103e8565b005b3480156101c757600080fd5b506101d3600435610628565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561020f5781810151838201526020016101f7565b505050509050019250505060405180910390f35b34801561022f57600080fd5b506101b9600435600160a060020a03602435166044356064351515610694565b34801561025b57600080fd5b506101b9600435610712565b34801561027357600080fd5b506101b961096e565b34801561028857600080fd5b506101b9600160a060020a0360043516602435610a15565b600160a060020a03811660009081526002602081905260408220600654918101546060938493849283929114156103bc5783600101546040519080825280602002602001820160405280156102ff578160200160208202803883390190505b5092508360010154604051908082528060200260200182016040528015610330578160200160208202803883390190505b509150600090505b83600101548110156103bc57835484908290811061035257fe5b906000526020600020906002020160000154838281518110151561037257fe5b60209081029091010152835484908290811061038a57fe5b90600052602060002090600202016001015482828151811015156103aa57fe5b60209081029091010152600101610338565b50909590945092505050565b600454600654600554600754600854600160a060020a0390911691929394565b6000806000806000806000804260045410151561040457600080fd5b600754600160a060020a03161561041a57600080fd5b60075474010000000000000000000000000000000000000000900460ff1615156104465761044661096e565b600160a060020a038a16156104e857600160a060020a038a16600090815260026020526040812060018101549099501180156104855750876001015489105b801561049657506006548860020154145b156104e857875488908a9081106104a957fe5b906000526020600020906002020196508660000154600854101580156104d55750866001015460085411155b156104e8576104e38a610ace565b61061c565b600095505b60065460009081526003602052604090205486101561061c57600654600090815260036020526040902080548790811061052357fe5b6000918252602080832090910154600160a060020a031680835260029091526040822060018101548154929850909650600019019450859190811061056457fe5b906000526020600020906002020160000154600854101580156105a85750835484908490811061059057fe5b90600052602060002090600202016001015460085411155b1561061157600091505b83600101548210156106115783548490839081106105cc57fe5b906000526020600020906002020190508060000154600854101580156105f85750806001015460085411155b15610606576104e385610ace565b6001909101906105b2565b6001909501946104ed565b50505050505050505050565b60008181526003602090815260409182902080548351818402810184019094528084526060939283018282801561068857602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831161066a575b50505050509050919050565b600154600160a060020a031633146106ab57600080fd5b4284116106b757600080fd5b600654156106d657600754600160a060020a031615156106d657600080fd5b5050600780546000600881905574ffffffffffffffffffffffffffffffffffffffffff1990911690915560055550600455600680546001019055565b600080426004541015151561072657600080fd5b6000831161073357600080fd5b61073f6103e884610afd565b60008054604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051939550600160a060020a03909116926323b872dd92606480840193602093929083900390910190829087803b1580156107b757600080fd5b505af11580156107cb573d6000803e3d6000fd5b505050506040513d60208110156107e157600080fd5b505060008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600481018490526064605f87020460248201529051600160a060020a039092169263a9059cbb926044808401936020939083900390910190829087803b15801561085757600080fd5b505af115801561086b573d6000803e3d6000fd5b505050506040513d602081101561088157600080fd5b505033600090815260026020819052604090912060065491810154909250146108f05760006001808301829055600654600284018190558252600360209081526040832080549283018155835290912001805473ffffffffffffffffffffffffffffffffffffffff1916331790555b80546001820154141561090e57805460010161090c8282610b33565b505b6040805180820190915260055480825284016000190160208201526001828101805491820190558254839190811061094257fe5b600091825260209182902083516002909202019081559101516001909101555050600580549091019055565b600154600090600160a060020a0316331461098857600080fd5b600454421161099657600080fd5b60075474010000000000000000000000000000000000000000900460ff16156109be57600080fd5b50600554428101906001018015156109d257fe5b8160001943014008600855506007805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000179055565b600154600160a060020a03163314610a2c57600080fd5b60008054604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018690529151919092169263a9059cbb92604480820193602093909283900390910190829087803b158015610a9e57600080fd5b505af1158015610ab2573d6000803e3d6000fd5b505050506040513d6020811015610ac857600080fd5b50505050565b6007805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080831515610b105760009150610b2c565b50828202828482811515610b2057fe5b0414610b2857fe5b8091505b5092915050565b815481835581811115610b5f57600202816002028360005260206000209182019101610b5f9190610b64565b505050565b610b8891905b80821115610b845760008082556001820155600201610b6a565b5090565b905600a165627a7a72305820a7964e7d1a6b05614e4348e4484d7c12c11a57b4302b3ec5102e036fb0d7869c0029

Swarm Source

bzzr://a7964e7d1a6b05614e4348e4484d7c12c11a57b4302b3ec5102e036fb0d7869c

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  ]

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.