ETH Price: $2,637.52 (-0.12%)

Contract

0x53aC71c851f2972228161Ab83bc1Eb68AfD06319
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Fees205816202024-08-22 3:59:5939 days ago1724299199IN
0x53aC71c8...8AfD06319
0 ETH0.000061472
Process Pending ...201698422024-06-25 16:18:2396 days ago1719332303IN
0x53aC71c8...8AfD06319
0 ETH0.0007593113.45007089
Process Pending ...199359802024-05-23 23:52:23129 days ago1716508343IN
0x53aC71c8...8AfD06319
0 ETH0.000421467.46692984
Process Pending ...196442392024-04-13 4:21:11170 days ago1712982071IN
0x53aC71c8...8AfD06319
0 ETH0.0006707511.8813863
Process Pending ...195680442024-04-02 12:14:11180 days ago1712060051IN
0x53aC71c8...8AfD06319
0 ETH0.0016488529.20706293
Process Pending ...195128362024-03-25 17:02:35188 days ago1711386155IN
0x53aC71c8...8AfD06319
0 ETH0.0021069137.32087228
Process Pending ...195070842024-03-24 21:32:59189 days ago1711315979IN
0x53aC71c8...8AfD06319
0 ETH0.0011785220.87579847
Process Pending ...194852692024-03-21 20:00:47192 days ago1711051247IN
0x53aC71c8...8AfD06319
0 ETH0.0018967633.59835132
Process Pending ...194840832024-03-21 15:59:59192 days ago1711036799IN
0x53aC71c8...8AfD06319
0 ETH0.0018506132.78087202
Process Pending ...194816842024-03-21 7:54:35192 days ago1711007675IN
0x53aC71c8...8AfD06319
0 ETH0.0014810526.23479672
Process Pending ...194757772024-03-20 12:01:47193 days ago1710936107IN
0x53aC71c8...8AfD06319
0 ETH0.0016936830.00108662
Process Pending ...194739892024-03-20 5:59:47194 days ago1710914387IN
0x53aC71c8...8AfD06319
0 ETH0.0017096230.28357888
Process Pending ...194739872024-03-20 5:59:23194 days ago1710914363IN
0x53aC71c8...8AfD06319
0 ETH0.0062582531.61359006
Process Pending ...194694822024-03-19 14:47:35194 days ago1710859655IN
0x53aC71c8...8AfD06319
0 ETH0.0023205841.10581449
Process Pending ...194689322024-03-19 12:55:59194 days ago1710852959IN
0x53aC71c8...8AfD06319
0 ETH0.0030051344.21004834
Process Pending ...194689302024-03-19 12:55:35194 days ago1710852935IN
0x53aC71c8...8AfD06319
0 ETH0.0098562342.38327545
Process Pending ...194393372024-03-15 9:05:23198 days ago1710493523IN
0x53aC71c8...8AfD06319
0 ETH0.0089386549.69206598
Process Pending ...194393352024-03-15 9:04:59198 days ago1710493499IN
0x53aC71c8...8AfD06319
0 ETH0.0112604648.42170362
Process Pending ...194217342024-03-12 21:37:59201 days ago1710279479IN
0x53aC71c8...8AfD06319
0 ETH0.0033750559.78412627
Process Pending ...194215622024-03-12 21:03:35201 days ago1710277415IN
0x53aC71c8...8AfD06319
0 ETH0.0035021762.03591101
Process Pending ...194214342024-03-12 20:37:59201 days ago1710275879IN
0x53aC71c8...8AfD06319
0 ETH0.0033854559.96840011
Process Pending ...194189562024-03-12 12:19:47201 days ago1710245987IN
0x53aC71c8...8AfD06319
0 ETH0.0030029953.19375059
Process Pending ...194184022024-03-12 10:28:35201 days ago1710239315IN
0x53aC71c8...8AfD06319
0 ETH0.0025543545.24671517
Process Pending ...194174552024-03-12 7:17:47202 days ago1710227867IN
0x53aC71c8...8AfD06319
0 ETH0.0029765852.72593271
Process Pending ...194108572024-03-11 9:07:59202 days ago1710148079IN
0x53aC71c8...8AfD06319
0 ETH0.0033434459.23469169
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
205816202024-08-22 3:59:5939 days ago1724299199
0x53aC71c8...8AfD06319
0.14392929 ETH
205078112024-08-11 20:38:5949 days ago1723408739
0x53aC71c8...8AfD06319
0.0001763 ETH
202499122024-07-06 20:39:3585 days ago1720298375
0x53aC71c8...8AfD06319
0.00207138 ETH
201971162024-06-29 11:42:2392 days ago1719661343
0x53aC71c8...8AfD06319
0.00012544 ETH
201698422024-06-25 16:18:2396 days ago1719332303
0x53aC71c8...8AfD06319
0.0025 ETH
201698422024-06-25 16:18:2396 days ago1719332303
0x53aC71c8...8AfD06319
0.00016731 ETH
201698402024-06-25 16:17:5996 days ago1719332279
0x53aC71c8...8AfD06319
0.00266731 ETH
201307072024-06-20 4:58:35102 days ago1718859515
0x53aC71c8...8AfD06319
0.00027549 ETH
200598412024-06-10 7:08:35112 days ago1718003315
0x53aC71c8...8AfD06319
0.00028886 ETH
200574022024-06-09 22:58:47112 days ago1717973927
0x53aC71c8...8AfD06319
0.00038074 ETH
200480172024-06-08 15:30:47113 days ago1717860647
0x53aC71c8...8AfD06319
0.0001505 ETH
199965502024-06-01 11:04:23120 days ago1717239863
0x53aC71c8...8AfD06319
0.00158746 ETH
199937172024-06-01 1:34:35121 days ago1717205675
0x53aC71c8...8AfD06319
0.00020226 ETH
199359802024-05-23 23:52:23129 days ago1716508343
0x53aC71c8...8AfD06319
0.0025 ETH
199359802024-05-23 23:52:23129 days ago1716508343
0x53aC71c8...8AfD06319
0.00056365 ETH
199342122024-05-23 17:56:35129 days ago1716486995
0x53aC71c8...8AfD06319
0.00306365 ETH
199032512024-05-19 10:00:35133 days ago1716112835
0x53aC71c8...8AfD06319
0.00011935 ETH
198852842024-05-16 21:41:11136 days ago1715895671
0x53aC71c8...8AfD06319
0.00006571 ETH
198543332024-05-12 13:47:47140 days ago1715521667
0x53aC71c8...8AfD06319
0.00006406 ETH
198302382024-05-09 4:56:11144 days ago1715230571
0x53aC71c8...8AfD06319
0.00019571 ETH
198226122024-05-08 3:18:11145 days ago1715138291
0x53aC71c8...8AfD06319
0.00033672 ETH
198019322024-05-05 5:53:35148 days ago1714888415
0x53aC71c8...8AfD06319
0.00008776 ETH
197923262024-05-03 21:39:47149 days ago1714772387
0x53aC71c8...8AfD06319
0.00036527 ETH
197923162024-05-03 21:37:47149 days ago1714772267
0x53aC71c8...8AfD06319
0.00143146 ETH
197844922024-05-02 19:22:23150 days ago1714677743
0x53aC71c8...8AfD06319
0.00170909 ETH
View All Internal Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xC471aFa6...31ca7779A
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
AI1Jackpots

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 3 : ai1Jackpots.sol
// SPDX-License-Identifier: NONE

/**
 * ai1Labs Jackpot Manager
 * 
 * Holds a list of winners to be distributed
 *
 * Website: ai1.wtf
 * 
 * Docs: docs.ai1.wtf
 * 
 * X: x.com/ai1Labs
 * 
 * Telegram: t.me/ai1Labs
 */

pragma solidity ^0.8.20;

//import "@openzeppelin/contracts/access/Ownable.sol";

import "@openzeppelin/contracts/access/Ownable.sol";


contract AI1Jackpots is Ownable {
    event WinPending(address indexed seller, uint256 ethWinnings, uint256 randomNumber);
    event JackpotWin(address indexed winner, uint256 winnings, uint256 randomSeedUsed);
    event ClaimManually(address indexed winner, uint256 winnings);
    struct WinToProcess {
        uint256 randomNumber;
        uint256 ethWinnings;
        address seller;
    }
    struct ManuallyClaimableWin {
        uint256 ethWinnings;
        address winner;
    }
    error NotProcessingBot();
    error NotHeadContract();
    error ReentrancyDetected();

    modifier onlyProcessingBot() {
        if(_msgSender() != processingBot) {
            revert NotProcessingBot();
        }
        _;
    }
    modifier onlyHeadContract() {
        if(_msgSender() != topContract) {
            revert NotHeadContract();
        }
        _;
    }


    modifier reentrancyGuard() {
        if(_reentrancySemaphore) {
            revert ReentrancyDetected();
        }
        _reentrancySemaphore = true;
        _;
        _reentrancySemaphore = false;
    }
    address private processingBot;
    
    bool private _reentrancySemaphore = false;

    

    WinToProcess[] private pendingWins;

    ManuallyClaimableWin[] private failedSends;

    address private topContract;

    constructor(address bot) Ownable(_msgSender()) {
        topContract = msg.sender;
        processingBot = bot;
    }
    /// @notice Changes the processing bot address. Only settable by CA owner.
    /// @param newBot the new bot to set
    function changeProcessingBot(address newBot) public onlyOwner {
        processingBot = newBot;
    }
    function changeTopContract(address newContract) public onlyOwner {
        topContract = newContract;
    }

    /// @notice Generates a random number - don't rely on for crypto
    function generateNumber() private view returns (uint256 result) {
        result = uint256(keccak256(abi.encode(block.prevrandao)));
    }
    /// @notice Adds a pending win from a sell - only callable by contract and the value of ETH should be sent
    /// @param seller the seller, so we can exclude them

    function addPendingWin(address seller) external payable onlyHeadContract {
        uint256 rng = generateNumber();
        pendingWins.push(WinToProcess(rng, msg.value, seller));
        emit WinPending(seller, msg.value, rng);
    }

    /// @notice Get the lists of pending wins
    function getPendingWins() public view returns (uint256[] memory rngs, uint256[] memory winnings, address[] memory sellers) {
        rngs = new uint256[](pendingWins.length);
        winnings = new uint256[](pendingWins.length);
        sellers = new address[](pendingWins.length);
        for(uint i = 0; i < pendingWins.length; i++) {
            rngs[i] = pendingWins[i].randomNumber;
            winnings[i] = pendingWins[i].ethWinnings;
            sellers[i] = pendingWins[i].seller;
        }
    }


    function processPendingWin(uint256 index, address receipient, uint256 processingCost) public onlyProcessingBot reentrancyGuard {
        processWinInternal(index, receipient, processingCost);
        // Check if it's the very end of the list
        if(index != pendingWins.length-1) {
            // It's not, so move the end to the index we wish to erase
            pendingWins[index] = pendingWins[pendingWins.length-1];
        }
        // Pop the end - if our pending win is the end, it's okay, if not we made a copy of the end
        pendingWins.pop();
    }

    function processWinInternal(uint256 index, address winner, uint256 processingCost) private {
        uint256 winAmount = pendingWins[index].ethWinnings;
        (bool success,) = winner.call{gas: 50000, value: winAmount-processingCost}("");
        payable(msg.sender).transfer(processingCost);
        if(success) {
            emit JackpotWin(winner, winAmount-processingCost, pendingWins[index].randomNumber);
        } else {
            failedSends.push(ManuallyClaimableWin(winAmount-processingCost, winner));
            emit ClaimManually(winner, winAmount-processingCost);
        }
    }
    /// @notice Process a list of indexes and winners. Ensure the indexes are ascending. 
    function processPendingWins(uint256[] calldata indexes, address[] calldata recipients, uint256[] calldata processingCosts) external onlyProcessingBot reentrancyGuard {
        require(indexes.length == recipients.length && indexes.length == processingCosts.length, "LuckyJackpot: Length of arrays must match.");
        for(uint i = 0; i < indexes.length; i++) {
            processWinInternal(indexes[i], recipients[i], processingCosts[i]);
        }
        // Need to be a little more careful here, as we have multiple indexes to remove
        uint indexLen = indexes.length-1;
        for(uint i = 0; i < indexes.length; i++) {
            // i is, from the end, how many
            if(indexes[indexLen-i] != pendingWins.length) {
                // Copy the end to the current index, if necessary
                pendingWins[indexes[indexLen-i]] = pendingWins[pendingWins.length-1];
            }
            // Delete the end
            pendingWins.pop();
        }
    }

    /// @notice Claim the first win for this address
    function manualClaim(address winner) public reentrancyGuard {
        // Find the first win in failedSends
        for(uint i = 0; i < failedSends.length; i++) {
            if(failedSends[i].winner == winner) {
                (bool success,) = winner.call{value: failedSends[i].ethWinnings}("");
                require(success, "LuckyJackpot: Send failed.");
                // Delete the winner
                if(i != failedSends.length-1) {
                    failedSends[i] = failedSends[failedSends.length-1];
                }
                failedSends.pop();
                break;
            }
        }
    }

    function withdrawGas(uint256 amount) public onlyProcessingBot {
        // Withdraw the gas fee to be spent on running a sell
        payable(processingBot).transfer(amount);
    }

    function withdrawFees(uint256 amount) public onlyOwner {
        // Withdraw excess fees for owner
        payable(owner()).transfer(amount);
    }
}

File 2 of 3 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * The initial owner is set to the address provided by the deployer. This can
 * later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 3 of 3 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"bot","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotHeadContract","type":"error"},{"inputs":[],"name":"NotProcessingBot","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyDetected","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"winnings","type":"uint256"}],"name":"ClaimManually","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"winner","type":"address"},{"indexed":false,"internalType":"uint256","name":"winnings","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"randomSeedUsed","type":"uint256"}],"name":"JackpotWin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"seller","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethWinnings","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"randomNumber","type":"uint256"}],"name":"WinPending","type":"event"},{"inputs":[{"internalType":"address","name":"seller","type":"address"}],"name":"addPendingWin","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newBot","type":"address"}],"name":"changeProcessingBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newContract","type":"address"}],"name":"changeTopContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getPendingWins","outputs":[{"internalType":"uint256[]","name":"rngs","type":"uint256[]"},{"internalType":"uint256[]","name":"winnings","type":"uint256[]"},{"internalType":"address[]","name":"sellers","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"winner","type":"address"}],"name":"manualClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"receipient","type":"address"},{"internalType":"uint256","name":"processingCost","type":"uint256"}],"name":"processPendingWin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"indexes","type":"uint256[]"},{"internalType":"address[]","name":"recipients","type":"address[]"},{"internalType":"uint256[]","name":"processingCosts","type":"uint256[]"}],"name":"processPendingWins","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawGas","outputs":[],"stateMutability":"nonpayable","type":"function"}]

Deployed Bytecode

0x6080604052600436106100a75760003560e01c8063916575441161006457806391657544146101785780639bba032a14610198578063d653e9a8146101b8578063de9067ad146101cb578063e026132e146101eb578063f2fde38b1461020b57600080fd5b806331600a63146100ac57806359c0ccc7146100d95780635e318e07146100fb578063715018a61461011b5780638da5cb5b1461013057806391537e2714610158575b600080fd5b3480156100b857600080fd5b506100c161022b565b6040516100d093929190610fd2565b60405180910390f35b3480156100e557600080fd5b506100f96100f4366004611060565b610417565b005b34801561010757600080fd5b506100f9610116366004611082565b61065d565b34801561012757600080fd5b506100f96106a2565b34801561013c57600080fd5b506000546040516001600160a01b0390911681526020016100d0565b34801561016457600080fd5b506100f96101733660046110e7565b6106b6565b34801561018457600080fd5b506100f9610193366004611082565b61096e565b3480156101a457600080fd5b506100f96101b3366004611060565b6109dc565b6100f96101c6366004611060565b610a06565b3480156101d757600080fd5b506100f96101e6366004611181565b610b67565b3480156101f757600080fd5b506100f9610206366004611060565b610cd4565b34801561021757600080fd5b506100f9610226366004611060565b610cfe565b606080606060028054905067ffffffffffffffff81111561024e5761024e6111b6565b604051908082528060200260200182016040528015610277578160200160208202803683370190505b5060025490935067ffffffffffffffff811115610296576102966111b6565b6040519080825280602002602001820160405280156102bf578160200160208202803683370190505b5060025490925067ffffffffffffffff8111156102de576102de6111b6565b604051908082528060200260200182016040528015610307578160200160208202803683370190505b50905060005b600254811015610411576002818154811061032a5761032a6111cc565b90600052602060002090600302016000015484828151811061034e5761034e6111cc565b6020026020010181815250506002818154811061036d5761036d6111cc565b906000526020600020906003020160010154838281518110610391576103916111cc565b602002602001018181525050600281815481106103b0576103b06111cc565b906000526020600020906003020160020160009054906101000a90046001600160a01b03168282815181106103e7576103e76111cc565b6001600160a01b039092166020928302919091019091015280610409816111f8565b91505061030d565b50909192565b600154600160a01b900460ff16156104425760405163c5f2be5160e01b815260040160405180910390fd5b6001805460ff60a01b1916600160a01b17905560005b60035481101561064c57816001600160a01b03166003828154811061047f5761047f6111cc565b60009182526020909120600160029092020101546001600160a01b03160361063a576000826001600160a01b0316600383815481106104c0576104c06111cc565b60009182526020822060029091020154604051909181818185875af1925050503d806000811461050c576040519150601f19603f3d011682016040523d82523d6000602084013e610511565b606091505b50509050806105675760405162461bcd60e51b815260206004820152601a60248201527f4c75636b794a61636b706f743a2053656e64206661696c65642e00000000000060448201526064015b60405180910390fd5b60035461057690600190611211565b82146105f8576003805461058c90600190611211565b8154811061059c5761059c6111cc565b9060005260206000209060020201600383815481106105bd576105bd6111cc565b600091825260209091208254600290920201908155600191820154910180546001600160a01b0319166001600160a01b039092169190911790555b60038054806106095761060961122a565b60008281526020812060026000199093019283020190815560010180546001600160a01b031916905590555061064c565b80610644816111f8565b915050610458565b50506001805460ff60a01b19169055565b610665610d3c565b600080546040516001600160a01b039091169183156108fc02918491818181858888f1935050505015801561069e573d6000803e3d6000fd5b5050565b6106aa610d3c565b6106b46000610d69565b565b6001546001600160a01b0316336001600160a01b0316146106ea57604051634772a48160e11b815260040160405180910390fd5b600154600160a01b900460ff16156107155760405163c5f2be5160e01b815260040160405180910390fd5b6001805460ff60a01b1916600160a01b179055848314801561073657508481145b6107955760405162461bcd60e51b815260206004820152602a60248201527f4c75636b794a61636b706f743a204c656e677468206f6620617272617973206d6044820152693ab9ba1036b0ba31b41760b11b606482015260840161055e565b60005b85811015610813576108018787838181106107b5576107b56111cc565b905060200201358686848181106107ce576107ce6111cc565b90506020020160208101906107e39190611060565b8585858181106107f5576107f56111cc565b90506020020135610db9565b8061080b816111f8565b915050610798565b506000610821600187611211565b905060005b8681101561095757600254888861083d8486611211565b81811061084c5761084c6111cc565b9050602002013514610901576002805461086890600190611211565b81548110610878576108786111cc565b90600052602060002090600302016002898984866108969190611211565b8181106108a5576108a56111cc565b90506020020135815481106108bc576108bc6111cc565b60009182526020909120825460039092020190815560018083015490820155600291820154910180546001600160a01b0319166001600160a01b039092169190911790555b60028054806109125761091261122a565b600082815260208120600360001990930192830201818155600181019190915560020180546001600160a01b031916905590558061094f816111f8565b915050610826565b50506001805460ff60a01b19169055505050505050565b6001546001600160a01b0316336001600160a01b0316146109a257604051634772a48160e11b815260040160405180910390fd5b6001546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561069e573d6000803e3d6000fd5b6109e4610d3c565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b0316336001600160a01b031614610a3a5760405163365e96db60e21b815260040160405180910390fd5b6000610a646040805144602080830191909152825180830382018152918301909252805191012090565b604080516060810182528281523460208083018281526001600160a01b038881168587018181526002805460018101825560009190915296517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace60039098029788015592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf87015591517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad090950180546001600160a01b031916959091169490941790935583519182528101849052929350917f6d418321e3f92c6a489352adfa53b0f97aef60e56d92ce0c2dfdf79970a2dd40910160405180910390a25050565b6001546001600160a01b0316336001600160a01b031614610b9b57604051634772a48160e11b815260040160405180910390fd5b600154600160a01b900460ff1615610bc65760405163c5f2be5160e01b815260040160405180910390fd5b6001805460ff60a01b1916600160a01b179055610be4838383610db9565b600254610bf390600190611211565b8314610c7f5760028054610c0990600190611211565b81548110610c1957610c196111cc565b906000526020600020906003020160028481548110610c3a57610c3a6111cc565b60009182526020909120825460039092020190815560018083015490820155600291820154910180546001600160a01b0319166001600160a01b039092169190911790555b6002805480610c9057610c9061122a565b60008281526020812060036000199093019283020181815560018181019290925560020180546001600160a01b03191690559155805460ff60a01b19169055505050565b610cdc610d3c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b610d06610d3c565b6001600160a01b038116610d3057604051631e4fbdf760e01b81526000600482015260240161055e565b610d3981610d69565b50565b6000546001600160a01b031633146106b45760405163118cdaa760e01b815233600482015260240161055e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600060028481548110610dce57610dce6111cc565b6000918252602082206001600390920201015491506001600160a01b03841661c350610dfa8585611211565b6040516000818181858888f193505050503d8060008114610e37576040519150601f19603f3d011682016040523d82523d6000602084013e610e3c565b606091505b5050604051909150339084156108fc029085906000818181858888f19350505050158015610e6e573d6000803e3d6000fd5b508015610ee8576001600160a01b0384167fb3c089216f23b7daf9ba89aed51ed7cd7a84a690165388c507a0da320840c29a610eaa8585611211565b60028881548110610ebd57610ebd6111cc565b60009182526020918290206003909102015460408051938452918301520160405180910390a2610f90565b600360405180604001604052808585610f019190611211565b81526001600160a01b038781166020928301819052845460018082018755600096875295849020855160029092020190815593909201519290930180546001600160a01b03191692909316919091179091557f94865cfe07b56d8fc7d748debc2277d076807d3678da121aa700f3bf2a66df32610f7e8585611211565b60405190815260200160405180910390a25b5050505050565b600081518084526020808501945080840160005b83811015610fc757815187529582019590820190600101610fab565b509495945050505050565b606081526000610fe56060830186610f97565b602083820381850152610ff88287610f97565b8481036040860152855180825282870193509082019060005b818110156110365784516001600160a01b031683529383019391830191600101611011565b509098975050505050505050565b80356001600160a01b038116811461105b57600080fd5b919050565b60006020828403121561107257600080fd5b61107b82611044565b9392505050565b60006020828403121561109457600080fd5b5035919050565b60008083601f8401126110ad57600080fd5b50813567ffffffffffffffff8111156110c557600080fd5b6020830191508360208260051b85010111156110e057600080fd5b9250929050565b6000806000806000806060878903121561110057600080fd5b863567ffffffffffffffff8082111561111857600080fd5b6111248a838b0161109b565b9098509650602089013591508082111561113d57600080fd5b6111498a838b0161109b565b9096509450604089013591508082111561116257600080fd5b5061116f89828a0161109b565b979a9699509497509295939492505050565b60008060006060848603121561119657600080fd5b833592506111a660208501611044565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161120a5761120a6111e2565b5060010190565b81810381811115611224576112246111e2565b92915050565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220bf1aba8e5673710ff5769d01d9f46b1d875b036c29095ddd28d69fff1bf6c89d64736f6c63430008140033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ 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.