ETH Price: $2,530.18 (-5.52%)
Gas: 2 Gwei

Contract

0xB12c70fbEB357E0b541Af678C5A348E9829E116C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Enter Draw170525082023-04-15 12:47:59484 days ago1681562879IN
0xB12c70fb...9829E116C
0 ETH0.0020354923.04215669
Enter Draw166596492023-02-19 2:23:59540 days ago1676773439IN
0xB12c70fb...9829E116C
0 ETH0.0027958926.51691906
Enter Draw166125862023-02-12 12:09:11546 days ago1676203751IN
0xB12c70fb...9829E116C
0 ETH0.0024166922.92049881
Enter Draw165205392023-01-30 15:28:59559 days ago1675092539IN
0xB12c70fb...9829E116C
0 ETH0.0022590621.4254958
Enter Draw165037082023-01-28 7:05:59562 days ago1674889559IN
0xB12c70fb...9829E116C
0 ETH0.0016526415.67405273
Enter Draw163827612023-01-11 9:45:35578 days ago1673430335IN
0xB12c70fb...9829E116C
0 ETH0.00168716
Enter Draw161925112022-12-15 20:34:23605 days ago1671136463IN
0xB12c70fb...9829E116C
0 ETH0.0027270325.86388932
Enter Draw161170062022-12-05 7:07:35616 days ago1670224055IN
0xB12c70fb...9829E116C
0 ETH0.0011614213.14753708
Enter Draw161170042022-12-05 7:07:11616 days ago1670224031IN
0xB12c70fb...9829E116C
0 ETH0.0012058713.65069385
Enter Draw161170002022-12-05 7:06:23616 days ago1670223983IN
0xB12c70fb...9829E116C
0 ETH0.0012472814.11945127
Enter Draw161169972022-12-05 7:05:47616 days ago1670223947IN
0xB12c70fb...9829E116C
0 ETH0.0011638613.175085
Enter Draw161169942022-12-05 7:05:11616 days ago1670223911IN
0xB12c70fb...9829E116C
0 ETH0.001510214.32316349
Enter Draw161128372022-12-04 17:09:11616 days ago1670173751IN
0xB12c70fb...9829E116C
0 ETH0.0010758212.17854504
Enter Draw161128342022-12-04 17:08:35616 days ago1670173715IN
0xB12c70fb...9829E116C
0 ETH0.0012956312.28811968
Enter Draw160251052022-11-22 10:58:35628 days ago1669114715IN
0xB12c70fb...9829E116C
0 ETH0.0011984713.5668877
Enter Draw160178172022-11-21 10:33:47629 days ago1669026827IN
0xB12c70fb...9829E116C
0 ETH0.0011629813.16517629
Enter Draw159707792022-11-14 20:51:23636 days ago1668459083IN
0xB12c70fb...9829E116C
0 ETH0.0030388419.37767031
Enter Draw159630592022-11-13 19:01:11637 days ago1668366071IN
0xB12c70fb...9829E116C
0 ETH0.0045488625.32073123
Enter Draw159597022022-11-13 7:46:59637 days ago1668325619IN
0xB12c70fb...9829E116C
0 ETH0.0012369214.00218361
Enter Draw159596902022-11-13 7:44:35637 days ago1668325475IN
0xB12c70fb...9829E116C
0 ETH0.0012374114.00768208
Enter Draw159595082022-11-13 7:07:47638 days ago1668323267IN
0xB12c70fb...9829E116C
0 ETH0.0012708114.38584237
Enter Draw158919722022-11-03 20:48:11647 days ago1667508491IN
0xB12c70fb...9829E116C
0 ETH0.0019701418.68532608
Enter Draw158732962022-11-01 6:06:35650 days ago1667282795IN
0xB12c70fb...9829E116C
0 ETH0.001033969.80642093
Enter Draw158612742022-10-30 13:47:59651 days ago1667137679IN
0xB12c70fb...9829E116C
0 ETH0.0011989911.37153083
Enter Draw158517382022-10-29 5:50:11653 days ago1667022611IN
0xB12c70fb...9829E116C
0 ETH0.000811589.18731781
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:
WLMarketplace

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion
File 1 of 2 : WLMarketplace.sol
// SPDX-License-Identifier: MIT License


pragma solidity ^0.8.11;

import "@openzeppelin/contracts/security/ReentrancyGuard.sol";


interface iSabi {
    function balanceOf(address address_) external view returns (uint); 
    function transferFrom(address from_, address to_, uint amount) external returns (bool);
    function burnFrom(address account, uint amount) external;
}

contract WLMarketplace is ReentrancyGuard {

    address public owner;
    address[] public players;
    
    uint256 public ticketPrice = 500000000000000000000; // 500ETH
    uint public maxTicketsPerTx = 20;
    mapping (address => uint256) public userEntries;

    
    /* NEW mapping */
    struct SaleItem {
        uint16 totalSlots;
        uint16 boughtSlots;
        bool isActive;
        uint256 itemPrice;
        address[] buyers;
    }
    mapping (uint => SaleItem) public idToSaleItem;
    // mapping (address => uint) public lastBuyTime;
    //

    constructor() {
        owner = msg.sender;
    }

    address public sabiAddress;
    iSabi public Sabi;
    function setSabi(address _address) external onlyOwner {
        sabiAddress = _address;
        Sabi = iSabi(_address);
    }

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


    /*  ======================
        |---Entry Function---|
        ======================
    */

    function buyWL(uint _id) public nonReentrant {
        // used to have payable word in function sig
        require(idToSaleItem[_id].isActive == true, "sale ended");

        require(Sabi.balanceOf(msg.sender) >= idToSaleItem[_id].itemPrice, "insufficent $SABI");
        // require(lastBuyTime[msg.sender] + 1 hours < block.timestamp, "last buy time is less than 72 hours");
        require(idToSaleItem[_id].boughtSlots < idToSaleItem[_id].totalSlots, "slots filled for saleItem");
        for (uint i=0; i<idToSaleItem[_id].buyers.length; i++) {
            require(idToSaleItem[_id].buyers[i] != msg.sender, "already bought from item");           
        }
        // lastBuyTime[msg.sender] = block.timestamp;
        idToSaleItem[_id].boughtSlots++;
        idToSaleItem[_id].buyers.push(msg.sender);
        Sabi.burnFrom(msg.sender, idToSaleItem[_id].itemPrice);
    }

    function enterDraw(uint256 _numOfTickets) public nonReentrant {
        // require(idToSaleItem[_id].isActive == true, "sale ended");
        

        uint256 totalTicketCost = ticketPrice * _numOfTickets;
        require(Sabi.balanceOf(msg.sender) >= ticketPrice * _numOfTickets, "insufficent $SABI");
        // require(drawLive == true, "cannot enter at this time");
        require(_numOfTickets <= maxTicketsPerTx, "too many per TX");

        uint256 ownerTicketsPurchased = userEntries[msg.sender];
        require(ownerTicketsPurchased + _numOfTickets <= maxTicketsPerTx, "only allowed 20 tickets");
        Sabi.burnFrom(msg.sender, totalTicketCost);

        // player ticket purchasing loop
        for (uint256 i = 1; i <= _numOfTickets; i++) {
            players.push(msg.sender);
            userEntries[msg.sender]++;
        }
        
    }

    /*  ======================
        |---View Functions---|
        ======================
    */

    //HELPERS
    // function getLastBuyTimePlus72Hours(address _buyer) public view returns (uint) {
    //     return lastBuyTime[_buyer] + 1 hours;
    // }

    function buyersOfSaleItem(uint16 _id) public view returns (address[] memory) {
        return idToSaleItem[_id].buyers;
    }

    function buyersOfDraw() public view returns (address[] memory) {
        return players;
    }


    /*  ============================
        |---Owner Only Functions---|
        ============================
    */

    

    function createSaleItem(uint256 _newTicketPrice, uint16 _newId, uint16 _totalSlots) public onlyOwner {
        // ticketPrice = _newTicketPrice;

        idToSaleItem[_newId].totalSlots = _totalSlots;
        idToSaleItem[_newId].boughtSlots = 0;
        idToSaleItem[_newId].isActive = true;
        idToSaleItem[_newId].itemPrice = _newTicketPrice * ticketPrice;
        // idToSaleItem[_newId].buyers = address[]

    }

    function disableSaleItem(uint16 _newId) public onlyOwner {

        idToSaleItem[_newId].isActive = false;

    }



    function setTicketPrice(uint256 _newTicketPrice) public onlyOwner {
        ticketPrice = _newTicketPrice;
    }

    function transferOwnership(address _address) public onlyOwner {
        owner = _address;
    }

    function withdraw() public payable onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }

}

File 2 of 2 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (security/ReentrancyGuard.sol)

pragma solidity ^0.8.0;

/**
 * @dev Contract module that helps prevent reentrant calls to a function.
 *
 * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
 * available, which can be applied to functions to make sure there are no nested
 * (reentrant) calls to them.
 *
 * Note that because there is a single `nonReentrant` guard, functions marked as
 * `nonReentrant` may not call one another. This can be worked around by making
 * those functions `private`, and then adding `external` `nonReentrant` entry
 * points to them.
 *
 * TIP: If you would like to learn more about reentrancy and alternative ways
 * to protect against it, check out our blog post
 * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
 */
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and making it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 2000,
    "details": {
      "yul": true,
      "yulDetails": {
        "stackAllocation": true,
        "optimizerSteps": "dhfoDgvulfnTUtnIf"
      }
    }
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Sabi","outputs":[{"internalType":"contract iSabi","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"buyWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyersOfDraw","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint16","name":"_id","type":"uint16"}],"name":"buyersOfSaleItem","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTicketPrice","type":"uint256"},{"internalType":"uint16","name":"_newId","type":"uint16"},{"internalType":"uint16","name":"_totalSlots","type":"uint16"}],"name":"createSaleItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"_newId","type":"uint16"}],"name":"disableSaleItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_numOfTickets","type":"uint256"}],"name":"enterDraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToSaleItem","outputs":[{"internalType":"uint16","name":"totalSlots","type":"uint16"},{"internalType":"uint16","name":"boughtSlots","type":"uint16"},{"internalType":"bool","name":"isActive","type":"bool"},{"internalType":"uint256","name":"itemPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTicketsPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"players","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sabiAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setSabi","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTicketPrice","type":"uint256"}],"name":"setTicketPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ticketPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userEntries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"payable","type":"function"}]

6080604052681b1ae4d6e2ef500000600355601460045534801561002257600080fd5b506001600081905580546001600160a01b0319163317905561113f806100496000396000f3fe6080604052600436106101295760003560e01c8063ac8269c2116100a5578063da76b1af11610074578063f1b94f5111610059578063f1b94f5114610365578063f2fde38b14610385578063f71d96cb146103a557600080fd5b8063da76b1af14610323578063ec016f521461034557600080fd5b8063ac8269c214610296578063b2323ba6146102b6578063b9343ab9146102d6578063bcd3f5a51461030357600080fd5b80637661b620116100fc5780639cb70a80116100e15780639cb70a80146101e75780639e653fef146102075780639f10a9901461026957600080fd5b80637661b6201461019a5780638da5cb5b146101ba57600080fd5b80630f7b8f651461012e5780631209b1f61461015a57806315981650146101705780633ccfd60b14610192575b600080fd5b34801561013a57600080fd5b5061014460045481565b6040516101519190610bfe565b60405180910390f35b34801561016657600080fd5b5061014460035481565b34801561017c57600080fd5b5061019061018b366004610c2a565b6103c5565b005b6101906103e1565b3480156101a657600080fd5b506101906101b5366004610c78565b610427565b3480156101c657600080fd5b506001546101da906001600160a01b031681565b6040516101519190610ca2565b3480156101f357600080fd5b50610190610202366004610cc5565b610477565b34801561021357600080fd5b50610259610222366004610c2a565b6006602052600090815260409020805460019091015461ffff808316926201000081049091169164010000000090910460ff169084565b6040516101519493929190610cf8565b34801561027557600080fd5b50610144610284366004610c78565b60056020526000908152604090205481565b3480156102a257600080fd5b506101906102b1366004610c2a565b6104c8565b3480156102c257600080fd5b506101906102d1366004610c2a565b610730565b3480156102e257600080fd5b506008546102f6906001600160a01b031681565b6040516101519190610d55565b34801561030f57600080fd5b506007546101da906001600160a01b031681565b34801561032f57600080fd5b50610338610a25565b6040516101519190610dc1565b34801561035157600080fd5b50610190610360366004610dd9565b610a87565b34801561037157600080fd5b50610338610380366004610cc5565b610b12565b34801561039157600080fd5b506101906103a0366004610c78565b610b86565b3480156103b157600080fd5b506101da6103c0366004610c2a565b610bcc565b6001546001600160a01b031633146103dc57600080fd5b600355565b6001546001600160a01b031633146103f857600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610424573d6000803e3d6000fd5b50565b6001546001600160a01b0316331461043e57600080fd5b600780546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316811790915560088054909216179055565b6001546001600160a01b0316331461048e57600080fd5b61ffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff169055565b600260005414156104f45760405162461bcd60e51b81526004016104eb90610e5b565b60405180910390fd5b60026000908155600354610509908390610e9a565b9050816003546105199190610e9a565b6008546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906370a0823190610562903390600401610ca2565b602060405180830381865afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610ec4565b10156105c15760405162461bcd60e51b81526004016104eb90610f17565b6004548211156105e35760405162461bcd60e51b81526004016104eb90610f59565b336000908152600560205260409020546004546106008483610f69565b111561061e5760405162461bcd60e51b81526004016104eb90610fb3565b6008546040517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906379cc6790906106699033908690600401610fc3565b600060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b506001925050505b8381116107255760028054600181019091557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff191633908117909155600090815260056020526040812080549161070d83610fde565b9190505550808061071d90610fde565b91505061069f565b505060016000555050565b600260005414156107535760405162461bcd60e51b81526004016104eb90610e5b565b6002600090815581815260066020526040902054640100000000900460ff1615156001146107935760405162461bcd60e51b81526004016104eb9061102b565b600081815260066020526040908190206001015460085491517f70a0823100000000000000000000000000000000000000000000000000000000815290916001600160a01b0316906370a08231906107ef903390600401610ca2565b602060405180830381865afa15801561080c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108309190610ec4565b101561084e5760405162461bcd60e51b81526004016104eb90610f17565b60008181526006602052604090205461ffff8082166201000090920416106108885760405162461bcd60e51b81526004016104eb9061106d565b60005b60008281526006602052604090206002015481101561090f5760008281526006602052604090206002018054339190839081106108ca576108ca61107d565b6000918252602090912001546001600160a01b031614156108fd5760405162461bcd60e51b81526004016104eb906110de565b8061090781610fde565b91505061088b565b506000818152600660205260409020805462010000900461ffff16906002610936836110ee565b825461ffff9182166101009390930a928302919092021990911617905550600081815260066020908152604080832060028101805460018181018355918652938520909301805473ffffffffffffffffffffffffffffffffffffffff1916339081179091556008549486905292015490517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b0393909316926379cc6790926109eb929091600401610fc3565b600060405180830381600087803b158015610a0557600080fd5b505af1158015610a19573d6000803e3d6000fd5b50506001600055505050565b60606002805480602002602001604051908101604052809291908181526020018280548015610a7d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a5f575b5050505050905090565b6001546001600160a01b03163314610a9e57600080fd5b61ffff808316600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001691831691909117640100000000179055600354610af39084610e9a565b61ffff9092166000908152600660205260409020600101919091555050565b61ffff8116600090815260066020908152604091829020600201805483518184028101840190945280845260609392830182828015610b7a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b5c575b50505050509050919050565b6001546001600160a01b03163314610b9d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60028181548110610bdc57600080fd5b6000918252602090912001546001600160a01b0316905081565b805b82525050565b60208101610c0c8284610bf6565b92915050565b805b811461042457600080fd5b8035610c0c81610c12565b600060208284031215610c3f57610c3f600080fd5b6000610c4b8484610c1f565b949350505050565b60006001600160a01b038216610c0c565b610c1481610c53565b8035610c0c81610c64565b600060208284031215610c8d57610c8d600080fd5b6000610c4b8484610c6d565b610bf881610c53565b60208101610c0c8284610c99565b61ffff8116610c14565b8035610c0c81610cb0565b600060208284031215610cda57610cda600080fd5b6000610c4b8484610cba565b61ffff8116610bf8565b801515610bf8565b60808101610d068287610ce6565b610d136020830186610ce6565b610d206040830185610cf0565b610d2d6060830184610bf6565b95945050505050565b6000610c0c82610c53565b6000610c0c82610d36565b610bf881610d41565b60208101610c0c8284610d4c565b610d6d8282610c99565b5060200190565b60200190565b6000610d84825190565b808452602093840193830160005b82811015610db7578151610da68782610d63565b965050602082019150600101610d92565b5093949350505050565b60208082528101610dd28184610d7a565b9392505050565b600080600060608486031215610df157610df1600080fd5b6000610dfd8686610c1f565b9350506020610e0e86828701610cba565b9250506040610e1f86828701610cba565b9150509250925092565b601f8152602081017f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081529050610d74565b60208082528101610c0c81610e29565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000816000190483118215151615610eb457610eb4610e6b565b500290565b8051610c0c81610c12565b600060208284031215610ed957610ed9600080fd5b6000610c4b8484610eb9565b60118152602081017f696e737566666963656e7420245341424900000000000000000000000000000081529050610d74565b60208082528101610c0c81610ee5565b600f8152602081017f746f6f206d616e7920706572205458000000000000000000000000000000000081529050610d74565b60208082528101610c0c81610f27565b60008219821115610f7c57610f7c610e6b565b500190565b60178152602081017f6f6e6c7920616c6c6f776564203230207469636b65747300000000000000000081529050610d74565b60208082528101610c0c81610f81565b60408101610fd18285610c99565b610dd26020830184610bf6565b6000600019821415610ff257610ff2610e6b565b5060010190565b600a8152602081017f73616c6520656e6465640000000000000000000000000000000000000000000081529050610d74565b60208082528101610c0c81610ff9565b60198152602081017f736c6f74732066696c6c656420666f722073616c654974656d0000000000000081529050610d74565b60208082528101610c0c8161103b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60188152602081017f616c726561647920626f756768742066726f6d206974656d000000000000000081529050610d74565b60208082528101610c0c816110ac565b61ffff81169050600061ffff821415610ff257610ff2610e6b56fea264697066735822122043ffaf94a8d2474724518e5b6c360b71a158c79abda7ff59b3246941322ad5c264736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101295760003560e01c8063ac8269c2116100a5578063da76b1af11610074578063f1b94f5111610059578063f1b94f5114610365578063f2fde38b14610385578063f71d96cb146103a557600080fd5b8063da76b1af14610323578063ec016f521461034557600080fd5b8063ac8269c214610296578063b2323ba6146102b6578063b9343ab9146102d6578063bcd3f5a51461030357600080fd5b80637661b620116100fc5780639cb70a80116100e15780639cb70a80146101e75780639e653fef146102075780639f10a9901461026957600080fd5b80637661b6201461019a5780638da5cb5b146101ba57600080fd5b80630f7b8f651461012e5780631209b1f61461015a57806315981650146101705780633ccfd60b14610192575b600080fd5b34801561013a57600080fd5b5061014460045481565b6040516101519190610bfe565b60405180910390f35b34801561016657600080fd5b5061014460035481565b34801561017c57600080fd5b5061019061018b366004610c2a565b6103c5565b005b6101906103e1565b3480156101a657600080fd5b506101906101b5366004610c78565b610427565b3480156101c657600080fd5b506001546101da906001600160a01b031681565b6040516101519190610ca2565b3480156101f357600080fd5b50610190610202366004610cc5565b610477565b34801561021357600080fd5b50610259610222366004610c2a565b6006602052600090815260409020805460019091015461ffff808316926201000081049091169164010000000090910460ff169084565b6040516101519493929190610cf8565b34801561027557600080fd5b50610144610284366004610c78565b60056020526000908152604090205481565b3480156102a257600080fd5b506101906102b1366004610c2a565b6104c8565b3480156102c257600080fd5b506101906102d1366004610c2a565b610730565b3480156102e257600080fd5b506008546102f6906001600160a01b031681565b6040516101519190610d55565b34801561030f57600080fd5b506007546101da906001600160a01b031681565b34801561032f57600080fd5b50610338610a25565b6040516101519190610dc1565b34801561035157600080fd5b50610190610360366004610dd9565b610a87565b34801561037157600080fd5b50610338610380366004610cc5565b610b12565b34801561039157600080fd5b506101906103a0366004610c78565b610b86565b3480156103b157600080fd5b506101da6103c0366004610c2a565b610bcc565b6001546001600160a01b031633146103dc57600080fd5b600355565b6001546001600160a01b031633146103f857600080fd5b60405133904780156108fc02916000818181858888f19350505050158015610424573d6000803e3d6000fd5b50565b6001546001600160a01b0316331461043e57600080fd5b600780546001600160a01b0390921673ffffffffffffffffffffffffffffffffffffffff19928316811790915560088054909216179055565b6001546001600160a01b0316331461048e57600080fd5b61ffff16600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff169055565b600260005414156104f45760405162461bcd60e51b81526004016104eb90610e5b565b60405180910390fd5b60026000908155600354610509908390610e9a565b9050816003546105199190610e9a565b6008546040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906370a0823190610562903390600401610ca2565b602060405180830381865afa15801561057f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105a39190610ec4565b10156105c15760405162461bcd60e51b81526004016104eb90610f17565b6004548211156105e35760405162461bcd60e51b81526004016104eb90610f59565b336000908152600560205260409020546004546106008483610f69565b111561061e5760405162461bcd60e51b81526004016104eb90610fb3565b6008546040517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906379cc6790906106699033908690600401610fc3565b600060405180830381600087803b15801561068357600080fd5b505af1158015610697573d6000803e3d6000fd5b506001925050505b8381116107255760028054600181019091557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01805473ffffffffffffffffffffffffffffffffffffffff191633908117909155600090815260056020526040812080549161070d83610fde565b9190505550808061071d90610fde565b91505061069f565b505060016000555050565b600260005414156107535760405162461bcd60e51b81526004016104eb90610e5b565b6002600090815581815260066020526040902054640100000000900460ff1615156001146107935760405162461bcd60e51b81526004016104eb9061102b565b600081815260066020526040908190206001015460085491517f70a0823100000000000000000000000000000000000000000000000000000000815290916001600160a01b0316906370a08231906107ef903390600401610ca2565b602060405180830381865afa15801561080c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108309190610ec4565b101561084e5760405162461bcd60e51b81526004016104eb90610f17565b60008181526006602052604090205461ffff8082166201000090920416106108885760405162461bcd60e51b81526004016104eb9061106d565b60005b60008281526006602052604090206002015481101561090f5760008281526006602052604090206002018054339190839081106108ca576108ca61107d565b6000918252602090912001546001600160a01b031614156108fd5760405162461bcd60e51b81526004016104eb906110de565b8061090781610fde565b91505061088b565b506000818152600660205260409020805462010000900461ffff16906002610936836110ee565b825461ffff9182166101009390930a928302919092021990911617905550600081815260066020908152604080832060028101805460018181018355918652938520909301805473ffffffffffffffffffffffffffffffffffffffff1916339081179091556008549486905292015490517f79cc67900000000000000000000000000000000000000000000000000000000081526001600160a01b0393909316926379cc6790926109eb929091600401610fc3565b600060405180830381600087803b158015610a0557600080fd5b505af1158015610a19573d6000803e3d6000fd5b50506001600055505050565b60606002805480602002602001604051908101604052809291908181526020018280548015610a7d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a5f575b5050505050905090565b6001546001600160a01b03163314610a9e57600080fd5b61ffff808316600090815260066020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001691831691909117640100000000179055600354610af39084610e9a565b61ffff9092166000908152600660205260409020600101919091555050565b61ffff8116600090815260066020908152604091829020600201805483518184028101840190945280845260609392830182828015610b7a57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b5c575b50505050509050919050565b6001546001600160a01b03163314610b9d57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b60028181548110610bdc57600080fd5b6000918252602090912001546001600160a01b0316905081565b805b82525050565b60208101610c0c8284610bf6565b92915050565b805b811461042457600080fd5b8035610c0c81610c12565b600060208284031215610c3f57610c3f600080fd5b6000610c4b8484610c1f565b949350505050565b60006001600160a01b038216610c0c565b610c1481610c53565b8035610c0c81610c64565b600060208284031215610c8d57610c8d600080fd5b6000610c4b8484610c6d565b610bf881610c53565b60208101610c0c8284610c99565b61ffff8116610c14565b8035610c0c81610cb0565b600060208284031215610cda57610cda600080fd5b6000610c4b8484610cba565b61ffff8116610bf8565b801515610bf8565b60808101610d068287610ce6565b610d136020830186610ce6565b610d206040830185610cf0565b610d2d6060830184610bf6565b95945050505050565b6000610c0c82610c53565b6000610c0c82610d36565b610bf881610d41565b60208101610c0c8284610d4c565b610d6d8282610c99565b5060200190565b60200190565b6000610d84825190565b808452602093840193830160005b82811015610db7578151610da68782610d63565b965050602082019150600101610d92565b5093949350505050565b60208082528101610dd28184610d7a565b9392505050565b600080600060608486031215610df157610df1600080fd5b6000610dfd8686610c1f565b9350506020610e0e86828701610cba565b9250506040610e1f86828701610cba565b9150509250925092565b601f8152602081017f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0081529050610d74565b60208082528101610c0c81610e29565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000816000190483118215151615610eb457610eb4610e6b565b500290565b8051610c0c81610c12565b600060208284031215610ed957610ed9600080fd5b6000610c4b8484610eb9565b60118152602081017f696e737566666963656e7420245341424900000000000000000000000000000081529050610d74565b60208082528101610c0c81610ee5565b600f8152602081017f746f6f206d616e7920706572205458000000000000000000000000000000000081529050610d74565b60208082528101610c0c81610f27565b60008219821115610f7c57610f7c610e6b565b500190565b60178152602081017f6f6e6c7920616c6c6f776564203230207469636b65747300000000000000000081529050610d74565b60208082528101610c0c81610f81565b60408101610fd18285610c99565b610dd26020830184610bf6565b6000600019821415610ff257610ff2610e6b565b5060010190565b600a8152602081017f73616c6520656e6465640000000000000000000000000000000000000000000081529050610d74565b60208082528101610c0c81610ff9565b60198152602081017f736c6f74732066696c6c656420666f722073616c654974656d0000000000000081529050610d74565b60208082528101610c0c8161103b565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60188152602081017f616c726561647920626f756768742066726f6d206974656d000000000000000081529050610d74565b60208082528101610c0c816110ac565b61ffff81169050600061ffff821415610ff257610ff2610e6b56fea264697066735822122043ffaf94a8d2474724518e5b6c360b71a158c79abda7ff59b3246941322ad5c264736f6c634300080b0033

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.