Abstract Testnet

Contract

0x231466FC5CbcdC443007d6d65704B1f662abA036

Overview

ETH Balance

0 ETH

Multichain Info

N/A
Transaction Hash
Method
Block
From
To

There are no matching entries

1 Internal Transaction found.

Latest 1 internal transaction

Parent Transaction Hash Block From To
60312962025-02-09 0:10:453 days ago1739059845  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RaffleContractTest

Compiler Version
v0.8.28+commit.7893614a

ZkSolc Version
v1.5.7

Optimization Enabled:
Yes with Mode 3

Other Settings:
cancun EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 2 : RaffleContractTest.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

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

contract RaffleContractTest is ReentrancyGuard {
    address public owner;
    uint256 public ticketPrice = 0.001 ether;
    bool public isOpen;
    bool public winnersAnnounced;
    bool public raffleCanceled; // New state for cancellation

    mapping(address => uint256) public ticketsBought;
    address[] public participants;
    mapping(address => bool) private hasParticipated;

    uint256 public totalTickets;

    event TicketPurchased(address indexed buyer, uint256 tickets);
    event LotteryOpened();
    event LotteryClosed();
    event FundsWithdrawn(uint256 amount);
    event TicketRefunded(address indexed user, uint256 amount);
    event WinnersPublished();
    event RaffleCanceled();

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

    constructor() {
        owner = msg.sender;
        isOpen = false;
        winnersAnnounced = false;
        raffleCanceled = false;
    }

    /// @notice Opens ticket sales
    function openLottery() external onlyOwner {
        require(!isOpen, "Lottery already open");
        require(!raffleCanceled, "Cannot open canceled raffle");

        isOpen = true;
        emit LotteryOpened();
    }

    /// @notice Closes ticket sales
    function closeLottery() external onlyOwner {
        require(isOpen, "Lottery not open");

        isOpen = false;
        emit LotteryClosed();
    }

    /// @notice Buys `_numTickets` tickets
    function buyTicket(uint256 _numTickets) external payable {
        require(isOpen, "Lottery not open");
        require(!raffleCanceled, "Raffle has been canceled");
        require(_numTickets > 0, "Must buy >= 1");
        require(msg.value == ticketPrice * _numTickets, "Wrong ETH amount");

        ticketsBought[msg.sender] += _numTickets;
        totalTickets += _numTickets;

        if (!hasParticipated[msg.sender]) {
            hasParticipated[msg.sender] = true;
            participants.push(msg.sender);
        }

        emit TicketPurchased(msg.sender, _numTickets);
    }

    /// @notice Allows the owner to change the ticket price
    function setTicketPrice(uint256 _newPrice) external onlyOwner {
        require(_newPrice > 0, "Price must be greater than zero");
        ticketPrice = _newPrice;
    }

    /// @notice Owner announces the winners
    function publishWinners() external onlyOwner {
        require(!isOpen, "Close lottery first");
        require(!winnersAnnounced, "Winners already announced");
        require(
            !raffleCanceled,
            "Cannot publish winners for a canceled raffle"
        );

        winnersAnnounced = true;
        emit WinnersPublished();
    }

    /// @notice Withdraw funds after winners are announced
    function withdrawFunds() external onlyOwner nonReentrant {
        require(!isOpen, "Close lottery first");
        require(winnersAnnounced, "Publish winners before withdrawing funds");
        require(address(this).balance > 0, "No funds to withdraw");
        require(!raffleCanceled, "Cannot withdraw from a canceled raffle");

        uint256 balance = address(this).balance;
        address payable recipient = payable(owner);

        (bool success, ) = recipient.call{value: balance}("");
        require(success, "Withdraw failed");

        // Reset ticket purchases
        for (uint i = 0; i < participants.length; i++) {
            ticketsBought[participants[i]] = 0;
        }
        totalTickets = 0;

        emit FundsWithdrawn(balance);
    }

    /// @notice Cancels the raffle, allowing refunds
    function cancelRaffle() external onlyOwner {
        require(!isOpen, "Cannot cancel an open raffle");
        require(!winnersAnnounced, "Cannot cancel after winners are announced");

        raffleCanceled = true;
        emit RaffleCanceled();
    }

    /// @notice Allows participants to claim a refund
    function claimRefund() external nonReentrant {
        require(raffleCanceled, "Raffle is not canceled");
        require(ticketsBought[msg.sender] > 0, "No tickets to refund");

        uint256 refundAmount = ticketsBought[msg.sender] * ticketPrice;
        ticketsBought[msg.sender] = 0;

        (bool success, ) = payable(msg.sender).call{value: refundAmount}("");
        require(success, "Refund failed");

        emit TicketRefunded(msg.sender, refundAmount);
    }

    /// @notice Returns the total number of tickets sold
    function getTotalTickets() external view returns (uint256) {
        return totalTickets;
    }

    /// @notice Returns the number of tickets purchased by a user
    function getUserTickets(address _user) external view returns (uint256) {
        return ticketsBought[_user];
    }

    /// @notice Returns the total number of unique participants
    function getParticipantCount() external view returns (uint256) {
        return participants.length;
    }

    /// @notice Returns the list of all participants
    function getAllParticipants() external view returns (address[] memory) {
        return participants;
    }

    /// @notice Prevents accidental ETH deposits
    receive() external payable {
        revert("Direct ETH transfers not allowed");
    }

    fallback() external payable {
        revert("Invalid function call");
    }
}

File 2 of 2 : ReentrancyGuard.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)

pragma solidity ^0.8.20;

/**
 * @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 EIP-1153 (transient storage) is available on the chain you're deploying at,
 * consider using {ReentrancyGuardTransient} instead.
 *
 * 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;

    /**
     * @dev Unauthorized reentrant call.
     */
    error ReentrancyGuardReentrantCall();

    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
        if (_status == ENTERED) {
            revert ReentrancyGuardReentrantCall();
        }

        // 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
{
  "viaIR": false,
  "codegen": "yul",
  "remappings": [
    "@openzeppelin/=lib/openzeppelin-contracts/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "evmVersion": "cancun",
  "outputSelection": {
    "*": {
      "*": [
        "abi",
        "metadata"
      ],
      "": [
        "ast"
      ]
    }
  },
  "optimizer": {
    "enabled": true,
    "mode": "3",
    "fallback_to_optimizing_for_size": false,
    "disable_system_request_memoization": true
  },
  "metadata": {},
  "libraries": {},
  "enableEraVMExtensions": false,
  "forceEVMLA": false
}

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FundsWithdrawn","type":"event"},{"anonymous":false,"inputs":[],"name":"LotteryClosed","type":"event"},{"anonymous":false,"inputs":[],"name":"LotteryOpened","type":"event"},{"anonymous":false,"inputs":[],"name":"RaffleCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"buyer","type":"address"},{"indexed":false,"internalType":"uint256","name":"tickets","type":"uint256"}],"name":"TicketPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TicketRefunded","type":"event"},{"anonymous":false,"inputs":[],"name":"WinnersPublished","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"uint256","name":"_numTickets","type":"uint256"}],"name":"buyTicket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"cancelRaffle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRefund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"closeLottery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllParticipants","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getParticipantCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getUserTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openLottery","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"participants","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publishWinners","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"raffleCanceled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","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":"","type":"address"}],"name":"ticketsBought","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTickets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winnersAnnounced","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

9c4d535b00000000000000000000000000000000000000000000000000000000000000000100016ba2ec20a567ed3068370d604aad8e132071f23f4f3b440002d3835ed100000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x0002000000000002000300000000000200000060031002700000010d0330019700010000003103550000008004000039000000400040043f0000000100200190000000260000c13d000000040030008c0000003c0000413d000000000201043b000000e002200270000001150020009c000000470000213d000001230020009c0000005a0000213d0000012a0020009c000000880000a13d0000012b0020009c000000eb0000613d0000012c0020009c000000f30000613d0000012d0020009c000000d30000c13d0000000001000416000000000001004b000003d80000c13d0000000502000039000000000102041a000000800010043f000000000020043f0000002002000039000000000001004b000001a10000c13d000000a0010000390000000004020019000002100000013d0000000001000416000000000001004b000003d80000c13d0000000101000039000000000010041b0000010e020000410000000203000039000000000023041b000000000201041a0000010f022001970000000003000411000000000232019f000000000021041b0000000301000039000000000201041a0000011002200197000000000021041b00000020010000390000010000100443000001200000044300000111010000410000042f0001042e000000000003004b000000d30000c13d0000011201000041000000800010043f0000002001000039000000840010043f000000a40010043f0000011301000041000000c40010043f00000114010000410000043000010430000001160020009c0000007f0000213d0000011d0020009c000000910000a13d0000011e0020009c0000010c0000613d0000011f0020009c000000dd0000613d000001200020009c000000d30000c13d0000000001000416000000000001004b000003d80000c13d0000000101000039000000000101041a0000013b01100197000000800010043f00000131010000410000042f0001042e000001240020009c000000ad0000a13d000001250020009c000001270000613d000001260020009c0000012e0000613d000001270020009c000000d30000c13d0000000001000416000000000001004b000003d80000c13d0000000101000039000000000101041a0000013b011001970000000002000411000000000012004b000001970000c13d0000000301000039000000000201041a000000ff00200190000001fb0000c13d0000ff0000200190000002330000c13d0000013000200198000002ae0000c13d000001660220019700000100022001bf000000000021041b00000000010004140000010d0010009c0000010d01008041000000c00110021000000133011001c70000800d0200003900000001030000390000015204000041000001920000013d000001170020009c000000ca0000a13d000001180020009c000001350000613d000001190020009c0000014b0000613d0000011a0020009c0000008c0000613d000000d30000013d0000012e0020009c000000dd0000613d0000012f0020009c000000d30000c13d0000000001000416000000000001004b000003d80000c13d0000000701000039000000ef0000013d000001210020009c000001560000613d000001220020009c000000d30000c13d0000000001000416000000000001004b000003d80000c13d0000000101000039000000000101041a0000013b011001970000000002000411000000000012004b000001970000c13d0000000301000039000000000201041a000000ff002001900000015e0000613d0000016702200197000000000021041b00000000010004140000010d0010009c0000010d01008041000000c00110021000000133011001c70000800d0200003900000001030000390000014604000041000001920000013d000001280020009c000001680000613d000001290020009c000000d30000c13d000000240030008c000003d80000413d0000000002000416000000000002004b000003d80000c13d0000000401100370000000000101043b0000000502000039000000000202041a000000000021004b000003d80000813d042e04080000040f0000000302200210000000000101041a000000000121022f0000013b01100197000000ff0020008c0000000001002019000000400200043d00000000001204350000010d0020009c0000010d02008041000000400120021000000153011001c70000042f0001042e0000011b0020009c000001780000613d0000011c0020009c000000d30000c13d0000000001000416000000000001004b000003d80000c13d0000000501000039000000ef0000013d0000011201000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000016501000041000000c40010043f00000114010000410000043000010430000000240030008c000003d80000413d0000000002000416000000000002004b000003d80000c13d0000000401100370000000000101043b0000013b0010009c000003d80000213d000000000010043f0000000401000039000000200010043f042e04170000040f000000ef0000013d0000000001000416000000000001004b000003d80000c13d0000000201000039000000000101041a000000800010043f00000131010000410000042f0001042e000000240030008c000003d80000413d0000000002000416000000000002004b000003d80000c13d0000000401100370000000000101043b0000000102000039000000000202041a0000013b022001970000000003000411000000000023004b000001970000c13d000000000001004b000001c40000c13d0000011201000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000016401000041000000c40010043f000001140100004100000430000104300000000001000416000000000001004b000003d80000c13d0000000101000039000000000101041a0000013b011001970000000002000411000000000012004b000001970000c13d0000000301000039000000000201041a000000ff00200190000001c80000c13d0000ff00002001900000023d0000c13d000001430220019700000144022001c7000000000021041b00000000010004140000010d0010009c0000010d01008041000000c00110021000000133011001c70000800d0200003900000001030000390000014504000041000001920000013d0000000001000416000000000001004b000003d80000c13d0000000301000039000000000101041a000000ff00100190000001510000013d0000000001000416000000000001004b000003d80000c13d0000000301000039000000000101041a0000ff0000100190000001510000013d0000000001000416000000000001004b000003d80000c13d000000000100041a000000020010008c000001740000613d0000000201000039000000000010041b0000000301000039000000000101041a0000013000100198000001d20000c13d0000011201000041000000800010043f0000002001000039000000840010043f0000001601000039000000a40010043f0000013a01000041000000c40010043f000001140100004100000430000104300000000001000416000000000001004b000003d80000c13d0000000301000039000000000101041a00000130001001980000000001000039000000010100c039000000800010043f00000131010000410000042f0001042e000000240030008c000003d80000413d0000000401100370000000000301043b0000000301000039000000000101041a000000ff00100190000001b60000c13d0000011201000041000000800010043f0000002001000039000000840010043f0000001001000039000000a40010043f0000014e01000041000000c40010043f000001140100004100000430000104300000000001000416000000000001004b000003d80000c13d0000000103000039000000000103041a0000013b011001970000000002000411000000000012004b000001970000c13d000000000100041a000000020010008c000001e70000c13d0000015f01000041000000000010043f000001600100004100000430000104300000000001000416000000000001004b000003d80000c13d0000000101000039000000000101041a0000013b011001970000000002000411000000000012004b000001970000c13d0000000301000039000000000201041a000000ff00200190000002050000c13d0000013000200198000002490000c13d000001670220019700000001022001bf000000000021041b00000000010004140000010d0010009c0000010d01008041000000c00110021000000133011001c70000800d0200003900000001030000390000013e04000041042e04240000040f0000000100200190000003d80000613d00000000010000190000042f0001042e0000011201000041000000800010043f0000002001000039000000840010043f0000000901000039000000a40010043f0000016301000041000000c40010043f00000114010000410000043000010430000000a005000039000001610300004100000000040000190000000006050019000000000503041a0000013b05500197000000000556043600000001033000390000000104400039000000000014004b000001a40000413d000000410160008a0000016804100197000001620040009c0000020f0000413d0000014b01000041000000000010043f0000004101000039000000040010043f0000014c0100004100000430000104300000013000100198000002290000c13d000000000003004b000002530000c13d0000011201000041000000800010043f0000002001000039000000840010043f0000000d01000039000000a40010043f0000014d01000041000000c40010043f000001140100004100000430000104300000000202000039000000000012041b00000000010000190000042f0001042e0000011201000041000000800010043f0000002001000039000000840010043f0000001c01000039000000a40010043f0000013f01000041000000c40010043f000001140100004100000430000104300000000001000411000000000010043f0000000401000039000000200010043f00000000010004140000010d0010009c0000010d01008041000000c00110021000000132011001c70000801002000039042e04290000040f0000000100200190000003d80000613d000000000101043b000000000101041a000000000001004b000002ba0000c13d000000400100043d00000044021000390000013903000041000002ec0000013d0000000201000039000000000010041b0000000301000039000000000101041a000000ff00100190000001fb0000c13d0000ff0000100190000002d70000c13d0000011201000041000000800010043f0000002001000039000000840010043f0000002801000039000000a40010043f0000015d01000041000000c40010043f0000015e01000041000000e40010043f000001420100004100000430000104300000011201000041000000800010043f0000002001000039000000840010043f0000001301000039000000a40010043f0000015401000041000000c40010043f000001140100004100000430000104300000011201000041000000800010043f0000002001000039000000840010043f0000001401000039000000a40010043f0000013c01000041000000c40010043f000001140100004100000430000104300000008001400039000000400010043f0000000000210435000000a002400039000000800300043d0000000000320435000000c002400039000000000003004b000002200000613d000000a004000039000000000500001900000000460404340000013b0660019700000000026204360000000105500039000000000035004b0000021a0000413d00000000021200490000010d0020009c0000010d0200804100000060022002100000010d0010009c0000010d010080410000004001100210000000000112019f0000042f0001042e0000011201000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000014701000041000000c40010043f000001140100004100000430000104300000011201000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f0000014f01000041000000c40010043f000001140100004100000430000104300000011201000041000000800010043f0000002001000039000000840010043f0000002901000039000000a40010043f0000014001000041000000c40010043f0000014101000041000000e40010043f000001420100004100000430000104300000011201000041000000800010043f0000002001000039000000840010043f0000001b01000039000000a40010043f0000013d01000041000000c40010043f000001140100004100000430000104300000000201000039000000000201041a00000000013200a9000000000002004b0000025b0000613d00000000022100d9000000000032004b000002fa0000c13d0000000002000416000000000012004b000003000000c13d000300000003001d0000000001000411000000000010043f0000000401000039000000200010043f00000000010004140000010d0010009c0000010d01008041000000c00110021000000132011001c70000801002000039042e04290000040f0000000100200190000003d80000613d000000000101043b000000000201041a0000000303000029000000000032001a000002fa0000413d0000000002320019000000000021041b0000000701000039000000000201041a000000000032001a000002fa0000413d0000000002320019000000000021041b0000000001000411000000000010043f0000000601000039000000200010043f00000000010004140000010d0010009c0000010d01008041000000c00110021000000132011001c70000801002000039042e04290000040f0000000100200190000003d80000613d000000000101043b000000000201041a000000ff002001900000029a0000c13d000001670220019700000001022001bf000000000021041b0000000502000039000000000102041a000001340010009c000001b00000213d0000000103100039000000000032041b000000000020043f000001490110009a000000000201041a0000010f022001970000000003000411000000000232019f000000000021041b000000400100043d000000030200002900000000002104350000010d0010009c0000010d01008041000000400110021000000000020004140000010d0020009c0000010d02008041000000c002200210000000000112019f00000137011001c70000800d0200003900000002030000390000014a040000410000000005000411042e04240000040f0000000100200190000001950000c13d000003d80000013d0000011201000041000000800010043f0000002001000039000000840010043f0000002c01000039000000a40010043f0000015001000041000000c40010043f0000015101000041000000e40010043f000001420100004100000430000104300000000202000039000000000202041a00000000031200a900000000011300d9000000000021004b000002fa0000c13d000300000003001d0000000001000411000000000010043f0000000401000039000000200010043f00000000010004140000010d0010009c0000010d01008041000000c00110021000000132011001c70000801002000039042e04290000040f0000000100200190000003d80000613d000000000101043b000000000001041b00000000010004140000000002000411000000040020008c000003250000c13d000000010200003900000000010000310000034a0000013d000300000001001d000200000003001d000001550100004100000000001004430000000001000410000000040010044300000000010004140000010d0010009c0000010d01008041000000c00110021000000156011001c70000800a02000039042e04290000040f0000000100200190000003240000613d000000000101043b000000000001004b0000030a0000c13d000000400100043d00000044021000390000015c030000410000000000320435000000240210003900000014030000390000000000320435000001120200004100000000002104350000000402100039000000200300003900000000003204350000010d0010009c0000010d01008041000000400110021000000136011001c700000430000104300000014b01000041000000000010043f0000001101000039000000040010043f0000014c0100004100000430000104300000011201000041000000800010043f0000002001000039000000840010043f0000001001000039000000a40010043f0000014801000041000000c40010043f00000114010000410000043000010430000000030100002900000130001001980000032c0000c13d000001550100004100000000001004430000000001000410000000040010044300000000010004140000010d0010009c0000010d01008041000000c00110021000000156011001c70000800a02000039042e04290000040f0000000100200190000003240000613d000000000101043b000100000001001d0000000101000039000000000201041a00000000010004140000013b04200197000000040040008c000003910000c13d0000000001000031000003a20000013d000000000001042f0000010d0010009c0000010d01008041000000c001100210000000030000006b000003400000c13d0000000002000411000003450000013d000000400100043d000000640210003900000157030000410000000000320435000000440210003900000158030000410000000000320435000000240210003900000026030000390000000000320435000001120200004100000000002104350000000402100039000000200300003900000000003204350000010d0010009c0000010d01008041000000400110021000000159011001c7000004300001043000000133011001c70000800902000039000000030300002900000000040004110000000005000019042e04240000040f000100000001035500000060011002700000010d0010019d0000010d01100197000000000001004b000003720000613d0000001f0410003900000168044001970000003f044000390000016805400197000000400400043d0000000005540019000000000045004b00000000060000390000000106004039000001340050009c000001b00000213d0000000100600190000001b00000c13d000000400050043f000000000614043600000168031001980000001f0410018f00000000013600190000000105000367000003650000613d000000000705034f000000007807043c0000000006860436000000000016004b000003610000c13d000000000004004b000003720000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f0000000000310435000000400100043d00000001002001900000038b0000613d000000030200002900000000002104350000010d0010009c0000010d01008041000000400110021000000000020004140000010d0020009c0000010d02008041000000c002200210000000000112019f00000137011001c70000800d02000039000000020300003900000138040000410000000005000411042e04240000040f0000000100200190000003d80000613d0000000101000039000000000010041b00000000010000190000042f0001042e00000044021000390000013503000041000000000032043500000024021000390000000d03000039000002ef0000013d0000010d0010009c0000010d01008041000000c001100210000000010000006b000003980000c13d00000000020400190000039c0000013d00000133011001c7000080090200003900000001030000290000000005000019042e04240000040f000200000002001d000100000001035500000060011002700000010d0010019d0000010d01100197000000000001004b000003da0000c13d00000002010000290000000100100190000004010000613d0000000501000039000000000101041a000000000001004b000003c40000613d0000000002000019000300000002001d000001490120009a000000000101041a0000013b01100197000000000010043f0000000401000039000000200010043f00000000010004140000010d0010009c0000010d01008041000000c00110021000000132011001c70000801002000039042e04290000040f0000000100200190000003d80000613d000000000101043b000000000001041b000000030200002900000001022000390000000501000039000000000101041a000000000012004b000003ac0000413d0000000701000039000000000001041b000000400100043d000000010200002900000000002104350000010d0010009c0000010d01008041000000400110021000000000020004140000010d0020009c0000010d02008041000000c002200210000000000112019f00000137011001c70000800d0200003900000001030000390000015b04000041042e04240000040f0000000100200190000003870000c13d000000000100001900000430000104300000001f0310003900000168033001970000003f033000390000016804300197000000400300043d0000000004430019000000000034004b00000000050000390000000105004039000001340040009c000001b00000213d0000000100500190000001b00000c13d000000400040043f000000000513043600000168021001980000001f0310018f00000000012500190000000104000367000003f30000613d000000000604034f000000006706043c0000000005750436000000000015004b000003ef0000c13d000000000003004b000003a40000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000003a40000013d000000400100043d00000044021000390000015a03000041000000000032043500000024021000390000000f03000039000002ef0000013d0000000502000039000000000302041a000000000013004b000004100000a13d000000000020043f000001490110009a0000000002000019000000000001042d0000014b01000041000000000010043f0000003201000039000000040010043f0000014c010000410000043000010430000000000001042f00000000010004140000010d0010009c0000010d01008041000000c00110021000000132011001c70000801002000039042e04290000040f0000000100200190000004220000613d000000000101043b000000000001042d0000000001000019000004300001043000000427002104210000000102000039000000000001042d0000000002000019000000000001042d0000042c002104230000000102000039000000000001042d0000000002000019000000000001042d0000042e000004320000042f0001042e000004300001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000038d7ea4c68000ffffffffffffffffffffffff0000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000020000000000000000000000000000004000000100000000000000000008c379a00000000000000000000000000000000000000000000000000000000044697265637420455448207472616e7366657273206e6f7420616c6c6f77656400000000000000000000000000000000000000640000008000000000000000000000000000000000000000000000000000000000000000000000000067dd74c9000000000000000000000000000000000000000000000000000000009dfecdcb00000000000000000000000000000000000000000000000000000000b5545a3b00000000000000000000000000000000000000000000000000000000b5545a3c00000000000000000000000000000000000000000000000000000000d2cd583100000000000000000000000000000000000000000000000000000000dd11247e000000000000000000000000000000000000000000000000000000009dfecdcc00000000000000000000000000000000000000000000000000000000ad605729000000000000000000000000000000000000000000000000000000007053324f00000000000000000000000000000000000000000000000000000000705332500000000000000000000000000000000000000000000000000000000084bd3264000000000000000000000000000000000000000000000000000000008da5cb5b0000000000000000000000000000000000000000000000000000000067dd74ca000000000000000000000000000000000000000000000000000000006fd098160000000000000000000000000000000000000000000000000000000024600fc20000000000000000000000000000000000000000000000000000000047535d7a0000000000000000000000000000000000000000000000000000000047535d7b000000000000000000000000000000000000000000000000000000004c49eccc00000000000000000000000000000000000000000000000000000000573140660000000000000000000000000000000000000000000000000000000024600fc30000000000000000000000000000000000000000000000000000000035c1d349000000000000000000000000000000000000000000000000000000001209b1f5000000000000000000000000000000000000000000000000000000001209b1f6000000000000000000000000000000000000000000000000000000001598165000000000000000000000000000000000000000000000000000000000195ec9ee000000000000000000000000000000000000000000000000000000000484a22f0000000000000000000000000000000000000000000000000000000006e8337f0000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000002000000080000000000000000002000000000000000000000000000000000000400000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff526566756e64206661696c65640000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000200000000000000000000000000000000000020000000000000000000000000d2888df1f37c007dfb366793b698e4cc1ad930d5790ea0a3e1764d18f366afce4e6f207469636b65747320746f20726566756e64000000000000000000000000526166666c65206973206e6f742063616e63656c656400000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff4c6f747465727920616c7265616479206f70656e00000000000000000000000043616e6e6f74206f70656e2063616e63656c656420726166666c6500000000000a1e9642bf7ac3a05efe518bb84b870c97de6e1bf4e0128634427040b4a0c91843616e6e6f742063616e63656c20616e206f70656e20726166666c650000000043616e6e6f742063616e63656c2061667465722077696e6e6572732061726520616e6e6f756e63656400000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff000000000000000000000000000000000000000000000000000000000001000058dc89309a99a92473567b17cb209da19099528cb016d25725e201c9cdeef548fc2b180437972a94a98d643b705025c6263c595cce057cc3d910384b8d1d210c526166666c6520686173206265656e2063616e63656c6564000000000000000057726f6e672045544820616d6f756e7400000000000000000000000000000000fc949c7b4a13586e39d89eead2f38644f9fb3efb5a0490b14f8fc0ceab44c2500668f5b446eb814fe35b3206f43f14bd8567ba04ddaf7a3ee56516929ab22ccb4e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000004d75737420627579203e3d2031000000000000000000000000000000000000004c6f7474657279206e6f74206f70656e0000000000000000000000000000000057696e6e65727320616c726561647920616e6e6f756e6365640000000000000043616e6e6f74207075626c6973682077696e6e65727320666f7220612063616e63656c656420726166666c650000000000000000000000000000000000000000de9be31d22ff1996e37f43bf5ac195dac0f3594a74d3e21a64ff542d02dd65b40000000000000000000000000000000000000020000000000000000000000000436c6f7365206c6f7474657279206669727374000000000000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f390200000200000000000000000000000000000024000000000000000000000000726166666c65000000000000000000000000000000000000000000000000000043616e6e6f742077697468647261772066726f6d20612063616e63656c65642000000000000000000000000000000000000000840000000000000000000000005769746864726177206661696c656400000000000000000000000000000000004a37b25aab49761ecf63117fe82b98d750917451133cf797507bc9fb5b96044a4e6f2066756e647320746f2077697468647261770000000000000000000000005075626c6973682077696e6e657273206265666f7265207769746864726177696e672066756e64730000000000000000000000000000000000000000000000003ee5aeb5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0000000000000000000000000000000000000000000000000ffffffffffffff804e6f74206f776e657200000000000000000000000000000000000000000000005072696365206d7573742062652067726561746572207468616e207a65726f00496e76616c69642066756e6374696f6e2063616c6c0000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe000000000000000000000000000000000000000000000000000000000000000001622fb242e234324a6497f64413b5e33b61ae941c8af139ad27c1a31367b03fb

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