@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
712 lines • 60.7 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "QRC721",
"sourceName": "contracts/tokens/QRC721.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "_fromTokenId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_toTokenId",
"type": "uint256"
}
],
"name": "BatchMetadataUpdate",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "contractURI",
"type": "string"
}
],
"name": "ContractURIChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "MetadataUpdate",
"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": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "CHANGE_METADATA_PERMISSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "string",
"name": "contractURI",
"type": "string"
},
{
"internalType": "string",
"name": "baseURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "totalSupplyCap",
"type": "uint256"
},
{
"internalType": "bool",
"name": "isBaseURIToken",
"type": "bool"
}
],
"internalType": "struct IQRC721.ConstructorParams",
"name": "params_",
"type": "tuple"
}
],
"name": "__QRC721_init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account_",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId_",
"type": "uint256"
}
],
"name": "burnFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "contractURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "isBaseURIToken",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver_",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId_",
"type": "uint256"
},
{
"internalType": "string",
"name": "tokenURI_",
"type": "string"
}
],
"name": "mintTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"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": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"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": "string",
"name": "baseURI_",
"type": "string"
}
],
"name": "setBaseURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "contractURI_",
"type": "string"
}
],
"name": "setContractMetadata",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "isBaseURIToken_",
"type": "bool"
}
],
"name": "setIsBaseURIToken",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId_",
"type": "uint256"
},
{
"internalType": "string",
"name": "tokenURI_",
"type": "string"
}
],
"name": "setTokenURI",
"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": "index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupplyCap",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080806040523461001657612ca1908161001c8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a714611b405750806306fdde0314611a93578063081812fc14611a74578063095ea7b3146118ff578063162094c4146117d457806318160ddd146117b65780631c3078631461177c57806323b872dd146117525780632f745c59146116a557806342842e0e1461167d5780634f6ccce7146115eb57806355f804b3146114f25780636352211e146114c15780636c0360eb146114a557806370a0823114611479578063715018a61461141c57806379cc6790146110a25780638da5cb5b1461107957806395d89b4114610fa95780639cf119c8146109315780639f6ed25f14610695578063a22cb465146105c5578063af4b908314610563578063b88d4fde146104ff578063bb102aea146104e0578063c87b56dd146104ac578063e8a3d485146103d2578063e985e9c514610382578063f2fde38b146102f1578063f44db05d146102cd5763fce550371461017657600080fd5b346102ca57602090816003193601126102ca576001600160401b03916004358381116102c6576101aa903690600401611e6e565b906101b3612359565b81519384116102b25761012d6101d2856101cd8354611cd6565b611fd5565b81601f86116001146102375785859661020f92600080516020612c55833981519152979161022c575b508160011b916000199060031b1c19161790565b90555b610226604051928284938452830190611c1e565b0390a180f35b9050850151386101fb565b818552600080516020612c7583398151915290601f198716865b81811061029b5750918791600080516020612c55833981519152979860019410610282575b5050811b019055610212565b86015160001960f88460031b161c191690553880610276565b91928560018192868a015181550194019201610251565b634e487b7160e01b83526041600452602483fd5b8280fd5b80fd5b50346102ca57806003193601126102ca57602060ff61013054166040519015158152f35b50346102ca5760203660031901126102ca5761030b611c43565b610313612359565b6001600160a01b0381161561032e5761032b906126bb565b80f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b50346102ca5760403660031901126102ca5760ff60406020926103a3611c43565b6103ab611c5e565b6001600160a01b039182168352606a86528383209116825284522054604051911615158152f35b50346102ca57806003193601126102ca5760405190808261012d9283546103f881611cd6565b9384845260209560019287600182169182600014610488575050600114610441575b50505061042992500383611d41565b61043d604051928284938452830190611c1e565b0390f35b815285925090600080516020612c758339815191525b858310610470575050610429935082010138808061041a565b80548389018501528794508693909201918101610457565b93509450505061042994915060ff191682840152151560051b82010138808061041a565b50346102ca5760203660031901126102ca5761043d6104cc60043561217a565b604051918291602083526020830190611c1e565b50346102ca57806003193601126102ca57602061012f54604051908152f35b50346102ca5760803660031901126102ca57610519611c43565b610521611c5e565b606435916001600160401b03831161055f573660238401121561055f5761055561032b933690602481600401359101611e37565b9160443591612132565b8380fd5b50346102ca57806003193601126102ca57604051604081018181106001600160401b038211176102b25761043d9250604052600f81526e4348414e47455f4d4554414441544160881b6020820152604051918291602083526020830190611c1e565b50346102ca5760403660031901126102ca576105df611c43565b602435908115158092036102c6576001600160a01b03169033821461065057338352606a602052604083208284526020526040832060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b50346102ca5760603660031901126102ca576106af611c43565b906024356044356001600160401b0381116102c6576106d2903690600401611e6e565b906106db612359565b61012f548015908115610905575b5015610888576001600160a01b038416938415908161084457600083815260676020526040902054610727906001600160a01b031615155b15612764565b60995491838652602092609a8452806040882055600160401b811015610830579261032b96979260679261077f87610766886001839a01609955611f2c565b90919082549060031b91821b91600019901b1916179055565b156107ff575b506000848152606760205260409020546107a9906001600160a01b03161515610721565b8288526068815260408820600181540190558388525260408620816001600160601b0360a01b825416179055857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4612197565b61080890612089565b8389526097825260408920818a5282528460408a205584895260988252604089205538610785565b634e487b7160e01b87526041600452602487fd5b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60405162461bcd60e51b815260206004820152604960248201527f5b5147444b2d3031363030305d2d54686520746f74616c20737570706c79206360448201527f617061636974792065786365656465642c206d696e74696e67206973206e6f746064820152681030b63637bbb2b21760b91b608482015260a490fd5b90506099546001810180911161091d571115386106e9565b634e487b7160e01b85526011600452602485fd5b50346102ca57600319602036820112610fa5576001600160401b0360043511610fa55760c090600435360301126102ca5780549060ff8260081c1615808091610f98575b8015610f81575b15610f255760ff19831660011782556109f29281610f14575b506109af60ff835460081c166109aa81612704565b612704565b6109b8336126bb565b6109c6600480350180612100565b6109ea6109e0602460049794973501600435600401612100565b9690923691611e37565b943691611e37565b91610a0760ff825460081c166109aa81612704565b83516001600160401b038111610e2d57610a22606554611cd6565b601f8111610ec6575b506020601f8211600114610e4157819083949596610a5e9492610d48575b50508160011b916000199060031b1c19161790565b6065555b82516001600160401b038111610e2d57610a7d606654611cd6565b601f8111610dd4575b506020601f8211600114610d53578190839495610ab79492610d485750508160011b916000199060031b1c19161790565b6066555b610ad9610ad2604460043501600435600401612100565b3691611e37565b610ae960ff835460081c16612704565b80516001600160401b0381116102b257610b09816101cd61012d54611cd6565b6020601f8211600114610cc25791610b4982610b6193600080516020612c55833981519152958791610cb757508160011b916000199060031b1c19161790565b61012d55604051918291602083526020830190611c1e565b0390a1610b78606460043501600435600401612100565b6001600160401b0381949294116102b25761012e90610ba081610b9b8454611cd6565b611f90565b83601f8211600114610c485781908596610bd094959692610c3d5750508160011b916000199060031b1c19161790565b90555b6084600435013561012f5560a460043501358015158091036102c6576101309060ff80198354169116179055610c065780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b013590503880610a49565b828552601f19821695600080516020612c3583398151915291865b888110610c9f57508360019596979810610c85575b505050811b019055610bd3565b0135600019600384901b60f8161c19169055388080610c78565b90926020600181928686013581550194019101610c63565b9050830151386101fb565b61012d8452600080516020612c7583398151915290845b601f1984168110610d30575082600080516020612c558339815191529492600192610b6195601f19811610610d17575b5050811b0161012d556104cc565b84015160001960f88460031b161c191690553880610d09565b90916020600181928588015181550193019101610cd9565b015190503880610a49565b606683527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435490601f198316845b818110610dbc57509583600195969710610da3575b505050811b01606655610abb565b015160001960f88460031b161c19169055388080610d95565b9192602060018192868b015181550194019201610d80565b610e1d90606684527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354601f840160051c81019160208510610e23575b601f0160051c0190611f79565b38610a86565b9091508190610e10565b634e487b7160e01b82526041600452602482fd5b606583527f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c790835b601f1984168110610eae575060019394959683601f19811610610e95575b505050811b01606555610a62565b015160001960f88460031b161c19169055388080610e87565b9091602060018192858b015181550193019101610e69565b610f0e90606584527f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7601f840160051c81019160208510610e2357601f0160051c0190611f79565b38610a2b565b61ffff191661010117825538610995565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561097c5750600160ff84161461097c565b50600160ff841610610975565b5080fd5b50346102ca57806003193601126102ca5760405190808260665491610fcd83611cd6565b9283835260209460019186600182169182600014611057575050600114610ffd575b505061042992500383611d41565b90859250606682527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545b85831061103f57505061042993508201013880610fef565b80548389018501528794508693909201918101611027565b925093505061042994915060ff191682840152151560051b8201013880610fef565b50346102ca57806003193601126102ca5760fb546040516001600160a01b039091168152602090f35b50346102ca5760403660031901126102ca576110bc611c43565b9060249182356110cb81612066565b6001600160a01b03928316908316811490816113ca575b5015611360576110f181612066565b80831690816112c1575050609954818452609a602052806040852055600160401b8110156112ad578161076682600161112d9401609955611f2c565b609954600019948582019391841161129b57828552602093609a8552611157604087205491611f2c565b90549060031b1c61116b8161076684611f2c565b8652609a855260408620558285528460408120556099549081156112895750858392869787930161119b81611f2c565b8482549160031b1b191690556099556111b384612066565b908484526069875260408420916001600160601b0360a01b928381541690551691828452606887526040842090815401905583835260678652604083209081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a460c9825261122b6040842054611cd6565b611233575050f35b825260c9815260408220906112488254611cd6565b908161125357505050f35b8390601f8311600114611267575050505580f35b838252812092909161128490601f0160051c840160018501611f79565b555580f35b634e487b7160e01b8652603160045285fd5b634e487b7160e01b8552601160045284fd5b5050634e487b7160e01b8252506041600452fd5b6112ca90612089565b60001981019190821161134d57828552602090609882526040862054838103611311575b50838652856040812055855260978152604085209185525282604081205561112d565b818752609783526040872084885283526040872054828852609784526040882082895284528060408920558752609883526040872055386112ee565b634e487b7160e01b855260116004528585fd5b60405162461bcd60e51b8152602060048201526038818601527f5b5147444b2d3031363030315d2d4275726e206e6f7420617070726f7665642060448201527f627920746865206f776e6572206f6620746865204e46542e00000000000000006064820152608490fd5b338114915081156113dd575b50386110e2565b905033836113ea84611e8c565b16149081156113fb575b50386113d6565b90508352606a6020526040832033845260205260ff604084205416386113f4565b50346102ca57806003193601126102ca57611435612359565b60fb80546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102ca5760203660031901126102ca57602061149d611498611c43565b612089565b604051908152f35b50346102ca57806003193601126102ca5761043d6104cc611d62565b50346102ca5760203660031901126102ca5760206114e0600435612066565b6040516001600160a01b039091168152f35b50346102ca5760209060206003193601126102ca576001600160401b036004358181116102c657611527903690600401611c74565b9091611531612359565b81116102b25761012e9161154982610b9b8554611cd6565b8394601f831160011461157f57508394829161157a949592610c3d5750508160011b916000199060031b1c19161790565b905580f35b601f19831695600080516020612c35833981519152929186905b8882106115d3575050836001959697106115b9575b505050811b01905580f35b0135600019600384901b60f8161c191690553880806115ae565b80600184968294958701358155019501920190611599565b50346102ca5760203660031901126102ca5760043560995481101561162357611615602091611f2c565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608490fd5b50346102ca5761032b61168f36611ca1565b906040519261169d84611d10565b858452612132565b50346102ca5760403660031901126102ca576116bf611c43565b602435916116cc82612089565b8310156116f95760209260409260018060a01b031682526097845282822090825283522054604051908152f35b60405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608490fd5b50346102ca5761032b61176436611ca1565b9161177761177284336123b1565b611eca565b612479565b50346102ca5760203660031901126102ca57600435801515809103610fa5576117a3612359565b6101309060ff8019835416911617905580f35b50346102ca57806003193601126102ca576020609954604051908152f35b50346102ca5760403660031901126102ca576004356024356001600160401b0381116102c657611808903690600401611c74565b611813839293612066565b6001600160a01b0390811633149081156118ea575b81156118bf575b501561184a5761032b92611844913691611e37565b90612197565b60405162461bcd60e51b815260206004820152604160248201527f5b5147444b2d3031363030325d2d53657420746f6b656e20555249206e6f742060448201527f617070726f76656420627920746865206f776e6572206f6620746865204e46546064820152601760f91b608482015260a490fd5b90506118ca83612066565b168452606a6020526040842033855260205260ff6040852054163861182f565b905033816118f785611e8c565b161490611828565b50346102ca5760403660031901126102ca57611919611c43565b602435906001600160a01b03808061193085612066565b16921691808314611a2557803314908115611a04575b50156119995782845260696020526040842080546001600160a01b0319168317905561197183612066565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258480a480f35b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b90508452606a6020526040842033855260205260ff60408520541638611946565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b50346102ca5760203660031901126102ca5760206114e0600435611e8c565b50346102ca57806003193601126102ca5760405190808260655491611ab783611cd6565b9283835260209460019186600182169182600014611057575050600114611ae657505061042992500383611d41565b90859250606582527f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c75b858310611b2857505061042993508201013880610fef565b80548389018501528794508693909201918101611b10565b905034610fa5576020366003190112610fa55760043563ffffffff60e01b81168091036102c6576020925063b94a5ddb60e01b8114908115611b84575b5015158152f35b632483248360e11b811491508115611b9e575b5038611b7d565b63780e9d6360e01b811491508115611bb8575b5038611b97565b6380ac58cd60e01b811491508115611bea575b8115611bd9575b5038611bb1565b6301ffc9a760e01b14905038611bd2565b635b5e139f60e01b81149150611bcb565b60005b838110611c0e5750506000910152565b8181015183820152602001611bfe565b90602091611c3781518092818552858086019101611bfb565b601f01601f1916010190565b600435906001600160a01b0382168203611c5957565b600080fd5b602435906001600160a01b0382168203611c5957565b9181601f84011215611c59578235916001600160401b038311611c595760208381860195010111611c5957565b6060906003190112611c59576001600160a01b03906004358281168103611c5957916024359081168103611c59579060443590565b90600182811c92168015611d06575b6020831014611cf057565b634e487b7160e01b600052602260045260246000fd5b91607f1691611ce5565b602081019081106001600160401b03821117611d2b57604052565b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b03821117611d2b57604052565b6040519060008261012e91825492611d7984611cd6565b80845293602091600191828116908115611df65750600114611da7575b505050611da592500383611d41565b565b6000908152600080516020612c358339815191529590935091905b828410611dde5750611da5945050508101602001388080611d96565b85548885018301529485019487945092810192611dc2565b9250505060209250611da594915060ff191682840152151560051b820101388080611d96565b6001600160401b038111611d2b57601f01601f191660200190565b929192611e4382611e1c565b91611e516040519384611d41565b829481845281830111611c59578281602093846000960137010152565b9080601f83011215611c5957816020611e8993359101611e37565b90565b600081815260676020526040902054611eaf906001600160a01b0316151561201a565b6000908152606960205260409020546001600160a01b031690565b15611ed157565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b609954811015611f635760996000527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000190600090565b634e487b7160e01b600052603260045260246000fd5b818110611f84575050565b60008155600101611f79565b90601f8211611f9d575050565b611da59161012e600052600080516020612c35833981519152906020601f840160051c83019310610e2357601f0160051c0190611f79565b90601f8211611fe2575050565b611da59161012d600052600080516020612c75833981519152906020601f840160051c83019310610e2357601f0160051c0190611f79565b1561202157565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152606760205260409020546001600160a01b0316611e8981151561201a565b6001600160a01b031680156120a957600052606860205260406000205490565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b903590601e1981360301821215611c5957018035906001600160401b038211611c5957602001918136038313611c5957565b9061215693929161214661177284336123b1565b612151838383612479565b612b11565b1561215d57565b60405162461bcd60e51b815280612176600482016127b0565b0390fd5b60ff610130541661218e57611e8990612803565b50611e89611d62565b6000818152606760205260409020549192916001600160a01b0316156122fd5760009080825260209160c9835260408120908551956001600160401b038711610e2d576121e48354611cd6565b601f81116122cf575b508491601f881160011461224b579661223f9281927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7989992610d485750508160011b916000199060031b1c19161790565b90555b604051908152a1565b9190601f198816848452868420935b8181106122b857509160019391897ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7999a941061229f575b505050811b019055612242565b015160001960f88460031b161c19169055388080612292565b92938760018192878601518155019501930161225a565b6122f790848452868420601f8a0160051c810191888b10610e2357601f0160051c0190611f79565b386121ed565b60405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608490fd5b60fb546001600160a01b0316330361236d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b906001600160a01b0380806123c584612066565b169316918383149384156123f8575b5083156123e2575b50505090565b6123ee91929350611e8c565b16143880806123dc565b909350600052606a60205260406000208260005260205260ff6040600020541692386123d4565b1561242657565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b61249d9161248684612066565b6001600160a01b039384841693918516841461241f565b83821693841561266a578391826125b1575090506099549085600052609a60205281604060002055600160401b821015611d2b57612503926124ea87610766856001899701609955611f2c565b82860361257e575b506124fc86612066565b161461241f565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008481526069602052604081206001600160601b0360a01b9081815416905583825260686020526040822060001981540190558482526040822060018154019055858252606760205284604083209182541617905580a4565b61258790612089565b604060008781526097602052818120838252602052888282205588815260986020522055386124f2565b8583036125c3575b50612503926124ea565b6125ce919250612089565b60001981019190821161265457612503928492600090888252602090609882526040918284205482810361261d575b508a845283838120558684526097815282842091845252812055926125b9565b87855260978252838520838652825283852054888652609783528486208287528352808587205585526098825283852055386125fd565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b60fb80546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b1561270b57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b1561276b57565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b600081815260676020526040902054612826906001600160a01b0316151561201a565b600081815260209060c9825260409081812091805182938054948261284a87611cd6565b91828252888201936001988a600182169182600014612af3575050600114612ab5575b5061287a92500383611d41565b612882611d62565b908151928315612aa9578051612a85575050506000868152606760205260409020546128b991506001600160a01b0316151561201a565b6128c1611d62565b805190939015612a6f5785869184977a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000009081811015612a60575b50506d04ee2d6d415b85acef810000000080841015612a52575b50662386f26fc1000080841015612a43575b506305f5e10080841015612a34575b5061271080841015612a25575b506064831015612a15575b600a80931015612a0b575b9081602160018a019961297e6129698c611e1c565b9b61297689519d8e611d41565b808d52611e1c565b8b8b019890601f1901368a37508a0101905b6129d5575b50505050906129c994611e899493925195836129ba8895518092888089019101611bfb565b84019151809386840190611bfb565b01038084520182611d41565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215612a0657919082612990565b612995565b9660010196612954565b9691606460029104920196612949565b6004919893049201963861293e565b60089198930492019638612931565b60109198930492019638612922565b879198930492019638612910565b949850889404925038806128f6565b5092509250505190612a8082611d10565b815290565b92975092611e899695506129c99194506129ba889151988996888089019101611bfb565b97505050505050505090565b915050855282878087208888915b858310612ada57505061287a93508201013861286d565b8091929450548385890101520191018890888693612ac3565b60ff1916875261287a95151560051b850101925038915061286d9050565b9293919290803b15612c2a57612b659460018060a01b039460405192839187630a85bd0160e11b9687855233600486015216602484015260448301526080606483015281806020998a956084830190611c1e565b03916000988991165af1849181612be6575b50612bd5575050503d600014612bcd573d612b9181611e1c565b90612b9f6040519283611d41565b81528091833d92013e5b80519182612bca5760405162461bcd60e51b815280612176600482016127b0565b01fd5b506060612ba9565b6001600160e01b0319161492509050565b9091508581813d8311612c23575b612bfe8183611d41565b81010312612c1f57516001600160e01b031981168103612c1f579038612b77565b8480fd5b503d612bf4565b505091505060019056febdaadd9f750d0166045bf387a364eadd28ba243e04512a47282aa5147a68e37fd5ee5eaf65263bab5d569890714d123ad48a9e54409d35e71d374f3dd300bba0193a3ae4da5049eb74cee39e4cf5827f7ce7b1d1d1775ef1c6311eb60558e6d5a164736f6c6343000818000a",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b600090813560e01c90816301ffc9a714611b405750806306fdde0314611a93578063081812fc14611a74578063095ea7b3146118ff578063162094c4146117d457806318160ddd146117b65780631c3078631461177c57806323b872dd146117525780632f745c59146116a557806342842e0e1461167d5780634f6ccce7146115eb57806355f804b3146114f25780636352211e146114c15780636c0360eb146114a557806370a0823114611479578063715018a61461141c57806379cc6790146110a25780638da5cb5b1461107957806395d89b4114610fa95780639cf119c8146109315780639f6ed25f14610695578063a22cb465146105c5578063af4b908314610563578063b88d4fde146104ff578063bb102aea146104e0578063c87b56dd146104ac578063e8a3d485146103d2578063e985e9c514610382578063f2fde38b146102f1578063f44db05d146102cd5763fce550371461017657600080fd5b346102ca57602090816003193601126102ca576001600160401b03916004358381116102c6576101aa903690600401611e6e565b906101b3612359565b81519384116102b25761012d6101d2856101cd8354611cd6565b611fd5565b81601f86116001146102375785859661020f92600080516020612c55833981519152979161022c575b508160011b916000199060031b1c19161790565b90555b610226604051928284938452830190611c1e565b0390a180f35b9050850151386101fb565b818552600080516020612c7583398151915290601f198716865b81811061029b5750918791600080516020612c55833981519152979860019410610282575b5050811b019055610212565b86015160001960f88460031b161c191690553880610276565b91928560018192868a015181550194019201610251565b634e487b7160e01b83526041600452602483fd5b8280fd5b80fd5b50346102ca57806003193601126102ca57602060ff61013054166040519015158152f35b50346102ca5760203660031901126102ca5761030b611c43565b610313612359565b6001600160a01b0381161561032e5761032b906126bb565b80f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b50346102ca5760403660031901126102ca5760ff60406020926103a3611c43565b6103ab611c5e565b6001600160a01b039182168352606a86528383209116825284522054604051911615158152f35b50346102ca57806003193601126102ca5760405190808261012d9283546103f881611cd6565b9384845260209560019287600182169182600014610488575050600114610441575b50505061042992500383611d41565b61043d604051928284938452830190611c1e565b0390f35b815285925090600080516020612c758339815191525b858310610470575050610429935082010138808061041a565b80548389018501528794508693909201918101610457565b93509450505061042994915060ff191682840152151560051b82010138808061041a565b50346102ca5760203660031901126102ca5761043d6104cc60043561217a565b604051918291602083526020830190611c1e565b50346102ca57806003193601126102ca57602061012f54604051908152f35b50346102ca5760803660031901126102ca57610519611c43565b610521611c5e565b606435916001600160401b03831161055f573660238401121561055f5761055561032b933690602481600401359101611e37565b9160443591612132565b8380fd5b50346102ca57806003193601126102ca57604051604081018181106001600160401b038211176102b25761043d9250604052600f81526e4348414e47455f4d4554414441544160881b6020820152604051918291602083526020830190611c1e565b50346102ca5760403660031901126102ca576105df611c43565b602435908115158092036102c6576001600160a01b03169033821461065057338352606a602052604083208284526020526040832060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b50346102ca5760603660031901126102ca576106af611c43565b906024356044356001600160401b0381116102c6576106d2903690600401611e6e565b906106db612359565b61012f548015908115610905575b5015610888576001600160a01b038416938415908161084457600083815260676020526040902054610727906001600160a01b031615155b15612764565b60995491838652602092609a8452806040882055600160401b811015610830579261032b96979260679261077f87610766886001839a01609955611f2c565b90919082549060031b91821b91600019901b1916179055565b156107ff575b506000848152606760205260409020546107a9906001600160a01b03161515610721565b8288526068815260408820600181540190558388525260408620816001600160601b0360a01b825416179055857fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4612197565b61080890612089565b8389526097825260408920818a5282528460408a205584895260988252604089205538610785565b634e487b7160e01b87526041600452602487fd5b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60405162461bcd60e51b815260206004820152604960248201527f5b5147444b2d3031363030305d2d54686520746f74616c20737570706c79206360448201527f617061636974792065786365656465642c206d696e74696e67206973206e6f746064820152681030b63637bbb2b21760b91b608482015260a490fd5b90506099546001810180911161091d571115386106e9565b634e487b7160e01b85526011600452602485fd5b50346102ca57600319602036820112610fa5576001600160401b0360043511610fa55760c090600435360301126102ca5780549060ff8260081c1615808091610f98575b8015610f81575b15610f255760ff19831660011782556109f29281610f14575b506109af60ff835460081c166109aa81612704565b612704565b6109b8336126bb565b6109c6600480350180612100565b6109ea6109e0602460049794973501600435600401612100565b9690923691611e37565b943691611e37565b91610a0760ff825460081c166109aa81612704565b83516001600160401b038111610e2d57610a22606554611cd6565b601f8111610ec6575b506020601f8211600114610e4157819083949596610a5e9492610d48575b50508160011b916000199060031b1c19161790565b6065555b82516001600160401b038111610e2d57610a7d606654611cd6565b601f8111610dd4575b506020601f8211600114610d53578190839495610ab79492610d485750508160011b916000199060031b1c19161790565b6066555b610ad9610ad2604460043501600435600401612100565b3691611e37565b610ae960ff835460081c16612704565b80516001600160401b0381116102b257610b09816101cd61012d54611cd6565b6020601f8211600114610cc25791610b4982610b6193600080516020612c55833981519152958791610cb757508160011b916000199060031b1c19161790565b61012d55604051918291602083526020830190611c1e565b0390a1610b78606460043501600435600401612100565b6001600160401b0381949294116102b25761012e90610ba081610b9b8454611cd6565b611f90565b83601f8211600114610c485781908596610bd094959692610c3d5750508160011b916000199060031b1c19161790565b90555b6084600435013561012f5560a460043501358015158091036102c6576101309060ff80198354169116179055610c065780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b013590503880610a49565b828552601f19821695600080516020612c3583398151915291865b888110610c9f57508360019596979810610c85575b505050811b019055610bd3565b0135600019600384901b60f8161c19169055388080610c78565b90926020600181928686013581550194019101610c63565b9050830151386101fb565b61012d8452600080516020612c7583398151915290845b601f1984168110610d30575082600080516020612c558339815191529492600192610b6195601f19811610610d17575b5050811b0161012d556104cc565b84015160001960f88460031b161c191690553880610d09565b90916020600181928588015181550193019101610cd9565b015190503880610a49565b606683527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e9435490601f198316845b818110610dbc57509583600195969710610da3575b505050811b01606655610abb565b015160001960f88460031b161c19169055388080610d95565b9192602060018192868b015181550194019201610d80565b610e1d90606684527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e94354601f840160051c81019160208510610e23575b601f0160051c0190611f79565b38610a86565b9091508190610e10565b634e487b7160e01b82526041600452602482fd5b606583527f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c790835b601f1984168110610eae575060019394959683601f19811610610e95575b505050811b01606555610a62565b015160001960f88460031b161c19169055388080610e87565b9091602060018192858b015181550193019101610e69565b610f0e90606584527f8ff97419363ffd7000167f130ef7168fbea05faf9251824ca5043f113cc6a7c7601f840160051c81019160208510610e2357601f0160051c0190611f79565b38610a2b565b61ffff191661010117825538610995565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561097c5750600160ff84161461097c565b50600160ff841610610975565b5080fd5b50346102ca57806003193601126102ca5760405190808260665491610fcd83611cd6565b9283835260209460019186600182169182600014611057575050600114610ffd575b505061042992500383611d41565b90859250606682527f46501879b8ca8525e8c2fd519e2fbfcfa2ebea26501294aa02cbfcfb12e943545b85831061103f57505061042993508201013880610fef565b80548389018501528794508693909201918101611027565b925093505061042994915060ff191682840152151560051b8201013880610fef565b50346102ca57806003193601126102ca5760fb546040516001600160a01b039091168152602090f35b50346102ca5760403660031901126102ca576110bc611c43565b9060249182356110cb81612066565b6001600160a01b03928316908316811490816113ca575b5015611360576110f181612066565b80831690816112c1575050609954818452609a602052806040852055600160401b8110156112ad578161076682600161112d9401609955611f2c565b609954600019948582019391841161129b57828552602093609a8552611157604087205491611f2c565b90549060031b1c61116b8161076684611f2c565b8652609a855260408620558285528460408120556099549081156112895750858392869787930161119b81611f2c565b8482549160031b1b191690556099556111b384612066565b908484526069875260408420916001600160601b0360a01b928381541690551691828452606887526040842090815401905583835260678652604083209081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a460c9825261122b6040842054611cd6565b611233575050f35b825260c9815260408220906112488254611cd6565b908161125357505050f35b8390601f8311600114611267575050505580f35b838252812092909161128490601f0160051c840160018501611f79565b555580f35b634e487b7160e01b8652603160045285fd5b634e487b7160e01b8552601160045284fd5b5050634e487b7160e01b8252506041600452fd5b6112ca90612089565b60001981019190821161134d57828552602090609882526040862054838103611311575b50838652856040812055855260978152604085209185525282604081205561112d565b818752609783526040872084885283526040872054828852609784526040882082895284528060408920558752609883526040872055386112ee565b634e487b7160e01b855260116004528585fd5b60405162461bcd60e51b8152602060048201526038818601527f5b5147444b2d3031363030315d2d4275726e206e6f7420617070726f7665642060448201527f627920746865206f776e6572206f6620746865204e46542e00000000000000006064820152608490fd5b338114915081156113dd575b50386110e2565b905033836113ea84611e8c565b16149081156113fb575b50386113d6565b90508352606a6020526040832033845260205260ff604084205416386113f4565b50346102ca57806003193601126102ca57611435612359565b60fb80546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102ca5760203660031901126102ca57602061149d611498611c43565b612089565b604051908152f35b50346102ca57806003193601126102ca5761043d6104cc611d62565b50346102ca5760203660031901126102ca5760206114e0600435612066565b6040516001600160a01b039091168152f35b50346102ca5760209060206003193601126102ca576001600160401b036004358181116102c657611527903690600401611c74565b9091611531612359565b81116102b25761012e9161154982610b9b8554611cd6565b8394601f831160011461157f57508394829161157a949592610c3d5750508160011b916000199060031b1c19161790565b905580f35b601f19831695600080516020612c35833981519152929186905b8882106115d3575050836001959697106115b9575b505050811b01905580f35b0135600019600384901b60f8161c191690553880806115ae565b80600184968294958701358155019501920190611599565b50346102ca5760203660031901126102ca5760043560995481101561162357611615602091611f2c565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608490fd5b50346102ca5761032b61168f36611ca1565b906040519261169d84611d10565b858452612132565b50346102ca5760403660031901126102ca576116bf611c43565b602435916116cc82612089565b8310156116f95760209260409260018060a01b031682526097845282822090825283522054604051908152f35b60405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608490fd5b50346102ca5761032b61176436611ca1565b9161177761177284336123b1565b611eca565b612479565b50346102ca5760203660031901126102ca57600435801515809103610fa5576117a3612359565b6101309060ff8019835416911617905580f35b50346102ca57806003193601126102ca57602060995460