[ { "inputs": [ { "internalType": "contract IKIPManagement", "name": "management", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AddressZero", "type": "error" }, { "inputs": [], "name": "AdminRequire", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "type": "error" }, { "inputs": [], "name": "MinterRequire", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "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": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "idType", "type": "uint256" } ], "name": "KIPIdentity", "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": "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": "KIPManagement", "outputs": [ { "internalType": "contract IKIPManagement", "name": "", "type": "address" } ], "stateMutability": "view", "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "idTypes", "outputs": [ { "internalType": "uint256", "name": "", "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": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "idType", "type": "uint256" }, { "internalType": "string", "name": "tokenURI", "type": "string" } ], "name": "issueId", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "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": "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": "address", "name": "management", "type": "address" } ], "name": "setManagement", "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": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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" } ]
60806040523480156200001157600080fd5b506040516200190a3803806200190a8339810160408190526200003491620000c8565b6040518060400160405280601281526020017125a4a81024b232b73a34b334b1b0ba34b7b760711b8152506040518060400160405280600681526020016512d2540b525160d21b81525081600090816200008f91906200019f565b5060016200009e82826200019f565b5050600780546001600160a01b0319166001600160a01b039390931692909217909155506200026b565b600060208284031215620000db57600080fd5b81516001600160a01b0381168114620000f357600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200012557607f821691505b6020821081036200014657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200019a57600081815260208120601f850160051c81016020861015620001755750805b601f850160051c820191505b81811015620001965782815560010162000181565b5050505b505050565b81516001600160401b03811115620001bb57620001bb620000fa565b620001d381620001cc845462000110565b846200014c565b602080601f8311600181146200020b5760008415620001f25750858301515b600019600386901b1c1916600185901b17855562000196565b600085815260208120601f198616915b828110156200023c578886015182559484019460019091019084016200021b565b50858210156200025b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61168f806200027b6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806370a08231116100a2578063a22cb46511610071578063a22cb46514610253578063b88d4fde14610266578063c87b56dd14610279578063d4a22bde1461028c578063e985e9c51461029f57600080fd5b806370a08231146101f75780637645dac41461021857806381ad1ef91461022b57806395d89b411461024b57600080fd5b8063162094c4116100e9578063162094c41461019857806323b872dd146101ab57806342842e0e146101be5780636352211e146101d157806363d694f0146101e457600080fd5b806301ffc9a71461011b57806306fdde0314610143578063081812fc14610158578063095ea7b314610183575b600080fd5b61012e6101293660046110ce565b6102b2565b60405190151581526020015b60405180910390f35b61014b6102dd565b60405161013a919061113b565b61016b61016636600461114e565b61036f565b6040516001600160a01b03909116815260200161013a565b610196610191366004611183565b610398565b005b6101966101a63660046111f6565b6103a7565b6101966101b9366004611242565b610422565b6101966101cc366004611242565b6104ac565b61016b6101df36600461114e565b6104cc565b6101966101f236600461127e565b6104d7565b61020a6102053660046112e6565b61062b565b60405190815260200161013a565b60075461016b906001600160a01b031681565b61020a61023936600461114e565b60086020526000908152604090205481565b61014b610673565b61019661026136600461130f565b610682565b61019661027436600461135c565b61068d565b61014b61028736600461114e565b6106a4565b61019661029a3660046112e6565b6107b5565b61012e6102ad366004611438565b61089d565b60006001600160e01b03198216632483248360e11b14806102d757506102d7826108cb565b92915050565b6060600080546102ec9061146b565b80601f01602080910402602001604051908101604052809291908181526020018280546103189061146b565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600061037a8261091b565b506000828152600460205260409020546001600160a01b03166102d7565b6103a3828233610954565b5050565b60006103b28461091b565b9050336001600160a01b038216146103dc576040516282b42960e81b815260040160405180910390fd5b61041c8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061096192505050565b50505050565b6001600160a01b03821661045157604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061045e8383336109b1565b9050836001600160a01b0316816001600160a01b03161461041c576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610448565b6104c78383836040518060200160405280600081525061068d565b505050565b60006102d78261091b565b6007546001600160a01b03166391d148547f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610554573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057891906114a5565b610595576040516324eded9d60e21b815260040160405180910390fd5b61059f8585610aaa565b6105df8483838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061096192505050565b6000848152600860205260408082208590555184916001600160a01b0388169187917fac9daa061d106df6965cd166550eb72aa55fbaa945660217b94eeed90afb80b491a45050505050565b60006001600160a01b038216610657576040516322718ad960e21b815260006004820152602401610448565b506001600160a01b031660009081526003602052604090205490565b6060600180546102ec9061146b565b6103a3338383610ac4565b610698848484610422565b61041c84848484610b63565b60606106af8261091b565b50600082815260066020526040812080546106c99061146b565b80601f01602080910402602001604051908101604052809291908181526020018280546106f59061146b565b80156107425780601f1061071757610100808354040283529160200191610742565b820191906000526020600020905b81548152906001019060200180831161072557829003601f168201915b50505050509050600061076060408051602081019091526000815290565b90508051600003610772575092915050565b8151156107a457808260405160200161078c9291906114c2565b60405160208183030381529060405292505050919050565b6107ad84610c8c565b949350505050565b6007546001600160a01b03166391d148546000336040516001600160e01b031960e085901b16815260048101929092526001600160a01b03166024820152604401602060405180830381865afa158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906114a5565b610854576040516306aeed9d60e31b815260040160405180910390fd5b6001600160a01b03811661087b57604051639fabe1c160e01b815260040160405180910390fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b60006001600160e01b031982166380ac58cd60e01b14806108fc57506001600160e01b03198216635b5e139f60e01b145b806102d757506301ffc9a760e01b6001600160e01b03198316146102d7565b6000818152600260205260408120546001600160a01b0316806102d757604051637e27328960e01b815260048101849052602401610448565b6104c78383836001610d01565b6000828152600660205260409020610979828261153f565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a15050565b6000828152600260205260408120546001600160a01b03908116908316156109de576109de818486610e07565b6001600160a01b03811615610a1c576109fb600085600080610d01565b6001600160a01b038116600090815260036020526040902080546000190190555b6001600160a01b03851615610a4b576001600160a01b0385166000908152600360205260409020805460010190555b60008481526002602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6103a3828260405180602001604052806000815250610e6b565b6001600160a01b038216610af657604051630b61174360e31b81526001600160a01b0383166004820152602401610448565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561041c57604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610ba59033908890879087906004016115ff565b6020604051808303816000875af1925050508015610be0575060408051601f3d908101601f19168201909252610bdd9181019061163c565b60015b610c49573d808015610c0e576040519150601f19603f3d011682016040523d82523d6000602084013e610c13565b606091505b508051600003610c4157604051633250574960e11b81526001600160a01b0385166004820152602401610448565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610c8557604051633250574960e11b81526001600160a01b0385166004820152602401610448565b5050505050565b6060610c978261091b565b506000610caf60408051602081019091526000815290565b90506000815111610ccf5760405180602001604052806000815250610cfa565b80610cd984610e82565b604051602001610cea9291906114c2565b6040516020818303038152906040525b9392505050565b8080610d1557506001600160a01b03821615155b15610dd7576000610d258461091b565b90506001600160a01b03831615801590610d515750826001600160a01b0316816001600160a01b031614155b8015610d645750610d62818461089d565b155b15610d8d5760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610448565b8115610dd55783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260046020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b610e12838383610f15565b6104c7576001600160a01b038316610e4057604051637e27328960e01b815260048101829052602401610448565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610448565b610e758383610f78565b6104c76000848484610b63565b60606000610e8f83610fdd565b600101905060008167ffffffffffffffff811115610eaf57610eaf611346565b6040519080825280601f01601f191660200182016040528015610ed9576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610ee357509392505050565b60006001600160a01b038316158015906107ad5750826001600160a01b0316846001600160a01b03161480610f4f5750610f4f848461089d565b806107ad5750506000908152600460205260409020546001600160a01b03908116911614919050565b6001600160a01b038216610fa257604051633250574960e11b815260006004820152602401610448565b6000610fb0838360006109b1565b90506001600160a01b038116156104c7576040516339e3563760e11b815260006004820152602401610448565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061101c5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611048576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061106657662386f26fc10000830492506010015b6305f5e100831061107e576305f5e100830492506008015b612710831061109257612710830492506004015b606483106110a4576064830492506002015b600a83106102d75760010192915050565b6001600160e01b0319811681146110cb57600080fd5b50565b6000602082840312156110e057600080fd5b8135610cfa816110b5565b60005b838110156111065781810151838201526020016110ee565b50506000910152565b600081518084526111278160208601602086016110eb565b601f01601f19169290920160200192915050565b602081526000610cfa602083018461110f565b60006020828403121561116057600080fd5b5035919050565b80356001600160a01b038116811461117e57600080fd5b919050565b6000806040838503121561119657600080fd5b61119f83611167565b946020939093013593505050565b60008083601f8401126111bf57600080fd5b50813567ffffffffffffffff8111156111d757600080fd5b6020830191508360208285010111156111ef57600080fd5b9250929050565b60008060006040848603121561120b57600080fd5b83359250602084013567ffffffffffffffff81111561122957600080fd5b611235868287016111ad565b9497909650939450505050565b60008060006060848603121561125757600080fd5b61126084611167565b925061126e60208501611167565b9150604084013590509250925092565b60008060008060006080868803121561129657600080fd5b61129f86611167565b94506020860135935060408601359250606086013567ffffffffffffffff8111156112c957600080fd5b6112d5888289016111ad565b969995985093965092949392505050565b6000602082840312156112f857600080fd5b610cfa82611167565b80151581146110cb57600080fd5b6000806040838503121561132257600080fd5b61132b83611167565b9150602083013561133b81611301565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b6000806000806080858703121561137257600080fd5b61137b85611167565b935061138960208601611167565b925060408501359150606085013567ffffffffffffffff808211156113ad57600080fd5b818701915087601f8301126113c157600080fd5b8135818111156113d3576113d3611346565b604051601f8201601f19908116603f011681019083821181831017156113fb576113fb611346565b816040528281528a602084870101111561141457600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561144b57600080fd5b61145483611167565b915061146260208401611167565b90509250929050565b600181811c9082168061147f57607f821691505b60208210810361149f57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156114b757600080fd5b8151610cfa81611301565b600083516114d48184602088016110eb565b8351908301906114e88183602088016110eb565b01949350505050565b601f8211156104c757600081815260208120601f850160051c810160208610156115185750805b601f850160051c820191505b8181101561153757828155600101611524565b505050505050565b815167ffffffffffffffff81111561155957611559611346565b61156d81611567845461146b565b846114f1565b602080601f8311600181146115a2576000841561158a5750858301515b600019600386901b1c1916600185901b178555611537565b600085815260208120601f198616915b828110156115d1578886015182559484019460019091019084016115b2565b50858210156115ef5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906116329083018461110f565b9695505050505050565b60006020828403121561164e57600080fd5b8151610cfa816110b556fea2646970667358221220474987b099c9428ebf8763576bdac825005e2af00efc99d31123e2d12157626264736f6c63430008140033000000000000000000000000f33d77334cfca9f417c70b049b7d85906e6230eb