ERC-1155
Platform
Overview
Max Total Supply
161 IN][PA
Holders
160
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Particles
Compiler Version
v0.8.16+commit.07a7930e
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.4; import "solmate/tokens/ERC1155.sol"; import "solmate/utils/ReentrancyGuard.sol"; import "openzeppelin-contracts/contracts/access/Ownable.sol"; import "./IRenderer.sol"; import "./Errors.sol"; /* . . :=+*#**+**= =*%%%##%%%@%*+= .=#%%%@@%%%%#+++++#+. .%%@@@@@@%#+==+=+#@%*: -%%@@@%*+==++*##@@#+*= =@@%#++++*#%@@%%*++#%#. .#**##%@@@@@%*++*%%%#= +#%@@@@@%#*+*#%%%%*+: :=*%##*#%%%%%###*++: .-=*#%%@@%#+***+-. =++==*#+-: . . */ contract Particles is ERC1155, Ownable, ReentrancyGuard { // emitted when new particles get spawned event Spawn( uint256 indexed tokenId, uint256 maxSpawn, address minter, address renderer, string ipfsHash ); struct Particle { uint256 spawned; uint256 maxSpawn; address minter; address renderer; bytes metadata; } string public baseURI; string public contractURI; mapping(uint256 => Particle) public particles; string public name = "interface particles"; string public symbol = "IN][PA"; constructor(string memory _baseURI, string memory _contractURI) { baseURI = _baseURI; contractURI = _contractURI; } function particleExists(uint256 tokenId) public view returns (bool) { if (particles[tokenId].maxSpawn != 0) { return true; } return false; } function spawn( uint256 tokenId, uint256 maxSpawn, address minter, address renderer, bytes calldata ipfsHash ) external onlyOwner { if (particleExists(tokenId)) revert Errors.ParticleAlreadyExists(); if (maxSpawn == 0) revert Errors.ParticleMaxSpawnCannotBeZero(); particles[tokenId].spawned = 0; particles[tokenId].maxSpawn = maxSpawn; particles[tokenId].metadata = ipfsHash; particles[tokenId].minter = minter; particles[tokenId].renderer = renderer; emit URI(uri(tokenId), tokenId); emit Spawn(tokenId, maxSpawn, minter, renderer, string(ipfsHash)); } function mint( address sender, uint256 tokenId, uint256 editions ) public nonReentrant { if (tokenId == 0) revert Errors.UnknownParticle(); if (!particleExists(tokenId)) revert Errors.UnknownParticle(); if (particles[tokenId].minter != msg.sender) revert Errors.InvalidMinter(); if (particles[tokenId].spawned + editions > particles[tokenId].maxSpawn) revert Errors.MaxSpawnMinted(); particles[tokenId].spawned += editions; _mint(sender, tokenId, editions, ""); } function burn(uint256 tokenId, uint256 editions) public nonReentrant { if (tokenId == 0) revert Errors.UnknownParticle(); if (!particleExists(tokenId)) revert Errors.UnknownParticle(); if (balanceOf[msg.sender][tokenId] < editions) revert Errors.CannotBurnWhatYouDontOwn(); _burn(msg.sender, tokenId, editions); } function setContractURI(string calldata _contractURI) public onlyOwner { contractURI = _contractURI; } function setBaseURI(string calldata _baseURI) public onlyOwner { baseURI = _baseURI; } function updateTokenURI(uint256 tokenId, bytes calldata path) external onlyOwner { particles[tokenId].metadata = path; emit URI(uri(tokenId), tokenId); } function updateTokenRenderer(uint256 tokenId, address _renderer) external onlyOwner { particles[tokenId].renderer = _renderer; } function uri(uint256 tokenId) public view override returns (string memory) { if (particles[tokenId].renderer == address(0)) { return string(abi.encodePacked(baseURI, particles[tokenId].metadata)); } IRenderer renderer = IRenderer(particles[tokenId].renderer); return renderer.uri(tokenId); } function maxSupply(uint256 id) public view returns (uint256) { return particles[id].maxSpawn; } function spawned(uint256 id) public view returns (uint256) { return particles[id].spawned; } // just in case someone sends accidental funds or something function withdraw(address payable payee) external onlyOwner { uint256 balance = address(this).balance; (bool sent, ) = payee.call{value: balance}(""); if (!sent) { revert Errors.WithdrawTransfer(); } } }
// 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 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; } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Gas optimized reentrancy protection for smart contracts. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/ReentrancyGuard.sol) /// @author Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/security/ReentrancyGuard.sol) abstract contract ReentrancyGuard { uint256 private locked = 1; modifier nonReentrant() virtual { require(locked == 1, "REENTRANCY"); locked = 2; _; locked = 1; } }
// 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 pragma solidity ^0.8.0; interface IRenderer { function uri(uint256 tokenId) external view returns (string memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; library Errors { /* Particles.sol */ error WithdrawTransfer(); error UnknownParticle(); error InvalidMinter(); error MaxSpawnMinted(); error ParticlePropertiesMissMatch(); error ParticleMaxSpawnCannotBeZero(); error ParticleAlreadyExists(); error PropertyAlreadyExists(); error PropertyMinCannotBeBiggerMax(); error PropertyMaxSpawnCannotBeZero(); error ParticleValueOutOfRangeOrDoesntExist(); error CannotBurnWhatYouDontOwn(); /* MerkleMinter.sol */ error NotAllowListed(); error InsufficientFunds(); error AlreadyMinted(); error MintNotStarted(); }
// 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; } }
{ "remappings": [ "ds-test/=lib/solmate/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "solmate/=lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"},{"internalType":"string","name":"_contractURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"CannotBurnWhatYouDontOwn","type":"error"},{"inputs":[],"name":"InvalidMinter","type":"error"},{"inputs":[],"name":"MaxSpawnMinted","type":"error"},{"inputs":[],"name":"ParticleAlreadyExists","type":"error"},{"inputs":[],"name":"ParticleMaxSpawnCannotBeZero","type":"error"},{"inputs":[],"name":"UnknownParticle","type":"error"},{"inputs":[],"name":"WithdrawTransfer","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxSpawn","type":"uint256"},{"indexed":false,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"address","name":"renderer","type":"address"},{"indexed":false,"internalType":"string","name":"ipfsHash","type":"string"}],"name":"Spawn","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"},{"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":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"editions","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"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"}],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"editions","type":"uint256"}],"name":"mint","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":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"particleExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"particles","outputs":[{"internalType":"uint256","name":"spawned","type":"uint256"},{"internalType":"uint256","name":"maxSpawn","type":"uint256"},{"internalType":"address","name":"minter","type":"address"},{"internalType":"address","name":"renderer","type":"address"},{"internalType":"bytes","name":"metadata","type":"bytes"}],"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":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_contractURI","type":"string"}],"name":"setContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"maxSpawn","type":"uint256"},{"internalType":"address","name":"minter","type":"address"},{"internalType":"address","name":"renderer","type":"address"},{"internalType":"bytes","name":"ipfsHash","type":"bytes"}],"name":"spawn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"spawned","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":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"_renderer","type":"address"}],"name":"updateTokenRenderer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"path","type":"bytes"}],"name":"updateTokenURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"payee","type":"address"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
600160035560c0604052601360809081527f696e74657266616365207061727469636c65730000000000000000000000000060a052600790620000439082620001c9565b50604080518082019091526006815265494e5d5b504160d01b6020820152600890620000709082620001c9565b503480156200007e57600080fd5b506040516200234638038062002346833981016040819052620000a19162000344565b620000ac33620000d2565b6004620000ba8382620001c9565b506005620000c98282620001c9565b505050620003ae565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200014f57607f821691505b6020821081036200017057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001c457600081815260208120601f850160051c810160208610156200019f5750805b601f850160051c820191505b81811015620001c057828155600101620001ab565b5050505b505050565b81516001600160401b03811115620001e557620001e562000124565b620001fd81620001f684546200013a565b8462000176565b602080601f8311600181146200023557600084156200021c5750858301515b600019600386901b1c1916600185901b178555620001c0565b600085815260208120601f198616915b82811015620002665788860151825594840194600190910190840162000245565b5085821015620002855787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082601f830112620002a757600080fd5b81516001600160401b0380821115620002c457620002c462000124565b604051601f8301601f19908116603f01168101908282118183101715620002ef57620002ef62000124565b816040528381526020925086838588010111156200030c57600080fd5b600091505b8382101562000330578582018301518183018401529082019062000311565b600093810190920192909252949350505050565b600080604083850312156200035857600080fd5b82516001600160401b03808211156200037057600080fd5b6200037e8683870162000295565b935060208501519150808211156200039557600080fd5b50620003a48582860162000295565b9150509250929050565b611f8880620003be6000396000f3fe608060405234801561001057600080fd5b50600436106101a85760003560e01c8063869f7594116100f9578063e8a3d48511610097578063f242432a11610071578063f242432a146103bf578063f2fde38b146103d2578063fbcbeded146103e5578063fd763996146103f857600080fd5b8063e8a3d48514610376578063e985e9c51461037e578063f134e137146103ac57600080fd5b806395d89b41116100d357806395d89b4114610335578063a22cb4651461033d578063b390c0ab14610350578063baa5cb481461036357600080fd5b8063869f7594146102e45780638da5cb5b14610307578063938e3d7b1461032257600080fd5b80632eb2c2d61161016657806355f804b31161014057806355f804b3146102ae5780636c0360eb146102c1578063715018a6146102c957806377438d58146102d157600080fd5b80632eb2c2d6146102685780634e1273f41461027b57806351cff8d91461029b57600080fd5b8062fdd58e146101ad57806301ffc9a7146101e857806306fdde031461020b5780630e89341c14610220578063156e29f6146102335780631bb7508214610248575b600080fd5b6101d56101bb36600461150d565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b6101fb6101f636600461154f565b61041c565b60405190151581526020016101df565b61021361046e565b6040516101df91906115bc565b61021361022e3660046115cf565b6104fc565b6102466102413660046115e8565b6105e7565b005b6101d56102563660046115cf565b60009081526006602052604090205490565b6102466102763660046116ab565b61073b565b61028e61028936600461176a565b6109de565b6040516101df91906117d6565b6102466102a936600461181a565b610b13565b6102466102bc366004611837565b610b94565b610213610ba9565b610246610bb6565b6102466102df366004611879565b610bca565b6101d56102f23660046115cf565b60009081526006602052604090206001015490565b6002546040516001600160a01b0390911681526020016101df565b610246610330366004611837565b610c34565b610213610c49565b61024661034b3660046118c5565b610c56565b61024661035e366004611903565b610cc2565b610246610371366004611925565b610d9b565b610213610eda565b6101fb61038c3660046119a1565b600160209081526000928352604080842090915290825290205460ff1681565b6102466103ba3660046119cf565b610ee7565b6102466103cd3660046119f4565b610f20565b6102466103e036600461181a565b61111a565b6101fb6103f33660046115cf565b611193565b61040b6104063660046115cf565b6111ba565b6040516101df959493929190611a52565b60006301ffc9a760e01b6001600160e01b03198316148061044d5750636cdb3d1360e11b6001600160e01b03198316145b8061046857506303a24d0760e21b6001600160e01b03198316145b92915050565b6007805461047b90611a96565b80601f01602080910402602001604051908101604052809291908181526020018280546104a790611a96565b80156104f45780601f106104c9576101008083540402835291602001916104f4565b820191906000526020600020905b8154815290600101906020018083116104d757829003601f168201915b505050505081565b6000818152600660205260409020600301546060906001600160a01b031661055d57600460066000848152602001908152602001600020600401604051602001610547929190611b43565b6040516020818303038152906040529050919050565b600082815260066020526040908190206003015490516303a24d0760e21b8152600481018490526001600160a01b03909116908190630e89341c90602401600060405180830381865afa1580156105b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e09190810190611b76565b9392505050565b60035460011461062b5760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b60448201526064015b60405180910390fd5b6002600355600082900361065257604051631cbb4ba560e11b815260040160405180910390fd5b61065b82611193565b61067857604051631cbb4ba560e11b815260040160405180910390fd5b6000828152600660205260409020600201546001600160a01b031633146106b25760405163d8d5894f60e01b815260040160405180910390fd5b6000828152600660205260409020600181015490546106d2908390611c2e565b11156106f157604051630dab6fb160e21b815260040160405180910390fd5b6000828152600660205260408120805483929061070f908490611c2e565b9250508190555061073183838360405180602001604052806000815250611280565b5050600160035550565b84831461077c5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b6044820152606401610622565b336001600160a01b03891614806107b657506001600160a01b038816600090815260016020908152604080832033845290915290205460ff165b6107f35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610622565b60008060005b878110156108ae5788888281811061081357610813611c41565b90506020020135925086868281811061082e5761082e611c41565b6001600160a01b038e166000908152602081815260408083208984528252822080549390910294909401359550859392509061086b908490611c57565b90915550506001600160a01b038a16600090815260208181526040808320868452909152812080548492906108a1908490611c2e565b90915550506001016107f9565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516109029493929190611c9c565b60405180910390a46001600160a01b0389163b156109a95760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906109569033908f908e908e908e908e908e908e90600401611cec565b6020604051808303816000875af1158015610975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109999190611d50565b6001600160e01b031916146109b6565b6001600160a01b03891615155b6109d25760405162461bcd60e51b815260040161062290611d6d565b50505050505050505050565b6060838214610a215760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b6044820152606401610622565b8367ffffffffffffffff811115610a3a57610a3a611b60565b604051908082528060200260200182016040528015610a63578160200160208202803683370190505b50905060005b84811015610b0a57600080878784818110610a8657610a86611c41565b9050602002016020810190610a9b919061181a565b6001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110610acf57610acf611c41565b90506020020135815260200190815260200160002054828281518110610af757610af7611c41565b6020908102919091010152600101610a69565b50949350505050565b610b1b6113c8565b60405147906000906001600160a01b0384169083908381818185875af1925050503d8060008114610b68576040519150601f19603f3d011682016040523d82523d6000602084013e610b6d565b606091505b5050905080610b8f5760405163d23a9e8960e01b815260040160405180910390fd5b505050565b610b9c6113c8565b6004610b8f828483611ddd565b6004805461047b90611a96565b610bbe6113c8565b610bc86000611422565b565b610bd26113c8565b6000838152600660205260409020600401610bee828483611ddd565b50827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b610c1a856104fc565b604051610c2791906115bc565b60405180910390a2505050565b610c3c6113c8565b6005610b8f828483611ddd565b6008805461047b90611a96565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600354600114610d015760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610622565b60026003556000829003610d2857604051631cbb4ba560e11b815260040160405180910390fd5b610d3182611193565b610d4e57604051631cbb4ba560e11b815260040160405180910390fd5b33600090815260208181526040808320858452909152902054811115610d8757604051633675011b60e11b815260040160405180910390fd5b610d92338383611474565b50506001600355565b610da36113c8565b610dac86611193565b15610dca57604051630f63dbb160e01b815260040160405180910390fd5b84600003610deb5760405163983917b560e01b815260040160405180910390fd5b600086815260066020526040812090815560018101869055600401610e11828483611ddd565b5060008681526006602052604090206002810180546001600160a01b038088166001600160a01b0319928316179092556003909201805491861691909216179055857f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b610e7d826104fc565b604051610e8a91906115bc565b60405180910390a2857ff2a76cedb8a51aa2940f7c973a4b233f863df555abf8d3f1f2ce8043e8ecccea8686868686604051610eca959493929190611e9e565b60405180910390a2505050505050565b6005805461047b90611a96565b610eef6113c8565b60009182526006602052604090912060030180546001600160a01b0319166001600160a01b03909216919091179055565b336001600160a01b0387161480610f5a57506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b610f975760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610622565b6001600160a01b03861660009081526020818152604080832087845290915281208054859290610fc8908490611c57565b90915550506001600160a01b03851660009081526020818152604080832087845290915281208054859290610ffe908490611c2e565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b156110e95760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e61906110969033908b908a908a908a908a90600401611ed1565b6020604051808303816000875af11580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d99190611d50565b6001600160e01b031916146110f6565b6001600160a01b03851615155b6111125760405162461bcd60e51b815260040161062290611d6d565b505050505050565b6111226113c8565b6001600160a01b0381166111875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610622565b61119081611422565b50565b600081815260066020526040812060010154156111b257506001919050565b506000919050565b60066020526000908152604090208054600182015460028301546003840154600485018054949593946001600160a01b039384169492909316926111fd90611a96565b80601f016020809104026020016040519081016040528092919081815260200182805461122990611a96565b80156112765780601f1061124b57610100808354040283529160200191611276565b820191906000526020600020905b81548152906001019060200180831161125957829003601f168201915b5050505050905085565b6001600160a01b038416600090815260208181526040808320868452909152812080548492906112b1908490611c2e565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b156113995760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190611346903390600090899089908990600401611f18565b6020604051808303816000875af1158015611365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113899190611d50565b6001600160e01b031916146113a6565b6001600160a01b03841615155b6113c25760405162461bcd60e51b815260040161062290611d6d565b50505050565b6002546001600160a01b03163314610bc85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610622565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316600090815260208181526040808320858452909152812080548392906114a5908490611c57565b909155505060408051838152602081018390526000916001600160a01b0386169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6001600160a01b038116811461119057600080fd5b6000806040838503121561152057600080fd5b823561152b816114f8565b946020939093013593505050565b6001600160e01b03198116811461119057600080fd5b60006020828403121561156157600080fd5b81356105e081611539565b60005b8381101561158757818101518382015260200161156f565b50506000910152565b600081518084526115a881602086016020860161156c565b601f01601f19169290920160200192915050565b6020815260006105e06020830184611590565b6000602082840312156115e157600080fd5b5035919050565b6000806000606084860312156115fd57600080fd5b8335611608816114f8565b95602085013595506040909401359392505050565b60008083601f84011261162f57600080fd5b50813567ffffffffffffffff81111561164757600080fd5b6020830191508360208260051b850101111561166257600080fd5b9250929050565b60008083601f84011261167b57600080fd5b50813567ffffffffffffffff81111561169357600080fd5b60208301915083602082850101111561166257600080fd5b60008060008060008060008060a0898b0312156116c757600080fd5b88356116d2816114f8565b975060208901356116e2816114f8565b9650604089013567ffffffffffffffff808211156116ff57600080fd5b61170b8c838d0161161d565b909850965060608b013591508082111561172457600080fd5b6117308c838d0161161d565b909650945060808b013591508082111561174957600080fd5b506117568b828c01611669565b999c989b5096995094979396929594505050565b6000806000806040858703121561178057600080fd5b843567ffffffffffffffff8082111561179857600080fd5b6117a48883890161161d565b909650945060208701359150808211156117bd57600080fd5b506117ca8782880161161d565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b8181101561180e578351835292840192918401916001016117f2565b50909695505050505050565b60006020828403121561182c57600080fd5b81356105e0816114f8565b6000806020838503121561184a57600080fd5b823567ffffffffffffffff81111561186157600080fd5b61186d85828601611669565b90969095509350505050565b60008060006040848603121561188e57600080fd5b83359250602084013567ffffffffffffffff8111156118ac57600080fd5b6118b886828701611669565b9497909650939450505050565b600080604083850312156118d857600080fd5b82356118e3816114f8565b9150602083013580151581146118f857600080fd5b809150509250929050565b6000806040838503121561191657600080fd5b50508035926020909101359150565b60008060008060008060a0878903121561193e57600080fd5b86359550602087013594506040870135611957816114f8565b93506060870135611967816114f8565b9250608087013567ffffffffffffffff81111561198357600080fd5b61198f89828a01611669565b979a9699509497509295939492505050565b600080604083850312156119b457600080fd5b82356119bf816114f8565b915060208301356118f8816114f8565b600080604083850312156119e257600080fd5b8235915060208301356118f8816114f8565b60008060008060008060a08789031215611a0d57600080fd5b8635611a18816114f8565b95506020870135611a28816114f8565b94506040870135935060608701359250608087013567ffffffffffffffff81111561198357600080fd5b858152602081018590526001600160a01b0384811660408301528316606082015260a060808201819052600090611a8b90830184611590565b979650505050505050565b600181811c90821680611aaa57607f821691505b602082108103611aca57634e487b7160e01b600052602260045260246000fd5b50919050565b60008154611add81611a96565b60018281168015611af55760018114611b0a57611b39565b60ff1984168752821515830287019450611b39565b8560005260208060002060005b85811015611b305781548a820152908401908201611b17565b50505082870194505b5050505092915050565b6000611b58611b528386611ad0565b84611ad0565b949350505050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611b8857600080fd5b815167ffffffffffffffff80821115611ba057600080fd5b818401915084601f830112611bb457600080fd5b815181811115611bc657611bc6611b60565b604051601f8201601f19908116603f01168101908382118183101715611bee57611bee611b60565b81604052828152876020848701011115611c0757600080fd5b611a8b83602083016020880161156c565b634e487b7160e01b600052601160045260246000fd5b8082018082111561046857610468611c18565b634e487b7160e01b600052603260045260246000fd5b8181038181111561046857610468611c18565b81835260006001600160fb1b03831115611c8357600080fd5b8260051b80836020870137939093016020019392505050565b604081526000611cb0604083018688611c6a565b8281036020840152611a8b818587611c6a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a060408201819052600090611d19908301888a611c6a565b8281036060840152611d2c818789611c6a565b90508281036080840152611d41818587611cc3565b9b9a5050505050505050505050565b600060208284031215611d6257600080fd5b81516105e081611539565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f821115610b8f57600081815260208120601f850160051c81016020861015611dbe5750805b601f850160051c820191505b8181101561111257828155600101611dca565b67ffffffffffffffff831115611df557611df5611b60565b611e0983611e038354611a96565b83611d97565b6000601f841160018114611e3d5760008515611e255750838201355b600019600387901b1c1916600186901b178355611e97565b600083815260209020601f19861690835b82811015611e6e5786850135825560209485019460019092019101611e4e565b5086821015611e8b5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8581526001600160a01b03858116602083015284166040820152608060608201819052600090611a8b9083018486611cc3565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090611f0c9083018486611cc3565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611a8b9083018461159056fea2646970667358221220c35f224980ea5f5e34dc5efc07876deafa552ef9a7bec4af17957bfab0bd56aa64736f6c63430008100033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000007697066733a2f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d5566435234797847793362616a5646754c754e526978364a474e6943735248786a6638776b6b456b6e7138410000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a85760003560e01c8063869f7594116100f9578063e8a3d48511610097578063f242432a11610071578063f242432a146103bf578063f2fde38b146103d2578063fbcbeded146103e5578063fd763996146103f857600080fd5b8063e8a3d48514610376578063e985e9c51461037e578063f134e137146103ac57600080fd5b806395d89b41116100d357806395d89b4114610335578063a22cb4651461033d578063b390c0ab14610350578063baa5cb481461036357600080fd5b8063869f7594146102e45780638da5cb5b14610307578063938e3d7b1461032257600080fd5b80632eb2c2d61161016657806355f804b31161014057806355f804b3146102ae5780636c0360eb146102c1578063715018a6146102c957806377438d58146102d157600080fd5b80632eb2c2d6146102685780634e1273f41461027b57806351cff8d91461029b57600080fd5b8062fdd58e146101ad57806301ffc9a7146101e857806306fdde031461020b5780630e89341c14610220578063156e29f6146102335780631bb7508214610248575b600080fd5b6101d56101bb36600461150d565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b6101fb6101f636600461154f565b61041c565b60405190151581526020016101df565b61021361046e565b6040516101df91906115bc565b61021361022e3660046115cf565b6104fc565b6102466102413660046115e8565b6105e7565b005b6101d56102563660046115cf565b60009081526006602052604090205490565b6102466102763660046116ab565b61073b565b61028e61028936600461176a565b6109de565b6040516101df91906117d6565b6102466102a936600461181a565b610b13565b6102466102bc366004611837565b610b94565b610213610ba9565b610246610bb6565b6102466102df366004611879565b610bca565b6101d56102f23660046115cf565b60009081526006602052604090206001015490565b6002546040516001600160a01b0390911681526020016101df565b610246610330366004611837565b610c34565b610213610c49565b61024661034b3660046118c5565b610c56565b61024661035e366004611903565b610cc2565b610246610371366004611925565b610d9b565b610213610eda565b6101fb61038c3660046119a1565b600160209081526000928352604080842090915290825290205460ff1681565b6102466103ba3660046119cf565b610ee7565b6102466103cd3660046119f4565b610f20565b6102466103e036600461181a565b61111a565b6101fb6103f33660046115cf565b611193565b61040b6104063660046115cf565b6111ba565b6040516101df959493929190611a52565b60006301ffc9a760e01b6001600160e01b03198316148061044d5750636cdb3d1360e11b6001600160e01b03198316145b8061046857506303a24d0760e21b6001600160e01b03198316145b92915050565b6007805461047b90611a96565b80601f01602080910402602001604051908101604052809291908181526020018280546104a790611a96565b80156104f45780601f106104c9576101008083540402835291602001916104f4565b820191906000526020600020905b8154815290600101906020018083116104d757829003601f168201915b505050505081565b6000818152600660205260409020600301546060906001600160a01b031661055d57600460066000848152602001908152602001600020600401604051602001610547929190611b43565b6040516020818303038152906040529050919050565b600082815260066020526040908190206003015490516303a24d0760e21b8152600481018490526001600160a01b03909116908190630e89341c90602401600060405180830381865afa1580156105b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105e09190810190611b76565b9392505050565b60035460011461062b5760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b60448201526064015b60405180910390fd5b6002600355600082900361065257604051631cbb4ba560e11b815260040160405180910390fd5b61065b82611193565b61067857604051631cbb4ba560e11b815260040160405180910390fd5b6000828152600660205260409020600201546001600160a01b031633146106b25760405163d8d5894f60e01b815260040160405180910390fd5b6000828152600660205260409020600181015490546106d2908390611c2e565b11156106f157604051630dab6fb160e21b815260040160405180910390fd5b6000828152600660205260408120805483929061070f908490611c2e565b9250508190555061073183838360405180602001604052806000815250611280565b5050600160035550565b84831461077c5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b6044820152606401610622565b336001600160a01b03891614806107b657506001600160a01b038816600090815260016020908152604080832033845290915290205460ff165b6107f35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610622565b60008060005b878110156108ae5788888281811061081357610813611c41565b90506020020135925086868281811061082e5761082e611c41565b6001600160a01b038e166000908152602081815260408083208984528252822080549390910294909401359550859392509061086b908490611c57565b90915550506001600160a01b038a16600090815260208181526040808320868452909152812080548492906108a1908490611c2e565b90915550506001016107f9565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516109029493929190611c9c565b60405180910390a46001600160a01b0389163b156109a95760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906109569033908f908e908e908e908e908e908e90600401611cec565b6020604051808303816000875af1158015610975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109999190611d50565b6001600160e01b031916146109b6565b6001600160a01b03891615155b6109d25760405162461bcd60e51b815260040161062290611d6d565b50505050505050505050565b6060838214610a215760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b6044820152606401610622565b8367ffffffffffffffff811115610a3a57610a3a611b60565b604051908082528060200260200182016040528015610a63578160200160208202803683370190505b50905060005b84811015610b0a57600080878784818110610a8657610a86611c41565b9050602002016020810190610a9b919061181a565b6001600160a01b03166001600160a01b031681526020019081526020016000206000858584818110610acf57610acf611c41565b90506020020135815260200190815260200160002054828281518110610af757610af7611c41565b6020908102919091010152600101610a69565b50949350505050565b610b1b6113c8565b60405147906000906001600160a01b0384169083908381818185875af1925050503d8060008114610b68576040519150601f19603f3d011682016040523d82523d6000602084013e610b6d565b606091505b5050905080610b8f5760405163d23a9e8960e01b815260040160405180910390fd5b505050565b610b9c6113c8565b6004610b8f828483611ddd565b6004805461047b90611a96565b610bbe6113c8565b610bc86000611422565b565b610bd26113c8565b6000838152600660205260409020600401610bee828483611ddd565b50827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b610c1a856104fc565b604051610c2791906115bc565b60405180910390a2505050565b610c3c6113c8565b6005610b8f828483611ddd565b6008805461047b90611a96565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b600354600114610d015760405162461bcd60e51b815260206004820152600a6024820152695245454e5452414e435960b01b6044820152606401610622565b60026003556000829003610d2857604051631cbb4ba560e11b815260040160405180910390fd5b610d3182611193565b610d4e57604051631cbb4ba560e11b815260040160405180910390fd5b33600090815260208181526040808320858452909152902054811115610d8757604051633675011b60e11b815260040160405180910390fd5b610d92338383611474565b50506001600355565b610da36113c8565b610dac86611193565b15610dca57604051630f63dbb160e01b815260040160405180910390fd5b84600003610deb5760405163983917b560e01b815260040160405180910390fd5b600086815260066020526040812090815560018101869055600401610e11828483611ddd565b5060008681526006602052604090206002810180546001600160a01b038088166001600160a01b0319928316179092556003909201805491861691909216179055857f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b610e7d826104fc565b604051610e8a91906115bc565b60405180910390a2857ff2a76cedb8a51aa2940f7c973a4b233f863df555abf8d3f1f2ce8043e8ecccea8686868686604051610eca959493929190611e9e565b60405180910390a2505050505050565b6005805461047b90611a96565b610eef6113c8565b60009182526006602052604090912060030180546001600160a01b0319166001600160a01b03909216919091179055565b336001600160a01b0387161480610f5a57506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b610f975760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610622565b6001600160a01b03861660009081526020818152604080832087845290915281208054859290610fc8908490611c57565b90915550506001600160a01b03851660009081526020818152604080832087845290915281208054859290610ffe908490611c2e565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b156110e95760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e61906110969033908b908a908a908a908a90600401611ed1565b6020604051808303816000875af11580156110b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d99190611d50565b6001600160e01b031916146110f6565b6001600160a01b03851615155b6111125760405162461bcd60e51b815260040161062290611d6d565b505050505050565b6111226113c8565b6001600160a01b0381166111875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610622565b61119081611422565b50565b600081815260066020526040812060010154156111b257506001919050565b506000919050565b60066020526000908152604090208054600182015460028301546003840154600485018054949593946001600160a01b039384169492909316926111fd90611a96565b80601f016020809104026020016040519081016040528092919081815260200182805461122990611a96565b80156112765780601f1061124b57610100808354040283529160200191611276565b820191906000526020600020905b81548152906001019060200180831161125957829003601f168201915b5050505050905085565b6001600160a01b038416600090815260208181526040808320868452909152812080548492906112b1908490611c2e565b909155505060408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b156113995760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e6190611346903390600090899089908990600401611f18565b6020604051808303816000875af1158015611365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113899190611d50565b6001600160e01b031916146113a6565b6001600160a01b03841615155b6113c25760405162461bcd60e51b815260040161062290611d6d565b50505050565b6002546001600160a01b03163314610bc85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610622565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316600090815260208181526040808320858452909152812080548392906114a5908490611c57565b909155505060408051838152602081018390526000916001600160a01b0386169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b6001600160a01b038116811461119057600080fd5b6000806040838503121561152057600080fd5b823561152b816114f8565b946020939093013593505050565b6001600160e01b03198116811461119057600080fd5b60006020828403121561156157600080fd5b81356105e081611539565b60005b8381101561158757818101518382015260200161156f565b50506000910152565b600081518084526115a881602086016020860161156c565b601f01601f19169290920160200192915050565b6020815260006105e06020830184611590565b6000602082840312156115e157600080fd5b5035919050565b6000806000606084860312156115fd57600080fd5b8335611608816114f8565b95602085013595506040909401359392505050565b60008083601f84011261162f57600080fd5b50813567ffffffffffffffff81111561164757600080fd5b6020830191508360208260051b850101111561166257600080fd5b9250929050565b60008083601f84011261167b57600080fd5b50813567ffffffffffffffff81111561169357600080fd5b60208301915083602082850101111561166257600080fd5b60008060008060008060008060a0898b0312156116c757600080fd5b88356116d2816114f8565b975060208901356116e2816114f8565b9650604089013567ffffffffffffffff808211156116ff57600080fd5b61170b8c838d0161161d565b909850965060608b013591508082111561172457600080fd5b6117308c838d0161161d565b909650945060808b013591508082111561174957600080fd5b506117568b828c01611669565b999c989b5096995094979396929594505050565b6000806000806040858703121561178057600080fd5b843567ffffffffffffffff8082111561179857600080fd5b6117a48883890161161d565b909650945060208701359150808211156117bd57600080fd5b506117ca8782880161161d565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b8181101561180e578351835292840192918401916001016117f2565b50909695505050505050565b60006020828403121561182c57600080fd5b81356105e0816114f8565b6000806020838503121561184a57600080fd5b823567ffffffffffffffff81111561186157600080fd5b61186d85828601611669565b90969095509350505050565b60008060006040848603121561188e57600080fd5b83359250602084013567ffffffffffffffff8111156118ac57600080fd5b6118b886828701611669565b9497909650939450505050565b600080604083850312156118d857600080fd5b82356118e3816114f8565b9150602083013580151581146118f857600080fd5b809150509250929050565b6000806040838503121561191657600080fd5b50508035926020909101359150565b60008060008060008060a0878903121561193e57600080fd5b86359550602087013594506040870135611957816114f8565b93506060870135611967816114f8565b9250608087013567ffffffffffffffff81111561198357600080fd5b61198f89828a01611669565b979a9699509497509295939492505050565b600080604083850312156119b457600080fd5b82356119bf816114f8565b915060208301356118f8816114f8565b600080604083850312156119e257600080fd5b8235915060208301356118f8816114f8565b60008060008060008060a08789031215611a0d57600080fd5b8635611a18816114f8565b95506020870135611a28816114f8565b94506040870135935060608701359250608087013567ffffffffffffffff81111561198357600080fd5b858152602081018590526001600160a01b0384811660408301528316606082015260a060808201819052600090611a8b90830184611590565b979650505050505050565b600181811c90821680611aaa57607f821691505b602082108103611aca57634e487b7160e01b600052602260045260246000fd5b50919050565b60008154611add81611a96565b60018281168015611af55760018114611b0a57611b39565b60ff1984168752821515830287019450611b39565b8560005260208060002060005b85811015611b305781548a820152908401908201611b17565b50505082870194505b5050505092915050565b6000611b58611b528386611ad0565b84611ad0565b949350505050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611b8857600080fd5b815167ffffffffffffffff80821115611ba057600080fd5b818401915084601f830112611bb457600080fd5b815181811115611bc657611bc6611b60565b604051601f8201601f19908116603f01168101908382118183101715611bee57611bee611b60565b81604052828152876020848701011115611c0757600080fd5b611a8b83602083016020880161156c565b634e487b7160e01b600052601160045260246000fd5b8082018082111561046857610468611c18565b634e487b7160e01b600052603260045260246000fd5b8181038181111561046857610468611c18565b81835260006001600160fb1b03831115611c8357600080fd5b8260051b80836020870137939093016020019392505050565b604081526000611cb0604083018688611c6a565b8281036020840152611a8b818587611c6a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a060408201819052600090611d19908301888a611c6a565b8281036060840152611d2c818789611c6a565b90508281036080840152611d41818587611cc3565b9b9a5050505050505050505050565b600060208284031215611d6257600080fd5b81516105e081611539565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b601f821115610b8f57600081815260208120601f850160051c81016020861015611dbe5750805b601f850160051c820191505b8181101561111257828155600101611dca565b67ffffffffffffffff831115611df557611df5611b60565b611e0983611e038354611a96565b83611d97565b6000601f841160018114611e3d5760008515611e255750838201355b600019600387901b1c1916600186901b178355611e97565b600083815260209020601f19861690835b82811015611e6e5786850135825560209485019460019092019101611e4e565b5086821015611e8b5760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8581526001600160a01b03858116602083015284166040820152608060608201819052600090611a8b9083018486611cc3565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090611f0c9083018486611cc3565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090611a8b9083018461159056fea2646970667358221220c35f224980ea5f5e34dc5efc07876deafa552ef9a7bec4af17957bfab0bd56aa64736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000007697066733a2f2f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d5566435234797847793362616a5646754c754e526978364a474e6943735248786a6638776b6b456b6e7138410000000000000000000000
-----Decoded View---------------
Arg [0] : _baseURI (string): ipfs://
Arg [1] : _contractURI (string): ipfs://QmUfCR4yxGy3bajVFuLuNRix6JGNiCsRHxjf8wkkEknq8A
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000007
Arg [3] : 697066733a2f2f00000000000000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000035
Arg [5] : 697066733a2f2f516d5566435234797847793362616a5646754c754e52697836
Arg [6] : 4a474e6943735248786a6638776b6b456b6e7138410000000000000000000000
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.