[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "uri", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Attest", "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": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Revoke", "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": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "attest", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "address[]", "name": "addrs", "type": "address[]" } ], "name": "batchAttest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addrs", "type": "address[]" } ], "name": "batchRevoke", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "currentOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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" } ], "name": "revoke", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" } ], "name": "setBaseTokenURI", "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": "address", "name": "from", "type": "address" } ], "name": "tokenIdOf", "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": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405260006007553480156200001657600080fd5b506040516200194e3803806200194e83398101604081905262000039916200018f565b62000044336200007a565b6008620000528482620002af565b506009620000618382620002af565b50600a620000708282620002af565b505050506200037b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620000f257600080fd5b81516001600160401b03808211156200010f576200010f620000ca565b604051601f8301601f19908116603f011681019082821181831017156200013a576200013a620000ca565b816040528381526020925086838588010111156200015757600080fd5b600091505b838210156200017b57858201830151818301840152908201906200015c565b600093810190920192909252949350505050565b600080600060608486031215620001a557600080fd5b83516001600160401b0380821115620001bd57600080fd5b620001cb87838801620000e0565b94506020860151915080821115620001e257600080fd5b620001f087838801620000e0565b935060408601519150808211156200020757600080fd5b506200021686828701620000e0565b9150509250925092565b600181811c908216806200023557607f821691505b6020821081036200025657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002aa57600081815260208120601f850160051c81016020861015620002855750805b601f850160051c820191505b81811015620002a65782815560010162000291565b5050505b505050565b81516001600160401b03811115620002cb57620002cb620000ca565b620002e381620002dc845462000220565b846200025c565b602080601f8311600181146200031b5760008415620003025750858301515b600019600386901b1c1916600185901b178555620002a6565b600085815260208120601f198616915b828110156200034c578886015182559484019460019091019084016200032b565b50858210156200036b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6115c3806200038b6000396000f3fe608060405234801561001057600080fd5b506004361061011b5760003560e01c8063715018a6116100b257806395d89b4111610081578063c87b56dd11610066578063c87b56dd14610233578063eb31403f14610246578063f2fde38b1461025957600080fd5b806395d89b411461022b578063b387ef921461021a57600080fd5b8063715018a6146101ec57806374a8f103146101f4578063773c02d4146102075780638da5cb5b1461021a57600080fd5b806330176e13116100ee57806330176e13146101885780636352211e1461019b5780636c60144a146101c657806370a08231146101d957600080fd5b8063011002df1461012057806301ffc9a71461013557806306fdde031461015d57806318160ddd14610172575b600080fd5b61013361012e366004611137565b61026c565b005b6101486101433660046111ac565b61046c565b60405190151581526020015b60405180910390f35b6101656104be565b60405161015491906111fa565b61017a61054c565b604051908152602001610154565b61013361019636600461122d565b61055d565b6101ae6101a936600461128d565b610577565b6040516001600160a01b039091168152602001610154565b6101336101d4366004611137565b6105c4565b61017a6101e73660046112a6565b6107be565b6101336107e8565b6101336102023660046112a6565b6107fc565b61017a6102153660046112a6565b610947565b6000546001600160a01b03166101ae565b61016561096f565b61016561024136600461128d565b61097c565b61017a6102543660046112a6565b6109da565b6101336102673660046112a6565b610b2e565b610274610bbe565b8060648111156102d65760405162461bcd60e51b815260206004820152602260248201527f546865206d6178206c656e677468206f66206164647265737365732069732031604482015261030360f41b60648201526084015b60405180910390fd5b60005b818160ff16101561046657600084848360ff168181106102fb576102fb6112cf565b905060200201602081019061031091906112a6565b90506001600160a01b03811661035b5760405162461bcd60e51b815260206004820152601060248201526f4164647265737320697320656d70747960801b60448201526064016102cd565b610366600482610c18565b6103bc5760405162461bcd60e51b815260206004820152602160248201527f546865206163636f756e7420646f6573206e6f74206861766520616e792053426044820152601560fa1b60648201526084016102cd565b60006103c9600483610c34565b90506103d6600483610c49565b506103e2600182610c5e565b5060405181906001600160a01b038416907fec9ab91322523c899ede7830ec9bfc992b5981cdcc27b91162fb23de5791117b90600090a360405181906000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050808061045e906112fb565b9150506102d9565b50505050565b60006001600160e01b031982166380ac58cd60e01b148061049d57506001600160e01b03198216635b5e139f60e01b145b806104b857506301ffc9a760e01b6001600160e01b03198316145b92915050565b600880546104cb9061131a565b80601f01602080910402602001604051908101604052809291908181526020018280546104f79061131a565b80156105445780601f1061051957610100808354040283529160200191610544565b820191906000526020600020905b81548152906001019060200180831161052757829003601f168201915b505050505081565b60006105586004610c6a565b905090565b610565610bbe565b600a6105728284836113b8565b505050565b60006104b8826040518060400160405280600f81526020017f496e76616c696420746f6b656e496400000000000000000000000000000000008152506001610c759092919063ffffffff16565b6105cc610bbe565b8060648111156106295760405162461bcd60e51b815260206004820152602260248201527f546865206d6178206c656e677468206f66206164647265737365732069732031604482015261030360f41b60648201526084016102cd565b60005b818160ff16101561046657600084848360ff1681811061064e5761064e6112cf565b905060200201602081019061066391906112a6565b90506001600160a01b0381166106ae5760405162461bcd60e51b815260206004820152601060248201526f4164647265737320697320656d70747960801b60448201526064016102cd565b6106b9600482610c18565b156107065760405162461bcd60e51b815260206004820152601260248201527f53425420616c726561647920657869737473000000000000000000000000000060448201526064016102cd565b6001600760008282546107199190611479565b909155505060075461072d60048383610c8a565b5061073a60018284610ca0565b5060405181906001600160a01b038416907fe9274a84b19e9428826de6bae8c48329354f8f0e73f771b97cae2d9dccd45a2790600090a360405181906001600160a01b038416906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505080806107b6906112fb565b91505061062c565b6000806107cc600484610cb6565b509050806107db5760006107de565b60015b60ff169392505050565b6107f0610bbe565b6107fa6000610cdd565b565b610804610bbe565b6001600160a01b03811661084d5760405162461bcd60e51b815260206004820152601060248201526f4164647265737320697320656d70747960801b60448201526064016102cd565b610858600482610c18565b6108ae5760405162461bcd60e51b815260206004820152602160248201527f546865206163636f756e7420646f6573206e6f74206861766520616e792053426044820152601560fa1b60648201526084016102cd565b60006108bb600483610c34565b90506108c8600483610c49565b506108d4600182610c5e565b5060405181906001600160a01b038416907fec9ab91322523c899ede7830ec9bfc992b5981cdcc27b91162fb23de5791117b90600090a360405181906000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60006104b8826040518060600160405280602381526020016115946023913960049190610d45565b600980546104cb9061131a565b60606000600a805461098d9061131a565b9050116109a957604051806020016040528060008152506104b8565b600a6109b483610d5b565b6040516020016109c592919061148c565b60405160208183030381529060405292915050565b60006109e4610bbe565b6001600160a01b038216610a2d5760405162461bcd60e51b815260206004820152601060248201526f4164647265737320697320656d70747960801b60448201526064016102cd565b610a38600483610c18565b15610a855760405162461bcd60e51b815260206004820152601260248201527f53425420616c726561647920657869737473000000000000000000000000000060448201526064016102cd565b600160076000828254610a989190611479565b9091555050600754610aac60048483610c8a565b50610ab960018285610ca0565b5060405181906001600160a01b038516907fe9274a84b19e9428826de6bae8c48329354f8f0e73f771b97cae2d9dccd45a2790600090a360405181906001600160a01b038516906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a492915050565b610b36610bbe565b6001600160a01b038116610bb25760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016102cd565b610bbb81610cdd565b50565b6000546001600160a01b031633146107fa5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102cd565b6000610c2d836001600160a01b038416610e74565b9392505050565b6000610c2d836001600160a01b038416610e80565b6000610c2d836001600160a01b038416610ef0565b6000610c2d8383610ef0565b60006104b882610f0d565b6000610c82848484610f18565b949350505050565b6000610c82846001600160a01b03851684610f64565b6000610c8284846001600160a01b038516610f64565b6000808080610cce866001600160a01b038716610f81565b909450925050505b9250929050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000610c82846001600160a01b03851684610f18565b606081600003610d825750506040805180820190915260018152600360fc1b602082015290565b8160005b8115610dac5780610d9681611513565b9150610da59050600a83611542565b9150610d86565b60008167ffffffffffffffff811115610dc757610dc7611354565b6040519080825280601f01601f191660200182016040528015610df1576020820181803683370190505b5090505b8415610c8257610e06600183611556565b9150610e13600a86611569565b610e1e906030611479565b60f81b818381518110610e3357610e336112cf565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350610e6d600a86611542565b9450610df5565b6000610c2d8383610fbb565b600081815260028301602052604081205480151580610ea45750610ea48484610e74565b610c2d5760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016102cd565b60008181526002830160205260408120819055610c2d8383610fd3565b60006104b882610fdf565b600082815260028401602052604081205480151580610f3c5750610f3c8585610e74565b8390610f5b5760405162461bcd60e51b81526004016102cd91906111fa565b50949350505050565b60008281526002840160205260408120829055610c828484610fe9565b6000818152600283016020526040812054819080610fb057610fa38585610e74565b925060009150610cd69050565b600192509050610cd6565b60008181526001830160205260408120541515610c2d565b6000610c2d8383610ff5565b60006104b8825490565b6000610c2d83836110e8565b600081815260018301602052604081205480156110de576000611019600183611556565b855490915060009061102d90600190611556565b905081811461109257600086600001828154811061104d5761104d6112cf565b9060005260206000200154905080876000018481548110611070576110706112cf565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806110a3576110a361157d565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506104b8565b60009150506104b8565b600081815260018301602052604081205461112f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556104b8565b5060006104b8565b6000806020838503121561114a57600080fd5b823567ffffffffffffffff8082111561116257600080fd5b818501915085601f83011261117657600080fd5b81358181111561118557600080fd5b8660208260051b850101111561119a57600080fd5b60209290920196919550909350505050565b6000602082840312156111be57600080fd5b81356001600160e01b031981168114610c2d57600080fd5b60005b838110156111f15781810151838201526020016111d9565b50506000910152565b60208152600082518060208401526112198160408501602087016111d6565b601f01601f19169190910160400192915050565b6000806020838503121561124057600080fd5b823567ffffffffffffffff8082111561125857600080fd5b818501915085601f83011261126c57600080fd5b81358181111561127b57600080fd5b86602082850101111561119a57600080fd5b60006020828403121561129f57600080fd5b5035919050565b6000602082840312156112b857600080fd5b81356001600160a01b0381168114610c2d57600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060ff821660ff8103611311576113116112e5565b60010192915050565b600181811c9082168061132e57607f821691505b60208210810361134e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561057257600081815260208120601f850160051c810160208610156113915750805b601f850160051c820191505b818110156113b05782815560010161139d565b505050505050565b67ffffffffffffffff8311156113d0576113d0611354565b6113e4836113de835461131a565b8361136a565b6000601f84116001811461141857600085156114005750838201355b600019600387901b1c1916600186901b178355611472565b600083815260209020601f19861690835b828110156114495786850135825560209485019460019092019101611429565b50868210156114665760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b808201808211156104b8576104b86112e5565b600080845461149a8161131a565b600182811680156114b257600181146114c7576114f6565b60ff19841687528215158302870194506114f6565b8860005260208060002060005b858110156114ed5781548a8201529084019082016114d4565b50505082870194505b50505050835161150a8183602088016111d6565b01949350505050565b600060018201611525576115256112e5565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826115515761155161152c565b500490565b818103818111156104b8576104b86112e5565b6000826115785761157861152c565b500690565b634e487b7160e01b600052603160045260246000fdfe5468652077616c6c657420686173206e6f7420617474657374656420616e7920534254a164736f6c6343000814000a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000003313131000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000033232320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001868747470733a2f2f676f6f676c652e636f6d2f317132772f0000000000000000