Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 272 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Approval For... | 19829085 | 207 days ago | IN | 0 ETH | 0.00009388 | ||||
Set Approval For... | 19828941 | 207 days ago | IN | 0 ETH | 0.00017346 | ||||
Set Approval For... | 19466811 | 258 days ago | IN | 0 ETH | 0.00113992 | ||||
Set Approval For... | 19100698 | 309 days ago | IN | 0 ETH | 0.00045554 | ||||
Set Approval For... | 18910517 | 336 days ago | IN | 0 ETH | 0.0002358 | ||||
Set Approval For... | 18910043 | 336 days ago | IN | 0 ETH | 0.00048228 | ||||
Set Approval For... | 18900798 | 337 days ago | IN | 0 ETH | 0.00104211 | ||||
Safe Transfer Fr... | 18766956 | 356 days ago | IN | 0 ETH | 0.0014557 | ||||
Safe Transfer Fr... | 18766954 | 356 days ago | IN | 0 ETH | 0.0015208 | ||||
Safe Transfer Fr... | 18766952 | 356 days ago | IN | 0 ETH | 0.00139895 | ||||
Set Approval For... | 17820491 | 488 days ago | IN | 0 ETH | 0.00113258 | ||||
Safe Transfer Fr... | 17758816 | 497 days ago | IN | 0 ETH | 0.00102083 | ||||
Safe Transfer Fr... | 17758812 | 497 days ago | IN | 0 ETH | 0.00101644 | ||||
Safe Transfer Fr... | 17758808 | 497 days ago | IN | 0 ETH | 0.00109008 | ||||
Set Approval For... | 17709943 | 504 days ago | IN | 0 ETH | 0.00078292 | ||||
Safe Transfer Fr... | 17659681 | 511 days ago | IN | 0 ETH | 0.00079095 | ||||
Set Approval For... | 17029386 | 600 days ago | IN | 0 ETH | 0.00098122 | ||||
Set Approval For... | 16915594 | 616 days ago | IN | 0 ETH | 0.00067534 | ||||
Set Approval For... | 16910863 | 617 days ago | IN | 0 ETH | 0.00060853 | ||||
Safe Transfer Fr... | 16881844 | 621 days ago | IN | 0 ETH | 0.00057397 | ||||
Safe Transfer Fr... | 16794000 | 633 days ago | IN | 0 ETH | 0.00160065 | ||||
Safe Transfer Fr... | 16727519 | 642 days ago | IN | 0 ETH | 0.00141688 | ||||
Safe Transfer Fr... | 16690392 | 648 days ago | IN | 0 ETH | 0.00087333 | ||||
Safe Transfer Fr... | 16690392 | 648 days ago | IN | 0 ETH | 0.00087302 | ||||
Safe Transfer Fr... | 16690392 | 648 days ago | IN | 0 ETH | 0.00087333 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | ||||
---|---|---|---|---|---|---|---|
19828942 | 207 days ago | 0 ETH | |||||
19100703 | 309 days ago | 0 ETH | |||||
18910091 | 336 days ago | 0 ETH | |||||
18910087 | 336 days ago | 0 ETH | |||||
18910084 | 336 days ago | 0 ETH | |||||
18910076 | 336 days ago | 0 ETH | |||||
18910064 | 336 days ago | 0 ETH | |||||
18900829 | 337 days ago | 0 ETH | |||||
18900829 | 337 days ago | 0 ETH | |||||
18900829 | 337 days ago | 0 ETH | |||||
18900829 | 337 days ago | 0 ETH | |||||
18900800 | 337 days ago | 0 ETH | |||||
18742455 | 359 days ago | 0 ETH | |||||
17710016 | 504 days ago | 0 ETH | |||||
17710016 | 504 days ago | 0 ETH | |||||
17029419 | 600 days ago | 0 ETH | |||||
17029419 | 600 days ago | 0 ETH | |||||
16784469 | 634 days ago | 0 ETH | |||||
16660683 | 652 days ago | 0 ETH | |||||
16660683 | 652 days ago | 0 ETH | |||||
16623824 | 657 days ago | 0 ETH | |||||
16614465 | 658 days ago | 0 ETH | |||||
16614465 | 658 days ago | 0 ETH | |||||
16603751 | 660 days ago | 0 ETH | |||||
16603746 | 660 days ago | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
ZooOfNeuralAutomata
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 1000000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/* SPDX-License-Identifier: MIT _____ _______ _____ _____ /\ \ /::\ \ /\ \ /\ \ /::\ \ /::::\ \ /::\____\ /::\ \ \:::\ \ /::::::\ \ /::::| | /::::\ \ \:::\ \ /::::::::\ \ /:::::| | /::::::\ \ \:::\ \ /:::/~~\:::\ \ /::::::| | /:::/\:::\ \ \:::\ \ /:::/ \:::\ \ /:::/|::| | /:::/__\:::\ \ \:::\ \ /:::/ / \:::\ \ /:::/ |::| | /::::\ \:::\ \ \:::\ \ /:::/____/ \:::\____\ /:::/ |::| | _____ /::::::\ \:::\ \ \:::\ \ |:::| | |:::| | /:::/ |::| |/\ \ /:::/\:::\ \:::\ \ _______________\:::\____\|:::|____| |:::| |/:: / |::| /::\____\/:::/ \:::\ \:::\____\ \::::::::::::::::::/ / \:::\ \ /:::/ / \::/ /|::| /:::/ /\::/ \:::\ /:::/ / \::::::::::::::::/____/ \:::\ \ /:::/ / \/____/ |::| /:::/ / \/____/ \:::\/:::/ / \:::\~~~~\~~~~~~ \:::\ /:::/ / |::|/:::/ / \::::::/ / \:::\ \ \:::\__/:::/ / |::::::/ / \::::/ / \:::\ \ \::::::::/ / |:::::/ / /:::/ / \:::\ \ \::::::/ / |::::/ / /:::/ / \:::\ \ \::::/ / /:::/ / /:::/ / \:::\____\ \::/____/ /:::/ / /:::/ / \::/ / ~~ \::/ / \::/ / \/____/ \/____/ \/____/ */ pragma solidity 0.8.15; import {IZooOfNeuralAutomata} from "./interfaces/IZooOfNeuralAutomata.sol"; import {INeuralAutomataEngine, NCAParams} from "./interfaces/INeuralAutomataEngine.sol"; import {ERC1155} from "../lib/solmate/src/tokens/ERC1155.sol"; import {Owned} from "../lib/solmate/src/auth/Owned.sol"; import {Base64} from "./utils/Base64.sol"; contract ZooOfNeuralAutomata is IZooOfNeuralAutomata, ERC1155, Owned { string public name = "Zoo of Neural Automata"; string public symbol = "ZoNA"; string public contractURI; address public engine; mapping(uint256 => NCAParams) public tokenParams; mapping(uint256 => address) public tokenMinter; mapping(uint256 => address) public tokenBurner; mapping(uint256 => string) public tokenBaseURI; mapping(uint256 => bool) public tokenFrozen; modifier onlyUnfrozen(uint256 _id){ require(!tokenFrozen[_id]); _; } constructor( address _engine, string memory _contractURI ) Owned(msg.sender) { engine = _engine; contractURI = _contractURI; } function newToken( uint256 _id, NCAParams memory _params, address _minter, address _burner, string memory _baseURI ) external onlyOwner onlyUnfrozen(_id) { tokenParams[_id] = _params; tokenMinter[_id] = _minter; tokenBurner[_id] = _burner; tokenBaseURI[_id] = _baseURI; } function updateParams( uint256 _id, NCAParams memory _params ) external onlyOwner onlyUnfrozen(_id) { tokenParams[_id] = _params; } function updateMinter( uint256 _id, address _minter ) external onlyOwner onlyUnfrozen(_id) { tokenMinter[_id] = _minter; } function updateBurner( uint256 _id, address _burner ) external onlyOwner onlyUnfrozen(_id) { tokenBurner[_id] = _burner; } function updateBaseURI( uint256 _id, string memory _baseURI ) external onlyOwner onlyUnfrozen(_id) { tokenBaseURI[_id] = _baseURI; } function freeze(uint256 _id) external onlyOwner { tokenFrozen[_id] = true; } function updateEngine(address _engine) external onlyOwner { engine = _engine; } function updateContractURI(string memory _contractURI) external onlyOwner { contractURI = _contractURI; } function mint( address _to, uint256 _id, uint256 _amount ) external { require(msg.sender == tokenMinter[_id]); _mint(_to, _id, _amount, ""); } function burn( address _from, uint256 _id, uint256 _amount ) external { require(msg.sender == tokenBurner[_id]); _burn(_from, _id, _amount); } function uri(uint256 id) public view override returns (string memory){ require(tokenMinter[id] != address(0)); return string.concat( "data:application/json;base64,", Base64.encode( abi.encodePacked( string.concat( tokenBaseURI[id], "\"", INeuralAutomataEngine(engine).page(tokenParams[id]), "\"}" ) ) ) ); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Simple single owner authorization mixin. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol) abstract contract Owned { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event OwnershipTransferred(address indexed user, address indexed newOwner); /*////////////////////////////////////////////////////////////// OWNERSHIP STORAGE //////////////////////////////////////////////////////////////*/ address public owner; modifier onlyOwner() virtual { require(msg.sender == owner, "UNAUTHORIZED"); _; } /*////////////////////////////////////////////////////////////// CONSTRUCTOR //////////////////////////////////////////////////////////////*/ constructor(address _owner) { owner = _owner; emit OwnershipTransferred(address(0), _owner); } /*////////////////////////////////////////////////////////////// OWNERSHIP LOGIC //////////////////////////////////////////////////////////////*/ function transferOwnership(address newOwner) public virtual onlyOwner { owner = newOwner; emit OwnershipTransferred(msg.sender, newOwner); } }
// SPDX-License-Identifier: AGPL-3.0-only pragma solidity >=0.8.0; /// @notice Minimalist and gas efficient standard ERC1155 implementation. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155 { /*////////////////////////////////////////////////////////////// EVENTS //////////////////////////////////////////////////////////////*/ event TransferSingle( address indexed operator, address indexed from, address indexed to, uint256 id, uint256 amount ); event TransferBatch( address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] amounts ); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); event URI(string value, uint256 indexed id); /*////////////////////////////////////////////////////////////// ERC1155 STORAGE //////////////////////////////////////////////////////////////*/ mapping(address => mapping(uint256 => uint256)) public balanceOf; mapping(address => mapping(address => bool)) public isApprovedForAll; /*////////////////////////////////////////////////////////////// METADATA LOGIC //////////////////////////////////////////////////////////////*/ function uri(uint256 id) public view virtual returns (string memory); /*////////////////////////////////////////////////////////////// ERC1155 LOGIC //////////////////////////////////////////////////////////////*/ function setApprovalForAll(address operator, bool approved) public virtual { isApprovedForAll[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } function safeTransferFrom( address from, address to, uint256 id, uint256 amount, bytes calldata data ) public virtual { require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); balanceOf[from][id] -= amount; balanceOf[to][id] += amount; emit TransferSingle(msg.sender, from, to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, from, id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function safeBatchTransferFrom( address from, address to, uint256[] calldata ids, uint256[] calldata amounts, bytes calldata data ) public virtual { require(ids.length == amounts.length, "LENGTH_MISMATCH"); require(msg.sender == from || isApprovedForAll[from][msg.sender], "NOT_AUTHORIZED"); // Storing these outside the loop saves ~15 gas per iteration. uint256 id; uint256 amount; for (uint256 i = 0; i < ids.length; ) { id = ids[i]; amount = amounts[i]; balanceOf[from][id] -= amount; balanceOf[to][id] += amount; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, from, ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function balanceOfBatch(address[] calldata owners, uint256[] calldata ids) public view virtual returns (uint256[] memory balances) { require(owners.length == ids.length, "LENGTH_MISMATCH"); balances = new uint256[](owners.length); // Unchecked because the only math done is incrementing // the array index counter which cannot possibly overflow. unchecked { for (uint256 i = 0; i < owners.length; ++i) { balances[i] = balanceOf[owners[i]][ids[i]]; } } } /*////////////////////////////////////////////////////////////// ERC165 LOGIC //////////////////////////////////////////////////////////////*/ function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) { return interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165 interfaceId == 0xd9b67a26 || // ERC165 Interface ID for ERC1155 interfaceId == 0x0e89341c; // ERC165 Interface ID for ERC1155MetadataURI } /*////////////////////////////////////////////////////////////// INTERNAL MINT/BURN LOGIC //////////////////////////////////////////////////////////////*/ function _mint( address to, uint256 id, uint256 amount, bytes memory data ) internal virtual { balanceOf[to][id] += amount; emit TransferSingle(msg.sender, address(0), to, id, amount); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155Received(msg.sender, address(0), id, amount, data) == ERC1155TokenReceiver.onERC1155Received.selector, "UNSAFE_RECIPIENT" ); } function _batchMint( address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[to][ids[i]] += amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, address(0), to, ids, amounts); require( to.code.length == 0 ? to != address(0) : ERC1155TokenReceiver(to).onERC1155BatchReceived(msg.sender, address(0), ids, amounts, data) == ERC1155TokenReceiver.onERC1155BatchReceived.selector, "UNSAFE_RECIPIENT" ); } function _batchBurn( address from, uint256[] memory ids, uint256[] memory amounts ) internal virtual { uint256 idsLength = ids.length; // Saves MLOADs. require(idsLength == amounts.length, "LENGTH_MISMATCH"); for (uint256 i = 0; i < idsLength; ) { balanceOf[from][ids[i]] -= amounts[i]; // An array can't have a total length // larger than the max uint256 value. unchecked { ++i; } } emit TransferBatch(msg.sender, from, address(0), ids, amounts); } function _burn( address from, uint256 id, uint256 amount ) internal virtual { balanceOf[from][id] -= amount; emit TransferSingle(msg.sender, from, address(0), id, amount); } } /// @notice A generic interface for a contract which properly accepts ERC1155 tokens. /// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC1155.sol) abstract contract ERC1155TokenReceiver { function onERC1155Received( address, address, uint256, uint256, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155Received.selector; } function onERC1155BatchReceived( address, address, uint256[] calldata, uint256[] calldata, bytes calldata ) external virtual returns (bytes4) { return ERC1155TokenReceiver.onERC1155BatchReceived.selector; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; struct NCAParams { string seed; string bg; string fg1; string fg2; string matrix; string activation; string rand; string mods; } interface INeuralAutomataEngine { function baseScript() external view returns(string memory); function parameters(NCAParams memory _params) external pure returns(string memory); function p5() external view returns(string memory); function script(NCAParams memory _params) external view returns(string memory); function page(NCAParams memory _params) external view returns(string memory); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; import {NCAParams} from "./INeuralAutomataEngine.sol"; interface IZooOfNeuralAutomata { function updateEngine(address _engine) external; function updateContractURI(string memory _contractURI) external; function updateParams(uint256 _id, NCAParams memory _params) external; function updateMinter(uint256 _id, address _minter) external; function updateBurner(uint256 _id, address _burner) external; function updateBaseURI(uint256 _id, string memory _baseURI) external; function freeze(uint256 _id) external; function newToken( uint256 _id, NCAParams memory _params, address _minter, address _burner, string memory _baseURI ) external; function mint( address _to, uint256 _id, uint256 _amount ) external; function burn( address _from, uint256 _id, uint256 _amount ) external; }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; library Base64 { string internal constant _TABLE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; function encode(bytes memory data) public pure returns (string memory) { if (data.length == 0) return ""; string memory table = _TABLE; string memory result = new string(4 * ((data.length + 2) / 3)); assembly { let tablePtr := add(table, 1) let resultPtr := add(result, 32) for { let dataPtr := data let endPtr := add(data, mload(data)) } lt(dataPtr, endPtr) { } { dataPtr := add(dataPtr, 3) let input := mload(dataPtr) mstore8(resultPtr, mload(add(tablePtr, and(shr(18, input), 0x3F)))) resultPtr := add(resultPtr, 1) mstore8(resultPtr, mload(add(tablePtr, and(shr(12, input), 0x3F)))) resultPtr := add(resultPtr, 1) mstore8(resultPtr, mload(add(tablePtr, and(shr(6, input), 0x3F)))) resultPtr := add(resultPtr, 1) mstore8(resultPtr, mload(add(tablePtr, and(input, 0x3F)))) resultPtr := add(resultPtr, 1) } switch mod(mload(data), 3) case 1 { mstore8(sub(resultPtr, 1), 0x3d) mstore8(sub(resultPtr, 2), 0x3d) } case 2 { mstore8(sub(resultPtr, 1), 0x3d) } } return result; } }
{ "remappings": [ "ds-test/=lib/solmate/lib/ds-test/src/", "ethfs/=lib/ethfs/", "ethier/=lib/ethfs/packages/contracts/lib/ethier/", "forge-std/=lib/forge-std/src/", "openzeppelin/=lib/ethfs/packages/contracts/lib/openzeppelin-contracts/contracts/", "solady/=lib/ethfs/packages/contracts/lib/solady/src/", "solmate/=lib/solmate/src/" ], "optimizer": { "enabled": true, "runs": 1000000 }, "metadata": { "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": { "src/utils/Base64.sol": { "Base64": "0x38edb18902ed19d6eb3f532233a0246183273bf9" } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_engine","type":"address"},{"internalType":"string","name":"_contractURI","type":"string"}],"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":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"balances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"engine","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"freeze","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"components":[{"internalType":"string","name":"seed","type":"string"},{"internalType":"string","name":"bg","type":"string"},{"internalType":"string","name":"fg1","type":"string"},{"internalType":"string","name":"fg2","type":"string"},{"internalType":"string","name":"matrix","type":"string"},{"internalType":"string","name":"activation","type":"string"},{"internalType":"string","name":"rand","type":"string"},{"internalType":"string","name":"mods","type":"string"}],"internalType":"struct NCAParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_minter","type":"address"},{"internalType":"address","name":"_burner","type":"address"},{"internalType":"string","name":"_baseURI","type":"string"}],"name":"newToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"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":"","type":"uint256"}],"name":"tokenBaseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenBurner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenMinter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenParams","outputs":[{"internalType":"string","name":"seed","type":"string"},{"internalType":"string","name":"bg","type":"string"},{"internalType":"string","name":"fg1","type":"string"},{"internalType":"string","name":"fg2","type":"string"},{"internalType":"string","name":"matrix","type":"string"},{"internalType":"string","name":"activation","type":"string"},{"internalType":"string","name":"rand","type":"string"},{"internalType":"string","name":"mods","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"string","name":"_baseURI","type":"string"}],"name":"updateBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_burner","type":"address"}],"name":"updateBurner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_contractURI","type":"string"}],"name":"updateContractURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_engine","type":"address"}],"name":"updateEngine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_minter","type":"address"}],"name":"updateMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"components":[{"internalType":"string","name":"seed","type":"string"},{"internalType":"string","name":"bg","type":"string"},{"internalType":"string","name":"fg1","type":"string"},{"internalType":"string","name":"fg2","type":"string"},{"internalType":"string","name":"matrix","type":"string"},{"internalType":"string","name":"activation","type":"string"},{"internalType":"string","name":"rand","type":"string"},{"internalType":"string","name":"mods","type":"string"}],"internalType":"struct NCAParams","name":"_params","type":"tuple"}],"name":"updateParams","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c0604052601660809081527f5a6f6f206f66204e657572616c204175746f6d6174610000000000000000000060a0526003906200003e9082620001b3565b50604080518082019091526004808252635a6f4e4160e01b602083015290620000689082620001b3565b503480156200007657600080fd5b506040516200367a3803806200367a83398101604081905262000099916200027f565b600280546001600160a01b0319163390811790915560405181906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b0319166001600160a01b0384161790556005620001058282620001b3565b5050506200037f565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200013957607f821691505b6020821081036200015a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ae57600081815260208120601f850160051c81016020861015620001895750805b601f850160051c820191505b81811015620001aa5782815560010162000195565b5050505b505050565b81516001600160401b03811115620001cf57620001cf6200010e565b620001e781620001e0845462000124565b8462000160565b602080601f8311600181146200021f5760008415620002065750858301515b600019600386901b1c1916600185901b178555620001aa565b600085815260208120601f198616915b8281101562000250578886015182559484019460019091019084016200022f565b50858210156200026f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600080604083850312156200029357600080fd5b82516001600160a01b0381168114620002ab57600080fd5b602084810151919350906001600160401b0380821115620002cb57600080fd5b818601915086601f830112620002e057600080fd5b815181811115620002f557620002f56200010e565b604051601f8201601f19908116603f011681019083821181831017156200032057620003206200010e565b8160405282815289868487010111156200033957600080fd5b600093505b828410156200035d57848401860151818501870152928501926200033e565b828411156200036f5760008684830101525b8096505050505050509250929050565b6132eb806200038f6000396000f3fe608060405234801561001057600080fd5b50600436106101ce5760003560e01c80637e5b1e2411610104578063bd15092f116100a2578063e985e9c511610071578063e985e9c51461048a578063f242432a146104b8578063f2fde38b146104cb578063f5298aca146104de57600080fd5b8063bd15092f1461043c578063c9d4623f1461044f578063d7a78db81461046f578063e8a3d4851461048257600080fd5b80638da5cb5b116100de5780638da5cb5b146103ee57806395d89b411461040e578063a22cb46514610416578063b87152371461042957600080fd5b80637e5b1e2414610392578063817234fa146103a55780638b1cc4f4146103b857600080fd5b80632eb2c2d611610171578063513f99e71161014b578063513f99e7146102da57806359c9ec74146102fd578063754263e1146103105780637c57d9471461033757600080fd5b80632eb2c2d6146102945780634656d75a146102a75780634e1273f4146102ba57600080fd5b806306fdde03116101ad57806306fdde03146102465780630777ca3d1461025b5780630e89341c1461026e578063156e29f61461028157600080fd5b8062fdd58e146101d357806301ffc9a71461020e57806303409d6b14610231575b600080fd5b6101fb6101e1366004612260565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b61022161021c3660046122bb565b6104f1565b6040519015158152602001610205565b61024461023f3660046122df565b6105d6565b005b61024e6106ce565b6040516102059190612381565b6102446102693660046122df565b61075c565b61024e61027c366004612394565b61084f565b61024461028f3660046123ad565b610a6e565b6102446102a236600461246e565b610abe565b61024e6102b5366004612394565b610eaf565b6102cd6102c8366004612529565b610ec8565b6040516102059190612595565b6102216102e8366004612394565b600b6020526000908152604090205460ff1681565b61024461030b36600461286b565b61103f565b61032361031e366004612394565b611216565b6040516102059897969594939291906128fa565b61036d610345366004612394565b60086020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610205565b6102446103a03660046129a9565b611696565b6102446103b33660046129e6565b611727565b61036d6103c6366004612394565b60096020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60025461036d9073ffffffffffffffffffffffffffffffffffffffff1681565b61024e6117e4565b610244610424366004612a2d565b6117f1565b610244610437366004612a69565b611888565b61024461044a366004612aa6565b6119e1565b60065461036d9073ffffffffffffffffffffffffffffffffffffffff1681565b61024461047d366004612394565b611aa9565b61024e611b63565b610221610498366004612ac1565b600160209081526000928352604080842090915290825290205460ff1681565b6102446104c6366004612aeb565b611b70565b6102446104d9366004612aa6565b611e6e565b6102446104ec3660046123ad565b611f60565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061058457507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806105d057507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60025473ffffffffffffffffffffffffffffffffffffffff16331461065c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000828152600b6020526040902054829060ff161561067a57600080fd5b5060009182526008602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600380546106db90612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461070790612b63565b80156107545780601f1061072957610100808354040283529160200191610754565b820191906000526020600020905b81548152906001019060200180831161073757829003601f168201915b505050505081565b60025473ffffffffffffffffffffffffffffffffffffffff1633146107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000828152600b6020526040902054829060ff16156107fb57600080fd5b5060009182526009602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60008181526008602052604090205460609073ffffffffffffffffffffffffffffffffffffffff1661088057600080fd5b6000828152600a6020908152604080832060065460079093529281902090517f7ba4965b0000000000000000000000000000000000000000000000000000000081527338edb18902ed19d6eb3f532233a0246183273bf9936312496a1b93909273ffffffffffffffffffffffffffffffffffffffff90911691637ba4965b9161090b91600401612c51565b600060405180830381865afa158015610928573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261096e9190810190612d45565b60405160200161097f929190612db3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526109ba91602001612eb0565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016109e59190612381565b600060405180830381865af4158015610a02573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a489190810190612d45565b604051602001610a589190612ecc565b6040516020818303038152906040529050919050565b60008281526008602052604090205473ffffffffffffffffffffffffffffffffffffffff163314610a9e57600080fd5b610ab983838360405180602001604052806000815250611f9b565b505050565b848314610b27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610653565b3373ffffffffffffffffffffffffffffffffffffffff89161480610b7b575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b610be1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610653565b60008060005b87811015610cb657888882818110610c0157610c01612f11565b905060200201359250868682818110610c1c57610c1c612f11565b73ffffffffffffffffffffffffffffffffffffffff8e1660009081526020818152604080832089845282528220805493909102949094013595508593925090610c66908490612f6f565b909155505073ffffffffffffffffffffffffffffffffffffffff8a1660009081526020818152604080832086845290915281208054849290610ca9908490612f86565b9091555050600101610be7565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b604051610d319493929190612fed565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15610e23576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c8190610db89033908f908e908e908e908e908e908e90600401613068565b6020604051808303816000875af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfb91906130ca565b7fffffffff000000000000000000000000000000000000000000000000000000001614610e3d565b73ffffffffffffffffffffffffffffffffffffffff891615155b610ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610653565b50505050505050505050565b600a60205260009081526040902080546106db90612b63565b6060838214610f33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610653565b8367ffffffffffffffff811115610f4c57610f4c6125d9565b604051908082528060200260200182016040528015610f75578160200160208202803683370190505b50905060005b8481101561103657600080878784818110610f9857610f98612f11565b9050602002016020810190610fad9190612aa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858584818110610ffb57610ffb612f11565b9050602002013581526020019081526020016000205482828151811061102357611023612f11565b6020908102919091010152600101610f7b565b50949350505050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146110c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000858152600b6020526040902054859060ff16156110de57600080fd5b6000868152600760205260409020855186919081906110fd908261312d565b5060208201516001820190611112908261312d565b5060408201516002820190611127908261312d565b506060820151600382019061113c908261312d565b5060808201516004820190611151908261312d565b5060a08201516005820190611166908261312d565b5060c0820151600682019061117b908261312d565b5060e08201516007820190611190908261312d565b5050506000868152600860209081526040808320805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560098452828520805492891692909116919091179055600a909152902061120d838261312d565b50505050505050565b60076020526000908152604090208054819061123190612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461125d90612b63565b80156112aa5780601f1061127f576101008083540402835291602001916112aa565b820191906000526020600020905b81548152906001019060200180831161128d57829003601f168201915b5050505050908060010180546112bf90612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546112eb90612b63565b80156113385780601f1061130d57610100808354040283529160200191611338565b820191906000526020600020905b81548152906001019060200180831161131b57829003601f168201915b50505050509080600201805461134d90612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461137990612b63565b80156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050908060030180546113db90612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461140790612b63565b80156114545780601f1061142957610100808354040283529160200191611454565b820191906000526020600020905b81548152906001019060200180831161143757829003601f168201915b50505050509080600401805461146990612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461149590612b63565b80156114e25780601f106114b7576101008083540402835291602001916114e2565b820191906000526020600020905b8154815290600101906020018083116114c557829003601f168201915b5050505050908060050180546114f790612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461152390612b63565b80156115705780601f1061154557610100808354040283529160200191611570565b820191906000526020600020905b81548152906001019060200180831161155357829003601f168201915b50505050509080600601805461158590612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546115b190612b63565b80156115fe5780601f106115d3576101008083540402835291602001916115fe565b820191906000526020600020905b8154815290600101906020018083116115e157829003601f168201915b50505050509080600701805461161390612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461163f90612b63565b801561168c5780601f106116615761010080835404028352916020019161168c565b820191906000526020600020905b81548152906001019060200180831161166f57829003601f168201915b5050505050905088565b60025473ffffffffffffffffffffffffffffffffffffffff163314611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6005611723828261312d565b5050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000828152600b6020526040902054829060ff16156117c657600080fd5b6000838152600a602052604090206117de838261312d565b50505050565b600480546106db90612b63565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60025473ffffffffffffffffffffffffffffffffffffffff163314611909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000828152600b6020526040902054829060ff161561192757600080fd5b600083815260076020526040902082518391908190611946908261312d565b506020820151600182019061195b908261312d565b5060408201516002820190611970908261312d565b5060608201516003820190611985908261312d565b506080820151600482019061199a908261312d565b5060a082015160058201906119af908261312d565b5060c082015160068201906119c4908261312d565b5060e082015160078201906119d9908261312d565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314611a62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff163314611b2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b600580546106db90612b63565b3373ffffffffffffffffffffffffffffffffffffffff87161480611bc4575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b611c2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610653565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290611c68908490612f6f565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290611cab908490612f86565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15611dee576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190611d839033908b908a908a908a908a90600401613247565b6020604051808303816000875af1158015611da2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc691906130ca565b7fffffffff000000000000000000000000000000000000000000000000000000001614611e08565b73ffffffffffffffffffffffffffffffffffffffff851615155b6119d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610653565b60025473ffffffffffffffffffffffffffffffffffffffff163314611eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60008281526009602052604090205473ffffffffffffffffffffffffffffffffffffffff163314611f9057600080fd5b610ab9838383612199565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915281208054849290611fd9908490612f86565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b15612119576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e61906120ae903390600090899089908990600401613299565b6020604051808303816000875af11580156120cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f191906130ca565b7fffffffff000000000000000000000000000000000000000000000000000000001614612133565b73ffffffffffffffffffffffffffffffffffffffff841615155b6117de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610653565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152812080548392906121d7908490612f6f565b9091555050604080518381526020810183905260009173ffffffffffffffffffffffffffffffffffffffff86169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461225b57600080fd5b919050565b6000806040838503121561227357600080fd5b61227c83612237565b946020939093013593505050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146122b857600080fd5b50565b6000602082840312156122cd57600080fd5b81356122d88161228a565b9392505050565b600080604083850312156122f257600080fd5b8235915061230260208401612237565b90509250929050565b60005b8381101561232657818101518382015260200161230e565b838111156117de5750506000910152565b6000815180845261234f81602086016020860161230b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122d86020830184612337565b6000602082840312156123a657600080fd5b5035919050565b6000806000606084860312156123c257600080fd5b6123cb84612237565b95602085013595506040909401359392505050565b60008083601f8401126123f257600080fd5b50813567ffffffffffffffff81111561240a57600080fd5b6020830191508360208260051b850101111561242557600080fd5b9250929050565b60008083601f84011261243e57600080fd5b50813567ffffffffffffffff81111561245657600080fd5b60208301915083602082850101111561242557600080fd5b60008060008060008060008060a0898b03121561248a57600080fd5b61249389612237565b97506124a160208a01612237565b9650604089013567ffffffffffffffff808211156124be57600080fd5b6124ca8c838d016123e0565b909850965060608b01359150808211156124e357600080fd5b6124ef8c838d016123e0565b909650945060808b013591508082111561250857600080fd5b506125158b828c0161242c565b999c989b5096995094979396929594505050565b6000806000806040858703121561253f57600080fd5b843567ffffffffffffffff8082111561255757600080fd5b612563888389016123e0565b9096509450602087013591508082111561257c57600080fd5b50612589878288016123e0565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156125cd578351835292840192918401916001016125b1565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff8111828210171561262c5761262c6125d9565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612679576126796125d9565b604052919050565b600067ffffffffffffffff82111561269b5761269b6125d9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f8301126126d857600080fd5b81356126eb6126e682612681565b612632565b81815284602083860101111561270057600080fd5b816020850160208301376000918101602001919091529392505050565b6000610100828403121561273057600080fd5b612738612608565b9050813567ffffffffffffffff8082111561275257600080fd5b61275e858386016126c7565b8352602084013591508082111561277457600080fd5b612780858386016126c7565b6020840152604084013591508082111561279957600080fd5b6127a5858386016126c7565b604084015260608401359150808211156127be57600080fd5b6127ca858386016126c7565b606084015260808401359150808211156127e357600080fd5b6127ef858386016126c7565b608084015260a084013591508082111561280857600080fd5b612814858386016126c7565b60a084015260c084013591508082111561282d57600080fd5b612839858386016126c7565b60c084015260e084013591508082111561285257600080fd5b5061285f848285016126c7565b60e08301525092915050565b600080600080600060a0868803121561288357600080fd5b85359450602086013567ffffffffffffffff808211156128a257600080fd5b6128ae89838a0161271d565b95506128bc60408901612237565b94506128ca60608901612237565b935060808801359150808211156128e057600080fd5b506128ed888289016126c7565b9150509295509295909350565b600061010080835261290e8184018c612337565b90508281036020840152612922818b612337565b90508281036040840152612936818a612337565b9050828103606084015261294a8189612337565b9050828103608084015261295e8188612337565b905082810360a08401526129728187612337565b905082810360c08401526129868186612337565b905082810360e084015261299a8185612337565b9b9a5050505050505050505050565b6000602082840312156129bb57600080fd5b813567ffffffffffffffff8111156129d257600080fd5b6129de848285016126c7565b949350505050565b600080604083850312156129f957600080fd5b82359150602083013567ffffffffffffffff811115612a1757600080fd5b612a23858286016126c7565b9150509250929050565b60008060408385031215612a4057600080fd5b612a4983612237565b915060208301358015158114612a5e57600080fd5b809150509250929050565b60008060408385031215612a7c57600080fd5b82359150602083013567ffffffffffffffff811115612a9a57600080fd5b612a238582860161271d565b600060208284031215612ab857600080fd5b6122d882612237565b60008060408385031215612ad457600080fd5b612add83612237565b915061230260208401612237565b60008060008060008060a08789031215612b0457600080fd5b612b0d87612237565b9550612b1b60208801612237565b94506040870135935060608701359250608087013567ffffffffffffffff811115612b4557600080fd5b612b5189828a0161242c565b979a9699509497509295939492505050565b600181811c90821680612b7757607f821691505b602082108103612bb0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008154612bc381612b63565b808552602060018381168015612be05760018114612c1857612c46565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550612c46565b866000528260002060005b85811015612c3e5781548a8201860152908301908401612c23565b890184019650505b505050505092915050565b602081526000610100806020840152612c6e610120840185612bb6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080858303016040860152612ca68260018801612bb6565b915080858303016060860152612cbf8260028801612bb6565b915080858303016080860152612cd88260038801612bb6565b9150808583030160a0860152612cf18260048801612bb6565b9150808583030160c0860152612d0a8260058801612bb6565b9150808583030160e0860152612d238260068801612bb6565b915080858303018386015250612d3c8160078701612bb6565b95945050505050565b600060208284031215612d5757600080fd5b815167ffffffffffffffff811115612d6e57600080fd5b8201601f81018413612d7f57600080fd5b8051612d8d6126e682612681565b818152856020838501011115612da257600080fd5b612d3c82602083016020860161230b565b6000808454612dc181612b63565b60018281168015612dd95760018114612e0c57612e3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450612e3b565b8860005260208060002060005b85811015612e325781548a820152908401908201612e19565b50505082870194505b507f2200000000000000000000000000000000000000000000000000000000000000845286519250612e738382860160208a0161230b565b92820192612ea28185017f227d0000000000000000000000000000000000000000000000000000000000009052565b505050600301949350505050565b60008251612ec281846020870161230b565b9190910192915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251612f0481601d85016020870161230b565b91909101601d0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612f8157612f81612f40565b500390565b60008219821115612f9957612f99612f40565b500190565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612fd057600080fd5b8260051b8083602087013760009401602001938452509192915050565b604081526000613001604083018688612f9e565b8281036020840152613014818587612f9e565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a060408301526130a260a08301888a612f9e565b82810360608401526130b5818789612f9e565b9050828103608084015261299a81858761301f565b6000602082840312156130dc57600080fd5b81516122d88161228a565b601f821115610ab957600081815260208120601f850160051c8101602086101561310e5750805b601f850160051c820191505b818110156119d95782815560010161311a565b815167ffffffffffffffff811115613147576131476125d9565b61315b816131558454612b63565b846130e7565b602080601f8311600181146131ae57600084156131785750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119d9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156131fb578886015182559484019460019091019084016131dc565b508582101561323757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261328d60a08301848661301f565b98975050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261301460a083018461233756fea164736f6c634300080f000a000000000000000000000000f464bd061c88f0b19f88e76f76fc88d38d03ac940000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000017d646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c65794a755957316c496a6f69576d39764947396d4945356c64584a6862434242645852766257463059534973496d526c63324e796158423061573975496a6f6952486c75595731705932467362486b675a3256755a584a686447566b494746755a43426d64577873655342766269316a61474670626942755a5856795957776759325673624856735958496759585630623231686447456763484a765a334a6862584d675a6e4a7662534278645746784c6d563061434973496d6c745957646c496a6f696148523063484d364c79396e5958526c643246354c6e4270626d46305953356a624739315a43397063475a7a4c3146745545643652334e46546c59345554464e4d576474636e517a56326c4c544768305957394b5245704956564e475632317852314a79556b7072644577694c434a6c6548526c636d35686246397361573572496a6f696148523063484d364c793936623235684c6e64305a694a39000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101ce5760003560e01c80637e5b1e2411610104578063bd15092f116100a2578063e985e9c511610071578063e985e9c51461048a578063f242432a146104b8578063f2fde38b146104cb578063f5298aca146104de57600080fd5b8063bd15092f1461043c578063c9d4623f1461044f578063d7a78db81461046f578063e8a3d4851461048257600080fd5b80638da5cb5b116100de5780638da5cb5b146103ee57806395d89b411461040e578063a22cb46514610416578063b87152371461042957600080fd5b80637e5b1e2414610392578063817234fa146103a55780638b1cc4f4146103b857600080fd5b80632eb2c2d611610171578063513f99e71161014b578063513f99e7146102da57806359c9ec74146102fd578063754263e1146103105780637c57d9471461033757600080fd5b80632eb2c2d6146102945780634656d75a146102a75780634e1273f4146102ba57600080fd5b806306fdde03116101ad57806306fdde03146102465780630777ca3d1461025b5780630e89341c1461026e578063156e29f61461028157600080fd5b8062fdd58e146101d357806301ffc9a71461020e57806303409d6b14610231575b600080fd5b6101fb6101e1366004612260565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b61022161021c3660046122bb565b6104f1565b6040519015158152602001610205565b61024461023f3660046122df565b6105d6565b005b61024e6106ce565b6040516102059190612381565b6102446102693660046122df565b61075c565b61024e61027c366004612394565b61084f565b61024461028f3660046123ad565b610a6e565b6102446102a236600461246e565b610abe565b61024e6102b5366004612394565b610eaf565b6102cd6102c8366004612529565b610ec8565b6040516102059190612595565b6102216102e8366004612394565b600b6020526000908152604090205460ff1681565b61024461030b36600461286b565b61103f565b61032361031e366004612394565b611216565b6040516102059897969594939291906128fa565b61036d610345366004612394565b60086020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610205565b6102446103a03660046129a9565b611696565b6102446103b33660046129e6565b611727565b61036d6103c6366004612394565b60096020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60025461036d9073ffffffffffffffffffffffffffffffffffffffff1681565b61024e6117e4565b610244610424366004612a2d565b6117f1565b610244610437366004612a69565b611888565b61024461044a366004612aa6565b6119e1565b60065461036d9073ffffffffffffffffffffffffffffffffffffffff1681565b61024461047d366004612394565b611aa9565b61024e611b63565b610221610498366004612ac1565b600160209081526000928352604080842090915290825290205460ff1681565b6102446104c6366004612aeb565b611b70565b6102446104d9366004612aa6565b611e6e565b6102446104ec3660046123ad565b611f60565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061058457507fd9b67a26000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b806105d057507f0e89341c000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60025473ffffffffffffffffffffffffffffffffffffffff16331461065c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b6000828152600b6020526040902054829060ff161561067a57600080fd5b5060009182526008602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b600380546106db90612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461070790612b63565b80156107545780601f1061072957610100808354040283529160200191610754565b820191906000526020600020905b81548152906001019060200180831161073757829003601f168201915b505050505081565b60025473ffffffffffffffffffffffffffffffffffffffff1633146107dd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000828152600b6020526040902054829060ff16156107fb57600080fd5b5060009182526009602052604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60008181526008602052604090205460609073ffffffffffffffffffffffffffffffffffffffff1661088057600080fd5b6000828152600a6020908152604080832060065460079093529281902090517f7ba4965b0000000000000000000000000000000000000000000000000000000081527338edb18902ed19d6eb3f532233a0246183273bf9936312496a1b93909273ffffffffffffffffffffffffffffffffffffffff90911691637ba4965b9161090b91600401612c51565b600060405180830381865afa158015610928573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261096e9190810190612d45565b60405160200161097f929190612db3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526109ba91602001612eb0565b6040516020818303038152906040526040518263ffffffff1660e01b81526004016109e59190612381565b600060405180830381865af4158015610a02573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a489190810190612d45565b604051602001610a589190612ecc565b6040516020818303038152906040529050919050565b60008281526008602052604090205473ffffffffffffffffffffffffffffffffffffffff163314610a9e57600080fd5b610ab983838360405180602001604052806000815250611f9b565b505050565b848314610b27576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610653565b3373ffffffffffffffffffffffffffffffffffffffff89161480610b7b575073ffffffffffffffffffffffffffffffffffffffff8816600090815260016020908152604080832033845290915290205460ff165b610be1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610653565b60008060005b87811015610cb657888882818110610c0157610c01612f11565b905060200201359250868682818110610c1c57610c1c612f11565b73ffffffffffffffffffffffffffffffffffffffff8e1660009081526020818152604080832089845282528220805493909102949094013595508593925090610c66908490612f6f565b909155505073ffffffffffffffffffffffffffffffffffffffff8a1660009081526020818152604080832086845290915281208054849290610ca9908490612f86565b9091555050600101610be7565b508873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b604051610d319493929190612fed565b60405180910390a473ffffffffffffffffffffffffffffffffffffffff89163b15610e23576040517fbc197c81000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff8b169063bc197c8190610db89033908f908e908e908e908e908e908e90600401613068565b6020604051808303816000875af1158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfb91906130ca565b7fffffffff000000000000000000000000000000000000000000000000000000001614610e3d565b73ffffffffffffffffffffffffffffffffffffffff891615155b610ea3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610653565b50505050505050505050565b600a60205260009081526040902080546106db90612b63565b6060838214610f33576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c454e4754485f4d49534d4154434800000000000000000000000000000000006044820152606401610653565b8367ffffffffffffffff811115610f4c57610f4c6125d9565b604051908082528060200260200182016040528015610f75578160200160208202803683370190505b50905060005b8481101561103657600080878784818110610f9857610f98612f11565b9050602002016020810190610fad9190612aa6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858584818110610ffb57610ffb612f11565b9050602002013581526020019081526020016000205482828151811061102357611023612f11565b6020908102919091010152600101610f7b565b50949350505050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146110c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000858152600b6020526040902054859060ff16156110de57600080fd5b6000868152600760205260409020855186919081906110fd908261312d565b5060208201516001820190611112908261312d565b5060408201516002820190611127908261312d565b506060820151600382019061113c908261312d565b5060808201516004820190611151908261312d565b5060a08201516005820190611166908261312d565b5060c0820151600682019061117b908261312d565b5060e08201516007820190611190908261312d565b5050506000868152600860209081526040808320805473ffffffffffffffffffffffffffffffffffffffff808a167fffffffffffffffffffffffff00000000000000000000000000000000000000009283161790925560098452828520805492891692909116919091179055600a909152902061120d838261312d565b50505050505050565b60076020526000908152604090208054819061123190612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461125d90612b63565b80156112aa5780601f1061127f576101008083540402835291602001916112aa565b820191906000526020600020905b81548152906001019060200180831161128d57829003601f168201915b5050505050908060010180546112bf90612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546112eb90612b63565b80156113385780601f1061130d57610100808354040283529160200191611338565b820191906000526020600020905b81548152906001019060200180831161131b57829003601f168201915b50505050509080600201805461134d90612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461137990612b63565b80156113c65780601f1061139b576101008083540402835291602001916113c6565b820191906000526020600020905b8154815290600101906020018083116113a957829003601f168201915b5050505050908060030180546113db90612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461140790612b63565b80156114545780601f1061142957610100808354040283529160200191611454565b820191906000526020600020905b81548152906001019060200180831161143757829003601f168201915b50505050509080600401805461146990612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461149590612b63565b80156114e25780601f106114b7576101008083540402835291602001916114e2565b820191906000526020600020905b8154815290600101906020018083116114c557829003601f168201915b5050505050908060050180546114f790612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461152390612b63565b80156115705780601f1061154557610100808354040283529160200191611570565b820191906000526020600020905b81548152906001019060200180831161155357829003601f168201915b50505050509080600601805461158590612b63565b80601f01602080910402602001604051908101604052809291908181526020018280546115b190612b63565b80156115fe5780601f106115d3576101008083540402835291602001916115fe565b820191906000526020600020905b8154815290600101906020018083116115e157829003601f168201915b50505050509080600701805461161390612b63565b80601f016020809104026020016040519081016040528092919081815260200182805461163f90612b63565b801561168c5780601f106116615761010080835404028352916020019161168c565b820191906000526020600020905b81548152906001019060200180831161166f57829003601f168201915b5050505050905088565b60025473ffffffffffffffffffffffffffffffffffffffff163314611717576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6005611723828261312d565b5050565b60025473ffffffffffffffffffffffffffffffffffffffff1633146117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000828152600b6020526040902054829060ff16156117c657600080fd5b6000838152600a602052604090206117de838261312d565b50505050565b600480546106db90612b63565b33600081815260016020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60025473ffffffffffffffffffffffffffffffffffffffff163314611909576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000828152600b6020526040902054829060ff161561192757600080fd5b600083815260076020526040902082518391908190611946908261312d565b506020820151600182019061195b908261312d565b5060408201516002820190611970908261312d565b5060608201516003820190611985908261312d565b506080820151600482019061199a908261312d565b5060a082015160058201906119af908261312d565b5060c082015160068201906119c4908261312d565b5060e082015160078201906119d9908261312d565b505050505050565b60025473ffffffffffffffffffffffffffffffffffffffff163314611a62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60025473ffffffffffffffffffffffffffffffffffffffff163314611b2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b6000908152600b6020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055565b600580546106db90612b63565b3373ffffffffffffffffffffffffffffffffffffffff87161480611bc4575073ffffffffffffffffffffffffffffffffffffffff8616600090815260016020908152604080832033845290915290205460ff165b611c2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f4e4f545f415554484f52495a45440000000000000000000000000000000000006044820152606401610653565b73ffffffffffffffffffffffffffffffffffffffff861660009081526020818152604080832087845290915281208054859290611c68908490612f6f565b909155505073ffffffffffffffffffffffffffffffffffffffff851660009081526020818152604080832087845290915281208054859290611cab908490612f86565b9091555050604080518581526020810185905273ffffffffffffffffffffffffffffffffffffffff808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff85163b15611dee576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff87169063f23a6e6190611d839033908b908a908a908a908a90600401613247565b6020604051808303816000875af1158015611da2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dc691906130ca565b7fffffffff000000000000000000000000000000000000000000000000000000001614611e08565b73ffffffffffffffffffffffffffffffffffffffff851615155b6119d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610653565b60025473ffffffffffffffffffffffffffffffffffffffff163314611eef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610653565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b60008281526009602052604090205473ffffffffffffffffffffffffffffffffffffffff163314611f9057600080fd5b610ab9838383612199565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020818152604080832086845290915281208054849290611fd9908490612f86565b9091555050604080518481526020810184905273ffffffffffffffffffffffffffffffffffffffff86169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a473ffffffffffffffffffffffffffffffffffffffff84163b15612119576040517ff23a6e61000000000000000000000000000000000000000000000000000000008082529073ffffffffffffffffffffffffffffffffffffffff86169063f23a6e61906120ae903390600090899089908990600401613299565b6020604051808303816000875af11580156120cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120f191906130ca565b7fffffffff000000000000000000000000000000000000000000000000000000001614612133565b73ffffffffffffffffffffffffffffffffffffffff841615155b6117de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f554e534146455f524543495049454e54000000000000000000000000000000006044820152606401610653565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260208181526040808320858452909152812080548392906121d7908490612f6f565b9091555050604080518381526020810183905260009173ffffffffffffffffffffffffffffffffffffffff86169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461225b57600080fd5b919050565b6000806040838503121561227357600080fd5b61227c83612237565b946020939093013593505050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146122b857600080fd5b50565b6000602082840312156122cd57600080fd5b81356122d88161228a565b9392505050565b600080604083850312156122f257600080fd5b8235915061230260208401612237565b90509250929050565b60005b8381101561232657818101518382015260200161230e565b838111156117de5750506000910152565b6000815180845261234f81602086016020860161230b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006122d86020830184612337565b6000602082840312156123a657600080fd5b5035919050565b6000806000606084860312156123c257600080fd5b6123cb84612237565b95602085013595506040909401359392505050565b60008083601f8401126123f257600080fd5b50813567ffffffffffffffff81111561240a57600080fd5b6020830191508360208260051b850101111561242557600080fd5b9250929050565b60008083601f84011261243e57600080fd5b50813567ffffffffffffffff81111561245657600080fd5b60208301915083602082850101111561242557600080fd5b60008060008060008060008060a0898b03121561248a57600080fd5b61249389612237565b97506124a160208a01612237565b9650604089013567ffffffffffffffff808211156124be57600080fd5b6124ca8c838d016123e0565b909850965060608b01359150808211156124e357600080fd5b6124ef8c838d016123e0565b909650945060808b013591508082111561250857600080fd5b506125158b828c0161242c565b999c989b5096995094979396929594505050565b6000806000806040858703121561253f57600080fd5b843567ffffffffffffffff8082111561255757600080fd5b612563888389016123e0565b9096509450602087013591508082111561257c57600080fd5b50612589878288016123e0565b95989497509550505050565b6020808252825182820181905260009190848201906040850190845b818110156125cd578351835292840192918401916001016125b1565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff8111828210171561262c5761262c6125d9565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612679576126796125d9565b604052919050565b600067ffffffffffffffff82111561269b5761269b6125d9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f8301126126d857600080fd5b81356126eb6126e682612681565b612632565b81815284602083860101111561270057600080fd5b816020850160208301376000918101602001919091529392505050565b6000610100828403121561273057600080fd5b612738612608565b9050813567ffffffffffffffff8082111561275257600080fd5b61275e858386016126c7565b8352602084013591508082111561277457600080fd5b612780858386016126c7565b6020840152604084013591508082111561279957600080fd5b6127a5858386016126c7565b604084015260608401359150808211156127be57600080fd5b6127ca858386016126c7565b606084015260808401359150808211156127e357600080fd5b6127ef858386016126c7565b608084015260a084013591508082111561280857600080fd5b612814858386016126c7565b60a084015260c084013591508082111561282d57600080fd5b612839858386016126c7565b60c084015260e084013591508082111561285257600080fd5b5061285f848285016126c7565b60e08301525092915050565b600080600080600060a0868803121561288357600080fd5b85359450602086013567ffffffffffffffff808211156128a257600080fd5b6128ae89838a0161271d565b95506128bc60408901612237565b94506128ca60608901612237565b935060808801359150808211156128e057600080fd5b506128ed888289016126c7565b9150509295509295909350565b600061010080835261290e8184018c612337565b90508281036020840152612922818b612337565b90508281036040840152612936818a612337565b9050828103606084015261294a8189612337565b9050828103608084015261295e8188612337565b905082810360a08401526129728187612337565b905082810360c08401526129868186612337565b905082810360e084015261299a8185612337565b9b9a5050505050505050505050565b6000602082840312156129bb57600080fd5b813567ffffffffffffffff8111156129d257600080fd5b6129de848285016126c7565b949350505050565b600080604083850312156129f957600080fd5b82359150602083013567ffffffffffffffff811115612a1757600080fd5b612a23858286016126c7565b9150509250929050565b60008060408385031215612a4057600080fd5b612a4983612237565b915060208301358015158114612a5e57600080fd5b809150509250929050565b60008060408385031215612a7c57600080fd5b82359150602083013567ffffffffffffffff811115612a9a57600080fd5b612a238582860161271d565b600060208284031215612ab857600080fd5b6122d882612237565b60008060408385031215612ad457600080fd5b612add83612237565b915061230260208401612237565b60008060008060008060a08789031215612b0457600080fd5b612b0d87612237565b9550612b1b60208801612237565b94506040870135935060608701359250608087013567ffffffffffffffff811115612b4557600080fd5b612b5189828a0161242c565b979a9699509497509295939492505050565b600181811c90821680612b7757607f821691505b602082108103612bb0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60008154612bc381612b63565b808552602060018381168015612be05760018114612c1857612c46565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550612c46565b866000528260002060005b85811015612c3e5781548a8201860152908301908401612c23565b890184019650505b505050505092915050565b602081526000610100806020840152612c6e610120840185612bb6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe080858303016040860152612ca68260018801612bb6565b915080858303016060860152612cbf8260028801612bb6565b915080858303016080860152612cd88260038801612bb6565b9150808583030160a0860152612cf18260048801612bb6565b9150808583030160c0860152612d0a8260058801612bb6565b9150808583030160e0860152612d238260068801612bb6565b915080858303018386015250612d3c8160078701612bb6565b95945050505050565b600060208284031215612d5757600080fd5b815167ffffffffffffffff811115612d6e57600080fd5b8201601f81018413612d7f57600080fd5b8051612d8d6126e682612681565b818152856020838501011115612da257600080fd5b612d3c82602083016020860161230b565b6000808454612dc181612b63565b60018281168015612dd95760018114612e0c57612e3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0084168752821515830287019450612e3b565b8860005260208060002060005b85811015612e325781548a820152908401908201612e19565b50505082870194505b507f2200000000000000000000000000000000000000000000000000000000000000845286519250612e738382860160208a0161230b565b92820192612ea28185017f227d0000000000000000000000000000000000000000000000000000000000009052565b505050600301949350505050565b60008251612ec281846020870161230b565b9190910192915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000815260008251612f0481601d85016020870161230b565b91909101601d0192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015612f8157612f81612f40565b500390565b60008219821115612f9957612f99612f40565b500190565b81835260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115612fd057600080fd5b8260051b8083602087013760009401602001938452509192915050565b604081526000613001604083018688612f9e565b8281036020840152613014818587612f9e565b979650505050505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600073ffffffffffffffffffffffffffffffffffffffff808b168352808a1660208401525060a060408301526130a260a08301888a612f9e565b82810360608401526130b5818789612f9e565b9050828103608084015261299a81858761301f565b6000602082840312156130dc57600080fd5b81516122d88161228a565b601f821115610ab957600081815260208120601f850160051c8101602086101561310e5750805b601f850160051c820191505b818110156119d95782815560010161311a565b815167ffffffffffffffff811115613147576131476125d9565b61315b816131558454612b63565b846130e7565b602080601f8311600181146131ae57600084156131785750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b1785556119d9565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156131fb578886015182559484019460019091019084016131dc565b508582101561323757878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600073ffffffffffffffffffffffffffffffffffffffff808916835280881660208401525085604083015284606083015260a0608083015261328d60a08301848661301f565b98975050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261301460a083018461233756fea164736f6c634300080f000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f464bd061c88f0b19f88e76f76fc88d38d03ac940000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000017d646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c65794a755957316c496a6f69576d39764947396d4945356c64584a6862434242645852766257463059534973496d526c63324e796158423061573975496a6f6952486c75595731705932467362486b675a3256755a584a686447566b494746755a43426d64577873655342766269316a61474670626942755a5856795957776759325673624856735958496759585630623231686447456763484a765a334a6862584d675a6e4a7662534278645746784c6d563061434973496d6c745957646c496a6f696148523063484d364c79396e5958526c643246354c6e4270626d46305953356a624739315a43397063475a7a4c3146745545643652334e46546c59345554464e4d576474636e517a56326c4c544768305957394b5245704956564e475632317852314a79556b7072644577694c434a6c6548526c636d35686246397361573572496a6f696148523063484d364c793936623235684c6e64305a694a39000000
-----Decoded View---------------
Arg [0] : _engine (address): 0xF464bD061C88F0B19f88E76f76fC88d38d03AC94
Arg [1] : _contractURI (string): data:application/json;base64,eyJuYW1lIjoiWm9vIG9mIE5ldXJhbCBBdXRvbWF0YSIsImRlc2NyaXB0aW9uIjoiRHluYW1pY2FsbHkgZ2VuZXJhdGVkIGFuZCBmdWxseSBvbi1jaGFpbiBuZXVyYWwgY2VsbHVsYXIgYXV0b21hdGEgcHJvZ3JhbXMgZnJvbSBxdWFxLmV0aCIsImltYWdlIjoiaHR0cHM6Ly9nYXRld2F5LnBpbmF0YS5jbG91ZC9pcGZzL1FtUEd6R3NFTlY4UTFNMWdtcnQzV2lLTGh0YW9KREpIVVNGV21xR1JyUkprdEwiLCJleHRlcm5hbF9saW5rIjoiaHR0cHM6Ly96b25hLnd0ZiJ9
-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 000000000000000000000000f464bd061c88f0b19f88e76f76fc88d38d03ac94
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 000000000000000000000000000000000000000000000000000000000000017d
Arg [3] : 646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c65794a
Arg [4] : 755957316c496a6f69576d39764947396d4945356c64584a6862434242645852
Arg [5] : 766257463059534973496d526c63324e796158423061573975496a6f6952486c
Arg [6] : 75595731705932467362486b675a3256755a584a686447566b494746755a4342
Arg [7] : 6d64577873655342766269316a61474670626942755a58567959577767593256
Arg [8] : 73624856735958496759585630623231686447456763484a765a334a6862584d
Arg [9] : 675a6e4a7662534278645746784c6d563061434973496d6c745957646c496a6f
Arg [10] : 696148523063484d364c79396e5958526c643246354c6e4270626d4630595335
Arg [11] : 6a624739315a43397063475a7a4c3146745545643652334e46546c5934555446
Arg [12] : 4e4d576474636e517a56326c4c544768305957394b5245704956564e47563231
Arg [13] : 7852314a79556b7072644577694c434a6c6548526c636d356862463973615735
Arg [14] : 72496a6f696148523063484d364c793936623235684c6e64305a694a39000000
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 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.