Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
1,058 VALPASS
Holders
809
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 VALPASSLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ValoremAccessPass
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // Valorem Labs Inc. (c) 2023. pragma solidity 0.8.18; import {ERC721} from "solmate/tokens/ERC721.sol"; import "./interfaces/IERC2981.sol"; import {Owned} from "solmate/auth/Owned.sol"; import "./Utils.sol"; /*////////////////////////////////////////////////////////////////////////////////////////////////// // // // $$$$$$$$$$ // // $$$$$$$$ _| // // $$$$$$ $$$$$$$$$$ _| _| _|_|_| _| _|_| _| _|_| _|_| _|_|_| _|_| // // $$ $$$$$$$$ _| _| _| _| _| _| _| _|_| _|_|_|_| _| _| _| // // $$$$$$$$$$ $$$$$$ _| _| _| _| _| _| _| _| _| _| _| _| // // $$$$$$$$ $$ _| _|_|_| _| _|_| _| _|_|_| _| _| _| // // $$$$$$ // // $$ // // // //////////////////////////////////////////////////////////////////////////////////////////////////*/ /** * @title Valorem Access Pass NFT * @author megsdevs * @author neodaoist * @author 0xAlcibiades * @notice The inaugural Valorem Access Pass NFT. */ contract ValoremAccessPass is ERC721, IERC2981, Owned { /*////////////////////////////////////////////////////////////// // Errors //////////////////////////////////////////////////////////////*/ /// @notice Cannot mint more than the max supply. /// @param attemptedQuantity The amount of quantity attempting to be minted. /// @param maxSupply The allowed max supply that can be minted. error MintQuantityCannotExceedMaxSupply(uint256 attemptedQuantity, uint256 maxSupply); /// @notice Cannot request tokenUri for an invalid token. /// @param tokenId The requested tokenId. error InvalidToken(uint256 tokenId); /*////////////////////////////////////////////////////////////// // Immutable/Constant - Public //////////////////////////////////////////////////////////////*/ /// @notice Royalty percentage, expressed in basis points. uint16 public constant ROYALTY_PERCENTAGE_IN_BPS = 500; /// @notice Maximum number of mintable passes. uint256 public immutable maxSupply; /*////////////////////////////////////////////////////////////// // State Variables - Public //////////////////////////////////////////////////////////////*/ /// @notice Total number of minted passes. uint256 public totalSupply; /*////////////////////////////////////////////////////////////// // Constructor //////////////////////////////////////////////////////////////*/ /// @notice Sets supply. /// @param _maxSupply Maximum number of mintable passes. constructor(address _owner, uint256 _maxSupply) ERC721("Valorem Access Pass", "VALPASS") Owned(_owner) { maxSupply = _maxSupply; } /*////////////////////////////////////////////////////////////// // Mint Logic //////////////////////////////////////////////////////////////*/ /// @notice Mints access passes to N arbitrary addresses, one per supplied address. /// @param recipients Recipients of the minted passes. function airdropTo(address[] calldata recipients) external onlyOwner { unchecked { uint256 _totalSupply = totalSupply; uint256 _endingSupply = _totalSupply + recipients.length; if (_endingSupply > maxSupply) { revert MintQuantityCannotExceedMaxSupply(_endingSupply, maxSupply); } for (uint256 i = 0; i < recipients.length; i++) { _mint(recipients[i], ++_totalSupply); } totalSupply = _endingSupply; } } /*////////////////////////////////////////////////////////////// // URI Logic //////////////////////////////////////////////////////////////*/ /// @notice Returns storefront-level metadata. function contractURI() public pure returns (string memory) { /* solhint-disable quotes */ return string( abi.encodePacked( "data:application/json;base64,", Utils.encode( bytes( string( abi.encodePacked( '{"name": "Valorem Access Pass", ', '"description": "The Valorem Access Pass NFT grants perennial early access to Valorem features.", ', '"image": "ipfs://bafkreiacwd3ok66tvo5gxj24fs7tq5h5asxwb6uzqgcfd4cpjajl2v6s7e", ', '"external_link": "https://valorem.xyz/"}' ) ) ) ) ) ); } /// @notice Returns a token's URI if it has been minted. /// @param tokenId The ID of the token to get the URI for. function tokenURI(uint256 tokenId) public view override returns (string memory) { if (tokenId == 0 || _ownerOf[tokenId] == address(0)) { revert InvalidToken(tokenId); } /* solhint-disable quotes */ return string( abi.encodePacked( "data:application/json;base64,", Utils.encode( bytes( string( abi.encodePacked( '{"name": "Valorem Access Pass", ', '"description": "The Valorem Access Pass NFT grants perennial early access to Valorem features.", ', '"image": "ipfs://bafybeig6urghfrb3be7tepd4jp44pjm6fnvnc2yeba5f46x6kcqhjvln2y", ', '"animation_url": "ipfs://bafybeifd4w76c4z4o44omf5oj7fnajp36suhh3pnyplt2lhk2k576qghxa/Valorem%20Access%20Pass%20NFT%20animation%20(final).mp4", ', '"external_url": "https://valorem.xyz/", ', '"background_color": "#151B50", ', '"content": {"mimeType": "video/mp4", ' '"hash": "bafybeiftiyr3tw2v256wvwu3kogjo7vr53qg7oukj4n3c2ifwo7g3zl3wq", ', '"uri": "ipfs://bafybeifd4w76c4z4o44omf5oj7fnajp36suhh3pnyplt2lhk2k576qghxa/Valorem%20Access%20Pass%20NFT%20animation%20(final).mp4"}}' ) ) ) ) ) ); } /*////////////////////////////////////////////////////////////// // Royalty Logic //////////////////////////////////////////////////////////////*/ function royaltyInfo(uint256, /*_tokenId*/ uint256 _salePrice) public view virtual override returns (address, uint256) { uint256 royaltyAmount = (_salePrice * ROYALTY_PERCENTAGE_IN_BPS) / 10_000; return (owner, royaltyAmount); } function supportsInterface(bytes4 interfaceId) public view override returns (bool) { return interfaceId == type(IERC2981).interfaceId || super.supportsInterface(interfaceId); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Modern, minimalist, and gas efficient ERC-721 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol) 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); /*////////////////////////////////////////////////////////////// METADATA STORAGE/LOGIC //////////////////////////////////////////////////////////////*/ string public name; string public symbol; function tokenURI(uint256 id) public view virtual returns (string memory); /*////////////////////////////////////////////////////////////// ERC721 BALANCE/OWNER STORAGE //////////////////////////////////////////////////////////////*/ mapping(uint256 => address) internal _ownerOf; mapping(address => uint256) internal _balanceOf; function ownerOf(uint256 id) public view virtual returns (address owner) { require((owner = _ownerOf[id]) != address(0), "NOT_MINTED"); } function balanceOf(address owner) public view virtual returns (uint256) { require(owner != address(0), "ZERO_ADDRESS"); return _balanceOf[owner]; } /*////////////////////////////////////////////////////////////// ERC721 APPROVAL STORAGE //////////////////////////////////////////////////////////////*/ 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 || isApprovedForAll[from][msg.sender] || msg.sender == getApproved[id], "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 calldata 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 view 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 _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 { _balanceOf[to]++; } _ownerOf[id] = to; emit Transfer(address(0), to, id); } function _burn(uint256 id) internal virtual { address owner = _ownerOf[id]; require(owner != address(0), "NOT_MINTED"); // Ownership check above ensures no underflow. unchecked { _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/transmissions11/solmate/blob/main/src/tokens/ERC721.sol) abstract contract ERC721TokenReceiver { function onERC721Received( address, address, uint256, bytes calldata ) external virtual returns (bytes4) { return ERC721TokenReceiver.onERC721Received.selector; } }
// SPDX-License-Identifier: MIT // Valorem Labs Inc. (c) 2023. pragma solidity 0.8.18; interface IERC2981 { function royaltyInfo(uint256 tokenId, uint256 salePrice) external view returns (address receiver, uint256 royaltyAmount); }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Simple single owner authorization mixin. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol) abstract contract Owned { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event OwnershipTransferred(address indexed user, address indexed newOwner); /*////////////////////////////////////////////////////////////// OWNERSHIP STORAGE //////////////////////////////////////////////////////////////*/ address public owner; modifier onlyOwner() virtual { require(msg.sender == owner, "UNAUTHORIZED"); _; } /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor(address _owner) { owner = _owner; emit OwnershipTransferred(address(0), _owner); } /*////////////////////////////////////////////////////////////// OWNERSHIP LOGIC //////////////////////////////////////////////////////////////*/ function transferOwnership(address newOwner) public virtual onlyOwner { owner = newOwner; emit OwnershipTransferred(msg.sender, newOwner); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; // [MIT License] // @author Brecht Devos <[email protected]> // @notice Encodes some bytes to the base64 representation library Utils { bytes internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; bytes16 private constant _SYMBOLS = "0123456789abcdef"; function encode(bytes memory data) internal pure returns (string memory) { uint256 len = data.length; if (len == 0) return ""; // multiply by 4/3 rounded up uint256 encodedLen = 4 * ((len + 2) / 3); // Add some extra buffer at the end bytes memory result = new bytes(encodedLen + 32); bytes memory table = TABLE; assembly { let tablePtr := add(table, 1) let resultPtr := add(result, 32) for { let i := 0 } lt(i, len) {} { i := add(i, 3) let input := and(mload(add(data, i)), 0xffffff) let out := mload(add(tablePtr, and(shr(18, input), 0x3F))) out := shl(8, out) out := add(out, and(mload(add(tablePtr, and(shr(12, input), 0x3F))), 0xFF)) out := shl(8, out) out := add(out, and(mload(add(tablePtr, and(shr(6, input), 0x3F))), 0xFF)) out := shl(8, out) out := add(out, and(mload(add(tablePtr, and(input, 0x3F))), 0xFF)) out := shl(224, out) mstore(resultPtr, out) resultPtr := add(resultPtr, 4) } switch mod(len, 3) case 1 { mstore(sub(resultPtr, 2), shl(240, 0x3d3d)) } case 2 { mstore(sub(resultPtr, 1), shl(248, 0x3d)) } mstore(result, encodedLen) } return string(result); } }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/contracts/", "solmate/=lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_maxSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"InvalidToken","type":"error"},{"inputs":[{"internalType":"uint256","name":"attemptedQuantity","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"MintQuantityCannotExceedMaxSupply","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":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"ROYALTY_PERCENTAGE_IN_BPS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients","type":"address[]"}],"name":"airdropTo","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":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"_salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"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":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60a06040523480156200001157600080fd5b5060405162001b1638038062001b16833981016040819052620000349162000104565b816040518060400160405280601381526020017f56616c6f72656d204163636573732050617373000000000000000000000000008152506040518060400160405280600781526020016656414c5041535360c81b81525081600090816200009c9190620001e5565b506001620000ab8282620001e5565b5050600680546001600160a01b0319166001600160a01b0384169081179091556040519091506000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060805250620002b1565b600080604083850312156200011857600080fd5b82516001600160a01b03811681146200013057600080fd5b6020939093015192949293505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016b57607f821691505b6020821081036200018c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001e057600081815260208120601f850160051c81016020861015620001bb5750805b601f850160051c820191505b81811015620001dc57828155600101620001c7565b5050505b505050565b81516001600160401b0381111562000201576200020162000140565b620002198162000212845462000156565b8462000192565b602080601f831160018114620002515760008415620002385750858301515b600019600386901b1c1916600185901b178555620001dc565b600085815260208120601f198616915b82811015620002825788860151825594840194600190910190840162000261565b5085821015620002a15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805161183b620002db600039600081816102d001528181610743015261077e015261183b6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063c87b56dd1161007c578063c87b56dd146102b8578063d5abeb01146102cb578063e8a3d485146102f2578063e985e9c5146102fa578063f2fde38b14610328578063f6a9e0051461033b57600080fd5b806370a08231146102645780638da5cb5b1461027757806395d89b411461028a578063a22cb46514610292578063b88d4fde146102a557600080fd5b806323b872dd116100ff57806323b872dd146101e65780632a55205a146101f95780633ad0e6311461022b57806342842e0e1461023e5780636352211e1461025157600080fd5b806301ffc9a71461013c57806306fdde0314610164578063081812fc14610179578063095ea7b3146101ba57806318160ddd146101cf575b600080fd5b61014f61014a366004610f49565b610357565b60405190151581526020015b60405180910390f35b61016c610382565b60405161015b9190610f91565b6101a2610187366004610fc4565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b6101cd6101c8366004610ff4565b610410565b005b6101d860075481565b60405190815260200161015b565b6101cd6101f436600461101e565b6104f7565b61020c61020736600461105a565b6106be565b604080516001600160a01b03909316835260208301919091520161015b565b6101cd61023936600461107c565b6106f2565b6101cd61024c36600461101e565b6107fc565b6101a261025f366004610fc4565b6108f4565b6101d86102723660046110f1565b61094b565b6006546101a2906001600160a01b031681565b61016c6109ae565b6101cd6102a036600461110c565b6109bb565b6101cd6102b3366004611148565b610a27565b61016c6102c6366004610fc4565b610b0f565b6101d87f000000000000000000000000000000000000000000000000000000000000000081565b61016c610ba0565b61014f6103083660046111e3565b600560209081526000928352604080842090915290825290205460ff1681565b6101cd6103363660046110f1565b610bd8565b6103446101f481565b60405161ffff909116815260200161015b565b60006001600160e01b0319821663152a902d60e11b148061037c575061037c82610c6d565b92915050565b6000805461038f90611216565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90611216565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061045957506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b61049b5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b0384811691161461054d5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610492565b6001600160a01b0382166105975760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610492565b336001600160a01b03841614806105d157506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806105f257506000818152600460205260409020546001600160a01b031633145b61062f5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610492565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080806127106106d16101f486611266565b6106db919061127d565b6006546001600160a01b0316969095509350505050565b6006546001600160a01b0316331461073b5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610492565b6007548181017f00000000000000000000000000000000000000000000000000000000000000008111156107aa5760405162d9f6af60e41b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006024820152604401610492565b60005b838110156107f3576107eb8585838181106107ca576107ca61129f565b90506020020160208101906107df91906110f1565b84600101945084610cbb565b6001016107ad565b50600755505050565b6108078383836104f7565b6001600160a01b0382163b15806108b05750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a491906112b5565b6001600160e01b031916145b6108ef5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610492565b505050565b6000818152600260205260409020546001600160a01b0316806109465760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610492565b919050565b60006001600160a01b0382166109925760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610492565b506001600160a01b031660009081526003602052604090205490565b6001805461038f90611216565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610a328585856104f7565b6001600160a01b0384163b1580610ac95750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610a7a9033908a908990899089906004016112d2565b6020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd91906112b5565b6001600160e01b031916145b610b085760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610492565b5050505050565b6060811580610b3357506000828152600260205260409020546001600160a01b0316155b15610b545760405163124bad6360e31b815260048101839052602401610492565b610b7a604051602001610b66906113a5565b604051602081830303815290604052610dc6565b604051602001610b8a9190611685565b6040516020818303038152906040529050919050565b6060610bb4604051602001610b66906116ca565b604051602001610bc49190611685565b604051602081830303815290604052905090565b6006546001600160a01b03163314610c215760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610492565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60006301ffc9a760e01b6001600160e01b031983161480610c9e57506380ac58cd60e01b6001600160e01b03198316145b8061037c5750506001600160e01b031916635b5e139f60e01b1490565b6001600160a01b038216610d055760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610492565b6000818152600260205260409020546001600160a01b031615610d5b5760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b6044820152606401610492565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b80516060906000819003610dea575050604080516020810190915260008152919050565b60006003610df983600261179c565b610e03919061127d565b610e0e906004611266565b90506000610e1d82602061179c565b67ffffffffffffffff811115610e3557610e356117af565b6040519080825280601f01601f191660200182016040528015610e5f576020820181803683370190505b50905060006040518060600160405280604081526020016117c6604091399050600181016020830160005b86811015610eeb576003818a01810151603f601282901c8116860151600c83901c8216870151600684901c831688015192909316870151600891821b60ff94851601821b92841692909201901b91160160e01b835260049092019101610e8a565b506003860660018114610f055760028114610f1657610f22565b613d3d60f01b600119830152610f22565b603d60f81b6000198301525b505050918152949350505050565b6001600160e01b031981168114610f4657600080fd5b50565b600060208284031215610f5b57600080fd5b8135610f6681610f30565b9392505050565b60005b83811015610f88578181015183820152602001610f70565b50506000910152565b6020815260008251806020840152610fb0816040850160208701610f6d565b601f01601f19169190910160400192915050565b600060208284031215610fd657600080fd5b5035919050565b80356001600160a01b038116811461094657600080fd5b6000806040838503121561100757600080fd5b61101083610fdd565b946020939093013593505050565b60008060006060848603121561103357600080fd5b61103c84610fdd565b925061104a60208501610fdd565b9150604084013590509250925092565b6000806040838503121561106d57600080fd5b50508035926020909101359150565b6000806020838503121561108f57600080fd5b823567ffffffffffffffff808211156110a757600080fd5b818501915085601f8301126110bb57600080fd5b8135818111156110ca57600080fd5b8660208260051b85010111156110df57600080fd5b60209290920196919550909350505050565b60006020828403121561110357600080fd5b610f6682610fdd565b6000806040838503121561111f57600080fd5b61112883610fdd565b91506020830135801515811461113d57600080fd5b809150509250929050565b60008060008060006080868803121561116057600080fd5b61116986610fdd565b945061117760208701610fdd565b935060408601359250606086013567ffffffffffffffff8082111561119b57600080fd5b818801915088601f8301126111af57600080fd5b8135818111156111be57600080fd5b8960208285010111156111d057600080fd5b9699959850939650602001949392505050565b600080604083850312156111f657600080fd5b6111ff83610fdd565b915061120d60208401610fdd565b90509250929050565b600181811c9082168061122a57607f821691505b60208210810361124a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761037c5761037c611250565b60008261129a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156112c757600080fd5b8151610f6681610f30565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b7f226465736372697074696f6e223a20225468652056616c6f72656d204163636581527f73732050617373204e4654206772616e747320706572656e6e69616c2065617260208201527f6c792061636365737320746f2056616c6f72656d2066656174757265732e222c6040820152600160fd1b606082015260610190565b7f7b226e616d65223a202256616c6f72656d204163636573732050617373222c20815260006113d660208301611326565b7f22696d616765223a2022697066733a2f2f62616679626569673675726768667281527f623362653774657064346a703434706a6d36666e766e6332796562613566343660208201526e03c1b35b1b8b4353b3637193c91161608d1b60408201527f22616e696d6174696f6e5f75726c223a2022697066733a2f2f62616679626569604f8201527f66643477373663347a346f34346f6d66356f6a37666e616a7033367375686833606f8201527f706e79706c74326c686b326b35373671676878612f56616c6f72656d25323041608f8201527f6363657373253230506173732532304e4654253230616e696d6174696f6e253260af8201526e018143334b730b6149736b81a11161608d1b60cf8201527f2265787465726e616c5f75726c223a202268747470733a2f2f76616c6f72656d60de820152670173c3cbd179116160c51b60fe8201527f226261636b67726f756e645f636f6c6f72223a202223313531423530222c20006101068201527f22636f6e74656e74223a207b226d696d6554797065223a2022766964656f2f6d6101258201527f7034222c202268617368223a20226261667962656966746979723374773276326101458201527f353677767775336b6f676a6f37767235337167376f756b6a346e3363326966776101658201526b0379bb399bd3619bbb89116160a51b6101858201527f22757269223a2022697066733a2f2f6261667962656966643477373663347a346101918201527f6f34346f6d66356f6a37666e616a7033367375686833706e79706c74326c686b6101b18201527f326b35373671676878612f56616c6f72656d25323041636365737325323050616101d18201527f73732532304e4654253230616e696d6174696f6e2532302866696e616c292e6d6101f1820152647034227d7d60d81b6102118201526102168101610f66565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516116bd81601d850160208701610f6d565b91909101601d0192915050565b7f7b226e616d65223a202256616c6f72656d204163636573732050617373222c20815260006116fb60208301611326565b7f22696d616765223a2022697066733a2f2f6261666b72656961637764336f6b3681527f3674766f3567786a32346673377471356835617378776236757a71676366643460208201526e031b83530b536193b1b399bb291161608d1b60408201527f2265787465726e616c5f6c696e6b223a202268747470733a2f2f76616c6f7265604f820152676d2e78797a2f227d60c01b606f82015260770192915050565b8082018082111561037c5761037c611250565b634e487b7160e01b600052604160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212200f89f1b5538aef5e2cdbdd534eef4f76e732f3f27b227258c47044fb6b596b4364736f6c634300081200330000000000000000000000007bfb7451d5e937af1e098fe9574edf31b493e6cd0000000000000000000000000000000000000000000000000000000000000539
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b8578063c87b56dd1161007c578063c87b56dd146102b8578063d5abeb01146102cb578063e8a3d485146102f2578063e985e9c5146102fa578063f2fde38b14610328578063f6a9e0051461033b57600080fd5b806370a08231146102645780638da5cb5b1461027757806395d89b411461028a578063a22cb46514610292578063b88d4fde146102a557600080fd5b806323b872dd116100ff57806323b872dd146101e65780632a55205a146101f95780633ad0e6311461022b57806342842e0e1461023e5780636352211e1461025157600080fd5b806301ffc9a71461013c57806306fdde0314610164578063081812fc14610179578063095ea7b3146101ba57806318160ddd146101cf575b600080fd5b61014f61014a366004610f49565b610357565b60405190151581526020015b60405180910390f35b61016c610382565b60405161015b9190610f91565b6101a2610187366004610fc4565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b6101cd6101c8366004610ff4565b610410565b005b6101d860075481565b60405190815260200161015b565b6101cd6101f436600461101e565b6104f7565b61020c61020736600461105a565b6106be565b604080516001600160a01b03909316835260208301919091520161015b565b6101cd61023936600461107c565b6106f2565b6101cd61024c36600461101e565b6107fc565b6101a261025f366004610fc4565b6108f4565b6101d86102723660046110f1565b61094b565b6006546101a2906001600160a01b031681565b61016c6109ae565b6101cd6102a036600461110c565b6109bb565b6101cd6102b3366004611148565b610a27565b61016c6102c6366004610fc4565b610b0f565b6101d87f000000000000000000000000000000000000000000000000000000000000053981565b61016c610ba0565b61014f6103083660046111e3565b600560209081526000928352604080842090915290825290205460ff1681565b6101cd6103363660046110f1565b610bd8565b6103446101f481565b60405161ffff909116815260200161015b565b60006001600160e01b0319821663152a902d60e11b148061037c575061037c82610c6d565b92915050565b6000805461038f90611216565b80601f01602080910402602001604051908101604052809291908181526020018280546103bb90611216565b80156104085780601f106103dd57610100808354040283529160200191610408565b820191906000526020600020905b8154815290600101906020018083116103eb57829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b03163381148061045957506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b61049b5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600260205260409020546001600160a01b0384811691161461054d5760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b6044820152606401610492565b6001600160a01b0382166105975760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610492565b336001600160a01b03841614806105d157506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806105f257506000818152600460205260409020546001600160a01b031633145b61062f5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610492565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600080806127106106d16101f486611266565b6106db919061127d565b6006546001600160a01b0316969095509350505050565b6006546001600160a01b0316331461073b5760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610492565b6007548181017f00000000000000000000000000000000000000000000000000000000000005398111156107aa5760405162d9f6af60e41b8152600481018290527f00000000000000000000000000000000000000000000000000000000000005396024820152604401610492565b60005b838110156107f3576107eb8585838181106107ca576107ca61129f565b90506020020160208101906107df91906110f1565b84600101945084610cbb565b6001016107ad565b50600755505050565b6108078383836104f7565b6001600160a01b0382163b15806108b05750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610880573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a491906112b5565b6001600160e01b031916145b6108ef5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610492565b505050565b6000818152600260205260409020546001600160a01b0316806109465760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b6044820152606401610492565b919050565b60006001600160a01b0382166109925760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b6044820152606401610492565b506001600160a01b031660009081526003602052604090205490565b6001805461038f90611216565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610a328585856104f7565b6001600160a01b0384163b1580610ac95750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610a7a9033908a908990899089906004016112d2565b6020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd91906112b5565b6001600160e01b031916145b610b085760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b6044820152606401610492565b5050505050565b6060811580610b3357506000828152600260205260409020546001600160a01b0316155b15610b545760405163124bad6360e31b815260048101839052602401610492565b610b7a604051602001610b66906113a5565b604051602081830303815290604052610dc6565b604051602001610b8a9190611685565b6040516020818303038152906040529050919050565b6060610bb4604051602001610b66906116ca565b604051602001610bc49190611685565b604051602081830303815290604052905090565b6006546001600160a01b03163314610c215760405162461bcd60e51b815260206004820152600c60248201526b15539055551213d49256915160a21b6044820152606401610492565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60006301ffc9a760e01b6001600160e01b031983161480610c9e57506380ac58cd60e01b6001600160e01b03198316145b8061037c5750506001600160e01b031916635b5e139f60e01b1490565b6001600160a01b038216610d055760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b6044820152606401610492565b6000818152600260205260409020546001600160a01b031615610d5b5760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b6044820152606401610492565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b80516060906000819003610dea575050604080516020810190915260008152919050565b60006003610df983600261179c565b610e03919061127d565b610e0e906004611266565b90506000610e1d82602061179c565b67ffffffffffffffff811115610e3557610e356117af565b6040519080825280601f01601f191660200182016040528015610e5f576020820181803683370190505b50905060006040518060600160405280604081526020016117c6604091399050600181016020830160005b86811015610eeb576003818a01810151603f601282901c8116860151600c83901c8216870151600684901c831688015192909316870151600891821b60ff94851601821b92841692909201901b91160160e01b835260049092019101610e8a565b506003860660018114610f055760028114610f1657610f22565b613d3d60f01b600119830152610f22565b603d60f81b6000198301525b505050918152949350505050565b6001600160e01b031981168114610f4657600080fd5b50565b600060208284031215610f5b57600080fd5b8135610f6681610f30565b9392505050565b60005b83811015610f88578181015183820152602001610f70565b50506000910152565b6020815260008251806020840152610fb0816040850160208701610f6d565b601f01601f19169190910160400192915050565b600060208284031215610fd657600080fd5b5035919050565b80356001600160a01b038116811461094657600080fd5b6000806040838503121561100757600080fd5b61101083610fdd565b946020939093013593505050565b60008060006060848603121561103357600080fd5b61103c84610fdd565b925061104a60208501610fdd565b9150604084013590509250925092565b6000806040838503121561106d57600080fd5b50508035926020909101359150565b6000806020838503121561108f57600080fd5b823567ffffffffffffffff808211156110a757600080fd5b818501915085601f8301126110bb57600080fd5b8135818111156110ca57600080fd5b8660208260051b85010111156110df57600080fd5b60209290920196919550909350505050565b60006020828403121561110357600080fd5b610f6682610fdd565b6000806040838503121561111f57600080fd5b61112883610fdd565b91506020830135801515811461113d57600080fd5b809150509250929050565b60008060008060006080868803121561116057600080fd5b61116986610fdd565b945061117760208701610fdd565b935060408601359250606086013567ffffffffffffffff8082111561119b57600080fd5b818801915088601f8301126111af57600080fd5b8135818111156111be57600080fd5b8960208285010111156111d057600080fd5b9699959850939650602001949392505050565b600080604083850312156111f657600080fd5b6111ff83610fdd565b915061120d60208401610fdd565b90509250929050565b600181811c9082168061122a57607f821691505b60208210810361124a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761037c5761037c611250565b60008261129a57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156112c757600080fd5b8151610f6681610f30565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b7f226465736372697074696f6e223a20225468652056616c6f72656d204163636581527f73732050617373204e4654206772616e747320706572656e6e69616c2065617260208201527f6c792061636365737320746f2056616c6f72656d2066656174757265732e222c6040820152600160fd1b606082015260610190565b7f7b226e616d65223a202256616c6f72656d204163636573732050617373222c20815260006113d660208301611326565b7f22696d616765223a2022697066733a2f2f62616679626569673675726768667281527f623362653774657064346a703434706a6d36666e766e6332796562613566343660208201526e03c1b35b1b8b4353b3637193c91161608d1b60408201527f22616e696d6174696f6e5f75726c223a2022697066733a2f2f62616679626569604f8201527f66643477373663347a346f34346f6d66356f6a37666e616a7033367375686833606f8201527f706e79706c74326c686b326b35373671676878612f56616c6f72656d25323041608f8201527f6363657373253230506173732532304e4654253230616e696d6174696f6e253260af8201526e018143334b730b6149736b81a11161608d1b60cf8201527f2265787465726e616c5f75726c223a202268747470733a2f2f76616c6f72656d60de820152670173c3cbd179116160c51b60fe8201527f226261636b67726f756e645f636f6c6f72223a202223313531423530222c20006101068201527f22636f6e74656e74223a207b226d696d6554797065223a2022766964656f2f6d6101258201527f7034222c202268617368223a20226261667962656966746979723374773276326101458201527f353677767775336b6f676a6f37767235337167376f756b6a346e3363326966776101658201526b0379bb399bd3619bbb89116160a51b6101858201527f22757269223a2022697066733a2f2f6261667962656966643477373663347a346101918201527f6f34346f6d66356f6a37666e616a7033367375686833706e79706c74326c686b6101b18201527f326b35373671676878612f56616c6f72656d25323041636365737325323050616101d18201527f73732532304e4654253230616e696d6174696f6e2532302866696e616c292e6d6101f1820152647034227d7d60d81b6102118201526102168101610f66565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516116bd81601d850160208701610f6d565b91909101601d0192915050565b7f7b226e616d65223a202256616c6f72656d204163636573732050617373222c20815260006116fb60208301611326565b7f22696d616765223a2022697066733a2f2f6261666b72656961637764336f6b3681527f3674766f3567786a32346673377471356835617378776236757a71676366643460208201526e031b83530b536193b1b399bb291161608d1b60408201527f2265787465726e616c5f6c696e6b223a202268747470733a2f2f76616c6f7265604f820152676d2e78797a2f227d60c01b606f82015260770192915050565b8082018082111561037c5761037c611250565b634e487b7160e01b600052604160045260246000fdfe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa26469706673582212200f89f1b5538aef5e2cdbdd534eef4f76e732f3f27b227258c47044fb6b596b4364736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007bfb7451d5e937af1e098fe9574edf31b493e6cd0000000000000000000000000000000000000000000000000000000000000539
-----Decoded View---------------
Arg [0] : _owner (address): 0x7BFB7451d5E937af1E098fe9574edf31b493E6cD
Arg [1] : _maxSupply (uint256): 1337
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007bfb7451d5e937af1e098fe9574edf31b493e6cd
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000539
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.