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 "./Five.sol";// MasterFarmer is the master of FIVE. He can make FIVE and he is a fair guy.contract MasterFarmer is Ownable {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/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":[{"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":"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
6080604052674563918244f40000600655601460075560006008553480156200002757600080fd5b5060405162002a7338038062002a738339810160408190526200004a9162000218565b826001600160a01b0381166200007a57604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200008581620001af565b50600580546001600160a01b03199081166001600160a01b039485169081179092556009839055604080516080810182528381526103e8602080830182815283850197885260006060850181815260018054808201825581845296517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf660049098029788018054909a169c169b909b1790975590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf785015596517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf884015593517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9909201919091559284526002909152909120805460ff19169092179091556008555062000260565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811681146200021557600080fd5b50565b6000806000606084860312156200022e57600080fd5b83516200023b81620001ff565b60208501519093506200024e81620001ff565b80925050604084015190509250925092565b61280380620002706000396000f3fe608060405234801561001057600080fd5b506004361061020b5760003560e01c8063715018a61161012a578063a81d4658116100bd578063e0395c1e1161008c578063f2fde38b11610071578063f2fde38b146104a2578063fa78668f146104b5578063fde04281146104bf57600080fd5b8063e0395c1e14610486578063e2bbb1581461048f57600080fd5b8063a81d46581461042d578063af11c34c14610440578063dc6fe23514610460578063ddce102f1461047357600080fd5b80638da5cb5b116100f95780638da5cb5b146103a557806393f1a40b146103e457806394e382c01461041657806399fcfccb1461042557600080fd5b8063715018a61461037857806381e1ccba14610380578063827c049e14610389578063828047a51461039257600080fd5b80633ff03207116101a2578063630b5ba111610171578063630b5ba11461030e57806364482f79146103165780636552374a146103295780636bd3b87c1461033c57600080fd5b80633ff03207146102cb578063441a3e70146102d557806351eb05a6146102e85780635312ea8e146102fb57600080fd5b80631526fe27116101de5780631526fe271461025257806316a6d94a1461029c57806317caf6f1146102af5780631eaaa045146102b857600080fd5b806305a9f27414610210578063081e3eda1461022c5780630c18d4ce146102345780630e38c32b1461023d575b600080fd5b610219600a5481565b6040519081526020015b60405180910390f35b600154610219565b61021960095481565b61025061024b366004612548565b6104c7565b005b610265610260366004612548565b61058e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352918301526060820152608001610223565b6102506102aa366004612561565b6105df565b61021960085481565b6102506102c63660046125b3565b6108d5565b61021962278d0081565b6102506102e3366004612561565b610b2d565b6102506102f6366004612548565b610d80565b610250610309366004612548565b610fca565b61025061116b565b6102506103243660046125f5565b61119c565b610219610337366004612623565b6112ff565b61036361034a366004612623565b6004602052600090815260409020805460019091015482565b60408051928352602083019190915201610223565b61025061137d565b61021960075481565b61021960065481565b6102506103a0366004612548565b611391565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610223565b6103636103f2366004612647565b60036020908152600092835260408084209091529082529020805460019091015482565b610219674563918244f4000081565b610250611500565b61021961043b366004612647565b6117b6565b6005546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b61025061046e366004612548565b6119f9565b610250610481366004612548565b611ca0565b610219600b5481565b61025061049d366004612561565b611d3b565b6102506104b0366004612623565b611f17565b61021962ed4e0081565b610219601481565b6104cf611f78565b601481111561054b5760405162461bcd60e51b815260206004820152602760248201527f7365745374616b696e6750657263656e746167653a2065786365656473206d6160448201527f78206c696d69740000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60078190556040518181527fe85e3e0b319540f3d1e14a6900e5f1005bf953ea549c6c41e3428224d8898de69060200160405180910390a161058b611fcb565b50565b6001818154811061059e57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919084565b600060016000815481106105f5576105f5612677565b600091825260208083203384527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8252604080852060049384905294209290910201925062278d00841080159061064f575062ed4e008411155b6106c15760405162461bcd60e51b815260206004820152602360248201527f5374616b65206661696c65643a20496e76616c6964204c6f636b20447572617460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152608401610542565b6106cb6000610d80565b8154158015906106df575080600101544211155b15610731576000826001015464e8d4a5100085600301546106ff336112ff565b61070991906126d5565b61071391906126f2565b61071d919061272d565b9050801561072f5761072f33826120cb565b505b8415610866576005546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd906064016020604051808303816000875af11580156107b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d89190612740565b50848260000160008282546107ed919061275d565b909155505080548590829060009061080690849061275d565b9091555060009050610818854261275d565b9050816001015481111561082e57600182018190555b85600a6000828254610840919061275d565b9091555050815486900361086457600b805490600061085e83612770565b91905055505b505b64e8d4a51000836003015461087a336112ff565b61088491906126d5565b61088e91906126f2565b6001830155604080518681526020810186905233917f8022d0cd856e916e535bdaaf7c0674e7b2e2f0231ffef91f47d0214b8b801579910160405180910390a25050505050565b6108dd611f78565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054829060ff16156109555760405162461bcd60e51b815260206004820152601960248201527f4164643a20706f6f6c20616c72656164792065786973747321000000000000006044820152606401610542565b81156109635761096361116b565b6000600954421161097657600954610978565b425b9050846008600082825461098c919061275d565b90915550506040805160808101825273ffffffffffffffffffffffffffffffffffffffff86811680835260208084018a815284860187815260006060870181815260018054808201825581845298517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66004909a02998a0180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919099161790975592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf788015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf887015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9909501949094559083526002905291902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055610ae1611fcb565b604051859073ffffffffffffffffffffffffffffffffffffffff86169033907f5f43b6be860b00b28d44981331005a0503e6b566155ca1423af4299a6bde1f4690600090a45050505050565b81610b3760015490565b8110610b855760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b82600003610bd55760405162461bcd60e51b815260206004820152601a60248201527f5769746864726177204649564520627920756e7374616b696e670000000000006044820152606401610542565b600060018481548110610bea57610bea612677565b600091825260208083208784526003825260408085203386529092529220805460049092029092019250841115610c895760405162461bcd60e51b815260206004820152602260248201527f5769746864726177206661696c65643a20496e76616c6964206f70657261746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152608401610542565b610c9285610d80565b6000816001015464e8d4a5100084600301548460000154610cb391906126d5565b610cbd91906126f2565b610cc7919061272d565b90508015610cd957610cd933826120cb565b8415610d1b5784826000016000828254610cf3919061272d565b90915550508254610d1b9073ffffffffffffffffffffffffffffffffffffffff163387612217565b6003830154825464e8d4a5100091610d32916126d5565b610d3c91906126f2565b6001830155604051858152869033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689060200160405180910390a3505050505050565b80610d8a60015490565b8110610dd85760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b600060018381548110610ded57610ded612677565b9060005260206000209060040201905080600201544211610e0d57505050565b6000808411610e1e57600a54610eaf565b81546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf91906127a8565b905080600003610ec55750426002909101555050565b60006008548360010154600654610edc91906126d5565b610ee691906126f2565b90506000610ef382612298565b90508015610f86576005546040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990604401600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b505050505b82610f968264e8d4a510006126d5565b610fa091906126f2565b846003016000828254610fb3919061275d565b9091555050426002909401939093555050505b5050565b80610fd460015490565b81106110225760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b816000036110725760405162461bcd60e51b815260206004820152601c60248201527f556e617661696c61626c6520666f72207374616b696e6720706f6f6c000000006044820152606401610542565b60006001838154811061108757611087612677565b6000918252602080832086845260038252604080852033865290925292208054600490920290920192506110fd5760405162461bcd60e51b815260206004820152601560248201527f4e6f20746f6b656e7320746f20776974686472617700000000000000000000006044820152606401610542565b805460008083556001830155825461112c9073ffffffffffffffffffffffffffffffffffffffff163383612217565b604051818152859033907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595906020015b60405180910390a35050505050565b600061117660015490565b905060005b81811015610fc65761118c81610d80565b61119581612770565b905061117b565b6111a4611f78565b8260000361121a5760405162461bcd60e51b815260206004820152602a60248201527f596f752063616e27742073657420616c6c6f63506f696e7420666f722073746160448201527f6b696e6720706f6f6c2e000000000000000000000000000000000000000000006064820152608401610542565b80156112285761122861116b565b816001848154811061123c5761123c612677565b906000526020600020906004020160010154146112fa5760006001848154811061126857611268612677565b9060005260206000209060040201600101549050826001858154811061129057611290612677565b90600052602060002090600402016001018190555082816008546112b4919061272d565b6112be919061275d565b6008556112c9611fcb565b6040518390859033907f9eca8f7bcfb868d72b4ed95b71c627c194ab6bcb9b83adb2280e8a0320bb847690600090a4505b505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260408120600181015442118061133557508054155b156113435750600092915050565b6000428260010154611355919061272d565b905062ed4e0081836000015461136b91906126d5565b61137591906126f2565b949350505050565b611385611f78565b61138f60006123e3565b565b33600090815260046020526040902080546113ee5760405162461bcd60e51b815260206004820152601860248201527f4e6f20616374697665206c6f636b20746f20657874656e6400000000000000006044820152606401610542565b6000828260010154611400919061275d565b905061140f62ed4e004261275d565b81111561145e5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d206c6f636b206475726174696f6e0000006044820152606401610542565b61146b62278d004261275d565b8110156114ba5760405162461bcd60e51b815260206004820152601560248201527f556e6c6f636b2074696d6520746f6f2073686f727400000000000000000000006044820152606401610542565b60018201819055604080518481526020810183905233917e3b7d2ad3b9d4b540c9231c2d2302e09268ce8fbb59d4005bf049893beffa2e910160405180910390a2505050565b6000600160008154811061151657611516612677565b600091825260208083203384527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8252604080852060049384905294208454929093020193501580159061156a5750805415155b6115dc5760405162461bcd60e51b815260206004820152602160248201527f556e7374616b65206661696c65643a20496e76616c6964206f7065726174696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610542565b6115e66000610d80565b80600101544211611642576000826001015464e8d4a51000856003015461160c336112ff565b61161691906126d5565b61162091906126f2565b61162a919061272d565b9050801561163c5761163c33826120cb565b50611781565b6000826001015464e8d4a510008560030154856000015461166391906126d5565b61166d91906126f2565b611677919061272d565b90508015611704576005546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c6890602401600060405180830381600087803b1580156116eb57600080fd5b505af11580156116ff573d6000803e3d6000fd5b505050505b82546000808555808455600184015561171d33826120cb565b80600a600082825461172f919061272d565b9091555050600b8054906000611744836127c1565b909155505060405181815233907fbeeac20c93f16ecc5d2707dffeb3263a7f99053ac0aa548803e9e8b5a00074389060200160405180910390a250505b64e8d4a510008360030154611795336112ff565b61179f91906126d5565b6117a991906126f2565b8260010181905550505050565b6000826117c260015490565b81106118105760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b60006001858154811061182557611825612677565b600091825260208083208884526003808352604080862073ffffffffffffffffffffffffffffffffffffffff8b1687529093529184206004909302019081015490935090918761187757600a54611908565b83546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190891906127a8565b905083600201544211801561191c57508015155b1561197a576000600854856001015460065461193891906126d5565b61194291906126f2565b9050600061194f82612298565b9050826119618264e8d4a510006126d5565b61196b91906126f2565b611975908561275d565b935050505b87156119b8576001830154835464e8d4a51000906119999085906126d5565b6119a391906126f2565b6119ad919061272d565b9550505050506119f2565b826001015464e8d4a51000836119cd8a6112ff565b6119d791906126d5565b6119e191906126f2565b6119eb919061272d565b9550505050505b5092915050565b611a01611f78565b600554604080517fd5abeb01000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d5abeb019160048083019260209291908290030181865afa158015611a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9591906127a8565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a91906127a8565b9050818310611ba15760405162461bcd60e51b815260206004820152603760248201527f4e6577206d617820737570706c79206d757374206265206c657373207468616e60448201527f207468652063757272656e74206d617820737570706c790000000000000000006064820152608401610542565b80831015611c175760405162461bcd60e51b815260206004820152603d60248201527f4e6577206d617820737570706c79206d757374206e6f74206265206c6573732060448201527f7468616e207468652063757272656e7420746f74616c20737570706c790000006064820152608401610542565b6005546040517f91ff4a730000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff909116906391ff4a7390602401600060405180830381600087803b158015611c8357600080fd5b505af1158015611c97573d6000803e3d6000fd5b50505050505050565b611ca8611f78565b674563918244f40000811115611d005760405162461bcd60e51b815260206004820152601e60248201527f736574456d697373696f6e3a2065786365656473206d6178206c696d697400006044820152606401610542565b60068190556040518181527fb114240d54ce08081cbd18870dc3b6cd4091bb86ff29d2ad41906c2a2d6723d49060200160405180910390a150565b81611d4560015490565b8110611d935760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b82600003611de35760405162461bcd60e51b815260206004820152601760248201527f4465706f7369742046495645206279207374616b696e670000000000000000006044820152606401610542565b600060018481548110611df857611df8612677565b60009182526020808320878452600382526040808520338652909252922060049091029091019150611e2985610d80565b805415611e79576000816001015464e8d4a5100084600301548460000154611e5191906126d5565b611e5b91906126f2565b611e65919061272d565b90508015611e7757611e7733826120cb565b505b8315611ebd578154611ea39073ffffffffffffffffffffffffffffffffffffffff16333087612458565b83816000016000828254611eb7919061275d565b90915550505b6003820154815464e8d4a5100091611ed4916126d5565b611ede91906126f2565b6001820155604051848152859033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200161115c565b611f1f611f78565b73ffffffffffffffffffffffffffffffffffffffff8116611f6f576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610542565b61058b816123e3565b60005473ffffffffffffffffffffffffffffffffffffffff16331461138f576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610542565b6000611fd660015490565b9050600060015b828110156120275760018181548110611ff857611ff8612677565b90600052602060002090600402016001015482612015919061275d565b915061202081612770565b9050611fdd565b508015610fc6576000600754606461203f919061272d565b60075461204c91906126f2565b61205690836126d5565b905080600160008154811061206d5761206d612677565b90600052602060002090600402016001015460085461208c919061272d565b612096919061275d565b6008819055508060016000815481106120b1576120b1612677565b906000526020600020906004020160010181905550505050565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e91906127a8565b9050600081831161216f5782612171565b815b6005546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820184905292935091169063a9059cbb906044016020604051808303816000875af11580156121ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122109190612740565b5050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526112fa91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506124a4565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232c91906127a8565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5abeb016040518163ffffffff1660e01b8152600401602060405180830381865afa158015612399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bd91906127a8565b6123c7919061272d565b9050828110156123d9578091506123dd565b8291505b50919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283811660448301526064820183905261249e9186918216906323b872dd90608401612251565b50505050565b600080602060008451602086016000885af1806124c7576040513d6000823e3d81fd5b50506000513d915081156124df5780600114156124f9565b73ffffffffffffffffffffffffffffffffffffffff84163b155b1561249e576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610542565b60006020828403121561255a57600080fd5b5035919050565b6000806040838503121561257457600080fd5b50508035926020909101359150565b73ffffffffffffffffffffffffffffffffffffffff8116811461058b57600080fd5b801515811461058b57600080fd5b6000806000606084860312156125c857600080fd5b8335925060208401356125da81612583565b915060408401356125ea816125a5565b809150509250925092565b60008060006060848603121561260a57600080fd5b833592506020840135915060408401356125ea816125a5565b60006020828403121561263557600080fd5b813561264081612583565b9392505050565b6000806040838503121561265a57600080fd5b82359150602083013561266c81612583565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176126ec576126ec6126a6565b92915050565b600082612728577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b818103818111156126ec576126ec6126a6565b60006020828403121561275257600080fd5b8151612640816125a5565b808201808211156126ec576126ec6126a6565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127a1576127a16126a6565b5060010190565b6000602082840312156127ba57600080fd5b5051919050565b6000816127d0576127d06126a6565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c6343000814000a0000000000000000000000006571c18ddea876ce67932be7115a4e2d11b5d9430000000000000000000000004767f54d4f90af85151ebd9da16b9b8c9f568315000000000000000000000000000000000000000000000000000000006790eb49
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061020b5760003560e01c8063715018a61161012a578063a81d4658116100bd578063e0395c1e1161008c578063f2fde38b11610071578063f2fde38b146104a2578063fa78668f146104b5578063fde04281146104bf57600080fd5b8063e0395c1e14610486578063e2bbb1581461048f57600080fd5b8063a81d46581461042d578063af11c34c14610440578063dc6fe23514610460578063ddce102f1461047357600080fd5b80638da5cb5b116100f95780638da5cb5b146103a557806393f1a40b146103e457806394e382c01461041657806399fcfccb1461042557600080fd5b8063715018a61461037857806381e1ccba14610380578063827c049e14610389578063828047a51461039257600080fd5b80633ff03207116101a2578063630b5ba111610171578063630b5ba11461030e57806364482f79146103165780636552374a146103295780636bd3b87c1461033c57600080fd5b80633ff03207146102cb578063441a3e70146102d557806351eb05a6146102e85780635312ea8e146102fb57600080fd5b80631526fe27116101de5780631526fe271461025257806316a6d94a1461029c57806317caf6f1146102af5780631eaaa045146102b857600080fd5b806305a9f27414610210578063081e3eda1461022c5780630c18d4ce146102345780630e38c32b1461023d575b600080fd5b610219600a5481565b6040519081526020015b60405180910390f35b600154610219565b61021960095481565b61025061024b366004612548565b6104c7565b005b610265610260366004612548565b61058e565b6040805173ffffffffffffffffffffffffffffffffffffffff90951685526020850193909352918301526060820152608001610223565b6102506102aa366004612561565b6105df565b61021960085481565b6102506102c63660046125b3565b6108d5565b61021962278d0081565b6102506102e3366004612561565b610b2d565b6102506102f6366004612548565b610d80565b610250610309366004612548565b610fca565b61025061116b565b6102506103243660046125f5565b61119c565b610219610337366004612623565b6112ff565b61036361034a366004612623565b6004602052600090815260409020805460019091015482565b60408051928352602083019190915201610223565b61025061137d565b61021960075481565b61021960065481565b6102506103a0366004612548565b611391565b60005473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610223565b6103636103f2366004612647565b60036020908152600092835260408084209091529082529020805460019091015482565b610219674563918244f4000081565b610250611500565b61021961043b366004612647565b6117b6565b6005546103bf9073ffffffffffffffffffffffffffffffffffffffff1681565b61025061046e366004612548565b6119f9565b610250610481366004612548565b611ca0565b610219600b5481565b61025061049d366004612561565b611d3b565b6102506104b0366004612623565b611f17565b61021962ed4e0081565b610219601481565b6104cf611f78565b601481111561054b5760405162461bcd60e51b815260206004820152602760248201527f7365745374616b696e6750657263656e746167653a2065786365656473206d6160448201527f78206c696d69740000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60078190556040518181527fe85e3e0b319540f3d1e14a6900e5f1005bf953ea549c6c41e3428224d8898de69060200160405180910390a161058b611fcb565b50565b6001818154811061059e57600080fd5b6000918252602090912060049091020180546001820154600283015460039093015473ffffffffffffffffffffffffffffffffffffffff9092169350919084565b600060016000815481106105f5576105f5612677565b600091825260208083203384527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8252604080852060049384905294209290910201925062278d00841080159061064f575062ed4e008411155b6106c15760405162461bcd60e51b815260206004820152602360248201527f5374616b65206661696c65643a20496e76616c6964204c6f636b20447572617460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152608401610542565b6106cb6000610d80565b8154158015906106df575080600101544211155b15610731576000826001015464e8d4a5100085600301546106ff336112ff565b61070991906126d5565b61071391906126f2565b61071d919061272d565b9050801561072f5761072f33826120cb565b505b8415610866576005546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810187905273ffffffffffffffffffffffffffffffffffffffff909116906323b872dd906064016020604051808303816000875af11580156107b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d89190612740565b50848260000160008282546107ed919061275d565b909155505080548590829060009061080690849061275d565b9091555060009050610818854261275d565b9050816001015481111561082e57600182018190555b85600a6000828254610840919061275d565b9091555050815486900361086457600b805490600061085e83612770565b91905055505b505b64e8d4a51000836003015461087a336112ff565b61088491906126d5565b61088e91906126f2565b6001830155604080518681526020810186905233917f8022d0cd856e916e535bdaaf7c0674e7b2e2f0231ffef91f47d0214b8b801579910160405180910390a25050505050565b6108dd611f78565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054829060ff16156109555760405162461bcd60e51b815260206004820152601960248201527f4164643a20706f6f6c20616c72656164792065786973747321000000000000006044820152606401610542565b81156109635761096361116b565b6000600954421161097657600954610978565b425b9050846008600082825461098c919061275d565b90915550506040805160808101825273ffffffffffffffffffffffffffffffffffffffff86811680835260208084018a815284860187815260006060870181815260018054808201825581845298517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf66004909a02998a0180547fffffffffffffffffffffffff000000000000000000000000000000000000000016919099161790975592517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf788015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf887015590517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9909501949094559083526002905291902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055610ae1611fcb565b604051859073ffffffffffffffffffffffffffffffffffffffff86169033907f5f43b6be860b00b28d44981331005a0503e6b566155ca1423af4299a6bde1f4690600090a45050505050565b81610b3760015490565b8110610b855760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b82600003610bd55760405162461bcd60e51b815260206004820152601a60248201527f5769746864726177204649564520627920756e7374616b696e670000000000006044820152606401610542565b600060018481548110610bea57610bea612677565b600091825260208083208784526003825260408085203386529092529220805460049092029092019250841115610c895760405162461bcd60e51b815260206004820152602260248201527f5769746864726177206661696c65643a20496e76616c6964206f70657261746960448201527f6f6e0000000000000000000000000000000000000000000000000000000000006064820152608401610542565b610c9285610d80565b6000816001015464e8d4a5100084600301548460000154610cb391906126d5565b610cbd91906126f2565b610cc7919061272d565b90508015610cd957610cd933826120cb565b8415610d1b5784826000016000828254610cf3919061272d565b90915550508254610d1b9073ffffffffffffffffffffffffffffffffffffffff163387612217565b6003830154825464e8d4a5100091610d32916126d5565b610d3c91906126f2565b6001830155604051858152869033907ff279e6a1f5e320cca91135676d9cb6e44ca8a08c0b88342bcdb1144f6511b5689060200160405180910390a3505050505050565b80610d8a60015490565b8110610dd85760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b600060018381548110610ded57610ded612677565b9060005260206000209060040201905080600201544211610e0d57505050565b6000808411610e1e57600a54610eaf565b81546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa158015610e8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eaf91906127a8565b905080600003610ec55750426002909101555050565b60006008548360010154600654610edc91906126d5565b610ee691906126f2565b90506000610ef382612298565b90508015610f86576005546040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810183905273ffffffffffffffffffffffffffffffffffffffff909116906340c10f1990604401600060405180830381600087803b158015610f6d57600080fd5b505af1158015610f81573d6000803e3d6000fd5b505050505b82610f968264e8d4a510006126d5565b610fa091906126f2565b846003016000828254610fb3919061275d565b9091555050426002909401939093555050505b5050565b80610fd460015490565b81106110225760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b816000036110725760405162461bcd60e51b815260206004820152601c60248201527f556e617661696c61626c6520666f72207374616b696e6720706f6f6c000000006044820152606401610542565b60006001838154811061108757611087612677565b6000918252602080832086845260038252604080852033865290925292208054600490920290920192506110fd5760405162461bcd60e51b815260206004820152601560248201527f4e6f20746f6b656e7320746f20776974686472617700000000000000000000006044820152606401610542565b805460008083556001830155825461112c9073ffffffffffffffffffffffffffffffffffffffff163383612217565b604051818152859033907fbb757047c2b5f3974fe26b7c10f732e7bce710b0952a71082702781e62ae0595906020015b60405180910390a35050505050565b600061117660015490565b905060005b81811015610fc65761118c81610d80565b61119581612770565b905061117b565b6111a4611f78565b8260000361121a5760405162461bcd60e51b815260206004820152602a60248201527f596f752063616e27742073657420616c6c6f63506f696e7420666f722073746160448201527f6b696e6720706f6f6c2e000000000000000000000000000000000000000000006064820152608401610542565b80156112285761122861116b565b816001848154811061123c5761123c612677565b906000526020600020906004020160010154146112fa5760006001848154811061126857611268612677565b9060005260206000209060040201600101549050826001858154811061129057611290612677565b90600052602060002090600402016001018190555082816008546112b4919061272d565b6112be919061275d565b6008556112c9611fcb565b6040518390859033907f9eca8f7bcfb868d72b4ed95b71c627c194ab6bcb9b83adb2280e8a0320bb847690600090a4505b505050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600460205260408120600181015442118061133557508054155b156113435750600092915050565b6000428260010154611355919061272d565b905062ed4e0081836000015461136b91906126d5565b61137591906126f2565b949350505050565b611385611f78565b61138f60006123e3565b565b33600090815260046020526040902080546113ee5760405162461bcd60e51b815260206004820152601860248201527f4e6f20616374697665206c6f636b20746f20657874656e6400000000000000006044820152606401610542565b6000828260010154611400919061275d565b905061140f62ed4e004261275d565b81111561145e5760405162461bcd60e51b815260206004820152601d60248201527f45786365656473206d6178696d756d206c6f636b206475726174696f6e0000006044820152606401610542565b61146b62278d004261275d565b8110156114ba5760405162461bcd60e51b815260206004820152601560248201527f556e6c6f636b2074696d6520746f6f2073686f727400000000000000000000006044820152606401610542565b60018201819055604080518481526020810183905233917e3b7d2ad3b9d4b540c9231c2d2302e09268ce8fbb59d4005bf049893beffa2e910160405180910390a2505050565b6000600160008154811061151657611516612677565b600091825260208083203384527f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff8252604080852060049384905294208454929093020193501580159061156a5750805415155b6115dc5760405162461bcd60e51b815260206004820152602160248201527f556e7374616b65206661696c65643a20496e76616c6964206f7065726174696f60448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610542565b6115e66000610d80565b80600101544211611642576000826001015464e8d4a51000856003015461160c336112ff565b61161691906126d5565b61162091906126f2565b61162a919061272d565b9050801561163c5761163c33826120cb565b50611781565b6000826001015464e8d4a510008560030154856000015461166391906126d5565b61166d91906126f2565b611677919061272d565b90508015611704576005546040517f42966c680000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906342966c6890602401600060405180830381600087803b1580156116eb57600080fd5b505af11580156116ff573d6000803e3d6000fd5b505050505b82546000808555808455600184015561171d33826120cb565b80600a600082825461172f919061272d565b9091555050600b8054906000611744836127c1565b909155505060405181815233907fbeeac20c93f16ecc5d2707dffeb3263a7f99053ac0aa548803e9e8b5a00074389060200160405180910390a250505b64e8d4a510008360030154611795336112ff565b61179f91906126d5565b6117a991906126f2565b8260010181905550505050565b6000826117c260015490565b81106118105760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b60006001858154811061182557611825612677565b600091825260208083208884526003808352604080862073ffffffffffffffffffffffffffffffffffffffff8b1687529093529184206004909302019081015490935090918761187757600a54611908565b83546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa1580156118e4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190891906127a8565b905083600201544211801561191c57508015155b1561197a576000600854856001015460065461193891906126d5565b61194291906126f2565b9050600061194f82612298565b9050826119618264e8d4a510006126d5565b61196b91906126f2565b611975908561275d565b935050505b87156119b8576001830154835464e8d4a51000906119999085906126d5565b6119a391906126f2565b6119ad919061272d565b9550505050506119f2565b826001015464e8d4a51000836119cd8a6112ff565b6119d791906126d5565b6119e191906126f2565b6119eb919061272d565b9550505050505b5092915050565b611a01611f78565b600554604080517fd5abeb01000000000000000000000000000000000000000000000000000000008152905160009273ffffffffffffffffffffffffffffffffffffffff169163d5abeb019160048083019260209291908290030181865afa158015611a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9591906127a8565b90506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a91906127a8565b9050818310611ba15760405162461bcd60e51b815260206004820152603760248201527f4e6577206d617820737570706c79206d757374206265206c657373207468616e60448201527f207468652063757272656e74206d617820737570706c790000000000000000006064820152608401610542565b80831015611c175760405162461bcd60e51b815260206004820152603d60248201527f4e6577206d617820737570706c79206d757374206e6f74206265206c6573732060448201527f7468616e207468652063757272656e7420746f74616c20737570706c790000006064820152608401610542565b6005546040517f91ff4a730000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff909116906391ff4a7390602401600060405180830381600087803b158015611c8357600080fd5b505af1158015611c97573d6000803e3d6000fd5b50505050505050565b611ca8611f78565b674563918244f40000811115611d005760405162461bcd60e51b815260206004820152601e60248201527f736574456d697373696f6e3a2065786365656473206d6178206c696d697400006044820152606401610542565b60068190556040518181527fb114240d54ce08081cbd18870dc3b6cd4091bb86ff29d2ad41906c2a2d6723d49060200160405180910390a150565b81611d4560015490565b8110611d935760405162461bcd60e51b815260206004820152600f60248201527f496e76616c696420706f6f6c20494400000000000000000000000000000000006044820152606401610542565b82600003611de35760405162461bcd60e51b815260206004820152601760248201527f4465706f7369742046495645206279207374616b696e670000000000000000006044820152606401610542565b600060018481548110611df857611df8612677565b60009182526020808320878452600382526040808520338652909252922060049091029091019150611e2985610d80565b805415611e79576000816001015464e8d4a5100084600301548460000154611e5191906126d5565b611e5b91906126f2565b611e65919061272d565b90508015611e7757611e7733826120cb565b505b8315611ebd578154611ea39073ffffffffffffffffffffffffffffffffffffffff16333087612458565b83816000016000828254611eb7919061275d565b90915550505b6003820154815464e8d4a5100091611ed4916126d5565b611ede91906126f2565b6001820155604051848152859033907f90890809c654f11d6e72a28fa60149770a0d11ec6c92319d6ceb2bb0a4ea1a159060200161115c565b611f1f611f78565b73ffffffffffffffffffffffffffffffffffffffff8116611f6f576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610542565b61058b816123e3565b60005473ffffffffffffffffffffffffffffffffffffffff16331461138f576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610542565b6000611fd660015490565b9050600060015b828110156120275760018181548110611ff857611ff8612677565b90600052602060002090600402016001015482612015919061275d565b915061202081612770565b9050611fdd565b508015610fc6576000600754606461203f919061272d565b60075461204c91906126f2565b61205690836126d5565b905080600160008154811061206d5761206d612677565b90600052602060002090600402016001015460085461208c919061272d565b612096919061275d565b6008819055508060016000815481106120b1576120b1612677565b906000526020600020906004020160010181905550505050565b6005546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009173ffffffffffffffffffffffffffffffffffffffff16906370a0823190602401602060405180830381865afa15801561213a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215e91906127a8565b9050600081831161216f5782612171565b815b6005546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820184905292935091169063a9059cbb906044016020604051808303816000875af11580156121ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122109190612740565b5050505050565b60405173ffffffffffffffffffffffffffffffffffffffff8381166024830152604482018390526112fa91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506124a4565b600080600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232c91906127a8565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d5abeb016040518163ffffffff1660e01b8152600401602060405180830381865afa158015612399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bd91906127a8565b6123c7919061272d565b9050828110156123d9578091506123dd565b8291505b50919050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60405173ffffffffffffffffffffffffffffffffffffffff848116602483015283811660448301526064820183905261249e9186918216906323b872dd90608401612251565b50505050565b600080602060008451602086016000885af1806124c7576040513d6000823e3d81fd5b50506000513d915081156124df5780600114156124f9565b73ffffffffffffffffffffffffffffffffffffffff84163b155b1561249e576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610542565b60006020828403121561255a57600080fd5b5035919050565b6000806040838503121561257457600080fd5b50508035926020909101359150565b73ffffffffffffffffffffffffffffffffffffffff8116811461058b57600080fd5b801515811461058b57600080fd5b6000806000606084860312156125c857600080fd5b8335925060208401356125da81612583565b915060408401356125ea816125a5565b809150509250925092565b60008060006060848603121561260a57600080fd5b833592506020840135915060408401356125ea816125a5565b60006020828403121561263557600080fd5b813561264081612583565b9392505050565b6000806040838503121561265a57600080fd5b82359150602083013561266c81612583565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176126ec576126ec6126a6565b92915050565b600082612728577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b818103818111156126ec576126ec6126a6565b60006020828403121561275257600080fd5b8151612640816125a5565b808201808211156126ec576126ec6126a6565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036127a1576127a16126a6565b5060010190565b6000602082840312156127ba57600080fd5b5051919050565b6000816127d0576127d06126a6565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c6343000814000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000006571c18ddea876ce67932be7115a4e2d11b5d9430000000000000000000000004767f54d4f90af85151ebd9da16b9b8c9f568315000000000000000000000000000000000000000000000000000000006790eb49
-----Decoded View---------------
Arg [0] : initialOwner (address): 0x6571c18ddEa876Ce67932bE7115A4E2d11b5D943
Arg [1] : _five (address): 0x4767f54d4F90aF85151ebd9da16B9b8C9f568315
Arg [2] : _startBlockTime (uint256): 1737550665
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000006571c18ddea876ce67932be7115a4e2d11b5d943
Arg [1] : 0000000000000000000000004767f54d4f90af85151ebd9da16b9b8c9f568315
Arg [2] : 000000000000000000000000000000000000000000000000000000006790eb49
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 35 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.