Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 3,406 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Safe Transfer Fr... | 24629756 | 28 hrs ago | IN | 0 ETH | 0.00011788 | ||||
| Safe Transfer Fr... | 24622615 | 2 days ago | IN | 0 ETH | 0.00000749 | ||||
| Transfer From | 24621479 | 2 days ago | IN | 0 ETH | 0.00012982 | ||||
| Set Approval For... | 24620316 | 2 days ago | IN | 0 ETH | 0.00003063 | ||||
| Set Approval For... | 24620215 | 2 days ago | IN | 0 ETH | 0.00005003 | ||||
| Set Approval For... | 24615160 | 3 days ago | IN | 0 ETH | 0.00000192 | ||||
| Safe Transfer Fr... | 24600828 | 5 days ago | IN | 0 ETH | 0.00000303 | ||||
| Safe Transfer Fr... | 24600825 | 5 days ago | IN | 0 ETH | 0.00000263 | ||||
| Safe Transfer Fr... | 24600822 | 5 days ago | IN | 0 ETH | 0.00000223 | ||||
| Safe Transfer Fr... | 24600435 | 5 days ago | IN | 0 ETH | 0.00013733 | ||||
| Safe Transfer Fr... | 24563708 | 10 days ago | IN | 0 ETH | 0.00000298 | ||||
| Set Approval For... | 24557728 | 11 days ago | IN | 0 ETH | 0.0000989 | ||||
| Set Approval For... | 24549941 | 12 days ago | IN | 0 ETH | 0.00009871 | ||||
| Safe Transfer Fr... | 24544979 | 13 days ago | IN | 0 ETH | 0.00009291 | ||||
| Set Approval For... | 24544960 | 13 days ago | IN | 0 ETH | 0.00009444 | ||||
| Safe Transfer Fr... | 24537203 | 14 days ago | IN | 0 ETH | 0.00009452 | ||||
| Safe Transfer Fr... | 24521197 | 16 days ago | IN | 0 ETH | 0.00013145 | ||||
| Safe Transfer Fr... | 24502133 | 18 days ago | IN | 0 ETH | 0.000093 | ||||
| Safe Transfer Fr... | 24502119 | 18 days ago | IN | 0 ETH | 0.00012777 | ||||
| Safe Transfer Fr... | 24477953 | 22 days ago | IN | 0 ETH | 0.00010697 | ||||
| Set Approval For... | 24470344 | 23 days ago | IN | 0 ETH | 0.0000965 | ||||
| Safe Transfer Fr... | 24462444 | 24 days ago | IN | 0 ETH | 0.00011809 | ||||
| Safe Transfer Fr... | 24455628 | 25 days ago | IN | 0 ETH | 0.00008333 | ||||
| Set Approval For... | 24455611 | 25 days ago | IN | 0 ETH | 0.00009383 | ||||
| Set Approval For... | 24418506 | 30 days ago | IN | 0 ETH | 0.00009514 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
QuantumUnlocked
Compiler Version
v0.8.11+commit.d7f03943
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.11;
import {ERC721 as ERC721S} from "@rari-capital/solmate/src/tokens/ERC721.sol";
import "@rari-capital/solmate/src/auth/Auth.sol";
import "@openzeppelin/contracts/utils/structs/BitMaps.sol";
import "@openzeppelin/contracts/utils/Strings.sol";
import "./ERC2981V2.sol";
/// @title The Quantum Unlocked. Speciality drops for the quantum keys are released here
/// @author jcbdev
contract QuantumUnlocked is ERC721S, ERC2981, Auth {
using Strings for uint256;
using BitMaps for BitMaps.BitMap;
/// >>>>>>>>>>>>>>>>>>>>>>> EVENTS <<<<<<<<<<<<<<<<<<<<<<<<<< ///
event DropMint(address indexed to, uint256 indexed dropId, uint256 indexed variant, uint256 id);
/// >>>>>>>>>>>>>>>>>>>>>>> STATE <<<<<<<<<<<<<<<<<<<<<<<<<< ///
mapping (uint128 => string) public dropCID;
mapping (uint128 => uint128) public dropSupply;
mapping (uint256 => uint256) public tokenVariant;
string private _baseURI = "https://core-api.quantum.art/v1/metadata/unlocked/";
string private _ipfsURI = "ipfs://";
address private _minter;
/// >>>>>>>>>>>>>>>>>>>>> CONSTRUCTOR <<<<<<<<<<<<<<<<<<<<<< ///
/// @notice Deploys QuantumUnlocked
/// @dev Initiates the Auth module with no authority and the sender as the owner
/// @param owner The owner of the contract
/// @param authority address of the deployed authority
constructor(address owner, address authority) ERC721S("QuantumUnlocked", "QKU") Auth(owner, Authority(authority)) {
_baseURI = "https://core-api.quantum.art/v1/metadata/unlocked/";
_ipfsURI = "ipfs://";
}
/// >>>>>>>>>>>>>>>>>>>>> INTERNAL <<<<<<<<<<<<<<<<<<<<<< ///
/// @notice get the token id from the drop id and sequence number
/// @param dropId The drop id
/// @param sequence the sequence number of the minted token within the drop
/// @return tokenId the combined token id
function _tokenId(uint128 dropId, uint128 sequence) internal pure returns (uint256 tokenId) {
tokenId |= uint256(dropId) << 128;
tokenId |= uint256(sequence);
return tokenId;
}
/// @notice extract the drop id and the sequence number from the token id
/// @param tokenId The token id to extract the values from
/// @return uint128 the drop id
/// @return uint128 the sequence number
function _splitTokenId(uint256 tokenId) internal pure returns (uint128, uint128) {
return (uint128(tokenId >> 128), uint128(tokenId));
}
/// >>>>>>>>>>>>>>>>>>>>> RESTRICTED <<<<<<<<<<<<<<<<<<<<<< ///
/// @notice set address of the minter
/// @param minter The address of the minter - should be Sales Platform
function setMinter(address minter) public requiresAuth {
_minter = minter;
}
/// @notice set the baseURI
/// @param baseURI new base
function setBaseURI(string calldata baseURI) public requiresAuth {
_baseURI = baseURI;
}
/// @notice set the base ipfs URI
/// @param ipfsURI new base
function setIpfsURI(string calldata ipfsURI) public requiresAuth {
_ipfsURI = ipfsURI;
}
/// @notice set the IPFS CID
/// @param dropId The drop id
/// @param cid cid
function setCID(uint128 dropId, string calldata cid) public requiresAuth {
dropCID[dropId] = cid;
}
/// @notice sets the recipient of the royalties
/// @param recipient address of the recipient
function setRoyaltyRecipient(address recipient) public requiresAuth {
_royaltyRecipient = recipient;
}
/// @notice sets the fee of royalties
/// @dev The fee denominator is 10000 in BPS.
/// @param fee fee
/*
Example
This would set the fee at 5%
```
KeyUnlocks.setRoyaltyFee(500)
```
*/
function setRoyaltyFee(uint256 fee) public requiresAuth {
_royaltyFee = fee;
}
/// @notice Mints new tokens
/// @dev there is no check regarding limiting supply
/// @param to recipient of newly minted tokens
/// @param dropId id of the key
function mint(address to, uint128 dropId, uint256 variant) public returns (uint256) {
require(msg.sender == owner || msg.sender == _minter, "NOT_AUTHORIZED");
dropSupply[dropId] += 1;
uint256 tokenId = _tokenId(dropId, uint128(dropSupply[dropId]));
_safeMint(to, tokenId);
if (variant > 0) {
tokenVariant[tokenId] = variant;
}
emit DropMint(to, dropId, variant, tokenId);
return tokenId;
}
/// @notice Burns token that has been redeemed for something else
/// @dev Sales platform only
/// @param tokenId id of the tokens
function redeemBurn(uint256 tokenId) public requiresAuth {
_burn(tokenId);
}
/// >>>>>>>>>>>>>>>>>>>>> VIEW <<<<<<<<<<<<<<<<<<<<<< ///
/// @notice Returns the URI of the token
/// @param tokenId id of the token
/// @return URI for the token ; expected to be ipfs://<cid>
function tokenURI(uint256 tokenId) public view override returns (string memory) {
(uint128 dropId, uint128 sequenceNumber) = _splitTokenId(tokenId);
uint256 actualSequence = tokenVariant[tokenId] > 0 ? tokenVariant[tokenId] : sequenceNumber;
if (bytes(dropCID[dropId]).length > 0)
return string(abi.encodePacked(_ipfsURI, dropCID[dropId], "/" , actualSequence.toString()));
else
return string(abi.encodePacked(_baseURI, uint256(dropId).toString(), "/" , actualSequence.toString()));
}
/// >>>>>>>>>>>>>>>>>>>>> EXTERNAL <<<<<<<<<<<<<<<<<<<<<< ///
/// @notice Burns token
/// @dev Can be called by the owner or approved operator
/// @param tokenId id of the tokens
function burn(uint256 tokenId) public {
address owner = ownerOf[tokenId];
require(
msg.sender == owner || msg.sender == getApproved[tokenId] || isApprovedForAll[owner][msg.sender],
"NOT_AUTHORIZED"
);
_burn(tokenId);
}
function supportsInterface(bytes4 interfaceId) public pure virtual override(ERC721S, ERC2981) returns (bool) {
return ERC721S.supportsInterface(interfaceId) || ERC2981.supportsInterface(interfaceId);
}
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;
/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
/// @dev Note that balanceOf does not revert if passed the zero address, in defiance of the ERC.
abstract contract ERC721 {
/*///////////////////////////////////////////////////////////////
EVENTS
//////////////////////////////////////////////////////////////*/
event Transfer(address indexed from, address indexed to, uint256 indexed id);
event Approval(address indexed owner, address indexed spender, uint256 indexed id);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
/*///////////////////////////////////////////////////////////////
METADATA STORAGE/LOGIC
//////////////////////////////////////////////////////////////*/
string public name;
string public symbol;
function tokenURI(uint256 id) public view virtual returns (string memory);
/*///////////////////////////////////////////////////////////////
ERC721 STORAGE
//////////////////////////////////////////////////////////////*/
mapping(address => uint256) public balanceOf;
mapping(uint256 => address) public ownerOf;
mapping(uint256 => address) public getApproved;
mapping(address => mapping(address => bool)) public isApprovedForAll;
/*///////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////*/
constructor(string memory _name, string memory _symbol) {
name = _name;
symbol = _symbol;
}
/*///////////////////////////////////////////////////////////////
ERC721 LOGIC
//////////////////////////////////////////////////////////////*/
function approve(address spender, uint256 id) public virtual {
address owner = ownerOf[id];
require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");
getApproved[id] = spender;
emit Approval(owner, spender, id);
}
function setApprovalForAll(address operator, bool approved) public virtual {
isApprovedForAll[msg.sender][operator] = approved;
emit ApprovalForAll(msg.sender, operator, approved);
}
function transferFrom(
address from,
address to,
uint256 id
) public virtual {
require(from == ownerOf[id], "WRONG_FROM");
require(to != address(0), "INVALID_RECIPIENT");
require(
msg.sender == from || msg.sender == getApproved[id] || isApprovedForAll[from][msg.sender],
"NOT_AUTHORIZED"
);
// Underflow of the sender's balance is impossible because we check for
// ownership above and the recipient's balance can't realistically overflow.
unchecked {
balanceOf[from]--;
balanceOf[to]++;
}
ownerOf[id] = to;
delete getApproved[id];
emit Transfer(from, to, id);
}
function safeTransferFrom(
address from,
address to,
uint256 id
) public virtual {
transferFrom(from, to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
function safeTransferFrom(
address from,
address to,
uint256 id,
bytes memory data
) public virtual {
transferFrom(from, to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
/*///////////////////////////////////////////////////////////////
ERC165 LOGIC
//////////////////////////////////////////////////////////////*/
function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) {
return
interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
}
/*///////////////////////////////////////////////////////////////
INTERNAL MINT/BURN LOGIC
//////////////////////////////////////////////////////////////*/
function _mint(address to, uint256 id) internal virtual {
require(to != address(0), "INVALID_RECIPIENT");
require(ownerOf[id] == address(0), "ALREADY_MINTED");
// Counter overflow is incredibly unrealistic.
unchecked {
balanceOf[to]++;
}
ownerOf[id] = to;
emit Transfer(address(0), to, id);
}
function _burn(uint256 id) internal virtual {
address owner = ownerOf[id];
require(ownerOf[id] != address(0), "NOT_MINTED");
// Ownership check above ensures no underflow.
unchecked {
balanceOf[owner]--;
}
delete ownerOf[id];
delete getApproved[id];
emit Transfer(owner, address(0), id);
}
/*///////////////////////////////////////////////////////////////
INTERNAL SAFE MINT LOGIC
//////////////////////////////////////////////////////////////*/
function _safeMint(address to, uint256 id) internal virtual {
_mint(to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
function _safeMint(
address to,
uint256 id,
bytes memory data
) internal virtual {
_mint(to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
}
/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
interface ERC721TokenReceiver {
function onERC721Received(
address operator,
address from,
uint256 id,
bytes calldata data
) external returns (bytes4);
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;
/// @notice Provides a flexible and updatable auth pattern which is completely separate from application logic.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Auth.sol)
/// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol)
abstract contract Auth {
event OwnerUpdated(address indexed user, address indexed newOwner);
event AuthorityUpdated(address indexed user, Authority indexed newAuthority);
address public owner;
Authority public authority;
constructor(address _owner, Authority _authority) {
owner = _owner;
authority = _authority;
emit OwnerUpdated(msg.sender, _owner);
emit AuthorityUpdated(msg.sender, _authority);
}
modifier requiresAuth() {
require(isAuthorized(msg.sender, msg.sig), "UNAUTHORIZED");
_;
}
function isAuthorized(address user, bytes4 functionSig) internal view virtual returns (bool) {
Authority auth = authority; // Memoizing authority saves us a warm SLOAD, around 100 gas.
// Checking if the caller is the owner only after calling the authority saves gas in most cases, but be
// aware that this makes protected functions uncallable even to the owner if the authority is out of order.
return (address(auth) != address(0) && auth.canCall(user, address(this), functionSig)) || user == owner;
}
function setAuthority(Authority newAuthority) public virtual {
// We check if the caller is the owner first because we want to ensure they can
// always swap out the authority even if it's reverting or using up a lot of gas.
require(msg.sender == owner || authority.canCall(msg.sender, address(this), msg.sig));
authority = newAuthority;
emit AuthorityUpdated(msg.sender, newAuthority);
}
function setOwner(address newOwner) public virtual requiresAuth {
owner = newOwner;
emit OwnerUpdated(msg.sender, newOwner);
}
}
/// @notice A generic interface for a contract which provides authorization data to an Auth instance.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/auth/Auth.sol)
/// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol)
interface Authority {
function canCall(
address user,
address target,
bytes4 functionSig
) external view returns (bool);
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/structs/BitMaps.sol)
pragma solidity ^0.8.0;
/**
* @dev Library for managing uint256 to bool mapping in a compact and efficient way, providing the keys are sequential.
* Largelly inspired by Uniswap's https://github.com/Uniswap/merkle-distributor/blob/master/contracts/MerkleDistributor.sol[merkle-distributor].
*/
library BitMaps {
struct BitMap {
mapping(uint256 => uint256) _data;
}
/**
* @dev Returns whether the bit at `index` is set.
*/
function get(BitMap storage bitmap, uint256 index) internal view returns (bool) {
uint256 bucket = index >> 8;
uint256 mask = 1 << (index & 0xff);
return bitmap._data[bucket] & mask != 0;
}
/**
* @dev Sets the bit at `index` to the boolean `value`.
*/
function setTo(
BitMap storage bitmap,
uint256 index,
bool value
) internal {
if (value) {
set(bitmap, index);
} else {
unset(bitmap, index);
}
}
/**
* @dev Sets the bit at `index`.
*/
function set(BitMap storage bitmap, uint256 index) internal {
uint256 bucket = index >> 8;
uint256 mask = 1 << (index & 0xff);
bitmap._data[bucket] |= mask;
}
/**
* @dev Unsets the bit at `index`.
*/
function unset(BitMap storage bitmap, uint256 index) internal {
uint256 bucket = index >> 8;
uint256 mask = 1 << (index & 0xff);
bitmap._data[bucket] &= ~mask;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)
pragma solidity ^0.8.0;
/**
* @dev String operations.
*/
library Strings {
bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
/**
* @dev Converts a `uint256` to its ASCII `string` decimal representation.
*/
function toString(uint256 value) internal pure returns (string memory) {
// Inspired by OraclizeAPI's implementation - MIT licence
// https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol
if (value == 0) {
return "0";
}
uint256 temp = value;
uint256 digits;
while (temp != 0) {
digits++;
temp /= 10;
}
bytes memory buffer = new bytes(digits);
while (value != 0) {
digits -= 1;
buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
value /= 10;
}
return string(buffer);
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
*/
function toHexString(uint256 value) internal pure returns (string memory) {
if (value == 0) {
return "0x00";
}
uint256 temp = value;
uint256 length = 0;
while (temp != 0) {
length++;
temp >>= 8;
}
return toHexString(value, length);
}
/**
* @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
*/
function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
bytes memory buffer = new bytes(2 * length + 2);
buffer[0] = "0";
buffer[1] = "x";
for (uint256 i = 2 * length + 1; i > 1; --i) {
buffer[i] = _HEX_SYMBOLS[value & 0xf];
value >>= 4;
}
require(value == 0, "Strings: hex length insufficient");
return string(buffer);
}
}pragma solidity >=0.8.0;
/// @title Minimalist ERC2981 implementation.
/// @notice To be used within Quantum, as it was written for its needs.
/// @author exp.table
abstract contract ERC2981 {
/// @dev one global fee for all royalties.
uint256 internal _royaltyFee;
/// @dev one global recipient for all royalties.
address internal _royaltyRecipient;
function royaltyInfo(uint256 tokenId, uint256 salePrice) public view virtual returns (
address receiver,
uint256 royaltyAmount
) {
receiver = _royaltyRecipient;
royaltyAmount = (salePrice * _royaltyFee) / 10000;
}
function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) {
return
interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
interfaceId == 0x2a55205a; // ERC165 Interface ID for ERC2981
}
}{
"optimizer": {
"enabled": true,
"runs": 10000
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"authority","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"dropId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"variant","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"}],"name":"DropMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"","type":"uint128"}],"name":"dropCID","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"","type":"uint128"}],"name":"dropSupply","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint128","name":"dropId","type":"uint128"},{"internalType":"uint256","name":"variant","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"redeemBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"salePrice","type":"uint256"}],"name":"royaltyInfo","outputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"royaltyAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"dropId","type":"uint128"},{"internalType":"string","name":"cid","type":"string"}],"name":"setCID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"ipfsURI","type":"string"}],"name":"setIpfsURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"minter","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setRoyaltyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"setRoyaltyRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenVariant","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60e0604052603260808181529062002bdc60a03980516200002991600d91602090910190620001f7565b5060408051808201909152600780825266697066733a2f2f60c81b60209092019182526200005a91600e91620001f7565b503480156200006857600080fd5b5060405162002c0e38038062002c0e8339810160408190526200008b91620002ba565b604080518082018252600f81526e145d585b9d1d5b555b9b1bd8dad959608a1b602080830191825283518085019094526003845262514b5560e81b90840152815185938593929091620000e191600091620001f7565b508051620000f7906001906020840190620001f7565b5050600880546001600160a01b038086166001600160a01b03199283168117909355600980549186169190921617905560405190915033907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a3505060405180606001604052806032815260200162002bdc603291398051620001bd91600d91602090910190620001f7565b5060408051808201909152600780825266697066733a2f2f60c81b6020909201918252620001ee91600e91620001f7565b5050506200032f565b8280546200020590620002f2565b90600052602060002090601f01602090048101928262000229576000855562000274565b82601f106200024457805160ff191683800117855562000274565b8280016001018555821562000274579182015b828111156200027457825182559160200191906001019062000257565b506200028292915062000286565b5090565b5b8082111562000282576000815560010162000287565b80516001600160a01b0381168114620002b557600080fd5b919050565b60008060408385031215620002ce57600080fd5b620002d9836200029d565b9150620002e9602084016200029d565b90509250929050565b600181811c908216806200030757607f821691505b602082108114156200032957634e487b7160e01b600052602260045260246000fd5b50919050565b61289d806200033f6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80636352211e11610104578063bf7e214f116100a2578063e985e9c511610071578063e985e9c5146104f4578063f6e384e414610522578063fc7d864914610535578063fca3b5aa1461054857600080fd5b8063bf7e214f1461048e578063c87b56dd146104ae578063dd46edb8146104c1578063de5ac894146104e157600080fd5b80638da5cb5b116100de5780638da5cb5b1461044057806395d89b4114610460578063a22cb46514610468578063b88d4fde1461047b57600080fd5b80636352211e146103c957806370a08231146103ff5780637a9e5e4b1461042d57600080fd5b80632a55205a1161017c57806342842e0e1161014b57806342842e0e1461037d57806342966c68146103905780635443e82c146103a357806355f804b3146103b657600080fd5b80632a55205a1461030557806331690734146103445780633e4086e51461035757806341e42f301461036a57600080fd5b8063081812fc116101b8578063081812fc1461026f578063095ea7b3146102ca57806313af4035146102df57806323b872dd146102f257600080fd5b806301ffc9a7146101df57806302efee211461020757806306fdde031461025a575b600080fd5b6101f26101ed366004611ff2565b61055b565b60405190151581526020015b60405180910390f35b61023961021536600461203b565b600b602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016101fe565b61026261057b565b6040516101fe91906120cc565b6102a561027d3660046120df565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fe565b6102dd6102d836600461211a565b610609565b005b6102dd6102ed366004612146565b61073e565b6102dd610300366004612163565b610829565b6103186103133660046121a4565b610aa2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101fe565b6102dd61035236600461220f565b610ae5565b6102dd6103653660046120df565b610b70565b6102dd610378366004612146565b610bef565b6102dd61038b366004612163565b610cb0565b6102dd61039e3660046120df565b610dfb565b6102dd6103b1366004612251565b610ee5565b6102dd6103c436600461220f565b610f91565b6102a56103d73660046120df565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61041f61040d366004612146565b60026020526000908152604090205481565b6040519081526020016101fe565b6102dd61043b366004612146565b611017565b6008546102a59073ffffffffffffffffffffffffffffffffffffffff1681565b610262611174565b6102dd6104763660046122b2565b611181565b6102dd61048936600461231a565b611218565b6009546102a59073ffffffffffffffffffffffffffffffffffffffff1681565b6102626104bc3660046120df565b61134f565b61041f6104cf3660046120df565b600c6020526000908152604090205481565b6102626104ef36600461203b565b61145f565b6101f2610502366004612418565b600560209081526000928352604080842090915290825290205460ff1681565b61041f610530366004612446565b611478565b6102dd6105433660046120df565b611631565b6102dd610556366004612146565b6116b7565b600061056682611778565b80610575575061057582611859565b92915050565b6000805461058890612484565b80601f01602080910402602001604051908101604052809291908181526020018280546105b490612484565b80156106015780601f106105d657610100808354040283529160200191610601565b820191906000526020600020905b8154815290600101906020018083116105e457829003601f168201915b505050505081565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061066c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6106bd5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b61076c336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b6107b85760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a350565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff84811691161461089f5760405162461bcd60e51b815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff82166109025760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016106b4565b3373ffffffffffffffffffffffffffffffffffffffff84161480610949575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b80610984575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b6109d05760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526003825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60075460065473ffffffffffffffffffffffffffffffffffffffff9091169060009061271090610ad29085612507565b610adc9190612573565b90509250929050565b610b13336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610b5f5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b610b6b600e8383611f0d565b505050565b610b9e336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610bea5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600655565b610c1d336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610c695760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610cbb838383610829565b73ffffffffffffffffffffffffffffffffffffffff82163b1580610daf57506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8b9190612587565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610b6b5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016106b4565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1633811480610e51575060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b80610e8c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b610ed85760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016106b4565b610ee1826119ff565b5050565b610f13336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610f5f5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b6fffffffffffffffffffffffffffffffff83166000908152600a60205260409020610f8b908383611f0d565b50505050565b610fbf336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b61100b5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b610b6b600d8383611f0d565b60085473ffffffffffffffffffffffffffffffffffffffff163314806110fa57506009546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201526000357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa1580156110d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fa91906125a4565b61110357600080fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b6001805461058890612484565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611223848484610829565b73ffffffffffffffffffffffffffffffffffffffff83163b158061130357506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061129c9033908990889088906004016125c1565b6020604051808303816000875af11580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df9190612587565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610f8b5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016106b4565b6000818152600c6020526040812054606091608084901c9184919061138657816fffffffffffffffffffffffffffffffff16611396565b6000858152600c60205260409020545b6fffffffffffffffffffffffffffffffff84166000908152600a60205260408120805492935090916113c790612484565b90501115611427576fffffffffffffffffffffffffffffffff83166000908152600a60205260409020600e906113fc83611b2f565b60405160200161140e939291906126db565b6040516020818303038152906040529350505050919050565b600d611444846fffffffffffffffffffffffffffffffff16611b2f565b61144d83611b2f565b60405160200161140e93929190612733565b600a602052600090815260409020805461058890612484565b60085460009073ffffffffffffffffffffffffffffffffffffffff163314806114b85750600f5473ffffffffffffffffffffffffffffffffffffffff1633145b6115045760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016106b4565b6fffffffffffffffffffffffffffffffff8084166000908152600b60205260408120805460019391929161153a91859116612788565b82546101009290920a6fffffffffffffffffffffffffffffffff8181021990931691831602179091558481166000908152600b6020526040812054909250167fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086901b161790506115ad8582611c61565b82156115c5576000818152600c602052604090208390555b82846fffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f6d5335192a1efe736f886245fc1f6dbf882294247353ca1a57cb804607898b898460405161162191815260200190565b60405180910390a4949350505050565b61165f336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b6116ab5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b6116b4816119ff565b50565b6116e5336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b6117315760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061180b57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806105755750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806105755750507fffffffff00000000000000000000000000000000000000000000000000000000167f2a55205a000000000000000000000000000000000000000000000000000000001490565b60095460009073ffffffffffffffffffffffffffffffffffffffff1680158015906119d257506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa1580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d291906125a4565b806119f7575060085473ffffffffffffffffffffffffffffffffffffffff8581169116145b949350505050565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680611a715760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558583526003825280832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915560049092528083208054909216909155518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606081611b6f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611b995780611b83816127bc565b9150611b929050600a83612573565b9150611b73565b60008167ffffffffffffffff811115611bb457611bb46122eb565b6040519080825280601f01601f191660200182016040528015611bde576020820181803683370190505b5090505b84156119f757611bf36001836127f5565b9150611c00600a8661280c565b611c0b906030612820565b60f81b818381518110611c2057611c20612838565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c5a600a86612573565b9450611be2565b611c6b8282611da8565b73ffffffffffffffffffffffffffffffffffffffff82163b1580611d5c57506040517f150b7a0200000000000000000000000000000000000000000000000000000000808252336004830152600060248301819052604483018490526080606484015260848301529073ffffffffffffffffffffffffffffffffffffffff84169063150b7a029060a4016020604051808303816000875af1158015611d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d389190612587565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610ee15760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff8216611e0b5760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016106b4565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611e7d5760405162461bcd60e51b815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080546001019055848352600390915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611f1990612484565b90600052602060002090601f016020900481019282611f3b5760008555611f9f565b82601f10611f72578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611f9f565b82800160010185558215611f9f579182015b82811115611f9f578235825591602001919060010190611f84565b50611fab929150611faf565b5090565b5b80821115611fab5760008155600101611fb0565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146116b457600080fd5b60006020828403121561200457600080fd5b813561200f81611fc4565b9392505050565b80356fffffffffffffffffffffffffffffffff8116811461203657600080fd5b919050565b60006020828403121561204d57600080fd5b61200f82612016565b60005b83811015612071578181015183820152602001612059565b83811115610f8b5750506000910152565b6000815180845261209a816020860160208601612056565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061200f6020830184612082565b6000602082840312156120f157600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146116b457600080fd5b6000806040838503121561212d57600080fd5b8235612138816120f8565b946020939093013593505050565b60006020828403121561215857600080fd5b813561200f816120f8565b60008060006060848603121561217857600080fd5b8335612183816120f8565b92506020840135612193816120f8565b929592945050506040919091013590565b600080604083850312156121b757600080fd5b50508035926020909101359150565b60008083601f8401126121d857600080fd5b50813567ffffffffffffffff8111156121f057600080fd5b60208301915083602082850101111561220857600080fd5b9250929050565b6000806020838503121561222257600080fd5b823567ffffffffffffffff81111561223957600080fd5b612245858286016121c6565b90969095509350505050565b60008060006040848603121561226657600080fd5b61226f84612016565b9250602084013567ffffffffffffffff81111561228b57600080fd5b612297868287016121c6565b9497909650939450505050565b80151581146116b457600080fd5b600080604083850312156122c557600080fd5b82356122d0816120f8565b915060208301356122e0816122a4565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561233057600080fd5b843561233b816120f8565b9350602085013561234b816120f8565b925060408501359150606085013567ffffffffffffffff8082111561236f57600080fd5b818701915087601f83011261238357600080fd5b813581811115612395576123956122eb565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156123db576123db6122eb565b816040528281528a60208487010111156123f457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561242b57600080fd5b8235612436816120f8565b915060208301356122e0816120f8565b60008060006060848603121561245b57600080fd5b8335612466816120f8565b925061247460208501612016565b9150604084013590509250925092565b600181811c9082168061249857607f821691505b602082108114156124d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561253f5761253f6124d8565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261258257612582612544565b500490565b60006020828403121561259957600080fd5b815161200f81611fc4565b6000602082840312156125b657600080fd5b815161200f816122a4565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526126006080830184612082565b9695505050505050565b8054600090600181811c908083168061262457607f831692505b602080841082141561265f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b81801561267357600181146126a2576126cf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616895284890196506126cf565b60008881526020902060005b868110156126c75781548b8201529085019083016126ae565b505084890196505b50505050505092915050565b60006126f06126ea838761260a565b8561260a565b7f2f0000000000000000000000000000000000000000000000000000000000000081528351612726816001840160208801612056565b0160010195945050505050565b600061273f828661260a565b845161274f818360208901612056565b7f2f0000000000000000000000000000000000000000000000000000000000000091019081528351612726816001840160208801612056565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156127b3576127b36124d8565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127ee576127ee6124d8565b5060010190565b600082821015612807576128076124d8565b500390565b60008261281b5761281b612544565b500690565b60008219821115612833576128336124d8565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212209f52495de295bee914760b58cbd34aa3d31885e36004ed564c817e16c1ed9eed64736f6c634300080b003368747470733a2f2f636f72652d6170692e7175616e74756d2e6172742f76312f6d657461646174612f756e6c6f636b65642f000000000000000000000000c5c721caa3cad959818e891b533a34c37946e9bf0000000000000000000000008c1927427eaaca6a64e238544adfb95451cc05a1
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101da5760003560e01c80636352211e11610104578063bf7e214f116100a2578063e985e9c511610071578063e985e9c5146104f4578063f6e384e414610522578063fc7d864914610535578063fca3b5aa1461054857600080fd5b8063bf7e214f1461048e578063c87b56dd146104ae578063dd46edb8146104c1578063de5ac894146104e157600080fd5b80638da5cb5b116100de5780638da5cb5b1461044057806395d89b4114610460578063a22cb46514610468578063b88d4fde1461047b57600080fd5b80636352211e146103c957806370a08231146103ff5780637a9e5e4b1461042d57600080fd5b80632a55205a1161017c57806342842e0e1161014b57806342842e0e1461037d57806342966c68146103905780635443e82c146103a357806355f804b3146103b657600080fd5b80632a55205a1461030557806331690734146103445780633e4086e51461035757806341e42f301461036a57600080fd5b8063081812fc116101b8578063081812fc1461026f578063095ea7b3146102ca57806313af4035146102df57806323b872dd146102f257600080fd5b806301ffc9a7146101df57806302efee211461020757806306fdde031461025a575b600080fd5b6101f26101ed366004611ff2565b61055b565b60405190151581526020015b60405180910390f35b61023961021536600461203b565b600b602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016101fe565b61026261057b565b6040516101fe91906120cc565b6102a561027d3660046120df565b60046020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101fe565b6102dd6102d836600461211a565b610609565b005b6102dd6102ed366004612146565b61073e565b6102dd610300366004612163565b610829565b6103186103133660046121a4565b610aa2565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526020830191909152016101fe565b6102dd61035236600461220f565b610ae5565b6102dd6103653660046120df565b610b70565b6102dd610378366004612146565b610bef565b6102dd61038b366004612163565b610cb0565b6102dd61039e3660046120df565b610dfb565b6102dd6103b1366004612251565b610ee5565b6102dd6103c436600461220f565b610f91565b6102a56103d73660046120df565b60036020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b61041f61040d366004612146565b60026020526000908152604090205481565b6040519081526020016101fe565b6102dd61043b366004612146565b611017565b6008546102a59073ffffffffffffffffffffffffffffffffffffffff1681565b610262611174565b6102dd6104763660046122b2565b611181565b6102dd61048936600461231a565b611218565b6009546102a59073ffffffffffffffffffffffffffffffffffffffff1681565b6102626104bc3660046120df565b61134f565b61041f6104cf3660046120df565b600c6020526000908152604090205481565b6102626104ef36600461203b565b61145f565b6101f2610502366004612418565b600560209081526000928352604080842090915290825290205460ff1681565b61041f610530366004612446565b611478565b6102dd6105433660046120df565b611631565b6102dd610556366004612146565b6116b7565b600061056682611778565b80610575575061057582611859565b92915050565b6000805461058890612484565b80601f01602080910402602001604051908101604052809291908181526020018280546105b490612484565b80156106015780601f106105d657610100808354040283529160200191610601565b820191906000526020600020905b8154815290600101906020018083116105e457829003601f168201915b505050505081565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff163381148061066c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b6106bd5760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064015b60405180910390fd5b60008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b61076c336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b6107b85760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a350565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff84811691161461089f5760405162461bcd60e51b815260206004820152600a60248201527f57524f4e475f46524f4d0000000000000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff82166109025760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016106b4565b3373ffffffffffffffffffffffffffffffffffffffff84161480610949575060008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b80610984575073ffffffffffffffffffffffffffffffffffffffff8316600090815260056020908152604080832033845290915290205460ff165b6109d05760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff808416600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055938616808352848320805460010190558583526003825284832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60075460065473ffffffffffffffffffffffffffffffffffffffff9091169060009061271090610ad29085612507565b610adc9190612573565b90509250929050565b610b13336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610b5f5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b610b6b600e8383611f0d565b505050565b610b9e336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610bea5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600655565b610c1d336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610c695760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610cbb838383610829565b73ffffffffffffffffffffffffffffffffffffffff82163b1580610daf57506040517f150b7a020000000000000000000000000000000000000000000000000000000080825233600483015273ffffffffffffffffffffffffffffffffffffffff858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8b9190612587565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610b6b5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016106b4565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1633811480610e51575060008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1633145b80610e8c575073ffffffffffffffffffffffffffffffffffffffff8116600090815260056020908152604080832033845290915290205460ff165b610ed85760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016106b4565b610ee1826119ff565b5050565b610f13336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b610f5f5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b6fffffffffffffffffffffffffffffffff83166000908152600a60205260409020610f8b908383611f0d565b50505050565b610fbf336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b61100b5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b610b6b600d8383611f0d565b60085473ffffffffffffffffffffffffffffffffffffffff163314806110fa57506009546040517fb70096130000000000000000000000000000000000000000000000000000000081523360048201523060248201526000357fffffffff0000000000000000000000000000000000000000000000000000000016604482015273ffffffffffffffffffffffffffffffffffffffff9091169063b700961390606401602060405180830381865afa1580156110d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fa91906125a4565b61110357600080fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b6001805461058890612484565b33600081815260056020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b611223848484610829565b73ffffffffffffffffffffffffffffffffffffffff83163b158061130357506040517f150b7a02000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061129c9033908990889088906004016125c1565b6020604051808303816000875af11580156112bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112df9190612587565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610f8b5760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016106b4565b6000818152600c6020526040812054606091608084901c9184919061138657816fffffffffffffffffffffffffffffffff16611396565b6000858152600c60205260409020545b6fffffffffffffffffffffffffffffffff84166000908152600a60205260408120805492935090916113c790612484565b90501115611427576fffffffffffffffffffffffffffffffff83166000908152600a60205260409020600e906113fc83611b2f565b60405160200161140e939291906126db565b6040516020818303038152906040529350505050919050565b600d611444846fffffffffffffffffffffffffffffffff16611b2f565b61144d83611b2f565b60405160200161140e93929190612733565b600a602052600090815260409020805461058890612484565b60085460009073ffffffffffffffffffffffffffffffffffffffff163314806114b85750600f5473ffffffffffffffffffffffffffffffffffffffff1633145b6115045760405162461bcd60e51b815260206004820152600e60248201527f4e4f545f415554484f52495a454400000000000000000000000000000000000060448201526064016106b4565b6fffffffffffffffffffffffffffffffff8084166000908152600b60205260408120805460019391929161153a91859116612788565b82546101009290920a6fffffffffffffffffffffffffffffffff8181021990931691831602179091558481166000908152600b6020526040812054909250167fffffffffffffffffffffffffffffffff00000000000000000000000000000000608086901b161790506115ad8582611c61565b82156115c5576000818152600c602052604090208390555b82846fffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f6d5335192a1efe736f886245fc1f6dbf882294247353ca1a57cb804607898b898460405161162191815260200190565b60405180910390a4949350505050565b61165f336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b6116ab5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b6116b4816119ff565b50565b6116e5336000357fffffffff00000000000000000000000000000000000000000000000000000000166118ee565b6117315760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016106b4565b600f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061180b57507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806105755750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806105755750507fffffffff00000000000000000000000000000000000000000000000000000000167f2a55205a000000000000000000000000000000000000000000000000000000001490565b60095460009073ffffffffffffffffffffffffffffffffffffffff1680158015906119d257506040517fb700961300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301523060248301527fffffffff000000000000000000000000000000000000000000000000000000008516604483015282169063b700961390606401602060405180830381865afa1580156119ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d291906125a4565b806119f7575060085473ffffffffffffffffffffffffffffffffffffffff8581169116145b949350505050565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1680611a715760405162461bcd60e51b815260206004820152600a60248201527f4e4f545f4d494e5445440000000000000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff8116600081815260026020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558583526003825280832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915560049092528083208054909216909155518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b606081611b6f57505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611b995780611b83816127bc565b9150611b929050600a83612573565b9150611b73565b60008167ffffffffffffffff811115611bb457611bb46122eb565b6040519080825280601f01601f191660200182016040528015611bde576020820181803683370190505b5090505b84156119f757611bf36001836127f5565b9150611c00600a8661280c565b611c0b906030612820565b60f81b818381518110611c2057611c20612838565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c5a600a86612573565b9450611be2565b611c6b8282611da8565b73ffffffffffffffffffffffffffffffffffffffff82163b1580611d5c57506040517f150b7a0200000000000000000000000000000000000000000000000000000000808252336004830152600060248301819052604483018490526080606484015260848301529073ffffffffffffffffffffffffffffffffffffffff84169063150b7a029060a4016020604051808303816000875af1158015611d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d389190612587565b7fffffffff0000000000000000000000000000000000000000000000000000000016145b610ee15760405162461bcd60e51b815260206004820152601060248201527f554e534146455f524543495049454e540000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff8216611e0b5760405162461bcd60e51b815260206004820152601160248201527f494e56414c49445f524543495049454e5400000000000000000000000000000060448201526064016106b4565b60008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff1615611e7d5760405162461bcd60e51b815260206004820152600e60248201527f414c52454144595f4d494e54454400000000000000000000000000000000000060448201526064016106b4565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260026020908152604080832080546001019055848352600390915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054611f1990612484565b90600052602060002090601f016020900481019282611f3b5760008555611f9f565b82601f10611f72578280017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00823516178555611f9f565b82800160010185558215611f9f579182015b82811115611f9f578235825591602001919060010190611f84565b50611fab929150611faf565b5090565b5b80821115611fab5760008155600101611fb0565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146116b457600080fd5b60006020828403121561200457600080fd5b813561200f81611fc4565b9392505050565b80356fffffffffffffffffffffffffffffffff8116811461203657600080fd5b919050565b60006020828403121561204d57600080fd5b61200f82612016565b60005b83811015612071578181015183820152602001612059565b83811115610f8b5750506000910152565b6000815180845261209a816020860160208601612056565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061200f6020830184612082565b6000602082840312156120f157600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146116b457600080fd5b6000806040838503121561212d57600080fd5b8235612138816120f8565b946020939093013593505050565b60006020828403121561215857600080fd5b813561200f816120f8565b60008060006060848603121561217857600080fd5b8335612183816120f8565b92506020840135612193816120f8565b929592945050506040919091013590565b600080604083850312156121b757600080fd5b50508035926020909101359150565b60008083601f8401126121d857600080fd5b50813567ffffffffffffffff8111156121f057600080fd5b60208301915083602082850101111561220857600080fd5b9250929050565b6000806020838503121561222257600080fd5b823567ffffffffffffffff81111561223957600080fd5b612245858286016121c6565b90969095509350505050565b60008060006040848603121561226657600080fd5b61226f84612016565b9250602084013567ffffffffffffffff81111561228b57600080fd5b612297868287016121c6565b9497909650939450505050565b80151581146116b457600080fd5b600080604083850312156122c557600080fd5b82356122d0816120f8565b915060208301356122e0816122a4565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561233057600080fd5b843561233b816120f8565b9350602085013561234b816120f8565b925060408501359150606085013567ffffffffffffffff8082111561236f57600080fd5b818701915087601f83011261238357600080fd5b813581811115612395576123956122eb565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156123db576123db6122eb565b816040528281528a60208487010111156123f457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561242b57600080fd5b8235612436816120f8565b915060208301356122e0816120f8565b60008060006060848603121561245b57600080fd5b8335612466816120f8565b925061247460208501612016565b9150604084013590509250925092565b600181811c9082168061249857607f821691505b602082108114156124d2577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561253f5761253f6124d8565b500290565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60008261258257612582612544565b500490565b60006020828403121561259957600080fd5b815161200f81611fc4565b6000602082840312156125b657600080fd5b815161200f816122a4565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526126006080830184612082565b9695505050505050565b8054600090600181811c908083168061262457607f831692505b602080841082141561265f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b81801561267357600181146126a2576126cf565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008616895284890196506126cf565b60008881526020902060005b868110156126c75781548b8201529085019083016126ae565b505084890196505b50505050505092915050565b60006126f06126ea838761260a565b8561260a565b7f2f0000000000000000000000000000000000000000000000000000000000000081528351612726816001840160208801612056565b0160010195945050505050565b600061273f828661260a565b845161274f818360208901612056565b7f2f0000000000000000000000000000000000000000000000000000000000000091019081528351612726816001840160208801612056565b60006fffffffffffffffffffffffffffffffff8083168185168083038211156127b3576127b36124d8565b01949350505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127ee576127ee6124d8565b5060010190565b600082821015612807576128076124d8565b500390565b60008261281b5761281b612544565b500690565b60008219821115612833576128336124d8565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212209f52495de295bee914760b58cbd34aa3d31885e36004ed564c817e16c1ed9eed64736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000c5c721caa3cad959818e891b533a34c37946e9bf0000000000000000000000008c1927427eaaca6a64e238544adfb95451cc05a1
-----Decoded View---------------
Arg [0] : owner (address): 0xC5C721caA3cAd959818e891b533a34c37946e9Bf
Arg [1] : authority (address): 0x8c1927427eaAcA6A64E238544ADfb95451cc05A1
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000c5c721caa3cad959818e891b533a34c37946e9bf
Arg [1] : 0000000000000000000000008c1927427eaaca6a64e238544adfb95451cc05a1
Loading...
Loading
Loading...
Loading
OVERVIEW
Digital Culture, Curated. Quantum is an NFT platform for artists and collectors to share their work with the world.Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.