ETH Price: $2,634.71 (+7.99%)
Gas: 0.16 GWei

Contract

0x2FC10C6E60af1E1C4d18e33337Fc8d8062D73A7B

Overview

ETH Balance

Scroll LogoScroll LogoScroll Logo0 ETH

ETH Value

$0.00

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Withdraw Funds100456062024-10-10 19:22:363 days ago1728588156IN
0x2FC10C6E...062D73A7B
0 ETH0.000006380.04113891
Get Free Ticket100448382024-10-10 18:44:473 days ago1728585887IN
0x2FC10C6E...062D73A7B
0 ETH0.000019370.04199045
Get Free Ticket100046942024-10-09 10:16:395 days ago1728468999IN
0x2FC10C6E...062D73A7B
0 ETH0.000008710.04120437
Get Free Ticket100046842024-10-09 10:16:115 days ago1728468971IN
0x2FC10C6E...062D73A7B
0 ETH0.000009020.04131789
Get Free Ticket100016602024-10-09 7:50:195 days ago1728460219IN
0x2FC10C6E...062D73A7B
0 ETH0.00000810.04888417
Get Free Ticket100016372024-10-09 7:49:125 days ago1728460152IN
0x2FC10C6E...062D73A7B
0 ETH0.00000770.04082683
Get Free Ticket99797192024-10-08 13:52:506 days ago1728395570IN
0x2FC10C6E...062D73A7B
0 ETH0.000016240.04841587
Get Free Ticket98904162024-10-05 11:51:199 days ago1728129079IN
0x2FC10C6E...062D73A7B
0 ETH0.00000620.04588457
Get Free Ticket98660872024-10-04 15:40:1110 days ago1728056411IN
0x2FC10C6E...062D73A7B
0 ETH0.00000840.04111002
Get Free Ticket98576522024-10-04 8:43:5810 days ago1728031438IN
0x2FC10C6E...062D73A7B
0 ETH0.00000580.04003515
Start Raffle98360252024-10-03 14:47:3011 days ago1727966850IN
0x2FC10C6E...062D73A7B
0 ETH0.00000950.04167007
Get Free Ticket98154412024-10-02 21:51:3711 days ago1727905897IN
0x2FC10C6E...062D73A7B
0 ETH0.00001980.06034645
Get Free Ticket98154322024-10-02 21:51:1011 days ago1727905870IN
0x2FC10C6E...062D73A7B
0 ETH0.00000660.06044089
Get Free Ticket98153992024-10-02 21:49:3111 days ago1727905771IN
0x2FC10C6E...062D73A7B
0 ETH0.000006890.06308505
Get Free Ticket98153942024-10-02 21:49:1611 days ago1727905756IN
0x2FC10C6E...062D73A7B
0 ETH0.000006990.06292655
Get Free Ticket98153872024-10-02 21:48:5511 days ago1727905735IN
0x2FC10C6E...062D73A7B
0 ETH0.000006990.06293877
Get Free Ticket98153402024-10-02 21:46:3411 days ago1727905594IN
0x2FC10C6E...062D73A7B
0 ETH0.000009520.06506393
Start Raffle98147862024-10-02 21:19:0411 days ago1727903944IN
0x2FC10C6E...062D73A7B
0 ETH0.000012050.06872252
Get Free Ticket97851152024-10-01 20:59:2612 days ago1727816366IN
0x2FC10C6E...062D73A7B
0 ETH0.000036550.10139779
Get Free Ticket97848992024-10-01 20:48:5312 days ago1727815733IN
0x2FC10C6E...062D73A7B
0 ETH0.000015960.12405682
Get Free Ticket97848932024-10-01 20:48:3512 days ago1727815715IN
0x2FC10C6E...062D73A7B
0 ETH0.00001590.12341335
Get Free Ticket97848852024-10-01 20:48:1112 days ago1727815691IN
0x2FC10C6E...062D73A7B
0 ETH0.000015910.12351473
Get Free Ticket97848832024-10-01 20:48:0512 days ago1727815685IN
0x2FC10C6E...062D73A7B
0 ETH0.000015910.12351473
Get Free Ticket97848682024-10-01 20:47:2012 days ago1727815640IN
0x2FC10C6E...062D73A7B
0 ETH0.000020160.12046654
Start Raffle97848482024-10-01 20:46:2012 days ago1727815580IN
0x2FC10C6E...062D73A7B
0 ETH0.000028650.12521507
View all transactions

Latest 10 internal transactions

Parent Transaction Hash Block From To
100456062024-10-10 19:22:363 days ago1728588156
0x2FC10C6E...062D73A7B
0.0048 ETH
100448382024-10-10 18:44:473 days ago1728585887
0x2FC10C6E...062D73A7B
0.002 ETH
100448382024-10-10 18:44:473 days ago1728585887
0x2FC10C6E...062D73A7B
0.003 ETH
100448382024-10-10 18:44:473 days ago1728585887
0x2FC10C6E...062D73A7B
0.005 ETH
98154412024-10-02 21:51:3711 days ago1727905897
0x2FC10C6E...062D73A7B
0.00002 ETH
98154412024-10-02 21:51:3711 days ago1727905897
0x2FC10C6E...062D73A7B
0.00003 ETH
98154412024-10-02 21:51:3711 days ago1727905897
0x2FC10C6E...062D73A7B
0.00005 ETH
97851152024-10-01 20:59:2612 days ago1727816366
0x2FC10C6E...062D73A7B
0.00002 ETH
97851152024-10-01 20:59:2612 days ago1727816366
0x2FC10C6E...062D73A7B
0.00003 ETH
97851152024-10-01 20:59:2612 days ago1727816366
0x2FC10C6E...062D73A7B
0.00005 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FreeTimerOnChainWin3Winner

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 1000 runs

Other Settings:
paris EvmVersion
File 1 of 2 : FreeT3.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 FreeTimerOnChainWin3Winner 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 firstPrizePercentage;
    uint256 public secondPrizePercentage;
    uint256 public thirdPrizePercentage;
    uint256 private raffleStartDuration;

    event NewEntry(address indexed player, uint256 numberOfEntries);
    event RaffleStarted(
        uint256 prizeAmount,
        uint256 endTime,
        uint256 firstPrizePercentage,
        uint256 secondPrizePercentage,
        uint256 thirdPrizePercentage
    );
    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 _firstPrizePercentage,
        uint256 _secondPrizePercentage,
        uint256 _thirdPrizePercentage
    ) 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(
            _firstPrizePercentage +
                _secondPrizePercentage +
                _thirdPrizePercentage ==
                100,
            "Total percentage should equal 100."
        );

        prizeAmount = _prizeAmount;
        firstPrizePercentage = _firstPrizePercentage;
        secondPrizePercentage = _secondPrizePercentage;
        thirdPrizePercentage = _thirdPrizePercentage;
        raffleStatus = true;
        raffleEndTime = block.timestamp + (_duration * 1 minutes);
        raffleStartDuration = _duration;
        emit RaffleStarted(
            _prizeAmount,
            raffleEndTime,
            _firstPrizePercentage,
            _secondPrizePercentage,
            _thirdPrizePercentage
        );
    }

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

        if (players.length < 5 && getRemainingTimeSec() == 0) {
            players.push(msg.sender);
            hasEntered[msg.sender] = true;
            ticketsSoldThisRound += 1;
            emit NewEntry(msg.sender, ticketsSoldThisRound);
        } else {
            players.push(msg.sender);
            hasEntered[msg.sender] = true;
            ticketsSoldThisRound += 1;
            emit NewEntry(msg.sender, ticketsSoldThisRound);

            if (getRemainingTimeSec() == 0) {
                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 > 3, "We need minimum 3 people.");

        selectWinners();
    }

    function selectWinners() private {
        uint256 firstPrizeAmount = (prizeAmount * firstPrizePercentage) / 100;
        uint256 secondPrizeAmount = (prizeAmount * secondPrizePercentage) / 100;
        uint256 thirdPrizeAmount = (prizeAmount * thirdPrizePercentage) / 100;

        address winner;
        uint256 winnerIndex;

        winnerIndex = random() % players.length;
        winner = players[winnerIndex];
        winnerAddresses.push(winner);
        payable(winner).transfer(firstPrizeAmount);
        winnerWins[winner] += 1;
        removePlayer(winnerIndex);

        winnerIndex = random() % players.length;
        winner = players[winnerIndex];
        winnerAddresses.push(winner);
        payable(winner).transfer(secondPrizeAmount);
        winnerWins[winner] += 1;
        removePlayer(winnerIndex);

        winnerIndex = random() % players.length;
        winner = players[winnerIndex];
        winnerAddresses.push(winner);
        payable(winner).transfer(thirdPrizeAmount);
        winnerWins[winner] += 1;
        removePlayer(winnerIndex);

        emit WinnerSelected(winnerAddresses[0], firstPrizeAmount);
        emit WinnerSelected(winnerAddresses[1], secondPrizeAmount);
        emit WinnerSelected(winnerAddresses[2], thirdPrizeAmount);

        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;
        firstPrizePercentage = 0;
        secondPrizePercentage = 0;
        thirdPrizePercentage = 0;
        emit RaffleEnded();
    }

    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":"firstPrizePercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"secondPrizePercentage","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"thirdPrizePercentage","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":"firstPrizePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":[],"name":"secondPrizePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_prizeAmount","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"},{"internalType":"uint256","name":"_firstPrizePercentage","type":"uint256"},{"internalType":"uint256","name":"_secondPrizePercentage","type":"uint256"},{"internalType":"uint256","name":"_thirdPrizePercentage","type":"uint256"}],"name":"startRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"thirdPrizePercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"}]

608060405234801561001057600080fd5b506001600081815581546001600160a01b03191633179091556007805460ff19169055600a55611784806100456000396000f3fe6080604052600436106101a15760003560e01c8063785fa627116100e1578063c13168881161008a578063e037f88911610064578063e037f88914610442578063e227dbe71461044a578063f71d96cb14610460578063fabc71fb1461048057600080fd5b8063c1316888146103fd578063ccfa213e14610413578063ceeca9841461042d57600080fd5b806397349a95116100bb57806397349a95146103bd5780639819ae5b146103d3578063adc1ce8d146103e857600080fd5b8063785fa6271461035a5780638da5cb5b14610370578063916287951461039057600080fd5b806324600fc31161014e57806355af8da51161012857806355af8da5146102fd5780635b4329971461031d5780635c0ee556146103325780636f9fb98a1461034757600080fd5b806324600fc31461028657806324d70dea1461029057806335abbbf3146102d057600080fd5b806318a32e701161017f57806318a32e70146102465780631c0694f71461025c5780631da7aa361461027157600080fd5b806303e1be32146101a6578063045f9c97146101cf5780630609ff6714610207575b600080fd5b3480156101b257600080fd5b506101bc600a5481565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101ef6101ea366004611607565b610495565b6040516001600160a01b0390911681526020016101c6565b34801561021357600080fd5b50610227610222366004611607565b6104bf565b604080516001600160a01b0390931683526020830191909152016101c6565b34801561025257600080fd5b506101bc60095481565b34801561026857600080fd5b506101bc610507565b34801561027d57600080fd5b506101bc61053b565b61028e61057f565b005b34801561029c57600080fd5b506102c06102ab366004611620565b60026020526000908152604090205460ff1681565b60405190151581526020016101c6565b3480156102dc57600080fd5b506101bc6102eb366004611620565b60066020526000908152604090205481565b34801561030957600080fd5b5061028e610318366004611650565b6106e3565b34801561032957600080fd5b5061028e610963565b34801561033e57600080fd5b5061028e6109b3565b34801561035357600080fd5b50476101bc565b34801561036657600080fd5b506101bc60085481565b34801561037c57600080fd5b506001546101ef906001600160a01b031681565b34801561039c57600080fd5b506101bc6103ab366004611620565b60046020526000908152604090205481565b3480156103c957600080fd5b506101bc600c5481565b3480156103df57600080fd5b5061028e610b58565b3480156103f457600080fd5b506101bc610db5565b34801561040957600080fd5b506101bc600b5481565b34801561041f57600080fd5b506007546102c09060ff1681565b34801561043957600080fd5b506005546101bc565b61028e610df4565b34801561045657600080fd5b506101bc600d5481565b34801561046c57600080fd5b506101ef61047b366004611607565b610e94565b34801561048c57600080fd5b50600e546101bc565b600581815481106104a557600080fd5b6000918252602090912001546001600160a01b0316905081565b6000806000600584815481106104d7576104d761168b565b60009182526020808320909101546001600160a01b03168083526006909152604090912054909590945092505050565b60006009544210158061051d575060075460ff16155b156105285750600090565b4260095461053691906116b7565b905090565b600060095442101580610551575060075460ff16155b1561055c5750600090565b60004260095461056c91906116b7565b9050610579603c826116e6565b91505090565b6001546001600160a01b031633146105cc5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064015b60405180910390fd5b6105d4610ea4565b60075460ff161561064d5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f74207769746864726177206265666f726520726166666c6520686160448201527f7320656e6465642e00000000000000000000000000000000000000000000000060648201526084016105c3565b6000471161069d5760405162461bcd60e51b815260206004820152601460248201527f4e6f2066756e647320746f20776974686472617700000000000000000000000060448201526064016105c3565b6001546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156106d6573d6000803e3d6000fd5b506106e16001600055565b565b6001546001600160a01b0316331461072b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b60075460ff161561077e5760405162461bcd60e51b815260206004820152601760248201527f526166666c6520616c726561647920737461727465642e00000000000000000060448201526064016105c3565b600085116107f35760405162461bcd60e51b8152602060048201526024808201527f5072697a6520616d6f756e74206d75737420626520677265617465722074686160448201527f6e2030210000000000000000000000000000000000000000000000000000000060648201526084016105c3565b478511156108435760405162461bcd60e51b815260206004820152601360248201527f4e6f7420656e6f7567682062616c616e6365210000000000000000000000000060448201526064016105c3565b8061084e83856116fa565b61085891906116fa565b6064146108cd5760405162461bcd60e51b815260206004820152602260248201527f546f74616c2070657263656e746167652073686f756c6420657175616c20313060448201527f302e00000000000000000000000000000000000000000000000000000000000060648201526084016105c3565b6008859055600b839055600c829055600d8190556007805460ff191660011790556108f984603c61170d565b61090390426116fa565b6009819055600e859055604080518781526020810192909252810184905260608101839052608081018290527fbf097cbc9989ae63271154be486981752d24f13a9d65ba62035e939dd027178f9060a00160405180910390a15050505050565b6001546001600160a01b031633146109ab5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b6106e1610efd565b6001546001600160a01b031633146109fb5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b610a03610ea4565b60075460ff16610a555760405162461bcd60e51b815260206004820152601a60248201527f526166666c65206973206e6f742073746172746564207965742e00000000000060448201526064016105c3565b6009544211610aa65760405162461bcd60e51b815260206004820181905260248201527f526166666c6520706572696f6420686173206e6f7420656e646564207965742160448201526064016105c3565b600354610af55760405162461bcd60e51b815260206004820152601560248201527f4e6f20706c617965727320696e20726166666c652e000000000000000000000060448201526064016105c3565b6003805411610b465760405162461bcd60e51b815260206004820152601960248201527f5765206e656564206d696e696d756d20332070656f706c652e0000000000000060448201526064016105c3565b610b4e610fba565b6106e16001600055565b60075460ff16610baa5760405162461bcd60e51b815260206004820152601660248201527f526166666c65206973206e6f7420737461727465642e0000000000000000000060448201526064016105c3565b3360009081526002602052604090205460ff1615610c305760405162461bcd60e51b815260206004820152602a60248201527f596f75206861766520616c726561647920636c61696d656420796f757220667260448201527f6565207469636b65742e0000000000000000000000000000000000000000000060648201526084016105c3565b6003546005118015610c475750610c45610507565b155b15610cf6576003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916339081179091556000908152600260205260408120805460ff191683179055600a8054909190610cb79084906116fa565b9091555050600a5460405190815233907f9d5cf8d6fc62210bab9630b8d613c1b63d9cfe0e0d2d70dda538d69c7e4f37ba9060200160405180910390a2565b6003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916339081179091556000908152600260205260408120805460ff191683179055600a8054909190610d619084906116fa565b9091555050600a5460405190815233907f9d5cf8d6fc62210bab9630b8d613c1b63d9cfe0e0d2d70dda538d69c7e4f37ba9060200160405180910390a2610da6610507565b6000036106e1576106e1610fba565b600060095442101580610dcb575060075460ff16155b15610dd65750600090565b600042600954610de691906116b7565b9050610579610e10826116e6565b6001546001600160a01b03163314610e3c5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b610e44610ea4565b60003411610b4e5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974206d7573742062652067726561746572207468616e2030000060448201526064016105c3565b600381815481106104a557600080fd5b600260005403610ef65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c3565b6002600055565b6007805460ff1916905560005b600354811015610f695760006002600060038481548110610f2d57610f2d61168b565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101610f0a565b50610f76600360006115cd565b60006008819055600a819055600b819055600c819055600d8190556040517f502fd88d3ee98597d4546d25e71901684f153dccc5308b79f0f9ad3c660537a69190a1565b60006064600b54600854610fce919061170d565b610fd891906116e6565b905060006064600c54600854610fee919061170d565b610ff891906116e6565b905060006064600d5460085461100e919061170d565b61101891906116e6565b6003546040805142602080830191909152448284015260608083018590528351808403909101815260809092019092528051910120919250600091829161105e91611724565b9050600381815481106110735761107361168b565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039092169182179055604051909350839187156108fc02918891818181858888f193505050501580156110f7573d6000803e3d6000fd5b506001600160a01b03821660009081526006602052604081208054600192906111219084906116fa565b90915550611130905081611487565b600354604080514260208083019190915244828401526060808301859052835180840390910181526080909201909252805191012061116f9190611724565b9050600381815481106111845761118461168b565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039092169182179055604051909350839186156108fc02918791818181858888f19350505050158015611208573d6000803e3d6000fd5b506001600160a01b03821660009081526006602052604081208054600192906112329084906116fa565b90915550611241905081611487565b60035460408051426020808301919091524482840152606080830185905283518084039091018152608090920190925280519101206112809190611724565b9050600381815481106112955761129561168b565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039092169182179055604051909350839185156108fc02918691818181858888f19350505050158015611319573d6000803e3d6000fd5b506001600160a01b03821660009081526006602052604081208054600192906113439084906116fa565b90915550611352905081611487565b7f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb60056000815481106113875761138761168b565b60009182526020918290200154604080516001600160a01b0390921682529181018890520160405180910390a17f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb60056001815481106113e9576113e961168b565b60009182526020918290200154604080516001600160a01b0390921682529181018790520160405180910390a17f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb600560028154811061144b5761144b61168b565b60009182526020918290200154604080516001600160a01b0390921682529181018690520160405180910390a1611480610efd565b5050505050565b60035481106114935750565b600060026000600384815481106114ac576114ac61168b565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600380546114f0906001906116b7565b815481106115005761150061168b565b600091825260209091200154600380546001600160a01b03909216918390811061152c5761152c61168b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060046000600384815481106115725761157261168b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806115a8576115a8611738565b600082815260209020810160001990810180546001600160a01b031916905501905550565b50805460008255906000526020600020908101906115eb91906115ee565b50565b5b8082111561160357600081556001016115ef565b5090565b60006020828403121561161957600080fd5b5035919050565b60006020828403121561163257600080fd5b81356001600160a01b038116811461164957600080fd5b9392505050565b600080600080600060a0868803121561166857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156116ca576116ca6116a1565b92915050565b634e487b7160e01b600052601260045260246000fd5b6000826116f5576116f56116d0565b500490565b808201808211156116ca576116ca6116a1565b80820281158282048414176116ca576116ca6116a1565b600082611733576117336116d0565b500690565b634e487b7160e01b600052603160045260246000fdfea26469706673582212202cee243c08a30662ccf364d90e68368002bbc183601742e7b3b9aa3f276bfa7864736f6c63430008180033

Deployed Bytecode

0x6080604052600436106101a15760003560e01c8063785fa627116100e1578063c13168881161008a578063e037f88911610064578063e037f88914610442578063e227dbe71461044a578063f71d96cb14610460578063fabc71fb1461048057600080fd5b8063c1316888146103fd578063ccfa213e14610413578063ceeca9841461042d57600080fd5b806397349a95116100bb57806397349a95146103bd5780639819ae5b146103d3578063adc1ce8d146103e857600080fd5b8063785fa6271461035a5780638da5cb5b14610370578063916287951461039057600080fd5b806324600fc31161014e57806355af8da51161012857806355af8da5146102fd5780635b4329971461031d5780635c0ee556146103325780636f9fb98a1461034757600080fd5b806324600fc31461028657806324d70dea1461029057806335abbbf3146102d057600080fd5b806318a32e701161017f57806318a32e70146102465780631c0694f71461025c5780631da7aa361461027157600080fd5b806303e1be32146101a6578063045f9c97146101cf5780630609ff6714610207575b600080fd5b3480156101b257600080fd5b506101bc600a5481565b6040519081526020015b60405180910390f35b3480156101db57600080fd5b506101ef6101ea366004611607565b610495565b6040516001600160a01b0390911681526020016101c6565b34801561021357600080fd5b50610227610222366004611607565b6104bf565b604080516001600160a01b0390931683526020830191909152016101c6565b34801561025257600080fd5b506101bc60095481565b34801561026857600080fd5b506101bc610507565b34801561027d57600080fd5b506101bc61053b565b61028e61057f565b005b34801561029c57600080fd5b506102c06102ab366004611620565b60026020526000908152604090205460ff1681565b60405190151581526020016101c6565b3480156102dc57600080fd5b506101bc6102eb366004611620565b60066020526000908152604090205481565b34801561030957600080fd5b5061028e610318366004611650565b6106e3565b34801561032957600080fd5b5061028e610963565b34801561033e57600080fd5b5061028e6109b3565b34801561035357600080fd5b50476101bc565b34801561036657600080fd5b506101bc60085481565b34801561037c57600080fd5b506001546101ef906001600160a01b031681565b34801561039c57600080fd5b506101bc6103ab366004611620565b60046020526000908152604090205481565b3480156103c957600080fd5b506101bc600c5481565b3480156103df57600080fd5b5061028e610b58565b3480156103f457600080fd5b506101bc610db5565b34801561040957600080fd5b506101bc600b5481565b34801561041f57600080fd5b506007546102c09060ff1681565b34801561043957600080fd5b506005546101bc565b61028e610df4565b34801561045657600080fd5b506101bc600d5481565b34801561046c57600080fd5b506101ef61047b366004611607565b610e94565b34801561048c57600080fd5b50600e546101bc565b600581815481106104a557600080fd5b6000918252602090912001546001600160a01b0316905081565b6000806000600584815481106104d7576104d761168b565b60009182526020808320909101546001600160a01b03168083526006909152604090912054909590945092505050565b60006009544210158061051d575060075460ff16155b156105285750600090565b4260095461053691906116b7565b905090565b600060095442101580610551575060075460ff16155b1561055c5750600090565b60004260095461056c91906116b7565b9050610579603c826116e6565b91505090565b6001546001600160a01b031633146105cc5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064015b60405180910390fd5b6105d4610ea4565b60075460ff161561064d5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f74207769746864726177206265666f726520726166666c6520686160448201527f7320656e6465642e00000000000000000000000000000000000000000000000060648201526084016105c3565b6000471161069d5760405162461bcd60e51b815260206004820152601460248201527f4e6f2066756e647320746f20776974686472617700000000000000000000000060448201526064016105c3565b6001546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156106d6573d6000803e3d6000fd5b506106e16001600055565b565b6001546001600160a01b0316331461072b5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b60075460ff161561077e5760405162461bcd60e51b815260206004820152601760248201527f526166666c6520616c726561647920737461727465642e00000000000000000060448201526064016105c3565b600085116107f35760405162461bcd60e51b8152602060048201526024808201527f5072697a6520616d6f756e74206d75737420626520677265617465722074686160448201527f6e2030210000000000000000000000000000000000000000000000000000000060648201526084016105c3565b478511156108435760405162461bcd60e51b815260206004820152601360248201527f4e6f7420656e6f7567682062616c616e6365210000000000000000000000000060448201526064016105c3565b8061084e83856116fa565b61085891906116fa565b6064146108cd5760405162461bcd60e51b815260206004820152602260248201527f546f74616c2070657263656e746167652073686f756c6420657175616c20313060448201527f302e00000000000000000000000000000000000000000000000000000000000060648201526084016105c3565b6008859055600b839055600c829055600d8190556007805460ff191660011790556108f984603c61170d565b61090390426116fa565b6009819055600e859055604080518781526020810192909252810184905260608101839052608081018290527fbf097cbc9989ae63271154be486981752d24f13a9d65ba62035e939dd027178f9060a00160405180910390a15050505050565b6001546001600160a01b031633146109ab5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b6106e1610efd565b6001546001600160a01b031633146109fb5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b610a03610ea4565b60075460ff16610a555760405162461bcd60e51b815260206004820152601a60248201527f526166666c65206973206e6f742073746172746564207965742e00000000000060448201526064016105c3565b6009544211610aa65760405162461bcd60e51b815260206004820181905260248201527f526166666c6520706572696f6420686173206e6f7420656e646564207965742160448201526064016105c3565b600354610af55760405162461bcd60e51b815260206004820152601560248201527f4e6f20706c617965727320696e20726166666c652e000000000000000000000060448201526064016105c3565b6003805411610b465760405162461bcd60e51b815260206004820152601960248201527f5765206e656564206d696e696d756d20332070656f706c652e0000000000000060448201526064016105c3565b610b4e610fba565b6106e16001600055565b60075460ff16610baa5760405162461bcd60e51b815260206004820152601660248201527f526166666c65206973206e6f7420737461727465642e0000000000000000000060448201526064016105c3565b3360009081526002602052604090205460ff1615610c305760405162461bcd60e51b815260206004820152602a60248201527f596f75206861766520616c726561647920636c61696d656420796f757220667260448201527f6565207469636b65742e0000000000000000000000000000000000000000000060648201526084016105c3565b6003546005118015610c475750610c45610507565b155b15610cf6576003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916339081179091556000908152600260205260408120805460ff191683179055600a8054909190610cb79084906116fa565b9091555050600a5460405190815233907f9d5cf8d6fc62210bab9630b8d613c1b63d9cfe0e0d2d70dda538d69c7e4f37ba9060200160405180910390a2565b6003805460018181019092557fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b031916339081179091556000908152600260205260408120805460ff191683179055600a8054909190610d619084906116fa565b9091555050600a5460405190815233907f9d5cf8d6fc62210bab9630b8d613c1b63d9cfe0e0d2d70dda538d69c7e4f37ba9060200160405180910390a2610da6610507565b6000036106e1576106e1610fba565b600060095442101580610dcb575060075460ff16155b15610dd65750600090565b600042600954610de691906116b7565b9050610579610e10826116e6565b6001546001600160a01b03163314610e3c5760405162461bcd60e51b815260206004820152600b60248201526a253ab9ba1037bbb732b91760a91b60448201526064016105c3565b610e44610ea4565b60003411610b4e5760405162461bcd60e51b815260206004820152601e60248201527f4465706f736974206d7573742062652067726561746572207468616e2030000060448201526064016105c3565b600381815481106104a557600080fd5b600260005403610ef65760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016105c3565b6002600055565b6007805460ff1916905560005b600354811015610f695760006002600060038481548110610f2d57610f2d61168b565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101610f0a565b50610f76600360006115cd565b60006008819055600a819055600b819055600c819055600d8190556040517f502fd88d3ee98597d4546d25e71901684f153dccc5308b79f0f9ad3c660537a69190a1565b60006064600b54600854610fce919061170d565b610fd891906116e6565b905060006064600c54600854610fee919061170d565b610ff891906116e6565b905060006064600d5460085461100e919061170d565b61101891906116e6565b6003546040805142602080830191909152448284015260608083018590528351808403909101815260809092019092528051910120919250600091829161105e91611724565b9050600381815481106110735761107361168b565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039092169182179055604051909350839187156108fc02918891818181858888f193505050501580156110f7573d6000803e3d6000fd5b506001600160a01b03821660009081526006602052604081208054600192906111219084906116fa565b90915550611130905081611487565b600354604080514260208083019190915244828401526060808301859052835180840390910181526080909201909252805191012061116f9190611724565b9050600381815481106111845761118461168b565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039092169182179055604051909350839186156108fc02918791818181858888f19350505050158015611208573d6000803e3d6000fd5b506001600160a01b03821660009081526006602052604081208054600192906112329084906116fa565b90915550611241905081611487565b60035460408051426020808301919091524482840152606080830185905283518084039091018152608090920190925280519101206112809190611724565b9050600381815481106112955761129561168b565b6000918252602082200154600580546001810182559083527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319166001600160a01b039092169182179055604051909350839185156108fc02918691818181858888f19350505050158015611319573d6000803e3d6000fd5b506001600160a01b03821660009081526006602052604081208054600192906113439084906116fa565b90915550611352905081611487565b7f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb60056000815481106113875761138761168b565b60009182526020918290200154604080516001600160a01b0390921682529181018890520160405180910390a17f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb60056001815481106113e9576113e961168b565b60009182526020918290200154604080516001600160a01b0390921682529181018790520160405180910390a17f75060f9e79552df167b73353fee6237a75bb5ba8ea022f77224e32f152138bcb600560028154811061144b5761144b61168b565b60009182526020918290200154604080516001600160a01b0390921682529181018690520160405180910390a1611480610efd565b5050505050565b60035481106114935750565b600060026000600384815481106114ac576114ac61168b565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600380546114f0906001906116b7565b815481106115005761150061168b565b600091825260209091200154600380546001600160a01b03909216918390811061152c5761152c61168b565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060046000600384815481106115725761157261168b565b60009182526020808320909101546001600160a01b0316835282019290925260400190205560038054806115a8576115a8611738565b600082815260209020810160001990810180546001600160a01b031916905501905550565b50805460008255906000526020600020908101906115eb91906115ee565b50565b5b8082111561160357600081556001016115ef565b5090565b60006020828403121561161957600080fd5b5035919050565b60006020828403121561163257600080fd5b81356001600160a01b038116811461164957600080fd5b9392505050565b600080600080600060a0868803121561166857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156116ca576116ca6116a1565b92915050565b634e487b7160e01b600052601260045260246000fd5b6000826116f5576116f56116d0565b500490565b808201808211156116ca576116ca6116a1565b80820281158282048414176116ca576116ca6116a1565b600082611733576117336116d0565b500690565b634e487b7160e01b600052603160045260246000fdfea26469706673582212202cee243c08a30662ccf364d90e68368002bbc183601742e7b3b9aa3f276bfa7864736f6c63430008180033

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.