Source Code
Overview
ETH Balance
ETH Value
$0.00Latest 25 from a total of 7,822 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Say GM | 28713277 | 22 hrs ago | IN | 0 ETH | 0.00000492 | ||||
| Say GM | 28703682 | 33 hrs ago | IN | 0 ETH | 0.0000047 | ||||
| Say GM | 28703488 | 33 hrs ago | IN | 0 ETH | 0.00000466 | ||||
| Say GM | 28681935 | 2 days ago | IN | 0 ETH | 0.00000448 | ||||
| Say GM | 28681928 | 2 days ago | IN | 0 ETH | 0.00000615 | ||||
| Say GM | 28675414 | 2 days ago | IN | 0 ETH | 0.00000492 | ||||
| Say GM | 28647269 | 3 days ago | IN | 0 ETH | 0.00000504 | ||||
| Say GM | 28622909 | 4 days ago | IN | 0 ETH | 0.00000607 | ||||
| Say GM | 28616064 | 4 days ago | IN | 0 ETH | 0.00000492 | ||||
| Say GM | 28597683 | 5 days ago | IN | 0 ETH | 0.00000646 | ||||
| Say GM | 28595191 | 5 days ago | IN | 0 ETH | 0.00000482 | ||||
| Say GM | 28590835 | 5 days ago | IN | 0 ETH | 0.00000771 | ||||
| Say GM | 28589078 | 5 days ago | IN | 0 ETH | 0.00000483 | ||||
| Say GM | 28530270 | 7 days ago | IN | 0 ETH | 0.00000615 | ||||
| Say GM | 28530255 | 7 days ago | IN | 0 ETH | 0.00000459 | ||||
| Say GM | 28514313 | 8 days ago | IN | 0 ETH | 0.0000047 | ||||
| Say GM | 28492112 | 8 days ago | IN | 0 ETH | 0.00000492 | ||||
| Say GM | 28481152 | 9 days ago | IN | 0 ETH | 0.00000475 | ||||
| Say GM | 28481147 | 9 days ago | IN | 0 ETH | 0.00000482 | ||||
| Say GM | 28461756 | 10 days ago | IN | 0 ETH | 0.00000471 | ||||
| Say GM | 28461754 | 10 days ago | IN | 0 ETH | 0.00000466 | ||||
| Say GM | 28461750 | 10 days ago | IN | 0 ETH | 0.00000466 | ||||
| Say GM | 28461747 | 10 days ago | IN | 0 ETH | 0.00000466 | ||||
| Say GM | 28461744 | 10 days ago | IN | 0 ETH | 0.00000466 | ||||
| Say GM | 28461739 | 10 days ago | IN | 0 ETH | 0.00000466 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 28713277 | 22 hrs ago | 0 ETH | ||||
| 28703682 | 33 hrs ago | 0 ETH | ||||
| 28703488 | 33 hrs ago | 0 ETH | ||||
| 28681935 | 2 days ago | 0 ETH | ||||
| 28681928 | 2 days ago | 0 ETH | ||||
| 28675414 | 2 days ago | 0 ETH | ||||
| 28647269 | 3 days ago | 0 ETH | ||||
| 28622909 | 4 days ago | 0 ETH | ||||
| 28616064 | 4 days ago | 0 ETH | ||||
| 28597683 | 5 days ago | 0 ETH | ||||
| 28595191 | 5 days ago | 0 ETH | ||||
| 28590835 | 5 days ago | 0 ETH | ||||
| 28589078 | 5 days ago | 0 ETH | ||||
| 28530270 | 7 days ago | 0 ETH | ||||
| 28530255 | 7 days ago | 0 ETH | ||||
| 28514313 | 8 days ago | 0 ETH | ||||
| 28492112 | 8 days ago | 0 ETH | ||||
| 28481152 | 9 days ago | 0 ETH | ||||
| 28481147 | 9 days ago | 0 ETH | ||||
| 28461756 | 10 days ago | 0 ETH | ||||
| 28461754 | 10 days ago | 0 ETH | ||||
| 28461750 | 10 days ago | 0 ETH | ||||
| 28461747 | 10 days ago | 0 ETH | ||||
| 28461744 | 10 days ago | 0 ETH | ||||
| 28461739 | 10 days ago | 0 ETH |
Loading...
Loading
Contract Name:
DailyGM
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 200 runs
Other Settings:
london EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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);
}
}{
"evmVersion": "london",
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": []
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
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.