Source Code
Overview
ETH Balance
8,089.301595592 ETH
Token Holdings
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 22,105 transactions
| Transaction Hash |
Method
|
Block
|
From
|
To
|
Amount
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Claim | 8865215 | 172 days ago | IN | 0 ETH | 0.0000375 | ||||
| Claim | 8278440 | 255 days ago | IN | 0 ETH | 0.00000016 | ||||
| Claim | 8277591 | 255 days ago | IN | 0 ETH | 0.00000009 | ||||
| Claim | 8277413 | 255 days ago | IN | 0 ETH | 0.00000048 | ||||
| Claim | 8277408 | 255 days ago | IN | 0 ETH | 0.00000029 | ||||
| Claim | 8277408 | 255 days ago | IN | 0 ETH | 0.00000029 | ||||
| Claim | 8277407 | 255 days ago | IN | 0 ETH | 0.0000003 | ||||
| Claim | 8277407 | 255 days ago | IN | 0 ETH | 0.0000003 | ||||
| Claim | 8277407 | 255 days ago | IN | 0 ETH | 0.0000003 | ||||
| Claim | 8277406 | 255 days ago | IN | 0 ETH | 0.00000031 | ||||
| Claim | 8277406 | 255 days ago | IN | 0 ETH | 0.00000031 | ||||
| Claim | 8277405 | 255 days ago | IN | 0 ETH | 0.00000031 | ||||
| Claim | 8277405 | 255 days ago | IN | 0 ETH | 0.00000031 | ||||
| Claim | 8277405 | 255 days ago | IN | 0 ETH | 0.00000031 | ||||
| Claim | 8277404 | 255 days ago | IN | 0 ETH | 0.00000032 | ||||
| Claim | 8277404 | 255 days ago | IN | 0 ETH | 0.00000032 | ||||
| Claim | 8277404 | 255 days ago | IN | 0 ETH | 0.00000032 | ||||
| Claim | 8277403 | 255 days ago | IN | 0 ETH | 0.00000033 | ||||
| Claim | 8277403 | 255 days ago | IN | 0 ETH | 0.00000033 | ||||
| Claim | 8277403 | 255 days ago | IN | 0 ETH | 0.00000033 | ||||
| Claim | 8277402 | 255 days ago | IN | 0 ETH | 0.00000034 | ||||
| Claim | 8277402 | 255 days ago | IN | 0 ETH | 0.00000034 | ||||
| Claim | 8277402 | 255 days ago | IN | 0 ETH | 0.00000034 | ||||
| Claim | 8277401 | 255 days ago | IN | 0 ETH | 0.00000035 | ||||
| Claim | 8277401 | 255 days ago | IN | 0 ETH | 0.00000035 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
To
|
Amount
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 8278440 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277591 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277413 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277408 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277408 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277407 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277407 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277407 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277406 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277406 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277405 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277405 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277405 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277404 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277404 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277404 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277403 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277403 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277403 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277402 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277402 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277402 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277401 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277401 | 255 days ago | 0.0001 ETH | ||||
| Transfer | 8277400 | 255 days ago | 0.0001 ETH |
Loading...
Loading
Loading...
Loading
Contract Name:
TokenFaucetV2
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-02-21 */ // SPDX-License-Identifier: MIT AND UNLICENSED // File @openzeppelin/contracts/access/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (access/IAccessControl.sol) pragma solidity ^0.8.20; /** * @dev External interface of AccessControl declared to support ERC-165 detection. */ interface IAccessControl { /** * @dev The `account` is missing a role. */ error AccessControlUnauthorizedAccount(address account, bytes32 neededRole); /** * @dev The caller of a function is not the expected one. * * NOTE: Don't confuse with {AccessControlUnauthorizedAccount}. */ error AccessControlBadConfirmation(); /** * @dev Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` * * `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite * {RoleAdminChanged} not being emitted signaling this. */ event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole); /** * @dev Emitted when `account` is granted `role`. * * `sender` is the account that originated the contract call. This account bears the admin role (for the granted role). * Expected in cases where the role was granted using the internal {AccessControl-_grantRole}. */ event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Emitted when `account` is revoked `role`. * * `sender` is the account that originated the contract call: * - if using `revokeRole`, it is the admin role bearer * - if using `renounceRole`, it is the role bearer (i.e. `account`) */ event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender); /** * @dev Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) external view returns (bool); /** * @dev Returns the admin role that controls `role`. See {grantRole} and * {revokeRole}. * * To change a role's admin, use {AccessControl-_setRoleAdmin}. */ function getRoleAdmin(bytes32 role) external view returns (bytes32); /** * @dev Grants `role` to `account`. * * If `account` had not been already granted `role`, emits a {RoleGranted} * event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function grantRole(bytes32 role, address account) external; /** * @dev Revokes `role` from `account`. * * If `account` had been granted `role`, emits a {RoleRevoked} event. * * Requirements: * * - the caller must have ``role``'s admin role. */ function revokeRole(bytes32 role, address account) external; /** * @dev Revokes `role` from the calling account. * * Roles are often managed via {grantRole} and {revokeRole}: this function's * purpose is to provide a mechanism for accounts to lose their privileges * if they are compromised (such as when a trusted device is misplaced). * * If the calling account had been granted `role`, emits a {RoleRevoked} * event. * * Requirements: * * - the caller must be `callerConfirmation`. */ function renounceRole(bytes32 role, address callerConfirmation) external; } // File @openzeppelin/contracts/utils/[email protected] // Original license: 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; } } // File @openzeppelin/contracts/utils/introspection/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol) pragma solidity ^0.8.20; /** * @dev Interface of the ERC-165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[ERC]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); } // File @openzeppelin/contracts/utils/introspection/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol) pragma solidity ^0.8.20; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { return interfaceId == type(IERC165).interfaceId; } } // File @openzeppelin/contracts/access/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol) pragma solidity ^0.8.20; /** * @dev Contract module that allows children to implement role-based access * control mechanisms. This is a lightweight version that doesn't allow enumerating role * members except through off-chain means by accessing the contract event logs. Some * applications may benefit from on-chain enumerability, for those cases see * {AccessControlEnumerable}. * * Roles are referred to by their `bytes32` identifier. These should be exposed * in the external API and be unique. The best way to achieve this is by * using `public constant` hash digests: * * ```solidity * bytes32 public constant MY_ROLE = keccak256("MY_ROLE"); * ``` * * Roles can be used to represent a set of permissions. To restrict access to a * function call, use {hasRole}: * * ```solidity * function foo() public { * require(hasRole(MY_ROLE, msg.sender)); * ... * } * ``` * * Roles can be granted and revoked dynamically via the {grantRole} and * {revokeRole} functions. Each role has an associated admin role, and only * accounts that have a role's admin role can call {grantRole} and {revokeRole}. * * By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means * that only accounts with this role will be able to grant or revoke other * roles. More complex role relationships can be created by using * {_setRoleAdmin}. * * WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to * grant and revoke this role. Extra precautions should be taken to secure * accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} * to enforce additional security measures for this role. */ abstract contract AccessControl is Context, IAccessControl, ERC165 { struct RoleData { mapping(address account => bool) hasRole; bytes32 adminRole; } mapping(bytes32 role => RoleData) private _roles; bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00; /** * @dev Modifier that checks that an account has a specific role. Reverts * with an {AccessControlUnauthorizedAccount} error including the required role. */ modifier onlyRole(bytes32 role) { _checkRole(role); _; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId); } /** * @dev Returns `true` if `account` has been granted `role`. */ function hasRole(bytes32 role, address account) public view virtual returns (bool) { return _roles[role].hasRole[account]; } /** * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()` * is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier. */ function _checkRole(bytes32 role) internal view virtual { _checkRole(role, _msgSender()); } /** * @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account` * is missing `role`. */ function _checkRole(bytes32 role, address account) internal view virtual { if (!hasRole(role, account)) { revert AccessControlUnauthorizedAccount(account, role); } } /** * @dev Returns the admin role that controls `role`. See {grantRole} and * {revokeRole}. * * To change a role's admin, use {_setRoleAdmin}. */ function getRoleAdmin(bytes32 role) public view virtual returns (bytes32) { return _roles[role].adminRole; } /** * @dev Grants `role` to `account`. * * If `account` had not been already granted `role`, emits a {RoleGranted} * event. * * Requirements: * * - the caller must have ``role``'s admin role. * * May emit a {RoleGranted} event. */ function grantRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) { _grantRole(role, account); } /** * @dev Revokes `role` from `account`. * * If `account` had been granted `role`, emits a {RoleRevoked} event. * * Requirements: * * - the caller must have ``role``'s admin role. * * May emit a {RoleRevoked} event. */ function revokeRole(bytes32 role, address account) public virtual onlyRole(getRoleAdmin(role)) { _revokeRole(role, account); } /** * @dev Revokes `role` from the calling account. * * Roles are often managed via {grantRole} and {revokeRole}: this function's * purpose is to provide a mechanism for accounts to lose their privileges * if they are compromised (such as when a trusted device is misplaced). * * If the calling account had been revoked `role`, emits a {RoleRevoked} * event. * * Requirements: * * - the caller must be `callerConfirmation`. * * May emit a {RoleRevoked} event. */ function renounceRole(bytes32 role, address callerConfirmation) public virtual { if (callerConfirmation != _msgSender()) { revert AccessControlBadConfirmation(); } _revokeRole(role, callerConfirmation); } /** * @dev Sets `adminRole` as ``role``'s admin role. * * Emits a {RoleAdminChanged} event. */ function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual { bytes32 previousAdminRole = getRoleAdmin(role); _roles[role].adminRole = adminRole; emit RoleAdminChanged(role, previousAdminRole, adminRole); } /** * @dev Attempts to grant `role` to `account` and returns a boolean indicating if `role` was granted. * * Internal function without access restriction. * * May emit a {RoleGranted} event. */ function _grantRole(bytes32 role, address account) internal virtual returns (bool) { if (!hasRole(role, account)) { _roles[role].hasRole[account] = true; emit RoleGranted(role, account, _msgSender()); return true; } else { return false; } } /** * @dev Attempts to revoke `role` to `account` and returns a boolean indicating if `role` was revoked. * * Internal function without access restriction. * * May emit a {RoleRevoked} event. */ function _revokeRole(bytes32 role, address account) internal virtual returns (bool) { if (hasRole(role, account)) { _roles[role].hasRole[account] = false; emit RoleRevoked(role, account, _msgSender()); return true; } else { return false; } } } // File @openzeppelin/contracts/utils/[email protected] // Original license: SPDX_License_Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (utils/Pausable.sol) pragma solidity ^0.8.20; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { bool private _paused; /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); /** * @dev The operation failed because the contract is paused. */ error EnforcedPause(); /** * @dev The operation failed because the contract is not paused. */ error ExpectedPause(); /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { if (paused()) { revert EnforcedPause(); } } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { if (!paused()) { revert ExpectedPause(); } } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File contracts/TokenFaucetV2.sol // Original license: SPDX_License_Identifier: UNLICENSED pragma solidity ^0.8.24; contract TokenFaucetV2 is AccessControl, Pausable { // 0x4e10bd5d353f5445c05dc25a06a14c3ee1f440157e930852bc68c35cab010d16 bytes32 public constant TRUSTED_CLAIMER_ROLE = keccak256("faucet.trustedclaimer"); /// @notice Maximum claimable amount per day uint256 public maxDailyClaimAmount = 1 ether; /// @notice dailyClaimed records the total claimed amount for the current day for a given user mapping(address user => uint256 totalClaimedAmountToday) private userDailyClaimed; /// @notice lastClaimed tracks the last claim time for each user mapping(address user => uint256 lastClaimedAt) private userLastClaimed; /// @notice Emitted when a user claims from the faucet event Claim(address indexed user, uint256 amount, uint256 totalClaimedToday); /// @notice Emitted when the faucet is replenished event Replenish(address indexed addr, uint256 amount); /// @notice Thrown when a user tries to claim when the daily limit has been reached error DailyLimitReached(address claimer); /// @notice Thrown when the faucet has insufficient funds error InsufficientFunds(); /// @notice Thrown when the claim amount is invalid error InvalidClaimAmount(); constructor(address defaultAdmin, address trustedClaimer) { _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin); _grantRole(TRUSTED_CLAIMER_ROLE, trustedClaimer); } /// @notice Replenish the faucet with ether function replenish() external payable { require(msg.value > 0, "VerifiedFaucet: replenish amount must be greater than 0"); emit Replenish(msg.sender, msg.value); } /// @notice Claim token from the faucet /// @param receiver The address to receive the claimed amount /// @param amount The amount to claim function claim(address receiver, uint256 amount) external onlyRole(TRUSTED_CLAIMER_ROLE) whenNotPaused { if (amount == 0 || amount > maxDailyClaimAmount) { revert InvalidClaimAmount(); } if (address(this).balance < amount) { revert InsufficientFunds(); } uint256 today = _today(); uint256 lastClaimedDay = _lastClaimedDay(receiver); // Reset the daily claimed amount if a new day has started if (today > lastClaimedDay) { userDailyClaimed[receiver] = 0; } // Check if the claim would exceed the daily limit if (userDailyClaimed[receiver] + amount > maxDailyClaimAmount) { revert DailyLimitReached(receiver); } // Update the daily claimed amount and the last claim time userDailyClaimed[receiver] += amount; userLastClaimed[receiver] = block.timestamp; // Transfer the claimed amount and emit event payable(receiver).transfer(amount); emit Claim(receiver, amount, userDailyClaimed[receiver]); } /// @notice Check the total claimed amount for the current day for a given user /// @param user The address of the user function getClaimedToday(address user) external view returns (uint256) { uint256 today = _today(); uint256 lastClaimedDay = _lastClaimedDay(user); if (today > lastClaimedDay) { return 0; } return userDailyClaimed[user]; } /// @notice Update the claim amount function setMaxDailyClaimAmount(uint256 amount) external onlyRole(DEFAULT_ADMIN_ROLE) { if (amount == 0) { revert InvalidClaimAmount(); } maxDailyClaimAmount = amount; } /// @notice Pause the contract function pause() external onlyRole(DEFAULT_ADMIN_ROLE) { _pause(); } /// @notice Unpause the contract function unpause() external onlyRole(DEFAULT_ADMIN_ROLE) { _unpause(); } function _lastClaimedDay(address user) private view returns (uint256) { return userLastClaimed[user] / 1 days; } function _today() private view returns (uint256) { return block.timestamp / 1 days; } }
Contract ABI
API[{"inputs":[{"internalType":"address","name":"defaultAdmin","type":"address"},{"internalType":"address","name":"trustedClaimer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"address","name":"claimer","type":"address"}],"name":"DailyLimitReached","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"InsufficientFunds","type":"error"},{"inputs":[],"name":"InvalidClaimAmount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalClaimedToday","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Replenish","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TRUSTED_CLAIMER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getClaimedToday","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxDailyClaimAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"replenish","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxDailyClaimAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052670de0b6b3a76400006002553480156200001c575f80fd5b506040516200160038038062001600833981810160405281019062000042919062000275565b5f60015f6101000a81548160ff0219169083151502179055506200006f5f801b83620000ab60201b60201c565b50620000a27f4e10bd5d353f5445c05dc25a06a14c3ee1f440157e930852bc68c35cab010d1682620000ab60201b60201c565b505050620002ba565b5f620000be8383620001a660201b60201c565b6200019c5760015f808581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620001386200020960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050620001a0565b5f90505b92915050565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f33905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200023f8262000214565b9050919050565b620002518162000233565b81146200025c575f80fd5b50565b5f815190506200026f8162000246565b92915050565b5f80604083850312156200028e576200028d62000210565b5b5f6200029d858286016200025f565b9250506020620002b0858286016200025f565b9150509250929050565b61133880620002c85f395ff3fe6080604052600436106100f2575f3560e01c8063819af7ed11610089578063aad3ec9611610058578063aad3ec9614610308578063d163af7b14610330578063d547741f1461033a578063f5b9df6014610362576100f2565b8063819af7ed146102505780638456cb591461028c57806391d14854146102a2578063a217fddf146102de576100f2565b806336568abe116100c557806336568abe146101be5780633f4ba83a146101e6578063459b5725146101fc5780635c975abb14610226576100f2565b806301ffc9a7146100f65780630bc429d014610132578063248a9ca31461015a5780632f2ff15d14610196575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610ec6565b61038c565b6040516101299190610f0b565b60405180910390f35b34801561013d575f80fd5b5061015860048036038101906101539190610f57565b610405565b005b348015610165575f80fd5b50610180600480360381019061017b9190610fb5565b610455565b60405161018d9190610fef565b60405180910390f35b3480156101a1575f80fd5b506101bc60048036038101906101b79190611062565b610471565b005b3480156101c9575f80fd5b506101e460048036038101906101df9190611062565b610493565b005b3480156101f1575f80fd5b506101fa61050e565b005b348015610207575f80fd5b50610210610525565b60405161021d91906110af565b60405180910390f35b348015610231575f80fd5b5061023a61052b565b6040516102479190610f0b565b60405180910390f35b34801561025b575f80fd5b50610276600480360381019061027191906110c8565b610540565b60405161028391906110af565b60405180910390f35b348015610297575f80fd5b506102a06105b2565b005b3480156102ad575f80fd5b506102c860048036038101906102c39190611062565b6105c9565b6040516102d59190610f0b565b60405180910390f35b3480156102e9575f80fd5b506102f261062c565b6040516102ff9190610fef565b60405180910390f35b348015610313575f80fd5b5061032e600480360381019061032991906110f3565b610632565b005b610338610942565b005b348015610345575f80fd5b50610360600480360381019061035b9190611062565b6109d4565b005b34801561036d575f80fd5b506103766109f6565b6040516103839190610fef565b60405180910390f35b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103fe57506103fd82610a1a565b5b9050919050565b5f801b61041181610a83565b5f820361044a576040517f843ce46b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816002819055505050565b5f805f8381526020019081526020015f20600101549050919050565b61047a82610455565b61048381610a83565b61048d8383610a97565b50505050565b61049b610b80565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146104ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105098282610b87565b505050565b5f801b61051a81610a83565b610522610c70565b50565b60025481565b5f60015f9054906101000a900460ff16905090565b5f8061054a610cd1565b90505f61055684610ce6565b90508082111561056a575f925050506105ad565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054925050505b919050565b5f801b6105be81610a83565b6105c6610d3a565b50565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f801b81565b7f4e10bd5d353f5445c05dc25a06a14c3ee1f440157e930852bc68c35cab010d1661065c81610a83565b610664610d9b565b5f821480610673575060025482115b156106aa576040517f843ce46b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b814710156106e4576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6106ed610cd1565b90505f6106f985610ce6565b905080821115610746575f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6002548460035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610792919061115e565b11156107d557846040517f194ba9c30000000000000000000000000000000000000000000000000000000081526004016107cc91906111a0565b60405180910390fd5b8360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610821919061115e565b925050819055504260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff166108fc8590811502906040515f60405180830381858888f193505050501580156108ad573d5f803e3d5ffd5b508473ffffffffffffffffffffffffffffffffffffffff167f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf78560035f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516109339291906111b9565b60405180910390a25050505050565b5f3411610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90611260565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fad2ec448e71d9d6c821da861707c963d52ee3f9a7f87e39f23e7aee01844d65c346040516109ca91906110af565b60405180910390a2565b6109dd82610455565b6109e681610a83565b6109f08383610b87565b50505050565b7f4e10bd5d353f5445c05dc25a06a14c3ee1f440157e930852bc68c35cab010d1681565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610a9481610a8f610b80565b610ddc565b50565b5f610aa283836105c9565b610b765760015f808581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610b13610b80565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610b7a565b5f90505b92915050565b5f33905090565b5f610b9283836105c9565b15610c66575f805f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610c03610b80565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610c6a565b5f90505b92915050565b610c78610e2d565b5f60015f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610cba610b80565b604051610cc791906111a0565b60405180910390a1565b5f6201518042610ce191906112ab565b905090565b5f6201518060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d3391906112ab565b9050919050565b610d42610d9b565b6001805f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d84610b80565b604051610d9191906111a0565b60405180910390a1565b610da361052b565b15610dda576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610de682826105c9565b610e295780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e209291906112db565b60405180910390fd5b5050565b610e3561052b565b610e6b576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ea581610e71565b8114610eaf575f80fd5b50565b5f81359050610ec081610e9c565b92915050565b5f60208284031215610edb57610eda610e6d565b5b5f610ee884828501610eb2565b91505092915050565b5f8115159050919050565b610f0581610ef1565b82525050565b5f602082019050610f1e5f830184610efc565b92915050565b5f819050919050565b610f3681610f24565b8114610f40575f80fd5b50565b5f81359050610f5181610f2d565b92915050565b5f60208284031215610f6c57610f6b610e6d565b5b5f610f7984828501610f43565b91505092915050565b5f819050919050565b610f9481610f82565b8114610f9e575f80fd5b50565b5f81359050610faf81610f8b565b92915050565b5f60208284031215610fca57610fc9610e6d565b5b5f610fd784828501610fa1565b91505092915050565b610fe981610f82565b82525050565b5f6020820190506110025f830184610fe0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61103182611008565b9050919050565b61104181611027565b811461104b575f80fd5b50565b5f8135905061105c81611038565b92915050565b5f806040838503121561107857611077610e6d565b5b5f61108585828601610fa1565b92505060206110968582860161104e565b9150509250929050565b6110a981610f24565b82525050565b5f6020820190506110c25f8301846110a0565b92915050565b5f602082840312156110dd576110dc610e6d565b5b5f6110ea8482850161104e565b91505092915050565b5f806040838503121561110957611108610e6d565b5b5f6111168582860161104e565b925050602061112785828601610f43565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61116882610f24565b915061117383610f24565b925082820190508082111561118b5761118a611131565b5b92915050565b61119a81611027565b82525050565b5f6020820190506111b35f830184611191565b92915050565b5f6040820190506111cc5f8301856110a0565b6111d960208301846110a0565b9392505050565b5f82825260208201905092915050565b7f56657269666965644661756365743a207265706c656e69736820616d6f756e745f8201527f206d7573742062652067726561746572207468616e2030000000000000000000602082015250565b5f61124a6037836111e0565b9150611255826111f0565b604082019050919050565b5f6020820190508181035f8301526112778161123e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6112b582610f24565b91506112c083610f24565b9250826112d0576112cf61127e565b5b828204905092915050565b5f6040820190506112ee5f830185611191565b6112fb6020830184610fe0565b939250505056fea26469706673582212205ee8375c8b7d315a3f7a0326e98801485e99fc1112a162e8bcfc3dfc0df4971864736f6c634300081800330000000000000000000000007237d795b3983a9f220bfdda18a7f55d4be8911f0000000000000000000000006cd01c0f55ce9e0bf78f5e90f72b4345b16d515d
Deployed Bytecode
0x6080604052600436106100f2575f3560e01c8063819af7ed11610089578063aad3ec9611610058578063aad3ec9614610308578063d163af7b14610330578063d547741f1461033a578063f5b9df6014610362576100f2565b8063819af7ed146102505780638456cb591461028c57806391d14854146102a2578063a217fddf146102de576100f2565b806336568abe116100c557806336568abe146101be5780633f4ba83a146101e6578063459b5725146101fc5780635c975abb14610226576100f2565b806301ffc9a7146100f65780630bc429d014610132578063248a9ca31461015a5780632f2ff15d14610196575b5f80fd5b348015610101575f80fd5b5061011c60048036038101906101179190610ec6565b61038c565b6040516101299190610f0b565b60405180910390f35b34801561013d575f80fd5b5061015860048036038101906101539190610f57565b610405565b005b348015610165575f80fd5b50610180600480360381019061017b9190610fb5565b610455565b60405161018d9190610fef565b60405180910390f35b3480156101a1575f80fd5b506101bc60048036038101906101b79190611062565b610471565b005b3480156101c9575f80fd5b506101e460048036038101906101df9190611062565b610493565b005b3480156101f1575f80fd5b506101fa61050e565b005b348015610207575f80fd5b50610210610525565b60405161021d91906110af565b60405180910390f35b348015610231575f80fd5b5061023a61052b565b6040516102479190610f0b565b60405180910390f35b34801561025b575f80fd5b50610276600480360381019061027191906110c8565b610540565b60405161028391906110af565b60405180910390f35b348015610297575f80fd5b506102a06105b2565b005b3480156102ad575f80fd5b506102c860048036038101906102c39190611062565b6105c9565b6040516102d59190610f0b565b60405180910390f35b3480156102e9575f80fd5b506102f261062c565b6040516102ff9190610fef565b60405180910390f35b348015610313575f80fd5b5061032e600480360381019061032991906110f3565b610632565b005b610338610942565b005b348015610345575f80fd5b50610360600480360381019061035b9190611062565b6109d4565b005b34801561036d575f80fd5b506103766109f6565b6040516103839190610fef565b60405180910390f35b5f7f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806103fe57506103fd82610a1a565b5b9050919050565b5f801b61041181610a83565b5f820361044a576040517f843ce46b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816002819055505050565b5f805f8381526020019081526020015f20600101549050919050565b61047a82610455565b61048381610a83565b61048d8383610a97565b50505050565b61049b610b80565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146104ff576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105098282610b87565b505050565b5f801b61051a81610a83565b610522610c70565b50565b60025481565b5f60015f9054906101000a900460ff16905090565b5f8061054a610cd1565b90505f61055684610ce6565b90508082111561056a575f925050506105ad565b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054925050505b919050565b5f801b6105be81610a83565b6105c6610d3a565b50565b5f805f8481526020019081526020015f205f015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b5f801b81565b7f4e10bd5d353f5445c05dc25a06a14c3ee1f440157e930852bc68c35cab010d1661065c81610a83565b610664610d9b565b5f821480610673575060025482115b156106aa576040517f843ce46b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b814710156106e4576040517f356680b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6106ed610cd1565b90505f6106f985610ce6565b905080821115610746575f60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6002548460035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610792919061115e565b11156107d557846040517f194ba9c30000000000000000000000000000000000000000000000000000000081526004016107cc91906111a0565b60405180910390fd5b8360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610821919061115e565b925050819055504260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff166108fc8590811502906040515f60405180830381858888f193505050501580156108ad573d5f803e3d5ffd5b508473ffffffffffffffffffffffffffffffffffffffff167f34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf78560035f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516109339291906111b9565b60405180910390a25050505050565b5f3411610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b90611260565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fad2ec448e71d9d6c821da861707c963d52ee3f9a7f87e39f23e7aee01844d65c346040516109ca91906110af565b60405180910390a2565b6109dd82610455565b6109e681610a83565b6109f08383610b87565b50505050565b7f4e10bd5d353f5445c05dc25a06a14c3ee1f440157e930852bc68c35cab010d1681565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610a9481610a8f610b80565b610ddc565b50565b5f610aa283836105c9565b610b765760015f808581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610b13610b80565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610b7a565b5f90505b92915050565b5f33905090565b5f610b9283836105c9565b15610c66575f805f8581526020019081526020015f205f015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550610c03610b80565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610c6a565b5f90505b92915050565b610c78610e2d565b5f60015f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610cba610b80565b604051610cc791906111a0565b60405180910390a1565b5f6201518042610ce191906112ab565b905090565b5f6201518060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d3391906112ab565b9050919050565b610d42610d9b565b6001805f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610d84610b80565b604051610d9191906111a0565b60405180910390a1565b610da361052b565b15610dda576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b610de682826105c9565b610e295780826040517fe2517d3f000000000000000000000000000000000000000000000000000000008152600401610e209291906112db565b60405180910390fd5b5050565b610e3561052b565b610e6b576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f80fd5b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b610ea581610e71565b8114610eaf575f80fd5b50565b5f81359050610ec081610e9c565b92915050565b5f60208284031215610edb57610eda610e6d565b5b5f610ee884828501610eb2565b91505092915050565b5f8115159050919050565b610f0581610ef1565b82525050565b5f602082019050610f1e5f830184610efc565b92915050565b5f819050919050565b610f3681610f24565b8114610f40575f80fd5b50565b5f81359050610f5181610f2d565b92915050565b5f60208284031215610f6c57610f6b610e6d565b5b5f610f7984828501610f43565b91505092915050565b5f819050919050565b610f9481610f82565b8114610f9e575f80fd5b50565b5f81359050610faf81610f8b565b92915050565b5f60208284031215610fca57610fc9610e6d565b5b5f610fd784828501610fa1565b91505092915050565b610fe981610f82565b82525050565b5f6020820190506110025f830184610fe0565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61103182611008565b9050919050565b61104181611027565b811461104b575f80fd5b50565b5f8135905061105c81611038565b92915050565b5f806040838503121561107857611077610e6d565b5b5f61108585828601610fa1565b92505060206110968582860161104e565b9150509250929050565b6110a981610f24565b82525050565b5f6020820190506110c25f8301846110a0565b92915050565b5f602082840312156110dd576110dc610e6d565b5b5f6110ea8482850161104e565b91505092915050565b5f806040838503121561110957611108610e6d565b5b5f6111168582860161104e565b925050602061112785828601610f43565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61116882610f24565b915061117383610f24565b925082820190508082111561118b5761118a611131565b5b92915050565b61119a81611027565b82525050565b5f6020820190506111b35f830184611191565b92915050565b5f6040820190506111cc5f8301856110a0565b6111d960208301846110a0565b9392505050565b5f82825260208201905092915050565b7f56657269666965644661756365743a207265706c656e69736820616d6f756e745f8201527f206d7573742062652067726561746572207468616e2030000000000000000000602082015250565b5f61124a6037836111e0565b9150611255826111f0565b604082019050919050565b5f6020820190508181035f8301526112778161123e565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6112b582610f24565b91506112c083610f24565b9250826112d0576112cf61127e565b5b828204905092915050565b5f6040820190506112ee5f830185611191565b6112fb6020830184610fe0565b939250505056fea26469706673582212205ee8375c8b7d315a3f7a0326e98801485e99fc1112a162e8bcfc3dfc0df4971864736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007237d795b3983a9f220bfdda18a7f55d4be8911f0000000000000000000000006cd01c0f55ce9e0bf78f5e90f72b4345b16d515d
-----Decoded View---------------
Arg [0] : defaultAdmin (address): 0x7237D795b3983a9F220bFDda18A7f55d4bE8911f
Arg [1] : trustedClaimer (address): 0x6Cd01c0F55ce9E0Bf78f5E90f72b4345b16d515d
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007237d795b3983a9f220bfdda18a7f55d4be8911f
Arg [1] : 0000000000000000000000006cd01c0f55ce9e0bf78f5e90f72b4345b16d515d
Deployed Bytecode Sourcemap
16937:4143:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9199:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20364:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10479:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10911:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12048:251;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20750:86;;;;;;;;;;;;;:::i;:::-;;17209:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15780:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20027:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20622:82;;;;;;;;;;;;;:::i;:::-;;9495:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8807:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18767:1122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18418:186;;;:::i;:::-;;11342:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17069:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9199:204;9284:4;9323:32;9308:47;;;:11;:47;;;;:87;;;;9359:36;9383:11;9359:23;:36::i;:::-;9308:87;9301:94;;9199:204;;;:::o;20364:214::-;8852:4;20430:18;;9091:16;9102:4;9091:10;:16::i;:::-;20475:1:::1;20465:6;:11:::0;20461:71:::1;;20500:20;;;;;;;;;;;;;;20461:71;20564:6;20542:19;:28;;;;20364:214:::0;;:::o;10479:122::-;10544:7;10571:6;:12;10578:4;10571:12;;;;;;;;;;;:22;;;10564:29;;10479:122;;;:::o;10911:138::-;10985:18;10998:4;10985:12;:18::i;:::-;9091:16;9102:4;9091:10;:16::i;:::-;11016:25:::1;11027:4;11033:7;11016:10;:25::i;:::-;;10911:138:::0;;;:::o;12048:251::-;12164:12;:10;:12::i;:::-;12142:34;;:18;:34;;;12138:104;;12200:30;;;;;;;;;;;;;;12138:104;12254:37;12266:4;12272:18;12254:11;:37::i;:::-;;12048:251;;:::o;20750:86::-;8852:4;20787:18;;9091:16;9102:4;9091:10;:16::i;:::-;20818:10:::1;:8;:10::i;:::-;20750:86:::0;:::o;17209:44::-;;;;:::o;15780:86::-;15827:4;15851:7;;;;;;;;;;;15844:14;;15780:86;:::o;20027:288::-;20089:7;20109:13;20125:8;:6;:8::i;:::-;20109:24;;20144:22;20169:21;20185:4;20169:15;:21::i;:::-;20144:46;;20215:14;20207:5;:22;20203:63;;;20253:1;20246:8;;;;;;20203:63;20285:16;:22;20302:4;20285:22;;;;;;;;;;;;;;;;20278:29;;;;20027:288;;;;:::o;20622:82::-;8852:4;20657:18;;9091:16;9102:4;9091:10;:16::i;:::-;20688:8:::1;:6;:8::i;:::-;20622:82:::0;:::o;9495:138::-;9572:4;9596:6;:12;9603:4;9596:12;;;;;;;;;;;:20;;:29;9617:7;9596:29;;;;;;;;;;;;;;;;;;;;;;;;;9589:36;;9495:138;;;;:::o;8807:49::-;8852:4;8807:49;;;:::o;18767:1122::-;17116:34;9091:16;9102:4;9091:10;:16::i;:::-;15385:19:::1;:17;:19::i;:::-;18895:1:::2;18885:6;:11;:43;;;;18909:19;;18900:6;:28;18885:43;18881:103;;;18952:20;;;;;;;;;;;;;;18881:103;19022:6;18998:21;:30;18994:89;;;19052:19;;;;;;;;;;;;;;18994:89;19095:13;19111:8;:6;:8::i;:::-;19095:24;;19130:22;19155:25;19171:8;19155:15;:25::i;:::-;19130:50;;19273:14;19265:5;:22;19261:85;;;19333:1;19304:16;:26;19321:8;19304:26;;;;;;;;;;;;;;;:30;;;;19261:85;19460:19;;19451:6;19422:16;:26;19439:8;19422:26;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;:57;19418:124;;;19521:8;19503:27;;;;;;;;;;;:::i;:::-;;;;;;;;19418:124;19652:6;19622:16;:26;19639:8;19622:26;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;19697:15;19669;:25;19685:8;19669:25;;;;;;;;;;;;;;;:43;;;;19788:8;19780:26;;:34;19807:6;19780:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;19836:8;19830:51;;;19846:6;19854:16;:26;19871:8;19854:26;;;;;;;;;;;;;;;;19830:51;;;;;;;:::i;:::-;;;;;;;;18870:1019;;18767:1122:::0;;;:::o;18418:186::-;18487:1;18475:9;:13;18467:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;18574:10;18564:32;;;18586:9;18564:32;;;;;;:::i;:::-;;;;;;;;18418:186::o;11342:140::-;11417:18;11430:4;11417:12;:18::i;:::-;9091:16;9102:4;9091:10;:16::i;:::-;11448:26:::1;11460:4;11466:7;11448:11;:26::i;:::-;;11342:140:::0;;;:::o;17069:81::-;17116:34;17069:81;:::o;6480:148::-;6556:4;6595:25;6580:40;;;:11;:40;;;;6573:47;;6480:148;;;:::o;9848:105::-;9915:30;9926:4;9932:12;:10;:12::i;:::-;9915:10;:30::i;:::-;9848:105;:::o;12925:324::-;13002:4;13024:22;13032:4;13038:7;13024;:22::i;:::-;13019:223;;13095:4;13063:6;:12;13070:4;13063:12;;;;;;;;;;;:20;;:29;13084:7;13063:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13146:12;:10;:12::i;:::-;13119:40;;13137:7;13119:40;;13131:4;13119:40;;;;;;;;;;13181:4;13174:11;;;;13019:223;13225:5;13218:12;;12925:324;;;;;:::o;4331:98::-;4384:7;4411:10;4404:17;;4331:98;:::o;13493:325::-;13571:4;13592:22;13600:4;13606:7;13592;:22::i;:::-;13588:223;;;13663:5;13631:6;:12;13638:4;13631:12;;;;;;;;;;;:20;;:29;13652:7;13631:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;13715:12;:10;:12::i;:::-;13688:40;;13706:7;13688:40;;13700:4;13688:40;;;;;;;;;;13750:4;13743:11;;;;13588:223;13794:5;13787:12;;13493:325;;;;;:::o;16681:120::-;15644:16;:14;:16::i;:::-;16750:5:::1;16740:7;;:15;;;;;;;;;;;;;;;;;;16771:22;16780:12;:10;:12::i;:::-;16771:22;;;;;;:::i;:::-;;;;;;;;16681:120::o:0;20978:99::-;21018:7;21063:6;21045:15;:24;;;;:::i;:::-;21038:31;;20978:99;:::o;20844:126::-;20905:7;20956:6;20932:15;:21;20948:4;20932:21;;;;;;;;;;;;;;;;:30;;;;:::i;:::-;20925:37;;20844:126;;;:::o;16422:118::-;15385:19;:17;:19::i;:::-;16492:4:::1;16482:7:::0;::::1;:14;;;;;;;;;;;;;;;;;;16512:20;16519:12;:10;:12::i;:::-;16512:20;;;;;;:::i;:::-;;;;;;;;16422:118::o:0;15939:132::-;16005:8;:6;:8::i;:::-;16001:63;;;16037:15;;;;;;;;;;;;;;16001:63;15939:132::o;10089:201::-;10178:22;10186:4;10192:7;10178;:22::i;:::-;10173:110;;10257:7;10266:4;10224:47;;;;;;;;;;;;:::i;:::-;;;;;;;;10173:110;10089:201;;:::o;16148:130::-;16212:8;:6;:8::i;:::-;16207:64;;16244:15;;;;;;;;;;;;;;16207:64;16148:130::o;88:117:1:-;197:1;194;187:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:77::-;1555:7;1584:5;1573:16;;1518:77;;;:::o;1601:122::-;1674:24;1692:5;1674:24;:::i;:::-;1667:5;1664:35;1654:63;;1713:1;1710;1703:12;1654:63;1601:122;:::o;1729:139::-;1775:5;1813:6;1800:20;1791:29;;1829:33;1856:5;1829:33;:::i;:::-;1729:139;;;;:::o;1874:329::-;1933:6;1982:2;1970:9;1961:7;1957:23;1953:32;1950:119;;;1988:79;;:::i;:::-;1950:119;2108:1;2133:53;2178:7;2169:6;2158:9;2154:22;2133:53;:::i;:::-;2123:63;;2079:117;1874:329;;;;:::o;2209:77::-;2246:7;2275:5;2264:16;;2209:77;;;:::o;2292:122::-;2365:24;2383:5;2365:24;:::i;:::-;2358:5;2355:35;2345:63;;2404:1;2401;2394:12;2345:63;2292:122;:::o;2420:139::-;2466:5;2504:6;2491:20;2482:29;;2520:33;2547:5;2520:33;:::i;:::-;2420:139;;;;:::o;2565:329::-;2624:6;2673:2;2661:9;2652:7;2648:23;2644:32;2641:119;;;2679:79;;:::i;:::-;2641:119;2799:1;2824:53;2869:7;2860:6;2849:9;2845:22;2824:53;:::i;:::-;2814:63;;2770:117;2565:329;;;;:::o;2900:118::-;2987:24;3005:5;2987:24;:::i;:::-;2982:3;2975:37;2900:118;;:::o;3024:222::-;3117:4;3155:2;3144:9;3140:18;3132:26;;3168:71;3236:1;3225:9;3221:17;3212:6;3168:71;:::i;:::-;3024:222;;;;:::o;3252:126::-;3289:7;3329:42;3322:5;3318:54;3307:65;;3252:126;;;:::o;3384:96::-;3421:7;3450:24;3468:5;3450:24;:::i;:::-;3439:35;;3384:96;;;:::o;3486:122::-;3559:24;3577:5;3559:24;:::i;:::-;3552:5;3549:35;3539:63;;3598:1;3595;3588:12;3539:63;3486:122;:::o;3614:139::-;3660:5;3698:6;3685:20;3676:29;;3714:33;3741:5;3714:33;:::i;:::-;3614:139;;;;:::o;3759:474::-;3827:6;3835;3884:2;3872:9;3863:7;3859:23;3855:32;3852:119;;;3890:79;;:::i;:::-;3852:119;4010:1;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3981:117;4137:2;4163:53;4208:7;4199:6;4188:9;4184:22;4163:53;:::i;:::-;4153:63;;4108:118;3759:474;;;;;:::o;4239:118::-;4326:24;4344:5;4326:24;:::i;:::-;4321:3;4314:37;4239:118;;:::o;4363:222::-;4456:4;4494:2;4483:9;4479:18;4471:26;;4507:71;4575:1;4564:9;4560:17;4551:6;4507:71;:::i;:::-;4363:222;;;;:::o;4591:329::-;4650:6;4699:2;4687:9;4678:7;4674:23;4670:32;4667:119;;;4705:79;;:::i;:::-;4667:119;4825:1;4850:53;4895:7;4886:6;4875:9;4871:22;4850:53;:::i;:::-;4840:63;;4796:117;4591:329;;;;:::o;4926:474::-;4994:6;5002;5051:2;5039:9;5030:7;5026:23;5022:32;5019:119;;;5057:79;;:::i;:::-;5019:119;5177:1;5202:53;5247:7;5238:6;5227:9;5223:22;5202:53;:::i;:::-;5192:63;;5148:117;5304:2;5330:53;5375:7;5366:6;5355:9;5351:22;5330:53;:::i;:::-;5320:63;;5275:118;4926:474;;;;;:::o;5406:180::-;5454:77;5451:1;5444:88;5551:4;5548:1;5541:15;5575:4;5572:1;5565:15;5592:191;5632:3;5651:20;5669:1;5651:20;:::i;:::-;5646:25;;5685:20;5703:1;5685:20;:::i;:::-;5680:25;;5728:1;5725;5721:9;5714:16;;5749:3;5746:1;5743:10;5740:36;;;5756:18;;:::i;:::-;5740:36;5592:191;;;;:::o;5789:118::-;5876:24;5894:5;5876:24;:::i;:::-;5871:3;5864:37;5789:118;;:::o;5913:222::-;6006:4;6044:2;6033:9;6029:18;6021:26;;6057:71;6125:1;6114:9;6110:17;6101:6;6057:71;:::i;:::-;5913:222;;;;:::o;6141:332::-;6262:4;6300:2;6289:9;6285:18;6277:26;;6313:71;6381:1;6370:9;6366:17;6357:6;6313:71;:::i;:::-;6394:72;6462:2;6451:9;6447:18;6438:6;6394:72;:::i;:::-;6141:332;;;;;:::o;6479:169::-;6563:11;6597:6;6592:3;6585:19;6637:4;6632:3;6628:14;6613:29;;6479:169;;;;:::o;6654:242::-;6794:34;6790:1;6782:6;6778:14;6771:58;6863:25;6858:2;6850:6;6846:15;6839:50;6654:242;:::o;6902:366::-;7044:3;7065:67;7129:2;7124:3;7065:67;:::i;:::-;7058:74;;7141:93;7230:3;7141:93;:::i;:::-;7259:2;7254:3;7250:12;7243:19;;6902:366;;;:::o;7274:419::-;7440:4;7478:2;7467:9;7463:18;7455:26;;7527:9;7521:4;7517:20;7513:1;7502:9;7498:17;7491:47;7555:131;7681:4;7555:131;:::i;:::-;7547:139;;7274:419;;;:::o;7699:180::-;7747:77;7744:1;7737:88;7844:4;7841:1;7834:15;7868:4;7865:1;7858:15;7885:185;7925:1;7942:20;7960:1;7942:20;:::i;:::-;7937:25;;7976:20;7994:1;7976:20;:::i;:::-;7971:25;;8015:1;8005:35;;8020:18;;:::i;:::-;8005:35;8062:1;8059;8055:9;8050:14;;7885:185;;;;:::o;8076:332::-;8197:4;8235:2;8224:9;8220:18;8212:26;;8248:71;8316:1;8305:9;8301:17;8292:6;8248:71;:::i;:::-;8329:72;8397:2;8386:9;8382:18;8373:6;8329:72;:::i;:::-;8076:332;;;;;:::o
Swarm Source
ipfs://5ee8375c8b7d315a3f7a0326e98801485e99fc1112a162e8bcfc3dfc0df49718
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.