ERC-721
Overview
Max Total Supply
44 TKEV
Holders
28
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 TKEVLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TubbyKevin
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-10 */ // SPDX-License-Identifier: APGL-3.0-Only AND MIT /** ████████╗██╗ ██╗██████╗ ██████╗ ██╗ ██╗ ╚══██╔══╝██║ ██║██╔══██╗██╔══██╗╚██╗ ██╔╝ ██║ ██║ ██║██████╔╝██████╔╝ ╚████╔╝ ██║ ██║ ██║██╔══██╗██╔══██╗ ╚██╔╝ ██║ ╚██████╔╝██████╔╝██████╔╝ ██║ ╚═╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ██╗ ██╗███████╗██╗ ██╗██╗███╗ ██╗███████╗ ██║ ██╔╝██╔════╝██║ ██║██║████╗ ██║██╔════╝ █████╔╝ █████╗ ██║ ██║██║██╔██╗ ██║███████╗ ██╔═██╗ ██╔══╝ ╚██╗ ██╔╝██║██║╚██╗██║╚════██║ ██║ ██╗███████╗ ╚████╔╝ ██║██║ ╚████║███████║ ╚═╝ ╚═╝╚══════╝ ╚═══╝ ╚═╝╚═╝ ╚═══╝╚══════╝ A TubbyCats Derivative Project TubbyCats: @tubbycatsnft TubbyKevins: @tubbykevins ERC721 contract created using Solmate and _batchMint forked from Azuki's ERC721A Contract and optimized to work with Solmate's Contract to create an extremely gas efficient contract. **/ // OpenZeppelin Contracts v4.4.1 (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } // OpenZeppelin Contracts (last updated v4.5.0) (utils/cryptography/ECDSA.sol) pragma solidity ^0.8.0; /** * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * * These functions can be used to verify that a message was signed by the holder * of the private keys of a given address. */ library ECDSA { enum RecoverError { NoError, InvalidSignature, InvalidSignatureLength, InvalidSignatureS, InvalidSignatureV } function _throwError(RecoverError error) private pure { if (error == RecoverError.NoError) { return; // no error: do nothing } else if (error == RecoverError.InvalidSignature) { revert("ECDSA: invalid signature"); } else if (error == RecoverError.InvalidSignatureLength) { revert("ECDSA: invalid signature length"); } else if (error == RecoverError.InvalidSignatureS) { revert("ECDSA: invalid signature 's' value"); } else if (error == RecoverError.InvalidSignatureV) { revert("ECDSA: invalid signature 'v' value"); } } /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature` or error string. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. * * Documentation for signature generation: * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js] * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers] * * _Available since v4.3._ */ function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError) { // Check the signature length // - case 65: r,s,v signature (standard) // - case 64: r,vs signature (cf https://eips.ethereum.org/EIPS/eip-2098) _Available since v4.1._ if (signature.length == 65) { bytes32 r; bytes32 s; uint8 v; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. assembly { r := mload(add(signature, 0x20)) s := mload(add(signature, 0x40)) v := byte(0, mload(add(signature, 0x60))) } return tryRecover(hash, v, r, s); } else if (signature.length == 64) { bytes32 r; bytes32 vs; // ecrecover takes the signature parameters, and the only way to get them // currently is to use assembly. assembly { r := mload(add(signature, 0x20)) vs := mload(add(signature, 0x40)) } return tryRecover(hash, r, vs); } else { return (address(0), RecoverError.InvalidSignatureLength); } } /** * @dev Returns the address that signed a hashed message (`hash`) with * `signature`. This address can then be used for verification purposes. * * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures: * this function rejects them by requiring the `s` value to be in the lower * half order, and the `v` value to be either 27 or 28. * * IMPORTANT: `hash` _must_ be the result of a hash operation for the * verification to be secure: it is possible to craft signatures that * recover to arbitrary addresses for non-hashed data. A safe way to ensure * this is by receiving a hash of the original message (which may otherwise * be too long), and then calling {toEthSignedMessageHash} on it. */ function recover(bytes32 hash, bytes memory signature) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, signature); _throwError(error); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately. * * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures] * * _Available since v4.3._ */ function tryRecover( bytes32 hash, bytes32 r, bytes32 vs ) internal pure returns (address, RecoverError) { bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); uint8 v = uint8((uint256(vs) >> 255) + 27); return tryRecover(hash, v, r, s); } /** * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately. * * _Available since v4.2._ */ function recover( bytes32 hash, bytes32 r, bytes32 vs ) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, r, vs); _throwError(error); return recovered; } /** * @dev Overload of {ECDSA-tryRecover} that receives the `v`, * `r` and `s` signature fields separately. * * _Available since v4.3._ */ function tryRecover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address, RecoverError) { // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most // signatures from current libraries generate a unique signature with an s-value in the lower half order. // // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept // these malleable signatures as well. if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) { return (address(0), RecoverError.InvalidSignatureS); } if (v != 27 && v != 28) { return (address(0), RecoverError.InvalidSignatureV); } // If the signature is valid (and not malleable), return the signer address address signer = ecrecover(hash, v, r, s); if (signer == address(0)) { return (address(0), RecoverError.InvalidSignature); } return (signer, RecoverError.NoError); } /** * @dev Overload of {ECDSA-recover} that receives the `v`, * `r` and `s` signature fields separately. */ function recover( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal pure returns (address) { (address recovered, RecoverError error) = tryRecover(hash, v, r, s); _throwError(error); return recovered; } /** * @dev Returns an Ethereum Signed Message, created from a `hash`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) { // 32 is the length in bytes of hash, // enforced by the type signature above return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", hash)); } /** * @dev Returns an Ethereum Signed Message, created from `s`. This * produces hash corresponding to the one signed with the * https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] * JSON-RPC method as part of EIP-191. * * See {recover}. */ function toEthSignedMessageHash(bytes memory s) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n", Strings.toString(s.length), s)); } /** * @dev Returns an Ethereum Signed Typed Data, created from a * `domainSeparator` and a `structHash`. This produces hash corresponding * to the one signed with the * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] * JSON-RPC method as part of EIP-712. * * See {recover}. */ function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32) { return keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); } } pragma solidity >=0.8.0; /// @notice Modern, minimalist, and gas efficient ERC-721 implementation. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol) /// @dev Note that balanceOf does not revert if passed the zero address, in defiance of the ERC. abstract contract ERC721 { /*/////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event Transfer(address indexed from, address indexed to, uint256 indexed id); event Approval(address indexed owner, address indexed spender, uint256 indexed id); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); error MintZeroAddress(); error MintZeroQuantity(); /*/////////////////////////////////////////////////////////////// METADATA STORAGE/LOGIC //////////////////////////////////////////////////////////////*/ string public name; string public symbol; function tokenURI(uint256 id) public view virtual returns (string memory); /*/////////////////////////////////////////////////////////////// ERC721 STORAGE //////////////////////////////////////////////////////////////*/ uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(uint256 => address) public ownerOf; mapping(uint256 => address) public getApproved; mapping(address => mapping(address => bool)) public isApprovedForAll; /*/////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor(string memory _name, string memory _symbol) { name = _name; symbol = _symbol; } /*/////////////////////////////////////////////////////////////// ERC721 LOGIC //////////////////////////////////////////////////////////////*/ function approve(address spender, uint256 id) public virtual { address owner = ownerOf[id]; require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED"); getApproved[id] = spender; emit Approval(owner, spender, id); } function setApprovalForAll(address operator, bool approved) public virtual { isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function transferFrom( address from, address to, uint256 id ) public virtual { require(from == ownerOf[id], "WRONG_FROM"); require(to != address(0), "INVALID_RECIPIENT"); require( msg.sender == from || msg.sender == getApproved[id] || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED" ); // Underflow of the sender's balance is impossible because we check for // ownership above and the recipient's balance can't realistically overflow. unchecked { balanceOf[from]--; balanceOf[to]++; } ownerOf[id] = to; delete getApproved[id]; emit Transfer(from, to, id); } function safeTransferFrom( address from, address to, uint256 id ) public virtual { transferFrom(from, to, id); require( to.code.length == 0 || ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") == ERC721TokenReceiver.onERC721Received.selector, "UNSAFE_RECIPIENT" ); } function safeTransferFrom( address from, address to, uint256 id, bytes memory data ) public virtual { transferFrom(from, to, id); require( to.code.length == 0 || ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) == ERC721TokenReceiver.onERC721Received.selector, "UNSAFE_RECIPIENT" ); } /*/////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) { return interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721 interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata } /*/////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _batchMint(address to, uint256 quantity) internal virtual { if (to == address(0)) revert MintZeroAddress(); if (quantity == 0) revert MintZeroQuantity(); // totalSupply: 0 + 1 = 1 // updatedIndex: 1 // end = updatedIndex + quantity; unchecked { uint256 startTokenId = totalSupply; balanceOf[to] += quantity; ownerOf[startTokenId] = to; uint256 updatedIndex = startTokenId; uint256 end = updatedIndex + quantity; do { emit Transfer(address(0), to, updatedIndex++); } while (updatedIndex != end); totalSupply = updatedIndex; } } function _mint(address to, uint256 id) internal virtual { require(to != address(0), "INVALID_RECIPIENT"); require(ownerOf[id] == address(0), "ALREADY_MINTED"); // Counter overflow is incredibly unrealistic. unchecked { totalSupply++; balanceOf[to]++; } ownerOf[id] = to; emit Transfer(address(0), to, id); } function _burn(uint256 id) internal virtual { address owner = ownerOf[id]; require(ownerOf[id] != address(0), "NOT_MINTED"); // Ownership check above ensures no underflow. unchecked { totalSupply--; balanceOf[owner]--; } delete ownerOf[id]; delete getApproved[id]; emit Transfer(owner, address(0), id); } /*/////////////////////////////////////////////////////////////// INTERNAL SAFE MINT LOGIC //////////////////////////////////////////////////////////////*/ function _safeMint(address to, uint256 id) internal virtual { _mint(to, id); require( to.code.length == 0 || ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") == ERC721TokenReceiver.onERC721Received.selector, "UNSAFE_RECIPIENT" ); } function _safeMint( address to, uint256 id, bytes memory data ) internal virtual { _mint(to, id); require( to.code.length == 0 || ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) == ERC721TokenReceiver.onERC721Received.selector, "UNSAFE_RECIPIENT" ); } } /// @notice A generic interface for a contract which properly accepts ERC721 tokens. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol) interface ERC721TokenReceiver { function onERC721Received( address operator, address from, uint256 id, bytes calldata data ) external returns (bytes4); } pragma solidity ^0.8.4; contract TubbyKevin is ERC721 { using ECDSA for bytes32; enum SaleState { CLOSED, CLAIM, MINT } uint256 public maxSupply = 6666; uint256 public mintPrice = 0.03 ether; uint256 public immutable maxMintable = 10; uint256 public immutable maxTubbyClaim = 4000; SaleState public saleState; string public baseURI; address private dev1; address private dev2; address private mktng; address private signer; mapping(address => uint256) private sharePercs; mapping(address => bool) private didntWorkVote; mapping(uint256 => bool) public claimed; bool public useIpfs = false; modifier onlyShareholder() { require(sharePercs[msg.sender] > 0,"MUST_BE_SHAREHOLDER"); _; } constructor( string memory _baseURI, address _dev1, address _dev2, address _mktng, address _signer ) ERC721("Tubby Kevins", "TKEV"){ baseURI = _baseURI; sharePercs[_dev1] = 20; sharePercs[_dev2] = 20; sharePercs[_mktng] = 60; dev1 = _dev1; dev2 = _dev2; mktng = _mktng; signer = _signer; } function tubbyClaim( uint256[] memory _nftIds, uint256 _nonce, bytes memory _signature ) public { require(saleState == SaleState.CLAIM, "CLAIM_INACTIVE"); bytes32 hash = hashTransaction(msg.sender, _nftIds, _nonce); require(matchSignerAdmin(signTransaction(hash), _signature), "SIGNATURE_MISMATCH"); require(totalSupply+_nftIds.length <= maxTubbyClaim, "NOT_ENOUGH_LEFT"); for (uint i=0;i<_nftIds.length;i++) { require(!claimed[_nftIds[i]], "ALREADY_CLAIMED"); claimed[_nftIds[i]] = true; } _batchMint(msg.sender, _nftIds.length); } function adminMint( address[] memory addresses, uint256[] memory amounts ) public onlyShareholder { for (uint i=0;i<addresses.length;i++) { _batchMint(addresses[i], amounts[i]); } } function mint( uint256 _amount ) public payable { require(saleState == SaleState.MINT, "MINT_INACTIVE"); require(msg.value == (_amount * mintPrice), "INSUFFICIENT_FUNDS"); require(_amount <= maxMintable || _amount + totalSupply <= maxSupply, "REQUESTING_TOO_MANY"); if (_amount == 1) { _mint(msg.sender, totalSupply+1); } else { _batchMint(msg.sender, _amount); } } function updateSaleState( SaleState code ) public onlyShareholder { saleState = code; } function didntWorkOut() public onlyShareholder { require(!didntWorkVote[msg.sender], "ALREADY_VOTED"); didntWorkVote[msg.sender] = true; if (didntWorkVote[dev1] && didntWorkVote[dev2] && didntWorkVote[mktng]) { sharePercs[dev1] = 33; sharePercs[dev2] = 33; sharePercs[mktng] = 33; saleState = SaleState.CLOSED; } } function updateMintPrice( uint256 _gweiPrice ) public onlyShareholder { mintPrice = _gweiPrice; } function withdraw() public onlyShareholder { require(address(this).balance > (0.1 * 1 ether), "INSUFFICIENT_FUNDS"); uint256 dev_amnt = (address(this).balance * 20) / 100; uint256 mktg_amnt = (address(this).balance - (dev_amnt * 2)); payable(dev1).transfer(dev_amnt); payable(dev2).transfer(dev_amnt); payable(mktng).transfer(mktg_amnt); } function uint2str(uint _i) internal pure returns (string memory _uintAsString) { if (_i == 0) { return "0"; } uint j = _i; uint len; while (j != 0) { len++; j /= 10; } bytes memory bstr = new bytes(len); uint k = len; while (_i != 0) { k = k-1; uint8 temp = (48 + uint8(_i - _i / 10 * 10)); bytes1 b1 = bytes1(temp); bstr[k] = b1; _i /= 10; } return string(bstr); } function tokenURI( uint256 id ) public view override returns (string memory) { if (!useIpfs) { return string(abi.encodePacked(baseURI, uint2str(id))); } else { return string(abi.encodePacked(baseURI, uint2str(id), ".json")); } } function updateSigner( address _signer ) public onlyShareholder { signer = _signer; } function updateMetadata( string memory _uri, bool _useIpfs ) public onlyShareholder { baseURI = _uri; useIpfs = _useIpfs; } function hashTransaction(address _sender, uint256[] memory _nftIds, uint256 _nonce) public pure returns (bytes32) { bytes32 _hash = keccak256(abi.encodePacked(_sender, _nftIds, _nonce)); return _hash; } function signTransaction(bytes32 _hash) public pure returns (bytes32) { return _hash.toEthSignedMessageHash(); } function matchSignerAdmin(bytes32 _payload, bytes memory _signature) public view returns (bool) { return signer == _payload.recover(_signature); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"},{"internalType":"address","name":"_dev1","type":"address"},{"internalType":"address","name":"_dev2","type":"address"},{"internalType":"address","name":"_mktng","type":"address"},{"internalType":"address","name":"_signer","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"MintZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","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":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"adminMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"claimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"didntWorkOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"uint256[]","name":"_nftIds","type":"uint256[]"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"hashTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_payload","type":"bytes32"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"matchSignerAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintable","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTubbyClaim","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":"mintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"saleState","outputs":[{"internalType":"enum TubbyKevin.SaleState","name":"","type":"uint8"}],"stateMutability":"view","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":"_hash","type":"bytes32"}],"name":"signTransaction","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","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":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_nftIds","type":"uint256[]"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"tubbyClaim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_uri","type":"string"},{"internalType":"bool","name":"_useIpfs","type":"bool"}],"name":"updateMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_gweiPrice","type":"uint256"}],"name":"updateMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum TubbyKevin.SaleState","name":"code","type":"uint8"}],"name":"updateSaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_signer","type":"address"}],"name":"updateSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"useIpfs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052611a0a600755666a94d74f430000600855600a608052610fa060a0526012805460ff191690553480156200003757600080fd5b506040516200295e3803806200295e8339810160408190526200005a916200022d565b604080518082018252600c81526b5475626279204b6576696e7360a01b6020808301918252835180850190945260048452632a25a2ab60e11b908401528151919291620000aa9160009162000154565b508051620000c090600190602084019062000154565b50508551620000d89150600a90602088019062000154565b506001600160a01b039384166000818152600f602052604080822060149081905595871680835281832096909655938616808252939020603c9055600b80546001600160a01b03199081169092179055600c80548216909417909355600d80548416909217909155600e80549190931691161790555062000393565b828054620001629062000356565b90600052602060002090601f016020900481019282620001865760008555620001d1565b82601f10620001a157805160ff1916838001178555620001d1565b82800160010185558215620001d1579182015b82811115620001d1578251825591602001919060010190620001b4565b50620001df929150620001e3565b5090565b5b80821115620001df5760008155600101620001e4565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200022857600080fd5b919050565b600080600080600060a086880312156200024657600080fd5b85516001600160401b03808211156200025e57600080fd5b818801915088601f8301126200027357600080fd5b815181811115620002885762000288620001fa565b604051601f8201601f19908116603f01168101908382118183101715620002b357620002b3620001fa565b81604052828152602093508b84848701011115620002d057600080fd5b600091505b82821015620002f45784820184015181830185015290830190620002d5565b82821115620003065760008484830101525b98506200031891505088820162000210565b955050506200032a6040870162000210565b92506200033a6060870162000210565b91506200034a6080870162000210565b90509295509295909350565b600181811c908216806200036b57607f821691505b602082108114156200038d57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a051612597620003c76000396000818161069001526113f20152600081816103540152610e6f01526125976000f3fe6080604052600436106101f85760003560e01c8063955c20b21161010d578063b88d4fde116100a0578063d5abeb011161006f578063d5abeb01146105dd578063dbe7e3bd146105f3578063e0f4ea9014610623578063e985e9c514610643578063ff3f48d81461067e57600080fd5b8063b88d4fde14610568578063c073925e14610588578063c87b56dd1461059d578063ca0c6321146105bd57600080fd5b8063a22cb465116100dc578063a22cb465146104e8578063a49340cc14610508578063a7ecd37e14610528578063a9eaee301461054857600080fd5b8063955c20b21461048057806395d89b41146104a05780639ff9baf8146104b5578063a0712d68146104d557600080fd5b80632154dc3911610190578063603f4d521161015f578063603f4d52146103cb5780636352211e146103f25780636817c76c146104285780636c0360eb1461043e57806370a082311461045357600080fd5b80632154dc391461034257806323b872dd146103765780633ccfd60b1461039657806342842e0e146103ab57600080fd5b8063095ea7b3116101cc578063095ea7b3146102c45780630e37a71a146102e45780631508c2901461031257806318160ddd1461032c57600080fd5b8062728e46146101fd57806301ffc9a71461021f57806306fdde0314610254578063081812fc14610276575b600080fd5b34801561020957600080fd5b5061021d610218366004611c8b565b6106b2565b005b34801561022b57600080fd5b5061023f61023a366004611cba565b6106ec565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b5061026961073e565b60405161024b9190611d36565b34801561028257600080fd5b506102ac610291366004611c8b565b6005602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b3480156102d057600080fd5b5061021d6102df366004611d60565b6107cc565b3480156102f057600080fd5b506103046102ff366004611e60565b6108ae565b60405190815260200161024b565b34801561031e57600080fd5b5060125461023f9060ff1681565b34801561033857600080fd5b5061030460025481565b34801561034e57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b34801561038257600080fd5b5061021d610391366004611eb7565b6108e7565b3480156103a257600080fd5b5061021d610aae565b3480156103b757600080fd5b5061021d6103c6366004611eb7565b610c0e565b3480156103d757600080fd5b506009546103e59060ff1681565b60405161024b9190611f09565b3480156103fe57600080fd5b506102ac61040d366004611c8b565b6004602052600090815260409020546001600160a01b031681565b34801561043457600080fd5b5061030460085481565b34801561044a57600080fd5b50610269610d01565b34801561045f57600080fd5b5061030461046e366004611f31565b60036020526000908152604090205481565b34801561048c57600080fd5b5061030461049b366004611c8b565b610d0e565b3480156104ac57600080fd5b50610269610d67565b3480156104c157600080fd5b5061021d6104d0366004611f4c565b610d74565b61021d6104e3366004611c8b565b610dc7565b3480156104f457600080fd5b5061021d610503366004611f7d565b610f1a565b34801561051457600080fd5b5061021d610523366004611fb0565b610f86565b34801561053457600080fd5b5061021d610543366004611f31565b61100c565b34801561055457600080fd5b5061021d6105633660046120c8565b61105a565b34801561057457600080fd5b5061021d610583366004612141565b6110ae565b34801561059457600080fd5b5061021d611193565b3480156105a957600080fd5b506102696105b8366004611c8b565b6112d7565b3480156105c957600080fd5b5061021d6105d83660046121a9565b611337565b3480156105e957600080fd5b5061030460075481565b3480156105ff57600080fd5b5061023f61060e366004611c8b565b60116020526000908152604090205460ff1681565b34801561062f57600080fd5b5061023f61063e366004612216565b611543565b34801561064f57600080fd5b5061023f61065e366004612253565b600660209081526000928352604080842090915290825290205460ff1681565b34801561068a57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b336000908152600f60205260409020546106e75760405162461bcd60e51b81526004016106de9061227d565b60405180910390fd5b600855565b60006301ffc9a760e01b6001600160e01b03198316148061071d57506380ac58cd60e01b6001600160e01b03198316145b806107385750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000805461074b906122aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610777906122aa565b80156107c45780601f10610799576101008083540402835291602001916107c4565b820191906000526020600020905b8154815290600101906020018083116107a757829003601f168201915b505050505081565b6000818152600460205260409020546001600160a01b03163381148061081557506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b6108525760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016106de565b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000808484846040516020016108c6939291906122e5565b60408051808303601f19018152919052805160209091012095945050505050565b6000818152600460205260409020546001600160a01b0384811691161461093d5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016106de565b6001600160a01b0382166109875760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016106de565b336001600160a01b03841614806109b457506000818152600560205260409020546001600160a01b031633145b806109e257506001600160a01b038316600090815260066020908152604080832033845290915290205460ff165b610a1f5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016106de565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526004825284832080546001600160a01b03199081168317909155600590925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b336000908152600f6020526040902054610ada5760405162461bcd60e51b81526004016106de9061227d565b67016345785d8a00004711610b265760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f46554e445360701b60448201526064016106de565b60006064610b3547601461234d565b610b3f919061236c565b90506000610b4e82600261234d565b610b58904761238e565b600b546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50600c546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015610bce573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c09573d6000803e3d6000fd5b505050565b610c198383836108e7565b6001600160a01b0382163b1580610cc25750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb691906123a5565b6001600160e01b031916145b610c095760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016106de565b600a805461074b906122aa565b6000610738826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b6001805461074b906122aa565b336000908152600f6020526040902054610da05760405162461bcd60e51b81526004016106de9061227d565b6009805482919060ff19166001836002811115610dbf57610dbf611ef3565b021790555050565b600260095460ff166002811115610de057610de0611ef3565b14610e1d5760405162461bcd60e51b815260206004820152600d60248201526c4d494e545f494e41435449564560981b60448201526064016106de565b600854610e2a908261234d565b3414610e6d5760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f46554e445360701b60448201526064016106de565b7f000000000000000000000000000000000000000000000000000000000000000081111580610eaa5750600754600254610ea790836123c2565b11155b610eec5760405162461bcd60e51b815260206004820152601360248201527252455155455354494e475f544f4f5f4d414e5960681b60448201526064016106de565b8060011415610f1057610f0d336002546001610f0891906123c2565b611567565b50565b610f0d338261167e565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b336000908152600f6020526040902054610fb25760405162461bcd60e51b81526004016106de9061227d565b60005b8251811015610c0957610ffa838281518110610fd357610fd36123da565b6020026020010151838381518110610fed57610fed6123da565b602002602001015161167e565b80611004816123f0565b915050610fb5565b336000908152600f60205260409020546110385760405162461bcd60e51b81526004016106de9061227d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600f60205260409020546110865760405162461bcd60e51b81526004016106de9061227d565b815161109990600a906020850190611bf2565b506012805460ff191691151591909117905550565b6110b98484846108e7565b6001600160a01b0383163b158061114e5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906110ff90339089908890889060040161240b565b6020604051808303816000875af115801561111e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114291906123a5565b6001600160e01b031916145b61118d5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016106de565b50505050565b336000908152600f60205260409020546111bf5760405162461bcd60e51b81526004016106de9061227d565b3360009081526010602052604090205460ff161561120f5760405162461bcd60e51b815260206004820152600d60248201526c1053149150511657d593d51151609a1b60448201526064016106de565b33600090815260106020526040808220805460ff19166001179055600b546001600160a01b0316825290205460ff1680156112645750600c546001600160a01b031660009081526010602052604090205460ff165b801561128a5750600d546001600160a01b031660009081526010602052604090205460ff165b156112d557600b546001600160a01b039081166000908152600f6020526040808220602190819055600c5484168352818320819055600d5490931682529020556009805460ff191690555b565b60125460609060ff1661131657600a6112ef83611754565b6040516020016113009291906124e2565b6040516020818303038152906040529050919050565b600a61132183611754565b604051602001611300929190612507565b919050565b600160095460ff16600281111561135057611350611ef3565b1461138e5760405162461bcd60e51b815260206004820152600e60248201526d434c41494d5f494e41435449564560901b60448201526064016106de565b600061139b3385856108ae565b90506113af6113a982610d0e565b83611543565b6113f05760405162461bcd60e51b81526020600482015260126024820152710a6928e9c82a8aaa48abe9a92a69a82a886960731b60448201526064016106de565b7f0000000000000000000000000000000000000000000000000000000000000000845160025461142091906123c2565b11156114605760405162461bcd60e51b815260206004820152600f60248201526e1393d517d15393d551d217d3115195608a1b60448201526064016106de565b60005b84518110156115375760116000868381518110611482576114826123da565b60209081029190910181015182528101919091526040016000205460ff16156114df5760405162461bcd60e51b815260206004820152600f60248201526e1053149150511657d0d31052535151608a1b60448201526064016106de565b6001601160008784815181106114f7576114f76123da565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152f906123f0565b915050611463565b5061118d33855161167e565b600061154f838361187d565b600e546001600160a01b039182169116149392505050565b6001600160a01b0382166115b15760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016106de565b6000818152600460205260409020546001600160a01b0316156116075760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016106de565b6002805460019081019091556001600160a01b038316600081815260036020908152604080832080549095019094558482526004905282812080546001600160a01b0319168317905591518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0382166116a55760405163023a409560e11b815260040160405180910390fd5b806116c35760405163b562e8dd60e01b815260040160405180910390fd5b6002546001600160a01b03831660008181526003602090815260408083208054870190558483526004909152902080546001600160a01b0319169091179055808281015b6040516001830192906001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4808214156117075750600255505050565b6060816117785750506040805180820190915260018152600360fc1b602082015290565b8160005b81156117a2578061178c816123f0565b915061179b9050600a8361236c565b915061177c565b60008167ffffffffffffffff8111156117bd576117bd611d8a565b6040519080825280601f01601f1916602001820160405280156117e7576020820181803683370190505b509050815b8515611874576117fd60018261238e565b9050600061180c600a8861236c565b61181790600a61234d565b611821908861238e565b61182c90603061253c565b905060008160f81b905080848481518110611849576118496123da565b60200101906001600160f81b031916908160001a90535061186b600a8961236c565b975050506117ec565b50949350505050565b600080600061188c85856118a1565b9150915061189981611911565b509392505050565b6000808251604114156118d85760208301516040840151606085015160001a6118cc87828585611acc565b9450945050505061190a565b82516040141561190257602083015160408401516118f7868383611bb9565b93509350505061190a565b506000905060025b9250929050565b600081600481111561192557611925611ef3565b141561192e5750565b600181600481111561194257611942611ef3565b14156119905760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106de565b60028160048111156119a4576119a4611ef3565b14156119f25760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106de565b6003816004811115611a0657611a06611ef3565b1415611a5f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106de565b6004816004811115611a7357611a73611ef3565b1415610f0d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106de565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b035750600090506003611bb0565b8460ff16601b14158015611b1b57508460ff16601c14155b15611b2c5750600090506004611bb0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b80573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611ba957600060019250925050611bb0565b9150600090505b94509492505050565b6000806001600160ff1b03831681611bd660ff86901c601b6123c2565b9050611be487828885611acc565b935093505050935093915050565b828054611bfe906122aa565b90600052602060002090601f016020900481019282611c205760008555611c66565b82601f10611c3957805160ff1916838001178555611c66565b82800160010185558215611c66579182015b82811115611c66578251825591602001919060010190611c4b565b50611c72929150611c76565b5090565b5b80821115611c725760008155600101611c77565b600060208284031215611c9d57600080fd5b5035919050565b6001600160e01b031981168114610f0d57600080fd5b600060208284031215611ccc57600080fd5b8135611cd781611ca4565b9392505050565b60005b83811015611cf9578181015183820152602001611ce1565b8381111561118d5750506000910152565b60008151808452611d22816020860160208601611cde565b601f01601f19169290920160200192915050565b602081526000611cd76020830184611d0a565b80356001600160a01b038116811461133257600080fd5b60008060408385031215611d7357600080fd5b611d7c83611d49565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611dc957611dc9611d8a565b604052919050565b600067ffffffffffffffff821115611deb57611deb611d8a565b5060051b60200190565b600082601f830112611e0657600080fd5b81356020611e1b611e1683611dd1565b611da0565b82815260059290921b84018101918181019086841115611e3a57600080fd5b8286015b84811015611e555780358352918301918301611e3e565b509695505050505050565b600080600060608486031215611e7557600080fd5b611e7e84611d49565b9250602084013567ffffffffffffffff811115611e9a57600080fd5b611ea686828701611df5565b925050604084013590509250925092565b600080600060608486031215611ecc57600080fd5b611ed584611d49565b9250611ee360208501611d49565b9150604084013590509250925092565b634e487b7160e01b600052602160045260246000fd5b6020810160038310611f2b57634e487b7160e01b600052602160045260246000fd5b91905290565b600060208284031215611f4357600080fd5b611cd782611d49565b600060208284031215611f5e57600080fd5b813560038110611cd757600080fd5b8035801515811461133257600080fd5b60008060408385031215611f9057600080fd5b611f9983611d49565b9150611fa760208401611f6d565b90509250929050565b60008060408385031215611fc357600080fd5b823567ffffffffffffffff80821115611fdb57600080fd5b818501915085601f830112611fef57600080fd5b81356020611fff611e1683611dd1565b82815260059290921b8401810191818101908984111561201e57600080fd5b948201945b838610156120435761203486611d49565b82529482019490820190612023565b9650508601359250508082111561205957600080fd5b5061206685828601611df5565b9150509250929050565b600067ffffffffffffffff83111561208a5761208a611d8a565b61209d601f8401601f1916602001611da0565b90508281528383830111156120b157600080fd5b828260208301376000602084830101529392505050565b600080604083850312156120db57600080fd5b823567ffffffffffffffff8111156120f257600080fd5b8301601f8101851361210357600080fd5b61211285823560208401612070565b925050611fa760208401611f6d565b600082601f83011261213257600080fd5b611cd783833560208501612070565b6000806000806080858703121561215757600080fd5b61216085611d49565b935061216e60208601611d49565b925060408501359150606085013567ffffffffffffffff81111561219157600080fd5b61219d87828801612121565b91505092959194509250565b6000806000606084860312156121be57600080fd5b833567ffffffffffffffff808211156121d657600080fd5b6121e287838801611df5565b94506020860135935060408601359150808211156121ff57600080fd5b5061220c86828701612121565b9150509250925092565b6000806040838503121561222957600080fd5b82359150602083013567ffffffffffffffff81111561224757600080fd5b61206685828601612121565b6000806040838503121561226657600080fd5b61226f83611d49565b9150611fa760208401611d49565b60208082526013908201527226aaa9aa2fa122afa9a420a922a427a62222a960691b604082015260600190565b600181811c908216806122be57607f821691505b602082108114156122df57634e487b7160e01b600052602260045260246000fd5b50919050565b6bffffffffffffffffffffffff198460601b1681526000601482018451602080870160005b838110156123265781518552938201939082019060010161230a565b505094825250909201949350505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561236757612367612337565b500290565b60008261238957634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156123a0576123a0612337565b500390565b6000602082840312156123b757600080fd5b8151611cd781611ca4565b600082198211156123d5576123d5612337565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561240457612404612337565b5060010190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061243e90830184611d0a565b9695505050505050565b8054600090600181811c908083168061246257607f831692505b602080841082141561248457634e487b7160e01b600052602260045260246000fd5b81801561249857600181146124a9576124d6565b60ff198616895284890196506124d6565b60008881526020902060005b868110156124ce5781548b8201529085019083016124b5565b505084890196505b50505050505092915050565b60006124ee8285612448565b83516124fe818360208801611cde565b01949350505050565b60006125138285612448565b8351612523818360208801611cde565b64173539b7b760d91b9101908152600501949350505050565b600060ff821660ff84168060ff0382111561255957612559612337565b01939250505056fea2646970667358221220c10f8f869b25712b007cd1ae5d7cb1fa6f1a74a10425b019a72406599276e16d64736f6c634300080b003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000044f6498d1403321890f3f2917e00f22dbde3577a0000000000000000000000000644ba9a8bd4ef8cf11a93886e17d5a5279adff200000000000000000000000043ba92091718b94c6afd5bebc8fd462ef51a5aca0000000000000000000000004806a568d5c87ce5337a1fc1e6a7d13565235b59000000000000000000000000000000000000000000000000000000000000002668747470733a2f2f6170692e74756262796b6576696e732e636f6d2f6170692f746f6b656e2f0000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101f85760003560e01c8063955c20b21161010d578063b88d4fde116100a0578063d5abeb011161006f578063d5abeb01146105dd578063dbe7e3bd146105f3578063e0f4ea9014610623578063e985e9c514610643578063ff3f48d81461067e57600080fd5b8063b88d4fde14610568578063c073925e14610588578063c87b56dd1461059d578063ca0c6321146105bd57600080fd5b8063a22cb465116100dc578063a22cb465146104e8578063a49340cc14610508578063a7ecd37e14610528578063a9eaee301461054857600080fd5b8063955c20b21461048057806395d89b41146104a05780639ff9baf8146104b5578063a0712d68146104d557600080fd5b80632154dc3911610190578063603f4d521161015f578063603f4d52146103cb5780636352211e146103f25780636817c76c146104285780636c0360eb1461043e57806370a082311461045357600080fd5b80632154dc391461034257806323b872dd146103765780633ccfd60b1461039657806342842e0e146103ab57600080fd5b8063095ea7b3116101cc578063095ea7b3146102c45780630e37a71a146102e45780631508c2901461031257806318160ddd1461032c57600080fd5b8062728e46146101fd57806301ffc9a71461021f57806306fdde0314610254578063081812fc14610276575b600080fd5b34801561020957600080fd5b5061021d610218366004611c8b565b6106b2565b005b34801561022b57600080fd5b5061023f61023a366004611cba565b6106ec565b60405190151581526020015b60405180910390f35b34801561026057600080fd5b5061026961073e565b60405161024b9190611d36565b34801561028257600080fd5b506102ac610291366004611c8b565b6005602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161024b565b3480156102d057600080fd5b5061021d6102df366004611d60565b6107cc565b3480156102f057600080fd5b506103046102ff366004611e60565b6108ae565b60405190815260200161024b565b34801561031e57600080fd5b5060125461023f9060ff1681565b34801561033857600080fd5b5061030460025481565b34801561034e57600080fd5b506103047f000000000000000000000000000000000000000000000000000000000000000a81565b34801561038257600080fd5b5061021d610391366004611eb7565b6108e7565b3480156103a257600080fd5b5061021d610aae565b3480156103b757600080fd5b5061021d6103c6366004611eb7565b610c0e565b3480156103d757600080fd5b506009546103e59060ff1681565b60405161024b9190611f09565b3480156103fe57600080fd5b506102ac61040d366004611c8b565b6004602052600090815260409020546001600160a01b031681565b34801561043457600080fd5b5061030460085481565b34801561044a57600080fd5b50610269610d01565b34801561045f57600080fd5b5061030461046e366004611f31565b60036020526000908152604090205481565b34801561048c57600080fd5b5061030461049b366004611c8b565b610d0e565b3480156104ac57600080fd5b50610269610d67565b3480156104c157600080fd5b5061021d6104d0366004611f4c565b610d74565b61021d6104e3366004611c8b565b610dc7565b3480156104f457600080fd5b5061021d610503366004611f7d565b610f1a565b34801561051457600080fd5b5061021d610523366004611fb0565b610f86565b34801561053457600080fd5b5061021d610543366004611f31565b61100c565b34801561055457600080fd5b5061021d6105633660046120c8565b61105a565b34801561057457600080fd5b5061021d610583366004612141565b6110ae565b34801561059457600080fd5b5061021d611193565b3480156105a957600080fd5b506102696105b8366004611c8b565b6112d7565b3480156105c957600080fd5b5061021d6105d83660046121a9565b611337565b3480156105e957600080fd5b5061030460075481565b3480156105ff57600080fd5b5061023f61060e366004611c8b565b60116020526000908152604090205460ff1681565b34801561062f57600080fd5b5061023f61063e366004612216565b611543565b34801561064f57600080fd5b5061023f61065e366004612253565b600660209081526000928352604080842090915290825290205460ff1681565b34801561068a57600080fd5b506103047f0000000000000000000000000000000000000000000000000000000000000fa081565b336000908152600f60205260409020546106e75760405162461bcd60e51b81526004016106de9061227d565b60405180910390fd5b600855565b60006301ffc9a760e01b6001600160e01b03198316148061071d57506380ac58cd60e01b6001600160e01b03198316145b806107385750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000805461074b906122aa565b80601f0160208091040260200160405190810160405280929190818152602001828054610777906122aa565b80156107c45780601f10610799576101008083540402835291602001916107c4565b820191906000526020600020905b8154815290600101906020018083116107a757829003601f168201915b505050505081565b6000818152600460205260409020546001600160a01b03163381148061081557506001600160a01b038116600090815260066020908152604080832033845290915290205460ff165b6108525760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016106de565b60008281526005602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000808484846040516020016108c6939291906122e5565b60408051808303601f19018152919052805160209091012095945050505050565b6000818152600460205260409020546001600160a01b0384811691161461093d5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016106de565b6001600160a01b0382166109875760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016106de565b336001600160a01b03841614806109b457506000818152600560205260409020546001600160a01b031633145b806109e257506001600160a01b038316600090815260066020908152604080832033845290915290205460ff165b610a1f5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016106de565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526004825284832080546001600160a01b03199081168317909155600590925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b336000908152600f6020526040902054610ada5760405162461bcd60e51b81526004016106de9061227d565b67016345785d8a00004711610b265760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f46554e445360701b60448201526064016106de565b60006064610b3547601461234d565b610b3f919061236c565b90506000610b4e82600261234d565b610b58904761238e565b600b546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015610b93573d6000803e3d6000fd5b50600c546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015610bce573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c09573d6000803e3d6000fd5b505050565b610c198383836108e7565b6001600160a01b0382163b1580610cc25750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610c92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cb691906123a5565b6001600160e01b031916145b610c095760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016106de565b600a805461074b906122aa565b6000610738826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01604051602081830303815290604052805190602001209050919050565b6001805461074b906122aa565b336000908152600f6020526040902054610da05760405162461bcd60e51b81526004016106de9061227d565b6009805482919060ff19166001836002811115610dbf57610dbf611ef3565b021790555050565b600260095460ff166002811115610de057610de0611ef3565b14610e1d5760405162461bcd60e51b815260206004820152600d60248201526c4d494e545f494e41435449564560981b60448201526064016106de565b600854610e2a908261234d565b3414610e6d5760405162461bcd60e51b8152602060048201526012602482015271494e53554646494349454e545f46554e445360701b60448201526064016106de565b7f000000000000000000000000000000000000000000000000000000000000000a81111580610eaa5750600754600254610ea790836123c2565b11155b610eec5760405162461bcd60e51b815260206004820152601360248201527252455155455354494e475f544f4f5f4d414e5960681b60448201526064016106de565b8060011415610f1057610f0d336002546001610f0891906123c2565b611567565b50565b610f0d338261167e565b3360008181526006602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b336000908152600f6020526040902054610fb25760405162461bcd60e51b81526004016106de9061227d565b60005b8251811015610c0957610ffa838281518110610fd357610fd36123da565b6020026020010151838381518110610fed57610fed6123da565b602002602001015161167e565b80611004816123f0565b915050610fb5565b336000908152600f60205260409020546110385760405162461bcd60e51b81526004016106de9061227d565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600f60205260409020546110865760405162461bcd60e51b81526004016106de9061227d565b815161109990600a906020850190611bf2565b506012805460ff191691151591909117905550565b6110b98484846108e7565b6001600160a01b0383163b158061114e5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a02906110ff90339089908890889060040161240b565b6020604051808303816000875af115801561111e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114291906123a5565b6001600160e01b031916145b61118d5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016106de565b50505050565b336000908152600f60205260409020546111bf5760405162461bcd60e51b81526004016106de9061227d565b3360009081526010602052604090205460ff161561120f5760405162461bcd60e51b815260206004820152600d60248201526c1053149150511657d593d51151609a1b60448201526064016106de565b33600090815260106020526040808220805460ff19166001179055600b546001600160a01b0316825290205460ff1680156112645750600c546001600160a01b031660009081526010602052604090205460ff165b801561128a5750600d546001600160a01b031660009081526010602052604090205460ff165b156112d557600b546001600160a01b039081166000908152600f6020526040808220602190819055600c5484168352818320819055600d5490931682529020556009805460ff191690555b565b60125460609060ff1661131657600a6112ef83611754565b6040516020016113009291906124e2565b6040516020818303038152906040529050919050565b600a61132183611754565b604051602001611300929190612507565b919050565b600160095460ff16600281111561135057611350611ef3565b1461138e5760405162461bcd60e51b815260206004820152600e60248201526d434c41494d5f494e41435449564560901b60448201526064016106de565b600061139b3385856108ae565b90506113af6113a982610d0e565b83611543565b6113f05760405162461bcd60e51b81526020600482015260126024820152710a6928e9c82a8aaa48abe9a92a69a82a886960731b60448201526064016106de565b7f0000000000000000000000000000000000000000000000000000000000000fa0845160025461142091906123c2565b11156114605760405162461bcd60e51b815260206004820152600f60248201526e1393d517d15393d551d217d3115195608a1b60448201526064016106de565b60005b84518110156115375760116000868381518110611482576114826123da565b60209081029190910181015182528101919091526040016000205460ff16156114df5760405162461bcd60e51b815260206004820152600f60248201526e1053149150511657d0d31052535151608a1b60448201526064016106de565b6001601160008784815181106114f7576114f76123da565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152f906123f0565b915050611463565b5061118d33855161167e565b600061154f838361187d565b600e546001600160a01b039182169116149392505050565b6001600160a01b0382166115b15760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016106de565b6000818152600460205260409020546001600160a01b0316156116075760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016106de565b6002805460019081019091556001600160a01b038316600081815260036020908152604080832080549095019094558482526004905282812080546001600160a01b0319168317905591518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160a01b0382166116a55760405163023a409560e11b815260040160405180910390fd5b806116c35760405163b562e8dd60e01b815260040160405180910390fd5b6002546001600160a01b03831660008181526003602090815260408083208054870190558483526004909152902080546001600160a01b0319169091179055808281015b6040516001830192906001600160a01b038716906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4808214156117075750600255505050565b6060816117785750506040805180820190915260018152600360fc1b602082015290565b8160005b81156117a2578061178c816123f0565b915061179b9050600a8361236c565b915061177c565b60008167ffffffffffffffff8111156117bd576117bd611d8a565b6040519080825280601f01601f1916602001820160405280156117e7576020820181803683370190505b509050815b8515611874576117fd60018261238e565b9050600061180c600a8861236c565b61181790600a61234d565b611821908861238e565b61182c90603061253c565b905060008160f81b905080848481518110611849576118496123da565b60200101906001600160f81b031916908160001a90535061186b600a8961236c565b975050506117ec565b50949350505050565b600080600061188c85856118a1565b9150915061189981611911565b509392505050565b6000808251604114156118d85760208301516040840151606085015160001a6118cc87828585611acc565b9450945050505061190a565b82516040141561190257602083015160408401516118f7868383611bb9565b93509350505061190a565b506000905060025b9250929050565b600081600481111561192557611925611ef3565b141561192e5750565b600181600481111561194257611942611ef3565b14156119905760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016106de565b60028160048111156119a4576119a4611ef3565b14156119f25760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016106de565b6003816004811115611a0657611a06611ef3565b1415611a5f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016106de565b6004816004811115611a7357611a73611ef3565b1415610f0d5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016106de565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115611b035750600090506003611bb0565b8460ff16601b14158015611b1b57508460ff16601c14155b15611b2c5750600090506004611bb0565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015611b80573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611ba957600060019250925050611bb0565b9150600090505b94509492505050565b6000806001600160ff1b03831681611bd660ff86901c601b6123c2565b9050611be487828885611acc565b935093505050935093915050565b828054611bfe906122aa565b90600052602060002090601f016020900481019282611c205760008555611c66565b82601f10611c3957805160ff1916838001178555611c66565b82800160010185558215611c66579182015b82811115611c66578251825591602001919060010190611c4b565b50611c72929150611c76565b5090565b5b80821115611c725760008155600101611c77565b600060208284031215611c9d57600080fd5b5035919050565b6001600160e01b031981168114610f0d57600080fd5b600060208284031215611ccc57600080fd5b8135611cd781611ca4565b9392505050565b60005b83811015611cf9578181015183820152602001611ce1565b8381111561118d5750506000910152565b60008151808452611d22816020860160208601611cde565b601f01601f19169290920160200192915050565b602081526000611cd76020830184611d0a565b80356001600160a01b038116811461133257600080fd5b60008060408385031215611d7357600080fd5b611d7c83611d49565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611dc957611dc9611d8a565b604052919050565b600067ffffffffffffffff821115611deb57611deb611d8a565b5060051b60200190565b600082601f830112611e0657600080fd5b81356020611e1b611e1683611dd1565b611da0565b82815260059290921b84018101918181019086841115611e3a57600080fd5b8286015b84811015611e555780358352918301918301611e3e565b509695505050505050565b600080600060608486031215611e7557600080fd5b611e7e84611d49565b9250602084013567ffffffffffffffff811115611e9a57600080fd5b611ea686828701611df5565b925050604084013590509250925092565b600080600060608486031215611ecc57600080fd5b611ed584611d49565b9250611ee360208501611d49565b9150604084013590509250925092565b634e487b7160e01b600052602160045260246000fd5b6020810160038310611f2b57634e487b7160e01b600052602160045260246000fd5b91905290565b600060208284031215611f4357600080fd5b611cd782611d49565b600060208284031215611f5e57600080fd5b813560038110611cd757600080fd5b8035801515811461133257600080fd5b60008060408385031215611f9057600080fd5b611f9983611d49565b9150611fa760208401611f6d565b90509250929050565b60008060408385031215611fc357600080fd5b823567ffffffffffffffff80821115611fdb57600080fd5b818501915085601f830112611fef57600080fd5b81356020611fff611e1683611dd1565b82815260059290921b8401810191818101908984111561201e57600080fd5b948201945b838610156120435761203486611d49565b82529482019490820190612023565b9650508601359250508082111561205957600080fd5b5061206685828601611df5565b9150509250929050565b600067ffffffffffffffff83111561208a5761208a611d8a565b61209d601f8401601f1916602001611da0565b90508281528383830111156120b157600080fd5b828260208301376000602084830101529392505050565b600080604083850312156120db57600080fd5b823567ffffffffffffffff8111156120f257600080fd5b8301601f8101851361210357600080fd5b61211285823560208401612070565b925050611fa760208401611f6d565b600082601f83011261213257600080fd5b611cd783833560208501612070565b6000806000806080858703121561215757600080fd5b61216085611d49565b935061216e60208601611d49565b925060408501359150606085013567ffffffffffffffff81111561219157600080fd5b61219d87828801612121565b91505092959194509250565b6000806000606084860312156121be57600080fd5b833567ffffffffffffffff808211156121d657600080fd5b6121e287838801611df5565b94506020860135935060408601359150808211156121ff57600080fd5b5061220c86828701612121565b9150509250925092565b6000806040838503121561222957600080fd5b82359150602083013567ffffffffffffffff81111561224757600080fd5b61206685828601612121565b6000806040838503121561226657600080fd5b61226f83611d49565b9150611fa760208401611d49565b60208082526013908201527226aaa9aa2fa122afa9a420a922a427a62222a960691b604082015260600190565b600181811c908216806122be57607f821691505b602082108114156122df57634e487b7160e01b600052602260045260246000fd5b50919050565b6bffffffffffffffffffffffff198460601b1681526000601482018451602080870160005b838110156123265781518552938201939082019060010161230a565b505094825250909201949350505050565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561236757612367612337565b500290565b60008261238957634e487b7160e01b600052601260045260246000fd5b500490565b6000828210156123a0576123a0612337565b500390565b6000602082840312156123b757600080fd5b8151611cd781611ca4565b600082198211156123d5576123d5612337565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561240457612404612337565b5060010190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061243e90830184611d0a565b9695505050505050565b8054600090600181811c908083168061246257607f831692505b602080841082141561248457634e487b7160e01b600052602260045260246000fd5b81801561249857600181146124a9576124d6565b60ff198616895284890196506124d6565b60008881526020902060005b868110156124ce5781548b8201529085019083016124b5565b505084890196505b50505050505092915050565b60006124ee8285612448565b83516124fe818360208801611cde565b01949350505050565b60006125138285612448565b8351612523818360208801611cde565b64173539b7b760d91b9101908152600501949350505050565b600060ff821660ff84168060ff0382111561255957612559612337565b01939250505056fea2646970667358221220c10f8f869b25712b007cd1ae5d7cb1fa6f1a74a10425b019a72406599276e16d64736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000044f6498d1403321890f3f2917e00f22dbde3577a0000000000000000000000000644ba9a8bd4ef8cf11a93886e17d5a5279adff200000000000000000000000043ba92091718b94c6afd5bebc8fd462ef51a5aca0000000000000000000000004806a568d5c87ce5337a1fc1e6a7d13565235b59000000000000000000000000000000000000000000000000000000000000002668747470733a2f2f6170692e74756262796b6576696e732e636f6d2f6170692f746f6b656e2f0000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _baseURI (string): https://api.tubbykevins.com/api/token/
Arg [1] : _dev1 (address): 0x44f6498D1403321890F3f2917E00F22dBDE3577a
Arg [2] : _dev2 (address): 0x0644BA9A8BD4ef8Cf11a93886E17D5A5279AdFF2
Arg [3] : _mktng (address): 0x43Ba92091718B94c6aFd5Bebc8Fd462eF51A5aca
Arg [4] : _signer (address): 0x4806a568d5C87CE5337a1Fc1E6a7D13565235b59
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [1] : 00000000000000000000000044f6498d1403321890f3f2917e00f22dbde3577a
Arg [2] : 0000000000000000000000000644ba9a8bd4ef8cf11a93886e17d5a5279adff2
Arg [3] : 00000000000000000000000043ba92091718b94c6afd5bebc8fd462ef51a5aca
Arg [4] : 0000000000000000000000004806a568d5c87ce5337a1fc1e6a7d13565235b59
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000026
Arg [6] : 68747470733a2f2f6170692e74756262796b6576696e732e636f6d2f6170692f
Arg [7] : 746f6b656e2f0000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
21392:5446:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24574:125;;;;;;;;;;-1:-1:-1;24574:125:0;;;;;:::i;:::-;;:::i;:::-;;17896:340;;;;;;;;;;-1:-1:-1;17896:340:0;;;;;:::i;:::-;;:::i;:::-;;;750:14:1;;743:22;725:41;;713:2;698:18;17896:340:0;;;;;;;;14446:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14934:46::-;;;;;;;;;;-1:-1:-1;14934:46:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;14934:46:0;;;;;;-1:-1:-1;;;;;1692:32:1;;;1674:51;;1662:2;1647:18;14934:46:0;1528:203:1;15561:289:0;;;;;;;;;;-1:-1:-1;15561:289:0;;;;;:::i;:::-;;:::i;26300:225::-;;;;;;;;;;-1:-1:-1;26300:225:0;;;;;:::i;:::-;;:::i;:::-;;;4081:25:1;;;4069:2;4054:18;26300:225:0;3935:177:1;22061:27:0;;;;;;;;;;-1:-1:-1;22061:27:0;;;;;;;;14795:26;;;;;;;;;;;;;;;;21623:41;;;;;;;;;;;;;;;16073:764;;;;;;;;;;-1:-1:-1;16073:764:0;;;;;:::i;:::-;;:::i;24707:398::-;;;;;;;;;;;;;:::i;16845:409::-;;;;;;;;;;-1:-1:-1;16845:409:0;;;;;:::i;:::-;;:::i;21725:26::-;;;;;;;;;;-1:-1:-1;21725:26:0;;;;;;;;;;;;;;;:::i;14883:42::-;;;;;;;;;;-1:-1:-1;14883:42:0;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;14883:42:0;;;21579:37;;;;;;;;;;;;;;;;21760:21;;;;;;;;;;;;;:::i;14830:44::-;;;;;;;;;;-1:-1:-1;14830:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;26541:126;;;;;;;;;;-1:-1:-1;26541:126:0;;;;;:::i;:::-;;:::i;14473:20::-;;;;;;;;;;;;;:::i;24036:115::-;;;;;;;;;;-1:-1:-1;24036:115:0;;;;;:::i;:::-;;:::i;23564:464::-;;;;;;:::i;:::-;;:::i;15858:207::-;;;;;;;;;;-1:-1:-1;15858:207:0;;;;;:::i;:::-;;:::i;23316:240::-;;;;;;;;;;-1:-1:-1;23316:240:0;;;;;:::i;:::-;;:::i;26002:113::-;;;;;;;;;;-1:-1:-1;26002:113:0;;;;;:::i;:::-;;:::i;26123:169::-;;;;;;;;;;-1:-1:-1;26123:169:0;;;;;:::i;:::-;;:::i;17262:439::-;;;;;;;;;;-1:-1:-1;17262:439:0;;;;;:::i;:::-;;:::i;24159:407::-;;;;;;;;;;;;;:::i;25694:300::-;;;;;;;;;;-1:-1:-1;25694:300:0;;;;;:::i;:::-;;:::i;22650:658::-;;;;;;;;;;-1:-1:-1;22650:658:0;;;;;:::i;:::-;;:::i;21541:31::-;;;;;;;;;;;;;;;;22013:39;;;;;;;;;;-1:-1:-1;22013:39:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;26675:160;;;;;;;;;;-1:-1:-1;26675:160:0;;;;;:::i;:::-;;:::i;14989:68::-;;;;;;;;;;-1:-1:-1;14989:68:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;21671:45;;;;;;;;;;;;;;;24574:125;22154:10;22168:1;22143:22;;;:10;:22;;;;;;22135:57;;;;-1:-1:-1;;;22135:57:0;;;;;;;:::i;:::-;;;;;;;;;24669:9:::1;:22:::0;24574:125::o;17896:340::-;17972:4;-1:-1:-1;;;;;;;;;18009:25:0;;;;:101;;-1:-1:-1;;;;;;;;;;18085:25:0;;;18009:101;:177;;;-1:-1:-1;;;;;;;;;;18161:25:0;;;18009:177;17989:197;17896:340;-1:-1:-1;;17896:340:0:o;14446:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15561:289::-;15633:13;15649:11;;;:7;:11;;;;;;-1:-1:-1;;;;;15649:11:0;15681:10;:19;;;:58;;-1:-1:-1;;;;;;15704:23:0;;;;;;:16;:23;;;;;;;;15728:10;15704:35;;;;;;;;;;15681:58;15673:85;;;;-1:-1:-1;;;15673:85:0;;11278:2:1;15673:85:0;;;11260:21:1;11317:2;11297:18;;;11290:30;-1:-1:-1;;;11336:18:1;;;11329:44;11390:18;;15673:85:0;11076:338:1;15673:85:0;15771:15;;;;:11;:15;;;;;;:25;;-1:-1:-1;;;;;;15771:25:0;-1:-1:-1;;;;;15771:25:0;;;;;;;;;15814:28;;15771:15;;15814:28;;;;;;;15622:228;15561:289;;:::o;26300:225::-;26405:7;26425:13;26468:7;26477;26486:6;26451:42;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;26451:42:0;;;;;;26441:53;;26451:42;26441:53;;;;;26300:225;-1:-1:-1;;;;;26300:225:0:o;16073:764::-;16209:11;;;;:7;:11;;;;;;-1:-1:-1;;;;;16201:19:0;;;16209:11;;16201:19;16193:42;;;;-1:-1:-1;;;16193:42:0;;12350:2:1;16193:42:0;;;12332:21:1;12389:2;12369:18;;;12362:30;-1:-1:-1;;;12408:18:1;;;12401:40;12458:18;;16193:42:0;12148:334:1;16193:42:0;-1:-1:-1;;;;;16256:16:0;;16248:46;;;;-1:-1:-1;;;16248:46:0;;12689:2:1;16248:46:0;;;12671:21:1;12728:2;12708:18;;;12701:30;-1:-1:-1;;;12747:18:1;;;12740:47;12804:18;;16248:46:0;12487:341:1;16248:46:0;16329:10;-1:-1:-1;;;;;16329:18:0;;;;:51;;-1:-1:-1;16365:15:0;;;;:11;:15;;;;;;-1:-1:-1;;;;;16365:15:0;16351:10;:29;16329:51;:89;;;-1:-1:-1;;;;;;16384:22:0;;;;;;:16;:22;;;;;;;;16407:10;16384:34;;;;;;;;;;16329:89;16307:153;;;;-1:-1:-1;;;16307:153:0;;11278:2:1;16307:153:0;;;11260:21:1;11317:2;11297:18;;;11290:30;-1:-1:-1;;;11336:18:1;;;11329:44;11390:18;;16307:153:0;11076:338:1;16307:153:0;-1:-1:-1;;;;;16665:15:0;;;;;;;:9;:15;;;;;;;;:17;;-1:-1:-1;;16665:17:0;;;16699:13;;;;;;;;;:15;;16665:17;16699:15;;;16738:11;;;:7;:11;;;;;:16;;-1:-1:-1;;;;;;16738:16:0;;;;;;;;16774:11;:15;;;;;;16767:22;;;;;;;;16807;;16746:2;;16699:13;16665:15;16807:22;;;16073:764;;;:::o;24707:398::-;22154:10;22168:1;22143:22;;;:10;:22;;;;;;22135:57;;;;-1:-1:-1;;;22135:57:0;;;;;;;:::i;:::-;24794:13:::1;24769:21;:39;24761:70;;;::::0;-1:-1:-1;;;24761:70:0;;13035:2:1;24761:70:0::1;::::0;::::1;13017:21:1::0;13074:2;13054:18;;;13047:30;-1:-1:-1;;;13093:18:1;;;13086:48;13151:18;;24761:70:0::1;12833:342:1::0;24761:70:0::1;24842:16;24892:3;24862:26;:21;24886:2;24862:26;:::i;:::-;24861:34;;;;:::i;:::-;24842:53:::0;-1:-1:-1;24906:17:0::1;24952:12;24842:53:::0;24963:1:::1;24952:12;:::i;:::-;24927:38;::::0;:21:::1;:38;:::i;:::-;24985:4;::::0;24977:32:::1;::::0;24906:60;;-1:-1:-1;;;;;;24985:4:0::1;::::0;24977:32;::::1;;;::::0;25000:8;;24985:4:::1;24977:32:::0;24985:4;24977:32;25000:8;24985:4;24977:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;25028:4:0::1;::::0;25020:32:::1;::::0;-1:-1:-1;;;;;25028:4:0;;::::1;::::0;25020:32;::::1;;;::::0;25043:8;;25028:4:::1;25020:32:::0;25028:4;25020:32;25043:8;25028:4;25020:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;25071:5:0::1;::::0;25063:34:::1;::::0;-1:-1:-1;;;;;25071:5:0;;::::1;::::0;25063:34;::::1;;;::::0;25087:9;;25071:5:::1;25063:34:::0;25071:5;25063:34;25087:9;25071:5;25063:34;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;24750:355;;24707:398::o:0;16845:409::-;16969:26;16982:4;16988:2;16992;16969:12;:26::i;:::-;-1:-1:-1;;;;;17030:14:0;;;:19;;:172;;-1:-1:-1;17070:66:0;;-1:-1:-1;;;17070:66:0;;;17111:10;17070:66;;;14142:34:1;-1:-1:-1;;;;;14212:15:1;;;14192:18;;;14185:43;14244:18;;;14237:34;;;14307:3;14287:18;;;14280:31;-1:-1:-1;14327:19:1;;;14320:30;17157:45:0;;17070:40;;;;17157:45;;14367:19:1;;17070:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17070:132:0;;17030:172;17008:238;;;;-1:-1:-1;;;17008:238:0;;14853:2:1;17008:238:0;;;14835:21:1;14892:2;14872:18;;;14865:30;-1:-1:-1;;;14911:18:1;;;14904:46;14967:18;;17008:238:0;14651:340:1;21760:21:0;;;;;;;:::i;26541:126::-;26602:7;26629:30;:5;12296:58;;20580:66:1;12296:58:0;;;20568:79:1;20663:12;;;20656:28;;;12163:7:0;;20700:12:1;;12296:58:0;;;;;;;;;;;;12286:69;;;;;;12279:76;;12094:269;;;;14473:20;;;;;;;:::i;24036:115::-;22154:10;22168:1;22143:22;;;:10;:22;;;;;;22135:57;;;;-1:-1:-1;;;22135:57:0;;;;;;;:::i;:::-;24127:9:::1;:16:::0;;24139:4;;24127:9;-1:-1:-1;;24127:16:0::1;::::0;24139:4;24127:16:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;24036:115:::0;:::o;23564:464::-;23658:14;23645:9;;;;:27;;;;;;;;:::i;:::-;;23637:53;;;;-1:-1:-1;;;23637:53:0;;15198:2:1;23637:53:0;;;15180:21:1;15237:2;15217:18;;;15210:30;-1:-1:-1;;;15256:18:1;;;15249:43;15309:18;;23637:53:0;14996:337:1;23637:53:0;23733:9;;23723:19;;:7;:19;:::i;:::-;23709:9;:34;23701:65;;;;-1:-1:-1;;;23701:65:0;;13035:2:1;23701:65:0;;;13017:21:1;13074:2;13054:18;;;13047:30;-1:-1:-1;;;13093:18:1;;;13086:48;13151:18;;23701:65:0;12833:342:1;23701:65:0;23796:11;23785:7;:22;;:60;;;-1:-1:-1;23836:9:0;;23821:11;;23811:21;;:7;:21;:::i;:::-;:34;;23785:60;23777:92;;;;-1:-1:-1;;;23777:92:0;;15673:2:1;23777:92:0;;;15655:21:1;15712:2;15692:18;;;15685:30;-1:-1:-1;;;15731:18:1;;;15724:49;15790:18;;23777:92:0;15471:343:1;23777:92:0;23884:7;23895:1;23884:12;23880:141;;;23913:32;23919:10;23931:11;;23943:1;23931:13;;;;:::i;:::-;23913:5;:32::i;:::-;23564:464;:::o;23880:141::-;23978:31;23989:10;24001:7;23978:10;:31::i;15858:207::-;15961:10;15944:28;;;;:16;:28;;;;;;;;-1:-1:-1;;;;;15944:38:0;;;;;;;;;;;;:49;;-1:-1:-1;;15944:49:0;;;;;;;;;;16011:46;;725:41:1;;;15944:38:0;;15961:10;16011:46;;698:18:1;16011:46:0;;;;;;;15858:207;;:::o;23316:240::-;22154:10;22168:1;22143:22;;;:10;:22;;;;;;22135:57;;;;-1:-1:-1;;;22135:57:0;;;;;;;:::i;:::-;23453:6:::1;23448:101;23464:9;:16;23462:1;:18;23448:101;;;23501:36;23512:9;23522:1;23512:12;;;;;;;;:::i;:::-;;;;;;;23526:7;23534:1;23526:10;;;;;;;;:::i;:::-;;;;;;;23501;:36::i;:::-;23481:3:::0;::::1;::::0;::::1;:::i;:::-;;;;23448:101;;26002:113:::0;22154:10;22168:1;22143:22;;;:10;:22;;;;;;22135:57;;;;-1:-1:-1;;;22135:57:0;;;;;;;:::i;:::-;26091:6:::1;:16:::0;;-1:-1:-1;;;;;;26091:16:0::1;-1:-1:-1::0;;;;;26091:16:0;;;::::1;::::0;;;::::1;::::0;;26002:113::o;26123:169::-;22154:10;22168:1;22143:22;;;:10;:22;;;;;;22135:57;;;;-1:-1:-1;;;22135:57:0;;;;;;;:::i;:::-;26241:14;;::::1;::::0;:7:::1;::::0;:14:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;26266:7:0::1;:18:::0;;-1:-1:-1;;26266:18:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;26123:169:0:o;17262:439::-;17414:26;17427:4;17433:2;17437;17414:12;:26::i;:::-;-1:-1:-1;;;;;17475:14:0;;;:19;;:174;;-1:-1:-1;17515:68:0;;-1:-1:-1;;;17515:68:0;;;17604:45;-1:-1:-1;;;;;17515:40:0;;;17604:45;;17515:68;;17556:10;;17568:4;;17574:2;;17578:4;;17515:68;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;17515:134:0;;17475:174;17453:240;;;;-1:-1:-1;;;17453:240:0;;14853:2:1;17453:240:0;;;14835:21:1;14892:2;14872:18;;;14865:30;-1:-1:-1;;;14911:18:1;;;14904:46;14967:18;;17453:240:0;14651:340:1;17453:240:0;17262:439;;;;:::o;24159:407::-;22154:10;22168:1;22143:22;;;:10;:22;;;;;;22135:57;;;;-1:-1:-1;;;22135:57:0;;;;;;;:::i;:::-;24240:10:::1;24226:25;::::0;;;:13:::1;:25;::::0;;;;;::::1;;24225:26;24217:52;;;::::0;-1:-1:-1;;;24217:52:0;;16787:2:1;24217:52:0::1;::::0;::::1;16769:21:1::0;16826:2;16806:18;;;16799:30;-1:-1:-1;;;16845:18:1;;;16838:43;16898:18;;24217:52:0::1;16585:337:1::0;24217:52:0::1;24294:10;24280:25;::::0;;;:13:::1;:25;::::0;;;;;:32;;-1:-1:-1;;24280:32:0::1;24308:4;24280:32;::::0;;24341:4:::1;::::0;-1:-1:-1;;;;;24341:4:0::1;24327:19:::0;;;;;24280:32:::1;24327:19;:42:::0;::::1;;;-1:-1:-1::0;24364:4:0::1;::::0;-1:-1:-1;;;;;24364:4:0::1;24350:19;::::0;;;:13:::1;:19;::::0;;;;;::::1;;24327:42;:66;;;;-1:-1:-1::0;24387:5:0::1;::::0;-1:-1:-1;;;;;24387:5:0::1;24373:20;::::0;;;:13:::1;:20;::::0;;;;;::::1;;24327:66;24323:236;;;24421:4;::::0;-1:-1:-1;;;;;24421:4:0;;::::1;24410:16;::::0;;;:10:::1;:16;::::0;;;;;24429:2:::1;24410:21:::0;;;;24457:4:::1;::::0;;::::1;24446:16:::0;;;;;:21;;;24493:5:::1;::::0;;;::::1;24482:17:::0;;;;:22;24519:9:::1;:28:::0;;-1:-1:-1;;24519:28:0::1;::::0;;24323:236:::1;24159:407::o:0;25694:300::-;25801:7;;25770:13;;25801:7;;25796:191;;25856:7;25865:12;25874:2;25865:8;:12::i;:::-;25839:39;;;;;;;;;:::i;:::-;;;;;;;;;;;;;25825:54;;25694:300;;;:::o;25796:191::-;25943:7;25952:12;25961:2;25952:8;:12::i;:::-;25926:48;;;;;;;;;:::i;25796:191::-;25694:300;;;:::o;22650:658::-;22810:15;22797:9;;;;:28;;;;;;;;:::i;:::-;;22789:55;;;;-1:-1:-1;;;22789:55:0;;19162:2:1;22789:55:0;;;19144:21:1;19201:2;19181:18;;;19174:30;-1:-1:-1;;;19220:18:1;;;19213:44;19274:18;;22789:55:0;18960:338:1;22789:55:0;22855:12;22870:44;22886:10;22898:7;22907:6;22870:15;:44::i;:::-;22855:59;;22933:51;22950:21;22966:4;22950:15;:21::i;:::-;22973:10;22933:16;:51::i;:::-;22925:82;;;;-1:-1:-1;;;22925:82:0;;19505:2:1;22925:82:0;;;19487:21:1;19544:2;19524:18;;;19517:30;-1:-1:-1;;;19563:18:1;;;19556:48;19621:18;;22925:82:0;19303:342:1;22925:82:0;23056:13;23038:7;:14;23026:11;;:26;;;;:::i;:::-;:43;;23018:71;;;;-1:-1:-1;;;23018:71:0;;19852:2:1;23018:71:0;;;19834:21:1;19891:2;19871:18;;;19864:30;-1:-1:-1;;;19910:18:1;;;19903:45;19965:18;;23018:71:0;19650:339:1;23018:71:0;23105:6;23100:152;23116:7;:14;23114:1;:16;23100:152;;;23160:7;:19;23168:7;23176:1;23168:10;;;;;;;;:::i;:::-;;;;;;;;;;;;23160:19;;;;;;;;;;-1:-1:-1;23160:19:0;;;;23159:20;23151:48;;;;-1:-1:-1;;;23151:48:0;;20196:2:1;23151:48:0;;;20178:21:1;20235:2;20215:18;;;20208:30;-1:-1:-1;;;20254:18:1;;;20247:45;20309:18;;23151:48:0;19994:339:1;23151:48:0;23236:4;23214:7;:19;23222:7;23230:1;23222:10;;;;;;;;:::i;:::-;;;;;;;23214:19;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;23131:3;;;;;:::i;:::-;;;;23100:152;;;;23262:38;23273:10;23285:7;:14;23262:10;:38::i;26675:160::-;26765:4;26799:28;:8;26816:10;26799:16;:28::i;:::-;26789:6;;-1:-1:-1;;;;;26789:38:0;;;:6;;:38;;26675:160;-1:-1:-1;;;26675:160:0:o;19174:411::-;-1:-1:-1;;;;;19249:16:0;;19241:46;;;;-1:-1:-1;;;19241:46:0;;12689:2:1;19241:46:0;;;12671:21:1;12728:2;12708:18;;;12701:30;-1:-1:-1;;;12747:18:1;;;12740:47;12804:18;;19241:46:0;12487:341:1;19241:46:0;19331:1;19308:11;;;:7;:11;;;;;;-1:-1:-1;;;;;19308:11:0;:25;19300:52;;;;-1:-1:-1;;;19300:52:0;;20925:2:1;19300:52:0;;;20907:21:1;20964:2;20944:18;;;20937:30;-1:-1:-1;;;20983:18:1;;;20976:44;21037:18;;19300:52:0;20723:338:1;19300:52:0;19446:11;:13;;;;;;;;;-1:-1:-1;;;;;19476:13:0;;19446:11;19476:13;;;:9;:13;;;;;;;;:15;;;;;;;;19515:11;;;:7;:11;;;;;:16;;-1:-1:-1;;;;;;19515:16:0;;;;;19549:28;;19523:2;;19446:11;19549:28;;19446:11;;19549:28;19174:411;;:::o;18436:730::-;-1:-1:-1;;;;;18518:16:0;;18514:46;;18543:17;;-1:-1:-1;;;18543:17:0;;;;;;;;;;;18514:46;18575:13;18571:44;;18597:18;;-1:-1:-1;;;18597:18:0;;;;;;;;;;;18571:44;18782:11;;-1:-1:-1;;;;;18808:13:0;;18759:20;18808:13;;;:9;:13;;;;;;;;:25;;;;;;18848:21;;;:7;:21;;;;;:26;;-1:-1:-1;;;;;;18848:26:0;;;;;;18782:11;18955:23;;;18995:112;19022:40;;19047:14;;;;;-1:-1:-1;;;;;19022:40:0;;;19039:1;;19022:40;;19039:1;;19022:40;19102:3;19086:12;:19;;18995:112;;-1:-1:-1;19121:11:0;:26;-1:-1:-1;;;18436:730:0:o;25113:573::-;25163:27;25207:7;25203:50;;-1:-1:-1;;25231:10:0;;;;;;;;;;;;-1:-1:-1;;;25231:10:0;;;;;25113:573::o;25203:50::-;25272:2;25263:6;25304:69;25311:6;;25304:69;;25334:5;;;;:::i;:::-;;-1:-1:-1;25354:7:0;;-1:-1:-1;25359:2:0;25354:7;;:::i;:::-;;;25304:69;;;25383:17;25413:3;25403:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25403:14:0;-1:-1:-1;25383:34:0;-1:-1:-1;25437:3:0;25451:198;25458:7;;25451:198;;25486:3;25488:1;25486;:3;:::i;:::-;25482:7;-1:-1:-1;25504:10:0;25534:7;25539:2;25534;:7;:::i;:::-;:12;;25544:2;25534:12;:::i;:::-;25529:17;;:2;:17;:::i;:::-;25518:29;;:2;:29;:::i;:::-;25504:44;;25563:9;25582:4;25575:12;;25563:24;;25612:2;25602:4;25607:1;25602:7;;;;;;;;:::i;:::-;;;;:12;-1:-1:-1;;;;;25602:12:0;;;;;;;;-1:-1:-1;25629:8:0;25635:2;25629:8;;:::i;:::-;;;25467:182;;25451:198;;;-1:-1:-1;25673:4:0;25113:573;-1:-1:-1;;;;25113:573:0:o;8292:231::-;8370:7;8391:17;8410:18;8432:27;8443:4;8449:9;8432:10;:27::i;:::-;8390:69;;;;8470:18;8482:5;8470:11;:18::i;:::-;-1:-1:-1;8506:9:0;8292:231;-1:-1:-1;;;8292:231:0:o;6182:1308::-;6263:7;6272:12;6497:9;:16;6517:2;6497:22;6493:990;;;6793:4;6778:20;;6772:27;6843:4;6828:20;;6822:27;6901:4;6886:20;;6880:27;6536:9;6872:36;6944:25;6955:4;6872:36;6772:27;6822;6944:10;:25::i;:::-;6937:32;;;;;;;;;6493:990;6991:9;:16;7011:2;6991:22;6987:496;;;7266:4;7251:20;;7245:27;7317:4;7302:20;;7296:27;7359:23;7370:4;7245:27;7296;7359:10;:23::i;:::-;7352:30;;;;;;;;6987:496;-1:-1:-1;7431:1:0;;-1:-1:-1;7435:35:0;6987:496;6182:1308;;;;;:::o;4453:643::-;4531:20;4522:5;:29;;;;;;;;:::i;:::-;;4518:571;;;4453:643;:::o;4518:571::-;4629:29;4620:5;:38;;;;;;;;:::i;:::-;;4616:473;;;4675:34;;-1:-1:-1;;;4675:34:0;;21477:2:1;4675:34:0;;;21459:21:1;21516:2;21496:18;;;21489:30;21555:26;21535:18;;;21528:54;21599:18;;4675:34:0;21275:348:1;4616:473:0;4740:35;4731:5;:44;;;;;;;;:::i;:::-;;4727:362;;;4792:41;;-1:-1:-1;;;4792:41:0;;21830:2:1;4792:41:0;;;21812:21:1;21869:2;21849:18;;;21842:30;21908:33;21888:18;;;21881:61;21959:18;;4792:41:0;21628:355:1;4727:362:0;4864:30;4855:5;:39;;;;;;;;:::i;:::-;;4851:238;;;4911:44;;-1:-1:-1;;;4911:44:0;;22190:2:1;4911:44:0;;;22172:21:1;22229:2;22209:18;;;22202:30;22268:34;22248:18;;;22241:62;-1:-1:-1;;;22319:18:1;;;22312:32;22361:19;;4911:44:0;21988:398:1;4851:238:0;4986:30;4977:5;:39;;;;;;;;:::i;:::-;;4973:116;;;5033:44;;-1:-1:-1;;;5033:44:0;;22593:2:1;5033:44:0;;;22575:21:1;22632:2;22612:18;;;22605:30;22671:34;22651:18;;;22644:62;-1:-1:-1;;;22722:18:1;;;22715:32;22764:19;;5033:44:0;22391:398:1;9744:1632:0;9875:7;;10809:66;10796:79;;10792:163;;;-1:-1:-1;10908:1:0;;-1:-1:-1;10912:30:0;10892:51;;10792:163;10969:1;:7;;10974:2;10969:7;;:18;;;;;10980:1;:7;;10985:2;10980:7;;10969:18;10965:102;;;-1:-1:-1;11020:1:0;;-1:-1:-1;11024:30:0;11004:51;;10965:102;11181:24;;;11164:14;11181:24;;;;;;;;;23021:25:1;;;23094:4;23082:17;;23062:18;;;23055:45;;;;23116:18;;;23109:34;;;23159:18;;;23152:34;;;11181:24:0;;22993:19:1;;11181:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11181:24:0;;-1:-1:-1;;11181:24:0;;;-1:-1:-1;;;;;;;11220:20:0;;11216:103;;11273:1;11277:29;11257:50;;;;;;;11216:103;11339:6;-1:-1:-1;11347:20:0;;-1:-1:-1;9744:1632:0;;;;;;;;:::o;8786:344::-;8900:7;;-1:-1:-1;;;;;8946:80:0;;8900:7;9053:25;9069:3;9054:18;;;9076:2;9053:25;:::i;:::-;9037:42;;9097:25;9108:4;9114:1;9117;9120;9097:10;:25::i;:::-;9090:32;;;;;;8786:344;;;;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:180:1;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:131::-;-1:-1:-1;;;;;;273:32:1;;263:43;;253:71;;320:1;317;310:12;335:245;393:6;446:2;434:9;425:7;421:23;417:32;414:52;;;462:1;459;452:12;414:52;501:9;488:23;520:30;544:5;520:30;:::i;:::-;569:5;335:245;-1:-1:-1;;;335:245:1:o;777:258::-;849:1;859:113;873:6;870:1;867:13;859:113;;;949:11;;;943:18;930:11;;;923:39;895:2;888:10;859:113;;;990:6;987:1;984:13;981:48;;;-1:-1:-1;;1025:1:1;1007:16;;1000:27;777:258::o;1040:::-;1082:3;1120:5;1114:12;1147:6;1142:3;1135:19;1163:63;1219:6;1212:4;1207:3;1203:14;1196:4;1189:5;1185:16;1163:63;:::i;:::-;1280:2;1259:15;-1:-1:-1;;1255:29:1;1246:39;;;;1287:4;1242:50;;1040:258;-1:-1:-1;;1040:258:1:o;1303:220::-;1452:2;1441:9;1434:21;1415:4;1472:45;1513:2;1502:9;1498:18;1490:6;1472:45;:::i;1736:173::-;1804:20;;-1:-1:-1;;;;;1853:31:1;;1843:42;;1833:70;;1899:1;1896;1889:12;1914:254;1982:6;1990;2043:2;2031:9;2022:7;2018:23;2014:32;2011:52;;;2059:1;2056;2049:12;2011:52;2082:29;2101:9;2082:29;:::i;:::-;2072:39;2158:2;2143:18;;;;2130:32;;-1:-1:-1;;;1914:254:1:o;2173:127::-;2234:10;2229:3;2225:20;2222:1;2215:31;2265:4;2262:1;2255:15;2289:4;2286:1;2279:15;2305:275;2376:2;2370:9;2441:2;2422:13;;-1:-1:-1;;2418:27:1;2406:40;;2476:18;2461:34;;2497:22;;;2458:62;2455:88;;;2523:18;;:::i;:::-;2559:2;2552:22;2305:275;;-1:-1:-1;2305:275:1:o;2585:183::-;2645:4;2678:18;2670:6;2667:30;2664:56;;;2700:18;;:::i;:::-;-1:-1:-1;2745:1:1;2741:14;2757:4;2737:25;;2585:183::o;2773:662::-;2827:5;2880:3;2873:4;2865:6;2861:17;2857:27;2847:55;;2898:1;2895;2888:12;2847:55;2934:6;2921:20;2960:4;2984:60;3000:43;3040:2;3000:43;:::i;:::-;2984:60;:::i;:::-;3078:15;;;3164:1;3160:10;;;;3148:23;;3144:32;;;3109:12;;;;3188:15;;;3185:35;;;3216:1;3213;3206:12;3185:35;3252:2;3244:6;3240:15;3264:142;3280:6;3275:3;3272:15;3264:142;;;3346:17;;3334:30;;3384:12;;;;3297;;3264:142;;;-1:-1:-1;3424:5:1;2773:662;-1:-1:-1;;;;;;2773:662:1:o;3440:490::-;3542:6;3550;3558;3611:2;3599:9;3590:7;3586:23;3582:32;3579:52;;;3627:1;3624;3617:12;3579:52;3650:29;3669:9;3650:29;:::i;:::-;3640:39;;3730:2;3719:9;3715:18;3702:32;3757:18;3749:6;3746:30;3743:50;;;3789:1;3786;3779:12;3743:50;3812:61;3865:7;3856:6;3845:9;3841:22;3812:61;:::i;:::-;3802:71;;;3920:2;3909:9;3905:18;3892:32;3882:42;;3440:490;;;;;:::o;4299:328::-;4376:6;4384;4392;4445:2;4433:9;4424:7;4420:23;4416:32;4413:52;;;4461:1;4458;4451:12;4413:52;4484:29;4503:9;4484:29;:::i;:::-;4474:39;;4532:38;4566:2;4555:9;4551:18;4532:38;:::i;:::-;4522:48;;4617:2;4606:9;4602:18;4589:32;4579:42;;4299:328;;;;;:::o;4632:127::-;4693:10;4688:3;4684:20;4681:1;4674:31;4724:4;4721:1;4714:15;4748:4;4745:1;4738:15;4764:342;4910:2;4895:18;;4943:1;4932:13;;4922:144;;4988:10;4983:3;4979:20;4976:1;4969:31;5023:4;5020:1;5013:15;5051:4;5048:1;5041:15;4922:144;5075:25;;;4764:342;:::o;5111:186::-;5170:6;5223:2;5211:9;5202:7;5198:23;5194:32;5191:52;;;5239:1;5236;5229:12;5191:52;5262:29;5281:9;5262:29;:::i;5487:270::-;5560:6;5613:2;5601:9;5592:7;5588:23;5584:32;5581:52;;;5629:1;5626;5619:12;5581:52;5668:9;5655:23;5707:1;5700:5;5697:12;5687:40;;5723:1;5720;5713:12;5762:160;5827:20;;5883:13;;5876:21;5866:32;;5856:60;;5912:1;5909;5902:12;5927:254;5992:6;6000;6053:2;6041:9;6032:7;6028:23;6024:32;6021:52;;;6069:1;6066;6059:12;6021:52;6092:29;6111:9;6092:29;:::i;:::-;6082:39;;6140:35;6171:2;6160:9;6156:18;6140:35;:::i;:::-;6130:45;;5927:254;;;;;:::o;6186:1146::-;6304:6;6312;6365:2;6353:9;6344:7;6340:23;6336:32;6333:52;;;6381:1;6378;6371:12;6333:52;6421:9;6408:23;6450:18;6491:2;6483:6;6480:14;6477:34;;;6507:1;6504;6497:12;6477:34;6545:6;6534:9;6530:22;6520:32;;6590:7;6583:4;6579:2;6575:13;6571:27;6561:55;;6612:1;6609;6602:12;6561:55;6648:2;6635:16;6670:4;6694:60;6710:43;6750:2;6710:43;:::i;6694:60::-;6788:15;;;6870:1;6866:10;;;;6858:19;;6854:28;;;6819:12;;;;6894:19;;;6891:39;;;6926:1;6923;6916:12;6891:39;6950:11;;;;6970:148;6986:6;6981:3;6978:15;6970:148;;;7052:23;7071:3;7052:23;:::i;:::-;7040:36;;7003:12;;;;7096;;;;6970:148;;;7137:5;-1:-1:-1;;7180:18:1;;7167:32;;-1:-1:-1;;7211:16:1;;;7208:36;;;7240:1;7237;7230:12;7208:36;;7263:63;7318:7;7307:8;7296:9;7292:24;7263:63;:::i;:::-;7253:73;;;6186:1146;;;;;:::o;7337:407::-;7402:5;7436:18;7428:6;7425:30;7422:56;;;7458:18;;:::i;:::-;7496:57;7541:2;7520:15;;-1:-1:-1;;7516:29:1;7547:4;7512:40;7496:57;:::i;:::-;7487:66;;7576:6;7569:5;7562:21;7616:3;7607:6;7602:3;7598:16;7595:25;7592:45;;;7633:1;7630;7623:12;7592:45;7682:6;7677:3;7670:4;7663:5;7659:16;7646:43;7736:1;7729:4;7720:6;7713:5;7709:18;7705:29;7698:40;7337:407;;;;;:::o;7749:523::-;7824:6;7832;7885:2;7873:9;7864:7;7860:23;7856:32;7853:52;;;7901:1;7898;7891:12;7853:52;7941:9;7928:23;7974:18;7966:6;7963:30;7960:50;;;8006:1;8003;7996:12;7960:50;8029:22;;8082:4;8074:13;;8070:27;-1:-1:-1;8060:55:1;;8111:1;8108;8101:12;8060:55;8134:76;8202:7;8197:2;8184:16;8177:4;8173:2;8169:13;8134:76;:::i;:::-;8124:86;;;8229:37;8260:4;8249:9;8245:20;8229:37;:::i;8277:221::-;8319:5;8372:3;8365:4;8357:6;8353:17;8349:27;8339:55;;8390:1;8387;8380:12;8339:55;8412:80;8488:3;8479:6;8466:20;8459:4;8451:6;8447:17;8412:80;:::i;8503:537::-;8598:6;8606;8614;8622;8675:3;8663:9;8654:7;8650:23;8646:33;8643:53;;;8692:1;8689;8682:12;8643:53;8715:29;8734:9;8715:29;:::i;:::-;8705:39;;8763:38;8797:2;8786:9;8782:18;8763:38;:::i;:::-;8753:48;;8848:2;8837:9;8833:18;8820:32;8810:42;;8903:2;8892:9;8888:18;8875:32;8930:18;8922:6;8919:30;8916:50;;;8962:1;8959;8952:12;8916:50;8985:49;9026:7;9017:6;9006:9;9002:22;8985:49;:::i;:::-;8975:59;;;8503:537;;;;;;;:::o;9045:635::-;9156:6;9164;9172;9225:2;9213:9;9204:7;9200:23;9196:32;9193:52;;;9241:1;9238;9231:12;9193:52;9281:9;9268:23;9310:18;9351:2;9343:6;9340:14;9337:34;;;9367:1;9364;9357:12;9337:34;9390:61;9443:7;9434:6;9423:9;9419:22;9390:61;:::i;:::-;9380:71;;9498:2;9487:9;9483:18;9470:32;9460:42;;9555:2;9544:9;9540:18;9527:32;9511:48;;9584:2;9574:8;9571:16;9568:36;;;9600:1;9597;9590:12;9568:36;;9623:51;9666:7;9655:8;9644:9;9640:24;9623:51;:::i;:::-;9613:61;;;9045:635;;;;;:::o;9685:388::-;9762:6;9770;9823:2;9811:9;9802:7;9798:23;9794:32;9791:52;;;9839:1;9836;9829:12;9791:52;9875:9;9862:23;9852:33;;9936:2;9925:9;9921:18;9908:32;9963:18;9955:6;9952:30;9949:50;;;9995:1;9992;9985:12;9949:50;10018:49;10059:7;10050:6;10039:9;10035:22;10018:49;:::i;10078:260::-;10146:6;10154;10207:2;10195:9;10186:7;10182:23;10178:32;10175:52;;;10223:1;10220;10213:12;10175:52;10246:29;10265:9;10246:29;:::i;:::-;10236:39;;10294:38;10328:2;10317:9;10313:18;10294:38;:::i;10343:343::-;10545:2;10527:21;;;10584:2;10564:18;;;10557:30;-1:-1:-1;;;10618:2:1;10603:18;;10596:49;10677:2;10662:18;;10343:343::o;10691:380::-;10770:1;10766:12;;;;10813;;;10834:61;;10888:4;10880:6;10876:17;10866:27;;10834:61;10941:2;10933:6;10930:14;10910:18;10907:38;10904:161;;;10987:10;10982:3;10978:20;10975:1;10968:31;11022:4;11019:1;11012:15;11050:4;11047:1;11040:15;10904:161;;10691:380;;;:::o;11419:724::-;11691:26;11687:31;11678:6;11674:2;11670:15;11666:53;11661:3;11654:66;11636:3;11751:2;11746:3;11742:12;11783:6;11777:13;11832:4;11871:2;11863:6;11859:15;11892:1;11902:175;11916:6;11913:1;11910:13;11902:175;;;11979:13;;11965:28;;12015:14;;;;12052:15;;;;11938:1;11931:9;11902:175;;;-1:-1:-1;;12086:21:1;;;-1:-1:-1;12123:14:1;;;;;-1:-1:-1;;;;11419:724:1:o;13180:127::-;13241:10;13236:3;13232:20;13229:1;13222:31;13272:4;13269:1;13262:15;13296:4;13293:1;13286:15;13312:168;13352:7;13418:1;13414;13410:6;13406:14;13403:1;13400:21;13395:1;13388:9;13381:17;13377:45;13374:71;;;13425:18;;:::i;:::-;-1:-1:-1;13465:9:1;;13312:168::o;13485:217::-;13525:1;13551;13541:132;;13595:10;13590:3;13586:20;13583:1;13576:31;13630:4;13627:1;13620:15;13658:4;13655:1;13648:15;13541:132;-1:-1:-1;13687:9:1;;13485:217::o;13707:125::-;13747:4;13775:1;13772;13769:8;13766:34;;;13780:18;;:::i;:::-;-1:-1:-1;13817:9:1;;13707:125::o;14397:249::-;14466:6;14519:2;14507:9;14498:7;14494:23;14490:32;14487:52;;;14535:1;14532;14525:12;14487:52;14567:9;14561:16;14586:30;14610:5;14586:30;:::i;15338:128::-;15378:3;15409:1;15405:6;15402:1;15399:13;15396:39;;;15415:18;;:::i;:::-;-1:-1:-1;15451:9:1;;15338:128::o;15819:127::-;15880:10;15875:3;15871:20;15868:1;15861:31;15911:4;15908:1;15901:15;15935:4;15932:1;15925:15;15951:135;15990:3;-1:-1:-1;;16011:17:1;;16008:43;;;16031:18;;:::i;:::-;-1:-1:-1;16078:1:1;16067:13;;15951:135::o;16091:489::-;-1:-1:-1;;;;;16360:15:1;;;16342:34;;16412:15;;16407:2;16392:18;;16385:43;16459:2;16444:18;;16437:34;;;16507:3;16502:2;16487:18;;16480:31;;;16285:4;;16528:46;;16554:19;;16546:6;16528:46;:::i;:::-;16520:54;16091:489;-1:-1:-1;;;;;;16091:489:1:o;17053:973::-;17138:12;;17103:3;;17193:1;17213:18;;;;17266;;;;17293:61;;17347:4;17339:6;17335:17;17325:27;;17293:61;17373:2;17421;17413:6;17410:14;17390:18;17387:38;17384:161;;;17467:10;17462:3;17458:20;17455:1;17448:31;17502:4;17499:1;17492:15;17530:4;17527:1;17520:15;17384:161;17561:18;17588:104;;;;17706:1;17701:319;;;;17554:466;;17588:104;-1:-1:-1;;17621:24:1;;17609:37;;17666:16;;;;-1:-1:-1;17588:104:1;;17701:319;17000:1;16993:14;;;17037:4;17024:18;;17795:1;17809:165;17823:6;17820:1;17817:13;17809:165;;;17901:14;;17888:11;;;17881:35;17944:16;;;;17838:10;;17809:165;;;17813:3;;18003:6;17998:3;17994:16;17987:23;;17554:466;;;;;;;17053:973;;;;:::o;18031:376::-;18207:3;18235:38;18269:3;18261:6;18235:38;:::i;:::-;18302:6;18296:13;18318:52;18363:6;18359:2;18352:4;18344:6;18340:17;18318:52;:::i;:::-;18386:15;;18031:376;-1:-1:-1;;;;18031:376:1:o;18412:543::-;18689:3;18717:38;18751:3;18743:6;18717:38;:::i;:::-;18784:6;18778:13;18800:52;18845:6;18841:2;18834:4;18826:6;18822:17;18800:52;:::i;:::-;-1:-1:-1;;;18874:15:1;;18898:22;;;18947:1;18936:13;;18412:543;-1:-1:-1;;;;18412:543:1:o;21066:204::-;21104:3;21140:4;21137:1;21133:12;21172:4;21169:1;21165:12;21207:3;21201:4;21197:14;21192:3;21189:23;21186:49;;;21215:18;;:::i;:::-;21251:13;;21066:204;-1:-1:-1;;;21066:204:1:o
Swarm Source
ipfs://c10f8f869b25712b007cd1ae5d7cb1fa6f1a74a10425b019a72406599276e16d
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.