ETH Price: $2,059.11 (-2.62%)

Contract

0x03eDf3E29380518f5652f210230ac2Ea11665902

Overview

ETH Balance

Linea Mainnet LogoLinea Mainnet LogoLinea Mainnet Logo0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Say GM287132772026-02-08 9:55:3022 hrs ago1770544530IN
0x03eDf3E2...a11665902
0 ETH0.000004920.04204153
Say GM287036822026-02-07 22:48:2833 hrs ago1770504508IN
0x03eDf3E2...a11665902
0 ETH0.00000470.04019008
Say GM287034882026-02-07 22:33:5033 hrs ago1770503630IN
0x03eDf3E2...a11665902
0 ETH0.000004660.03979762
Say GM286819352026-02-07 1:04:322 days ago1770426272IN
0x03eDf3E2...a11665902
0 ETH0.000004480.03827131
Say GM286819282026-02-07 1:04:102 days ago1770426250IN
0x03eDf3E2...a11665902
0 ETH0.000006150.03782846
Say GM286754142026-02-06 18:07:322 days ago1770401252IN
0x03eDf3E2...a11665902
0 ETH0.000004920.04204153
Say GM286472692026-02-05 19:52:223 days ago1770321142IN
0x03eDf3E2...a11665902
0 ETH0.000005040.04300408
Say GM286229092026-02-05 1:23:244 days ago1770254604IN
0x03eDf3E2...a11665902
0 ETH0.000006070.03935636
Say GM286160642026-02-04 19:25:264 days ago1770233126IN
0x03eDf3E2...a11665902
0 ETH0.000004920.04204153
Say GM285976832026-02-04 3:32:385 days ago1770175958IN
0x03eDf3E2...a11665902
0 ETH0.000006460.0397203
Say GM285951912026-02-04 1:10:265 days ago1770167426IN
0x03eDf3E2...a11665902
0 ETH0.000004820.04012444
Say GM285908352026-02-03 21:05:045 days ago1770152704IN
0x03eDf3E2...a11665902
0 ETH0.000007710.05000001
Say GM285890782026-02-03 19:42:085 days ago1770147728IN
0x03eDf3E2...a11665902
0 ETH0.000004830.04012306
Say GM285302702026-02-01 16:19:227 days ago1769962762IN
0x03eDf3E2...a11665902
0 ETH0.000006150.03786039
Say GM285302552026-02-01 16:18:447 days ago1769962724IN
0x03eDf3E2...a11665902
0 ETH0.000004590.0382153
Say GM285143132026-02-01 2:55:528 days ago1769914552IN
0x03eDf3E2...a11665902
0 ETH0.00000470.04013056
Say GM284921122026-01-31 9:09:548 days ago1769850594IN
0x03eDf3E2...a11665902
0 ETH0.000004920.04204153
Say GM284811522026-01-30 23:30:289 days ago1769815828IN
0x03eDf3E2...a11665902
0 ETH0.000004750.04052389
Say GM284811472026-01-30 23:30:069 days ago1769815806IN
0x03eDf3E2...a11665902
0 ETH0.000004820.04012584
Say GM284617562026-01-30 7:58:4610 days ago1769759926IN
0x03eDf3E2...a11665902
0 ETH0.000004710.03982422
Say GM284617542026-01-30 7:58:3810 days ago1769759918IN
0x03eDf3E2...a11665902
0 ETH0.000004660.03984885
Say GM284617502026-01-30 7:58:2810 days ago1769759908IN
0x03eDf3E2...a11665902
0 ETH0.000004660.03984885
Say GM284617472026-01-30 7:58:1610 days ago1769759896IN
0x03eDf3E2...a11665902
0 ETH0.000004660.03984885
Say GM284617442026-01-30 7:58:0810 days ago1769759888IN
0x03eDf3E2...a11665902
0 ETH0.000004660.03984885
Say GM284617392026-01-30 7:57:5810 days ago1769759878IN
0x03eDf3E2...a11665902
0 ETH0.000004660.03984885
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
287132772026-02-08 9:55:3022 hrs ago1770544530
0x03eDf3E2...a11665902
0 ETH
287036822026-02-07 22:48:2833 hrs ago1770504508
0x03eDf3E2...a11665902
0 ETH
287034882026-02-07 22:33:5033 hrs ago1770503630
0x03eDf3E2...a11665902
0 ETH
286819352026-02-07 1:04:322 days ago1770426272
0x03eDf3E2...a11665902
0 ETH
286819282026-02-07 1:04:102 days ago1770426250
0x03eDf3E2...a11665902
0 ETH
286754142026-02-06 18:07:322 days ago1770401252
0x03eDf3E2...a11665902
0 ETH
286472692026-02-05 19:52:223 days ago1770321142
0x03eDf3E2...a11665902
0 ETH
286229092026-02-05 1:23:244 days ago1770254604
0x03eDf3E2...a11665902
0 ETH
286160642026-02-04 19:25:264 days ago1770233126
0x03eDf3E2...a11665902
0 ETH
285976832026-02-04 3:32:385 days ago1770175958
0x03eDf3E2...a11665902
0 ETH
285951912026-02-04 1:10:265 days ago1770167426
0x03eDf3E2...a11665902
0 ETH
285908352026-02-03 21:05:045 days ago1770152704
0x03eDf3E2...a11665902
0 ETH
285890782026-02-03 19:42:085 days ago1770147728
0x03eDf3E2...a11665902
0 ETH
285302702026-02-01 16:19:227 days ago1769962762
0x03eDf3E2...a11665902
0 ETH
285302552026-02-01 16:18:447 days ago1769962724
0x03eDf3E2...a11665902
0 ETH
285143132026-02-01 2:55:528 days ago1769914552
0x03eDf3E2...a11665902
0 ETH
284921122026-01-31 9:09:548 days ago1769850594
0x03eDf3E2...a11665902
0 ETH
284811522026-01-30 23:30:289 days ago1769815828
0x03eDf3E2...a11665902
0 ETH
284811472026-01-30 23:30:069 days ago1769815806
0x03eDf3E2...a11665902
0 ETH
284617562026-01-30 7:58:4610 days ago1769759926
0x03eDf3E2...a11665902
0 ETH
284617542026-01-30 7:58:3810 days ago1769759918
0x03eDf3E2...a11665902
0 ETH
284617502026-01-30 7:58:2810 days ago1769759908
0x03eDf3E2...a11665902
0 ETH
284617472026-01-30 7:58:1610 days ago1769759896
0x03eDf3E2...a11665902
0 ETH
284617442026-01-30 7:58:0810 days ago1769759888
0x03eDf3E2...a11665902
0 ETH
284617392026-01-30 7:57:5810 days ago1769759878
0x03eDf3E2...a11665902
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DailyGM

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
london EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

/**
 * @title IPohVerifier
 * @dev Interface for Linea's official Proof of Humanity Verifier contract
 * @notice Contract address: 0xBf14cFAFD7B83f6de881ae6dc10796ddD7220831
 */
interface IPohVerifier {
    /**
     * @dev Verifies if an address has Proof of Humanity status
     * @param signature The signed message from the PoH signer API
     * @param human The address to verify
     * @return bool True if the address is verified, false otherwise
     */
    function verify(bytes memory signature, address human) external view returns (bool);
}

/**
 * @title DailyGM
 * @dev A contract that allows users to say "GM" (Good Morning) with a daily transaction limit
 * Includes ownership functionality and Proof of Humanity verification using Linea's official PohVerifier
 */
contract DailyGM {
    // Owner of the contract
    address private _owner;
    
    // Linea's official PohVerifier contract
    IPohVerifier public immutable pohVerifier;
    
    // Maximum transactions per user per day
    uint256 public constant MAX_DAILY_TRANSACTIONS = 10;
    
    // Struct to track user's daily activity
    struct DailyActivity {
        uint256 lastResetDay;
        uint256 transactionCount;
    }
    
    // Mapping from user address to their daily activity
    mapping(address => DailyActivity) public userActivity;
    
    // Array to store all GM messages
    struct GMMessage {
        address sender;
        string message;
        uint256 timestamp;
    }
    
    GMMessage[] public gmMessages;
    
    // Events
    event GMSaid(address indexed sender, string message, uint256 timestamp);
    event DailyLimitReached(address indexed sender, uint256 day);
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    // Errors
    error PohVerificationFailed(address sender);
    
    // Modifiers
    modifier onlyOwner() {
        require(msg.sender == _owner, "Caller is not the owner");
        _;
    }
    
    modifier onlyVerified(bytes memory pohSignature) {
        if (!pohVerifier.verify(pohSignature, msg.sender)) {
            revert PohVerificationFailed(msg.sender);
        }
        _;
    }
    
    /**
     * @dev Constructor sets the original owner and PohVerifier contract address
     * @param _pohVerifier Address of Linea's official PohVerifier contract (0xBf14cFAFD7B83f6de881ae6dc10796ddD7220831)
     */
    constructor(address _pohVerifier) {
        require(_pohVerifier != address(0), "Invalid PohVerifier address");
        _owner = msg.sender;
        pohVerifier = IPohVerifier(_pohVerifier);
        emit OwnershipTransferred(address(0), msg.sender);
    }
    
    /**
     * @dev Get the current day number (days since Unix epoch)
     */
    function getCurrentDay() public view returns (uint256) {
        return block.timestamp / 1 days;
    }
    
    /**
     * @dev Check if user has reached their daily limit
     */
    function hasReachedDailyLimit(address user) public view returns (bool) {
        DailyActivity memory activity = userActivity[user];
        uint256 currentDay = getCurrentDay();
        
        // If it's a new day, limit hasn't been reached
        if (activity.lastResetDay < currentDay) {
            return false;
        }
        
        // Check if user has reached the limit today
        return activity.transactionCount >= MAX_DAILY_TRANSACTIONS;
    }
    
    /**
     * @dev Get remaining transactions for the day
     */
    function getRemainingTransactions(address user) public view returns (uint256) {
        DailyActivity memory activity = userActivity[user];
        uint256 currentDay = getCurrentDay();
        
        // If it's a new day, return max transactions
        if (activity.lastResetDay < currentDay) {
            return MAX_DAILY_TRANSACTIONS;
        }
        
        // Calculate remaining transactions
        if (activity.transactionCount >= MAX_DAILY_TRANSACTIONS) {
            return 0;
        }
        
        return MAX_DAILY_TRANSACTIONS - activity.transactionCount;
    }
    
    /**
     * @dev Say GM with an optional custom message
     * @notice Requires user to be verified with Proof of Personhood
     * @param customMessage Optional custom message to include with GM
     * @param pohSignature Signed PoH status from https://poh-signer-api.linea.build/poh/v2/{address}
     */
    function sayGM(string memory customMessage, bytes memory pohSignature) public onlyVerified(pohSignature) {
        require(!hasReachedDailyLimit(msg.sender), "Daily transaction limit reached");
        
        uint256 currentDay = getCurrentDay();
        DailyActivity storage activity = userActivity[msg.sender];
        
        // Reset counter if it's a new day
        if (activity.lastResetDay < currentDay) {
            activity.lastResetDay = currentDay;
            activity.transactionCount = 0;
        }
        
        // Increment transaction count
        activity.transactionCount++;
        
        // Create message
        string memory message = bytes(customMessage).length > 0 
            ? customMessage 
            : "GM!";
        
        // Store the GM message
        gmMessages.push(GMMessage({
            sender: msg.sender,
            message: message,
            timestamp: block.timestamp
        }));
        
        emit GMSaid(msg.sender, message, block.timestamp);
        
        // Emit event if limit reached
        if (activity.transactionCount >= MAX_DAILY_TRANSACTIONS) {
            emit DailyLimitReached(msg.sender, currentDay);
        }
    }
    
    /**
     * @dev Get total number of GM messages
     */
    function getTotalGMs() public view returns (uint256) {
        return gmMessages.length;
    }
    
    /**
     * @dev Get GM message by index
     */
    function getGMMessage(uint256 index) public view returns (
        address sender,
        string memory message,
        uint256 timestamp
    ) {
        require(index < gmMessages.length, "Index out of bounds");
        GMMessage memory gm = gmMessages[index];
        return (gm.sender, gm.message, gm.timestamp);
    }
    
    /**
     * @dev Get recent GM messages (last N messages)
     */
    function getRecentGMs(uint256 count) public view returns (GMMessage[] memory) {
        uint256 totalMessages = gmMessages.length;
        uint256 returnCount = count > totalMessages ? totalMessages : count;
        
        GMMessage[] memory recentMessages = new GMMessage[](returnCount);
        
        for (uint256 i = 0; i < returnCount; i++) {
            recentMessages[i] = gmMessages[totalMessages - returnCount + i];
        }
        
        return recentMessages;
    }
    
    /**
     * @dev Get user's transaction count for today
     */
    function getUserDailyCount(address user) public view returns (uint256) {
        DailyActivity memory activity = userActivity[user];
        uint256 currentDay = getCurrentDay();
        
        // If it's a new day, return 0
        if (activity.lastResetDay < currentDay) {
            return 0;
        }
        
        return activity.transactionCount;
    }
    
    /**
     * @dev Returns the address of the current owner
     */
    function owner() public view returns (address) {
        return _owner;
    }
    
    /**
     * @dev Transfers ownership of the contract to a new account
     * Can only be called by the current owner
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0), "New owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * onlyOwner functions anymore. Can only be called by the current owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    /**
     * @dev Check if a user is verified using the official PohVerifier
     * @param user The address to check
     * @param pohSignature Signed PoH status from https://poh-signer-api.linea.build/poh/v2/{address}
     * @return bool True if the user is verified, false otherwise
     */
    function isUserVerified(address user, bytes memory pohSignature) public view returns (bool) {
        return pohVerifier.verify(pohSignature, user);
    }
}

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

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_pohVerifier","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"PohVerificationFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"}],"name":"DailyLimitReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"GMSaid","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"},{"inputs":[],"name":"MAX_DAILY_TRANSACTIONS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getGMMessage","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"message","type":"string"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"getRecentGMs","outputs":[{"components":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"message","type":"string"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct DailyGM.GMMessage[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getRemainingTransactions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalGMs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getUserDailyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"gmMessages","outputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"string","name":"message","type":"string"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"hasReachedDailyLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"pohSignature","type":"bytes"}],"name":"isUserVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pohVerifier","outputs":[{"internalType":"contract IPohVerifier","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"customMessage","type":"string"},{"internalType":"bytes","name":"pohSignature","type":"bytes"}],"name":"sayGM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userActivity","outputs":[{"internalType":"uint256","name":"lastResetDay","type":"uint256"},{"internalType":"uint256","name":"transactionCount","type":"uint256"}],"stateMutability":"view","type":"function"}]

60a060405234801561001057600080fd5b5060405161133038038061133083398101604081905261002f916100db565b6001600160a01b0381166100895760405162461bcd60e51b815260206004820152601b60248201527f496e76616c696420506f68566572696669657220616464726573730000000000604482015260640160405180910390fd5b600080546001600160a01b0319163390811782556001600160a01b0383166080526040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061010b565b6000602082840312156100ed57600080fd5b81516001600160a01b038116811461010457600080fd5b9392505050565b6080516111fc6101346000396000818161010a0152818161075b015261091c01526111fc6000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806388d11d3311610097578063c3dfb6da11610066578063c3dfb6da1461024d578063c7573ce414610260578063d115809614610273578063f2fde38b1461028657600080fd5b806388d11d33146101ca5780638da5cb5b146101dd57806399e6da34146101ee578063a49520181461022a57600080fd5b80635ef87927116100d35780635ef87927146101855780635fc1dede1461018d578063715018a6146101a0578063748c7cbe146101aa57600080fd5b8063070bdbef14610105578063085799a6146101495780633e6968b61461015b5780634aa8b74414610163575b600080fd5b61012c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6002545b604051908152602001610140565b61014d610299565b610176610171366004610cbe565b6102ad565b60405161014093929190610d1d565b61014d600a81565b61014d61019b366004610d6d565b6103fe565b6101a8610459565b005b6101bd6101b8366004610cbe565b6104f7565b6040516101409190610d88565b61014d6101d8366004610d6d565b6106c3565b6000546001600160a01b031661012c565b6102156101fc366004610d6d565b6001602081905260009182526040909120805491015482565b60408051928352602083019190915201610140565b61023d610238366004610ec0565b610741565b6040519015158152602001610140565b61023d61025b366004610d6d565b6107dc565b61017661026e366004610cbe565b61083b565b6101a8610281366004610f0e565b610903565b6101a8610294366004610d6d565b610bb9565b60006102a86201518042610f95565b905090565b60006060600060028054905084106103025760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60006002858154811061031757610317610fb7565b6000918252602091829020604080516060810190915260039092020180546001600160a01b03168252600181018054929391929184019161035790610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461038390610fcd565b80156103d05780601f106103a5576101008083540402835291602001916103d0565b820191906000526020600020905b8154815290600101906020018083116103b357829003601f168201915b5050509183525050600291909101546020918201528151908201516040909201519097919650945092505050565b6001600160a01b0381166000908152600160208181526040808420815180830190925280548252909201549082015281610436610299565b9050808260000151101561044e575060009392505050565b506020015192915050565b6000546001600160a01b031633146104ad5760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b60448201526064016102f9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600254606090600081841161050c578361050e565b815b905060008167ffffffffffffffff81111561052b5761052b610e14565b60405190808252806020026020018201604052801561058957816020015b610576604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b8152602001906001900390816105495790505b50905060005b828110156106ba576002816105a48587611007565b6105ae919061101a565b815481106105be576105be610fb7565b6000918252602091829020604080516060810190915260039092020180546001600160a01b0316825260018101805492939192918401916105fe90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461062a90610fcd565b80156106775780601f1061064c57610100808354040283529160200191610677565b820191906000526020600020905b81548152906001019060200180831161065a57829003601f168201915b5050505050815260200160028201548152505082828151811061069c5761069c610fb7565b602002602001018190525080806106b29061102d565b91505061058f565b50949350505050565b6001600160a01b03811660009081526001602081815260408084208151808301909252805482529092015490820152816106fb610299565b905080826000015110156107135750600a9392505050565b600a826020015110610729575060009392505050565b602082015161073990600a611007565b949350505050565b604051633d3ac1b560e01b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d3ac1b5906107929085908790600401611046565b602060405180830381865afa1580156107af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d39190611070565b90505b92915050565b6001600160a01b0381166000908152600160208181526040808420815180830190925280548252909201549082015281610814610299565b9050808260000151101561082c575060009392505050565b5060200151600a111592915050565b6002818154811061084b57600080fd5b6000918252602090912060039091020180546001820180546001600160a01b0390921693509061087a90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546108a690610fcd565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050908060020154905083565b604051633d3ac1b560e01b815281906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633d3ac1b5906109539084903390600401611046565b602060405180830381865afa158015610970573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109949190611070565b6109b357604051635199950b60e11b81523360048201526024016102f9565b6109bc336107dc565b15610a095760405162461bcd60e51b815260206004820152601f60248201527f4461696c79207472616e73616374696f6e206c696d697420726561636865640060448201526064016102f9565b6000610a13610299565b336000908152600160205260409020805491925090821115610a3a57818155600060018201555b600181018054906000610a4c8361102d565b9190505550600080865111610a7c5760405180604001604052806003815260200162474d2160e81b815250610a7e565b855b604080516060810182523381526020810183815242928201929092526002805460018101825560009190915281517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600390920291820180546001600160a01b0319166001600160a01b03909216919091178155925193945090927f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf90910190610b2890826110e4565b506040918201516002909101555133907fea02d266be8b12218546792c376be0997aa662e59dc08cdcf2296928788e4b2a90610b6790849042906111a4565b60405180910390a2600a826001015410610bb15760405183815233907f6432208db115f9d57d80b1166fd8969b3b0804bf53ea87d11957517a369e1f9e9060200160405180910390a25b505050505050565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b60448201526064016102f9565b6001600160a01b038116610c635760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016102f9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610cd057600080fd5b5035919050565b6000815180845260005b81811015610cfd57602081850181015186830182015201610ce1565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090610d4190830185610cd7565b9050826040830152949350505050565b80356001600160a01b0381168114610d6857600080fd5b919050565b600060208284031215610d7f57600080fd5b6107d382610d51565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610e0657888303603f19018552815180516001600160a01b0316845287810151606089860181905290610de882870182610cd7565b92890151958901959095525094870194925090860190600101610daf565b509098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610e4557610e45610e14565b604051601f8501601f19908116603f01168101908282118183101715610e6d57610e6d610e14565b81604052809350858152868686011115610e8657600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610eb157600080fd5b6107d383833560208501610e2a565b60008060408385031215610ed357600080fd5b610edc83610d51565b9150602083013567ffffffffffffffff811115610ef857600080fd5b610f0485828601610ea0565b9150509250929050565b60008060408385031215610f2157600080fd5b823567ffffffffffffffff80821115610f3957600080fd5b818501915085601f830112610f4d57600080fd5b610f5c86833560208501610e2a565b93506020850135915080821115610f7257600080fd5b50610f0485828601610ea0565b634e487b7160e01b600052601160045260246000fd5b600082610fb257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610fe157607f821691505b60208210810361100157634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156107d6576107d6610f7f565b808201808211156107d6576107d6610f7f565b60006001820161103f5761103f610f7f565b5060010190565b6040815260006110596040830185610cd7565b905060018060a01b03831660208301529392505050565b60006020828403121561108257600080fd5b8151801515811461109257600080fd5b9392505050565b601f8211156110df57600081815260208120601f850160051c810160208610156110c05750805b601f850160051c820191505b81811015610bb1578281556001016110cc565b505050565b815167ffffffffffffffff8111156110fe576110fe610e14565b6111128161110c8454610fcd565b84611099565b602080601f831160018114611147576000841561112f5750858301515b600019600386901b1c1916600185901b178555610bb1565b600085815260208120601f198616915b8281101561117657888601518255948401946001909101908401611157565b50858210156111945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006111b76040830185610cd7565b9050826020830152939250505056fea2646970667358221220c8d97487d47a76bdb9e553b3622446fc69304ccbee2bc61748f5c7517a924a6a64736f6c63430008140033000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd7220831

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101005760003560e01c806388d11d3311610097578063c3dfb6da11610066578063c3dfb6da1461024d578063c7573ce414610260578063d115809614610273578063f2fde38b1461028657600080fd5b806388d11d33146101ca5780638da5cb5b146101dd57806399e6da34146101ee578063a49520181461022a57600080fd5b80635ef87927116100d35780635ef87927146101855780635fc1dede1461018d578063715018a6146101a0578063748c7cbe146101aa57600080fd5b8063070bdbef14610105578063085799a6146101495780633e6968b61461015b5780634aa8b74414610163575b600080fd5b61012c7f000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd722083181565b6040516001600160a01b0390911681526020015b60405180910390f35b6002545b604051908152602001610140565b61014d610299565b610176610171366004610cbe565b6102ad565b60405161014093929190610d1d565b61014d600a81565b61014d61019b366004610d6d565b6103fe565b6101a8610459565b005b6101bd6101b8366004610cbe565b6104f7565b6040516101409190610d88565b61014d6101d8366004610d6d565b6106c3565b6000546001600160a01b031661012c565b6102156101fc366004610d6d565b6001602081905260009182526040909120805491015482565b60408051928352602083019190915201610140565b61023d610238366004610ec0565b610741565b6040519015158152602001610140565b61023d61025b366004610d6d565b6107dc565b61017661026e366004610cbe565b61083b565b6101a8610281366004610f0e565b610903565b6101a8610294366004610d6d565b610bb9565b60006102a86201518042610f95565b905090565b60006060600060028054905084106103025760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b60448201526064015b60405180910390fd5b60006002858154811061031757610317610fb7565b6000918252602091829020604080516060810190915260039092020180546001600160a01b03168252600181018054929391929184019161035790610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461038390610fcd565b80156103d05780601f106103a5576101008083540402835291602001916103d0565b820191906000526020600020905b8154815290600101906020018083116103b357829003601f168201915b5050509183525050600291909101546020918201528151908201516040909201519097919650945092505050565b6001600160a01b0381166000908152600160208181526040808420815180830190925280548252909201549082015281610436610299565b9050808260000151101561044e575060009392505050565b506020015192915050565b6000546001600160a01b031633146104ad5760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b60448201526064016102f9565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600254606090600081841161050c578361050e565b815b905060008167ffffffffffffffff81111561052b5761052b610e14565b60405190808252806020026020018201604052801561058957816020015b610576604051806060016040528060006001600160a01b0316815260200160608152602001600081525090565b8152602001906001900390816105495790505b50905060005b828110156106ba576002816105a48587611007565b6105ae919061101a565b815481106105be576105be610fb7565b6000918252602091829020604080516060810190915260039092020180546001600160a01b0316825260018101805492939192918401916105fe90610fcd565b80601f016020809104026020016040519081016040528092919081815260200182805461062a90610fcd565b80156106775780601f1061064c57610100808354040283529160200191610677565b820191906000526020600020905b81548152906001019060200180831161065a57829003601f168201915b5050505050815260200160028201548152505082828151811061069c5761069c610fb7565b602002602001018190525080806106b29061102d565b91505061058f565b50949350505050565b6001600160a01b03811660009081526001602081815260408084208151808301909252805482529092015490820152816106fb610299565b905080826000015110156107135750600a9392505050565b600a826020015110610729575060009392505050565b602082015161073990600a611007565b949350505050565b604051633d3ac1b560e01b81526000906001600160a01b037f000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd72208311690633d3ac1b5906107929085908790600401611046565b602060405180830381865afa1580156107af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d39190611070565b90505b92915050565b6001600160a01b0381166000908152600160208181526040808420815180830190925280548252909201549082015281610814610299565b9050808260000151101561082c575060009392505050565b5060200151600a111592915050565b6002818154811061084b57600080fd5b6000918252602090912060039091020180546001820180546001600160a01b0390921693509061087a90610fcd565b80601f01602080910402602001604051908101604052809291908181526020018280546108a690610fcd565b80156108f35780601f106108c8576101008083540402835291602001916108f3565b820191906000526020600020905b8154815290600101906020018083116108d657829003601f168201915b5050505050908060020154905083565b604051633d3ac1b560e01b815281906001600160a01b037f000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd72208311690633d3ac1b5906109539084903390600401611046565b602060405180830381865afa158015610970573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109949190611070565b6109b357604051635199950b60e11b81523360048201526024016102f9565b6109bc336107dc565b15610a095760405162461bcd60e51b815260206004820152601f60248201527f4461696c79207472616e73616374696f6e206c696d697420726561636865640060448201526064016102f9565b6000610a13610299565b336000908152600160205260409020805491925090821115610a3a57818155600060018201555b600181018054906000610a4c8361102d565b9190505550600080865111610a7c5760405180604001604052806003815260200162474d2160e81b815250610a7e565b855b604080516060810182523381526020810183815242928201929092526002805460018101825560009190915281517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600390920291820180546001600160a01b0319166001600160a01b03909216919091178155925193945090927f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf90910190610b2890826110e4565b506040918201516002909101555133907fea02d266be8b12218546792c376be0997aa662e59dc08cdcf2296928788e4b2a90610b6790849042906111a4565b60405180910390a2600a826001015410610bb15760405183815233907f6432208db115f9d57d80b1166fd8969b3b0804bf53ea87d11957517a369e1f9e9060200160405180910390a25b505050505050565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b815260206004820152601760248201527621b0b63632b91034b9903737ba103a34329037bbb732b960491b60448201526064016102f9565b6001600160a01b038116610c635760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f206164647265737300000060448201526064016102f9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610cd057600080fd5b5035919050565b6000815180845260005b81811015610cfd57602081850181015186830182015201610ce1565b506000602082860101526020601f19601f83011685010191505092915050565b6001600160a01b0384168152606060208201819052600090610d4190830185610cd7565b9050826040830152949350505050565b80356001600160a01b0381168114610d6857600080fd5b919050565b600060208284031215610d7f57600080fd5b6107d382610d51565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015610e0657888303603f19018552815180516001600160a01b0316845287810151606089860181905290610de882870182610cd7565b92890151958901959095525094870194925090860190600101610daf565b509098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610e4557610e45610e14565b604051601f8501601f19908116603f01168101908282118183101715610e6d57610e6d610e14565b81604052809350858152868686011115610e8657600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112610eb157600080fd5b6107d383833560208501610e2a565b60008060408385031215610ed357600080fd5b610edc83610d51565b9150602083013567ffffffffffffffff811115610ef857600080fd5b610f0485828601610ea0565b9150509250929050565b60008060408385031215610f2157600080fd5b823567ffffffffffffffff80821115610f3957600080fd5b818501915085601f830112610f4d57600080fd5b610f5c86833560208501610e2a565b93506020850135915080821115610f7257600080fd5b50610f0485828601610ea0565b634e487b7160e01b600052601160045260246000fd5b600082610fb257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600181811c90821680610fe157607f821691505b60208210810361100157634e487b7160e01b600052602260045260246000fd5b50919050565b818103818111156107d6576107d6610f7f565b808201808211156107d6576107d6610f7f565b60006001820161103f5761103f610f7f565b5060010190565b6040815260006110596040830185610cd7565b905060018060a01b03831660208301529392505050565b60006020828403121561108257600080fd5b8151801515811461109257600080fd5b9392505050565b601f8211156110df57600081815260208120601f850160051c810160208610156110c05750805b601f850160051c820191505b81811015610bb1578281556001016110cc565b505050565b815167ffffffffffffffff8111156110fe576110fe610e14565b6111128161110c8454610fcd565b84611099565b602080601f831160018114611147576000841561112f5750858301515b600019600386901b1c1916600185901b178555610bb1565b600085815260208120601f198616915b8281101561117657888601518255948401946001909101908401611157565b50858210156111945787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006111b76040830185610cd7565b9050826020830152939250505056fea2646970667358221220c8d97487d47a76bdb9e553b3622446fc69304ccbee2bc61748f5c7517a924a6a64736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd7220831

-----Decoded View---------------
Arg [0] : _pohVerifier (address): 0xBf14cFAFD7B83f6de881ae6dc10796ddD7220831

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bf14cfafd7b83f6de881ae6dc10796ddd7220831


Block Transaction Gas Used Reward
view all blocks sequenced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
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.