ERC-721
Source Code
Overview
Max Total Supply
0 BB
Holders
414
Transfers
-
0
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
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x59ca6156...e691DA3a6 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
OnChainCredential
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.19;
/// @author devfolio
import "solmate/src/tokens/ERC721.sol";
/// @title The OnChainCredential NFT Contract
/// @author devfolio
/// @notice The ERC721 contract for the OnChainCredential NFT Contract
contract OnChainCredential is ERC721 {
/// @dev The Error thrown when the mint authority is not the caller
error InvalidMintAuthority();
/// @dev The Error thrown when the caller is not allowed to transfer the token
error TransferNotAllowed();
/// @dev The Error thrown when the caller is not the owner
error InvalidCaller();
/// @dev mapping of the tokenId to the metadata
mapping(uint256 => string) private metadata;
/// @dev The addrerss of the mint authority that is allowed to mint the NFT
address internal mint_authority;
/// @notice The owner of the contract
address public owner;
/// @dev The current token ID index
uint256 tokenIDs = 0;
constructor(
string memory name,
string memory symbol,
address _mint_authority,
address _owner
) ERC721(name, symbol) {
mint_authority = _mint_authority;
owner = _owner;
}
/// @notice Mints the OnChainCredential NFT
/// @dev Only the mint authority can mint the NFT
/// @param token_metadata Metadata of the token
/// @param to Address of the receiver of the NFT
function mint(string calldata token_metadata, address to) external {
if (msg.sender != mint_authority) revert InvalidMintAuthority();
uint256 current_token_index = tokenIDs;
metadata[current_token_index] = token_metadata;
_mint(to, current_token_index);
unchecked {
tokenIDs++;
}
}
/// @notice Returns the metadata of the token
/// @param id ID of the token
/// @return Documents the return variables of a contract’s function state variable
function tokenURI(
uint256 id
) public view virtual override returns (string memory) {
return metadata[id];
}
/// @notice Internal Transfer Function
/// @param from address of current owner
/// @param to address of new owner
/// @param id ID of the token
function transferFrom(
address from,
address to,
uint256 id
) public virtual override {
if (msg.sender != owner) revert TransferNotAllowed();
/// @dev Reference:
/// https://github.com/transmissions11/solmate/blob/bfc9c25865a274a7827fea5abf6e4fb64fc64e6c/src/tokens/ERC721.sol#L82
unchecked {
_balanceOf[from]--;
_balanceOf[to]++;
}
_ownerOf[id] = to;
emit Transfer(from, to, id);
}
/// @notice Updates the mint authority of the OnChainCredential Contract
/// @param newAuthority Address of the new mint authority
function updateMintAuthority(address newAuthority) external {
if (msg.sender != owner) revert InvalidCaller();
mint_authority = newAuthority;
}
}// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;
/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721 {
/*//////////////////////////////////////////////////////////////
EVENTS
//////////////////////////////////////////////////////////////*/
event Transfer(address indexed from, address indexed to, uint256 indexed id);
event Approval(address indexed owner, address indexed spender, uint256 indexed id);
event ApprovalForAll(address indexed owner, address indexed operator, bool approved);
/*//////////////////////////////////////////////////////////////
METADATA STORAGE/LOGIC
//////////////////////////////////////////////////////////////*/
string public name;
string public symbol;
function tokenURI(uint256 id) public view virtual returns (string memory);
/*//////////////////////////////////////////////////////////////
ERC721 BALANCE/OWNER STORAGE
//////////////////////////////////////////////////////////////*/
mapping(uint256 => address) internal _ownerOf;
mapping(address => uint256) internal _balanceOf;
function ownerOf(uint256 id) public view virtual returns (address owner) {
require((owner = _ownerOf[id]) != address(0), "NOT_MINTED");
}
function balanceOf(address owner) public view virtual returns (uint256) {
require(owner != address(0), "ZERO_ADDRESS");
return _balanceOf[owner];
}
/*//////////////////////////////////////////////////////////////
ERC721 APPROVAL STORAGE
//////////////////////////////////////////////////////////////*/
mapping(uint256 => address) public getApproved;
mapping(address => mapping(address => bool)) public isApprovedForAll;
/*//////////////////////////////////////////////////////////////
CONSTRUCTOR
//////////////////////////////////////////////////////////////*/
constructor(string memory _name, string memory _symbol) {
name = _name;
symbol = _symbol;
}
/*//////////////////////////////////////////////////////////////
ERC721 LOGIC
//////////////////////////////////////////////////////////////*/
function approve(address spender, uint256 id) public virtual {
address owner = _ownerOf[id];
require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");
getApproved[id] = spender;
emit Approval(owner, spender, id);
}
function setApprovalForAll(address operator, bool approved) public virtual {
isApprovedForAll[msg.sender][operator] = approved;
emit ApprovalForAll(msg.sender, operator, approved);
}
function transferFrom(
address from,
address to,
uint256 id
) public virtual {
require(from == _ownerOf[id], "WRONG_FROM");
require(to != address(0), "INVALID_RECIPIENT");
require(
msg.sender == from || isApprovedForAll[from][msg.sender] || msg.sender == getApproved[id],
"NOT_AUTHORIZED"
);
// Underflow of the sender's balance is impossible because we check for
// ownership above and the recipient's balance can't realistically overflow.
unchecked {
_balanceOf[from]--;
_balanceOf[to]++;
}
_ownerOf[id] = to;
delete getApproved[id];
emit Transfer(from, to, id);
}
function safeTransferFrom(
address from,
address to,
uint256 id
) public virtual {
transferFrom(from, to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
function safeTransferFrom(
address from,
address to,
uint256 id,
bytes calldata data
) public virtual {
transferFrom(from, to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
/*//////////////////////////////////////////////////////////////
ERC165 LOGIC
//////////////////////////////////////////////////////////////*/
function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {
return
interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
}
/*//////////////////////////////////////////////////////////////
INTERNAL MINT/BURN LOGIC
//////////////////////////////////////////////////////////////*/
function _mint(address to, uint256 id) internal virtual {
require(to != address(0), "INVALID_RECIPIENT");
require(_ownerOf[id] == address(0), "ALREADY_MINTED");
// Counter overflow is incredibly unrealistic.
unchecked {
_balanceOf[to]++;
}
_ownerOf[id] = to;
emit Transfer(address(0), to, id);
}
function _burn(uint256 id) internal virtual {
address owner = _ownerOf[id];
require(owner != address(0), "NOT_MINTED");
// Ownership check above ensures no underflow.
unchecked {
_balanceOf[owner]--;
}
delete _ownerOf[id];
delete getApproved[id];
emit Transfer(owner, address(0), id);
}
/*//////////////////////////////////////////////////////////////
INTERNAL SAFE MINT LOGIC
//////////////////////////////////////////////////////////////*/
function _safeMint(address to, uint256 id) internal virtual {
_mint(to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, "") ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
function _safeMint(
address to,
uint256 id,
bytes memory data
) internal virtual {
_mint(to, id);
require(
to.code.length == 0 ||
ERC721TokenReceiver(to).onERC721Received(msg.sender, address(0), id, data) ==
ERC721TokenReceiver.onERC721Received.selector,
"UNSAFE_RECIPIENT"
);
}
}
/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721TokenReceiver {
function onERC721Received(
address,
address,
uint256,
bytes calldata
) external virtual returns (bytes4) {
return ERC721TokenReceiver.onERC721Received.selector;
}
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"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":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"_mint_authority","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidCaller","type":"error"},{"inputs":[],"name":"InvalidMintAuthority","type":"error"},{"inputs":[],"name":"TransferNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"string","name":"token_metadata","type":"string"},{"internalType":"address","name":"to","type":"address"}],"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":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"name":"updateMintAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
0x608060405260006009553480156200001657600080fd5b50604051620025fa380380620025fa83398181016040528101906200003c9190620002e8565b838381600090816200004f9190620005e3565b508060019081620000619190620005e3565b50505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050620006ca565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000159826200010e565b810181811067ffffffffffffffff821117156200017b576200017a6200011f565b5b80604052505050565b600062000190620000f0565b90506200019e82826200014e565b919050565b600067ffffffffffffffff821115620001c157620001c06200011f565b5b620001cc826200010e565b9050602081019050919050565b60005b83811015620001f9578082015181840152602081019050620001dc565b60008484015250505050565b60006200021c6200021684620001a3565b62000184565b9050828152602081018484840111156200023b576200023a62000109565b5b62000248848285620001d9565b509392505050565b600082601f83011262000268576200026762000104565b5b81516200027a84826020860162000205565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002b08262000283565b9050919050565b620002c281620002a3565b8114620002ce57600080fd5b50565b600081519050620002e281620002b7565b92915050565b60008060008060808587031215620003055762000304620000fa565b5b600085015167ffffffffffffffff811115620003265762000325620000ff565b5b620003348782880162000250565b945050602085015167ffffffffffffffff811115620003585762000357620000ff565b5b620003668782880162000250565b93505060406200037987828801620002d1565b92505060606200038c87828801620002d1565b91505092959194509250565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620003eb57607f821691505b602082108103620004015762000400620003a3565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200046b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200042c565b6200047786836200042c565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004c4620004be620004b8846200048f565b62000499565b6200048f565b9050919050565b6000819050919050565b620004e083620004a3565b620004f8620004ef82620004cb565b84845462000439565b825550505050565b600090565b6200050f62000500565b6200051c818484620004d5565b505050565b5b8181101562000544576200053860008262000505565b60018101905062000522565b5050565b601f82111562000593576200055d8162000407565b62000568846200041c565b8101602085101562000578578190505b6200059062000587856200041c565b83018262000521565b50505b505050565b600082821c905092915050565b6000620005b86000198460080262000598565b1980831691505092915050565b6000620005d38383620005a5565b9150826002028217905092915050565b620005ee8262000398565b67ffffffffffffffff8111156200060a57620006096200011f565b5b620006168254620003d2565b6200062382828562000548565b600060209050601f8311600181146200065b576000841562000646578287015190505b620006528582620005c5565b865550620006c2565b601f1984166200066b8662000407565b60005b8281101562000695578489015182556001820191506020850194506020810190506200066e565b86831015620006b55784890151620006b1601f891682620005a5565b8355505b6001600288020188555050505b505050505050565b611f2080620006da6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461020f57806370a082311461023f5780638da5cb5b1461026f57806395d89b411461028d57610100565b8063095ea7b3116100d3578063095ea7b31461019f5780631c351a9d146101bb57806323b872dd146101d757806342842e0e146101f357610100565b80630130a33b1461010557806301ffc9a71461012157806306fdde0314610151578063081812fc1461016f575b600080fd5b61011f600480360381019061011a91906112cc565b610343565b005b61013b60048036038101906101369190611351565b61040e565b6040516101489190611399565b60405180910390f35b6101596104a0565b6040516101669190611444565b60405180910390f35b6101896004803603810190610184919061149c565b61052e565b60405161019691906114d8565b60405180910390f35b6101b960048036038101906101b491906114f3565b610561565b005b6101d560048036038101906101d09190611598565b61074a565b005b6101f160048036038101906101ec91906115f8565b61081d565b005b61020d600480360381019061020891906115f8565b6109f5565b005b6102296004803603810190610224919061149c565b610b2d565b60405161023691906114d8565b60405180910390f35b610259600480360381019061025491906112cc565b610bd8565b604051610266919061165a565b60405180910390f35b610277610c8f565b60405161028491906114d8565b60405180910390f35b610295610cb5565b6040516102a29190611444565b60405180910390f35b6102c560048036038101906102c091906116a1565b610d43565b005b6102e160048036038101906102dc9190611737565b610e40565b005b6102fd60048036038101906102f8919061149c565b610f7e565b60405161030a9190611444565b60405180910390f35b61032d600480360381019061032891906117bf565b611023565b60405161033a9190611399565b60405180910390f35b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ca576040517f48f5c3ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061046957506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104995750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080546104ad9061182e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d99061182e565b80156105265780601f106104fb57610100808354040283529160200191610526565b820191906000526020600020905b81548152906001019060200180831161050957829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106595750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f906118ab565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d1576040517ff68e15d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600954905083836006600084815260200190815260200160002091826107fa929190611ab1565b506108058282611052565b60096000815480929190600101919050555050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f8cd22d1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b610a0083838361081d565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610ae9575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610a8593929190611bb8565b6020604051808303816000875af1158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90611c90565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff1603610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90611cfc565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90611d68565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610cc29061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cee9061182e565b8015610d3b5780601f10610d1057610100808354040283529160200191610d3b565b820191906000526020600020905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e349190611399565b60405180910390a35050565b610e4b85858561081d565b60008473ffffffffffffffffffffffffffffffffffffffff163b1480610f38575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b8152600401610ed4959493929190611dc4565b6020604051808303816000875af1158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90611c90565b60405180910390fd5b5050505050565b6060600660008381526020019081526020016000208054610f9e9061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fca9061182e565b80156110175780601f10610fec57610100808354040283529160200191611017565b820191906000526020600020905b815481529060010190602001808311610ffa57829003601f168201915b50505050509050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890611e5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90611eca565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112998261126e565b9050919050565b6112a98161128e565b81146112b457600080fd5b50565b6000813590506112c6816112a0565b92915050565b6000602082840312156112e2576112e1611264565b5b60006112f0848285016112b7565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61132e816112f9565b811461133957600080fd5b50565b60008135905061134b81611325565b92915050565b60006020828403121561136757611366611264565b5b60006113758482850161133c565b91505092915050565b60008115159050919050565b6113938161137e565b82525050565b60006020820190506113ae600083018461138a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113ee5780820151818401526020810190506113d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611416826113b4565b61142081856113bf565b93506114308185602086016113d0565b611439816113fa565b840191505092915050565b6000602082019050818103600083015261145e818461140b565b905092915050565b6000819050919050565b61147981611466565b811461148457600080fd5b50565b60008135905061149681611470565b92915050565b6000602082840312156114b2576114b1611264565b5b60006114c084828501611487565b91505092915050565b6114d28161128e565b82525050565b60006020820190506114ed60008301846114c9565b92915050565b6000806040838503121561150a57611509611264565b5b6000611518858286016112b7565b925050602061152985828601611487565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261155857611557611533565b5b8235905067ffffffffffffffff81111561157557611574611538565b5b6020830191508360018202830111156115915761159061153d565b5b9250929050565b6000806000604084860312156115b1576115b0611264565b5b600084013567ffffffffffffffff8111156115cf576115ce611269565b5b6115db86828701611542565b935093505060206115ee868287016112b7565b9150509250925092565b60008060006060848603121561161157611610611264565b5b600061161f868287016112b7565b9350506020611630868287016112b7565b925050604061164186828701611487565b9150509250925092565b61165481611466565b82525050565b600060208201905061166f600083018461164b565b92915050565b61167e8161137e565b811461168957600080fd5b50565b60008135905061169b81611675565b92915050565b600080604083850312156116b8576116b7611264565b5b60006116c6858286016112b7565b92505060206116d78582860161168c565b9150509250929050565b60008083601f8401126116f7576116f6611533565b5b8235905067ffffffffffffffff81111561171457611713611538565b5b6020830191508360018202830111156117305761172f61153d565b5b9250929050565b60008060008060006080868803121561175357611752611264565b5b6000611761888289016112b7565b9550506020611772888289016112b7565b945050604061178388828901611487565b935050606086013567ffffffffffffffff8111156117a4576117a3611269565b5b6117b0888289016116e1565b92509250509295509295909350565b600080604083850312156117d6576117d5611264565b5b60006117e4858286016112b7565b92505060206117f5858286016112b7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061184657607f821691505b602082108103611859576118586117ff565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b6000611895600e836113bf565b91506118a08261185f565b602082019050919050565b600060208201905081810360008301526118c481611888565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261192a565b611971868361192a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006119ae6119a96119a484611466565b611989565b611466565b9050919050565b6000819050919050565b6119c883611993565b6119dc6119d4826119b5565b848454611937565b825550505050565b600090565b6119f16119e4565b6119fc8184846119bf565b505050565b5b81811015611a2057611a156000826119e9565b600181019050611a02565b5050565b601f821115611a6557611a3681611905565b611a3f8461191a565b81016020851015611a4e578190505b611a62611a5a8561191a565b830182611a01565b50505b505050565b600082821c905092915050565b6000611a8860001984600802611a6a565b1980831691505092915050565b6000611aa18383611a77565b9150826002028217905092915050565b611abb83836118cb565b67ffffffffffffffff811115611ad457611ad36118d6565b5b611ade825461182e565b611ae9828285611a24565b6000601f831160018114611b185760008415611b06578287013590505b611b108582611a95565b865550611b78565b601f198416611b2686611905565b60005b82811015611b4e57848901358255600182019150602085019450602081019050611b29565b86831015611b6b5784890135611b67601f891682611a77565b8355505b6001600288020188555050505b50505050505050565b600082825260208201905092915050565b50565b6000611ba2600083611b81565b9150611bad82611b92565b600082019050919050565b6000608082019050611bcd60008301866114c9565b611bda60208301856114c9565b611be7604083018461164b565b8181036060830152611bf881611b95565b9050949350505050565b600081519050611c1181611325565b92915050565b600060208284031215611c2d57611c2c611264565b5b6000611c3b84828501611c02565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000611c7a6010836113bf565b9150611c8582611c44565b602082019050919050565b60006020820190508181036000830152611ca981611c6d565b9050919050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000611ce6600a836113bf565b9150611cf182611cb0565b602082019050919050565b60006020820190508181036000830152611d1581611cd9565b9050919050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b6000611d52600c836113bf565b9150611d5d82611d1c565b602082019050919050565b60006020820190508181036000830152611d8181611d45565b9050919050565b82818337600083830152505050565b6000611da38385611b81565b9350611db0838584611d88565b611db9836113fa565b840190509392505050565b6000608082019050611dd960008301886114c9565b611de660208301876114c9565b611df3604083018661164b565b8181036060830152611e06818486611d97565b90509695505050505050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b6000611e486011836113bf565b9150611e5382611e12565b602082019050919050565b60006020820190508181036000830152611e7781611e3b565b9050919050565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000611eb4600e836113bf565b9150611ebf82611e7e565b602082019050919050565b60006020820190508181036000830152611ee381611ea7565b905091905056fea2646970667358221220a43fb863f495ccd32f76037710346485f3560244e041e66b6dcae6b32ccb212064736f6c63430008130033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000c30d6b868b095caa2bf5b5dd4caeb4bcdef896050000000000000000000000008258ae550abc79611972cb1aacd061723eda40200000000000000000000000000000000000000000000000000000000000000011426173652042617463686573203230323500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024242000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101005760003560e01c80636352211e11610097578063a22cb46511610066578063a22cb465146102ab578063b88d4fde146102c7578063c87b56dd146102e3578063e985e9c51461031357610100565b80636352211e1461020f57806370a082311461023f5780638da5cb5b1461026f57806395d89b411461028d57610100565b8063095ea7b3116100d3578063095ea7b31461019f5780631c351a9d146101bb57806323b872dd146101d757806342842e0e146101f357610100565b80630130a33b1461010557806301ffc9a71461012157806306fdde0314610151578063081812fc1461016f575b600080fd5b61011f600480360381019061011a91906112cc565b610343565b005b61013b60048036038101906101369190611351565b61040e565b6040516101489190611399565b60405180910390f35b6101596104a0565b6040516101669190611444565b60405180910390f35b6101896004803603810190610184919061149c565b61052e565b60405161019691906114d8565b60405180910390f35b6101b960048036038101906101b491906114f3565b610561565b005b6101d560048036038101906101d09190611598565b61074a565b005b6101f160048036038101906101ec91906115f8565b61081d565b005b61020d600480360381019061020891906115f8565b6109f5565b005b6102296004803603810190610224919061149c565b610b2d565b60405161023691906114d8565b60405180910390f35b610259600480360381019061025491906112cc565b610bd8565b604051610266919061165a565b60405180910390f35b610277610c8f565b60405161028491906114d8565b60405180910390f35b610295610cb5565b6040516102a29190611444565b60405180910390f35b6102c560048036038101906102c091906116a1565b610d43565b005b6102e160048036038101906102dc9190611737565b610e40565b005b6102fd60048036038101906102f8919061149c565b610f7e565b60405161030a9190611444565b60405180910390f35b61032d600480360381019061032891906117bf565b611023565b60405161033a9190611399565b60405180910390f35b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103ca576040517f48f5c3ed00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061046957506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104995750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600080546104ad9061182e565b80601f01602080910402602001604051908101604052809291908181526020018280546104d99061182e565b80156105265780601f106104fb57610100808354040283529160200191610526565b820191906000526020600020905b81548152906001019060200180831161050957829003601f168201915b505050505081565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806106595750600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610698576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161068f906118ab565b60405180910390fd5b826004600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107d1576040517ff68e15d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600954905083836006600084815260200190815260200160002091826107fa929190611ab1565b506108058282611052565b60096000815480929190600101919050555050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f8cd22d1900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600190039190505550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b610a0083838361081d565b60008273ffffffffffffffffffffffffffffffffffffffff163b1480610ae9575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b8152600401610a8593929190611bb8565b6020604051808303816000875af1158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac89190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f90611c90565b60405180910390fd5b505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508173ffffffffffffffffffffffffffffffffffffffff1603610bd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bca90611cfc565b60405180910390fd5b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3f90611d68565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054610cc29061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610cee9061182e565b8015610d3b5780601f10610d1057610100808354040283529160200191610d3b565b820191906000526020600020905b815481529060010190602001808311610d1e57829003601f168201915b505050505081565b80600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051610e349190611399565b60405180910390a35050565b610e4b85858561081d565b60008473ffffffffffffffffffffffffffffffffffffffff163b1480610f38575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b8152600401610ed4959493929190611dc4565b6020604051808303816000875af1158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190611c17565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90611c90565b60405180910390fd5b5050505050565b6060600660008381526020019081526020016000208054610f9e9061182e565b80601f0160208091040260200160405190810160405280929190818152602001828054610fca9061182e565b80156110175780601f10610fec57610100808354040283529160200191611017565b820191906000526020600020905b815481529060010190602001808311610ffa57829003601f168201915b50505050509050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890611e5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90611eca565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006112998261126e565b9050919050565b6112a98161128e565b81146112b457600080fd5b50565b6000813590506112c6816112a0565b92915050565b6000602082840312156112e2576112e1611264565b5b60006112f0848285016112b7565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61132e816112f9565b811461133957600080fd5b50565b60008135905061134b81611325565b92915050565b60006020828403121561136757611366611264565b5b60006113758482850161133c565b91505092915050565b60008115159050919050565b6113938161137e565b82525050565b60006020820190506113ae600083018461138a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156113ee5780820151818401526020810190506113d3565b60008484015250505050565b6000601f19601f8301169050919050565b6000611416826113b4565b61142081856113bf565b93506114308185602086016113d0565b611439816113fa565b840191505092915050565b6000602082019050818103600083015261145e818461140b565b905092915050565b6000819050919050565b61147981611466565b811461148457600080fd5b50565b60008135905061149681611470565b92915050565b6000602082840312156114b2576114b1611264565b5b60006114c084828501611487565b91505092915050565b6114d28161128e565b82525050565b60006020820190506114ed60008301846114c9565b92915050565b6000806040838503121561150a57611509611264565b5b6000611518858286016112b7565b925050602061152985828601611487565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261155857611557611533565b5b8235905067ffffffffffffffff81111561157557611574611538565b5b6020830191508360018202830111156115915761159061153d565b5b9250929050565b6000806000604084860312156115b1576115b0611264565b5b600084013567ffffffffffffffff8111156115cf576115ce611269565b5b6115db86828701611542565b935093505060206115ee868287016112b7565b9150509250925092565b60008060006060848603121561161157611610611264565b5b600061161f868287016112b7565b9350506020611630868287016112b7565b925050604061164186828701611487565b9150509250925092565b61165481611466565b82525050565b600060208201905061166f600083018461164b565b92915050565b61167e8161137e565b811461168957600080fd5b50565b60008135905061169b81611675565b92915050565b600080604083850312156116b8576116b7611264565b5b60006116c6858286016112b7565b92505060206116d78582860161168c565b9150509250929050565b60008083601f8401126116f7576116f6611533565b5b8235905067ffffffffffffffff81111561171457611713611538565b5b6020830191508360018202830111156117305761172f61153d565b5b9250929050565b60008060008060006080868803121561175357611752611264565b5b6000611761888289016112b7565b9550506020611772888289016112b7565b945050604061178388828901611487565b935050606086013567ffffffffffffffff8111156117a4576117a3611269565b5b6117b0888289016116e1565b92509250509295509295909350565b600080604083850312156117d6576117d5611264565b5b60006117e4858286016112b7565b92505060206117f5858286016112b7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061184657607f821691505b602082108103611859576118586117ff565b5b50919050565b7f4e4f545f415554484f52495a4544000000000000000000000000000000000000600082015250565b6000611895600e836113bf565b91506118a08261185f565b602082019050919050565b600060208201905081810360008301526118c481611888565b9050919050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026119677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261192a565b611971868361192a565b95508019841693508086168417925050509392505050565b6000819050919050565b60006119ae6119a96119a484611466565b611989565b611466565b9050919050565b6000819050919050565b6119c883611993565b6119dc6119d4826119b5565b848454611937565b825550505050565b600090565b6119f16119e4565b6119fc8184846119bf565b505050565b5b81811015611a2057611a156000826119e9565b600181019050611a02565b5050565b601f821115611a6557611a3681611905565b611a3f8461191a565b81016020851015611a4e578190505b611a62611a5a8561191a565b830182611a01565b50505b505050565b600082821c905092915050565b6000611a8860001984600802611a6a565b1980831691505092915050565b6000611aa18383611a77565b9150826002028217905092915050565b611abb83836118cb565b67ffffffffffffffff811115611ad457611ad36118d6565b5b611ade825461182e565b611ae9828285611a24565b6000601f831160018114611b185760008415611b06578287013590505b611b108582611a95565b865550611b78565b601f198416611b2686611905565b60005b82811015611b4e57848901358255600182019150602085019450602081019050611b29565b86831015611b6b5784890135611b67601f891682611a77565b8355505b6001600288020188555050505b50505050505050565b600082825260208201905092915050565b50565b6000611ba2600083611b81565b9150611bad82611b92565b600082019050919050565b6000608082019050611bcd60008301866114c9565b611bda60208301856114c9565b611be7604083018461164b565b8181036060830152611bf881611b95565b9050949350505050565b600081519050611c1181611325565b92915050565b600060208284031215611c2d57611c2c611264565b5b6000611c3b84828501611c02565b91505092915050565b7f554e534146455f524543495049454e5400000000000000000000000000000000600082015250565b6000611c7a6010836113bf565b9150611c8582611c44565b602082019050919050565b60006020820190508181036000830152611ca981611c6d565b9050919050565b7f4e4f545f4d494e54454400000000000000000000000000000000000000000000600082015250565b6000611ce6600a836113bf565b9150611cf182611cb0565b602082019050919050565b60006020820190508181036000830152611d1581611cd9565b9050919050565b7f5a45524f5f414444524553530000000000000000000000000000000000000000600082015250565b6000611d52600c836113bf565b9150611d5d82611d1c565b602082019050919050565b60006020820190508181036000830152611d8181611d45565b9050919050565b82818337600083830152505050565b6000611da38385611b81565b9350611db0838584611d88565b611db9836113fa565b840190509392505050565b6000608082019050611dd960008301886114c9565b611de660208301876114c9565b611df3604083018661164b565b8181036060830152611e06818486611d97565b90509695505050505050565b7f494e56414c49445f524543495049454e54000000000000000000000000000000600082015250565b6000611e486011836113bf565b9150611e5382611e12565b602082019050919050565b60006020820190508181036000830152611e7781611e3b565b9050919050565b7f414c52454144595f4d494e544544000000000000000000000000000000000000600082015250565b6000611eb4600e836113bf565b9150611ebf82611e7e565b602082019050919050565b60006020820190508181036000830152611ee381611ea7565b905091905056fea2646970667358221220a43fb863f495ccd32f76037710346485f3560244e041e66b6dcae6b32ccb212064736f6c63430008130033
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.