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 100 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Approval For... | 19604426 | 144 days ago | IN | 0 ETH | 0.00041785 | ||||
Safe Transfer Fr... | 16680144 | 554 days ago | IN | 0 ETH | 0.00167571 | ||||
Set Approval For... | 16213955 | 620 days ago | IN | 0 ETH | 0.00029473 | ||||
Set Approval For... | 16213901 | 620 days ago | IN | 0 ETH | 0.00107155 | ||||
Set Approval For... | 16081736 | 638 days ago | IN | 0 ETH | 0.00052731 | ||||
Safe Transfer Fr... | 15858794 | 669 days ago | IN | 0 ETH | 0.00031449 | ||||
Set Approval For... | 15678887 | 694 days ago | IN | 0 ETH | 0.00040563 | ||||
Safe Transfer Fr... | 15623372 | 702 days ago | IN | 0 ETH | 0.0007278 | ||||
Safe Transfer Fr... | 15622980 | 702 days ago | IN | 0 ETH | 0.00056021 | ||||
Set Approval For... | 15622956 | 702 days ago | IN | 0 ETH | 0.00042923 | ||||
Safe Transfer Fr... | 15593563 | 706 days ago | IN | 0 ETH | 0.00044935 | ||||
Safe Transfer Fr... | 15584962 | 707 days ago | IN | 0 ETH | 0.00034166 | ||||
Set Approval For... | 15584869 | 707 days ago | IN | 0 ETH | 0.0004533 | ||||
Set Approval For... | 15362323 | 742 days ago | IN | 0 ETH | 0.00036246 | ||||
Set Approval For... | 15355255 | 743 days ago | IN | 0 ETH | 0.00037425 | ||||
Set Approval For... | 15180476 | 771 days ago | IN | 0 ETH | 0.00211776 | ||||
Set Approval For... | 15159275 | 774 days ago | IN | 0 ETH | 0.0002683 | ||||
Set Approval For... | 14991010 | 802 days ago | IN | 0 ETH | 0.00108474 | ||||
Safe Transfer Fr... | 14752696 | 841 days ago | IN | 0 ETH | 0.001764 | ||||
Safe Transfer Fr... | 14752437 | 841 days ago | IN | 0 ETH | 0.0018758 | ||||
Safe Transfer Fr... | 14640456 | 859 days ago | IN | 0 ETH | 0.00084377 | ||||
Safe Transfer Fr... | 14632171 | 860 days ago | IN | 0 ETH | 0.00331787 | ||||
Set Approval For... | 14618278 | 862 days ago | IN | 0 ETH | 0.00167787 | ||||
Set Approval For... | 14618278 | 862 days ago | IN | 0 ETH | 0.00167787 | ||||
Set Contracts | 14591499 | 867 days ago | IN | 0 ETH | 0.00108782 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
RAW
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/security/Pausable.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; import "./ERC1155.sol"; import "./interfaces/IRAW.sol"; import "./interfaces/IEON.sol"; contract RAW is IRAW, ERC1155, Pausable { using Strings for uint256; // struct to store each trait's data for metadata and rendering struct Image { string name; string png; } struct TypeInfo { uint256 mints; uint256 burns; uint256 maxSupply; uint256 eonExchangeAmt; } mapping(uint256 => TypeInfo) private typeInfo; // storage of each image data mapping(uint256 => Image) public traitData; // address => allowedToCallFunctions mapping(address => bool) private admins; event UpdateMintBurns(uint256 typeId, uint256 mintQty, uint256 burnQty); // reference to the $EON contract for exchange rate if accepted IEON public eon; address public auth; constructor() { auth = msg.sender; } modifier onlyOwner() { require(msg.sender == auth); _; } /** CRITICAL TO SETUP */ modifier requireContractsSet() { require(address(eon) != address(0), "Contracts not set"); _; } function setContracts(address _eon) external onlyOwner { eon = IEON(_eon); } /** * Mint a token - any payment / game logic should be handled in the game contract. */ function mint( uint256 typeId, uint256 qty, address recipient ) external override whenNotPaused { require(admins[msg.sender], "Only admins"); require((typeInfo[typeId].mints + qty) <= typeInfo[typeId].maxSupply, "MaxSupply Minted"); typeInfo[typeId].mints += qty; _mint(recipient, typeId, qty, ""); } /** * Burn a token - any payment / game logic should be handled in the game contract. */ function burn( uint256 typeId, uint256 qty, address burnFrom ) external override whenNotPaused { require(admins[msg.sender], "Only admins"); typeInfo[typeId].burns += qty; _burn(burnFrom, typeId, qty); } function setType(uint256 typeId, uint256 maxSupply) external onlyOwner { require(typeId != 0, "TypeId cannot be 0"); require(typeInfo[typeId].mints <= maxSupply, "max supply too low"); typeInfo[typeId].maxSupply = maxSupply; } // a function to update the mint and burn amounts // to save gas costs of doing both a mint and then // burn when cost is paid from an amount owed function updateMintBurns( uint256 typeId, uint256 mintQty, uint256 burnQty ) external { require(admins[msg.sender], "Only Admins"); typeInfo[typeId].mints += mintQty; typeInfo[typeId].burns += burnQty; emit UpdateMintBurns(typeId, mintQty, burnQty); } function setExchangeAmt(uint256 typeId, uint256 exchangeAmt) external onlyOwner { require( typeInfo[typeId].maxSupply > 0, "this type has not been set up" ); typeInfo[typeId].eonExchangeAmt = exchangeAmt; } /** * enables an address to mint / burn * @param addr the address to enable */ function addAdmin(address addr) external onlyOwner { admins[addr] = true; } /** * disables an address from minting / burning * @param addr the address to disbale */ function removeAdmin(address addr) external onlyOwner { admins[addr] = false; } function setPaused(bool _paused) external onlyOwner requireContractsSet { if (_paused) _pause(); else _unpause(); } function transferOwnership(address newOwner) external onlyOwner { auth = newOwner; } function getInfoForType(uint256 typeId) external view returns (TypeInfo memory) { require(typeInfo[typeId].maxSupply > 0, "invalid type"); return typeInfo[typeId]; } function uri(uint256 typeId) public view override returns (string memory) { require(typeInfo[typeId].maxSupply > 0, "invalid type"); Image memory img = traitData[typeId]; string memory metadata = string( abi.encodePacked( '{"name": "', img.name, '", "description": "Raw Pytheas resources - All the metadata and images are generated and stored 100% on-chain. No IPFS. NO API. Just the Ethereum blockchain.", "image": "data:image/svg+xml;base64,', base64(bytes(drawSVG(typeId))), '", "attributes": []', "}" ) ); return string( abi.encodePacked( "data:application/json;base64,", base64(bytes(metadata)) ) ); } function uploadImage(uint256 typeId, Image calldata image) external onlyOwner { traitData[typeId] = Image(image.name, image.png); } function drawImage(Image memory image) internal pure returns (string memory) { return string( abi.encodePacked( '<image x="0" y="0" width="64" height="64" image-rendering="pixelated" preserveAspectRatio="xMidYMid" xlink:href="data:image/png;base64,', image.png, '"/>' ) ); } function drawSVG(uint256 typeId) internal view returns (string memory) { string memory svgString = string( abi.encodePacked(drawImage(traitData[typeId])) ); return string( abi.encodePacked( '<svg id="alter" width="100%" height="100%" version="1.1" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">', svgString, "</svg>" ) ); } function getBalance( address account, uint256 id ) public view returns(uint256) { return ERC1155(address(this)).balanceOf(account, id); } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) public virtual override(ERC1155, IRAW) { // allow admin contracts to send without approval if (!admins[msg.sender]) { require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); } balanceOf[from][id] -= amount; balanceOf[to][id] += amount; emit TransferSingle(msg.sender, from, to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) public virtual override(ERC1155, IRAW) { // allow admin contracts to send without approval uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); // allow admin contracts to send without approval if (!admins[msg.sender]) { require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); } for (uint256 i = 0; i < idsLength; ) { uint256 id = ids[i]; uint256 amount = amounts[i]; balanceOf[from][id] -= amount; balanceOf[to][id] += amount; // An array can't have a total length // larger than the max uint256 value. unchecked { i++; } } emit TransferBatch(msg.sender, from, to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } /** BASE 64 - Written by Brech Devos */ string internal constant TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; function base64(bytes memory data) internal pure returns (string memory) { if (data.length == 0) return ""; // load the table into memory string memory table = TABLE; // multiply by 4/3 rounded up uint256 encodedLen = 4 * ((data.length + 2) / 3); // add some extra buffer at the end required for the writing string memory result = new string(encodedLen + 32); assembly { // set the actual output length mstore(result, encodedLen) // prepare the lookup table let tablePtr := add(table, 1) // input ptr let dataPtr := data let endPtr := add(dataPtr, mload(data)) // result ptr, jump over length let resultPtr := add(result, 32) // run over the input, 3 bytes at a time for { } lt(dataPtr, endPtr) { } { dataPtr := add(dataPtr, 3) // read 3 bytes let input := mload(dataPtr) // write 4 characters mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(18, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(12, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(shr(6, input), 0x3F)))) ) resultPtr := add(resultPtr, 1) mstore( resultPtr, shl(248, mload(add(tablePtr, and(input, 0x3F)))) ) resultPtr := add(resultPtr, 1) } // padding with '=' switch mod(mload(data), 3) case 1 { mstore(sub(resultPtr, 2), shl(240, 0x3d3d)) } case 2 { mstore(sub(resultPtr, 1), shl(248, 0x3d)) } } return result; } // For OpenSeas function owner() public view virtual returns (address) { return auth; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT 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); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Minimalist and gas efficient standard ERC1155 implementation. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155 { /*/////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event TransferSingle( address indexed operator, address indexed from, address indexed to, uint256 id, uint256 amount ); event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] amounts ); event ApprovalForAll( address indexed owner, address indexed operator, bool approved ); event URI(string value, uint256 indexed id); /*/////////////////////////////////////////////////////////////// ERC1155 STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public isApprovedForAll; /*/////////////////////////////////////////////////////////////// METADATA LOGIC //////////////////////////////////////////////////////////////*/ function uri(uint256 id) public view virtual returns (string memory); /*/////////////////////////////////////////////////////////////// ERC1155 LOGIC //////////////////////////////////////////////////////////////*/ function setApprovalForAll(address operator, bool approved) public virtual { isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function isApproved(address account, address operator) public view virtual returns (bool) { return isApprovedForAll[account][operator]; } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) public virtual { require( msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED" ); balanceOf[from][id] -= amount; balanceOf[to][id] += amount; emit TransferSingle(msg.sender, from, to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received( msg.sender, from, id, amount, data ) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) public virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); require( msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED" ); for (uint256 i = 0; i < idsLength; ) { uint256 id = ids[i]; uint256 amount = amounts[i]; balanceOf[from][id] -= amount; balanceOf[to][id] += amount; // An array can't have a total length // larger than the max uint256 value. unchecked { i++; } } emit TransferBatch(msg.sender, from, to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived( msg.sender, from, ids, amounts, data ) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function balanceOfBatch(address[] memory owners, uint256[] memory ids) public view virtual returns (uint256[] memory balances) { uint256 ownersLength = owners.length; // Saves MLOADs. require(ownersLength == ids.length, "LENGTH_MISMATCH"); balances = new uint256[](owners.length); // Unchecked because the only math done is incrementing // the array index counter which cannot possibly overflow. unchecked { for (uint256 i = 0; i < ownersLength; i++) { balances[i] = balanceOf[owners[i]][ids[i]]; } } } /*/////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) { return interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155 interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI } /*/////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint( address to, uint256 id, uint256 amount, bytes memory data ) internal { balanceOf[to][id] += amount; emit TransferSingle(msg.sender, address(0), to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received( msg.sender, address(0), id, amount, data ) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function _batchMint( address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[to][ids[i]] += amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { i++; } } emit TransferBatch(msg.sender, address(0), to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived( msg.sender, address(0), ids, amounts, data ) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function _batchBurn( address from, uint256[] memory ids, uint256[] memory amounts ) internal { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[from][ids[i]] -= amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { i++; } } emit TransferBatch(msg.sender, from, address(0), ids, amounts); } function _burn( address from, uint256 id, uint256 amount ) internal { balanceOf[from][id] -= amount; emit TransferSingle(msg.sender, from, address(0), id, amount); } } /// @notice A generic interface for a contract which properly accepts ERC1155 tokens. /// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC1155.sol) interface ERC1155TokenReceiver { function onERC1155Received( address operator, address from, uint256 id, uint256 amount, bytes calldata data ) external returns (bytes4); function onERC1155BatchReceived( address operator, address from, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; interface IEON { function mint(address to, uint256 amount) external; function burn(address from, uint256 amount) external; function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT LICENSE pragma solidity ^0.8.0; interface IRAW { function getBalance( address account, uint256 id ) external returns(uint256); function mint( uint256 typeId, uint256 qty, address recipient ) external; function burn( uint256 typeId, uint256 qty, address burnFrom ) external; function updateMintBurns( uint256 typeId, uint256 mintQty, uint256 burnQty ) external; function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes memory data ) external; function safeBatchTransferFrom( address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) external; }
{ "evmVersion": "london", "libraries": {}, "metadata": { "bytecodeHash": "ipfs", "useLiteralContent": true }, "optimizer": { "details": { "constantOptimizer": true, "cse": true, "deduplicate": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "peephole": true, "yul": true, "yulDetails": { "optimizerSteps": "dhfoDgvulfnTUtnIf", "stackAllocation": true } }, "runs": 2000 }, "remappings": [], "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"typeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"mintQty","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burnQty","type":"uint256"}],"name":"UpdateMintBurns","type":"event"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auth","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"},{"internalType":"uint256","name":"qty","type":"uint256"},{"internalType":"address","name":"burnFrom","type":"address"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eon","outputs":[{"internalType":"contract IEON","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"}],"name":"getInfoForType","outputs":[{"components":[{"internalType":"uint256","name":"mints","type":"uint256"},{"internalType":"uint256","name":"burns","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"},{"internalType":"uint256","name":"eonExchangeAmt","type":"uint256"}],"internalType":"struct RAW.TypeInfo","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApproved","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"},{"internalType":"uint256","name":"qty","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_eon","type":"address"}],"name":"setContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"},{"internalType":"uint256","name":"exchangeAmt","type":"uint256"}],"name":"setExchangeAmt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"},{"internalType":"uint256","name":"maxSupply","type":"uint256"}],"name":"setType","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"traitData","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"png","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"},{"internalType":"uint256","name":"mintQty","type":"uint256"},{"internalType":"uint256","name":"burnQty","type":"uint256"}],"name":"updateMintBurns","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"png","type":"string"}],"internalType":"struct RAW.Image","name":"image","type":"tuple"}],"name":"uploadImage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"typeId","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506002805460ff19169055600780546001600160a01b03191633179055612e168061003c6000396000f3fe608060405234801561001057600080fd5b50600436106101b85760003560e01c8063749388c4116100f9578063de9375f211610097578063e985e9c511610071578063e985e9c514610408578063f242432a14610436578063f2fde38b14610449578063f6bb451f1461045c57600080fd5b8063de9375f2146103c2578063e79df0d1146103d5578063e7d3fe6b146103f557600080fd5b80639ca0f29b116100d35780639ca0f29b14610340578063a22cb46514610360578063a389783e14610373578063c4994180146103af57600080fd5b8063749388c4146103005780637d26c78c146103135780638da5cb5b1461032657600080fd5b80632eb2c2d6116101665780634ee6dc99116101405780634ee6dc99146102bc5780635a2e2f47146102cf5780635c975abb146102e257806370480275146102ed57600080fd5b80632eb2c2d6146102765780633ac70266146102895780634e1273f41461029c57600080fd5b806316c38b3c1161019757806316c38b3c1461023b5780631785f53c146102505780632b04e8401461026357600080fd5b8062fdd58e146101bd57806301ffc9a7146101fb5780630e89341c1461021b575b600080fd5b6101e56101cb366004611bb5565b600060208181529281526040808220909352908152205481565b6040516101f29190611bfa565b60405180910390f35b61020e610209366004611c23565b61047d565b6040516101f29190611c54565b61022e610229366004611c62565b61051a565b6040516101f29190611ce1565b61024e610249366004611d05565b6106fb565b005b61024e61025e366004611d26565b610753565b6101e5610271366004611bb5565b61078b565b61024e610284366004611ee3565b610812565b61024e610297366004611fac565b610ab1565b6102af6102aa366004612041565b610b28565b6040516101f29190612107565b61024e6102ca366004612118565b610c34565b61024e6102dd366004611d26565b610ced565b60025460ff1661020e565b61024e6102fb366004611d26565b610d3e565b61024e61030e366004612168565b610d79565b61024e6103213660046121c9565b610e02565b6007546001600160a01b03165b6040516101f29190612220565b61035361034e366004611c62565b610ef1565b6040516101f29190612273565b61024e61036e366004612281565b610f8c565b61020e6103813660046122b4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61024e6103bd366004611fac565b610ffb565b600754610333906001600160a01b031681565b6006546103e8906001600160a01b031681565b6040516101f29190612306565b61024e610403366004612168565b611057565b61020e6104163660046122b4565b600160209081526000928352604080842090915290825290205460ff1681565b61024e610444366004612314565b611127565b61024e610457366004611d26565b611334565b61046f61046a366004611c62565b611385565b6040516101f292919061236e565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614806104e057507fd9b67a26000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061051457507f0e89341c000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6000818152600360205260409020600201546060906105545760405162461bcd60e51b815260040161054b906123c5565b60405180910390fd5b600082815260046020526040808220815180830190925280548290829061057a906123eb565b80601f01602080910402602001604051908101604052809291908181526020018280546105a6906123eb565b80156105f35780601f106105c8576101008083540402835291602001916105f3565b820191906000526020600020905b8154815290600101906020018083116105d657829003601f168201915b5050505050815260200160018201805461060c906123eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610638906123eb565b80156106855780601f1061065a57610100808354040283529160200191610685565b820191906000526020600020905b81548152906001019060200180831161066857829003601f168201915b5050505050815250509050600081600001516106a86106a3866114b1565b611648565b6040516020016106b9929190612434565b60405160208183030381529060405290506106d381611648565b6040516020016106e391906125cf565b60405160208183030381529060405292505050919050565b6007546001600160a01b0316331461071257600080fd5b6006546001600160a01b031661073a5760405162461bcd60e51b815260040161054b90612631565b801561074b57610748611805565b50565b610748611874565b6007546001600160a01b0316331461076a57600080fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152600090309062fdd58e906107ca9086908690600401612641565b602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190612667565b9392505050565b8251825181146108345760405162461bcd60e51b815260040161054b906126ba565b3360009081526005602052604090205460ff166108a157336001600160a01b038716148061088557506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b6108a15760405162461bcd60e51b815260040161054b906126fc565b60005b818110156109765760008582815181106108c0576108c061270c565b6020026020010151905060008583815181106108de576108de61270c565b60200260200101519050806000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000848152602001908152602001600020600082825461092d9190612738565b90915550506001600160a01b0388166000908152602081815260408083208584529091528120805483929061096390849061274f565b9091555050600190920191506108a49050565b50846001600160a01b0316866001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516109c6929190612767565b60405180910390a46001600160a01b0385163b15610a80576040517fbc197c8100000000000000000000000000000000000000000000000000000000808252906001600160a01b0387169063bc197c8190610a2d9033908b908a908a908a9060040161278c565b6020604051808303816000875af1158015610a4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7091906127f7565b6001600160e01b03191614610a8d565b6001600160a01b03851615155b610aa95760405162461bcd60e51b815260040161054b9061284a565b505050505050565b6007546001600160a01b03163314610ac857600080fd5b81610ae55760405162461bcd60e51b815260040161054b9061288c565b600082815260036020526040902054811015610b135760405162461bcd60e51b815260040161054b906128ce565b60009182526003602052604090912060020155565b81518151606091908114610b4e5760405162461bcd60e51b815260040161054b906126ba565b835167ffffffffffffffff811115610b6857610b68611d47565b604051908082528060200260200182016040528015610b91578160200160208202803683370190505b50915060005b81811015610c2c57600080868381518110610bb457610bb461270c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610bf057610bf061270c565b6020026020010151815260200190815260200160002054838281518110610c1957610c1961270c565b6020908102919091010152600101610b97565b505092915050565b3360009081526005602052604090205460ff16610c635760405162461bcd60e51b815260040161054b90612910565b60008381526003602052604081208054849290610c8190849061274f565b909155505060008381526003602052604081206001018054839290610ca790849061274f565b90915550506040517f069c51469578032eacdf4c08d21e7515ba36f52e0456901cce8073899c3934ed90610ce090859085908590612920565b60405180910390a1505050565b6007546001600160a01b03163314610d0457600080fd5b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6007546001600160a01b03163314610d5557600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b60025460ff1615610d9c5760405162461bcd60e51b815260040161054b9061297a565b3360009081526005602052604090205460ff16610dcb5760405162461bcd60e51b815260040161054b906129bc565b60008381526003602052604081206001018054849290610dec90849061274f565b90915550610dfd90508184846118c7565b505050565b6007546001600160a01b03163314610e1957600080fd5b6040805180820190915280610e2e83806129cc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602090810190610e77908401846129cc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505084815260046020908152604090912083518051919350610ed1928492910190611adb565b506020828101518051610eea9260018501920190611adb565b5050505050565b610f1c6040518060800160405280600081526020016000815260200160008152602001600081525090565b600082815260036020526040902060020154610f4a5760405162461bcd60e51b815260040161054b906123c5565b50600090815260036020818152604092839020835160808101855281548152600182015492810192909252600281015493820193909352910154606082015290565b3360008181526001602090815260408083206001600160a01b038716808552925291829020805460ff191685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610fef908590611c54565b60405180910390a35050565b6007546001600160a01b0316331461101257600080fd5b6000828152600360205260409020600201546110405760405162461bcd60e51b815260040161054b90612a78565b600091825260036020819052604090922090910155565b60025460ff161561107a5760405162461bcd60e51b815260040161054b9061297a565b3360009081526005602052604090205460ff166110a95760405162461bcd60e51b815260040161054b906129bc565b6000838152600360205260409020600281015490546110c990849061274f565b11156110e75760405162461bcd60e51b815260040161054b90612aba565b6000838152600360205260408120805484929061110590849061274f565b92505081905550610dfd8184846040518060200160405280600081525061194c565b3360009081526005602052604090205460ff1661119457336001600160a01b038616148061117857506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b6111945760405162461bcd60e51b815260040161054b906126fc565b6001600160a01b038516600090815260208181526040808320868452909152812080548492906111c5908490612738565b90915550506001600160a01b038416600090815260208181526040808320868452909152812080548492906111fb90849061274f565b92505081905550836001600160a01b0316856001600160a01b0316336001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611251929190612aca565b60405180910390a46001600160a01b0384163b1561130b576040517ff23a6e6100000000000000000000000000000000000000000000000000000000808252906001600160a01b0386169063f23a6e61906112b89033908a90899089908990600401612ad8565b6020604051808303816000875af11580156112d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fb91906127f7565b6001600160e01b03191614611318565b6001600160a01b03841615155b610eea5760405162461bcd60e51b815260040161054b9061284a565b6007546001600160a01b0316331461134b57600080fd5b600780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004602052600090815260409020805481906113a0906123eb565b80601f01602080910402602001604051908101604052809291908181526020018280546113cc906123eb565b80156114195780601f106113ee57610100808354040283529160200191611419565b820191906000526020600020905b8154815290600101906020018083116113fc57829003601f168201915b50505050509080600101805461142e906123eb565b80601f016020809104026020016040519081016040528092919081815260200182805461145a906123eb565b80156114a75780601f1061147c576101008083540402835291602001916114a7565b820191906000526020600020905b81548152906001019060200180831161148a57829003601f168201915b5050505050905082565b606060006115ff600460008581526020019081526020016000206040518060400160405290816000820180546114e6906123eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611512906123eb565b801561155f5780601f106115345761010080835404028352916020019161155f565b820191906000526020600020905b81548152906001019060200180831161154257829003601f168201915b50505050508152602001600182018054611578906123eb565b80601f01602080910402602001604051908101604052809291908181526020018280546115a4906123eb565b80156115f15780601f106115c6576101008083540402835291602001916115f1565b820191906000526020600020905b8154815290600101906020018083116115d457829003601f168201915b505050505081525050611aae565b60405160200161160f9190612b1f565b6040516020818303038152906040529050806040516020016116319190612b29565b604051602081830303815290604052915050919050565b606081516000141561166857505060408051602081019091526000815290565b6000604051806060016040528060408152602001612da16040913990506000600384516002611697919061274f565b6116a19190612c35565b6116ac906004612c49565b905060006116bb82602061274f565b67ffffffffffffffff8111156116d3576116d3611d47565b6040519080825280601f01601f1916602001820160405280156116fd576020820181803683370190505b509050818152600183018586518101602084015b8183101561176b5760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401611711565b60038951066001811461178557600281146117cf576117f7565b7f3d3d0000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8301526117f7565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b509398975050505050505050565b60025460ff16156118285760405162461bcd60e51b815260040161054b9061297a565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861185d3390565b60405161186a9190612220565b60405180910390a1565b60025460ff166118965760405162461bcd60e51b815260040161054b90612c9a565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361185d565b6001600160a01b038316600090815260208181526040808320858452909152812080548392906118f8908490612738565b90915550506040516000906001600160a01b0385169033907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629061193f9087908790612aca565b60405180910390a4505050565b6001600160a01b0384166000908152602081815260408083208684529091528120805484929061197d90849061274f565b90915550506040516001600160a01b0385169060009033907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906119c49088908890612aca565b60405180910390a46001600160a01b0384163b15611a7f576040517ff23a6e6100000000000000000000000000000000000000000000000000000000808252906001600160a01b0386169063f23a6e6190611a2c903390600090899089908990600401612ad8565b6020604051808303816000875af1158015611a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6f91906127f7565b6001600160e01b03191614611a8c565b6001600160a01b03841615155b611aa85760405162461bcd60e51b815260040161054b9061284a565b50505050565b60608160200151604051602001611ac59190612caa565b6040516020818303038152906040529050919050565b828054611ae7906123eb565b90600052602060002090601f016020900481019282611b095760008555611b4f565b82601f10611b2257805160ff1916838001178555611b4f565b82800160010185558215611b4f579182015b82811115611b4f578251825591602001919060010190611b34565b50611b5b929150611b5f565b5090565b5b80821115611b5b5760008155600101611b60565b60006001600160a01b038216610514565b611b8e81611b74565b811461074857600080fd5b803561051481611b85565b80611b8e565b803561051481611ba4565b60008060408385031215611bcb57611bcb600080fd5b6000611bd78585611b99565b9250506020611be885828601611baa565b9150509250929050565b805b82525050565b602081016105148284611bf2565b6001600160e01b03198116611b8e565b803561051481611c08565b600060208284031215611c3857611c38600080fd5b6000611c448484611c18565b949350505050565b801515611bf4565b602081016105148284611c4c565b600060208284031215611c7757611c77600080fd5b6000611c448484611baa565b60005b83811015611c9e578181015183820152602001611c86565b83811115611aa85750506000910152565b6000611cb9825190565b808452602084019350611cd0818560208601611c83565b601f01601f19169290920192915050565b6020808252810161080b8184611caf565b801515611b8e565b803561051481611cf2565b600060208284031215611d1a57611d1a600080fd5b6000611c448484611cfa565b600060208284031215611d3b57611d3b600080fd5b6000611c448484611b99565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611d8357611d83611d47565b6040525050565b6000611d9560405190565b9050611da18282611d5d565b919050565b600067ffffffffffffffff821115611dc057611dc0611d47565b5060209081020190565b6000611ddd611dd884611da6565b611d8a565b83815290506020808201908402830185811115611dfc57611dfc600080fd5b835b81811015611e1e57611e108782611baa565b835260209283019201611dfe565b5050509392505050565b600082601f830112611e3c57611e3c600080fd5b8135611c44848260208601611dca565b600067ffffffffffffffff821115611e6657611e66611d47565b601f19601f83011660200192915050565b82818337506000910152565b6000611e91611dd884611e4c565b905082815260208101848484011115611eac57611eac600080fd5b611eb7848285611e77565b509392505050565b600082601f830112611ed357611ed3600080fd5b8135611c44848260208601611e83565b600080600080600060a08688031215611efe57611efe600080fd5b6000611f0a8888611b99565b9550506020611f1b88828901611b99565b945050604086013567ffffffffffffffff811115611f3b57611f3b600080fd5b611f4788828901611e28565b935050606086013567ffffffffffffffff811115611f6757611f67600080fd5b611f7388828901611e28565b925050608086013567ffffffffffffffff811115611f9357611f93600080fd5b611f9f88828901611ebf565b9150509295509295909350565b60008060408385031215611fc257611fc2600080fd5b6000611bd78585611baa565b6000611fdc611dd884611da6565b83815290506020808201908402830185811115611ffb57611ffb600080fd5b835b81811015611e1e5761200f8782611b99565b835260209283019201611ffd565b600082601f83011261203157612031600080fd5b8135611c44848260208601611fce565b6000806040838503121561205757612057600080fd5b823567ffffffffffffffff81111561207157612071600080fd5b61207d8582860161201d565b925050602083013567ffffffffffffffff81111561209d5761209d600080fd5b611be885828601611e28565b6120b38282611bf2565b5060200190565b60200190565b60006120ca825190565b808452602093840193830160005b828110156120fd5781516120ec87826120a9565b9650506020820191506001016120d8565b5093949350505050565b6020808252810161080b81846120c0565b60008060006060848603121561213057612130600080fd5b600061213c8686611baa565b935050602061214d86828701611baa565b925050604061215e86828701611baa565b9150509250925092565b60008060006060848603121561218057612180600080fd5b600061218c8686611baa565b935050602061219d86828701611baa565b925050604061215e86828701611b99565b6000604082840312156121c3576121c3600080fd5b50919050565b600080604083850312156121df576121df600080fd5b60006121eb8585611baa565b925050602083013567ffffffffffffffff81111561220b5761220b600080fd5b611be8858286016121ae565b611bf481611b74565b602081016105148284612217565b805161223a8382611bf2565b50602081015161224d6020840182611bf2565b5060408101516122606040840182611bf2565b506060810151610dfd6060840182611bf2565b60808101610514828461222e565b6000806040838503121561229757612297600080fd5b60006122a38585611b99565b9250506020611be885828601611cfa565b600080604083850312156122ca576122ca600080fd5b60006122d68585611b99565b9250506020611be885828601611b99565b600061051482611b74565b6000610514826122e7565b611bf4816122f2565b6020810161051482846122fd565b600080600080600060a0868803121561232f5761232f600080fd5b600061233b8888611b99565b955050602061234c88828901611b99565b945050604061235d88828901611baa565b9350506060611f7388828901611baa565b6040808252810161237f8185611caf565b90508181036020830152611c448184611caf565b600c8152602081017f696e76616c696420747970650000000000000000000000000000000000000000815290506120ba565b6020808252810161051481612393565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806123ff57607f821691505b602082108114156121c3576121c36123d5565b600061241c825190565b61242a818560208601611c83565b9290920192915050565b7f7b226e616d65223a2022000000000000000000000000000000000000000000008152600a016124648184612412565b7f222c20226465736372697074696f6e223a20225261772050797468656173207281527f65736f7572636573202d20416c6c20746865206d6574616461746120616e642060208201527f696d61676573206172652067656e65726174656420616e642073746f7265642060408201527f31303025206f6e2d636861696e2e204e6f20495046532e204e4f204150492e2060608201527f4a7573742074686520457468657265756d20626c6f636b636861696e2e222c2060808201527f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b62617360a08201527f6536342c0000000000000000000000000000000000000000000000000000000060c082015260c401905061257a8183612412565b7f222c202261747472696275746573223a205b5d0000000000000000000000000081527f7d0000000000000000000000000000000000000000000000000000000000000060138201908152915060140161080b565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152601d016105148183612412565b60118152602081017f436f6e747261637473206e6f7420736574000000000000000000000000000000815290506120ba565b60208082528101610514816125ff565b6040810161264f8285612217565b61080b6020830184611bf2565b805161051481611ba4565b60006020828403121561267c5761267c600080fd5b6000611c44848461265c565b600f8152602081017f4c454e4754485f4d49534d415443480000000000000000000000000000000000815290506120ba565b6020808252810161051481612688565b600e8152602081017f4e4f545f415554484f52495a4544000000000000000000000000000000000000815290506120ba565b60208082528101610514816126ca565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561274a5761274a612722565b500390565b6000821982111561276257612762612722565b500190565b6040808252810161277881856120c0565b90508181036020830152611c4481846120c0565b60a0810161279a8288612217565b6127a76020830187612217565b81810360408301526127b981866120c0565b905081810360608301526127cd81856120c0565b905081810360808301526127e18184611caf565b979650505050505050565b805161051481611c08565b60006020828403121561280c5761280c600080fd5b6000611c4484846127ec565b60108152602081017f554e534146455f524543495049454e5400000000000000000000000000000000815290506120ba565b6020808252810161051481612818565b60128152602081017f5479706549642063616e6e6f7420626520300000000000000000000000000000815290506120ba565b602080825281016105148161285a565b60128152602081017f6d617820737570706c7920746f6f206c6f770000000000000000000000000000815290506120ba565b602080825281016105148161289c565b600b8152602081017f4f6e6c792041646d696e73000000000000000000000000000000000000000000815290506120ba565b60208082528101610514816128de565b6060810161292e8286611bf2565b61293b6020830185611bf2565b611c446040830184611bf2565b60108152602081017f5061757361626c653a2070617573656400000000000000000000000000000000815290506120ba565b6020808252810161051481612948565b600b8152602081017f4f6e6c792061646d696e73000000000000000000000000000000000000000000815290506120ba565b602080825281016105148161298a565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe136859003018112612a0557612a05600080fd5b8301915050803567ffffffffffffffff811115612a2457612a24600080fd5b602082019150600181023603821315612a3f57612a3f600080fd5b9250929050565b601d8152602081017f74686973207479706520686173206e6f74206265656e20736574207570000000815290506120ba565b6020808252810161051481612a46565b60108152602081017f4d6178537570706c79204d696e74656400000000000000000000000000000000815290506120ba565b6020808252810161051481612a88565b6040810161264f8285611bf2565b60a08101612ae68288612217565b612af36020830187612217565b612b006040830186611bf2565b612b0d6060830185611bf2565b81810360808301526127e18184611caf565b6105148183612412565b7f3c7376672069643d22616c746572222077696474683d2231303025222068656981527f6768743d2231303025222076657273696f6e3d22312e31222076696577426f7860208201527f3d223020302036342036342220786d6c6e733d22687474703a2f2f7777772e7760408201527f332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d2268747460608201527f703a2f2f7777772e77332e6f72672f313939392f786c696e6b223e00000000006080820152609b01612bf18183612412565b7f3c2f7376673e00000000000000000000000000000000000000000000000000008152905060068101610514565b634e487b7160e01b600052601260045260246000fd5b600082612c4457612c44612c1f565b500490565b6000816000190483118215151615612c6357612c63612722565b500290565b60148152602081017f5061757361626c653a206e6f7420706175736564000000000000000000000000815290506120ba565b6020808252810161051481612c68565b7f3c696d61676520783d22302220793d2230222077696474683d2236342220686581527f696768743d2236342220696d6167652d72656e646572696e673d22706978656c60208201527f6174656422207072657365727665417370656374526174696f3d22784d69645960408201527f4d69642220786c696e6b3a687265663d22646174613a696d6167652f706e673b60608201527f6261736536342c000000000000000000000000000000000000000000000000006080820152608701612d728183612412565b7f222f3e0000000000000000000000000000000000000000000000000000000000815290506003810161051456fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122019f459051ebde7b2b9a66737a65c0230a6a2cb43ff550a507ebd545b063e7f3664736f6c634300080b0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101b85760003560e01c8063749388c4116100f9578063de9375f211610097578063e985e9c511610071578063e985e9c514610408578063f242432a14610436578063f2fde38b14610449578063f6bb451f1461045c57600080fd5b8063de9375f2146103c2578063e79df0d1146103d5578063e7d3fe6b146103f557600080fd5b80639ca0f29b116100d35780639ca0f29b14610340578063a22cb46514610360578063a389783e14610373578063c4994180146103af57600080fd5b8063749388c4146103005780637d26c78c146103135780638da5cb5b1461032657600080fd5b80632eb2c2d6116101665780634ee6dc99116101405780634ee6dc99146102bc5780635a2e2f47146102cf5780635c975abb146102e257806370480275146102ed57600080fd5b80632eb2c2d6146102765780633ac70266146102895780634e1273f41461029c57600080fd5b806316c38b3c1161019757806316c38b3c1461023b5780631785f53c146102505780632b04e8401461026357600080fd5b8062fdd58e146101bd57806301ffc9a7146101fb5780630e89341c1461021b575b600080fd5b6101e56101cb366004611bb5565b600060208181529281526040808220909352908152205481565b6040516101f29190611bfa565b60405180910390f35b61020e610209366004611c23565b61047d565b6040516101f29190611c54565b61022e610229366004611c62565b61051a565b6040516101f29190611ce1565b61024e610249366004611d05565b6106fb565b005b61024e61025e366004611d26565b610753565b6101e5610271366004611bb5565b61078b565b61024e610284366004611ee3565b610812565b61024e610297366004611fac565b610ab1565b6102af6102aa366004612041565b610b28565b6040516101f29190612107565b61024e6102ca366004612118565b610c34565b61024e6102dd366004611d26565b610ced565b60025460ff1661020e565b61024e6102fb366004611d26565b610d3e565b61024e61030e366004612168565b610d79565b61024e6103213660046121c9565b610e02565b6007546001600160a01b03165b6040516101f29190612220565b61035361034e366004611c62565b610ef1565b6040516101f29190612273565b61024e61036e366004612281565b610f8c565b61020e6103813660046122b4565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61024e6103bd366004611fac565b610ffb565b600754610333906001600160a01b031681565b6006546103e8906001600160a01b031681565b6040516101f29190612306565b61024e610403366004612168565b611057565b61020e6104163660046122b4565b600160209081526000928352604080842090915290825290205460ff1681565b61024e610444366004612314565b611127565b61024e610457366004611d26565b611334565b61046f61046a366004611c62565b611385565b6040516101f292919061236e565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614806104e057507fd9b67a26000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b8061051457507f0e89341c000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6000818152600360205260409020600201546060906105545760405162461bcd60e51b815260040161054b906123c5565b60405180910390fd5b600082815260046020526040808220815180830190925280548290829061057a906123eb565b80601f01602080910402602001604051908101604052809291908181526020018280546105a6906123eb565b80156105f35780601f106105c8576101008083540402835291602001916105f3565b820191906000526020600020905b8154815290600101906020018083116105d657829003601f168201915b5050505050815260200160018201805461060c906123eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610638906123eb565b80156106855780601f1061065a57610100808354040283529160200191610685565b820191906000526020600020905b81548152906001019060200180831161066857829003601f168201915b5050505050815250509050600081600001516106a86106a3866114b1565b611648565b6040516020016106b9929190612434565b60405160208183030381529060405290506106d381611648565b6040516020016106e391906125cf565b60405160208183030381529060405292505050919050565b6007546001600160a01b0316331461071257600080fd5b6006546001600160a01b031661073a5760405162461bcd60e51b815260040161054b90612631565b801561074b57610748611805565b50565b610748611874565b6007546001600160a01b0316331461076a57600080fd5b6001600160a01b03166000908152600560205260409020805460ff19169055565b6040517efdd58e000000000000000000000000000000000000000000000000000000008152600090309062fdd58e906107ca9086908690600401612641565b602060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080b9190612667565b9392505050565b8251825181146108345760405162461bcd60e51b815260040161054b906126ba565b3360009081526005602052604090205460ff166108a157336001600160a01b038716148061088557506001600160a01b038616600090815260016020908152604080832033845290915290205460ff165b6108a15760405162461bcd60e51b815260040161054b906126fc565b60005b818110156109765760008582815181106108c0576108c061270c565b6020026020010151905060008583815181106108de576108de61270c565b60200260200101519050806000808b6001600160a01b03166001600160a01b031681526020019081526020016000206000848152602001908152602001600020600082825461092d9190612738565b90915550506001600160a01b0388166000908152602081815260408083208584529091528120805483929061096390849061274f565b9091555050600190920191506108a49050565b50846001600160a01b0316866001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516109c6929190612767565b60405180910390a46001600160a01b0385163b15610a80576040517fbc197c8100000000000000000000000000000000000000000000000000000000808252906001600160a01b0387169063bc197c8190610a2d9033908b908a908a908a9060040161278c565b6020604051808303816000875af1158015610a4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7091906127f7565b6001600160e01b03191614610a8d565b6001600160a01b03851615155b610aa95760405162461bcd60e51b815260040161054b9061284a565b505050505050565b6007546001600160a01b03163314610ac857600080fd5b81610ae55760405162461bcd60e51b815260040161054b9061288c565b600082815260036020526040902054811015610b135760405162461bcd60e51b815260040161054b906128ce565b60009182526003602052604090912060020155565b81518151606091908114610b4e5760405162461bcd60e51b815260040161054b906126ba565b835167ffffffffffffffff811115610b6857610b68611d47565b604051908082528060200260200182016040528015610b91578160200160208202803683370190505b50915060005b81811015610c2c57600080868381518110610bb457610bb461270c565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858381518110610bf057610bf061270c565b6020026020010151815260200190815260200160002054838281518110610c1957610c1961270c565b6020908102919091010152600101610b97565b505092915050565b3360009081526005602052604090205460ff16610c635760405162461bcd60e51b815260040161054b90612910565b60008381526003602052604081208054849290610c8190849061274f565b909155505060008381526003602052604081206001018054839290610ca790849061274f565b90915550506040517f069c51469578032eacdf4c08d21e7515ba36f52e0456901cce8073899c3934ed90610ce090859085908590612920565b60405180910390a1505050565b6007546001600160a01b03163314610d0457600080fd5b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6007546001600160a01b03163314610d5557600080fd5b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b60025460ff1615610d9c5760405162461bcd60e51b815260040161054b9061297a565b3360009081526005602052604090205460ff16610dcb5760405162461bcd60e51b815260040161054b906129bc565b60008381526003602052604081206001018054849290610dec90849061274f565b90915550610dfd90508184846118c7565b505050565b6007546001600160a01b03163314610e1957600080fd5b6040805180820190915280610e2e83806129cc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602090810190610e77908401846129cc565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093909452505084815260046020908152604090912083518051919350610ed1928492910190611adb565b506020828101518051610eea9260018501920190611adb565b5050505050565b610f1c6040518060800160405280600081526020016000815260200160008152602001600081525090565b600082815260036020526040902060020154610f4a5760405162461bcd60e51b815260040161054b906123c5565b50600090815260036020818152604092839020835160808101855281548152600182015492810192909252600281015493820193909352910154606082015290565b3360008181526001602090815260408083206001600160a01b038716808552925291829020805460ff191685151517905590519091907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190610fef908590611c54565b60405180910390a35050565b6007546001600160a01b0316331461101257600080fd5b6000828152600360205260409020600201546110405760405162461bcd60e51b815260040161054b90612a78565b600091825260036020819052604090922090910155565b60025460ff161561107a5760405162461bcd60e51b815260040161054b9061297a565b3360009081526005602052604090205460ff166110a95760405162461bcd60e51b815260040161054b906129bc565b6000838152600360205260409020600281015490546110c990849061274f565b11156110e75760405162461bcd60e51b815260040161054b90612aba565b6000838152600360205260408120805484929061110590849061274f565b92505081905550610dfd8184846040518060200160405280600081525061194c565b3360009081526005602052604090205460ff1661119457336001600160a01b038616148061117857506001600160a01b038516600090815260016020908152604080832033845290915290205460ff165b6111945760405162461bcd60e51b815260040161054b906126fc565b6001600160a01b038516600090815260208181526040808320868452909152812080548492906111c5908490612738565b90915550506001600160a01b038416600090815260208181526040808320868452909152812080548492906111fb90849061274f565b92505081905550836001600160a01b0316856001600160a01b0316336001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628686604051611251929190612aca565b60405180910390a46001600160a01b0384163b1561130b576040517ff23a6e6100000000000000000000000000000000000000000000000000000000808252906001600160a01b0386169063f23a6e61906112b89033908a90899089908990600401612ad8565b6020604051808303816000875af11580156112d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fb91906127f7565b6001600160e01b03191614611318565b6001600160a01b03841615155b610eea5760405162461bcd60e51b815260040161054b9061284a565b6007546001600160a01b0316331461134b57600080fd5b600780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6004602052600090815260409020805481906113a0906123eb565b80601f01602080910402602001604051908101604052809291908181526020018280546113cc906123eb565b80156114195780601f106113ee57610100808354040283529160200191611419565b820191906000526020600020905b8154815290600101906020018083116113fc57829003601f168201915b50505050509080600101805461142e906123eb565b80601f016020809104026020016040519081016040528092919081815260200182805461145a906123eb565b80156114a75780601f1061147c576101008083540402835291602001916114a7565b820191906000526020600020905b81548152906001019060200180831161148a57829003601f168201915b5050505050905082565b606060006115ff600460008581526020019081526020016000206040518060400160405290816000820180546114e6906123eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611512906123eb565b801561155f5780601f106115345761010080835404028352916020019161155f565b820191906000526020600020905b81548152906001019060200180831161154257829003601f168201915b50505050508152602001600182018054611578906123eb565b80601f01602080910402602001604051908101604052809291908181526020018280546115a4906123eb565b80156115f15780601f106115c6576101008083540402835291602001916115f1565b820191906000526020600020905b8154815290600101906020018083116115d457829003601f168201915b505050505081525050611aae565b60405160200161160f9190612b1f565b6040516020818303038152906040529050806040516020016116319190612b29565b604051602081830303815290604052915050919050565b606081516000141561166857505060408051602081019091526000815290565b6000604051806060016040528060408152602001612da16040913990506000600384516002611697919061274f565b6116a19190612c35565b6116ac906004612c49565b905060006116bb82602061274f565b67ffffffffffffffff8111156116d3576116d3611d47565b6040519080825280601f01601f1916602001820160405280156116fd576020820181803683370190505b509050818152600183018586518101602084015b8183101561176b5760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401611711565b60038951066001811461178557600281146117cf576117f7565b7f3d3d0000000000000000000000000000000000000000000000000000000000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe8301526117f7565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b509398975050505050505050565b60025460ff16156118285760405162461bcd60e51b815260040161054b9061297a565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861185d3390565b60405161186a9190612220565b60405180910390a1565b60025460ff166118965760405162461bcd60e51b815260040161054b90612c9a565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361185d565b6001600160a01b038316600090815260208181526040808320858452909152812080548392906118f8908490612738565b90915550506040516000906001600160a01b0385169033907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f629061193f9087908790612aca565b60405180910390a4505050565b6001600160a01b0384166000908152602081815260408083208684529091528120805484929061197d90849061274f565b90915550506040516001600160a01b0385169060009033907fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62906119c49088908890612aca565b60405180910390a46001600160a01b0384163b15611a7f576040517ff23a6e6100000000000000000000000000000000000000000000000000000000808252906001600160a01b0386169063f23a6e6190611a2c903390600090899089908990600401612ad8565b6020604051808303816000875af1158015611a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6f91906127f7565b6001600160e01b03191614611a8c565b6001600160a01b03841615155b611aa85760405162461bcd60e51b815260040161054b9061284a565b50505050565b60608160200151604051602001611ac59190612caa565b6040516020818303038152906040529050919050565b828054611ae7906123eb565b90600052602060002090601f016020900481019282611b095760008555611b4f565b82601f10611b2257805160ff1916838001178555611b4f565b82800160010185558215611b4f579182015b82811115611b4f578251825591602001919060010190611b34565b50611b5b929150611b5f565b5090565b5b80821115611b5b5760008155600101611b60565b60006001600160a01b038216610514565b611b8e81611b74565b811461074857600080fd5b803561051481611b85565b80611b8e565b803561051481611ba4565b60008060408385031215611bcb57611bcb600080fd5b6000611bd78585611b99565b9250506020611be885828601611baa565b9150509250929050565b805b82525050565b602081016105148284611bf2565b6001600160e01b03198116611b8e565b803561051481611c08565b600060208284031215611c3857611c38600080fd5b6000611c448484611c18565b949350505050565b801515611bf4565b602081016105148284611c4c565b600060208284031215611c7757611c77600080fd5b6000611c448484611baa565b60005b83811015611c9e578181015183820152602001611c86565b83811115611aa85750506000910152565b6000611cb9825190565b808452602084019350611cd0818560208601611c83565b601f01601f19169290920192915050565b6020808252810161080b8184611caf565b801515611b8e565b803561051481611cf2565b600060208284031215611d1a57611d1a600080fd5b6000611c448484611cfa565b600060208284031215611d3b57611d3b600080fd5b6000611c448484611b99565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715611d8357611d83611d47565b6040525050565b6000611d9560405190565b9050611da18282611d5d565b919050565b600067ffffffffffffffff821115611dc057611dc0611d47565b5060209081020190565b6000611ddd611dd884611da6565b611d8a565b83815290506020808201908402830185811115611dfc57611dfc600080fd5b835b81811015611e1e57611e108782611baa565b835260209283019201611dfe565b5050509392505050565b600082601f830112611e3c57611e3c600080fd5b8135611c44848260208601611dca565b600067ffffffffffffffff821115611e6657611e66611d47565b601f19601f83011660200192915050565b82818337506000910152565b6000611e91611dd884611e4c565b905082815260208101848484011115611eac57611eac600080fd5b611eb7848285611e77565b509392505050565b600082601f830112611ed357611ed3600080fd5b8135611c44848260208601611e83565b600080600080600060a08688031215611efe57611efe600080fd5b6000611f0a8888611b99565b9550506020611f1b88828901611b99565b945050604086013567ffffffffffffffff811115611f3b57611f3b600080fd5b611f4788828901611e28565b935050606086013567ffffffffffffffff811115611f6757611f67600080fd5b611f7388828901611e28565b925050608086013567ffffffffffffffff811115611f9357611f93600080fd5b611f9f88828901611ebf565b9150509295509295909350565b60008060408385031215611fc257611fc2600080fd5b6000611bd78585611baa565b6000611fdc611dd884611da6565b83815290506020808201908402830185811115611ffb57611ffb600080fd5b835b81811015611e1e5761200f8782611b99565b835260209283019201611ffd565b600082601f83011261203157612031600080fd5b8135611c44848260208601611fce565b6000806040838503121561205757612057600080fd5b823567ffffffffffffffff81111561207157612071600080fd5b61207d8582860161201d565b925050602083013567ffffffffffffffff81111561209d5761209d600080fd5b611be885828601611e28565b6120b38282611bf2565b5060200190565b60200190565b60006120ca825190565b808452602093840193830160005b828110156120fd5781516120ec87826120a9565b9650506020820191506001016120d8565b5093949350505050565b6020808252810161080b81846120c0565b60008060006060848603121561213057612130600080fd5b600061213c8686611baa565b935050602061214d86828701611baa565b925050604061215e86828701611baa565b9150509250925092565b60008060006060848603121561218057612180600080fd5b600061218c8686611baa565b935050602061219d86828701611baa565b925050604061215e86828701611b99565b6000604082840312156121c3576121c3600080fd5b50919050565b600080604083850312156121df576121df600080fd5b60006121eb8585611baa565b925050602083013567ffffffffffffffff81111561220b5761220b600080fd5b611be8858286016121ae565b611bf481611b74565b602081016105148284612217565b805161223a8382611bf2565b50602081015161224d6020840182611bf2565b5060408101516122606040840182611bf2565b506060810151610dfd6060840182611bf2565b60808101610514828461222e565b6000806040838503121561229757612297600080fd5b60006122a38585611b99565b9250506020611be885828601611cfa565b600080604083850312156122ca576122ca600080fd5b60006122d68585611b99565b9250506020611be885828601611b99565b600061051482611b74565b6000610514826122e7565b611bf4816122f2565b6020810161051482846122fd565b600080600080600060a0868803121561232f5761232f600080fd5b600061233b8888611b99565b955050602061234c88828901611b99565b945050604061235d88828901611baa565b9350506060611f7388828901611baa565b6040808252810161237f8185611caf565b90508181036020830152611c448184611caf565b600c8152602081017f696e76616c696420747970650000000000000000000000000000000000000000815290506120ba565b6020808252810161051481612393565b634e487b7160e01b600052602260045260246000fd5b6002810460018216806123ff57607f821691505b602082108114156121c3576121c36123d5565b600061241c825190565b61242a818560208601611c83565b9290920192915050565b7f7b226e616d65223a2022000000000000000000000000000000000000000000008152600a016124648184612412565b7f222c20226465736372697074696f6e223a20225261772050797468656173207281527f65736f7572636573202d20416c6c20746865206d6574616461746120616e642060208201527f696d61676573206172652067656e65726174656420616e642073746f7265642060408201527f31303025206f6e2d636861696e2e204e6f20495046532e204e4f204150492e2060608201527f4a7573742074686520457468657265756d20626c6f636b636861696e2e222c2060808201527f22696d616765223a2022646174613a696d6167652f7376672b786d6c3b62617360a08201527f6536342c0000000000000000000000000000000000000000000000000000000060c082015260c401905061257a8183612412565b7f222c202261747472696275746573223a205b5d0000000000000000000000000081527f7d0000000000000000000000000000000000000000000000000000000000000060138201908152915060140161080b565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152601d016105148183612412565b60118152602081017f436f6e747261637473206e6f7420736574000000000000000000000000000000815290506120ba565b60208082528101610514816125ff565b6040810161264f8285612217565b61080b6020830184611bf2565b805161051481611ba4565b60006020828403121561267c5761267c600080fd5b6000611c44848461265c565b600f8152602081017f4c454e4754485f4d49534d415443480000000000000000000000000000000000815290506120ba565b6020808252810161051481612688565b600e8152602081017f4e4f545f415554484f52495a4544000000000000000000000000000000000000815290506120ba565b60208082528101610514816126ca565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008282101561274a5761274a612722565b500390565b6000821982111561276257612762612722565b500190565b6040808252810161277881856120c0565b90508181036020830152611c4481846120c0565b60a0810161279a8288612217565b6127a76020830187612217565b81810360408301526127b981866120c0565b905081810360608301526127cd81856120c0565b905081810360808301526127e18184611caf565b979650505050505050565b805161051481611c08565b60006020828403121561280c5761280c600080fd5b6000611c4484846127ec565b60108152602081017f554e534146455f524543495049454e5400000000000000000000000000000000815290506120ba565b6020808252810161051481612818565b60128152602081017f5479706549642063616e6e6f7420626520300000000000000000000000000000815290506120ba565b602080825281016105148161285a565b60128152602081017f6d617820737570706c7920746f6f206c6f770000000000000000000000000000815290506120ba565b602080825281016105148161289c565b600b8152602081017f4f6e6c792041646d696e73000000000000000000000000000000000000000000815290506120ba565b60208082528101610514816128de565b6060810161292e8286611bf2565b61293b6020830185611bf2565b611c446040830184611bf2565b60108152602081017f5061757361626c653a2070617573656400000000000000000000000000000000815290506120ba565b6020808252810161051481612948565b600b8152602081017f4f6e6c792061646d696e73000000000000000000000000000000000000000000815290506120ba565b602080825281016105148161298a565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe136859003018112612a0557612a05600080fd5b8301915050803567ffffffffffffffff811115612a2457612a24600080fd5b602082019150600181023603821315612a3f57612a3f600080fd5b9250929050565b601d8152602081017f74686973207479706520686173206e6f74206265656e20736574207570000000815290506120ba565b6020808252810161051481612a46565b60108152602081017f4d6178537570706c79204d696e74656400000000000000000000000000000000815290506120ba565b6020808252810161051481612a88565b6040810161264f8285611bf2565b60a08101612ae68288612217565b612af36020830187612217565b612b006040830186611bf2565b612b0d6060830185611bf2565b81810360808301526127e18184611caf565b6105148183612412565b7f3c7376672069643d22616c746572222077696474683d2231303025222068656981527f6768743d2231303025222076657273696f6e3d22312e31222076696577426f7860208201527f3d223020302036342036342220786d6c6e733d22687474703a2f2f7777772e7760408201527f332e6f72672f323030302f7376672220786d6c6e733a786c696e6b3d2268747460608201527f703a2f2f7777772e77332e6f72672f313939392f786c696e6b223e00000000006080820152609b01612bf18183612412565b7f3c2f7376673e00000000000000000000000000000000000000000000000000008152905060068101610514565b634e487b7160e01b600052601260045260246000fd5b600082612c4457612c44612c1f565b500490565b6000816000190483118215151615612c6357612c63612722565b500290565b60148152602081017f5061757361626c653a206e6f7420706175736564000000000000000000000000815290506120ba565b6020808252810161051481612c68565b7f3c696d61676520783d22302220793d2230222077696474683d2236342220686581527f696768743d2236342220696d6167652d72656e646572696e673d22706978656c60208201527f6174656422207072657365727665417370656374526174696f3d22784d69645960408201527f4d69642220786c696e6b3a687265663d22646174613a696d6167652f706e673b60608201527f6261736536342c000000000000000000000000000000000000000000000000006080820152608701612d728183612412565b7f222f3e0000000000000000000000000000000000000000000000000000000000815290506003810161051456fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122019f459051ebde7b2b9a66737a65c0230a6a2cb43ff550a507ebd545b063e7f3664736f6c634300080b0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.