Overview
S Balance
S Value
$0.00More Info
Private Name Tags
ContractCreator
Loading...
Loading
Contract Name:
MasterFarmer
Compiler Version
v0.8.20+commit.a1b79de6
Optimization Enabled:
Yes with 9999 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.20;import "@openzeppelin/contracts/token/ERC20/IERC20.sol";import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/utils/ReentrancyGuard.sol";import "./Five.sol";// MasterFarmer is the master of FIVE. He can make FIVE and he is a fair guy.contract MasterFarmer is Ownable, ReentrancyGuard {using SafeERC20 for IERC20;// Info of each pool.struct PoolInfo {IERC20 lpToken; // Address of LP token contract.uint256 allocPoint; // How many allocation points assigned to this pool.uint256 lastRewardBlockTime; // Last block time that FIVE distributions occur.uint256 accFivePerShare; // Accumulated FIVE per share, times 1e12.}// Info of each user.struct UserInfo {uint256 amount; // How many LP tokens the user has provided.uint256 rewardDebt; // Reward debt.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)pragma solidity ^0.8.20;import {Context} from "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** The initial owner is set to the address provided by the deployer. This can* later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/abstract contract Ownable is Context {address private _owner;/*** @dev The caller account is not authorized to perform an operation.*/error OwnableUnauthorizedAccount(address account);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/draft-IERC6093.sol)pragma solidity ^0.8.20;/*** @dev Standard ERC-20 Errors* Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC-20 tokens.*/interface IERC20Errors {/*** @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.* @param balance Current balance for the interacting account.* @param needed Minimum amount required to perform a transfer.*/error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);/*** @dev Indicates a failure with the token `sender`. Used in transfers.* @param sender Address whose tokens are being transferred.*/error ERC20InvalidSender(address sender);/*** @dev Indicates a failure with the token `receiver`. Used in transfers.* @param receiver Address to which tokens are being transferred.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (interfaces/IERC1363.sol)pragma solidity ^0.8.20;import {IERC20} from "./IERC20.sol";import {IERC165} from "./IERC165.sol";/*** @title IERC1363* @dev Interface of the ERC-1363 standard as defined in the https://eips.ethereum.org/EIPS/eip-1363[ERC-1363].** Defines an extension interface for ERC-20 tokens that supports executing code on a recipient contract* after `transfer` or `transferFrom`, or code on a spender contract after `approve`, in a single transaction.*/interface IERC1363 is IERC20, IERC165 {/** Note: the ERC-165 identifier for this interface is 0xb0202a11.* 0xb0202a11 ===* bytes4(keccak256('transferAndCall(address,uint256)')) ^* bytes4(keccak256('transferAndCall(address,uint256,bytes)')) ^* bytes4(keccak256('transferFromAndCall(address,address,uint256)')) ^* bytes4(keccak256('transferFromAndCall(address,address,uint256,bytes)')) ^* bytes4(keccak256('approveAndCall(address,uint256)')) ^* bytes4(keccak256('approveAndCall(address,uint256,bytes)'))*/
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC165.sol)pragma solidity ^0.8.20;import {IERC165} from "../utils/introspection/IERC165.sol";
123456// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "../token/ERC20/IERC20.sol";
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5267.sol)pragma solidity ^0.8.20;interface IERC5267 {/*** @dev MAY be emitted to signal that the domain could have changed.*/event EIP712DomainChanged();/*** @dev returns the fields and values that describe the domain separator used by this contract for EIP-712* signature.*/function eip712Domain()externalviewreturns (bytes1 fields,string memory name,string memory version,uint256 chainId,address verifyingContract,bytes32 salt,uint256[] memory extensions
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.2.0) (token/ERC20/ERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "./IERC20.sol";import {IERC20Metadata} from "./extensions/IERC20Metadata.sol";import {Context} from "../../utils/Context.sol";import {IERC20Errors} from "../../interfaces/draft-IERC6093.sol";/*** @dev Implementation of the {IERC20} interface.** This implementation is agnostic to the way tokens are created. This means* that a supply mechanism has to be added in a derived contract using {_mint}.** TIP: For a detailed writeup see our guide* https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How* to implement supply mechanisms].** The default value of {decimals} is 18. To change this, you should override* this function so it returns a different value.** We have followed general OpenZeppelin Contracts guidelines: functions revert* instead returning `false` on failure. This behavior is nonetheless* conventional and does not conflict with the expectations of ERC-20
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/ERC20Permit.sol)pragma solidity ^0.8.20;import {IERC20Permit} from "./IERC20Permit.sol";import {ERC20} from "../ERC20.sol";import {ECDSA} from "../../../utils/cryptography/ECDSA.sol";import {EIP712} from "../../../utils/cryptography/EIP712.sol";import {Nonces} from "../../../utils/Nonces.sol";/*** @dev Implementation of the ERC-20 Permit extension allowing approvals to be made via signatures, as defined in* https://eips.ethereum.org/EIPS/eip-2612[ERC-2612].** Adds the {permit} method, which can be used to change an account's ERC-20 allowance (see {IERC20-allowance}) by* presenting a message signed by the account. By not relying on `{IERC20-approve}`, the token holder account doesn't* need to send a transaction, and thus is not required to hold Ether at all.*/abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712, Nonces {bytes32 private constant PERMIT_TYPEHASH =keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");/*** @dev Permit deadline has expired.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Metadata.sol)pragma solidity ^0.8.20;import {IERC20} from "../IERC20.sol";/*** @dev Interface for the optional metadata functions from the ERC-20 standard.*/interface IERC20Metadata is IERC20 {/*** @dev Returns the name of the token.*/function name() external view returns (string memory);/*** @dev Returns the symbol of the token.*/function symbol() external view returns (string memory);/*** @dev Returns the decimals places of the token.*/function decimals() external view returns (uint8);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/extensions/IERC20Permit.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC-20 Permit extension allowing approvals to be made via signatures, as defined in* https://eips.ethereum.org/EIPS/eip-2612[ERC-2612].** Adds the {permit} method, which can be used to change an account's ERC-20 allowance (see {IERC20-allowance}) by* presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't* need to send a transaction, and thus is not required to hold Ether at all.** ==== Security Considerations** There are two important considerations concerning the use of `permit`. The first is that a valid permit signature* expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be* considered as an intention to spend the allowance in any specific way. The second is that because permits have* built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should* take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be* generally recommended is:** ```solidity* function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {* try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}* doThing(..., value);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (token/ERC20/IERC20.sol)pragma solidity ^0.8.20;/*** @dev Interface of the ERC-20 standard as defined in the ERC.*/interface IERC20 {/*** @dev Emitted when `value` tokens are moved from one account (`from`) to* another (`to`).** Note that `value` may be zero.*/event Transfer(address indexed from, address indexed to, uint256 value);/*** @dev Emitted when the allowance of a `spender` for an `owner` is set by* a call to {approve}. `value` is the new allowance.*/event Approval(address indexed owner, address indexed spender, uint256 value);/*** @dev Returns the value of tokens in existence.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.2.0) (token/ERC20/utils/SafeERC20.sol)pragma solidity ^0.8.20;import {IERC20} from "../IERC20.sol";import {IERC1363} from "../../../interfaces/IERC1363.sol";/*** @title SafeERC20* @dev Wrappers around ERC-20 operations that throw on failure (when the token* contract returns false). Tokens that return no value (and instead revert or* throw on failure) are also supported, non-reverting calls are assumed to be* successful.* To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,* which allows you to call the safe operations as `token.safeTransfer(...)`, etc.*/library SafeERC20 {/*** @dev An operation with an ERC-20 token failed.*/error SafeERC20FailedOperation(address token);/*** @dev Indicates a failed `decreaseAllowance` request.*/
1234567891011121314151617181920212223242526// 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;
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/ECDSA.sol)pragma solidity ^0.8.20;/*** @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.** These functions can be used to verify that a message was signed by the holder* of the private keys of a given address.*/library ECDSA {enum RecoverError {NoError,InvalidSignature,InvalidSignatureLength,InvalidSignatureS}/*** @dev The signature derives the `address(0)`.*/error ECDSAInvalidSignature();/*** @dev The signature has an invalid length.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/EIP712.sol)pragma solidity ^0.8.20;import {MessageHashUtils} from "./MessageHashUtils.sol";import {ShortStrings, ShortString} from "../ShortStrings.sol";import {IERC5267} from "../../interfaces/IERC5267.sol";/*** @dev https://eips.ethereum.org/EIPS/eip-712[EIP-712] is a standard for hashing and signing of typed structured data.** The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose* encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract* does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to* produce the hash of their typed data using a combination of `abi.encode` and `keccak256`.** This contract implements the EIP-712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding* scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA* ({_hashTypedDataV4}).** The implementation of the domain separator was designed to be as efficient as possible while still properly updating* the chain id to protect against replay attacks on an eventual fork of the chain.** NOTE: This contract implements the version of the encoding known as "v4", as implemented by the JSON RPC method* https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/MessageHashUtils.sol)pragma solidity ^0.8.20;import {Strings} from "../Strings.sol";/*** @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.** The library provides methods for generating a hash of a message that conforms to the* https://eips.ethereum.org/EIPS/eip-191[ERC-191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]* specifications.*/library MessageHashUtils {/*** @dev Returns the keccak256 digest of an ERC-191 signed data with version* `0x45` (`personal_sign` messages).** The digest is calculated by prefixing a bytes32 `messageHash` with* `"\x19Ethereum Signed Message:\n32"` and hashing the result. It corresponds with the* hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.** NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with* keccak256, although any bytes32 value can be safely used because the final digest will* be re-hashed.
12345678910111213141516171819202122232425// 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);}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/Math.sol)pragma solidity ^0.8.20;import {Panic} from "../Panic.sol";import {SafeCast} from "./SafeCast.sol";/*** @dev Standard math utilities missing in the Solidity language.*/library Math {enum Rounding {Floor, // Toward negative infinityCeil, // Toward positive infinityTrunc, // Toward zeroExpand // Away from zero}/*** @dev Returns the addition of two unsigned integers, with an success flag (no overflow).*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {unchecked {uint256 c = a + b;if (c < a) return (false, 0);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)// This file was procedurally generated from scripts/generate/templates/SafeCast.js.pragma solidity ^0.8.20;/*** @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow* checks.** Downcasting from uint256/int256 in Solidity does not revert on overflow. This can* easily result in undesired exploitation or bugs, since developers usually* assume that overflows raise errors. `SafeCast` restores this intuition by* reverting the transaction when such an operation overflows.** Using this library instead of the unchecked operations eliminates an entire* class of bugs, so it's recommended to use it always.*/library SafeCast {/*** @dev Value doesn't fit in an uint of `bits` size.*/error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);/*** @dev An int value doesn't fit in an uint of `bits` size.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SignedMath.sol)pragma solidity ^0.8.20;import {SafeCast} from "./SafeCast.sol";/*** @dev Standard signed math utilities missing in the Solidity language.*/library SignedMath {/*** @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.** IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.* However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute* one branch when needed, making this function more expensive.*/function ternary(bool condition, int256 a, int256 b) internal pure returns (int256) {unchecked {// branchless ternary works because:// b ^ (a ^ b) == a// b ^ 0 == breturn b ^ ((a ^ b) * int256(SafeCast.toUint(condition)));}}
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (utils/Nonces.sol)pragma solidity ^0.8.20;/*** @dev Provides tracking nonces for addresses. Nonces will only increment.*/abstract contract Nonces {/*** @dev The nonce used for an `account` is not the expected current nonce.*/error InvalidAccountNonce(address account, uint256 currentNonce);mapping(address account => uint256) private _nonces;/*** @dev Returns the next unused nonce for an address.*/function nonces(address owner) public view virtual returns (uint256) {return _nonces[owner];}/*** @dev Consumes a nonce.** Returns the current value and increments nonce.
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)pragma solidity ^0.8.20;/*** @dev Helper library for emitting standardized panic codes.** ```solidity* contract Example {* using Panic for uint256;** // Use any of the declared internal constants* function foo() { Panic.GENERIC.panic(); }** // Alternatively* function foo() { Panic.panic(Panic.GENERIC); }* }* ```** Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].** _Available since v5.1._*/// slither-disable-next-line unused-statelibrary Panic {
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/ReentrancyGuard.sol)pragma solidity ^0.8.20;/*** @dev Contract module that helps prevent reentrant calls to a function.** Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier* available, which can be applied to functions to make sure there are no nested* (reentrant) calls to them.** Note that because there is a single `nonReentrant` guard, functions marked as* `nonReentrant` may not call one another. This can be worked around by making* those functions `private`, and then adding `external` `nonReentrant` entry* points to them.** TIP: If EIP-1153 (transient storage) is available on the chain you're deploying at,* consider using {ReentrancyGuardTransient} instead.** TIP: If you would like to learn more about reentrancy and alternative ways* to protect against it, check out our blog post* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].*/abstract contract ReentrancyGuard {// Booleans are more expensive than uint256 or any type that takes up a full
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/ShortStrings.sol)pragma solidity ^0.8.20;import {StorageSlot} from "./StorageSlot.sol";// | string | 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |// | length | 0x BB |type ShortString is bytes32;/*** @dev This library provides functions to convert short memory strings* into a `ShortString` type that can be used as an immutable variable.** Strings of arbitrary length can be optimized using this library if* they are short enough (up to 31 bytes) by packing them with their* length (1 byte) in a single EVM word (32 bytes). Additionally, a* fallback mechanism can be used for every other case.** Usage example:** ```solidity* contract Named {* using ShortStrings for *;*
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.1.0) (utils/StorageSlot.sol)// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.pragma solidity ^0.8.20;/*** @dev Library for reading and writing primitive types to specific storage slots.** Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.* This library helps with reading and writing to such slots without the need for inline assembly.** The functions in this library return Slot structs that contain a `value` member that can be used to read or write.** Example usage to set ERC-1967 implementation slot:* ```solidity* contract ERC1967 {* // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;** function _getImplementation() internal view returns (address) {* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;* }** function _setImplementation(address newImplementation) internal {* require(newImplementation.code.length > 0);
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.2.0) (utils/Strings.sol)pragma solidity ^0.8.20;import {Math} from "./math/Math.sol";import {SafeCast} from "./math/SafeCast.sol";import {SignedMath} from "./math/SignedMath.sol";/*** @dev String operations.*/library Strings {using SafeCast for *;bytes16 private constant HEX_DIGITS = "0123456789abcdef";uint8 private constant ADDRESS_LENGTH = 20;/*** @dev The `value` string doesn't fit in the specified `length`.*/error StringsInsufficientHexLength(uint256 value, uint256 length);/*** @dev The string being parsed contains characters that are not in scope of the given base.*/
1234567891011121314151617181920212223242526// SPDX-License-Identifier: MITpragma solidity 0.8.20;import "@openzeppelin/contracts/token/ERC20/ERC20.sol";import "@openzeppelin/contracts/access/Ownable.sol";import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";/// @title FIVE Token Contract/// @notice ERC20 token with a capped supply, minting, burning, and gasless approvals using EIP-2612./// @dev Inherits from OpenZeppelin's ERC20, ERC20Permit, and Ownable contracts.contract FIVE is ERC20, Ownable, ERC20Permit {uint256 private _maxSupply;uint256 public totalMinted;uint256 public totalBurned;address public treasuryAddr;/// @notice Event emitted when tokens are minted.event Mint(address indexed minter, address indexed recipient, uint256 amount);/// @notice Event emitted when tokens are burned.event Burn(address indexed burner, uint256 amount);/// @notice Event emitted when the max supply is decreased.event MaxSupplyDecreased(uint256 oldMaxSupply, uint256 newMaxSupply);/// @dev Constructor to initialize the token with its name, symbol, and treasury address./// @param initialOwner The address of the treasury to receive the initial minted tokens.constructor(
123456789101112131415161718192021222324{"optimizer": {"enabled": true,"runs": 9999},"metadata": {"bytecodeHash": "none","useLiteralContent": true},"evmVersion": "paris","outputSelection": {"*": {"*": ["evm.bytecode","evm.deployedBytecode","devdoc","userdoc","metadata","abi"]}},"libraries": {}}
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"},{"internalType":"contract FIVE","name":"_five","type":"address"},{"internalType":"uint256","name":"_startBlockTime","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract IERC20","name":"pair","type":"address"},{"indexed":true,"internalType":"uint256","name":"point","type":"uint256"}],"name":"Add","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"EmergencyWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newRate","type":"uint256"}],"name":"EmissionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lockTime","type":"uint256"}],"name":"EnterStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LeaveStaking","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"extraLockTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newUnlockTime","type":"uint256"}],"name":"LockTimeExtended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"point","type":"uint256"}],"name":"Set","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newDev","type":"address"}],"name":"SetDev","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newTreasury","type":"address"}],"name":"SetTreasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newPercentage","type":"uint256"}],"name":"StakingPercentageUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"MAX_EMISSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_LOCK_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_STAKING_PERCENTAGE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_LOCK_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"contract IERC20","name":"_lpToken","type":"address"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxSupply","type":"uint256"}],"name":"decreaseFiveMaxSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_lockDuration","type":"uint256"}],"name":"enterStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_extraLockDuration","type":"uint256"}],"name":"extendLockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"five","outputs":[{"internalType":"contract FIVE","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getLockInfo","outputs":[{"internalType":"uint256","name":"lockAmount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"getPoolInfo","outputs":[{"internalType":"address","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"accFivePerShare","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlockTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalLockedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalLockedUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getVeFIVE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"leaveStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockInfo","outputs":[{"internalType":"uint256","name":"lockAmount","type":"uint256"},{"internalType":"uint256","name":"unlockTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"massUpdatePools","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingFive","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"contract IERC20","name":"lpToken","type":"address"},{"internalType":"uint256","name":"allocPoint","type":"uint256"},{"internalType":"uint256","name":"lastRewardBlockTime","type":"uint256"},{"internalType":"uint256","name":"accFivePerShare","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_allocPoint","type":"uint256"},{"internalType":"bool","name":"_withUpdate","type":"bool"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_emission","type":"uint256"}],"name":"setEmission","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentage","type":"uint256"}],"name":"setStakingPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingPercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startBlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAllocPoint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLockedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalLockedUsers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"}],"name":"updatePool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052674563918244f40000600755601460085560006009553480156200002757600080fd5b5060405162002c4b38038062002c4b8339810160408190526200004a9162000218565b826001600160a01b0381166200007a57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200008581620001af565b506001808055600680546001600160a01b03199081166001600160a01b03958616908117909255600a849055604080516080810182528381526103e8602080830182815283850198895260006060850181815260028054808c01825590835295517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace600490970296870180549099169c169b909b17909655517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf84015596517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad083015596517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1909101559181526003909352909120805460ff191690911790556009555062000260565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200021557600080fd5b50565b6000806000606084860312156200022e57600080fd5b83516200023b81620001ff565b60208501519093506200024e81620001ff565b80925050604084015190509250925092565b6129db80620002706000396000f3fe608060405234801561001057600080fd5b50600436106102775760003560e01c8063715018a61161016057806399fcfccb116100d8578063e0395c1e1161008c578063f2fde38b11610071578063f2fde38b1461056f578063fa78668f14610582578063fde042811461058c57600080fd5b8063e0395c1e14610553578063e2bbb1581461055c57600080fd5b8063af11c34c116100bd578063af11c34c1461050d578063dc6fe2351461052d578063ddce102f1461054057600080fd5b806399fcfccb146104f2578063a81d4658146104fa57600080fd5b8063828047a51161012f57806391d2b32e1161011457806391d2b32e146104a957806393f1a40b146104b157806394e382c0146104e357600080fd5b8063828047a5146104575780638da5cb5b1461046a57600080fd5b8063715018a6146103ff5780637238ccdb1461040757806381e1ccba14610445578063827c049e1461044e57600080fd5b80633ff03207116101f35780635312ea8e116101c257806364482f79116101a757806364482f791461039d5780636552374a146103b05780636bd3b87c146103c357600080fd5b80635312ea8e14610382578063630b5ba11461039557600080fd5b80633ff032071461034a578063441a3e7014610354578063483984541461036757806351eb05a61461036f57600080fd5b80631526fe271161024a57806317caf6f11161022f57806317caf6f11461031b5780631eaaa045146103245780632f380b351461033757600080fd5b80631526fe27146102be57806316a6d94a1461030857600080fd5b806305a9f2741461027c578063081e3eda146102985780630c18d4ce146102a05780630e38c32b146102a9575b600080fd5b610285600b5481565b6040519081526020015b60405180910390f35b600254610285565b610285600a5481565b6102bc6102b7366004612720565b610594565b005b6102d16102cc366004612720565b61065b565b6040805173ffffffffffffffffffffffffffffffffffffffff9095168552602085019390935291830152606082015260800161028f565b6102bc610316366004612739565b6106ac565b61028560095481565b6102bc61033236600461278b565b6109b6565b6102d1610345366004612720565b610c10565b61028562278d0081565b6102bc610362366004612739565b610c74565b600c54610285565b6102bc61037d366004612720565b610ed6565b6102bc610390366004612720565b61111f565b6102bc6112cf565b6102bc6103ab3660046127cd565b611300565b6102856103be3660046127fb565b611463565b6103ea6103d13660046127fb565b6005602052600090815260409020805460019091015482565b6040805192835260208301919091520161028f565b6102bc6114e1565b6103ea6104153660046127fb565b73ffffffffffffffffffffffffffffffffffffffff16600090815260056020526040902080546001909101549091565b61028560085481565b61028560075481565b6102bc610465366004612720565b6114f5565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161028f565b600b54610285565b6103ea6104bf36600461281f565b60046020908152600092835260408084209091529082529020805460019091015482565b610285674563918244f4000081565b6102bc611672565b61028561050836600461281f565b611934565b6006546104849073ffffffffffffffffffffffffffffffffffffffff1681565b6102bc61053b366004612720565b611b77565b6102bc61054e366004612720565b611e1e565b610285600c5481565b6102bc61056a366004612739565b611eb9565b6102bc61057d3660046127fb565b6120ac565b61028562ed4e0081565b610285601481565b61059c61210d565b60148111156106185760405162461bcd60e51b815260206004820152602760248201527f7365745374616b696e6750657263656e746167653a2065786365656473206d6160448201527f78206c696d69740000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60088190556040518181527fe85e3e0b319540f3d1e14a6900e5f1005bf953ea549c6c41e3428224d8898de69060200160405180910390a1610658612160565b50565b6002818154811061066b57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919084565b6106b4612260565b600060026000815481106106ca576106ca61284f565b600091825260208083203384527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec8252604080852060059093529093206004909202909201925062278d008410801590610727575062ed4e008411155b6107995760405162461bcd60e51b815260206004820152602360248201527f5374616b65206661696c65643a20496e76616c6964204c6f636b20447572617460448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015260840161060f565b6107a36000610ed6565b8154158015906107b7575080600101544211155b15610809576000826001015464e8d4a5100085600301546107d733611463565b6107e191906128ad565b6107eb91906128ca565b6107f59190612905565b905080156108075761080733826122a3565b505b841561093e576006546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd906064016020604051808303816000875af115801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190612918565b50848260000160008282546108c59190612935565b90915550508054859082906000906108de908490612935565b90915550600090506108f08542612935565b9050816001015481111561090657600182018190555b85600b60008282546109189190612935565b9091555050815486900361093c57600c805490600061093683612948565b91905055505b505b64e8d4a51000836003015461095233611463565b61095c91906128ad565b61096691906128ca565b6001830155604080518681526020810186905233917f8022d0cd856e916e535bdaaf7c0674e7b2e2f0231ffef91f47d0214b8b801579910160405180910390a25050506109b260018055565b5050565b6109be61210d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054829060ff1615610a365760405162461bcd60e51b815260206004820152601960248201527f4164643a20706f6f6c20616c7265616479206578697374732100000000000000604482015260640161060f565b8115610a4457610a446112cf565b6000600a544211610a5757600a54610a59565b425b90508460096000828254610a6d9190612935565b90915550506040805160808101825273ffffffffffffffffffffffffffffffffffffffff86811680835260208084018a8152848601878152600060608701818152600280546001808201835591845298517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace6004909a02998a0180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919099161790975592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf88015590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad087015590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1909501949094559083526003905291902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055610bc4612160565b604051859073ffffffffffffffffffffffffffffffffffffffff86169033907f5f43b6be860b00b28d44981331005a0503e6b566155ca1423af4299a6bde1f4690600090a45050505050565b600080600080600060028681548110610c2b57610c2b61284f565b6000918252602090912060049091020180546001820154600383015460029093015473ffffffffffffffffffffffffffffffffffffffff90921699909850919650945092505050565b610c7c612260565b81610c8660025490565b8110610cd45760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b82600003610d245760405162461bcd60e51b815260206004820152601a60248201527f5769746864726177204649564520627920756e7374616b696e67000000000000604482015260640161060f565b600060028481548110610d3957610d3961284f565b6000918252602080832087845260048083526040808620338752909352919093208054929091029092019250841115610dda5760405162461bcd60e51b815260206004820152602260248201527f5769746864726177206661696c65643a20496e76616c6964206f70657261746960448201527f6f6e000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b610de385610ed6565b6000816001015464e8d4a5100084600301548460000154610e0491906128ad565b610e0e91906128ca565b610e189190612905565b90508015610e2a57610e2a33826122a3565b8415610e6c5784826000016000828254610e449190612905565b90915550508254610e6c9073ffffffffffffffffffffffffffffffffffffffff1633876123ef565b6003830154825464e8d4a5100091610e83916128ad565b610e8d91906128ca565b6001830155604051858152869033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689060200160405180910390a3505050506109b260018055565b80610ee060025490565b8110610f2e5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b600060028381548110610f4357610f4361284f565b9060005260206000209060040201905080600201544211610f6357505050565b6000808411610f7457600b54611005565b81546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610fe1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110059190612980565b90508060000361101b5750426002909101555050565b6000600954836001015460075461103291906128ad565b61103c91906128ca565b9050600061104982612470565b905080156110dc576006546040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990604401600060405180830381600087803b1580156110c357600080fd5b505af11580156110d7573d6000803e3d6000fd5b505050505b826110ec8264e8d4a510006128ad565b6110f691906128ca565b8460030160008282546111099190612935565b9091555050426002909401939093555050505050565b611127612260565b8061113160025490565b811061117f5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b816000036111cf5760405162461bcd60e51b815260206004820152601c60248201527f556e617661696c61626c6520666f72207374616b696e6720706f6f6c00000000604482015260640161060f565b6000600283815481106111e4576111e461284f565b600091825260208083208684526004808352604080862033875290935291909320805492909102909201925061125c5760405162461bcd60e51b815260206004820152601560248201527f4e6f20746f6b656e7320746f2077697468647261770000000000000000000000604482015260640161060f565b805460008083556001830155825461128b9073ffffffffffffffffffffffffffffffffffffffff1633836123ef565b604051818152859033907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05959060200160405180910390a35050505061065860018055565b60006112da60025490565b905060005b818110156109b2576112f081610ed6565b6112f981612948565b90506112df565b61130861210d565b8260000361137e5760405162461bcd60e51b815260206004820152602a60248201527f596f752063616e27742073657420616c6c6f63506f696e7420666f722073746160448201527f6b696e6720706f6f6c2e00000000000000000000000000000000000000000000606482015260840161060f565b801561138c5761138c6112cf565b81600284815481106113a0576113a061284f565b9060005260206000209060040201600101541461145e576000600284815481106113cc576113cc61284f565b906000526020600020906004020160010154905082600285815481106113f4576113f461284f565b90600052602060002090600402016001018190555082816009546114189190612905565b6114229190612935565b60095561142d612160565b6040518390859033907f9eca8f7bcfb868d72b4ed95b71c627c194ab6bcb9b83adb2280e8a0320bb847690600090a4505b505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120600181015442118061149957508054155b156114a75750600092915050565b60004282600101546114b99190612905565b905062ed4e008183600001546114cf91906128ad565b6114d991906128ca565b949350505050565b6114e961210d565b6114f360006125bb565b565b6114fd612260565b336000908152600560205260409020805461155a5760405162461bcd60e51b815260206004820152601860248201527f4e6f20616374697665206c6f636b20746f20657874656e640000000000000000604482015260640161060f565b600082826001015461156c9190612935565b905061157b62ed4e0042612935565b8111156115ca5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d206c6f636b206475726174696f6e000000604482015260640161060f565b6115d762278d0042612935565b8110156116265760405162461bcd60e51b815260206004820152601560248201527f556e6c6f636b2074696d6520746f6f2073686f72740000000000000000000000604482015260640161060f565b60018201819055604080518481526020810183905233917e3b7d2ad3b9d4b540c9231c2d2302e09268ce8fbb59d4005bf049893beffa2e910160405180910390a2505061065860018055565b61167a612260565b600060026000815481106116905761169061284f565b600091825260208083203384527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec8252604080852060059093529093208154600490930290930193509190158015906116e95750805415155b61175b5760405162461bcd60e51b815260206004820152602160248201527f556e7374616b65206661696c65643a20496e76616c6964206f7065726174696f60448201527f6e00000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b6117656000610ed6565b806001015442116117c1576000826001015464e8d4a51000856003015461178b33611463565b61179591906128ad565b61179f91906128ca565b6117a99190612905565b905080156117bb576117bb33826122a3565b50611900565b6000826001015464e8d4a51000856003015485600001546117e291906128ad565b6117ec91906128ca565b6117f69190612905565b90508015611883576006546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c6890602401600060405180830381600087803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b505050505b82546000808555808455600184015561189c33826122a3565b80600b60008282546118ae9190612905565b9091555050600c80549060006118c383612999565b909155505060405181815233907fbeeac20c93f16ecc5d2707dffeb3263a7f99053ac0aa548803e9e8b5a00074389060200160405180910390a250505b64e8d4a51000836003015461191433611463565b61191e91906128ad565b61192891906128ca565b60019283015550805550565b60008261194060025490565b811061198e5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b6000600285815481106119a3576119a361284f565b600091825260208083208884526004808352604080862073ffffffffffffffffffffffffffffffffffffffff8b168752909352918420929091020160038101549093509091876119f557600b54611a86565b83546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a869190612980565b9050836002015442118015611a9a57508015155b15611af85760006009548560010154600754611ab691906128ad565b611ac091906128ca565b90506000611acd82612470565b905082611adf8264e8d4a510006128ad565b611ae991906128ca565b611af39085612935565b935050505b8715611b36576001830154835464e8d4a5100090611b179085906128ad565b611b2191906128ca565b611b2b9190612905565b955050505050611b70565b826001015464e8d4a5100083611b4b8a611463565b611b5591906128ad565b611b5f91906128ca565b611b699190612905565b9550505050505b5092915050565b611b7f61210d565b600654604080517fd5abeb01000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d5abeb019160048083019260209291908290030181865afa158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190612980565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca89190612980565b9050818310611d1f5760405162461bcd60e51b815260206004820152603760248201527f4e6577206d617820737570706c79206d757374206265206c657373207468616e60448201527f207468652063757272656e74206d617820737570706c79000000000000000000606482015260840161060f565b80831015611d955760405162461bcd60e51b815260206004820152603d60248201527f4e6577206d617820737570706c79206d757374206e6f74206265206c6573732060448201527f7468616e207468652063757272656e7420746f74616c20737570706c79000000606482015260840161060f565b6006546040517f91ff4a730000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff909116906391ff4a7390602401600060405180830381600087803b158015611e0157600080fd5b505af1158015611e15573d6000803e3d6000fd5b50505050505050565b611e2661210d565b674563918244f40000811115611e7e5760405162461bcd60e51b815260206004820152601e60248201527f736574456d697373696f6e3a2065786365656473206d6178206c696d69740000604482015260640161060f565b60078190556040518181527fb114240d54ce08081cbd18870dc3b6cd4091bb86ff29d2ad41906c2a2d6723d49060200160405180910390a150565b611ec1612260565b81611ecb60025490565b8110611f195760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b82600003611f695760405162461bcd60e51b815260206004820152601760248201527f4465706f7369742046495645206279207374616b696e67000000000000000000604482015260640161060f565b600060028481548110611f7e57611f7e61284f565b60009182526020808320878452600480835260408086203387529093529190932091029091019150611faf85610ed6565b805415611fff576000816001015464e8d4a5100084600301548460000154611fd791906128ad565b611fe191906128ca565b611feb9190612905565b90508015611ffd57611ffd33826122a3565b505b83156120435781546120299073ffffffffffffffffffffffffffffffffffffffff16333087612630565b8381600001600082825461203d9190612935565b90915550505b6003820154815464e8d4a510009161205a916128ad565b61206491906128ca565b6001820155604051848152859033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200160405180910390a35050506109b260018055565b6120b461210d565b73ffffffffffffffffffffffffffffffffffffffff8116612104576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526000600482015260240161060f565b610658816125bb565b60005473ffffffffffffffffffffffffffffffffffffffff1633146114f3576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161060f565b600061216b60025490565b9050600060015b828110156121bc576002818154811061218d5761218d61284f565b906000526020600020906004020160010154826121aa9190612935565b91506121b581612948565b9050612172565b5080156109b257600060085460646121d49190612905565b6008546121e191906128ca565b6121eb90836128ad565b90508060026000815481106122025761220261284f565b9060005260206000209060040201600101546009546122219190612905565b61222b9190612935565b6009819055508060026000815481106122465761224661284f565b906000526020600020906004020160010181905550505050565b60026001540361229c576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b6006546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123369190612980565b905060008183116123475782612349565b815b6006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820184905292935091169063a9059cbb906044016020604051808303816000875af11580156123c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e89190612918565b5050505050565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905261145e91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061267c565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125049190612980565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5abeb016040518163ffffffff1660e01b8152600401602060405180830381865afa158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125959190612980565b61259f9190612905565b9050828110156125b1578091506125b5565b8291505b50919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526126769186918216906323b872dd90608401612429565b50505050565b600080602060008451602086016000885af18061269f576040513d6000823e3d81fd5b50506000513d915081156126b75780600114156126d1565b73ffffffffffffffffffffffffffffffffffffffff84163b155b15612676576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161060f565b60006020828403121561273257600080fd5b5035919050565b6000806040838503121561274c57600080fd5b50508035926020909101359150565b73ffffffffffffffffffffffffffffffffffffffff8116811461065857600080fd5b801515811461065857600080fd5b6000806000606084860312156127a057600080fd5b8335925060208401356127b28161275b565b915060408401356127c28161277d565b809150509250925092565b6000806000606084860312156127e257600080fd5b833592506020840135915060408401356127c28161277d565b60006020828403121561280d57600080fd5b81356128188161275b565b9392505050565b6000806040838503121561283257600080fd5b8235915060208301356128448161275b565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176128c4576128c461287e565b92915050565b600082612900577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b818103818111156128c4576128c461287e565b60006020828403121561292a57600080fd5b81516128188161277d565b808201808211156128c4576128c461287e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129795761297961287e565b5060010190565b60006020828403121561299257600080fd5b5051919050565b6000816129a8576129a861287e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c6343000814000a0000000000000000000000006571c18ddea876ce67932be7115a4e2d11b5d943000000000000000000000000d10780b83e917d96c9b3af58cb10149b2e3a6a62000000000000000000000000000000000000000000000000000000006790df0a
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102775760003560e01c8063715018a61161016057806399fcfccb116100d8578063e0395c1e1161008c578063f2fde38b11610071578063f2fde38b1461056f578063fa78668f14610582578063fde042811461058c57600080fd5b8063e0395c1e14610553578063e2bbb1581461055c57600080fd5b8063af11c34c116100bd578063af11c34c1461050d578063dc6fe2351461052d578063ddce102f1461054057600080fd5b806399fcfccb146104f2578063a81d4658146104fa57600080fd5b8063828047a51161012f57806391d2b32e1161011457806391d2b32e146104a957806393f1a40b146104b157806394e382c0146104e357600080fd5b8063828047a5146104575780638da5cb5b1461046a57600080fd5b8063715018a6146103ff5780637238ccdb1461040757806381e1ccba14610445578063827c049e1461044e57600080fd5b80633ff03207116101f35780635312ea8e116101c257806364482f79116101a757806364482f791461039d5780636552374a146103b05780636bd3b87c146103c357600080fd5b80635312ea8e14610382578063630b5ba11461039557600080fd5b80633ff032071461034a578063441a3e7014610354578063483984541461036757806351eb05a61461036f57600080fd5b80631526fe271161024a57806317caf6f11161022f57806317caf6f11461031b5780631eaaa045146103245780632f380b351461033757600080fd5b80631526fe27146102be57806316a6d94a1461030857600080fd5b806305a9f2741461027c578063081e3eda146102985780630c18d4ce146102a05780630e38c32b146102a9575b600080fd5b610285600b5481565b6040519081526020015b60405180910390f35b600254610285565b610285600a5481565b6102bc6102b7366004612720565b610594565b005b6102d16102cc366004612720565b61065b565b6040805173ffffffffffffffffffffffffffffffffffffffff9095168552602085019390935291830152606082015260800161028f565b6102bc610316366004612739565b6106ac565b61028560095481565b6102bc61033236600461278b565b6109b6565b6102d1610345366004612720565b610c10565b61028562278d0081565b6102bc610362366004612739565b610c74565b600c54610285565b6102bc61037d366004612720565b610ed6565b6102bc610390366004612720565b61111f565b6102bc6112cf565b6102bc6103ab3660046127cd565b611300565b6102856103be3660046127fb565b611463565b6103ea6103d13660046127fb565b6005602052600090815260409020805460019091015482565b6040805192835260208301919091520161028f565b6102bc6114e1565b6103ea6104153660046127fb565b73ffffffffffffffffffffffffffffffffffffffff16600090815260056020526040902080546001909101549091565b61028560085481565b61028560075481565b6102bc610465366004612720565b6114f5565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161028f565b600b54610285565b6103ea6104bf36600461281f565b60046020908152600092835260408084209091529082529020805460019091015482565b610285674563918244f4000081565b6102bc611672565b61028561050836600461281f565b611934565b6006546104849073ffffffffffffffffffffffffffffffffffffffff1681565b6102bc61053b366004612720565b611b77565b6102bc61054e366004612720565b611e1e565b610285600c5481565b6102bc61056a366004612739565b611eb9565b6102bc61057d3660046127fb565b6120ac565b61028562ed4e0081565b610285601481565b61059c61210d565b60148111156106185760405162461bcd60e51b815260206004820152602760248201527f7365745374616b696e6750657263656e746167653a2065786365656473206d6160448201527f78206c696d69740000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60088190556040518181527fe85e3e0b319540f3d1e14a6900e5f1005bf953ea549c6c41e3428224d8898de69060200160405180910390a1610658612160565b50565b6002818154811061066b57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919084565b6106b4612260565b600060026000815481106106ca576106ca61284f565b600091825260208083203384527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec8252604080852060059093529093206004909202909201925062278d008410801590610727575062ed4e008411155b6107995760405162461bcd60e51b815260206004820152602360248201527f5374616b65206661696c65643a20496e76616c6964204c6f636b20447572617460448201527f696f6e0000000000000000000000000000000000000000000000000000000000606482015260840161060f565b6107a36000610ed6565b8154158015906107b7575080600101544211155b15610809576000826001015464e8d4a5100085600301546107d733611463565b6107e191906128ad565b6107eb91906128ca565b6107f59190612905565b905080156108075761080733826122a3565b505b841561093e576006546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd906064016020604051808303816000875af115801561088c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b09190612918565b50848260000160008282546108c59190612935565b90915550508054859082906000906108de908490612935565b90915550600090506108f08542612935565b9050816001015481111561090657600182018190555b85600b60008282546109189190612935565b9091555050815486900361093c57600c805490600061093683612948565b91905055505b505b64e8d4a51000836003015461095233611463565b61095c91906128ad565b61096691906128ca565b6001830155604080518681526020810186905233917f8022d0cd856e916e535bdaaf7c0674e7b2e2f0231ffef91f47d0214b8b801579910160405180910390a25050506109b260018055565b5050565b6109be61210d565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902054829060ff1615610a365760405162461bcd60e51b815260206004820152601960248201527f4164643a20706f6f6c20616c7265616479206578697374732100000000000000604482015260640161060f565b8115610a4457610a446112cf565b6000600a544211610a5757600a54610a59565b425b90508460096000828254610a6d9190612935565b90915550506040805160808101825273ffffffffffffffffffffffffffffffffffffffff86811680835260208084018a8152848601878152600060608701818152600280546001808201835591845298517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace6004909a02998a0180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919099161790975592517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf88015590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad087015590517f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ad1909501949094559083526003905291902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055610bc4612160565b604051859073ffffffffffffffffffffffffffffffffffffffff86169033907f5f43b6be860b00b28d44981331005a0503e6b566155ca1423af4299a6bde1f4690600090a45050505050565b600080600080600060028681548110610c2b57610c2b61284f565b6000918252602090912060049091020180546001820154600383015460029093015473ffffffffffffffffffffffffffffffffffffffff90921699909850919650945092505050565b610c7c612260565b81610c8660025490565b8110610cd45760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b82600003610d245760405162461bcd60e51b815260206004820152601a60248201527f5769746864726177204649564520627920756e7374616b696e67000000000000604482015260640161060f565b600060028481548110610d3957610d3961284f565b6000918252602080832087845260048083526040808620338752909352919093208054929091029092019250841115610dda5760405162461bcd60e51b815260206004820152602260248201527f5769746864726177206661696c65643a20496e76616c6964206f70657261746960448201527f6f6e000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b610de385610ed6565b6000816001015464e8d4a5100084600301548460000154610e0491906128ad565b610e0e91906128ca565b610e189190612905565b90508015610e2a57610e2a33826122a3565b8415610e6c5784826000016000828254610e449190612905565b90915550508254610e6c9073ffffffffffffffffffffffffffffffffffffffff1633876123ef565b6003830154825464e8d4a5100091610e83916128ad565b610e8d91906128ca565b6001830155604051858152869033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689060200160405180910390a3505050506109b260018055565b80610ee060025490565b8110610f2e5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b600060028381548110610f4357610f4361284f565b9060005260206000209060040201905080600201544211610f6357505050565b6000808411610f7457600b54611005565b81546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610fe1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110059190612980565b90508060000361101b5750426002909101555050565b6000600954836001015460075461103291906128ad565b61103c91906128ca565b9050600061104982612470565b905080156110dc576006546040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990604401600060405180830381600087803b1580156110c357600080fd5b505af11580156110d7573d6000803e3d6000fd5b505050505b826110ec8264e8d4a510006128ad565b6110f691906128ca565b8460030160008282546111099190612935565b9091555050426002909401939093555050505050565b611127612260565b8061113160025490565b811061117f5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b816000036111cf5760405162461bcd60e51b815260206004820152601c60248201527f556e617661696c61626c6520666f72207374616b696e6720706f6f6c00000000604482015260640161060f565b6000600283815481106111e4576111e461284f565b600091825260208083208684526004808352604080862033875290935291909320805492909102909201925061125c5760405162461bcd60e51b815260206004820152601560248201527f4e6f20746f6b656e7320746f2077697468647261770000000000000000000000604482015260640161060f565b805460008083556001830155825461128b9073ffffffffffffffffffffffffffffffffffffffff1633836123ef565b604051818152859033907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae05959060200160405180910390a35050505061065860018055565b60006112da60025490565b905060005b818110156109b2576112f081610ed6565b6112f981612948565b90506112df565b61130861210d565b8260000361137e5760405162461bcd60e51b815260206004820152602a60248201527f596f752063616e27742073657420616c6c6f63506f696e7420666f722073746160448201527f6b696e6720706f6f6c2e00000000000000000000000000000000000000000000606482015260840161060f565b801561138c5761138c6112cf565b81600284815481106113a0576113a061284f565b9060005260206000209060040201600101541461145e576000600284815481106113cc576113cc61284f565b906000526020600020906004020160010154905082600285815481106113f4576113f461284f565b90600052602060002090600402016001018190555082816009546114189190612905565b6114229190612935565b60095561142d612160565b6040518390859033907f9eca8f7bcfb868d72b4ed95b71c627c194ab6bcb9b83adb2280e8a0320bb847690600090a4505b505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600560205260408120600181015442118061149957508054155b156114a75750600092915050565b60004282600101546114b99190612905565b905062ed4e008183600001546114cf91906128ad565b6114d991906128ca565b949350505050565b6114e961210d565b6114f360006125bb565b565b6114fd612260565b336000908152600560205260409020805461155a5760405162461bcd60e51b815260206004820152601860248201527f4e6f20616374697665206c6f636b20746f20657874656e640000000000000000604482015260640161060f565b600082826001015461156c9190612935565b905061157b62ed4e0042612935565b8111156115ca5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d206c6f636b206475726174696f6e000000604482015260640161060f565b6115d762278d0042612935565b8110156116265760405162461bcd60e51b815260206004820152601560248201527f556e6c6f636b2074696d6520746f6f2073686f72740000000000000000000000604482015260640161060f565b60018201819055604080518481526020810183905233917e3b7d2ad3b9d4b540c9231c2d2302e09268ce8fbb59d4005bf049893beffa2e910160405180910390a2505061065860018055565b61167a612260565b600060026000815481106116905761169061284f565b600091825260208083203384527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec8252604080852060059093529093208154600490930290930193509190158015906116e95750805415155b61175b5760405162461bcd60e51b815260206004820152602160248201527f556e7374616b65206661696c65643a20496e76616c6964206f7065726174696f60448201527f6e00000000000000000000000000000000000000000000000000000000000000606482015260840161060f565b6117656000610ed6565b806001015442116117c1576000826001015464e8d4a51000856003015461178b33611463565b61179591906128ad565b61179f91906128ca565b6117a99190612905565b905080156117bb576117bb33826122a3565b50611900565b6000826001015464e8d4a51000856003015485600001546117e291906128ad565b6117ec91906128ca565b6117f69190612905565b90508015611883576006546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c6890602401600060405180830381600087803b15801561186a57600080fd5b505af115801561187e573d6000803e3d6000fd5b505050505b82546000808555808455600184015561189c33826122a3565b80600b60008282546118ae9190612905565b9091555050600c80549060006118c383612999565b909155505060405181815233907fbeeac20c93f16ecc5d2707dffeb3263a7f99053ac0aa548803e9e8b5a00074389060200160405180910390a250505b64e8d4a51000836003015461191433611463565b61191e91906128ad565b61192891906128ca565b60019283015550805550565b60008261194060025490565b811061198e5760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b6000600285815481106119a3576119a361284f565b600091825260208083208884526004808352604080862073ffffffffffffffffffffffffffffffffffffffff8b168752909352918420929091020160038101549093509091876119f557600b54611a86565b83546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015611a62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a869190612980565b9050836002015442118015611a9a57508015155b15611af85760006009548560010154600754611ab691906128ad565b611ac091906128ca565b90506000611acd82612470565b905082611adf8264e8d4a510006128ad565b611ae991906128ca565b611af39085612935565b935050505b8715611b36576001830154835464e8d4a5100090611b179085906128ad565b611b2191906128ca565b611b2b9190612905565b955050505050611b70565b826001015464e8d4a5100083611b4b8a611463565b611b5591906128ad565b611b5f91906128ca565b611b699190612905565b9550505050505b5092915050565b611b7f61210d565b600654604080517fd5abeb01000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d5abeb019160048083019260209291908290030181865afa158015611bef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c139190612980565b90506000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca89190612980565b9050818310611d1f5760405162461bcd60e51b815260206004820152603760248201527f4e6577206d617820737570706c79206d757374206265206c657373207468616e60448201527f207468652063757272656e74206d617820737570706c79000000000000000000606482015260840161060f565b80831015611d955760405162461bcd60e51b815260206004820152603d60248201527f4e6577206d617820737570706c79206d757374206e6f74206265206c6573732060448201527f7468616e207468652063757272656e7420746f74616c20737570706c79000000606482015260840161060f565b6006546040517f91ff4a730000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff909116906391ff4a7390602401600060405180830381600087803b158015611e0157600080fd5b505af1158015611e15573d6000803e3d6000fd5b50505050505050565b611e2661210d565b674563918244f40000811115611e7e5760405162461bcd60e51b815260206004820152601e60248201527f736574456d697373696f6e3a2065786365656473206d6178206c696d69740000604482015260640161060f565b60078190556040518181527fb114240d54ce08081cbd18870dc3b6cd4091bb86ff29d2ad41906c2a2d6723d49060200160405180910390a150565b611ec1612260565b81611ecb60025490565b8110611f195760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c2049440000000000000000000000000000000000604482015260640161060f565b82600003611f695760405162461bcd60e51b815260206004820152601760248201527f4465706f7369742046495645206279207374616b696e67000000000000000000604482015260640161060f565b600060028481548110611f7e57611f7e61284f565b60009182526020808320878452600480835260408086203387529093529190932091029091019150611faf85610ed6565b805415611fff576000816001015464e8d4a5100084600301548460000154611fd791906128ad565b611fe191906128ca565b611feb9190612905565b90508015611ffd57611ffd33826122a3565b505b83156120435781546120299073ffffffffffffffffffffffffffffffffffffffff16333087612630565b8381600001600082825461203d9190612935565b90915550505b6003820154815464e8d4a510009161205a916128ad565b61206491906128ca565b6001820155604051848152859033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200160405180910390a35050506109b260018055565b6120b461210d565b73ffffffffffffffffffffffffffffffffffffffff8116612104576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526000600482015260240161060f565b610658816125bb565b60005473ffffffffffffffffffffffffffffffffffffffff1633146114f3576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161060f565b600061216b60025490565b9050600060015b828110156121bc576002818154811061218d5761218d61284f565b906000526020600020906004020160010154826121aa9190612935565b91506121b581612948565b9050612172565b5080156109b257600060085460646121d49190612905565b6008546121e191906128ca565b6121eb90836128ad565b90508060026000815481106122025761220261284f565b9060005260206000209060040201600101546009546122219190612905565b61222b9190612935565b6009819055508060026000815481106122465761224661284f565b906000526020600020906004020160010181905550505050565b60026001540361229c576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600155565b6006546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa158015612312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123369190612980565b905060008183116123475782612349565b815b6006546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820184905292935091169063a9059cbb906044016020604051808303816000875af11580156123c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123e89190612918565b5050505050565b60405173ffffffffffffffffffffffffffffffffffffffff83811660248301526044820183905261145e91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505061267c565b600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125049190612980565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5abeb016040518163ffffffff1660e01b8152600401602060405180830381865afa158015612571573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125959190612980565b61259f9190612905565b9050828110156125b1578091506125b5565b8291505b50919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff84811660248301528381166044830152606482018390526126769186918216906323b872dd90608401612429565b50505050565b600080602060008451602086016000885af18061269f576040513d6000823e3d81fd5b50506000513d915081156126b75780600114156126d1565b73ffffffffffffffffffffffffffffffffffffffff84163b155b15612676576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161060f565b60006020828403121561273257600080fd5b5035919050565b6000806040838503121561274c57600080fd5b50508035926020909101359150565b73ffffffffffffffffffffffffffffffffffffffff8116811461065857600080fd5b801515811461065857600080fd5b6000806000606084860312156127a057600080fd5b8335925060208401356127b28161275b565b915060408401356127c28161277d565b809150509250925092565b6000806000606084860312156127e257600080fd5b833592506020840135915060408401356127c28161277d565b60006020828403121561280d57600080fd5b81356128188161275b565b9392505050565b6000806040838503121561283257600080fd5b8235915060208301356128448161275b565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176128c4576128c461287e565b92915050565b600082612900577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b818103818111156128c4576128c461287e565b60006020828403121561292a57600080fd5b81516128188161277d565b808201808211156128c4576128c461287e565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129795761297961287e565b5060010190565b60006020828403121561299257600080fd5b5051919050565b6000816129a8576129a861287e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c6343000814000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006571c18ddea876ce67932be7115a4e2d11b5d943000000000000000000000000d10780b83e917d96c9b3af58cb10149b2e3a6a62000000000000000000000000000000000000000000000000000000006790df0a
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x6571c18ddEa876Ce67932bE7115A4E2d11b5D943
Arg [1] : _five (address): 0xd10780B83e917D96c9B3aF58Cb10149b2E3A6A62
Arg [2] : _startBlockTime (uint256): 1737547530
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000006571c18ddea876ce67932be7115a4e2d11b5d943
Arg [1] : 000000000000000000000000d10780b83e917d96c9b3af58cb10149b2e3a6a62
Arg [2] : 000000000000000000000000000000000000000000000000000000006790df0a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ 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.