ETH Price: $3,994.25 (-0.68%)
Gas: 0.11 GWei

Contract

0x5581fC0A61ce3D1e4e654a3c4Ac56AE10C350047

Overview

ETH Balance

Scroll LogoScroll LogoScroll Logo0.00095 ETH

ETH Value

$3.79 (@ $3,994.25/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Try End Raffle110073562024-11-11 14:40:2426 days ago1731336024IN
0x5581fC0A...10C350047
0 ETH0.000010810.0424197
Get Free Ticket106692312024-10-30 18:44:2837 days ago1730313868IN
0x5581fC0A...10C350047
0 ETH0.000695381.05914774
Get Free Ticket106692182024-10-30 18:43:4937 days ago1730313829IN
0x5581fC0A...10C350047
0 ETH0.000139160.16356892
Get Free Ticket106692042024-10-30 18:43:0737 days ago1730313787IN
0x5581fC0A...10C350047
0 ETH0.000104790.12141856
Get Free Ticket106687422024-10-30 18:19:5837 days ago1730312398IN
0x5581fC0A...10C350047
0 ETH0.000041260.04186322
Get Free Ticket106686862024-10-30 18:17:1037 days ago1730312230IN
0x5581fC0A...10C350047
0 ETH0.000042310.0421502
Get Free Ticket106018672024-10-28 10:49:4840 days ago1730112588IN
0x5581fC0A...10C350047
0 ETH0.000008190.0410071
Get Free Ticket105528062024-10-26 18:06:2841 days ago1729965988IN
0x5581fC0A...10C350047
0 ETH0.000006060.04242173
Get Free Ticket105522432024-10-26 17:38:2041 days ago1729964300IN
0x5581fC0A...10C350047
0 ETH0.000006050.04022999
Get Free Ticket105203572024-10-25 15:23:4643 days ago1729869826IN
0x5581fC0A...10C350047
0 ETH0.000010130.04207112
Get Free Ticket105187572024-10-25 14:05:1243 days ago1729865112IN
0x5581fC0A...10C350047
0 ETH0.000007480.04136065
Get Free Ticket105167052024-10-25 12:24:1343 days ago1729859053IN
0x5581fC0A...10C350047
0 ETH0.000006970.04056446
Get Free Ticket105162962024-10-25 12:03:5343 days ago1729857833IN
0x5581fC0A...10C350047
0 ETH0.000007170.04090455
Get Free Ticket105070072024-10-25 4:29:3343 days ago1729830573IN
0x5581fC0A...10C350047
0 ETH0.000006230.0471979
Get Free Ticket104972652024-10-24 20:24:3743 days ago1729801477IN
0x5581fC0A...10C350047
0 ETH0.000011510.04227464
Get Free Ticket104953582024-10-24 18:50:0043 days ago1729795800IN
0x5581fC0A...10C350047
0 ETH0.00000960.04941122
Get Free Ticket104950722024-10-24 18:35:4243 days ago1729794942IN
0x5581fC0A...10C350047
0 ETH0.000007770.04085378
Get Free Ticket104936882024-10-24 17:26:4644 days ago1729790806IN
0x5581fC0A...10C350047
0 ETH0.000007650.04080895
Get Free Ticket104936012024-10-24 17:22:2544 days ago1729790545IN
0x5581fC0A...10C350047
0 ETH0.000008440.0461694
Get Free Ticket104911842024-10-24 15:23:0444 days ago1729783384IN
0x5581fC0A...10C350047
0 ETH0.000008840.04124303
Get Free Ticket104908492024-10-24 15:06:2144 days ago1729782381IN
0x5581fC0A...10C350047
0 ETH0.000009250.04139039
Get Free Ticket104895042024-10-24 14:01:0244 days ago1729778462IN
0x5581fC0A...10C350047
0 ETH0.000008960.04128537
Get Free Ticket104893352024-10-24 13:52:4444 days ago1729777964IN
0x5581fC0A...10C350047
0 ETH0.000007930.04091267
Get Free Ticket104893042024-10-24 13:51:1344 days ago1729777873IN
0x5581fC0A...10C350047
0 ETH0.00000950.06
Get Free Ticket104886692024-10-24 13:20:3144 days ago1729776031IN
0x5581fC0A...10C350047
0 ETH0.000008750.04121449
View all transactions

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
106692312024-10-30 18:44:2837 days ago1730313868
0x5581fC0A...10C350047
0.00001 ETH
106692312024-10-30 18:44:2837 days ago1730313868
0x5581fC0A...10C350047
0.00001 ETH
106692312024-10-30 18:44:2837 days ago1730313868
0x5581fC0A...10C350047
0.00001 ETH
106692312024-10-30 18:44:2837 days ago1730313868
0x5581fC0A...10C350047
0.00001 ETH
106692312024-10-30 18:44:2837 days ago1730313868
0x5581fC0A...10C350047
0.00001 ETH
106692182024-10-30 18:43:4937 days ago1730313829
0x5581fC0A...10C350047
0.00001 ETH
106692182024-10-30 18:43:4937 days ago1730313829
0x5581fC0A...10C350047
0.00001 ETH
106692182024-10-30 18:43:4937 days ago1730313829
0x5581fC0A...10C350047
0.00001 ETH
106692182024-10-30 18:43:4937 days ago1730313829
0x5581fC0A...10C350047
0.00001 ETH
106692182024-10-30 18:43:4937 days ago1730313829
0x5581fC0A...10C350047
0.00001 ETH
106692042024-10-30 18:43:0737 days ago1730313787
0x5581fC0A...10C350047
0.00001 ETH
106692042024-10-30 18:43:0737 days ago1730313787
0x5581fC0A...10C350047
0.00001 ETH
106692042024-10-30 18:43:0737 days ago1730313787
0x5581fC0A...10C350047
0.00001 ETH
106692042024-10-30 18:43:0737 days ago1730313787
0x5581fC0A...10C350047
0.00001 ETH
106692042024-10-30 18:43:0737 days ago1730313787
0x5581fC0A...10C350047
0.00001 ETH
106687422024-10-30 18:19:5837 days ago1730312398
0x5581fC0A...10C350047
0.00001 ETH
106687422024-10-30 18:19:5837 days ago1730312398
0x5581fC0A...10C350047
0.00001 ETH
106687422024-10-30 18:19:5837 days ago1730312398
0x5581fC0A...10C350047
0.00001 ETH
106687422024-10-30 18:19:5837 days ago1730312398
0x5581fC0A...10C350047
0.00001 ETH
106687422024-10-30 18:19:5837 days ago1730312398
0x5581fC0A...10C350047
0.00001 ETH
106686862024-10-30 18:17:1037 days ago1730312230
0x5581fC0A...10C350047
0.00001 ETH
106686862024-10-30 18:17:1037 days ago1730312230
0x5581fC0A...10C350047
0.00001 ETH
106686862024-10-30 18:17:1037 days ago1730312230
0x5581fC0A...10C350047
0.00001 ETH
106686862024-10-30 18:17:1037 days ago1730312230
0x5581fC0A...10C350047
0.00001 ETH
106686862024-10-30 18:17:1037 days ago1730312230
0x5581fC0A...10C350047
0.00001 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FreeTimerOnChainWinMultipleWinners2

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 1000 runs

Other Settings:
paris EvmVersion
File 1 of 2 : AdetSecmeli2.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.24;

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

// \\
// Created by Clodron
// If you want to create a new project, please contact me @
// [email protected]
// \\

contract FreeTimerOnChainWinMultipleWinners2 is ReentrancyGuard {
    address public owner;
    mapping(address => bool) public hasEntered;
    address[] public players;
    mapping(address => uint256) public playerIndexes;
    address[] public winnerAddresses;
    mapping(address => uint256) public winnerWins;
    bool public raffleStatus;
    uint256 public prizeAmount;
    uint256 public raffleEndTime;
    uint256 public ticketsSoldThisRound;
    uint256 public numberOfWinners;
    uint256 private raffleStartDuration;

    event NewEntry(address indexed player, uint256 numberOfEntries);
    event RaffleStarted(
        uint256 prizeAmount,
        uint256 endTime,
        uint256 numberOfWinners
    );
    event RaffleEnded();
    event WinnerSelected(address winner, uint256 prizeAmount);

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

    constructor() {
        owner = msg.sender;
        raffleStatus = false;
        ticketsSoldThisRound = 0;
    }

    function startRaffle(
        uint256 _prizeAmount,
        uint256 _duration,
        uint256 _numberOfWinners
    ) public onlyOwner {
        require(!raffleStatus, "Raffle already started.");
        require(_prizeAmount > 0, "Prize amount must be greater than 0!");
        require(_prizeAmount <= address(this).balance, "Not enough balance!");
        require(
            _numberOfWinners > 0,
            "Number of winners must be greater than 0."
        );

        prizeAmount = _prizeAmount;
        numberOfWinners = _numberOfWinners;
        raffleStatus = true;
        raffleEndTime = block.timestamp + (_duration * 1 minutes);
        raffleStartDuration = _duration;
        emit RaffleStarted(_prizeAmount, raffleEndTime, _numberOfWinners);
    }

    function getFreeTicket() public {
        require(raffleStatus, "Raffle is not started.");
        require(
            !hasEntered[msg.sender],
            "You have already claimed your free ticket."
        );

        players.push(msg.sender);
        hasEntered[msg.sender] = true;
        ticketsSoldThisRound += 1;
        emit NewEntry(msg.sender, ticketsSoldThisRound);

        if (getRemainingTimeSec() == 0 && players.length >= numberOfWinners) {
            selectWinners();
        }
    }

    function tryEndRaffle() public onlyOwner nonReentrant {
        require(raffleStatus, "Raffle is not started yet.");
        require(
            block.timestamp > raffleEndTime,
            "Raffle period has not ended yet!"
        );
        require(players.length > 0, "No players in raffle.");
        require(
            players.length >= numberOfWinners,
            "Not enough players to select winners."
        );

        selectWinners();
    }

    function selectWinners() private {
        uint256 prizePerWinner = prizeAmount / numberOfWinners;

        for (uint256 i = 0; i < numberOfWinners; i++) {
            uint256 winnerIndex = random() % players.length;
            address winner = players[winnerIndex];
            winnerAddresses.push(winner);
            payable(winner).transfer(prizePerWinner);
            winnerWins[winner] += 1;
            emit WinnerSelected(winner, prizePerWinner);
            removePlayer(winnerIndex);
        }

        endRaffle();
    }

    function removePlayer(uint256 index) private {
        if (index >= players.length) return;

        hasEntered[players[index]] = false;
        players[index] = players[players.length - 1];
        playerIndexes[players[index]] = index;
        players.pop();
    }

    function hardReset() public onlyOwner {
        endRaffle();
    }

    function endRaffle() private {
        raffleStatus = false;
        for (uint256 i = 0; i < players.length; i++) {
            hasEntered[players[i]] = false;
        }
        delete players;
        prizeAmount = 0;
        ticketsSoldThisRound = 0;
        emit RaffleEnded();
        delete winnerAddresses;
    }

    function random() private view returns (uint256) {
        return
            uint256(
                keccak256(
                    abi.encodePacked(
                        block.timestamp,
                        block.prevrandao,
                        players.length
                    )
                )
            );
    }

    function initialDeposit() public payable onlyOwner nonReentrant {
        require(msg.value > 0, "Deposit must be greater than 0");
    }

    function withdrawFunds() public payable onlyOwner nonReentrant {
        require(!raffleStatus, "Cannot withdraw before raffle has ended.");
        require(address(this).balance > 0, "No funds to withdraw");
        payable(owner).transfer(address(this).balance);
    }

    function getWinnerByIndex(
        uint256 index
    ) public view returns (address, uint256) {
        address winnerAddress = winnerAddresses[index];
        return (winnerAddress, winnerWins[winnerAddress]);
    }

    function getTotalWinners() public view returns (uint256) {
        return winnerAddresses.length;
    }

    function getRemainingTimeSec() public view returns (uint256) {
        if (block.timestamp >= raffleEndTime || !raffleStatus) {
            return 0;
        } else {
            return raffleEndTime - block.timestamp;
        }
    }

    function getRemainingTimeMin() public view returns (uint256) {
        if (block.timestamp >= raffleEndTime || !raffleStatus) {
            return 0;
        } else {
            uint256 remainingTimeInSeconds = raffleEndTime - block.timestamp;
            return remainingTimeInSeconds / 1 minutes;
        }
    }

    function getRemainingTimeHour() public view returns (uint256) {
        if (block.timestamp >= raffleEndTime || !raffleStatus) {
            return 0;
        } else {
            uint256 remainingTimeInSeconds = raffleEndTime - block.timestamp;
            return remainingTimeInSeconds / 1 hours;
        }
    }

    function getRaffleStartDuration() public view returns (uint256) {
        return raffleStartDuration;
    }

    function getContractBalance() public view returns (uint256) {
        return address(this).balance;
    }
}

File 2 of 2 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (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() {
        _nonReentrantBefore();
        _;
        _nonReentrantAfter();
    }

    function _nonReentrantBefore() private {
        // On the first call to nonReentrant, _status will be _NOT_ENTERED
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

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

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

    /**
     * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
     * `nonReentrant` function in the call stack.
     */
    function _reentrancyGuardEntered() internal view returns (bool) {
        return _status == _ENTERED;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 1000
  },
  "evmVersion": "paris",
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"player","type":"address"},{"indexed":false,"internalType":"uint256","name":"numberOfEntries","type":"uint256"}],"name":"NewEntry","type":"event"},{"anonymous":false,"inputs":[],"name":"RaffleEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prizeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"numberOfWinners","type":"uint256"}],"name":"RaffleStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"prizeAmount","type":"uint256"}],"name":"WinnerSelected","type":"event"},{"inputs":[],"name":"getContractBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFreeTicket","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getRaffleStartDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRemainingTimeHour","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRemainingTimeMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRemainingTimeSec","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalWinners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getWinnerByIndex","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hardReset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasEntered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialDeposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"numberOfWinners","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":"address","name":"","type":"address"}],"name":"playerIndexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"players","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prizeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"raffleEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"raffleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_prizeAmount","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"},{"internalType":"uint256","name":"_numberOfWinners","type":"uint256"}],"name":"startRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ticketsSoldThisRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tryEndRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"winnerAddresses","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"winnerWins","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawFunds","outputs":[],"stateMutability":"payable","type":"function"}]

608060405234801561001057600080fd5b506001600081815581546001600160a01b03191633179091556007805460ff19169055600a55611351806100456000396000f3fe60806040526004361061018b5760003560e01c80636f9fb98a116100d6578063adc1ce8d1161007f578063e037f88911610059578063e037f88914610416578063f71d96cb1461041e578063fabc71fb1461043e57600080fd5b8063adc1ce8d146103d2578063ccfa213e146103e7578063ceeca9841461040157600080fd5b80638da5cb5b116100b05780638da5cb5b1461037057806391628795146103905780639819ae5b146103bd57600080fd5b80636f9fb98a14610331578063785fa627146103445780638acfaca91461035a57600080fd5b806324600fc31161013857806346c77d821161011257806346c77d82146102e75780635b432997146103075780635c0ee5561461031c57600080fd5b806324600fc31461027057806324d70dea1461027a57806335abbbf3146102ba57600080fd5b806318a32e701161016957806318a32e70146102305780631c0694f7146102465780631da7aa361461025b57600080fd5b806303e1be3214610190578063045f9c97146101b95780630609ff67146101f1575b600080fd5b34801561019c57600080fd5b506101a6600a5481565b6040519081526020015b60405180910390f35b3480156101c557600080fd5b506101d96101d43660046111e3565b610453565b6040516001600160a01b0390911681526020016101b0565b3480156101fd57600080fd5b5061021161020c3660046111e3565b61047d565b604080516001600160a01b0390931683526020830191909152016101b0565b34801561023c57600080fd5b506101a660095481565b34801561025257600080fd5b506101a66104c5565b34801561026757600080fd5b506101a66104f9565b61027861053d565b005b34801561028657600080fd5b506102aa6102953660046111fc565b60026020526000908152604090205460ff1681565b60405190151581526020016101b0565b3480156102c657600080fd5b506101a66102d53660046111fc565b60066020526000908152604090205481565b3480156102f357600080fd5b5061027861030236600461122c565b6106a1565b34801561031357600080fd5b506102786108f3565b34801561032857600080fd5b50610278610943565b34801561033d57600080fd5b50476101a6565b34801561035057600080fd5b506101a660085481565b34801561036657600080fd5b506101a6600b5481565b34801561037c57600080fd5b506001546101d9906001600160a01b031681565b34801561039c57600080fd5b506101a66103ab3660046111fc565b60046020526000908152604090205481565b3480156103c957600080fd5b50610278610b11565b3480156103de57600080fd5b506101a6610cc4565b3480156103f357600080fd5b506007546102aa9060ff1681565b34801561040d57600080fd5b506005546101a6565b610278610d03565b34801561042a57600080fd5b506101d96104393660046111e3565b610da3565b34801561044a57600080fd5b50600c546101a6565b6005818154811061046357600080fd5b6000918252602090912001546001600160a01b0316905081565b60008060006005848154811061049557610495611258565b60009182526020808320909101546001600160a01b03168083526006909152604090912054909590945092505050565b6000600954421015806104db575060075460ff16155b156104e65750600090565b426009546104f49190611284565b905090565b60006009544210158061050f575060075460ff16155b1561051a5750600090565b60004260095461052a9190611284565b9050610537603c826112b3565b91505090565b6001546001600160a01b0316331461058a5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064015b60405180910390fd5b610592610db3565b60075460ff161561060b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f74207769746864726177206265666f726520726166666c6520686160448201527f7320656e6465642e0000000000000000000000000000000000000000000000006064820152608401610581565b6000471161065b5760405162461bcd60e51b815260206004820152601460248201527f4e6f2066756e647320746f2077697468647261770000000000000000000000006044820152606401610581565b6001546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610694573d6000803e3d6000fd5b5061069f6001600055565b565b6001546001600160a01b031633146106e95760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b60075460ff161561073c5760405162461bcd60e51b815260206004820152601760248201527f526166666c6520616c726561647920737461727465642e0000000000000000006044820152606401610581565b600083116107b15760405162461bcd60e51b8152602060048201526024808201527f5072697a6520616d6f756e74206d75737420626520677265617465722074686160448201527f6e203021000000000000000000000000000000000000000000000000000000006064820152608401610581565b478311156108015760405162461bcd60e51b815260206004820152601360248201527f4e6f7420656e6f7567682062616c616e636521000000000000000000000000006044820152606401610581565b600081116108775760405162461bcd60e51b815260206004820152602960248201527f4e756d626572206f662077696e6e657273206d7573742062652067726561746560448201527f72207468616e20302e00000000000000000000000000000000000000000000006064820152608401610581565b6008839055600b8190556007805460ff1916600117905561089982603c6112c7565b6108a390426112de565b6009819055600c83905560408051858152602081019290925281018290527fd77e9fb5adec906a299609760bda7e7f98611d152b22cd9659b9846ea305b83d9060600160405180910390a1505050565b6001546001600160a01b0316331461093b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b61069f610e0c565b6001546001600160a01b0316331461098b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b610993610db3565b60075460ff166109e55760405162461bcd60e51b815260206004820152601a60248201527f526166666c65206973206e6f742073746172746564207965742e0000000000006044820152606401610581565b6009544211610a365760405162461bcd60e51b815260206004820181905260248201527f526166666c6520706572696f6420686173206e6f7420656e64656420796574216044820152606401610581565b600354610a855760405162461bcd60e51b815260206004820152601560248201527f4e6f20706c617965727320696e20726166666c652e00000000000000000000006044820152606401610581565b600b546003541015610aff5760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f75676820706c617965727320746f2073656c6563742077696e60448201527f6e6572732e0000000000000000000000000000000000000000000000000000006064820152608401610581565b610b07610ec4565b61069f6001600055565b60075460ff16610b635760405162461bcd60e51b815260206004820152601660248201527f526166666c65206973206e6f7420737461727465642e000000000000000000006044820152606401610581565b3360009081526002602052604090205460ff1615610be95760405162461bcd60e51b815260206004820152602a60248201527f596f75206861766520616c726561647920636c61696d656420796f757220667260448201527f6565207469636b65742e000000000000000000000000000000000000000000006064820152608401610581565b6003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff1916339081179091556000908152600260205260408120805460ff191683179055600a8054909190610c619084906112de565b9091555050600a5460405190815233907f9d5cf8d6fc62210bab9630b8d613c1b63d9cfe0e0d2d70dda538d69c7e4f37ba9060200160405180910390a2610ca66104c5565b158015610cb75750600b5460035410155b1561069f5761069f610ec4565b600060095442101580610cda575060075460ff16155b15610ce55750600090565b600042600954610cf59190611284565b9050610537610e10826112b3565b6001546001600160a01b03163314610d4b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b610d53610db3565b60003411610b075760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974206d7573742062652067726561746572207468616e203000006044820152606401610581565b6003818154811061046357600080fd5b600260005403610e055760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610581565b6002600055565b6007805460ff1916905560005b600354811015610e785760006002600060038481548110610e3c57610e3c611258565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101610e19565b50610e85600360006111b1565b60006008819055600a8190556040517f502fd88d3ee98597d4546d25e71901684f153dccc5308b79f0f9ad3c660537a69190a161069f600560006111b1565b6000600b54600854610ed691906112b3565b905060005b600b54811015611052576003546040805142602080830191909152448284015260608083018590528351808403909101815260809092019092528051910120600091610f26916112f1565b9050600060038281548110610f3d57610f3d611258565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604051909250829186156108fc02918791818181858888f19350505050158015610fce573d6000803e3d6000fd5b506001600160a01b0381166000908152600660205260408120805460019290610ff89084906112de565b9091555050604080516001600160a01b0383168152602081018690527f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb910160405180910390a16110488261105e565b5050600101610edb565b5061105b610e0c565b50565b600354811061106a5750565b6000600260006003848154811061108357611083611258565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600380546110c790600190611284565b815481106110d7576110d7611258565b600091825260209091200154600380546001600160a01b03909216918390811061110357611103611258565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600460006003848154811061114957611149611258565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600380548061117f5761117f611305565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905550565b508054600082559060005260206000209081019061105b91905b808211156111df57600081556001016111cb565b5090565b6000602082840312156111f557600080fd5b5035919050565b60006020828403121561120e57600080fd5b81356001600160a01b038116811461122557600080fd5b9392505050565b60008060006060848603121561124157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156112975761129761126e565b92915050565b634e487b7160e01b600052601260045260246000fd5b6000826112c2576112c261129d565b500490565b80820281158282048414176112975761129761126e565b808201808211156112975761129761126e565b6000826113005761130061129d565b500690565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220c218ad9afc0a9048780c106aa6dd5133a30512ddc19763840e9ca6feb53cbcda64736f6c63430008180033

Deployed Bytecode

0x60806040526004361061018b5760003560e01c80636f9fb98a116100d6578063adc1ce8d1161007f578063e037f88911610059578063e037f88914610416578063f71d96cb1461041e578063fabc71fb1461043e57600080fd5b8063adc1ce8d146103d2578063ccfa213e146103e7578063ceeca9841461040157600080fd5b80638da5cb5b116100b05780638da5cb5b1461037057806391628795146103905780639819ae5b146103bd57600080fd5b80636f9fb98a14610331578063785fa627146103445780638acfaca91461035a57600080fd5b806324600fc31161013857806346c77d821161011257806346c77d82146102e75780635b432997146103075780635c0ee5561461031c57600080fd5b806324600fc31461027057806324d70dea1461027a57806335abbbf3146102ba57600080fd5b806318a32e701161016957806318a32e70146102305780631c0694f7146102465780631da7aa361461025b57600080fd5b806303e1be3214610190578063045f9c97146101b95780630609ff67146101f1575b600080fd5b34801561019c57600080fd5b506101a6600a5481565b6040519081526020015b60405180910390f35b3480156101c557600080fd5b506101d96101d43660046111e3565b610453565b6040516001600160a01b0390911681526020016101b0565b3480156101fd57600080fd5b5061021161020c3660046111e3565b61047d565b604080516001600160a01b0390931683526020830191909152016101b0565b34801561023c57600080fd5b506101a660095481565b34801561025257600080fd5b506101a66104c5565b34801561026757600080fd5b506101a66104f9565b61027861053d565b005b34801561028657600080fd5b506102aa6102953660046111fc565b60026020526000908152604090205460ff1681565b60405190151581526020016101b0565b3480156102c657600080fd5b506101a66102d53660046111fc565b60066020526000908152604090205481565b3480156102f357600080fd5b5061027861030236600461122c565b6106a1565b34801561031357600080fd5b506102786108f3565b34801561032857600080fd5b50610278610943565b34801561033d57600080fd5b50476101a6565b34801561035057600080fd5b506101a660085481565b34801561036657600080fd5b506101a6600b5481565b34801561037c57600080fd5b506001546101d9906001600160a01b031681565b34801561039c57600080fd5b506101a66103ab3660046111fc565b60046020526000908152604090205481565b3480156103c957600080fd5b50610278610b11565b3480156103de57600080fd5b506101a6610cc4565b3480156103f357600080fd5b506007546102aa9060ff1681565b34801561040d57600080fd5b506005546101a6565b610278610d03565b34801561042a57600080fd5b506101d96104393660046111e3565b610da3565b34801561044a57600080fd5b50600c546101a6565b6005818154811061046357600080fd5b6000918252602090912001546001600160a01b0316905081565b60008060006005848154811061049557610495611258565b60009182526020808320909101546001600160a01b03168083526006909152604090912054909590945092505050565b6000600954421015806104db575060075460ff16155b156104e65750600090565b426009546104f49190611284565b905090565b60006009544210158061050f575060075460ff16155b1561051a5750600090565b60004260095461052a9190611284565b9050610537603c826112b3565b91505090565b6001546001600160a01b0316331461058a5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064015b60405180910390fd5b610592610db3565b60075460ff161561060b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f74207769746864726177206265666f726520726166666c6520686160448201527f7320656e6465642e0000000000000000000000000000000000000000000000006064820152608401610581565b6000471161065b5760405162461bcd60e51b815260206004820152601460248201527f4e6f2066756e647320746f2077697468647261770000000000000000000000006044820152606401610581565b6001546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610694573d6000803e3d6000fd5b5061069f6001600055565b565b6001546001600160a01b031633146106e95760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b60075460ff161561073c5760405162461bcd60e51b815260206004820152601760248201527f526166666c6520616c726561647920737461727465642e0000000000000000006044820152606401610581565b600083116107b15760405162461bcd60e51b8152602060048201526024808201527f5072697a6520616d6f756e74206d75737420626520677265617465722074686160448201527f6e203021000000000000000000000000000000000000000000000000000000006064820152608401610581565b478311156108015760405162461bcd60e51b815260206004820152601360248201527f4e6f7420656e6f7567682062616c616e636521000000000000000000000000006044820152606401610581565b600081116108775760405162461bcd60e51b815260206004820152602960248201527f4e756d626572206f662077696e6e657273206d7573742062652067726561746560448201527f72207468616e20302e00000000000000000000000000000000000000000000006064820152608401610581565b6008839055600b8190556007805460ff1916600117905561089982603c6112c7565b6108a390426112de565b6009819055600c83905560408051858152602081019290925281018290527fd77e9fb5adec906a299609760bda7e7f98611d152b22cd9659b9846ea305b83d9060600160405180910390a1505050565b6001546001600160a01b0316331461093b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b61069f610e0c565b6001546001600160a01b0316331461098b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b610993610db3565b60075460ff166109e55760405162461bcd60e51b815260206004820152601a60248201527f526166666c65206973206e6f742073746172746564207965742e0000000000006044820152606401610581565b6009544211610a365760405162461bcd60e51b815260206004820181905260248201527f526166666c6520706572696f6420686173206e6f7420656e64656420796574216044820152606401610581565b600354610a855760405162461bcd60e51b815260206004820152601560248201527f4e6f20706c617965727320696e20726166666c652e00000000000000000000006044820152606401610581565b600b546003541015610aff5760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f75676820706c617965727320746f2073656c6563742077696e60448201527f6e6572732e0000000000000000000000000000000000000000000000000000006064820152608401610581565b610b07610ec4565b61069f6001600055565b60075460ff16610b635760405162461bcd60e51b815260206004820152601660248201527f526166666c65206973206e6f7420737461727465642e000000000000000000006044820152606401610581565b3360009081526002602052604090205460ff1615610be95760405162461bcd60e51b815260206004820152602a60248201527f596f75206861766520616c726561647920636c61696d656420796f757220667260448201527f6565207469636b65742e000000000000000000000000000000000000000000006064820152608401610581565b6003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff1916339081179091556000908152600260205260408120805460ff191683179055600a8054909190610c619084906112de565b9091555050600a5460405190815233907f9d5cf8d6fc62210bab9630b8d613c1b63d9cfe0e0d2d70dda538d69c7e4f37ba9060200160405180910390a2610ca66104c5565b158015610cb75750600b5460035410155b1561069f5761069f610ec4565b600060095442101580610cda575060075460ff16155b15610ce55750600090565b600042600954610cf59190611284565b9050610537610e10826112b3565b6001546001600160a01b03163314610d4b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b6044820152606401610581565b610d53610db3565b60003411610b075760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974206d7573742062652067726561746572207468616e203000006044820152606401610581565b6003818154811061046357600080fd5b600260005403610e055760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610581565b6002600055565b6007805460ff1916905560005b600354811015610e785760006002600060038481548110610e3c57610e3c611258565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101610e19565b50610e85600360006111b1565b60006008819055600a8190556040517f502fd88d3ee98597d4546d25e71901684f153dccc5308b79f0f9ad3c660537a69190a161069f600560006111b1565b6000600b54600854610ed691906112b3565b905060005b600b54811015611052576003546040805142602080830191909152448284015260608083018590528351808403909101815260809092019092528051910120600091610f26916112f1565b9050600060038281548110610f3d57610f3d611258565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169182179055604051909250829186156108fc02918791818181858888f19350505050158015610fce573d6000803e3d6000fd5b506001600160a01b0381166000908152600660205260408120805460019290610ff89084906112de565b9091555050604080516001600160a01b0383168152602081018690527f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb910160405180910390a16110488261105e565b5050600101610edb565b5061105b610e0c565b50565b600354811061106a5750565b6000600260006003848154811061108357611083611258565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600380546110c790600190611284565b815481106110d7576110d7611258565b600091825260209091200154600380546001600160a01b03909216918390811061110357611103611258565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600460006003848154811061114957611149611258565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600380548061117f5761117f611305565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905550565b508054600082559060005260206000209081019061105b91905b808211156111df57600081556001016111cb565b5090565b6000602082840312156111f557600080fd5b5035919050565b60006020828403121561120e57600080fd5b81356001600160a01b038116811461122557600080fd5b9392505050565b60008060006060848603121561124157600080fd5b505081359360208301359350604090920135919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156112975761129761126e565b92915050565b634e487b7160e01b600052601260045260246000fd5b6000826112c2576112c261129d565b500490565b80820281158282048414176112975761129761126e565b808201808211156112975761129761126e565b6000826113005761130061129d565b500690565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220c218ad9afc0a9048780c106aa6dd5133a30512ddc19763840e9ca6feb53cbcda64736f6c63430008180033

Block Transaction Gas Used Reward
view all blocks sequenced

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
[ 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.