ETH Price: $2,521.25 (+13.85%)
 

Overview

Max Total Supply

4,884 TPLYR

Holders

4,879

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
1 TPLYR
0x566b492a95462c1d5808504b08bbd0eb1bc5857d
Loading...
Loading
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:
TeamsCommemorativeNFT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 250000 runs

Other Settings:
default evmVersion
File 1 of 12 : TeamsCommemorativeNFT.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: UNLICENSED
pragma solidity ^0.8.20;
import {Ownable} from "openzeppelin/access/Ownable.sol";
import {ERC721A} from "ERC721A/ERC721A.sol";
import {IERC721} from "openzeppelin/token/ERC721/IERC721.sol";
import {IERC721Metadata} from "openzeppelin/token/ERC721/extensions/IERC721Metadata.sol";
import {IERC165} from "openzeppelin/utils/introspection/IERC165.sol";
import {MerkleProofLib} from "solmate/utils/MerkleProofLib.sol";
import {SafeTransferLib} from "solady/utils/SafeTransferLib.sol";
import "../IERC4906.sol";
import "../IMetadataRenderer.sol";
contract TeamsCommemorativeNFT is ERC721A, IERC4906, Ownable {
address public metadataRenderer;
address public metadataUpdater;
uint256 public mintEnd;
bytes32 public merkleRoot;
error InvalidTokenId();
error InvalidProof();
error MerkleRootNotSet();
error MintClosed();
error MintedAlready();
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 12 : 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 3 of 12 : 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 4 of 12 : IERC721.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) (token/ERC721/IERC721.sol)
pragma solidity ^0.8.0;
import "../../utils/introspection/IERC165.sol";
/**
* @dev Required interface of an ERC721 compliant contract.
*/
interface IERC721 is IERC165 {
/**
* @dev Emitted when `tokenId` token is transferred from `from` to `to`.
*/
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
*/
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
/**
* @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
*/
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 12 : IERC721Metadata.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/ERC721/extensions/IERC721Metadata.sol)
pragma solidity ^0.8.0;
import "../IERC721.sol";
/**
* @title ERC-721 Non-Fungible Token Standard, optional metadata extension
* @dev See https://eips.ethereum.org/EIPS/eip-721
*/
interface IERC721Metadata is IERC721 {
/**
* @dev Returns the token collection name.
*/
function name() external view returns (string memory);
/**
* @dev Returns the token collection symbol.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
*/
function tokenURI(uint256 tokenId) external view returns (string memory);
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 12 : 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 7 of 12 : MerkleProofLib.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.0;
/// @notice Gas optimized merkle proof verification library.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/MerkleProofLib.sol)
/// @author Modified from Solady (https://github.com/Vectorized/solady/blob/main/src/utils/MerkleProofLib.sol)
library MerkleProofLib {
function verify(
bytes32[] calldata proof,
bytes32 root,
bytes32 leaf
) internal pure returns (bool isValid) {
assembly {
if proof.length {
// Left shifting by 5 is like multiplying by 32.
let end := add(proof.offset, shl(5, proof.length))
// Initialize offset to the offset of the proof in calldata.
let offset := proof.offset
// Iterate over proof elements to compute root hash.
// prettier-ignore
for {} 1 {} {
// Slot where the leaf should be put in scratch space. If
// leaf > calldataload(offset): slot 32, otherwise: slot 0.
let leafSlot := shl(5, gt(leaf, calldataload(offset)))
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 8 of 12 : SafeTransferLib.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.4;
/// @notice Safe ETH and ERC20 transfer library that gracefully handles missing return values.
/// @author Solady (https://github.com/vectorized/solady/blob/main/src/utils/SafeTransferLib.sol)
/// @author Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/SafeTransferLib.sol)
/// @dev Caution! This library won't check that a token has code, responsibility is delegated to the caller.
library SafeTransferLib {
/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
/* CUSTOM ERRORS */
/*.•°:°.´+˚.*°.˚:*.´•*.+°.•°:´*.´•*.•°.•°:°.´:•˚°.*°.˚:*.´+°.•*/
/// @dev The ETH transfer has failed.
error ETHTransferFailed();
/// @dev The ERC20 `transferFrom` has failed.
error TransferFromFailed();
/// @dev The ERC20 `transfer` has failed.
error TransferFailed();
/// @dev The ERC20 `approve` has failed.
error ApproveFailed();
/*´:°•.°+.*•´.*:˚.°*.˚•´.°:°•.°•.*•´.*:˚.°*.˚•´.°:°•.°+.*•´.*:*/
/* CONSTANTS */
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 9 of 12 : IERC4906.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
interface IERC4906 {
/// @dev This event emits when the metadata of a token is changed.
/// So that the third-party platforms such as NFT market could
/// timely update the images and related attributes of the NFT.
event MetadataUpdate(uint256 _tokenId);
/// @dev This event emits when the metadata of a range of tokens is changed.
/// So that the third-party platforms such as NFT market could
/// timely update the images and related attributes of the NFTs.
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 10 of 12 : IMetadataRenderer.sol
1
2
3
4
5
6
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.17;
interface IMetadataRenderer {
function tokenURI(uint256 id) external view returns (string memory);
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 11 of 12 : 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 12 of 12 : 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

Settings
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
{
"remappings": [
"ERC721A/=lib/ERC721A/contracts/",
"ds-test/=lib/forge-std/lib/ds-test/src/",
"erc4626-tests/=lib/operator-filter-registry/lib/openzeppelin-contracts/lib/erc4626-tests/",
"forge-std/=lib/forge-std/src/",
"fundrop/=src/Fundrop/",
"openzeppelin-contracts-upgradeable/=lib/operator-filter-registry/lib/openzeppelin-contracts-upgradeable/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"openzeppelin/=lib/openzeppelin-contracts/contracts/",
"operator-filter-registry/=lib/operator-filter-registry/src/",
"solady/=lib/solady/src/",
"solmate/=lib/solmate/src/",
"lib/forge-std:ds-test/=lib/forge-std/lib/ds-test/src/",
"lib/openzeppelin-contracts:ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
"lib/openzeppelin-contracts:forge-std/=lib/openzeppelin-contracts/lib/forge-std/src/",
"lib/operator-filter-registry:ds-test/=lib/operator-filter-registry/lib/ds-test/src/",
"lib/operator-filter-registry:erc4626-tests/=lib/operator-filter-registry/lib/openzeppelin-contracts/lib/erc4626-tests/",
"lib/operator-filter-registry:forge-std/=lib/operator-filter-registry/lib/forge-std/src/",
"lib/operator-filter-registry:openzeppelin-contracts-upgradeable/=lib/operator-filter-registry/lib/openzeppelin-contracts-upgradeable/contracts/",
"lib/operator-filter-registry:openzeppelin-contracts/=lib/operator-filter-registry/lib/openzeppelin-contracts/contracts/",
"lib/solady:ds-test/=lib/solady/lib/solmate/lib/ds-test/src/",
"lib/solady:forge-std/=lib/solady/test/utils/forge-std/",
"lib/solady:solmate/=lib/solady/lib/solmate/src/",
"lib/solmate:ds-test/=lib/solmate/lib/ds-test/src/"
],
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[],"name":"InvalidTokenId","type":"error"},{"inputs":[],"name":"MerkleRootNotSet","type":"error"},{"inputs":[],"name":"MintClosed","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"MintedAlready","type":"error"},{"inputs":[],"name":"OnlyOwnerOrMetadataUpdater","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","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"},{"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":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","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":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","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":[{"internalType":"address","name":"to","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":[{"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":"merkleRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metadataRenderer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metadataUpdater","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_proof","type":"bytes32[]"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"refreshMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","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":"bytes32","name":"_root","type":"bytes32"}],"name":"setMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_metadataRenderer","type":"address"}],"name":"setMetadataRenderer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_metadataUpdater","type":"address"}],"name":"setMetadataUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mintEnd","type":"uint256"}],"name":"setMintEnd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","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":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600d81526020016c10ba32b0b6b990383630bcb2b960991b815250604051806040016040528060058152602001642a28262ca960d91b81525081600290816200006791906200028a565b5060036200007682826200028a565b50506001600055506200008933620000af565b3332146200009c576200009c32620000af565b620000a932600162000101565b62000356565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000805490829003620001275760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b17831790558284019083908390600080516020620020a58339815191528180a4600183015b818114620001b65780836000600080516020620020a5833981519152600080a46001016200018d565b5081600003620001d857604051622e076360e81b815260040160405180910390fd5b60005550505050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200021157607f821691505b6020821081036200023257634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001e157600081815260208120601f850160051c81016020861015620002615750805b601f850160051c820191505b8181101562000282578281556001016200026d565b505050505050565b81516001600160401b03811115620002a657620002a6620001e6565b620002be81620002b78454620001fc565b8462000238565b602080601f831160018114620002f65760008415620002dd5750858301515b600019600386901b1c1916600185901b17855562000282565b600085815260208120601f198616915b82811015620003275788860151825594840194600190910190840162000306565b5085821015620003465787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611d3f80620003666000396000f3fe6080604052600436106101b75760003560e01c8063715018a6116100ec578063b88d4fde1161008a578063ea2b4ab211610064578063ea2b4ab214610510578063eb20614e14610526578063f2fde38b14610546578063fd4fe8a81461056657600080fd5b8063b88d4fde14610487578063c87b56dd1461049a578063e985e9c5146104ba57600080fd5b80638da5cb5b116100c65780638da5cb5b1461040757806395d89b4114610432578063a22cb46514610447578063b77a147b1461046757600080fd5b8063715018a6146103a55780637cb64759146103ba5780638325c62f146103da57600080fd5b80633ccfd60b116101595780636352211e116101335780636352211e146103185780636ba253fd14610338578063703199701461035857806370a082311461038557600080fd5b80633ccfd60b146102db57806341006605146102f057806342842e0e1461030557600080fd5b8063095ea7b311610195578063095ea7b31461025857806318160ddd1461026d57806323b872dd146102b25780632eb4a7ab146102c557600080fd5b806301ffc9a7146101bc57806306fdde03146101f1578063081812fc14610213575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046117eb565b610586565b60405190151581526020015b60405180910390f35b3480156101fd57600080fd5b50610206610696565b6040516101e89190611876565b34801561021f57600080fd5b5061023361022e366004611889565b610728565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e8565b61026b6102663660046118cb565b610792565b005b34801561027957600080fd5b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040519081526020016101e8565b61026b6102c03660046118f5565b6108a7565b3480156102d157600080fd5b506102a4600c5481565b3480156102e757600080fd5b5061026b610b60565b3480156102fc57600080fd5b5061026b610b92565b61026b6103133660046118f5565b610c5a565b34801561032457600080fd5b50610233610333366004611889565b610c7a565b34801561034457600080fd5b5061026b610353366004611931565b610c85565b34801561036457600080fd5b506009546102339073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039157600080fd5b506102a46103a0366004611931565b610cd4565b3480156103b157600080fd5b5061026b610d56565b3480156103c657600080fd5b5061026b6103d5366004611889565b610d68565b3480156103e657600080fd5b50600a546102339073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041357600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff16610233565b34801561043e57600080fd5b50610206610dac565b34801561045357600080fd5b5061026b61046236600461194c565b610dbb565b34801561047357600080fd5b5061026b610482366004611988565b610e52565b61026b610495366004611ac1565b610fc7565b3480156104a657600080fd5b506102066104b5366004611889565b611031565b3480156104c657600080fd5b506101dc6104d5366004611b6c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561051c57600080fd5b506102a4600b5481565b34801561053257600080fd5b5061026b610541366004611889565b611140565b34801561055257600080fd5b5061026b610561366004611931565b611194565b34801561057257600080fd5b5061026b610581366004611931565b611250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061061957507fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000145b8061064457507fffffffff000000000000000000000000000000000000000000000000000000008216155b8061069057507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b92915050565b6060600280546106a590611b9f565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190611b9f565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905090565b6000610733826112a0565b610769576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061079d82610c7a565b90503373ffffffffffffffffffffffffffffffffffffffff8216146108265773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16610826576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60006108b2826112ee565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610919576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff8816909114176109b65773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff166109b6576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610a03576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610a0e57600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003610afd57600184016000818152600460205260408120549003610afb576000548114610afb5760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b610b686113b4565b610b90610b8a60085473ffffffffffffffffffffffffffffffffffffffff1690565b47611435565b565b600a5473ffffffffffffffffffffffffffffffffffffffff163314801590610bd2575060085473ffffffffffffffffffffffffffffffffffffffff163314155b15610c09576040517f0707164200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600180610c3660005490565b610c409190611bf2565b6040805192835260208301919091520160405180910390a1565b610c7583838360405180602001604052806000815250610fc7565b505050565b6000610690826112ee565b610c8d6113b4565b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600073ffffffffffffffffffffffffffffffffffffffff8216610d23576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b610d5e6113b4565b610b906000611455565b610d706113b4565b80610da7576040517f9f8a28f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c55565b6060600380546106a590611b9f565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600b54421115610e8e576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526005602052604090205460c01c15801590610edb576040517f96dd8aac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c546040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152600091610f359186918691603401604051602081830303815290604052805190602001206114cc565b905080610f6e576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600560205260409020805477ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000179055610fc1336001611506565b50505050565b610fd28484846108a7565b73ffffffffffffffffffffffffffffffffffffffff83163b15610fc157610ffb84848484611644565b610fc1576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060600061103e83610c7a565b73ffffffffffffffffffffffffffffffffffffffff160361108b576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009546040517fc87b56dd0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff9091169063c87b56dd90602401600060405180830381865afa1580156110fa573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526106909190810190611c2c565b6111486113b4565b6000811180156111585750600c54155b1561118f576040517f9f8a28f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b55565b61119c6113b4565b73ffffffffffffffffffffffffffffffffffffffff8116611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61124d81611455565b50565b6112586113b4565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561124d610b92565b6000816001111580156112b4575060005482105b80156106905750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b600081806001116113825760005481101561138257600081815260046020526040812054907c010000000000000000000000000000000000000000000000000000000082169003611380575b8060000361137957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160008181526004602052604090205461133a565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff163314610b90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161123b565b60008060008084865af16114515763b12d13eb6000526004601cfd5b5050565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600083156114fe578360051b8501855b803580851160051b948552602094851852604060002093018181106114dc5750505b501492915050565b6000805490829003611544576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461160057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016115c8565b508160000361163b576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061169f903390899088908890600401611ca3565b6020604051808303816000875af19250505080156116f8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526116f591810190611cec565b60015b61176f573d808015611726576040519150601f19603f3d011682016040523d82523d6000602084013e61172b565b606091505b508051600003611767576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461124d57600080fd5b6000602082840312156117fd57600080fd5b8135611379816117bd565b60005b8381101561182357818101518382015260200161180b565b50506000910152565b60008151808452611844816020860160208601611808565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611379602083018461182c565b60006020828403121561189b57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146118c657600080fd5b919050565b600080604083850312156118de57600080fd5b6118e7836118a2565b946020939093013593505050565b60008060006060848603121561190a57600080fd5b611913846118a2565b9250611921602085016118a2565b9150604084013590509250925092565b60006020828403121561194357600080fd5b611379826118a2565b6000806040838503121561195f57600080fd5b611968836118a2565b91506020830135801515811461197d57600080fd5b809150509250929050565b6000806020838503121561199b57600080fd5b823567ffffffffffffffff808211156119b357600080fd5b818501915085601f8301126119c757600080fd5b8135818111156119d657600080fd5b8660208260051b85010111156119eb57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611a7357611a736119fd565b604052919050565b600067ffffffffffffffff821115611a9557611a956119fd565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60008060008060808587031215611ad757600080fd5b611ae0856118a2565b9350611aee602086016118a2565b925060408501359150606085013567ffffffffffffffff811115611b1157600080fd5b8501601f81018713611b2257600080fd5b8035611b35611b3082611a7b565b611a2c565b818152886020838501011115611b4a57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060408385031215611b7f57600080fd5b611b88836118a2565b9150611b96602084016118a2565b90509250929050565b600181811c90821680611bb357607f821691505b602082108103611bec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b81810381811115610690577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060208284031215611c3e57600080fd5b815167ffffffffffffffff811115611c5557600080fd5b8201601f81018413611c6657600080fd5b8051611c74611b3082611a7b565b818152856020838501011115611c8957600080fd5b611c9a826020830160208601611808565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611ce2608083018461182c565b9695505050505050565b600060208284031215611cfe57600080fd5b8151611379816117bd56fea2646970667358221220498f5b16d5ecc03f0d7763970a2fb456d67fc808ad36593b80f894eac1b4125564736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef

Deployed Bytecode

0x6080604052600436106101b75760003560e01c8063715018a6116100ec578063b88d4fde1161008a578063ea2b4ab211610064578063ea2b4ab214610510578063eb20614e14610526578063f2fde38b14610546578063fd4fe8a81461056657600080fd5b8063b88d4fde14610487578063c87b56dd1461049a578063e985e9c5146104ba57600080fd5b80638da5cb5b116100c65780638da5cb5b1461040757806395d89b4114610432578063a22cb46514610447578063b77a147b1461046757600080fd5b8063715018a6146103a55780637cb64759146103ba5780638325c62f146103da57600080fd5b80633ccfd60b116101595780636352211e116101335780636352211e146103185780636ba253fd14610338578063703199701461035857806370a082311461038557600080fd5b80633ccfd60b146102db57806341006605146102f057806342842e0e1461030557600080fd5b8063095ea7b311610195578063095ea7b31461025857806318160ddd1461026d57806323b872dd146102b25780632eb4a7ab146102c557600080fd5b806301ffc9a7146101bc57806306fdde03146101f1578063081812fc14610213575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046117eb565b610586565b60405190151581526020015b60405180910390f35b3480156101fd57600080fd5b50610206610696565b6040516101e89190611876565b34801561021f57600080fd5b5061023361022e366004611889565b610728565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101e8565b61026b6102663660046118cb565b610792565b005b34801561027957600080fd5b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040519081526020016101e8565b61026b6102c03660046118f5565b6108a7565b3480156102d157600080fd5b506102a4600c5481565b3480156102e757600080fd5b5061026b610b60565b3480156102fc57600080fd5b5061026b610b92565b61026b6103133660046118f5565b610c5a565b34801561032457600080fd5b50610233610333366004611889565b610c7a565b34801561034457600080fd5b5061026b610353366004611931565b610c85565b34801561036457600080fd5b506009546102339073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039157600080fd5b506102a46103a0366004611931565b610cd4565b3480156103b157600080fd5b5061026b610d56565b3480156103c657600080fd5b5061026b6103d5366004611889565b610d68565b3480156103e657600080fd5b50600a546102339073ffffffffffffffffffffffffffffffffffffffff1681565b34801561041357600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff16610233565b34801561043e57600080fd5b50610206610dac565b34801561045357600080fd5b5061026b61046236600461194c565b610dbb565b34801561047357600080fd5b5061026b610482366004611988565b610e52565b61026b610495366004611ac1565b610fc7565b3480156104a657600080fd5b506102066104b5366004611889565b611031565b3480156104c657600080fd5b506101dc6104d5366004611b6c565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561051c57600080fd5b506102a4600b5481565b34801561053257600080fd5b5061026b610541366004611889565b611140565b34801561055257600080fd5b5061026b610561366004611931565b611194565b34801561057257600080fd5b5061026b610581366004611931565b611250565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000148061061957507fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000145b8061064457507fffffffff000000000000000000000000000000000000000000000000000000008216155b8061069057507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b92915050565b6060600280546106a590611b9f565b80601f01602080910402602001604051908101604052809291908181526020018280546106d190611b9f565b801561071e5780601f106106f35761010080835404028352916020019161071e565b820191906000526020600020905b81548152906001019060200180831161070157829003601f168201915b5050505050905090565b6000610733826112a0565b610769576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b600061079d82610c7a565b90503373ffffffffffffffffffffffffffffffffffffffff8216146108265773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff16610826576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60006108b2826112ee565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610919576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082815260066020526040902080543380821473ffffffffffffffffffffffffffffffffffffffff8816909114176109b65773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff166109b6576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516610a03576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8015610a0e57600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003610afd57600184016000818152600460205260408120549003610afb576000548114610afb5760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b610b686113b4565b610b90610b8a60085473ffffffffffffffffffffffffffffffffffffffff1690565b47611435565b565b600a5473ffffffffffffffffffffffffffffffffffffffff163314801590610bd2575060085473ffffffffffffffffffffffffffffffffffffffff163314155b15610c09576040517f0707164200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c600180610c3660005490565b610c409190611bf2565b6040805192835260208301919091520160405180910390a1565b610c7583838360405180602001604052806000815250610fc7565b505050565b6000610690826112ee565b610c8d6113b4565b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600073ffffffffffffffffffffffffffffffffffffffff8216610d23576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b610d5e6113b4565b610b906000611455565b610d706113b4565b80610da7576040517f9f8a28f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c55565b6060600380546106a590611b9f565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600b54421115610e8e576040517f589ed34b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3360009081526005602052604090205460c01c15801590610edb576040517f96dd8aac00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c546040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003360601b166020820152600091610f359186918691603401604051602081830303815290604052805190602001206114cc565b905080610f6e576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b336000908152600560205260409020805477ffffffffffffffffffffffffffffffffffffffffffffffff167801000000000000000000000000000000000000000000000000179055610fc1336001611506565b50505050565b610fd28484846108a7565b73ffffffffffffffffffffffffffffffffffffffff83163b15610fc157610ffb84848484611644565b610fc1576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060600061103e83610c7a565b73ffffffffffffffffffffffffffffffffffffffff160361108b576040517f3f6cc76800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009546040517fc87b56dd0000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff9091169063c87b56dd90602401600060405180830381865afa1580156110fa573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526106909190810190611c2c565b6111486113b4565b6000811180156111585750600c54155b1561118f576040517f9f8a28f200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b55565b61119c6113b4565b73ffffffffffffffffffffffffffffffffffffffff8116611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61124d81611455565b50565b6112586113b4565b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905561124d610b92565b6000816001111580156112b4575060005482105b80156106905750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b600081806001116113825760005481101561138257600081815260046020526040812054907c010000000000000000000000000000000000000000000000000000000082169003611380575b8060000361137957507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0160008181526004602052604090205461133a565b9392505050565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff163314610b90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161123b565b60008060008084865af16114515763b12d13eb6000526004601cfd5b5050565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600083156114fe578360051b8501855b803580851160051b948552602094851852604060002093018181106114dc5750505b501492915050565b6000805490829003611544576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461160057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a46001016115c8565b508160000361163b576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061169f903390899088908890600401611ca3565b6020604051808303816000875af19250505080156116f8575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526116f591810190611cec565b60015b61176f573d808015611726576040519150601f19603f3d011682016040523d82523d6000602084013e61172b565b606091505b508051600003611767576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050949350505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461124d57600080fd5b6000602082840312156117fd57600080fd5b8135611379816117bd565b60005b8381101561182357818101518382015260200161180b565b50506000910152565b60008151808452611844816020860160208601611808565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611379602083018461182c565b60006020828403121561189b57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146118c657600080fd5b919050565b600080604083850312156118de57600080fd5b6118e7836118a2565b946020939093013593505050565b60008060006060848603121561190a57600080fd5b611913846118a2565b9250611921602085016118a2565b9150604084013590509250925092565b60006020828403121561194357600080fd5b611379826118a2565b6000806040838503121561195f57600080fd5b611968836118a2565b91506020830135801515811461197d57600080fd5b809150509250929050565b6000806020838503121561199b57600080fd5b823567ffffffffffffffff808211156119b357600080fd5b818501915085601f8301126119c757600080fd5b8135818111156119d657600080fd5b8660208260051b85010111156119eb57600080fd5b60209290920196919550909350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715611a7357611a736119fd565b604052919050565b600067ffffffffffffffff821115611a9557611a956119fd565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60008060008060808587031215611ad757600080fd5b611ae0856118a2565b9350611aee602086016118a2565b925060408501359150606085013567ffffffffffffffff811115611b1157600080fd5b8501601f81018713611b2257600080fd5b8035611b35611b3082611a7b565b611a2c565b818152886020838501011115611b4a57600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060408385031215611b7f57600080fd5b611b88836118a2565b9150611b96602084016118a2565b90509250929050565b600181811c90821680611bb357607f821691505b602082108103611bec577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b81810381811115610690577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060208284031215611c3e57600080fd5b815167ffffffffffffffff811115611c5557600080fd5b8201601f81018413611c6657600080fd5b8051611c74611b3082611a7b565b818152856020838501011115611c8957600080fd5b611c9a826020830160208601611808565b95945050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152611ce2608083018461182c565b9695505050505050565b600060208284031215611cfe57600080fd5b8151611379816117bd56fea2646970667358221220498f5b16d5ecc03f0d7763970a2fb456d67fc808ad36593b80f894eac1b4125564736f6c63430008140033

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.