ETH Price: $2,727.25 (+0.71%)

Token

Inedible Coin (INEDIBLE)
 

Overview

Max Total Supply

888,888,888,888,888 INEDIBLE

Holders

1,631 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
crispychainz.eth
Balance
0.000000000000000001 INEDIBLE

Value
$0.00
0xDC6784896b6dCe26a8cfCe64efa5bEE202AC1139
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Inedible is a token designed to prevent sandwich attacks. It's grown into more and now is also the governance token for inedibleX, a dex with built-in protections to stop users from being harmed.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Inedible

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 21 : Inedible.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT License
pragma solidity 0.8.18;
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol";
/**
.:^~!7??JYYY55555555YYYJJ?7!~^:.
:^!7?JY5555555555555555555555555555YJJ7!^:
.:~7JY5555555555555555555555555555555555555555YJ7~:.
.~7J555555555555555555555YYYYYYYY555555555555555555555J7~.
.~?Y55555555555555YJJ7!!~^::::....::::^~!!7JJY55555555555555Y?~.
^7Y555555555555YJ7~^.. ..^~7JY555555555555Y7^
.~J55555555555Y?!^. .^!?Y55555555555J~.
.!Y5555555555Y7~. .!Y55555555555Y!.
~J555555555Y?~. :!Y55555555555555J~
:?555555555Y7: :7Y555555555555555555?:
!Y55555555Y!. :7Y555555555Y!!Y55555555Y!
.?5555555557: ^?5555555555J~. :7555555555?.
:J55555555Y^ ^?5555555555J~. ^J55555555J:
:J55555555?. .:.............................. ........ .~J5555555555J~. . ^J55555555J:
.J555555557. ^7!~^^:::::::::::::::::::::::::::::::::::^!J5555555555J~:::::::::^~~!~755555555J.
?555555557 ~777!!~^^::::::::::::::::::::::::::::::^!Y5555555555?~:::::::^^^~!!~!!.755555555?
~55555555?. ~7!!!!~!!~~^:::::::::::::::::::::::::^7Y555555555Y?~::::::^~~~!~~~~~!! ?55555555~
.Y5555555Y. :??7!~!!!!!!~~^::::::::::::::::::::^7Y555555555Y7^:::::^~~~!~~~~~~~~^. .Y5555555Y.
!55555555~ .~7???7!!!!!!!!!!~~^:::::::::::::::^?Y555555555Y7^:::^^^~~!~~~~~~~~!!!. ~55555555!
J5555555J. :!77!!777!7!!~!!!!!!~~~^^:::::::::~?Y555555555Y7^::^~~!!~~~~~~~~~!!!777~. .J5555555J
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 21 : ERC20Votes.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Votes.sol)
pragma solidity ^0.8.0;
import "./ERC20Permit.sol";
import "../../../interfaces/IERC5805.sol";
import "../../../utils/math/Math.sol";
import "../../../utils/math/SafeCast.sol";
import "../../../utils/cryptography/ECDSA.sol";
/**
* @dev Extension of ERC20 to support Compound-like voting and delegation. This version is more generic than Compound's,
* and supports token supply up to 2^224^ - 1, while COMP is limited to 2^96^ - 1.
*
* NOTE: If exact COMP compatibility is required, use the {ERC20VotesComp} variant of this module.
*
* This extension keeps a history (checkpoints) of each account's vote power. Vote power can be delegated either
* by calling the {delegate} function directly, or by providing a signature to be used with {delegateBySig}. Voting
* power can be queried through the public accessors {getVotes} and {getPastVotes}.
*
* By default, token balance does not account for voting power. This makes transfers cheaper. The downside is that it
* requires users to delegate to themselves in order to activate checkpoints and have their voting power tracked.
*
* _Available since v4.2._
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 21 : ECDSA.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/ECDSA.sol)
pragma solidity ^0.8.0;
import "../Strings.sol";
/**
* @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,
InvalidSignatureV // Deprecated in v4.8
}
function _throwError(RecoverError error) private pure {
if (error == RecoverError.NoError) {
return; // no error: do nothing
} else if (error == RecoverError.InvalidSignature) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 21 : SafeCast.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SafeCast.sol)
// This file was procedurally generated from scripts/generate/templates/SafeCast.js.
pragma solidity ^0.8.0;
/**
* @dev Wrappers over Solidity's uintXX/intXX 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.
*
* Can be combined with {SafeMath} and {SignedSafeMath} to extend it to smaller types, by performing
* all math on `uint256` and `int256` and then downcasting.
*/
library SafeCast {
/**
* @dev Returns the downcasted uint248 from uint256, reverting on
* overflow (when the input is greater than largest uint248).
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 21 : Math.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/math/Math.sol)
pragma solidity ^0.8.0;
/**
* @dev Standard math utilities missing in the Solidity language.
*/
library Math {
enum Rounding {
Down, // Toward negative infinity
Up, // Toward infinity
Zero // Toward zero
}
/**
* @dev Returns the largest of two numbers.
*/
function max(uint256 a, uint256 b) internal pure returns (uint256) {
return a > b ? a : b;
}
/**
* @dev Returns the smallest of two numbers.
*/
function min(uint256 a, uint256 b) internal pure returns (uint256) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 21 : IERC5805.sol
1
2
3
4
5
6
7
8
9
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5805.sol)
pragma solidity ^0.8.0;
import "../governance/utils/IVotes.sol";
import "./IERC6372.sol";
interface IERC5805 is IERC6372, IVotes {}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 21 : ERC20Permit.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/ERC20Permit.sol)
pragma solidity ^0.8.0;
import "./IERC20Permit.sol";
import "../ERC20.sol";
import "../../../utils/cryptography/ECDSA.sol";
import "../../../utils/cryptography/EIP712.sol";
import "../../../utils/Counters.sol";
/**
* @dev Implementation of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
*
* Adds the {permit} method, which can be used to change an account's ERC20 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.
*
* _Available since v3.4._
*/
abstract contract ERC20Permit is ERC20, IERC20Permit, EIP712 {
using Counters for Counters.Counter;
mapping(address => Counters.Counter) private _nonces;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 21 : Strings.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
import "./math/Math.sol";
import "./math/SignedMath.sol";
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _SYMBOLS = "0123456789abcdef";
uint8 private constant _ADDRESS_LENGTH = 20;
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
unchecked {
uint256 length = Math.log10(value) + 1;
string memory buffer = new string(length);
uint256 ptr;
/// @solidity memory-safe-assembly
assembly {
ptr := add(buffer, add(32, length))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 21 : Counters.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Counters.sol)
pragma solidity ^0.8.0;
/**
* @title Counters
* @author Matt Condon (@shrugs)
* @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number
* of elements in a mapping, issuing ERC721 ids, or counting request ids.
*
* Include with `using Counters for Counters.Counter;`
*/
library Counters {
struct Counter {
// This variable should never be directly accessed by users of the library: interactions must be restricted to
// the library's function. As of Solidity v0.5.2, this cannot be enforced, though there is a proposal to add
// this feature: see https://github.com/ethereum/solidity/issues/4637
uint256 _value; // default: 0
}
function current(Counter storage counter) internal view returns (uint256) {
return counter._value;
}
function increment(Counter storage counter) internal {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 21 : EIP712.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/cryptography/EIP712.sol)
pragma solidity ^0.8.8;
import "./ECDSA.sol";
import "../ShortStrings.sol";
import "../../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 specified in the EIP is very generic, and such a generic 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 their contracts 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].
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 21 : ERC20.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/ERC20.sol)
pragma solidity ^0.8.0;
import "./IERC20.sol";
import "./extensions/IERC20Metadata.sol";
import "../../utils/Context.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}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* 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 ERC20
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 21 : IERC20Permit.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/extensions/IERC20Permit.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
* https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
*
* Adds the {permit} method, which can be used to change an account's ERC20 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.
*/
interface IERC20Permit {
/**
* @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
* given ``owner``'s signed approval.
*
* IMPORTANT: The same issues {IERC20-approve} has related to transaction
* ordering also apply here.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `spender` cannot be the zero address.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 13 of 21 : IERC6372.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC6372.sol)
pragma solidity ^0.8.0;
interface IERC6372 {
/**
* @dev Clock used for flagging checkpoints. Can be overridden to implement timestamp based checkpoints (and voting).
*/
function clock() external view returns (uint48);
/**
* @dev Description of the clock
*/
// solhint-disable-next-line func-name-mixedcase
function CLOCK_MODE() external view returns (string memory);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 14 of 21 : IVotes.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (governance/utils/IVotes.sol)
pragma solidity ^0.8.0;
/**
* @dev Common interface for {ERC20Votes}, {ERC721Votes}, and other {Votes}-enabled contracts.
*
* _Available since v4.5._
*/
interface IVotes {
/**
* @dev Emitted when an account changes their delegate.
*/
event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate);
/**
* @dev Emitted when a token transfer or delegate change results in changes to a delegate's number of votes.
*/
event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance);
/**
* @dev Returns the current amount of votes that `account` has.
*/
function getVotes(address account) external view returns (uint256);
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 15 of 21 : IERC5267.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (interfaces/IERC5267.sol)
pragma solidity ^0.8.0;
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()
external
view
returns (
bytes1 fields,
string memory name,
string memory version,
uint256 chainId,
address verifyingContract,
bytes32 salt,
uint256[] memory extensions
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 16 of 21 : ShortStrings.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/ShortStrings.sol)
pragma solidity ^0.8.8;
import "./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 *;
*
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 17 of 21 : SignedMath.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.8.0) (utils/math/SignedMath.sol)
pragma solidity ^0.8.0;
/**
* @dev Standard signed math utilities missing in the Solidity language.
*/
library SignedMath {
/**
* @dev Returns the largest of two signed numbers.
*/
function max(int256 a, int256 b) internal pure returns (int256) {
return a > b ? a : b;
}
/**
* @dev Returns the smallest of two signed numbers.
*/
function min(int256 a, int256 b) internal pure returns (int256) {
return a < b ? a : b;
}
/**
* @dev Returns the average of two signed numbers without overflow.
* The result is rounded towards zero.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 18 of 21 : Context.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @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;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 19 of 21 : IERC20Metadata.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol)
pragma solidity ^0.8.0;
import "../IERC20.sol";
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
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.
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 20 of 21 : IERC20.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
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 amount of tokens in existence.
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 21 of 21 : StorageSlot.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (utils/StorageSlot.sol)
// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.
pragma solidity ^0.8.0;
/**
* @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 ERC1967 implementation slot:
* ```solidity
* contract ERC1967 {
* bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;
*
* function _getImplementation() internal view returns (address) {
* return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;
* }
*
* function _setImplementation(address newImplementation) internal {
* require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract");
* StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CLOCK_MODE","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clock","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"timepoint","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newDex","type":"address"}],"name":"toggleDex","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6101606040523480156200001257600080fd5b506040518060400160405280600d81526020016c24b732b234b136329021b7b4b760991b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600d81526020016c24b732b234b136329021b7b4b760991b81525060405180604001604052806008815260200167494e454449424c4560c01b8152508160039081620000ac919062000aa1565b506004620000bb828262000aa1565b505050620000d9600583620001c060201b62000e2f1790919060201c565b61012052620000f6816006620001c0602090811b62000e2f17901c565b61014052815160208084019190912060e052815190820120610100524660a0526200018460e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c05250620001a8336d2bd35ae79a49ed3975a215e0000062000210565b600c80546001600160a01b0319163317905562000c24565b6000602083511015620001e057620001d883620002c7565b90506200020a565b82620001f7836200030a60201b62000e601760201c565b9062000204908262000aa1565b5060ff90505b92915050565b6200022782826200030d60201b62000e631760201c565b6001600160e01b036200023b620003ec8216565b1115620002a85760405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b60648201526084015b60405180910390fd5b620002c1600b62000f3a620003f260201b178362000407565b50505050565b600080829050601f81511115620002f5578260405163305a27a960e01b81526004016200029f919062000b6d565b8051620003028262000bbd565b179392505050565b90565b6001600160a01b038216620003655760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200029f565b6200037360008383620005b0565b806002600082825462000387919062000bf8565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620003e86000838362000707565b5050565b60025490565b600062000400828462000bf8565b9392505050565b82546000908190818115620004565760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b031660208201526200046b565b60408051808201909152600080825260208201525b905080602001516001600160e01b031693506200048984868860201c565b9250600082118015620004b65750620004a162000758565b65ffffffffffff16816000015163ffffffff16145b156200050a57620004d2836200077560201b62000f461760201c565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055620005a6565b866040518060400160405280620005436200052a6200075860201b60201c565b65ffffffffffff16620007e460201b62000fb31760201c565b63ffffffff16815260200162000564866200077560201b62000f461760201c565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b6001600160a01b038084166000908152600e6020526040808220549285168252902054811562000633574282101562000604576001600160a01b0385166000908152600e6020526040902042905562000633565b42820362000633576200061942600162000bf8565b6001600160a01b0386166000908152600e60205260409020555b801562000693574281101562000664576001600160a01b0384166000908152600e6020526040902042905562000693565b42810362000693576200067942600162000bf8565b6001600160a01b0385166000908152600e60205260409020555b428211158015620006a45750428111155b620007005760405162461bcd60e51b815260206004820152602560248201527f546f6f206d616e7920646578207472616e73616374696f6e73207468697320626044820152643637b1b59760d91b60648201526084016200029f565b5050505050565b6200071f8383836200075360201b620010181760201c565b6001600160a01b0383811660009081526009602052604080822054858416835291205462000753929182169116836200084b565b505050565b600062000770436200098660201b6200101d1760201c565b905090565b60006001600160e01b03821115620007e05760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016200029f565b5090565b600063ffffffff821115620007e05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016200029f565b816001600160a01b0316836001600160a01b0316141580156200086e5750600081115b1562000753576001600160a01b03831615620008fb576001600160a01b0383166000908152600a6020908152604082208291620008b89190620009ef901b62001084178562000407565b91509150846001600160a01b0316600080516020620032278339815191528383604051620008f0929190918252602082015260400190565b60405180910390a250505b6001600160a01b0382161562000753576001600160a01b0382166000908152600a60209081526040822082916200093f9190620003f2901b62000f3a178562000407565b91509150836001600160a01b031660008051602062003227833981519152838360405162000977929190918252602082015260400190565b60405180910390a25050505050565b600065ffffffffffff821115620007e05760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016200029f565b600062000400828462000c0e565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168062000a2857607f821691505b60208210810362000a4957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200075357600081815260208120601f850160051c8101602086101562000a785750805b601f850160051c820191505b8181101562000a995782815560010162000a84565b505050505050565b81516001600160401b0381111562000abd5762000abd620009fd565b62000ad58162000ace845462000a13565b8462000a4f565b602080601f83116001811462000b0d576000841562000af45750858301515b600019600386901b1c1916600185901b17855562000a99565b600085815260208120601f198616915b8281101562000b3e5788860151825594840194600190910190840162000b1d565b508582101562000b5d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083528351808285015260005b8181101562000b9c5785810183015185820160400152820162000b7e565b506000604082860101526040601f19601f8301168501019250505092915050565b8051602080830151919081101562000a495760001960209190910360031b1b16919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200020a576200020a62000be2565b818103818111156200020a576200020a62000be2565b60805160a05160c05160e0516101005161012051610140516125a862000c7f60003960006108ce015260006108a3015260006114bd01526000611495015260006113f00152600061141a0152600061144401526125a86000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f5780639ab24eb0116100a2578063d505accf11610071578063d505accf1461043c578063dd62ed3e1461044f578063f1127ed814610462578063f851a4401461049f57600080fd5b80639ab24eb0146103f0578063a457c2d714610403578063a9059cbb14610416578063c3cda5201461042957600080fd5b80638bad0c0a116100de5780638bad0c0a146103ae5780638e539e8c146103b657806391ddadf4146103c957806395d89b41146103e857600080fd5b806370a082311461034457806375829def1461036d5780637ecebe001461038057806384b0196e1461039357600080fd5b80633644e51511610187578063584dfa0411610156578063584dfa04146102ca578063587cde1e146102dd5780635c19a95c146103095780636fcfff451461031c57600080fd5b80633644e51514610294578063395093511461029c5780633a46b1a8146102af5780634bf5d7e9146102c257600080fd5b806318160ddd116101c357806318160ddd1461023557806323b872dd14610247578063267822471461025a578063313ce5671461028557600080fd5b806306fdde03146101ea578063095ea7b3146102085780630e18b6811461022b575b600080fd5b6101f26104b2565b6040516101ff9190612063565b60405180910390f35b61021b610216366004612092565b610544565b60405190151581526020016101ff565b61023361055e565b005b6002545b6040519081526020016101ff565b61021b6102553660046120bc565b610603565b600d5461026d906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b604051601281526020016101ff565b610239610627565b61021b6102aa366004612092565b610636565b6102396102bd366004612092565b610658565b6101f26106dd565b6102336102d83660046120f8565b610775565b61026d6102eb3660046120f8565b6001600160a01b039081166000908152600960205260409020541690565b6102336103173660046120f8565b6107ff565b61032f61032a3660046120f8565b610809565b60405163ffffffff90911681526020016101ff565b6102396103523660046120f8565b6001600160a01b031660009081526020819052604090205490565b61023361037b3660046120f8565b61082b565b61023961038e3660046120f8565b610877565b61039b610895565b6040516101ff9796959493929190612113565b61023361091e565b6102396103c43660046121a9565b61095a565b6103d16109c1565b60405165ffffffffffff90911681526020016101ff565b6101f26109cc565b6102396103fe3660046120f8565b6109db565b61021b610411366004612092565b610a5d565b61021b610424366004612092565b610ad8565b6102336104373660046121d3565b610ae6565b61023361044a36600461222b565b610c1c565b61023961045d366004612295565b610d80565b6104756104703660046122c8565b610dab565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101ff565b600c5461026d906001600160a01b031681565b6060600380546104c190612308565b80601f01602080910402602001604051908101604052809291908181526020018280546104ed90612308565b801561053a5780601f1061050f5761010080835404028352916020019161053a565b820191906000526020600020905b81548152906001019060200180831161051d57829003601f168201915b5050505050905090565b600033610552818585611090565b60019150505b92915050565b600d546001600160a01b031633146105dc5760405162461bcd60e51b815260206004820152603660248201527f4f6e6c79207468652070656e64696e672061646d696e6973747261746f72206d60448201527530bc9031b0b636103a3434b990333ab731ba34b7b71760511b60648201526084015b60405180910390fd5b600d8054600c80546001600160a01b03199081166001600160a01b03841617909155169055565b6000336106118582856111b4565b61061c85858561122e565b506001949350505050565b60006106316113e3565b905090565b6000336105528185856106498383610d80565b6106539190612352565b611090565b60006106626109c1565b65ffffffffffff1682106106b45760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064016105d3565b6001600160a01b0383166000908152600a602052604090206106d6908361150e565b9392505050565b6060436106e86109c1565b65ffffffffffff161461073d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f646500000060448201526064016105d3565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b600c546001600160a01b0316331461079f5760405162461bcd60e51b81526004016105d390612365565b6001600160a01b0381166000908152600e6020526040902054156107d7576001600160a01b03166000908152600e6020526040812055565b6107e26001426123b3565b6001600160a01b0382166000908152600e60205260409020555b50565b6107fc33826115f7565b6001600160a01b0381166000908152600a602052604081205461055890610fb3565b600c546001600160a01b031633146108555760405162461bcd60e51b81526004016105d390612365565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260076020526040812054610558565b6000606080828080836108c97f00000000000000000000000000000000000000000000000000000000000000006005611670565b6108f47f00000000000000000000000000000000000000000000000000000000000000006006611670565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600c546001600160a01b031633146109485760405162461bcd60e51b81526004016105d390612365565b600c80546001600160a01b0319169055565b60006109646109c1565b65ffffffffffff1682106109b65760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064016105d3565b610558600b8361150e565b60006106314361101d565b6060600480546104c190612308565b6001600160a01b0381166000908152600a60205260408120548015610a4a576001600160a01b0383166000908152600a6020526040902080546000198301908110610a2857610a286123dc565b60009182526020909120015464010000000090046001600160e01b0316610a4d565b60005b6001600160e01b03169392505050565b60003381610a6b8286610d80565b905083811015610acb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d3565b61061c8286868403611090565b60003361055281858561122e565b83421115610b365760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e6174757265206578706972656400000060448201526064016105d3565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610bb090610ba89060a00160405160208183030381529060405280519060200120611714565b858585611741565b9050610bbb81611769565b8614610c095760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000060448201526064016105d3565b610c1381886115f7565b50505050505050565b83421115610c6c5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105d3565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610c9b8c611769565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610cf682611714565b90506000610d0682878787611741565b9050896001600160a01b0316816001600160a01b031614610d695760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105d3565b610d748a8a8a611090565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600a60205260409020805463ffffffff8416908110610def57610def6123dc565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b6000602083511015610e4b57610e4483611791565b9050610558565b81610e568482612440565b5060ff9050610558565b90565b6001600160a01b038216610eb95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d3565b610ec5600083836117cf565b8060026000828254610ed79190612352565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f3660008383611917565b5050565b60006106d68284612352565b60006001600160e01b03821115610faf5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016105d3565b5090565b600063ffffffff821115610faf5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105d3565b505050565b600065ffffffffffff821115610faf5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016105d3565b60006106d682846123b3565b6001600160a01b0383166110f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d3565b6001600160a01b0382166111535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111c08484610d80565b90506000198114611228578181101561121b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d3565b6112288484848403611090565b50505050565b6001600160a01b0383166112925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d3565b6001600160a01b0382166112f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d3565b6112ff8383836117cf565b6001600160a01b038316600090815260208190526040902054818110156113775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105d3565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611228848484611917565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561143c57507f000000000000000000000000000000000000000000000000000000000000000046145b1561146657507f000000000000000000000000000000000000000000000000000000000000000090565b610631604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b81546000908181600581111561156857600061152984611949565b61153390856123b3565b600088815260209020909150869082015463ffffffff16111561155857809150611566565b611563816001612352565b92505b505b808210156115b557600061157c8383611a31565b600088815260209020909150869082015463ffffffff1611156115a1578091506115af565b6115ac816001612352565b92505b50611568565b80156115e1576000868152602090208101600019015464010000000090046001600160e01b03166115e4565b60005b6001600160e01b03169695505050505050565b6001600160a01b038281166000818152600960208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611228828483611a4c565b606060ff831461168357610e4483611b89565b81805461168f90612308565b80601f01602080910402602001604051908101604052809291908181526020018280546116bb90612308565b80156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b50505050509050610558565b60006105586117216113e3565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600061175287878787611bc8565b9150915061175f81611c8c565b5095945050505050565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b600080829050601f815111156117bc578260405163305a27a960e01b81526004016105d39190612063565b80516117c782612500565b179392505050565b6001600160a01b038084166000908152600e6020526040808220549285168252902054811561184c5742821015611820576001600160a01b0385166000908152600e6020526040902042905561184c565b42820361184c57611832426001612352565b6001600160a01b0386166000908152600e60205260409020555b80156118a6574281101561187a576001600160a01b0384166000908152600e602052604090204290556118a6565b4281036118a65761188c426001612352565b6001600160a01b0385166000908152600e60205260409020555b4282111580156118b65750428111155b6119105760405162461bcd60e51b815260206004820152602560248201527f546f6f206d616e7920646578207472616e73616374696f6e73207468697320626044820152643637b1b59760d91b60648201526084016105d3565b5050505050565b6001600160a01b0383811660009081526009602052604080822054858416835291205461101892918216911683611a4c565b60008160000361195b57506000919050565b6000600161196884611dd6565b901c6001901b9050600181848161198157611981612524565b048201901c9050600181848161199957611999612524565b048201901c905060018184816119b1576119b1612524565b048201901c905060018184816119c9576119c9612524565b048201901c905060018184816119e1576119e1612524565b048201901c905060018184816119f9576119f9612524565b048201901c90506001818481611a1157611a11612524565b048201901c90506106d681828581611a2b57611a2b612524565b04611e6a565b6000611a40600284841861253a565b6106d690848416612352565b816001600160a01b0316836001600160a01b031614158015611a6e5750600081115b15611018576001600160a01b03831615611afc576001600160a01b0383166000908152600a602052604081208190611aa99061108485611e80565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611af1929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611018576001600160a01b0382166000908152600a602052604081208190611b3290610f3a85611e80565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611b7a929190918252602082015260400190565b60405180910390a25050505050565b60606000611b9683611ff5565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611bff5750600090506003611c83565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611c53573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611c7c57600060019250925050611c83565b9150600090505b94509492505050565b6000816004811115611ca057611ca061255c565b03611ca85750565b6001816004811115611cbc57611cbc61255c565b03611d095760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105d3565b6002816004811115611d1d57611d1d61255c565b03611d6a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105d3565b6003816004811115611d7e57611d7e61255c565b036107fc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105d3565b600080608083901c15611deb57608092831c92015b604083901c15611dfd57604092831c92015b602083901c15611e0f57602092831c92015b601083901c15611e2157601092831c92015b600883901c15611e3357600892831c92015b600483901c15611e4557600492831c92015b600283901c15611e5757600292831c92015b600183901c156105585760010192915050565b6000818310611e7957816106d6565b5090919050565b82546000908190818115611ecd5760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611ee2565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611f0284868863ffffffff16565b9250600082118015611f2c5750611f176109c1565b65ffffffffffff16816000015163ffffffff16145b15611f7157611f3a83610f46565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611feb565b866040518060400160405280611f95611f886109c1565b65ffffffffffff16610fb3565b63ffffffff168152602001611fa986610f46565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b600060ff8216601f81111561055857604051632cd44ac360e21b815260040160405180910390fd5b6000815180845260005b8181101561204357602081850181015186830182015201612027565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d6602083018461201d565b80356001600160a01b038116811461208d57600080fd5b919050565b600080604083850312156120a557600080fd5b6120ae83612076565b946020939093013593505050565b6000806000606084860312156120d157600080fd5b6120da84612076565b92506120e860208501612076565b9150604084013590509250925092565b60006020828403121561210a57600080fd5b6106d682612076565b60ff60f81b881681526000602060e08184015261213360e084018a61201d565b8381036040850152612145818a61201d565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156121975783518352928401929184019160010161217b565b50909c9b505050505050505050505050565b6000602082840312156121bb57600080fd5b5035919050565b803560ff8116811461208d57600080fd5b60008060008060008060c087890312156121ec57600080fd5b6121f587612076565b95506020870135945060408701359350612211606088016121c2565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561224657600080fd5b61224f88612076565b965061225d60208901612076565b95506040880135945060608801359350612279608089016121c2565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156122a857600080fd5b6122b183612076565b91506122bf60208401612076565b90509250929050565b600080604083850312156122db57600080fd5b6122e483612076565b9150602083013563ffffffff811681146122fd57600080fd5b809150509250929050565b600181811c9082168061231c57607f821691505b60208210810361178b57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105585761055861233c565b6020808252602e908201527f4f6e6c79207468652061646d696e6973747261746f72206d61792063616c6c2060408201526d3a3434b990333ab731ba34b7b71760911b606082015260800190565b818103818111156105585761055861233c565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561101857600081815260208120601f850160051c810160208610156124195750805b601f850160051c820191505b8181101561243857828155600101612425565b505050505050565b815167ffffffffffffffff81111561245a5761245a6123c6565b61246e816124688454612308565b846123f2565b602080601f8311600181146124a3576000841561248b5750858301515b600019600386901b1c1916600185901b178555612438565b600085815260208120601f198616915b828110156124d2578886015182559484019460019091019084016124b3565b50858210156124f05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8051602080830151919081101561178b5760001960209190910360031b1b16919050565b634e487b7160e01b600052601260045260246000fd5b60008261255757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220e8ddc40ad47293ad1dcf21803cbf448e238394712a1b3f7cb7bc985993e95cf464736f6c63430008120033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101e55760003560e01c806370a082311161010f5780639ab24eb0116100a2578063d505accf11610071578063d505accf1461043c578063dd62ed3e1461044f578063f1127ed814610462578063f851a4401461049f57600080fd5b80639ab24eb0146103f0578063a457c2d714610403578063a9059cbb14610416578063c3cda5201461042957600080fd5b80638bad0c0a116100de5780638bad0c0a146103ae5780638e539e8c146103b657806391ddadf4146103c957806395d89b41146103e857600080fd5b806370a082311461034457806375829def1461036d5780637ecebe001461038057806384b0196e1461039357600080fd5b80633644e51511610187578063584dfa0411610156578063584dfa04146102ca578063587cde1e146102dd5780635c19a95c146103095780636fcfff451461031c57600080fd5b80633644e51514610294578063395093511461029c5780633a46b1a8146102af5780634bf5d7e9146102c257600080fd5b806318160ddd116101c357806318160ddd1461023557806323b872dd14610247578063267822471461025a578063313ce5671461028557600080fd5b806306fdde03146101ea578063095ea7b3146102085780630e18b6811461022b575b600080fd5b6101f26104b2565b6040516101ff9190612063565b60405180910390f35b61021b610216366004612092565b610544565b60405190151581526020016101ff565b61023361055e565b005b6002545b6040519081526020016101ff565b61021b6102553660046120bc565b610603565b600d5461026d906001600160a01b031681565b6040516001600160a01b0390911681526020016101ff565b604051601281526020016101ff565b610239610627565b61021b6102aa366004612092565b610636565b6102396102bd366004612092565b610658565b6101f26106dd565b6102336102d83660046120f8565b610775565b61026d6102eb3660046120f8565b6001600160a01b039081166000908152600960205260409020541690565b6102336103173660046120f8565b6107ff565b61032f61032a3660046120f8565b610809565b60405163ffffffff90911681526020016101ff565b6102396103523660046120f8565b6001600160a01b031660009081526020819052604090205490565b61023361037b3660046120f8565b61082b565b61023961038e3660046120f8565b610877565b61039b610895565b6040516101ff9796959493929190612113565b61023361091e565b6102396103c43660046121a9565b61095a565b6103d16109c1565b60405165ffffffffffff90911681526020016101ff565b6101f26109cc565b6102396103fe3660046120f8565b6109db565b61021b610411366004612092565b610a5d565b61021b610424366004612092565b610ad8565b6102336104373660046121d3565b610ae6565b61023361044a36600461222b565b610c1c565b61023961045d366004612295565b610d80565b6104756104703660046122c8565b610dab565b60408051825163ffffffff1681526020928301516001600160e01b031692810192909252016101ff565b600c5461026d906001600160a01b031681565b6060600380546104c190612308565b80601f01602080910402602001604051908101604052809291908181526020018280546104ed90612308565b801561053a5780601f1061050f5761010080835404028352916020019161053a565b820191906000526020600020905b81548152906001019060200180831161051d57829003601f168201915b5050505050905090565b600033610552818585611090565b60019150505b92915050565b600d546001600160a01b031633146105dc5760405162461bcd60e51b815260206004820152603660248201527f4f6e6c79207468652070656e64696e672061646d696e6973747261746f72206d60448201527530bc9031b0b636103a3434b990333ab731ba34b7b71760511b60648201526084015b60405180910390fd5b600d8054600c80546001600160a01b03199081166001600160a01b03841617909155169055565b6000336106118582856111b4565b61061c85858561122e565b506001949350505050565b60006106316113e3565b905090565b6000336105528185856106498383610d80565b6106539190612352565b611090565b60006106626109c1565b65ffffffffffff1682106106b45760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064016105d3565b6001600160a01b0383166000908152600a602052604090206106d6908361150e565b9392505050565b6060436106e86109c1565b65ffffffffffff161461073d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f646500000060448201526064016105d3565b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b600c546001600160a01b0316331461079f5760405162461bcd60e51b81526004016105d390612365565b6001600160a01b0381166000908152600e6020526040902054156107d7576001600160a01b03166000908152600e6020526040812055565b6107e26001426123b3565b6001600160a01b0382166000908152600e60205260409020555b50565b6107fc33826115f7565b6001600160a01b0381166000908152600a602052604081205461055890610fb3565b600c546001600160a01b031633146108555760405162461bcd60e51b81526004016105d390612365565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116600090815260076020526040812054610558565b6000606080828080836108c97f496e656469626c6520436f696e0000000000000000000000000000000000000d6005611670565b6108f47f31000000000000000000000000000000000000000000000000000000000000016006611670565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b600c546001600160a01b031633146109485760405162461bcd60e51b81526004016105d390612365565b600c80546001600160a01b0319169055565b60006109646109c1565b65ffffffffffff1682106109b65760405162461bcd60e51b815260206004820152601960248201527804552433230566f7465733a20667574757265206c6f6f6b757603c1b60448201526064016105d3565b610558600b8361150e565b60006106314361101d565b6060600480546104c190612308565b6001600160a01b0381166000908152600a60205260408120548015610a4a576001600160a01b0383166000908152600a6020526040902080546000198301908110610a2857610a286123dc565b60009182526020909120015464010000000090046001600160e01b0316610a4d565b60005b6001600160e01b03169392505050565b60003381610a6b8286610d80565b905083811015610acb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105d3565b61061c8286868403611090565b60003361055281858561122e565b83421115610b365760405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e6174757265206578706972656400000060448201526064016105d3565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610bb090610ba89060a00160405160208183030381529060405280519060200120611714565b858585611741565b9050610bbb81611769565b8614610c095760405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e63650000000000000060448201526064016105d3565b610c1381886115f7565b50505050505050565b83421115610c6c5760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e6500000060448201526064016105d3565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610c9b8c611769565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610cf682611714565b90506000610d0682878787611741565b9050896001600160a01b0316816001600160a01b031614610d695760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e6174757265000060448201526064016105d3565b610d748a8a8a611090565b50505050505050505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60408051808201909152600080825260208201526001600160a01b0383166000908152600a60205260409020805463ffffffff8416908110610def57610def6123dc565b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b6000602083511015610e4b57610e4483611791565b9050610558565b81610e568482612440565b5060ff9050610558565b90565b6001600160a01b038216610eb95760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105d3565b610ec5600083836117cf565b8060026000828254610ed79190612352565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610f3660008383611917565b5050565b60006106d68284612352565b60006001600160e01b03821115610faf5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b60648201526084016105d3565b5090565b600063ffffffff821115610faf5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016105d3565b505050565b600065ffffffffffff821115610faf5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b60648201526084016105d3565b60006106d682846123b3565b6001600160a01b0383166110f25760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105d3565b6001600160a01b0382166111535760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105d3565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006111c08484610d80565b90506000198114611228578181101561121b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105d3565b6112288484848403611090565b50505050565b6001600160a01b0383166112925760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105d3565b6001600160a01b0382166112f45760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105d3565b6112ff8383836117cf565b6001600160a01b038316600090815260208190526040902054818110156113775760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105d3565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611228848484611917565b6000306001600160a01b037f0000000000000000000000003486b751a36f731a1bebff779374bad6358649191614801561143c57507f000000000000000000000000000000000000000000000000000000000000000146145b1561146657507f9b6f8568f23f4b539521f54ff82bc11074afdbf4f183189fea508c736fd712e890565b610631604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527fbe2ff784585a6eec8de562f947f1710debdb20e4f6f8c10a34607fa21b3115a2918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b81546000908181600581111561156857600061152984611949565b61153390856123b3565b600088815260209020909150869082015463ffffffff16111561155857809150611566565b611563816001612352565b92505b505b808210156115b557600061157c8383611a31565b600088815260209020909150869082015463ffffffff1611156115a1578091506115af565b6115ac816001612352565b92505b50611568565b80156115e1576000868152602090208101600019015464010000000090046001600160e01b03166115e4565b60005b6001600160e01b03169695505050505050565b6001600160a01b038281166000818152600960208181526040808420805485845282862054949093528787166001600160a01b03198416811790915590519190951694919391928592917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611228828483611a4c565b606060ff831461168357610e4483611b89565b81805461168f90612308565b80601f01602080910402602001604051908101604052809291908181526020018280546116bb90612308565b80156117085780601f106116dd57610100808354040283529160200191611708565b820191906000526020600020905b8154815290600101906020018083116116eb57829003601f168201915b50505050509050610558565b60006105586117216113e3565b8360405161190160f01b8152600281019290925260228201526042902090565b600080600061175287878787611bc8565b9150915061175f81611c8c565b5095945050505050565b6001600160a01b03811660009081526007602052604090208054600181018255905b50919050565b600080829050601f815111156117bc578260405163305a27a960e01b81526004016105d39190612063565b80516117c782612500565b179392505050565b6001600160a01b038084166000908152600e6020526040808220549285168252902054811561184c5742821015611820576001600160a01b0385166000908152600e6020526040902042905561184c565b42820361184c57611832426001612352565b6001600160a01b0386166000908152600e60205260409020555b80156118a6574281101561187a576001600160a01b0384166000908152600e602052604090204290556118a6565b4281036118a65761188c426001612352565b6001600160a01b0385166000908152600e60205260409020555b4282111580156118b65750428111155b6119105760405162461bcd60e51b815260206004820152602560248201527f546f6f206d616e7920646578207472616e73616374696f6e73207468697320626044820152643637b1b59760d91b60648201526084016105d3565b5050505050565b6001600160a01b0383811660009081526009602052604080822054858416835291205461101892918216911683611a4c565b60008160000361195b57506000919050565b6000600161196884611dd6565b901c6001901b9050600181848161198157611981612524565b048201901c9050600181848161199957611999612524565b048201901c905060018184816119b1576119b1612524565b048201901c905060018184816119c9576119c9612524565b048201901c905060018184816119e1576119e1612524565b048201901c905060018184816119f9576119f9612524565b048201901c90506001818481611a1157611a11612524565b048201901c90506106d681828581611a2b57611a2b612524565b04611e6a565b6000611a40600284841861253a565b6106d690848416612352565b816001600160a01b0316836001600160a01b031614158015611a6e5750600081115b15611018576001600160a01b03831615611afc576001600160a01b0383166000908152600a602052604081208190611aa99061108485611e80565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611af1929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615611018576001600160a01b0382166000908152600a602052604081208190611b3290610f3a85611e80565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611b7a929190918252602082015260400190565b60405180910390a25050505050565b60606000611b9683611ff5565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611bff5750600090506003611c83565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611c53573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611c7c57600060019250925050611c83565b9150600090505b94509492505050565b6000816004811115611ca057611ca061255c565b03611ca85750565b6001816004811115611cbc57611cbc61255c565b03611d095760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016105d3565b6002816004811115611d1d57611d1d61255c565b03611d6a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016105d3565b6003816004811115611d7e57611d7e61255c565b036107fc5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016105d3565b600080608083901c15611deb57608092831c92015b604083901c15611dfd57604092831c92015b602083901c15611e0f57602092831c92015b601083901c15611e2157601092831c92015b600883901c15611e3357600892831c92015b600483901c15611e4557600492831c92015b600283901c15611e5757600292831c92015b600183901c156105585760010192915050565b6000818310611e7957816106d6565b5090919050565b82546000908190818115611ecd5760008781526020902082016000190160408051808201909152905463ffffffff8116825264010000000090046001600160e01b03166020820152611ee2565b60408051808201909152600080825260208201525b905080602001516001600160e01b03169350611f0284868863ffffffff16565b9250600082118015611f2c5750611f176109c1565b65ffffffffffff16816000015163ffffffff16145b15611f7157611f3a83610f46565b60008881526020902083016000190180546001600160e01b03929092166401000000000263ffffffff909216919091179055611feb565b866040518060400160405280611f95611f886109c1565b65ffffffffffff16610fb3565b63ffffffff168152602001611fa986610f46565b6001600160e01b0390811690915282546001810184556000938452602093849020835194909301519091166401000000000263ffffffff909316929092179101555b5050935093915050565b600060ff8216601f81111561055857604051632cd44ac360e21b815260040160405180910390fd5b6000815180845260005b8181101561204357602081850181015186830182015201612027565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006106d6602083018461201d565b80356001600160a01b038116811461208d57600080fd5b919050565b600080604083850312156120a557600080fd5b6120ae83612076565b946020939093013593505050565b6000806000606084860312156120d157600080fd5b6120da84612076565b92506120e860208501612076565b9150604084013590509250925092565b60006020828403121561210a57600080fd5b6106d682612076565b60ff60f81b881681526000602060e08184015261213360e084018a61201d565b8381036040850152612145818a61201d565b606085018990526001600160a01b038816608086015260a0850187905284810360c0860152855180825283870192509083019060005b818110156121975783518352928401929184019160010161217b565b50909c9b505050505050505050505050565b6000602082840312156121bb57600080fd5b5035919050565b803560ff8116811461208d57600080fd5b60008060008060008060c087890312156121ec57600080fd5b6121f587612076565b95506020870135945060408701359350612211606088016121c2565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561224657600080fd5b61224f88612076565b965061225d60208901612076565b95506040880135945060608801359350612279608089016121c2565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156122a857600080fd5b6122b183612076565b91506122bf60208401612076565b90509250929050565b600080604083850312156122db57600080fd5b6122e483612076565b9150602083013563ffffffff811681146122fd57600080fd5b809150509250929050565b600181811c9082168061231c57607f821691505b60208210810361178b57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808201808211156105585761055861233c565b6020808252602e908201527f4f6e6c79207468652061646d696e6973747261746f72206d61792063616c6c2060408201526d3a3434b990333ab731ba34b7b71760911b606082015260800190565b818103818111156105585761055861233c565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561101857600081815260208120601f850160051c810160208610156124195750805b601f850160051c820191505b8181101561243857828155600101612425565b505050505050565b815167ffffffffffffffff81111561245a5761245a6123c6565b61246e816124688454612308565b846123f2565b602080601f8311600181146124a3576000841561248b5750858301515b600019600386901b1c1916600185901b178555612438565b600085815260208120601f198616915b828110156124d2578886015182559484019460019091019084016124b3565b50858210156124f05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8051602080830151919081101561178b5760001960209190910360031b1b16919050565b634e487b7160e01b600052601260045260246000fd5b60008261255757634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220e8ddc40ad47293ad1dcf21803cbf448e238394712a1b3f7cb7bc985993e95cf464736f6c63430008120033

Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.