Feature Tip: Add private address tag to any address under My Name Tag !
Overview
TokenID
12438
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Token
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 20000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; import "./Auth.sol"; import "./ERC1155.sol"; import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; // import "hardhat/console.sol"; struct TokenConfig { bool added; bool canMint; bool canBurn; uint256 supplyLimit; } contract Token is ERC1155, Pausable, Ownable, Auth { string public name; string public symbol; string public contractURI; string private _uri; mapping(address => bool) private _approvalAllowlist; uint16 public constant ROLE_ADD_FT = 1 << 0; uint16 public constant ROLE_MODIFY_FT = 1 << 1; uint16 public constant ROLE_MINT_FT = 1 << 2; uint16 public constant ROLE_MINT_NFT = 1 << 3; uint16 public constant ROLE_BATCH_MINT_NFT = 1 << 4; uint16 public constant ROLE_BURN_FT = 1 << 5; uint16 public constant ROLE_BURN_NFT = 1 << 6; uint16 public constant ROLE_BATCH_BURN_NFT = 1 << 7; uint16 public constant ROLE_REFRESH_METADATA = 1 << 8; uint16 public constant ROLE_SET_PAUSED = 1 << 9; uint16 public constant ROLE_BYPASS_PAUSE = 1 << 10; uint256 public constant FUNGIBLE_TOKEN_UPPER_BOUND = 10_000; mapping(uint256 => TokenConfig) private _added; mapping(uint256 => uint256) private _minted; mapping(uint256 => uint256) private _burned; constructor( string memory name_, string memory symbol_, string memory contractURI_, string memory uri_ ) ERC1155() { setMetadata(name_, symbol_, contractURI_, uri_); // Contract owner gets all roles by default. (11 roles, so the mask is 2^12 - 1 = 0b111_1111_1111.) setRole(msg.sender, (1 << 12) - 1); } function setMetadata( string memory name_, string memory symbol_, string memory contractURI_, string memory uri_ ) public onlyOwner { name = name_; symbol = symbol_; contractURI = contractURI_; _uri = uri_; } function uri( uint256 ) public view override(ERC1155) returns (string memory) { return _uri; } function setApprovalAllowlist( address operator, bool approved ) public onlyOwner { _approvalAllowlist[operator] = approved; } function isApprovedForAll( address owner, address operator ) public view override(ERC1155) returns (bool) { if (_approvalAllowlist[operator] == true) { return true; } return super.isApprovedForAll(owner, operator); } function setPaused(bool b) public requireRole(ROLE_SET_PAUSED) { if (b) { require(b && !paused(), "Contract is already paused"); _pause(); return; } require(!b && paused(), "Contract is not paused"); _unpause(); } function _isFungible(uint256 id) internal pure returns (bool) { return id < FUNGIBLE_TOKEN_UPPER_BOUND; } function _supplyLimit(uint256 id) internal view returns (uint256) { if (!_isFungible(id)) { return 1; } return _added[id].supplyLimit; } function supplyLimit(uint256 id) public view returns (uint256) { return _supplyLimit(id); } function totalSupply(uint256 id) public view returns (uint256) { return _minted[id] - _burned[id]; } function addFT( uint256 id, uint256 supplyLimit_, bool canMint_, bool canBurn_ ) public requireRole(ROLE_ADD_FT) { require(_added[id].added == false, "Token already added."); _added[id] = TokenConfig(true, canMint_, canBurn_, supplyLimit_); emit TransferSingle(_msgSender(), address(0), address(0), id, 0); } function modifyFT( uint256 id, uint256 supplyLimit_, bool canMint_, bool canBurn_ ) public requireRole(ROLE_MODIFY_FT) { require(_added[id].added == true, "Token not added."); _added[id] = TokenConfig(true, canMint_, canBurn_, supplyLimit_); } function mintFT( address to, uint256 tokenID, uint256 quantity ) public requireRole(ROLE_MINT_FT) { require(_isFungible(tokenID), "Token is not fungible."); require(_added[tokenID].added, "Token type not added."); require(_added[tokenID].canMint, "Token cannot be minted."); require( supplyLimit(tokenID) == 0 || (_minted[tokenID] + quantity <= supplyLimit(tokenID)), "Mint would exceed supply limit." ); _mint(to, tokenID, quantity, ""); _minted[tokenID] += quantity; } function mintNFT( address to, uint256 tokenID ) public requireRole(ROLE_MINT_NFT) { require(!_isFungible(tokenID), "Token is fungible."); require(_minted[tokenID] == 0, "Token is already minted."); _minted[tokenID]++; _mint(to, tokenID, 1, ""); } function batchMintNFT( address to, uint256[] calldata ids ) public requireRole(ROLE_BATCH_MINT_NFT) { for (uint256 i = 0; i < ids.length; i++) { uint256 id = ids[i]; require(!_isFungible(id), "Token is fungible."); require(_minted[id] == 0, "Token is already minted."); } for (uint256 i = 0; i < ids.length; i++) { uint256 id = ids[i]; _minted[id]++; _mint(to, id, 1, ""); } } function burnFT( address owner, uint256 tokenID, uint256 quantity ) public requireRole(ROLE_BURN_FT) { require(_isFungible(tokenID), "Token is not fungible."); require(_added[tokenID].added, "Token type not added."); require(_added[tokenID].canBurn, "Token cannot be burned."); _burn(owner, tokenID, quantity); } function burnNFT( address owner, uint256 tokenID ) public requireRole(ROLE_BURN_NFT) { require(!_isFungible(tokenID), "Token is fungible."); require(_minted[tokenID] == 1, "Token is not minted."); _burned[tokenID]++; _burn(owner, tokenID, 1); } function batchBurnNFT( address owner, uint256[] calldata ids ) public requireRole(ROLE_BATCH_BURN_NFT) { for (uint256 i = 0; i < ids.length; i++) { uint256 id = ids[i]; require(!_isFungible(id), "Token is fungible."); require(_minted[id] == 1, "Token is not minted."); } for (uint256 i = 0; i < ids.length; i++) { uint256 id = ids[i]; _burned[id]++; _burn(owner, id, 1); } } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) public override(ERC1155) { if (paused()) { if (!_hasRole(_msgSender(), ROLE_BYPASS_PAUSE)) { revert("Token is paused"); } } return super.safeTransferFrom(from, to, id, amount, data); } function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) public override(ERC1155) { if (paused()) { if (!_hasRole(_msgSender(), ROLE_BYPASS_PAUSE)) { revert("Token is paused"); } } return super.safeBatchTransferFrom(from, to, ids, amounts, data); } event MetadataUpdate(uint256 _tokenId); event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId); function updateMetadata( uint256 id ) public requireRole(ROLE_REFRESH_METADATA) { emit MetadataUpdate(id); } function updateAllMetadata() public requireRole(ROLE_REFRESH_METADATA) { emit BatchMetadataUpdate(0, type(uint256).max); } function setRole(address operator, uint16 mask) public onlyOwner { _setRole(operator, mask); } function hasRole(address operator, uint16 role) public view returns (bool) { return _hasRole(operator, role); } function _repeat( uint256 value, uint256 length ) private pure returns (uint256[] memory) { uint256[] memory array = new uint256[](length); for (uint256 i = 0; i < length; i++) { array[i] = value; } return array; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { require(!paused(), "Pausable: paused"); } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { require(paused(), "Pausable: not paused"); } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.9; import "@openzeppelin/contracts/utils/Context.sol"; contract Auth is Context { error NotAuthorized(uint16 req, address sender); mapping(address => uint16) _roles; modifier requireRole(uint16 req) { if (!_hasRole(_msgSender(), req)) { revert NotAuthorized(req, _msgSender()); } _; } function _setRole(address operator, uint16 mask) internal virtual { _roles[operator] = mask; } function _hasRole( address operator, uint16 role ) internal view virtual returns (bool) { return _roles[operator] & role == role; } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Minimalist and gas efficient standard ERC1155 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event TransferSingle( address indexed operator, address indexed from, address indexed to, uint256 id, uint256 amount ); event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] amounts ); event ApprovalForAll( address indexed owner, address indexed operator, bool approved ); event URI(string value, uint256 indexed id); /*////////////////////////////////////////////////////////////// ERC1155 STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public _isApprovedForAll; /*////////////////////////////////////////////////////////////// METADATA LOGIC //////////////////////////////////////////////////////////////*/ function uri(uint256 id) public view virtual returns (string memory); /*////////////////////////////////////////////////////////////// ERC1155 LOGIC //////////////////////////////////////////////////////////////*/ function isApprovedForAll( address owner, address operator ) public view virtual returns (bool) { return _isApprovedForAll[owner][operator]; } function setApprovalForAll(address operator, bool approved) public virtual { _isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) public virtual { require( msg.sender == from || _isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED" ); balanceOf[from][id] -= amount; balanceOf[to][id] += amount; emit TransferSingle(msg.sender, from, to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received( msg.sender, from, id, amount, data ) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) public virtual { require(ids.length == amounts.length, "LENGTH_MISMATCH"); require( msg.sender == from || _isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED" ); // Storing these outside the loop saves ~15 gas per iteration. uint256 id; uint256 amount; for (uint256 i = 0; i < ids.length; ) { id = ids[i]; amount = amounts[i]; balanceOf[from][id] -= amount; balanceOf[to][id] += amount; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived( msg.sender, from, ids, amounts, data ) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function balanceOfBatch( address[] calldata owners, uint256[] calldata ids ) public view virtual returns (uint256[] memory balances) { require(owners.length == ids.length, "LENGTH_MISMATCH"); balances = new uint256[](owners.length); // Unchecked because the only math done is incrementing // the array index counter which cannot possibly overflow. unchecked { for (uint256 i = 0; i < owners.length; ++i) { balances[i] = balanceOf[owners[i]][ids[i]]; } } } /*////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface( bytes4 interfaceId ) public view virtual returns (bool) { return interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155 interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint( address to, uint256 id, uint256 amount, bytes memory data ) internal virtual { balanceOf[to][id] += amount; emit TransferSingle(msg.sender, address(0), to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received( msg.sender, address(0), id, amount, data ) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function _batchMint( address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[to][ids[i]] += amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, address(0), to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived( msg.sender, address(0), ids, amounts, data ) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function _batchBurn( address from, uint256[] memory ids, uint256[] memory amounts ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[from][ids[i]] -= amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, address(0), ids, amounts); } function _burn(address from, uint256 id, uint256 amount) internal virtual { balanceOf[from][id] -= amount; emit TransferSingle(msg.sender, from, address(0), id, amount); } } /// @notice A generic interface for a contract which properly accepts ERC1155 tokens. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155TokenReceiver { function onERC1155Received( address, address, uint256, uint256, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] calldata, uint256[] calldata, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155BatchReceived.selector; } }
{ "optimizer": { "enabled": true, "runs": 20000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"contractURI_","type":"string"},{"internalType":"string","name":"uri_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint16","name":"req","type":"uint16"},{"internalType":"address","name":"sender","type":"address"}],"name":"NotAuthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_toTokenId","type":"uint256"}],"name":"BatchMetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"MetadataUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"FUNGIBLE_TOKEN_UPPER_BOUND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_ADD_FT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_BATCH_BURN_NFT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_BATCH_MINT_NFT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_BURN_FT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_BURN_NFT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_BYPASS_PAUSE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_MINT_FT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_MINT_NFT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_MODIFY_FT","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_REFRESH_METADATA","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROLE_SET_PAUSED","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"supplyLimit_","type":"uint256"},{"internalType":"bool","name":"canMint_","type":"bool"},{"internalType":"bool","name":"canBurn_","type":"bool"}],"name":"addFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"batchBurnNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"batchMintNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"burnFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"burnNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"role","type":"uint16"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mintFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenID","type":"uint256"}],"name":"mintNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"supplyLimit_","type":"uint256"},{"internalType":"bool","name":"canMint_","type":"bool"},{"internalType":"bool","name":"canBurn_","type":"bool"}],"name":"modifyFT","outputs":[],"stateMutability":"nonpayable","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":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","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":"uint256","name":"amount","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":"setApprovalAllowlist","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":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"string","name":"contractURI_","type":"string"},{"internalType":"string","name":"uri_","type":"string"}],"name":"setMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"b","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint16","name":"mask","type":"uint16"}],"name":"setRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"supplyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"id","type":"uint256"}],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateAllMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"updateMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620036e2380380620036e2833981016040819052620000349162000278565b6002805460ff1916905562000049336200006f565b6200005784848484620000c9565b6200006533610fff62000115565b505050506200048c565b600280546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b620000d36200014c565b6004620000e18582620003c0565b506005620000f08482620003c0565b506006620000ff8382620003c0565b5060076200010e8282620003c0565b5050505050565b6200011f6200014c565b6001600160a01b0382166000908152600360205260409020805461ffff831661ffff199091161790555050565b6002546001600160a01b03610100909104163314620001b15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001db57600080fd5b81516001600160401b0380821115620001f857620001f8620001b3565b604051601f8301601f19908116603f01168101908282118183101715620002235762000223620001b3565b816040528381526020925086838588010111156200024057600080fd5b600091505b8382101562000264578582018301518183018401529082019062000245565b600093810190920192909252949350505050565b600080600080608085870312156200028f57600080fd5b84516001600160401b0380821115620002a757600080fd5b620002b588838901620001c9565b95506020870151915080821115620002cc57600080fd5b620002da88838901620001c9565b94506040870151915080821115620002f157600080fd5b620002ff88838901620001c9565b935060608701519150808211156200031657600080fd5b506200032587828801620001c9565b91505092959194509250565b600181811c908216806200034657607f821691505b6020821081036200036757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003bb57600081815260208120601f850160051c81016020861015620003965750805b601f850160051c820191505b81811015620003b757828155600101620003a2565b5050505b505050565b81516001600160401b03811115620003dc57620003dc620001b3565b620003f481620003ed845462000331565b846200036d565b602080601f8311600181146200042c5760008415620004135750858301515b600019600386901b1c1916600185901b178555620003b7565b600085815260208120601f198616915b828110156200045d578886015182559484019460019091019084016200043c565b50858210156200047c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613246806200049c6000396000f3fe608060405234801561001057600080fd5b50600436106102fe5760003560e01c80638da5cb5b1161019c578063de34ff35116100ee578063f0edeaff11610097578063f462a4dc11610071578063f462a4dc14610634578063ff4439c71461063c578063ffa3b59a1461064557600080fd5b8063f0edeaff146105fb578063f242432a1461060e578063f2fde38b1461062157600080fd5b8063ef5d0f7f116100c8578063ef5d0f7f146105d7578063efec9b57146105e0578063f0247150146105e857600080fd5b8063de34ff35146105a9578063e8a3d485146105bc578063e985e9c5146105c457600080fd5b8063a7abc5e411610150578063c6403c8f1161012a578063c6403c8f14610586578063cdf33d9d1461058e578063cffc08f6146105a157600080fd5b8063a7abc5e414610558578063bd85b0391461056b578063c4c5bb6a1461057e57600080fd5b80639c09628d116101815780639c09628d1461052a578063a22cb4651461053d578063a3ed9df31461055057600080fd5b80638da5cb5b146104df57806395d89b411461052257600080fd5b806338c52df0116102555780634e1273f411610209578063715018a6116101e3578063715018a6146104b157806378416adb146104b95780637b2b1da0146104cc57600080fd5b80634e1273f41461047d57806353f2e39c1461049d5780635c975abb146104a657600080fd5b806345b924f11161023a57806345b924f11461044e5780634734e13c1461045757806347fcf0181461046a57600080fd5b806338c52df0146104335780633c168eab1461043b57600080fd5b80630ee68320116102b75780632d95fdb5116102915780632d95fdb5146103d75780632eb2c2d61461040557806333a2c4901461041857600080fd5b80630ee683201461039e57806315f924a9146103b157806316c38b3c146103c457600080fd5b806306fdde03116102e857806306fdde0314610361578063090d0bc9146103765780630e89341c1461038b57600080fd5b8062fdd58e1461030357806301ffc9a71461033e575b600080fd5b61032b61031136600461270c565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b61035161034c366004612764565b61064d565b6040519015158152602001610335565b610369610732565b60405161033591906127e5565b610389610384366004612844565b6107c0565b005b610369610399366004612897565b6109c3565b6103896103ac3660046128b0565b610a57565b6103896103bf3660046128e3565b610b97565b6103896103d2366004612931565b610bf8565b6103516103e536600461294c565b600160209081526000928352604080842090915290825290205460ff1681565b6103896104133660046129c1565b610cdd565b610420600181565b60405161ffff9091168152602001610335565b610389610d82565b61038961044936600461270c565b610df5565b61042061040081565b610389610465366004612b56565b610eff565b61038961047836600461270c565b610f3a565b61049061048b366004612c03565b611031565b6040516103359190612c6f565b61042061010081565b60025460ff16610351565b61038961118e565b61032b6104c7366004612897565b6111a2565b6103896104da366004612cb3565b6111ad565b600254610100900473ffffffffffffffffffffffffffffffffffffffff1660405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610335565b610369611355565b610389610538366004612897565b611362565b61038961054b366004612cf9565b6113b0565b610420608081565b610389610566366004612cf9565b611447565b61032b610579366004612897565b6114a5565b610420600481565b610420604081565b61035161059c3660046128e3565b6114c9565b610420602081565b6103896105b73660046128b0565b611502565b6103696116f6565b6103516105d236600461294c565b611703565b61032b61271081565b610420600281565b6103896105f6366004612cb3565b611778565b610389610609366004612844565b6118c0565b61038961061c366004612d23565b611a46565b61038961062f366004612d9b565b611abc565b610420601081565b61042061020081565b610420600881565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806106e057507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061072c57507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6004805461073f90612db6565b80601f016020809104026020016040519081016040528092919081815260200182805461076b90612db6565b80156107b85780601f1061078d576101008083540402835291602001916107b8565b820191906000526020600020905b81548152906001019060200180831161079b57829003601f168201915b505050505081565b60806107fa335b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205461ffff808416918416161490565b61085a5780335b6040517f94ac1df200000000000000000000000000000000000000000000000000000000815261ffff909216600483015273ffffffffffffffffffffffffffffffffffffffff1660248201526044015b60405180910390fd5b60005b8281101561094b57600084848381811061087957610879612e09565b90506020020135905061088d816127101190565b156108da5760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000818152600a60205260409020546001146109385760405162461bcd60e51b815260206004820152601460248201527f546f6b656e206973206e6f74206d696e7465642e0000000000000000000000006044820152606401610851565b508061094381612e67565b91505061085d565b5060005b828110156109bc57600084848381811061096b5761096b612e09565b905060200201359050600b6000828152602001908152602001600020600081548092919061099890612e67565b91905055506109a986826001611b59565b50806109b481612e67565b91505061094f565b5050505050565b6060600780546109d290612db6565b80601f01602080910402602001604051908101604052809291908181526020018280546109fe90612db6565b8015610a4b5780601f10610a2057610100808354040283529160200191610a4b565b820191906000526020600020905b815481529060010190602001808311610a2e57829003601f168201915b50505050509050919050565b6020610a62336107c7565b610a6d578033610801565b610a78836127101190565b610ac45760405162461bcd60e51b815260206004820152601660248201527f546f6b656e206973206e6f742066756e6769626c652e000000000000000000006044820152606401610851565b60008381526009602052604090205460ff16610b225760405162461bcd60e51b815260206004820152601560248201527f546f6b656e2074797065206e6f742061646465642e00000000000000000000006044820152606401610851565b60008381526009602052604090205462010000900460ff16610b865760405162461bcd60e51b815260206004820152601760248201527f546f6b656e2063616e6e6f74206265206275726e65642e0000000000000000006044820152606401610851565b610b91848484611b59565b50505050565b610b9f611bf7565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff83161790555050565b5050565b610200610c04336107c7565b610c0f578033610801565b8115610c7957818015610c25575060025460ff16155b610c715760405162461bcd60e51b815260206004820152601a60248201527f436f6e747261637420697320616c7265616479207061757365640000000000006044820152606401610851565b610bf4611c64565b81158015610c89575060025460ff165b610cd55760405162461bcd60e51b815260206004820152601660248201527f436f6e7472616374206973206e6f7420706175736564000000000000000000006044820152606401610851565b610bf4611ce9565b60025460ff1615610d6857610d1c335b73ffffffffffffffffffffffffffffffffffffffff166000908152600360205260409020546104009081161490565b610d685760405162461bcd60e51b815260206004820152600f60248201527f546f6b656e2069732070617573656400000000000000000000000000000000006044820152606401610851565b610d788888888888888888611d40565b5050505050505050565b610100610d8e336107c7565b610d99578033610801565b60408051600081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910160405180910390a150565b6008610e00336107c7565b610e0b578033610801565b610e16826127101190565b15610e635760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000828152600a602052604090205415610ebf5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e20697320616c7265616479206d696e7465642e00000000000000006044820152606401610851565b6000828152600a60205260408120805491610ed983612e67565b9190505550610efa83836001604051806020016040528060008152506120e3565b505050565b610f07611bf7565b6004610f138582612ee5565b506005610f208482612ee5565b506006610f2d8382612ee5565b5060076109bc8282612ee5565b6040610f45336107c7565b610f50578033610801565b610f5b826127101190565b15610fa85760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000828152600a60205260409020546001146110065760405162461bcd60e51b815260206004820152601460248201527f546f6b656e206973206e6f74206d696e7465642e0000000000000000000000006044820152606401610851565b6000828152600b6020526040812080549161102083612e67565b9190505550610efa83836001611b59565b60608382146110825760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610851565b8367ffffffffffffffff81111561109b5761109b612a7c565b6040519080825280602002602001820160405280156110c4578160200160208202803683370190505b50905060005b84811015611185576000808787848181106110e7576110e7612e09565b90506020020160208101906110fc9190612d9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085858481811061114a5761114a612e09565b9050602002013581526020019081526020016000205482828151811061117257611172612e09565b60209081029190910101526001016110ca565b50949350505050565b611196611bf7565b6111a060006122c7565b565b600061072c82612345565b60016111b8336107c7565b6111c3578033610801565b60008581526009602052604090205460ff16156112225760405162461bcd60e51b815260206004820152601460248201527f546f6b656e20616c72656164792061646465642e0000000000000000000000006044820152606401610851565b6040805160808101825260018082528515156020808401918252861515848601908152606085018a815260008c815260099093529582209451855493519151151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff921515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009095169490941717169190911783559251910155806112f53390565b73ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62886000604051611346929190918252602082015260400190565b60405180910390a45050505050565b6005805461073f90612db6565b61010061136e336107c7565b611379578033610801565b6040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61144f611bf7565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6000818152600b6020908152604080832054600a90925282205461072c9190612fff565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081205461ffff80841691841616145b9392505050565b600461150d336107c7565b611518578033610801565b611523836127101190565b61156f5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e206973206e6f742066756e6769626c652e000000000000000000006044820152606401610851565b60008381526009602052604090205460ff166115cd5760405162461bcd60e51b815260206004820152601560248201527f546f6b656e2074797065206e6f742061646465642e00000000000000000000006044820152606401610851565b600083815260096020526040902054610100900460ff166116305760405162461bcd60e51b815260206004820152601760248201527f546f6b656e2063616e6e6f74206265206d696e7465642e0000000000000000006044820152606401610851565b611639836111a2565b15806116665750611649836111a2565b6000848152600a6020526040902054611663908490613012565b11155b6116b25760405162461bcd60e51b815260206004820152601f60248201527f4d696e7420776f756c642065786365656420737570706c79206c696d69742e006044820152606401610851565b6116cd848484604051806020016040528060008152506120e3565b6000838152600a6020526040812080548492906116eb908490613012565b909155505050505050565b6006805461073f90612db6565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604081205460ff16151560010361173d5750600161072c565b73ffffffffffffffffffffffffffffffffffffffff80841660009081526001602090815260408083209386168352929052205460ff166114fb565b6002611783336107c7565b61178e578033610801565b60008581526009602052604090205460ff1615156001146117f15760405162461bcd60e51b815260206004820152601060248201527f546f6b656e206e6f742061646465642e000000000000000000000000000000006044820152606401610851565b5060408051608081018252600180825293151560208083019182529315158284019081526060830196875260009788526009909452919095209451855491519251151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff931515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921717919091161783559051910155565b60106118cb336107c7565b6118d6578033610801565b60005b828110156119c55760008484838181106118f5576118f5612e09565b905060200201359050611909816127101190565b156119565760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000818152600a6020526040902054156119b25760405162461bcd60e51b815260206004820152601860248201527f546f6b656e20697320616c7265616479206d696e7465642e00000000000000006044820152606401610851565b50806119bd81612e67565b9150506118d9565b5060005b828110156109bc5760008484838181106119e5576119e5612e09565b905060200201359050600a60008281526020019081526020016000206000815480929190611a1290612e67565b9190505550611a3386826001604051806020016040528060008152506120e3565b5080611a3e81612e67565b9150506119c9565b60025460ff1615611aa657611a5a33610ced565b611aa65760405162461bcd60e51b815260206004820152600f60248201527f546f6b656e2069732070617573656400000000000000000000000000000000006044820152606401610851565b611ab4868686868686612374565b505050505050565b611ac4611bf7565b73ffffffffffffffffffffffffffffffffffffffff8116611b4d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610851565b611b56816122c7565b50565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020818152604080832085845290915281208054839290611b97908490612fff565b9091555050604080518381526020810183905260009173ffffffffffffffffffffffffffffffffffffffff86169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b60025473ffffffffffffffffffffffffffffffffffffffff6101009091041633146111a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610851565b611c6c61263e565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611cbf3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611cf1612691565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611cbf565b848314611d8f5760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610851565b3373ffffffffffffffffffffffffffffffffffffffff89161480611de3575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b611e2f5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610851565b60008060005b87811015611f0457888882818110611e4f57611e4f612e09565b905060200201359250868682818110611e6a57611e6a612e09565b73ffffffffffffffffffffffffffffffffffffffff8e1660009081526020818152604080832089845282528220805493909102949094013595508593925090611eb4908490612fff565b909155505073ffffffffffffffffffffffffffffffffffffffff8a1660009081526020818152604080832086845290915281208054849290611ef7908490613012565b9091555050600101611e35565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b604051611f7f9493929190613070565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15612071576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c81906120069033908f908e908e908e908e908e908e906004016130eb565b6020604051808303816000875af1158015612025573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612049919061315c565b7fffffffff00000000000000000000000000000000000000000000000000000000161461208b565b73ffffffffffffffffffffffffffffffffffffffff891615155b6120d75760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610851565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915281208054849290612121908490613012565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b15612261576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e61906121f6903390600090899089908990600401613179565b6020604051808303816000875af1158015612215573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612239919061315c565b7fffffffff00000000000000000000000000000000000000000000000000000000161461227b565b73ffffffffffffffffffffffffffffffffffffffff841615155b610b915760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610851565b6002805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000612352826127101190565b61235e57506001919050565b5060009081526009602052604090206001015490565b3373ffffffffffffffffffffffffffffffffffffffff871614806123c8575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b6124145760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610851565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290612452908490612fff565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290612495908490613012565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b156125d8576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e619061256d9033908b908a908a908a908a906004016131be565b6020604051808303816000875af115801561258c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b0919061315c565b7fffffffff0000000000000000000000000000000000000000000000000000000016146125f2565b73ffffffffffffffffffffffffffffffffffffffff851615155b611ab45760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610851565b60025460ff16156111a05760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610851565b60025460ff166111a05760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610851565b803573ffffffffffffffffffffffffffffffffffffffff8116811461270757600080fd5b919050565b6000806040838503121561271f57600080fd5b612728836126e3565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611b5657600080fd5b60006020828403121561277657600080fd5b81356114fb81612736565b6000815180845260005b818110156127a75760208185018101518683018201520161278b565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114fb6020830184612781565b60008083601f84011261280a57600080fd5b50813567ffffffffffffffff81111561282257600080fd5b6020830191508360208260051b850101111561283d57600080fd5b9250929050565b60008060006040848603121561285957600080fd5b612862846126e3565b9250602084013567ffffffffffffffff81111561287e57600080fd5b61288a868287016127f8565b9497909650939450505050565b6000602082840312156128a957600080fd5b5035919050565b6000806000606084860312156128c557600080fd5b6128ce846126e3565b95602085013595506040909401359392505050565b600080604083850312156128f657600080fd5b6128ff836126e3565b9150602083013561ffff8116811461291657600080fd5b809150509250929050565b8035801515811461270757600080fd5b60006020828403121561294357600080fd5b6114fb82612921565b6000806040838503121561295f57600080fd5b612968836126e3565b9150612976602084016126e3565b90509250929050565b60008083601f84011261299157600080fd5b50813567ffffffffffffffff8111156129a957600080fd5b60208301915083602082850101111561283d57600080fd5b60008060008060008060008060a0898b0312156129dd57600080fd5b6129e6896126e3565b97506129f460208a016126e3565b9650604089013567ffffffffffffffff80821115612a1157600080fd5b612a1d8c838d016127f8565b909850965060608b0135915080821115612a3657600080fd5b612a428c838d016127f8565b909650945060808b0135915080821115612a5b57600080fd5b50612a688b828c0161297f565b999c989b5096995094979396929594505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612abc57600080fd5b813567ffffffffffffffff80821115612ad757612ad7612a7c565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612b1d57612b1d612a7c565b81604052838152866020858801011115612b3657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060808587031215612b6c57600080fd5b843567ffffffffffffffff80821115612b8457600080fd5b612b9088838901612aab565b95506020870135915080821115612ba657600080fd5b612bb288838901612aab565b94506040870135915080821115612bc857600080fd5b612bd488838901612aab565b93506060870135915080821115612bea57600080fd5b50612bf787828801612aab565b91505092959194509250565b60008060008060408587031215612c1957600080fd5b843567ffffffffffffffff80821115612c3157600080fd5b612c3d888389016127f8565b90965094506020870135915080821115612c5657600080fd5b50612c63878288016127f8565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015612ca757835183529284019291840191600101612c8b565b50909695505050505050565b60008060008060808587031215612cc957600080fd5b8435935060208501359250612ce060408601612921565b9150612cee60608601612921565b905092959194509250565b60008060408385031215612d0c57600080fd5b612d15836126e3565b915061297660208401612921565b60008060008060008060a08789031215612d3c57600080fd5b612d45876126e3565b9550612d53602088016126e3565b94506040870135935060608701359250608087013567ffffffffffffffff811115612d7d57600080fd5b612d8989828a0161297f565b979a9699509497509295939492505050565b600060208284031215612dad57600080fd5b6114fb826126e3565b600181811c90821680612dca57607f821691505b602082108103612e03577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e9857612e98612e38565b5060010190565b601f821115610efa57600081815260208120601f850160051c81016020861015612ec65750805b601f850160051c820191505b81811015611ab457828155600101612ed2565b815167ffffffffffffffff811115612eff57612eff612a7c565b612f1381612f0d8454612db6565b84612e9f565b602080601f831160018114612f665760008415612f305750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611ab4565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612fb357888601518255948401946001909101908401612f94565b5085821015612fef57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561072c5761072c612e38565b8082018082111561072c5761072c612e38565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561305757600080fd5b8260051b80836020870137939093016020019392505050565b604081526000613084604083018688613025565b8281036020840152613097818587613025565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a0604083015261312560a08301888a613025565b8281036060840152613138818789613025565b9050828103608084015261314d8185876130a2565b9b9a5050505050505050505050565b60006020828403121561316e57600080fd5b81516114fb81612736565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261309760a0830184612781565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261320460a0830184866130a2565b9897505050505050505056fea26469706673582212208ec9ae78782973d51b51b20a0014472555d68fc8e3c1b7a474b7c284a3f84e9964736f6c63430008110033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000031486f6d65205465616d204865726f65733a204261736562616c6c203230323320436f6c6f7220506f7020496e7365727473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f48544843504241534542414c4c32330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e68747470733a2f2f6d6574612e636f6c6c6563746874682e636f6d2f636f6c6f722f6f70656e7365612e6a736f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002668747470733a2f2f6d6574612e636f6c6c6563746874682e636f6d2f636f6c6f722f7b69647d0000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102fe5760003560e01c80638da5cb5b1161019c578063de34ff35116100ee578063f0edeaff11610097578063f462a4dc11610071578063f462a4dc14610634578063ff4439c71461063c578063ffa3b59a1461064557600080fd5b8063f0edeaff146105fb578063f242432a1461060e578063f2fde38b1461062157600080fd5b8063ef5d0f7f116100c8578063ef5d0f7f146105d7578063efec9b57146105e0578063f0247150146105e857600080fd5b8063de34ff35146105a9578063e8a3d485146105bc578063e985e9c5146105c457600080fd5b8063a7abc5e411610150578063c6403c8f1161012a578063c6403c8f14610586578063cdf33d9d1461058e578063cffc08f6146105a157600080fd5b8063a7abc5e414610558578063bd85b0391461056b578063c4c5bb6a1461057e57600080fd5b80639c09628d116101815780639c09628d1461052a578063a22cb4651461053d578063a3ed9df31461055057600080fd5b80638da5cb5b146104df57806395d89b411461052257600080fd5b806338c52df0116102555780634e1273f411610209578063715018a6116101e3578063715018a6146104b157806378416adb146104b95780637b2b1da0146104cc57600080fd5b80634e1273f41461047d57806353f2e39c1461049d5780635c975abb146104a657600080fd5b806345b924f11161023a57806345b924f11461044e5780634734e13c1461045757806347fcf0181461046a57600080fd5b806338c52df0146104335780633c168eab1461043b57600080fd5b80630ee68320116102b75780632d95fdb5116102915780632d95fdb5146103d75780632eb2c2d61461040557806333a2c4901461041857600080fd5b80630ee683201461039e57806315f924a9146103b157806316c38b3c146103c457600080fd5b806306fdde03116102e857806306fdde0314610361578063090d0bc9146103765780630e89341c1461038b57600080fd5b8062fdd58e1461030357806301ffc9a71461033e575b600080fd5b61032b61031136600461270c565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b61035161034c366004612764565b61064d565b6040519015158152602001610335565b610369610732565b60405161033591906127e5565b610389610384366004612844565b6107c0565b005b610369610399366004612897565b6109c3565b6103896103ac3660046128b0565b610a57565b6103896103bf3660046128e3565b610b97565b6103896103d2366004612931565b610bf8565b6103516103e536600461294c565b600160209081526000928352604080842090915290825290205460ff1681565b6103896104133660046129c1565b610cdd565b610420600181565b60405161ffff9091168152602001610335565b610389610d82565b61038961044936600461270c565b610df5565b61042061040081565b610389610465366004612b56565b610eff565b61038961047836600461270c565b610f3a565b61049061048b366004612c03565b611031565b6040516103359190612c6f565b61042061010081565b60025460ff16610351565b61038961118e565b61032b6104c7366004612897565b6111a2565b6103896104da366004612cb3565b6111ad565b600254610100900473ffffffffffffffffffffffffffffffffffffffff1660405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610335565b610369611355565b610389610538366004612897565b611362565b61038961054b366004612cf9565b6113b0565b610420608081565b610389610566366004612cf9565b611447565b61032b610579366004612897565b6114a5565b610420600481565b610420604081565b61035161059c3660046128e3565b6114c9565b610420602081565b6103896105b73660046128b0565b611502565b6103696116f6565b6103516105d236600461294c565b611703565b61032b61271081565b610420600281565b6103896105f6366004612cb3565b611778565b610389610609366004612844565b6118c0565b61038961061c366004612d23565b611a46565b61038961062f366004612d9b565b611abc565b610420601081565b61042061020081565b610420600881565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806106e057507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b8061072c57507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6004805461073f90612db6565b80601f016020809104026020016040519081016040528092919081815260200182805461076b90612db6565b80156107b85780601f1061078d576101008083540402835291602001916107b8565b820191906000526020600020905b81548152906001019060200180831161079b57829003601f168201915b505050505081565b60806107fa335b73ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205461ffff808416918416161490565b61085a5780335b6040517f94ac1df200000000000000000000000000000000000000000000000000000000815261ffff909216600483015273ffffffffffffffffffffffffffffffffffffffff1660248201526044015b60405180910390fd5b60005b8281101561094b57600084848381811061087957610879612e09565b90506020020135905061088d816127101190565b156108da5760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000818152600a60205260409020546001146109385760405162461bcd60e51b815260206004820152601460248201527f546f6b656e206973206e6f74206d696e7465642e0000000000000000000000006044820152606401610851565b508061094381612e67565b91505061085d565b5060005b828110156109bc57600084848381811061096b5761096b612e09565b905060200201359050600b6000828152602001908152602001600020600081548092919061099890612e67565b91905055506109a986826001611b59565b50806109b481612e67565b91505061094f565b5050505050565b6060600780546109d290612db6565b80601f01602080910402602001604051908101604052809291908181526020018280546109fe90612db6565b8015610a4b5780601f10610a2057610100808354040283529160200191610a4b565b820191906000526020600020905b815481529060010190602001808311610a2e57829003601f168201915b50505050509050919050565b6020610a62336107c7565b610a6d578033610801565b610a78836127101190565b610ac45760405162461bcd60e51b815260206004820152601660248201527f546f6b656e206973206e6f742066756e6769626c652e000000000000000000006044820152606401610851565b60008381526009602052604090205460ff16610b225760405162461bcd60e51b815260206004820152601560248201527f546f6b656e2074797065206e6f742061646465642e00000000000000000000006044820152606401610851565b60008381526009602052604090205462010000900460ff16610b865760405162461bcd60e51b815260206004820152601760248201527f546f6b656e2063616e6e6f74206265206275726e65642e0000000000000000006044820152606401610851565b610b91848484611b59565b50505050565b610b9f611bf7565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff83161790555050565b5050565b610200610c04336107c7565b610c0f578033610801565b8115610c7957818015610c25575060025460ff16155b610c715760405162461bcd60e51b815260206004820152601a60248201527f436f6e747261637420697320616c7265616479207061757365640000000000006044820152606401610851565b610bf4611c64565b81158015610c89575060025460ff165b610cd55760405162461bcd60e51b815260206004820152601660248201527f436f6e7472616374206973206e6f7420706175736564000000000000000000006044820152606401610851565b610bf4611ce9565b60025460ff1615610d6857610d1c335b73ffffffffffffffffffffffffffffffffffffffff166000908152600360205260409020546104009081161490565b610d685760405162461bcd60e51b815260206004820152600f60248201527f546f6b656e2069732070617573656400000000000000000000000000000000006044820152606401610851565b610d788888888888888888611d40565b5050505050505050565b610100610d8e336107c7565b610d99578033610801565b60408051600081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910160405180910390a150565b6008610e00336107c7565b610e0b578033610801565b610e16826127101190565b15610e635760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000828152600a602052604090205415610ebf5760405162461bcd60e51b815260206004820152601860248201527f546f6b656e20697320616c7265616479206d696e7465642e00000000000000006044820152606401610851565b6000828152600a60205260408120805491610ed983612e67565b9190505550610efa83836001604051806020016040528060008152506120e3565b505050565b610f07611bf7565b6004610f138582612ee5565b506005610f208482612ee5565b506006610f2d8382612ee5565b5060076109bc8282612ee5565b6040610f45336107c7565b610f50578033610801565b610f5b826127101190565b15610fa85760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000828152600a60205260409020546001146110065760405162461bcd60e51b815260206004820152601460248201527f546f6b656e206973206e6f74206d696e7465642e0000000000000000000000006044820152606401610851565b6000828152600b6020526040812080549161102083612e67565b9190505550610efa83836001611b59565b60608382146110825760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610851565b8367ffffffffffffffff81111561109b5761109b612a7c565b6040519080825280602002602001820160405280156110c4578160200160208202803683370190505b50905060005b84811015611185576000808787848181106110e7576110e7612e09565b90506020020160208101906110fc9190612d9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085858481811061114a5761114a612e09565b9050602002013581526020019081526020016000205482828151811061117257611172612e09565b60209081029190910101526001016110ca565b50949350505050565b611196611bf7565b6111a060006122c7565b565b600061072c82612345565b60016111b8336107c7565b6111c3578033610801565b60008581526009602052604090205460ff16156112225760405162461bcd60e51b815260206004820152601460248201527f546f6b656e20616c72656164792061646465642e0000000000000000000000006044820152606401610851565b6040805160808101825260018082528515156020808401918252861515848601908152606085018a815260008c815260099093529582209451855493519151151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff921515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009095169490941717169190911783559251910155806112f53390565b73ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62886000604051611346929190918252602082015260400190565b60405180910390a45050505050565b6005805461073f90612db6565b61010061136e336107c7565b611379578033610801565b6040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b61144f611bf7565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6000818152600b6020908152604080832054600a90925282205461072c9190612fff565b73ffffffffffffffffffffffffffffffffffffffff821660009081526003602052604081205461ffff80841691841616145b9392505050565b600461150d336107c7565b611518578033610801565b611523836127101190565b61156f5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e206973206e6f742066756e6769626c652e000000000000000000006044820152606401610851565b60008381526009602052604090205460ff166115cd5760405162461bcd60e51b815260206004820152601560248201527f546f6b656e2074797065206e6f742061646465642e00000000000000000000006044820152606401610851565b600083815260096020526040902054610100900460ff166116305760405162461bcd60e51b815260206004820152601760248201527f546f6b656e2063616e6e6f74206265206d696e7465642e0000000000000000006044820152606401610851565b611639836111a2565b15806116665750611649836111a2565b6000848152600a6020526040902054611663908490613012565b11155b6116b25760405162461bcd60e51b815260206004820152601f60248201527f4d696e7420776f756c642065786365656420737570706c79206c696d69742e006044820152606401610851565b6116cd848484604051806020016040528060008152506120e3565b6000838152600a6020526040812080548492906116eb908490613012565b909155505050505050565b6006805461073f90612db6565b73ffffffffffffffffffffffffffffffffffffffff811660009081526008602052604081205460ff16151560010361173d5750600161072c565b73ffffffffffffffffffffffffffffffffffffffff80841660009081526001602090815260408083209386168352929052205460ff166114fb565b6002611783336107c7565b61178e578033610801565b60008581526009602052604090205460ff1615156001146117f15760405162461bcd60e51b815260206004820152601060248201527f546f6b656e206e6f742061646465642e000000000000000000000000000000006044820152606401610851565b5060408051608081018252600180825293151560208083019182529315158284019081526060830196875260009788526009909452919095209451855491519251151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff931515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff921515929092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00009093169290921717919091161783559051910155565b60106118cb336107c7565b6118d6578033610801565b60005b828110156119c55760008484838181106118f5576118f5612e09565b905060200201359050611909816127101190565b156119565760405162461bcd60e51b815260206004820152601260248201527f546f6b656e2069732066756e6769626c652e00000000000000000000000000006044820152606401610851565b6000818152600a6020526040902054156119b25760405162461bcd60e51b815260206004820152601860248201527f546f6b656e20697320616c7265616479206d696e7465642e00000000000000006044820152606401610851565b50806119bd81612e67565b9150506118d9565b5060005b828110156109bc5760008484838181106119e5576119e5612e09565b905060200201359050600a60008281526020019081526020016000206000815480929190611a1290612e67565b9190505550611a3386826001604051806020016040528060008152506120e3565b5080611a3e81612e67565b9150506119c9565b60025460ff1615611aa657611a5a33610ced565b611aa65760405162461bcd60e51b815260206004820152600f60248201527f546f6b656e2069732070617573656400000000000000000000000000000000006044820152606401610851565b611ab4868686868686612374565b505050505050565b611ac4611bf7565b73ffffffffffffffffffffffffffffffffffffffff8116611b4d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610851565b611b56816122c7565b50565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020818152604080832085845290915281208054839290611b97908490612fff565b9091555050604080518381526020810183905260009173ffffffffffffffffffffffffffffffffffffffff86169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b60025473ffffffffffffffffffffffffffffffffffffffff6101009091041633146111a05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610851565b611c6c61263e565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611cbf3390565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b611cf1612691565b600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611cbf565b848314611d8f5760405162461bcd60e51b815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610851565b3373ffffffffffffffffffffffffffffffffffffffff89161480611de3575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b611e2f5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610851565b60008060005b87811015611f0457888882818110611e4f57611e4f612e09565b905060200201359250868682818110611e6a57611e6a612e09565b73ffffffffffffffffffffffffffffffffffffffff8e1660009081526020818152604080832089845282528220805493909102949094013595508593925090611eb4908490612fff565b909155505073ffffffffffffffffffffffffffffffffffffffff8a1660009081526020818152604080832086845290915281208054849290611ef7908490613012565b9091555050600101611e35565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b604051611f7f9493929190613070565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15612071576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c81906120069033908f908e908e908e908e908e908e906004016130eb565b6020604051808303816000875af1158015612025573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612049919061315c565b7fffffffff00000000000000000000000000000000000000000000000000000000161461208b565b73ffffffffffffffffffffffffffffffffffffffff891615155b6120d75760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610851565b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915281208054849290612121908490613012565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b15612261576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e61906121f6903390600090899089908990600401613179565b6020604051808303816000875af1158015612215573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612239919061315c565b7fffffffff00000000000000000000000000000000000000000000000000000000161461227b565b73ffffffffffffffffffffffffffffffffffffffff841615155b610b915760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610851565b6002805473ffffffffffffffffffffffffffffffffffffffff8381166101008181027fffffffffffffffffffffff0000000000000000000000000000000000000000ff85161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000612352826127101190565b61235e57506001919050565b5060009081526009602052604090206001015490565b3373ffffffffffffffffffffffffffffffffffffffff871614806123c8575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b6124145760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610851565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290612452908490612fff565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290612495908490613012565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b156125d8576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e619061256d9033908b908a908a908a908a906004016131be565b6020604051808303816000875af115801561258c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b0919061315c565b7fffffffff0000000000000000000000000000000000000000000000000000000016146125f2565b73ffffffffffffffffffffffffffffffffffffffff851615155b611ab45760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610851565b60025460ff16156111a05760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610851565b60025460ff166111a05760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610851565b803573ffffffffffffffffffffffffffffffffffffffff8116811461270757600080fd5b919050565b6000806040838503121561271f57600080fd5b612728836126e3565b946020939093013593505050565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611b5657600080fd5b60006020828403121561277657600080fd5b81356114fb81612736565b6000815180845260005b818110156127a75760208185018101518683018201520161278b565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006114fb6020830184612781565b60008083601f84011261280a57600080fd5b50813567ffffffffffffffff81111561282257600080fd5b6020830191508360208260051b850101111561283d57600080fd5b9250929050565b60008060006040848603121561285957600080fd5b612862846126e3565b9250602084013567ffffffffffffffff81111561287e57600080fd5b61288a868287016127f8565b9497909650939450505050565b6000602082840312156128a957600080fd5b5035919050565b6000806000606084860312156128c557600080fd5b6128ce846126e3565b95602085013595506040909401359392505050565b600080604083850312156128f657600080fd5b6128ff836126e3565b9150602083013561ffff8116811461291657600080fd5b809150509250929050565b8035801515811461270757600080fd5b60006020828403121561294357600080fd5b6114fb82612921565b6000806040838503121561295f57600080fd5b612968836126e3565b9150612976602084016126e3565b90509250929050565b60008083601f84011261299157600080fd5b50813567ffffffffffffffff8111156129a957600080fd5b60208301915083602082850101111561283d57600080fd5b60008060008060008060008060a0898b0312156129dd57600080fd5b6129e6896126e3565b97506129f460208a016126e3565b9650604089013567ffffffffffffffff80821115612a1157600080fd5b612a1d8c838d016127f8565b909850965060608b0135915080821115612a3657600080fd5b612a428c838d016127f8565b909650945060808b0135915080821115612a5b57600080fd5b50612a688b828c0161297f565b999c989b5096995094979396929594505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112612abc57600080fd5b813567ffffffffffffffff80821115612ad757612ad7612a7c565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612b1d57612b1d612a7c565b81604052838152866020858801011115612b3657600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060808587031215612b6c57600080fd5b843567ffffffffffffffff80821115612b8457600080fd5b612b9088838901612aab565b95506020870135915080821115612ba657600080fd5b612bb288838901612aab565b94506040870135915080821115612bc857600080fd5b612bd488838901612aab565b93506060870135915080821115612bea57600080fd5b50612bf787828801612aab565b91505092959194509250565b60008060008060408587031215612c1957600080fd5b843567ffffffffffffffff80821115612c3157600080fd5b612c3d888389016127f8565b90965094506020870135915080821115612c5657600080fd5b50612c63878288016127f8565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b81811015612ca757835183529284019291840191600101612c8b565b50909695505050505050565b60008060008060808587031215612cc957600080fd5b8435935060208501359250612ce060408601612921565b9150612cee60608601612921565b905092959194509250565b60008060408385031215612d0c57600080fd5b612d15836126e3565b915061297660208401612921565b60008060008060008060a08789031215612d3c57600080fd5b612d45876126e3565b9550612d53602088016126e3565b94506040870135935060608701359250608087013567ffffffffffffffff811115612d7d57600080fd5b612d8989828a0161297f565b979a9699509497509295939492505050565b600060208284031215612dad57600080fd5b6114fb826126e3565b600181811c90821680612dca57607f821691505b602082108103612e03577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e9857612e98612e38565b5060010190565b601f821115610efa57600081815260208120601f850160051c81016020861015612ec65750805b601f850160051c820191505b81811015611ab457828155600101612ed2565b815167ffffffffffffffff811115612eff57612eff612a7c565b612f1381612f0d8454612db6565b84612e9f565b602080601f831160018114612f665760008415612f305750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555611ab4565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015612fb357888601518255948401946001909101908401612f94565b5085821015612fef57878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561072c5761072c612e38565b8082018082111561072c5761072c612e38565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561305757600080fd5b8260051b80836020870137939093016020019392505050565b604081526000613084604083018688613025565b8281036020840152613097818587613025565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a0604083015261312560a08301888a613025565b8281036060840152613138818789613025565b9050828103608084015261314d8185876130a2565b9b9a5050505050505050505050565b60006020828403121561316e57600080fd5b81516114fb81612736565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261309760a0830184612781565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261320460a0830184866130a2565b9897505050505050505056fea26469706673582212208ec9ae78782973d51b51b20a0014472555d68fc8e3c1b7a474b7c284a3f84e9964736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000031486f6d65205465616d204865726f65733a204261736562616c6c203230323320436f6c6f7220506f7020496e7365727473000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f48544843504241534542414c4c32330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e68747470733a2f2f6d6574612e636f6c6c6563746874682e636f6d2f636f6c6f722f6f70656e7365612e6a736f6e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002668747470733a2f2f6d6574612e636f6c6c6563746874682e636f6d2f636f6c6f722f7b69647d0000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): Home Team Heroes: Baseball 2023 Color Pop Inserts
Arg [1] : symbol_ (string): HTHCPBASEBALL23
Arg [2] : contractURI_ (string): https://meta.collecthth.com/color/opensea.json
Arg [3] : uri_ (string): https://meta.collecthth.com/color/{id}
-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000180
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000031
Arg [5] : 486f6d65205465616d204865726f65733a204261736562616c6c203230323320
Arg [6] : 436f6c6f7220506f7020496e7365727473000000000000000000000000000000
Arg [7] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [8] : 48544843504241534542414c4c32330000000000000000000000000000000000
Arg [9] : 000000000000000000000000000000000000000000000000000000000000002e
Arg [10] : 68747470733a2f2f6d6574612e636f6c6c6563746874682e636f6d2f636f6c6f
Arg [11] : 722f6f70656e7365612e6a736f6e000000000000000000000000000000000000
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000026
Arg [13] : 68747470733a2f2f6d6574612e636f6c6c6563746874682e636f6d2f636f6c6f
Arg [14] : 722f7b69647d0000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ 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.