Feature Tip: Add private address tag to any address under My Name Tag !
ERC-1155
Overview
Max Total Supply
2,088 ZoNA
Holders
1,120
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
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
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.