@volare.finance/utils.js
Version:
The Blockchain Utils
766 lines • 71.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC1155Tradable",
"sourceName": "contracts/ERC1155Tradable.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "string",
"name": "_uri",
"type": "string"
},
{
"internalType": "address",
"name": "_proxyRegistryAddress",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "address payable",
"name": "relayerAddress",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
}
],
"name": "MetaTransactionExecuted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"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": "values",
"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": "value",
"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": [],
"name": "ERC712_VERSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "accounts",
"type": "address[]"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
}
],
"name": "balanceOfBatch",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "_ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "_quantities",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "batchMint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_initialOwner",
"type": "address"
},
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_initialSupply",
"type": "uint256"
},
{
"internalType": "string",
"name": "_uri",
"type": "string"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "create",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "creators",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "userAddress",
"type": "address"
},
{
"internalType": "bytes",
"name": "functionSignature",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "sigR",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "sigS",
"type": "bytes32"
},
{
"internalType": "uint8",
"name": "sigV",
"type": "uint8"
}
],
"name": "executeMetaTransaction",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "exists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getChainId",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDomainSeperator",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "user",
"type": "address"
}
],
"name": "getNonce",
"outputs": [
{
"internalType": "uint256",
"name": "nonce",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_owner",
"type": "address"
},
{
"internalType": "address",
"name": "_operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "isOperator",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_quantity",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "ids",
"type": "uint256[]"
},
{
"internalType": "uint256[]",
"name": "amounts",
"type": "uint256[]"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeBatchTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_to",
"type": "address"
},
{
"internalType": "uint256[]",
"name": "_ids",
"type": "uint256[]"
}
],
"name": "setCreator",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_newURI",
"type": "string"
}
],
"name": "setCustomURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_newURI",
"type": "string"
}
],
"name": "setURI",
"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": "tokenSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_id",
"type": "uint256"
}
],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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"
}
],
"name": "uri",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040526003805460ff191690553480156200001b57600080fd5b506040516200336d3803806200336d8339810160408190526200003e9162000495565b816200004a8162000150565b506200005f6200005962000169565b62000185565b83516200007490600b9060208701906200033c565b5082516200008a90600c9060208601906200033c565b50600780546001600160a01b0319166001600160a01b038316179055600b8054620001469190620000bb9062000543565b80601f0160208091040260200160405190810160405280929190818152602001828054620000e99062000543565b80156200013a5780601f106200010e576101008083540402835291602001916200013a565b820191906000526020600020905b8154815290600101906020018083116200011c57829003601f168201915b5050620001d792505050565b5050505062000596565b8051620001659060029060208401906200033c565b5050565b6000620001806200023b60201b620014de1760201c565b905090565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60035460ff1615620002205760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e481a5b9a5d195960921b604482015260640160405180910390fd5b6200022b816200029a565b506003805460ff19166001179055565b6000333014156200029457600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b03169150620002979050565b50335b90565b6040518060800160405280604f81526020016200331e604f9139805160209182012082519282019290922060408051808201825260018152603160f81b90840152805180840194909452838101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608401523060808401524660a0808501919091528151808503909101815260c090930190528151910120600455565b8280546200034a9062000543565b90600052602060002090601f0160209004810192826200036e5760008555620003b9565b82601f106200038957805160ff1916838001178555620003b9565b82800160010185558215620003b9579182015b82811115620003b95782518255916020019190600101906200039c565b50620003c7929150620003cb565b5090565b5b80821115620003c75760008155600101620003cc565b600082601f830112620003f3578081fd5b81516001600160401b038082111562000410576200041062000580565b604051601f8301601f19908116603f011681019082821181831017156200043b576200043b62000580565b8160405283815260209250868385880101111562000457578485fd5b8491505b838210156200047a57858201830151818301840152908201906200045b565b838211156200048b57848385830101525b9695505050505050565b60008060008060808587031215620004ab578384fd5b84516001600160401b0380821115620004c2578586fd5b620004d088838901620003e2565b95506020870151915080821115620004e6578485fd5b620004f488838901620003e2565b945060408701519150808211156200050a578384fd5b506200051987828801620003e2565b606087015190935090506001600160a01b038116811462000538578182fd5b939692955090935050565b600181811c908216806200055857607f821691505b602082108114156200057a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b612d7880620005a66000396000f3fe6080604052600436106101b65760003560e01c80634e1273f4116100ec578063b48ab8b61161008a578063d2a6b51a11610064578063d2a6b51a14610519578063e985e9c514610539578063f242432a14610559578063f2fde38b1461057957600080fd5b8063b48ab8b614610496578063bd85b039146104b6578063cd53d08e146104e357600080fd5b8063731133e9116100c6578063731133e91461040f5780638da5cb5b1461042f57806395d89b4114610461578063a22cb4651461047657600080fd5b80634e1273f4146103ad5780634f558e79146103da578063715018a6146103fa57600080fd5b806320379ee5116101595780632eb2c2d6116101335780632eb2c2d61461033a5780633408e4701461035a57806336a100d51461036d5780633adf80b41461038d57600080fd5b806320379ee5146102c25780632693ebf2146102d75780632d0335ab1461030457600080fd5b806306fdde031161019557806306fdde03146102405780630c53c51c146102625780630e89341c146102755780630f7e59701461029557600080fd5b8062fdd58e146101bb57806301ffc9a7146101ee57806302fe53051461021e575b600080fd5b3480156101c757600080fd5b506101db6101d63660046124ff565b610599565b6040519081526020015b60405180910390f35b3480156101fa57600080fd5b5061020e610209366004612697565b610633565b60405190151581526020016101e5565b34801561022a57600080fd5b5061023e6102393660046126eb565b610683565b005b34801561024c57600080fd5b506102556106d8565b6040516101e5919061292c565b610255610270366004612485565b610766565b34801561028157600080fd5b5061025561029036600461271d565b610950565b3480156102a157600080fd5b50610255604051806040016040528060018152602001603160f81b81525081565b3480156102ce57600080fd5b506004546101db565b3480156102e357600080fd5b506101db6102f236600461271d565b60096020526000908152604090205481565b34801561031057600080fd5b506101db61031f36600461220e565b6001600160a01b031660009081526005602052604090205490565b34801561034657600080fd5b5061023e610355366004612262565b610b1e565b34801561036657600080fd5b50466101db565b34801561037957600080fd5b506101db61038836600461257e565b610bc7565b34801561039957600080fd5b5061023e6103a8366004612735565b610d2e565b3480156103b957600080fd5b506103cd6103c83660046125d5565b610dcd565b6040516101e591906128f4565b3480156103e657600080fd5b5061020e6103f536600461271d565b610f2e565b34801561040657600080fd5b5061023e610f4d565b34801561041b57600080fd5b5061023e61042a36600461252a565b610fa2565b34801561043b57600080fd5b506006546001600160a01b03165b6040516001600160a01b0390911681526020016101e5565b34801561046d57600080fd5b50610255611022565b34801561048257600080fd5b5061023e610491366004612454565b61102f565b3480156104a257600080fd5b5061023e6104b13660046123be565b611045565b3480156104c257600080fd5b506101db6104d136600461271d565b60009081526009602052604090205490565b3480156104ef57600080fd5b506104496104fe36600461271d565b6008602052600090815260409020546001600160a01b031681565b34801561052557600080fd5b5061023e610534366004612371565b611191565b34801561054557600080fd5b5061020e61055436600461222a565b6112be565b34801561056557600080fd5b5061023e61057436600461230b565b61138e565b34801561058557600080fd5b5061023e61059436600461220e565b611427565b60006001600160a01b03831661060a5760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b148061066457506001600160e01b031982166303a24d0760e21b145b8061062d57506301ffc9a760e01b6001600160e01b031983161461062d565b61068b61153b565b6001600160a01b03166106a66006546001600160a01b031690565b6001600160a01b0316146106cc5760405162461bcd60e51b815260040161060190612a16565b6106d58161154a565b50565b600b80546106e590612b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461071190612b8c565b801561075e5780601f106107335761010080835404028352916020019161075e565b820191906000526020600020905b81548152906001019060200180831161074157829003601f168201915b505050505081565b60408051606081810183526001600160a01b038816600081815260056020908152908590205484528301529181018690526107a4878287878761155d565b6107fa5760405162461bcd60e51b815260206004820152602160248201527f5369676e657220616e64207369676e617475726520646f206e6f74206d6174636044820152600d60fb1b6064820152608401610601565b6001600160a01b03871660009081526005602052604090205461081e90600161164d565b6001600160a01b0388166000908152600560205260409081902091909155517f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b9061086e90899033908a90612828565b60405180910390a1600080306001600160a01b0316888a6040516020016108969291906127f1565b60408051601f19818403018152908290526108b0916127d5565b6000604051808303816000865af19150503d80600081146108ed576040519150601f19603f3d011682016040523d82523d6000602084013e6108f2565b606091505b5091509150816109445760405162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c000000006044820152606401610601565b98975050505050505050565b6000818152600860205260409020546060906001600160a01b03166109c65760405162461bcd60e51b815260206004820152602660248201527f455243313135355472616461626c65237572693a204e4f4e4558495354454e546044820152652faa27a5a2a760d11b6064820152608401610601565b6000828152600a6020526040812080546109df90612b8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0b90612b8c565b8015610a585780601f10610a2d57610100808354040283529160200191610a58565b820191906000526020600020905b815481529060010190602001808311610a3b57829003601f168201915b50505050509050600081511115610b08576000838152600a602052604090208054610a8290612b8c565b80601f0160208091040260200160405190810160405280929190818152602001828054610aae90612b8c565b8015610afb5780601f10610ad057610100808354040283529160200191610afb565b820191906000526020600020905b815481529060010190602001808311610ade57829003601f168201915b5050505050915050919050565b610b1183611659565b9392505050565b50919050565b610b2661153b565b6001600160a01b0316856001600160a01b03161480610b4c5750610b4c8561055461153b565b610bb35760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610601565b610bc085858585856116ed565b5050505050565b6000610bd161153b565b6001600160a01b0316610bec6006546001600160a01b031690565b6001600160a01b031614610c125760405162461bcd60e51b815260040161060190612a16565b6000858152600860205260409020546001600160a01b031615610c775760405162461bcd60e51b815260206004820152601860248201527f746f6b656e205f696420616c72656164792065786973747300000000000000006044820152606401610601565b610c7f61153b565b600086815260086020526040902080546001600160a01b0319166001600160a01b0392909216919091179055825115610d0b576000858152600a602090815260409091208451610cd192860190612093565b50847f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b84604051610d02919061292c565b60405180910390a25b610d17868686856118b0565b505050600082815260096020526040902055919050565b81610d3761153b565b6000828152600860205260409020546001600160a01b03908116911614610d705760405162461bcd60e51b815260040161060190612ad4565b6000838152600a602090815260409091208351610d8f92850190612093565b50827f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b83604051610dc0919061292c565b60405180910390a2505050565b60608151835114610e325760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610601565b600083516001600160401b03811115610e5b57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610e84578160200160208202803683370190505b50905060005b8451811015610f2657610eeb858281518110610eb657634e487b7160e01b600052603260045260246000fd5b6020026020010151858381518110610ede57634e487b7160e01b600052603260045260246000fd5b6020026020010151610599565b828281518110610f0b57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152610f1f81612bed565b9050610e8a565b509392505050565b6000818152600860205260408120546001600160a01b0316151561062d565b610f5561153b565b6001600160a01b0316610f706006546001600160a01b031690565b6001600160a01b031614610f965760405162461bcd60e51b815260040161060190612a16565b610fa0600061198b565b565b82610fab61153b565b6000828152600860205260409020546001600160a01b03908116911614610fe45760405162461bcd60e51b815260040161060190612ad4565b610ff0858585856118b0565b600084815260096020526040902054611009908461164d565b6000948552600960205260409094209390935550505050565b600c80546106e590612b8c565b61104161103a61153b565b83836119dd565b5050565b60005b835181101561117e57600084828151811061107357634e487b7160e01b600052603260045260246000fd5b6020026020010151905061108561153b565b6000828152600860205260409020546001600160a01b039081169116146111065760405162461bcd60e51b815260206004820152602f60248201527f455243313135355472616461626c652362617463684d696e743a204f4e4c595f60448201526e10d491505513d497d0531313d5d151608a1b6064820152608401610601565b600084838151811061112857634e487b7160e01b600052603260045260246000fd5b6020026020010151905061115881600960008581526020019081526020016000205461164d90919063ffffffff16565b60009283526009602052604090922091909155508061117681612bed565b915050611048565b5061118b84848484611abe565b50505050565b61119961153b565b6001600160a01b03166111b46006546001600160a01b031690565b6001600160a01b0316146111da5760405162461bcd60e51b815260040161060190612a16565b6001600160a01b0382166112455760405162461bcd60e51b815260206004820152602c60248201527f455243313135355472616461626c652373657443726561746f723a20494e564160448201526b2624a22fa0a2222922a9a99760a11b6064820152608401610601565b60005b81518110156112b957600082828151811061127357634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600090815260089091526040902080546001600160a01b0319166001600160a01b03861617905550806112b181612bed565b915050611248565b505050565b60075460405163c455279160e01b81526001600160a01b03848116600483015260009281169190841690829063c45527919060240160206040518083038186803b15801561130b57600080fd5b505afa15801561131f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134391906126cf565b6001600160a01b0316141561135c57600191505061062d565b6001600160a01b0380851660009081526001602090815260408083209387168352929052205460ff165b949350505050565b61139661153b565b6001600160a01b0316856001600160a01b031614806113bc57506113bc8561055461153b565b61141a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610601565b610bc08585858585611c30565b61142f61153b565b6001600160a01b031661144a6006546001600160a01b031690565b6001600160a01b0316146114705760405162461bcd60e51b815260040161060190612a16565b6001600160a01b0381166114d55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610601565b6106d58161198b565b60003330141561153557600080368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b031691506115389050565b50335b90565b60006115456114de565b905090565b8051611041906002906020840190612093565b60006001600160a01b0386166115c35760405162461bcd60e51b815260206004820152602560248201527f4e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5360448201526424a3a722a960d91b6064820152608401610601565b60016115d66115d187611d58565b611dd5565b6040805160008152602081018083529290925260ff851690820152606081018690526080810185905260a0016020604051602081039080840390855afa158015611624573d6000803e3d6000fd5b505050602060405103516001600160a01b0316866001600160a01b031614905095945050505050565b6000610b118284612b48565b60606002805461166890612b8c565b80601f016020809104026020016040519081016040528092919081815260200182805461169490612b8c565b80156116e15780601f106116b6576101008083540402835291602001916116e1565b820191906000526020600020905b8154815290600101906020018083116116c457829003601f168201915b50505050509050919050565b815183511461170e5760405162461bcd60e51b815260040161060190612a4b565b6001600160a01b0384166117345760405162461bcd60e51b815260040161060190612987565b600061173e61153b565b905060005b845181101561184257600085828151811061176e57634e487b7160e01b600052603260045260246000fd5b60200260200101519050600085838151811061179a57634e487b7160e01b600052603260045260246000fd5b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156117ea5760405162461bcd60e51b8152600401610601906129cc565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611827908490612b48565b925050819055505050508061183b90612bed565b9050611743565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611892929190612907565b60405180910390a46118a8818787878787611e05565b505050505050565b6001600160a01b0384166118d65760405162461bcd60e51b815260040161060190612a93565b60006118e061153b565b90506118fb816000876118f288611f70565b610bc088611f70565b6000848152602081815260408083206001600160a01b03891684529091528120805485929061192b908490612b48565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4610bc081600087878787611fc9565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b03161415611a515760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610601565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b038416611ae45760405162461bcd60e51b815260040161060190612a93565b8151835114611b055760405162461bcd60e51b815260040161060190612a4b565b6000611b0f61153b565b905060005b8451811015611bc857838181518110611b3d57634e487b7160e01b600052603260045260246000fd5b6020026020010151600080878481518110611b6857634e487b7160e01b600052603260045260246000fd5b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b031681526020019081526020016000206000828254611bb09190612b48565b90915550819050611bc081612bed565b915050611b14565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611c19929190612907565b60405180910390a4610bc081600087878787611e05565b6001600160a01b038416611c565760405162461bcd60e51b815260040161060190612987565b6000611c6061153b565b9050611c718187876118f288611f70565b6000848152602081815260408083206001600160a01b038a16845290915290205483811015611cb25760405162461bcd60e51b8152600401610601906129cc565b6000858152602081815260408083206001600160a01b038b8116855292528083208785039055908816825281208054869290611cef908490612b48565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611d4f828888888888611fc9565b50505050505050565b6000604051806080016040528060438152602001612d006043913980516020918201208351848301516040808701518051908601209051611db8950193845260208401929092526001600160a01b03166040830152606082015260800190565b604051602081830303815290604052805190602001209050919050565b6000611de060045490565b60405161190160f01b6020820152602281019190915260428101839052606201611db8565b6001600160a01b0384163b156118a85760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611e49908990899088908890889060040161285d565b602060405180830381600087803b158015611e6357600080fd5b505af1925050508015611e93575060408051601f3d908101601f19168201909252611e90918101906126b3565b60015b611f4057611e9f612c34565b806308c379a01415611ed95750611eb4612c4b565b80611ebf5750611edb565b8060405162461bcd60e51b8152600401610601919061292c565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610601565b6001600160e01b0319811663bc197c8160e01b14611d4f5760405162461bcd60e51b81526004016106019061293f565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611fb857634e487b7160e01b600052603260045260246000fd5b602090810291909101015292915050565b6001600160a01b0384163b156118a85760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061200d90899089908890889088906004016128af565b602060405180830381600087803b15801561202757600080fd5b505af1925050508015612057575060408051601f3d908101601f19168201909252612054918101906126b3565b60015b61206357611e9f612c34565b6001600160e01b0319811663f23a6e6160e01b14611d4f5760405162461bcd60e51b81526004016106019061293f565b82805461209f90612b8c565b90600052602060002090601f0160209004810192826120c15760008555612107565b82601f106120da57805160ff1916838001178555612107565b82800160010185558215612107579182015b828111156121075782518255916020019190600101906120ec565b50612113929150612117565b5090565b5b808211156121135760008155600101612118565b600082601f83011261213c578081fd5b8135602061214982612b25565b6040516121568282612bc1565b8381528281019150858301600585901b87018401881015612175578586fd5b855b8581101561219357813584529284019290840190600101612177565b5090979650505050505050565b600082601f8301126121b0578081fd5b81356001600160401b038111156121c9576121c9612c1e565b6040516121e0601f8301601f191660200182612bc1565b8181528460208386010111156121f4578283fd5b816020850160208301379081016020019190915292915050565b60006020828403121561221f578081fd5b8135610b1181612cd4565b6000806040838503121561223c578081fd5b823561224781612cd4565b9150602083013561225781612cd4565b809150509250929050565b600080600080600060a08688031215612279578081fd5b853561228481612cd4565b9450602086013561229481612cd4565b935060408601356001600160401b03808211156122af578283fd5b6122bb89838a0161212c565b945060608801359150808211156122d0578283fd5b6122dc89838a0161212c565b935060808801359150808211156122f1578283fd5b506122fe888289016121a0565b9150509295509295909350565b600080600080600060a08688031215612322578081fd5b853561232d81612cd4565b9450602086013561233d81612cd4565b9350604086013592506060860135915060808601356001600160401b03811115612365578182fd5b6122fe888289016121a0565b60008060408385031215612383578182fd5b823561238e81612cd4565b915060208301356001600160401b038111156123a8578182fd5b6123b48582860161212c565b9150509250929050565b600080600080608085870312156123d3578384fd5b84356123de81612cd4565b935060208501356001600160401b03808211156123f9578485fd5b6124058883890161212c565b9450604087013591508082111561241a578384fd5b6124268883890161212c565b9350606087013591508082111561243b578283fd5b50612448878288016121a0565b91505092959194509250565b60008060408385031215612466578182fd5b823561247181612cd4565b915060208301358015158114612257578182fd5b600080600080600060a0868803121561249c578283fd5b85356124a781612cd4565b945060208601356001600160401b038111156124c1578384fd5b6124cd888289016121a0565b9450506040860135925060608601359150608086013560ff811681146124f1578182fd5b809150509295509295909350565b60008060408385031215612511578182fd5b823561251c81612cd4565b946020939093013593505050565b6000806000806080858703121561253f578182fd5b843561254a81612cd4565b9350602085013592506040850135915060608501356001600160401b03811115612572578182fd5b612448878288016121a0565b600080600080600060a08688031215612595578283fd5b85356125a081612cd4565b9450602086013593506040860135925060608601356001600160401b03808211156125c9578283fd5b6122dc89838a016121a0565b600080604083850312156125e7578182fd5b82356001600160401b03808211156125fd578384fd5b818501915085601f830112612610578384fd5b8135602061261d82612b25565b60405161262a8282612bc1565b8381528281019150858301600585901b870184018b1015612649578889fd5b8896505b8487101561267457803561266081612cd4565b83526001969096019591830191830161264d565b509650508601359250508082111561268a578283fd5b506123b48582860161212c565b6000602082840312156126a8578081fd5b8135610b1181612ce9565b6000602082840312156126c4578081fd5b8151610b1181612ce9565b6000602082840312156126e0578081fd5b8151610b1181612cd4565b6000602082840312156126fc578081fd5b81356001600160401b03811115612711578182fd5b611386848285016121a0565b60006020828403121561272e578081fd5b5035919050565b60008060408385031215612747578182fd5b8235915060208301356001600160401b03811115612763578182fd5b6123b4858286016121a0565b6000815180845260208085019450808401835b8381101561279e57815187529582019590820190600101612782565b509495945050505050565b600081518084526127c1816020860160208601612b60565b601f01601f19169290920160200192915050565b600082516127e7818460208701612b60565b9190910192915050565b60008351612803818460208801612b60565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b6001600160a01b03848116825283166020820152606060408201819052600090612854908301846127a9565b95945050505050565b6001600160a01b0386811682528516602082015260a0604082018190526000906128899083018661276f565b828103606084015261289b818661276f565b9050828103608084015261094481856127a9565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906128e9908301846127a9565b979650505050505050565b602081526000610b11602083018461276f565b60408152600061291a604083018561276f565b8281036020840152612854818561276f565b602081526000610b1160208301846127a9565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526031908201527f455243313135355472616461626c652363726561746f724f6e6c793a204f4e4c6040820152701657d0d491505513d497d0531313d5d151607a1b606082015260800190565b60006001600160401b03821115612b3e57612b3e612c1e565b5060051b60200190565b60008219821115612b5b57612b5b612c08565b500190565b60005b83811015612b7b578181015183820152602001612b63565b8381111561118b5750506000910152565b600181811c90821680612ba057607f821691505b60208210811415610b1857634e487b7160e01b600052602260045260246000fd5b601f8201601f191681016001600160401b0381118282101715612be657612be6612c1e565b6040525050565b6000600019821415612c0157612c01612c08565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d111561153857600481823e5160e01c90565b600060443d1015612c595790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715612c8857505050505090565b8285019150815181811115612ca05750505050505090565b843d8701016020828501011115612cba5750505050505090565b612cc960208286010187612bc1565b509095945050505050565b6001600160a01b03811681146106d557600080fd5b6001600160e01b0319811681146106d557600080fdfe4d6574615472616e73616374696f6e2875696e74323536206e6f6e63652c616464726573732066726f6d2c62797465732066756e6374696f6e5369676e617475726529a264697066735822122032292ec88525f9f4707e55453ab0c649185560c8b8820319b59ee6d73b875fd064736f6c63430008040033454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c6164647265737320766572696679696e67436f6e74726163742c627974657333322073616c7429",
"deployedBytecode": "0x6080604052600436106101b65760003560e01c80634e1273f4116100ec578063b48ab8b61161008a578063d2a6b51a11610064578063d2a6b51a14610519578063e985e9c514610539578063f242432a14610559578063f2fde38b1461057957600080fd5b8063b48ab8b614610496578063bd85b039146104b6578063cd53d08e146104e357600080fd5b8063731133e9116100c6578063731133e91461040f5780638da5cb5b1461042f57806395d89b4114610461578063a22cb4651461047657600080fd5b80634e1273f4146103ad5780634f558e79146103da578063715018a6146103fa57600080fd5b806320379ee5116101595780632eb2c2d6116101335780632eb2c2d61461033a5780633408e4701461035a57806336a100d51461036d5780633adf80b41461038d57600080fd5b806320379ee5146102c25780632693ebf2146102d75780632d0335ab1461030457600080fd5b806306fdde031161019557806306fdde03146102405780630c53c51c146102625780630e89341c146102755780630f7e59701461029557600080fd5b8062fdd58e146101bb57806301ffc9a7146101ee57806302fe53051461021e575b600080fd5b3480156101c757600080fd5b506101db6101d63660046124ff565b610599565b6040519081526020015b60405180910390f35b3480156101fa57600080fd5b5061020e610209366004612697565b610633565b60405190151581526020016101e5565b34801561022a57600080fd5b5061023e6102393660046126eb565b610683565b005b34801561024c57600080fd5b506102556106d8565b6040516101e5919061292c565b610255610270366004612485565b610766565b34801561028157600080fd5b5061025561029036600461271d565b610950565b3480156102a157600080fd5b50610255604051806040016040528060018152602001603160f81b81525081565b3480156102ce57600080fd5b506004546101db565b3480156102e357600080fd5b506101db6102f236600461271d565b60096020526000908152604090205481565b34801561031057600080fd5b506101db61031f36600461220e565b6001600160a01b0316600090815260056020526040902054905