ETH Price: $2,496.85 (+5.43%)

Token

NPCitizens (NPC)
 

Overview

Max Total Supply

5,555 NPC

Holders

441

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Balance
10 NPC
0xc26ac81e8ff7555c0fadbe4d84138cd3953598e2
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
NPCitizens

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 13 : NPCitizens.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
pragma solidity ^0.8.19;
import "erc721a/contracts/ERC721A.sol";
import "@openzeppelin/contracts/interfaces/IERC2981.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
import "operator-filter-registry/src/DefaultOperatorFilterer.sol";
contract NPCitizens is ERC721A, IERC2981, Ownable, DefaultOperatorFilterer {
using Strings for uint256;
string public baseURI;
string public extension;
bool public mintEnabled = false;
uint256 public maxPerWallet = 50;
uint256 public maxPerTx = 10;
uint256 public maxSupply = 5555;
uint256 public price = 0.001 ether;
uint256 public maxFree = 1;
mapping(address => uint256) public _walletMints;
error MintNotLive();
error AlreadyMaxMinted();
error MaxPerTx();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 13 : DefaultOperatorFilterer.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import {OperatorFilterer} from "./OperatorFilterer.sol";
import {CANONICAL_CORI_SUBSCRIPTION} from "./lib/Constants.sol";
/**
* @title DefaultOperatorFilterer
* @notice Inherits from OperatorFilterer and automatically subscribes to the default OpenSea subscription.
* @dev Please note that if your token contract does not provide an owner with EIP-173, it must provide
* administration methods on the contract itself to interact with the registry otherwise the subscription
* will be locked to the options set during construction.
*/
abstract contract DefaultOperatorFilterer is OperatorFilterer {
/// @dev The constructor that is called when the contract is being deployed.
constructor() OperatorFilterer(CANONICAL_CORI_SUBSCRIPTION, true) {}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 13 : 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.8.0) (utils/Strings.sol)
pragma solidity ^0.8.0;
import "./math/Math.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 4 of 13 : Ownable.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.7.0) (access/Ownable.sol)
pragma solidity ^0.8.0;
import "../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.
*
* By default, the owner account will be the one that deploys the contract. 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;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev Initializes the contract setting the deployer as the initial owner.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 13 : IERC2981.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
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (interfaces/IERC2981.sol)
pragma solidity ^0.8.0;
import "../utils/introspection/IERC165.sol";
/**
* @dev Interface for the NFT Royalty Standard.
*
* A standardized way to retrieve royalty payment information for non-fungible tokens (NFTs) to enable universal
* support for royalty payments across all NFT marketplaces and ecosystem participants.
*
* _Available since v4.5._
*/
interface IERC2981 is IERC165 {
/**
* @dev Returns how much royalty is owed and to whom, based on a sale price that may be denominated in any unit of
* exchange. The royalty amount is denominated and should be paid in that same unit of exchange.
*/
function royaltyInfo(uint256 tokenId, uint256 salePrice)
external
view
returns (address receiver, uint256 royaltyAmount);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 13 : ERC721A.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
// ERC721A Contracts v4.2.3
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721A.sol';
/**
* @dev Interface of ERC721 token receiver.
*/
interface ERC721A__IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
/**
* @title ERC721A
*
* @dev Implementation of the [ERC721](https://eips.ethereum.org/EIPS/eip-721)
* Non-Fungible Token Standard, including the Metadata extension.
* Optimized for lower gas during batch mints.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 13 : Constants.sol
1
2
3
4
5
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
address constant CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS = 0x000000000000AAeB6D7670E522A718067333cd4E;
address constant CANONICAL_CORI_SUBSCRIPTION = 0x3cc6CddA760b79bAfa08dF41ECFA224f810dCeB6;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 13 : OperatorFilterer.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
pragma solidity ^0.8.13;
import {IOperatorFilterRegistry} from "./IOperatorFilterRegistry.sol";
import {CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS} from "./lib/Constants.sol";
/**
* @title OperatorFilterer
* @notice Abstract contract whose constructor automatically registers and optionally subscribes to or copies another
* registrant's entries in the OperatorFilterRegistry.
* @dev This smart contract is meant to be inherited by token contracts so they can use the following:
* - `onlyAllowedOperator` modifier for `transferFrom` and `safeTransferFrom` methods.
* - `onlyAllowedOperatorApproval` modifier for `approve` and `setApprovalForAll` methods.
* Please note that if your token contract does not provide an owner with EIP-173, it must provide
* administration methods on the contract itself to interact with the registry otherwise the subscription
* will be locked to the options set during construction.
*/
abstract contract OperatorFilterer {
/// @dev Emitted when an operator is not allowed.
error OperatorNotAllowed(address operator);
IOperatorFilterRegistry public constant OPERATOR_FILTER_REGISTRY =
IOperatorFilterRegistry(CANONICAL_OPERATOR_FILTER_REGISTRY_ADDRESS);
/// @dev The constructor that is called when the contract is being deployed.
constructor(address subscriptionOrRegistrantToCopy, bool subscribe) {
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 13 : IERC721A.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
// ERC721A Contracts v4.2.3
// Creator: Chiru Labs
pragma solidity ^0.8.4;
/**
* @dev Interface of ERC721A.
*/
interface IERC721A {
/**
* The caller must own the token or be an approved operator.
*/
error ApprovalCallerNotOwnerNorApproved();
/**
* The token does not exist.
*/
error ApprovalQueryForNonexistentToken();
/**
* Cannot query the balance for the zero address.
*/
error BalanceQueryForZeroAddress();
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 13 : 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.8.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 11 of 13 : IERC165.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
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
pragma solidity ^0.8.0;
/**
* @dev Interface of the ERC165 standard, as defined in the
* https://eips.ethereum.org/EIPS/eip-165[EIP].
*
* 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[EIP 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);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 12 of 13 : 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 13 of 13 : IOperatorFilterRegistry.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
pragma solidity ^0.8.13;
interface IOperatorFilterRegistry {
/**
* @notice Returns true if operator is not filtered for a given token, either by address or codeHash. Also returns
* true if supplied registrant address is not registered.
*/
function isOperatorAllowed(address registrant, address operator) external view returns (bool);
/**
* @notice Registers an address with the registry. May be called by address itself or by EIP-173 owner.
*/
function register(address registrant) external;
/**
* @notice Registers an address with the registry and "subscribes" to another address's filtered operators and codeHashes.
*/
function registerAndSubscribe(address registrant, address subscription) external;
/**
* @notice Registers an address with the registry and copies the filtered operators and codeHashes from another
* address without subscribing.
*/
function registerAndCopyEntries(address registrant, address registrantToCopy) external;
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":"AlreadyMaxMinted","type":"error"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MaxPerTx","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintNotLive","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"NoContracts","type":"error"},{"inputs":[],"name":"NoneLeft","type":"error"},{"inputs":[],"name":"NotApprovedOrOwner","type":"error"},{"inputs":[],"name":"NotEnoughETH","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"OperatorNotAllowed","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TokenDoesNotExist","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"WithdrawalFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"OPERATOR_FILTER_REGISTRY","outputs":[{"internalType":"contract IOperatorFilterRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_walletMints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extension","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxFree","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mintEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"reserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseuri","type":"string"}],"name":"setBaseUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_extension","type":"string"}],"name":"setExtension","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxPerTx","type":"uint256"}],"name":"setMaxPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxPerWallet","type":"uint256"}],"name":"setMaxPerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"price_","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600b805460ff191690556032600c55600a600d556115b3600e5566038d7ea4c68000600f5560016010553480156200003b57600080fd5b50733cc6cdda760b79bafa08df41ecfa224f810dceb660016040518060400160405280600a8152602001694e50436974697a656e7360b01b815250604051806040016040528060038152602001624e504360e81b8152508160029081620000a3919062000309565b506003620000b2828262000309565b5050600160005550620000c53362000212565b6daaeb6d7670e522a718067333cd4e3b156200020a5780156200015857604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200013957600080fd5b505af11580156200014e573d6000803e3d6000fd5b505050506200020a565b6001600160a01b03821615620001a95760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af2903906044016200011e565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001f057600080fd5b505af115801562000205573d6000803e3d6000fd5b505050505b5050620003d5565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200028f57607f821691505b602082108103620002b057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030457600081815260208120601f850160051c81016020861015620002df5750805b601f850160051c820191505b818110156200030057828155600101620002eb565b5050505b505050565b81516001600160401b0381111562000325576200032562000264565b6200033d816200033684546200027a565b84620002b6565b602080601f8311600181146200037557600084156200035c5750858301515b600019600386901b1c1916600185901b17855562000300565b600085815260208120601f198616915b82811015620003a65788860151825594840194600190910190840162000385565b5085821015620003c55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611c9280620003e56000396000f3fe60806040526004361061021a5760003560e01c80637e2285aa11610123578063b85cecd3116100ab578063d5abeb011161006f578063d5abeb01146105dc578063e268e4d3146105f2578063e985e9c514610612578063f2fde38b14610632578063f968adbe1461065257600080fd5b8063b85cecd314610542578063b88d4fde1461056f578063c6f6f21614610582578063c87b56dd146105a2578063d1239730146105c257600080fd5b806395d89b41116100f257806395d89b41146104c4578063a035b1fe146104d9578063a0712d68146104ef578063a0bcfc7f14610502578063a22cb4651461052257600080fd5b80637e2285aa14610451578063853828b6146104715780638da5cb5b1461048657806391b7f5ed146104a457600080fd5b806341f43434116101a65780636352211e116101755780636352211e146103d25780636c0360eb146103f257806370a0823114610407578063715018a6146104275780637d55094d1461043c57600080fd5b806341f434341461037157806342842e0e14610393578063453c2310146103a6578063485a68a3146103bc57600080fd5b8063095ea7b3116101ed578063095ea7b3146102d057806318160ddd146102e357806323b872dd1461030a5780632a55205a1461031d5780632d5537b01461035c57600080fd5b806301ffc9a71461021f57806303339bcb1461025457806306fdde0314610276578063081812fc14610298575b600080fd5b34801561022b57600080fd5b5061023f61023a36600461164c565b610668565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b5061027461026f366004611685565b610693565b005b34801561028257600080fd5b5061028b6106e3565b60405161024b9190611701565b3480156102a457600080fd5b506102b86102b3366004611714565b610775565b6040516001600160a01b03909116815260200161024b565b6102746102de36600461172d565b6107b9565b3480156102ef57600080fd5b5060015460005403600019015b60405190815260200161024b565b610274610318366004611757565b6107d2565b34801561032957600080fd5b5061033d610338366004611793565b6107fd565b604080516001600160a01b03909316835260208301919091520161024b565b34801561036857600080fd5b5061028b610855565b34801561037d57600080fd5b506102b86daaeb6d7670e522a718067333cd4e81565b6102746103a1366004611757565b6108e3565b3480156103b257600080fd5b506102fc600c5481565b3480156103c857600080fd5b506102fc60105481565b3480156103de57600080fd5b506102b86103ed366004611714565b610908565b3480156103fe57600080fd5b5061028b610913565b34801561041357600080fd5b506102fc6104223660046117b5565b610920565b34801561043357600080fd5b5061027461096f565b34801561044857600080fd5b50610274610983565b34801561045d57600080fd5b5061027461046c36600461185c565b61099f565b34801561047d57600080fd5b506102746109b3565b34801561049257600080fd5b506008546001600160a01b03166102b8565b3480156104b057600080fd5b506102746104bf366004611714565b6109e7565b3480156104d057600080fd5b5061028b6109f4565b3480156104e557600080fd5b506102fc600f5481565b6102746104fd366004611714565b610a03565b34801561050e57600080fd5b5061027461051d36600461185c565b610b64565b34801561052e57600080fd5b5061027461053d3660046118b3565b610b78565b34801561054e57600080fd5b506102fc61055d3660046117b5565b60116020526000908152604090205481565b61027461057d3660046118ea565b610b8c565b34801561058e57600080fd5b5061027461059d366004611714565b610bb9565b3480156105ae57600080fd5b5061028b6105bd366004611714565b610bc6565b3480156105ce57600080fd5b50600b5461023f9060ff1681565b3480156105e857600080fd5b506102fc600e5481565b3480156105fe57600080fd5b5061027461060d366004611714565b610c4d565b34801561061e57600080fd5b5061023f61062d366004611966565b610c5a565b34801561063e57600080fd5b5061027461064d3660046117b5565b610c88565b34801561065e57600080fd5b506102fc600d5481565b60006001600160e01b0319821663152a902d60e11b148061068d575061068d82610d03565b92915050565b61069b610d51565b600e5460015460005484919003600019016106b691906119a6565b11156106d5576040516367309b4560e11b815260040160405180910390fd5b6106df8183610dab565b5050565b6060600280546106f2906119b9565b80601f016020809104026020016040519081016040528092919081815260200182805461071e906119b9565b801561076b5780601f106107405761010080835404028352916020019161076b565b820191906000526020600020905b81548152906001019060200180831161074e57829003601f168201915b5050505050905090565b600061078082610ea9565b61079d576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b816107c381610ede565b6107cd8383610f97565b505050565b826001600160a01b03811633146107ec576107ec33610ede565b6107f7848484611037565b50505050565b60008061080984610ea9565b6108265760405163677510db60e11b815260040160405180910390fd5b6008546001600160a01b03166103e86108408560326119f3565b61084a9190611a0a565b915091509250929050565b600a8054610862906119b9565b80601f016020809104026020016040519081016040528092919081815260200182805461088e906119b9565b80156108db5780601f106108b0576101008083540402835291602001916108db565b820191906000526020600020905b8154815290600101906020018083116108be57829003601f168201915b505050505081565b826001600160a01b03811633146108fd576108fd33610ede565b6107f78484846111d0565b600061068d826111eb565b60098054610862906119b9565b60006001600160a01b038216610949576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610977610d51565b610981600061125a565b565b61098b610d51565b600b805460ff19811660ff90911615179055565b6109a7610d51565b600a6106df8282611a72565b6109bb610d51565b47806109da57604051632c1d501360e11b815260040160405180910390fd5b6109e433476112ac565b50565b6109ef610d51565b600f55565b6060600380546106f2906119b9565b600b54819060ff16610a2857604051630aea1c5d60e01b815260040160405180910390fd5b600d54821115610a4b576040516317497d3b60e21b815260040160405180910390fd5b600c5433600090815260116020526040902054610a699084906119a6565b1115610a8857604051630d63b57b60e11b815260040160405180910390fd5b3360009081526011602052604090205460011115610aae57610aab600183611b32565b90505b600f54610abb90826119f3565b341015610adb57604051632c1d501360e11b815260040160405180910390fd5b600e546001546000548491900360001901610af691906119a6565b1115610b15576040516367309b4560e11b815260040160405180910390fd5b333214610b355760405163875fdad760e01b815260040160405180910390fd5b3360009081526011602052604081208054849290610b549084906119a6565b909155506106df90503383610dab565b610b6c610d51565b60096106df8282611a72565b81610b8281610ede565b6107cd8383611320565b836001600160a01b0381163314610ba657610ba633610ede565b610bb28585858561138c565b5050505050565b610bc1610d51565b600d55565b6060610bd182610ea9565b610bee5760405163677510db60e11b815260040160405180910390fd5b6000610bf86113d0565b90506000815111610c185760405180602001604052806000815250610c46565b80610c22846113df565b600a604051602001610c3693929190611b45565b6040516020818303038152906040525b9392505050565b610c55610d51565b600c55565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b610c90610d51565b6001600160a01b038116610cfa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6109e48161125a565b60006301ffc9a760e01b6001600160e01b031983161480610d3457506380ac58cd60e01b6001600160e01b03198316145b8061068d5750506001600160e01b031916635b5e139f60e01b1490565b6008546001600160a01b031633146109815760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cf1565b6000805490829003610dd05760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114610e7f57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101610e47565b5081600003610ea057604051622e076360e81b815260040160405180910390fd5b60005550505050565b600081600111158015610ebd575060005482105b801561068d575050600090815260046020526040902054600160e01b161590565b6daaeb6d7670e522a718067333cd4e3b156109e457604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190611be5565b6109e457604051633b79c77360e21b81526001600160a01b0382166004820152602401610cf1565b6000610fa282610908565b9050336001600160a01b03821614610fdb57610fbe8133610c5a565b610fdb576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000611042826111eb565b9050836001600160a01b0316816001600160a01b0316146110755760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b038816909114176110c2576110a58633610c5a565b6110c257604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166110e957604051633a954ecd60e21b815260040160405180910390fd5b80156110f457600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003611186576001840160008181526004602052604081205490036111845760005481146111845760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6107cd83838360405180602001604052806000815250610b8c565b60008180600111611241576000548110156112415760008181526004602052604081205490600160e01b8216900361123f575b80600003610c4657506000190160008181526004602052604090205461121e565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f9576040519150601f19603f3d011682016040523d82523d6000602084013e6112fe565b606091505b50509050806107cd576040516327fcd9d160e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113978484846107d2565b6001600160a01b0383163b156107f7576113b384848484611472565b6107f7576040516368d2bf6b60e11b815260040160405180910390fd5b6060600980546106f2906119b9565b606060006113ec8361155e565b600101905060008167ffffffffffffffff81111561140c5761140c6117d0565b6040519080825280601f01601f191660200182016040528015611436576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461144057509392505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906114a7903390899088908890600401611c02565b6020604051808303816000875af19250505080156114e2575060408051601f3d908101601f191682019092526114df91810190611c3f565b60015b611540573d808015611510576040519150601f19603f3d011682016040523d82523d6000602084013e611515565b606091505b508051600003611538576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061159d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106115c9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106115e757662386f26fc10000830492506010015b6305f5e10083106115ff576305f5e100830492506008015b612710831061161357612710830492506004015b60648310611625576064830492506002015b600a831061068d5760010192915050565b6001600160e01b0319811681146109e457600080fd5b60006020828403121561165e57600080fd5b8135610c4681611636565b80356001600160a01b038116811461168057600080fd5b919050565b6000806040838503121561169857600080fd5b823591506116a860208401611669565b90509250929050565b60005b838110156116cc5781810151838201526020016116b4565b50506000910152565b600081518084526116ed8160208601602086016116b1565b601f01601f19169290920160200192915050565b602081526000610c4660208301846116d5565b60006020828403121561172657600080fd5b5035919050565b6000806040838503121561174057600080fd5b61174983611669565b946020939093013593505050565b60008060006060848603121561176c57600080fd5b61177584611669565b925061178360208501611669565b9150604084013590509250925092565b600080604083850312156117a657600080fd5b50508035926020909101359150565b6000602082840312156117c757600080fd5b610c4682611669565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611801576118016117d0565b604051601f8501601f19908116603f01168101908282118183101715611829576118296117d0565b8160405280935085815286868601111561184257600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561186e57600080fd5b813567ffffffffffffffff81111561188557600080fd5b8201601f8101841361189657600080fd5b611556848235602084016117e6565b80151581146109e457600080fd5b600080604083850312156118c657600080fd5b6118cf83611669565b915060208301356118df816118a5565b809150509250929050565b6000806000806080858703121561190057600080fd5b61190985611669565b935061191760208601611669565b925060408501359150606085013567ffffffffffffffff81111561193a57600080fd5b8501601f8101871361194b57600080fd5b61195a878235602084016117e6565b91505092959194509250565b6000806040838503121561197957600080fd5b61198283611669565b91506116a860208401611669565b634e487b7160e01b600052601160045260246000fd5b8082018082111561068d5761068d611990565b600181811c908216806119cd57607f821691505b6020821081036119ed57634e487b7160e01b600052602260045260246000fd5b50919050565b808202811582820484141761068d5761068d611990565b600082611a2757634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156107cd57600081815260208120601f850160051c81016020861015611a535750805b601f850160051c820191505b818110156111c857828155600101611a5f565b815167ffffffffffffffff811115611a8c57611a8c6117d0565b611aa081611a9a84546119b9565b84611a2c565b602080601f831160018114611ad55760008415611abd5750858301515b600019600386901b1c1916600185901b1785556111c8565b600085815260208120601f198616915b82811015611b0457888601518255948401946001909101908401611ae5565b5085821015611b225787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561068d5761068d611990565b600084516020611b588285838a016116b1565b855191840191611b6b8184848a016116b1565b8554920191600090611b7c816119b9565b60018281168015611b945760018114611ba957611bd5565b60ff1984168752821515830287019450611bd5565b896000528560002060005b84811015611bcd57815489820152908301908701611bb4565b505082870194505b50929a9950505050505050505050565b600060208284031215611bf757600080fd5b8151610c46816118a5565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c35908301846116d5565b9695505050505050565b600060208284031215611c5157600080fd5b8151610c468161163656fea26469706673582212209b3cce46d0a65016de06c51d97c91598f15a6189f666b0e2eddff2c141496d1064736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021a5760003560e01c80637e2285aa11610123578063b85cecd3116100ab578063d5abeb011161006f578063d5abeb01146105dc578063e268e4d3146105f2578063e985e9c514610612578063f2fde38b14610632578063f968adbe1461065257600080fd5b8063b85cecd314610542578063b88d4fde1461056f578063c6f6f21614610582578063c87b56dd146105a2578063d1239730146105c257600080fd5b806395d89b41116100f257806395d89b41146104c4578063a035b1fe146104d9578063a0712d68146104ef578063a0bcfc7f14610502578063a22cb4651461052257600080fd5b80637e2285aa14610451578063853828b6146104715780638da5cb5b1461048657806391b7f5ed146104a457600080fd5b806341f43434116101a65780636352211e116101755780636352211e146103d25780636c0360eb146103f257806370a0823114610407578063715018a6146104275780637d55094d1461043c57600080fd5b806341f434341461037157806342842e0e14610393578063453c2310146103a6578063485a68a3146103bc57600080fd5b8063095ea7b3116101ed578063095ea7b3146102d057806318160ddd146102e357806323b872dd1461030a5780632a55205a1461031d5780632d5537b01461035c57600080fd5b806301ffc9a71461021f57806303339bcb1461025457806306fdde0314610276578063081812fc14610298575b600080fd5b34801561022b57600080fd5b5061023f61023a36600461164c565b610668565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b5061027461026f366004611685565b610693565b005b34801561028257600080fd5b5061028b6106e3565b60405161024b9190611701565b3480156102a457600080fd5b506102b86102b3366004611714565b610775565b6040516001600160a01b03909116815260200161024b565b6102746102de36600461172d565b6107b9565b3480156102ef57600080fd5b5060015460005403600019015b60405190815260200161024b565b610274610318366004611757565b6107d2565b34801561032957600080fd5b5061033d610338366004611793565b6107fd565b604080516001600160a01b03909316835260208301919091520161024b565b34801561036857600080fd5b5061028b610855565b34801561037d57600080fd5b506102b86daaeb6d7670e522a718067333cd4e81565b6102746103a1366004611757565b6108e3565b3480156103b257600080fd5b506102fc600c5481565b3480156103c857600080fd5b506102fc60105481565b3480156103de57600080fd5b506102b86103ed366004611714565b610908565b3480156103fe57600080fd5b5061028b610913565b34801561041357600080fd5b506102fc6104223660046117b5565b610920565b34801561043357600080fd5b5061027461096f565b34801561044857600080fd5b50610274610983565b34801561045d57600080fd5b5061027461046c36600461185c565b61099f565b34801561047d57600080fd5b506102746109b3565b34801561049257600080fd5b506008546001600160a01b03166102b8565b3480156104b057600080fd5b506102746104bf366004611714565b6109e7565b3480156104d057600080fd5b5061028b6109f4565b3480156104e557600080fd5b506102fc600f5481565b6102746104fd366004611714565b610a03565b34801561050e57600080fd5b5061027461051d36600461185c565b610b64565b34801561052e57600080fd5b5061027461053d3660046118b3565b610b78565b34801561054e57600080fd5b506102fc61055d3660046117b5565b60116020526000908152604090205481565b61027461057d3660046118ea565b610b8c565b34801561058e57600080fd5b5061027461059d366004611714565b610bb9565b3480156105ae57600080fd5b5061028b6105bd366004611714565b610bc6565b3480156105ce57600080fd5b50600b5461023f9060ff1681565b3480156105e857600080fd5b506102fc600e5481565b3480156105fe57600080fd5b5061027461060d366004611714565b610c4d565b34801561061e57600080fd5b5061023f61062d366004611966565b610c5a565b34801561063e57600080fd5b5061027461064d3660046117b5565b610c88565b34801561065e57600080fd5b506102fc600d5481565b60006001600160e01b0319821663152a902d60e11b148061068d575061068d82610d03565b92915050565b61069b610d51565b600e5460015460005484919003600019016106b691906119a6565b11156106d5576040516367309b4560e11b815260040160405180910390fd5b6106df8183610dab565b5050565b6060600280546106f2906119b9565b80601f016020809104026020016040519081016040528092919081815260200182805461071e906119b9565b801561076b5780601f106107405761010080835404028352916020019161076b565b820191906000526020600020905b81548152906001019060200180831161074e57829003601f168201915b5050505050905090565b600061078082610ea9565b61079d576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b816107c381610ede565b6107cd8383610f97565b505050565b826001600160a01b03811633146107ec576107ec33610ede565b6107f7848484611037565b50505050565b60008061080984610ea9565b6108265760405163677510db60e11b815260040160405180910390fd5b6008546001600160a01b03166103e86108408560326119f3565b61084a9190611a0a565b915091509250929050565b600a8054610862906119b9565b80601f016020809104026020016040519081016040528092919081815260200182805461088e906119b9565b80156108db5780601f106108b0576101008083540402835291602001916108db565b820191906000526020600020905b8154815290600101906020018083116108be57829003601f168201915b505050505081565b826001600160a01b03811633146108fd576108fd33610ede565b6107f78484846111d0565b600061068d826111eb565b60098054610862906119b9565b60006001600160a01b038216610949576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b610977610d51565b610981600061125a565b565b61098b610d51565b600b805460ff19811660ff90911615179055565b6109a7610d51565b600a6106df8282611a72565b6109bb610d51565b47806109da57604051632c1d501360e11b815260040160405180910390fd5b6109e433476112ac565b50565b6109ef610d51565b600f55565b6060600380546106f2906119b9565b600b54819060ff16610a2857604051630aea1c5d60e01b815260040160405180910390fd5b600d54821115610a4b576040516317497d3b60e21b815260040160405180910390fd5b600c5433600090815260116020526040902054610a699084906119a6565b1115610a8857604051630d63b57b60e11b815260040160405180910390fd5b3360009081526011602052604090205460011115610aae57610aab600183611b32565b90505b600f54610abb90826119f3565b341015610adb57604051632c1d501360e11b815260040160405180910390fd5b600e546001546000548491900360001901610af691906119a6565b1115610b15576040516367309b4560e11b815260040160405180910390fd5b333214610b355760405163875fdad760e01b815260040160405180910390fd5b3360009081526011602052604081208054849290610b549084906119a6565b909155506106df90503383610dab565b610b6c610d51565b60096106df8282611a72565b81610b8281610ede565b6107cd8383611320565b836001600160a01b0381163314610ba657610ba633610ede565b610bb28585858561138c565b5050505050565b610bc1610d51565b600d55565b6060610bd182610ea9565b610bee5760405163677510db60e11b815260040160405180910390fd5b6000610bf86113d0565b90506000815111610c185760405180602001604052806000815250610c46565b80610c22846113df565b600a604051602001610c3693929190611b45565b6040516020818303038152906040525b9392505050565b610c55610d51565b600c55565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b610c90610d51565b6001600160a01b038116610cfa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6109e48161125a565b60006301ffc9a760e01b6001600160e01b031983161480610d3457506380ac58cd60e01b6001600160e01b03198316145b8061068d5750506001600160e01b031916635b5e139f60e01b1490565b6008546001600160a01b031633146109815760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cf1565b6000805490829003610dd05760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114610e7f57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101610e47565b5081600003610ea057604051622e076360e81b815260040160405180910390fd5b60005550505050565b600081600111158015610ebd575060005482105b801561068d575050600090815260046020526040902054600160e01b161590565b6daaeb6d7670e522a718067333cd4e3b156109e457604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190611be5565b6109e457604051633b79c77360e21b81526001600160a01b0382166004820152602401610cf1565b6000610fa282610908565b9050336001600160a01b03821614610fdb57610fbe8133610c5a565b610fdb576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000611042826111eb565b9050836001600160a01b0316816001600160a01b0316146110755760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b038816909114176110c2576110a58633610c5a565b6110c257604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b0385166110e957604051633a954ecd60e21b815260040160405180910390fd5b80156110f457600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b84169003611186576001840160008181526004602052604081205490036111845760005481146111845760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45b505050505050565b6107cd83838360405180602001604052806000815250610b8c565b60008180600111611241576000548110156112415760008181526004602052604081205490600160e01b8216900361123f575b80600003610c4657506000190160008181526004602052604090205461121e565b505b604051636f96cda160e11b815260040160405180910390fd5b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146112f9576040519150601f19603f3d011682016040523d82523d6000602084013e6112fe565b606091505b50509050806107cd576040516327fcd9d160e01b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6113978484846107d2565b6001600160a01b0383163b156107f7576113b384848484611472565b6107f7576040516368d2bf6b60e11b815260040160405180910390fd5b6060600980546106f2906119b9565b606060006113ec8361155e565b600101905060008167ffffffffffffffff81111561140c5761140c6117d0565b6040519080825280601f01601f191660200182016040528015611436576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461144057509392505050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906114a7903390899088908890600401611c02565b6020604051808303816000875af19250505080156114e2575060408051601f3d908101601f191682019092526114df91810190611c3f565b60015b611540573d808015611510576040519150601f19603f3d011682016040523d82523d6000602084013e611515565b606091505b508051600003611538576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061159d5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106115c9576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106115e757662386f26fc10000830492506010015b6305f5e10083106115ff576305f5e100830492506008015b612710831061161357612710830492506004015b60648310611625576064830492506002015b600a831061068d5760010192915050565b6001600160e01b0319811681146109e457600080fd5b60006020828403121561165e57600080fd5b8135610c4681611636565b80356001600160a01b038116811461168057600080fd5b919050565b6000806040838503121561169857600080fd5b823591506116a860208401611669565b90509250929050565b60005b838110156116cc5781810151838201526020016116b4565b50506000910152565b600081518084526116ed8160208601602086016116b1565b601f01601f19169290920160200192915050565b602081526000610c4660208301846116d5565b60006020828403121561172657600080fd5b5035919050565b6000806040838503121561174057600080fd5b61174983611669565b946020939093013593505050565b60008060006060848603121561176c57600080fd5b61177584611669565b925061178360208501611669565b9150604084013590509250925092565b600080604083850312156117a657600080fd5b50508035926020909101359150565b6000602082840312156117c757600080fd5b610c4682611669565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115611801576118016117d0565b604051601f8501601f19908116603f01168101908282118183101715611829576118296117d0565b8160405280935085815286868601111561184257600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561186e57600080fd5b813567ffffffffffffffff81111561188557600080fd5b8201601f8101841361189657600080fd5b611556848235602084016117e6565b80151581146109e457600080fd5b600080604083850312156118c657600080fd5b6118cf83611669565b915060208301356118df816118a5565b809150509250929050565b6000806000806080858703121561190057600080fd5b61190985611669565b935061191760208601611669565b925060408501359150606085013567ffffffffffffffff81111561193a57600080fd5b8501601f8101871361194b57600080fd5b61195a878235602084016117e6565b91505092959194509250565b6000806040838503121561197957600080fd5b61198283611669565b91506116a860208401611669565b634e487b7160e01b600052601160045260246000fd5b8082018082111561068d5761068d611990565b600181811c908216806119cd57607f821691505b6020821081036119ed57634e487b7160e01b600052602260045260246000fd5b50919050565b808202811582820484141761068d5761068d611990565b600082611a2757634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156107cd57600081815260208120601f850160051c81016020861015611a535750805b601f850160051c820191505b818110156111c857828155600101611a5f565b815167ffffffffffffffff811115611a8c57611a8c6117d0565b611aa081611a9a84546119b9565b84611a2c565b602080601f831160018114611ad55760008415611abd5750858301515b600019600386901b1c1916600185901b1785556111c8565b600085815260208120601f198616915b82811015611b0457888601518255948401946001909101908401611ae5565b5085821015611b225787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561068d5761068d611990565b600084516020611b588285838a016116b1565b855191840191611b6b8184848a016116b1565b8554920191600090611b7c816119b9565b60018281168015611b945760018114611ba957611bd5565b60ff1984168752821515830287019450611bd5565b896000528560002060005b84811015611bcd57815489820152908301908701611bb4565b505082870194505b50929a9950505050505050505050565b600060208284031215611bf757600080fd5b8151610c46816118a5565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611c35908301846116d5565b9695505050505050565b600060208284031215611c5157600080fd5b8151610c468161163656fea26469706673582212209b3cce46d0a65016de06c51d97c91598f15a6189f666b0e2eddff2c141496d1064736f6c63430008130033

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.