UNPKG

@openzeppelin/contracts-upgradeable

Version:
493 lines (492 loc) 21.7 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ERC6909ContentURIUpgradeable", "sourceName": "contracts/token/ERC6909/extensions/ERC6909ContentURIUpgradeable.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ERC6909InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ERC6909InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC6909InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC6909InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC6909InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC6909InvalidSpender", "type": "error" }, { "inputs": [], "name": "InvalidInitialization", "type": "error" }, { "inputs": [], "name": "NotInitializing", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [], "name": "ContractURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint64", "name": "version", "type": "uint64" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "OperatorSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "isOperator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setOperator", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": "0x6080604052348015600e575f5ffd5b50610b2b8061001c5f395ff3fe608060405234801561000f575f5ffd5b506004361061009a575f3560e01c8063598af9e711610063578063598af9e714610120578063b6363cf214610133578063c87b56dd14610146578063e8a3d48514610166578063fe99049a1461016e575f5ffd5b8062fdd58e1461009e57806301ffc9a7146100c4578063095bcdb6146100e7578063426a8493146100fa578063558a72971461010d575b5f5ffd5b6100b16100ac3660046108c9565b610181565b6040519081526020015b60405180910390f35b6100d76100d23660046108f1565b6101b7565b60405190151581526020016100bb565b6100d76100f536600461091f565b6101db565b6100d761010836600461091f565b6101f2565b6100d761011b36600461094f565b6101ff565b6100b161012e366004610988565b610214565b6100d76101413660046109c2565b610264565b6101596101543660046109f3565b6102b0565b6040516100bb9190610a0a565b610159610390565b6100d761017c366004610a3f565b610444565b6001600160a01b0382165f9081525f516020610ad65f395f51905f52602090815260408083208484529091529020545b92915050565b5f6001600160e01b0319821663041b104b60e31b14806101b157506101b18261048f565b5f6101e8338585856104c3565b5060019392505050565b5f6101e83385858561052c565b5f61020b3384846105fc565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f8181527f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5016020526040902080546060917f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5009161030c90610a7e565b80601f016020809104026020016040519081016040528092919081815260200182805461033890610a7e565b80156103835780601f1061035a57610100808354040283529160200191610383565b820191905f5260205f20905b81548152906001019060200180831161036657829003601f168201915b5050505050915050919050565b7f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e50080546060919081906103c290610a7e565b80601f01602080910402602001604051908101604052809291908181526020018280546103ee90610a7e565b80156104395780601f1061041057610100808354040283529160200191610439565b820191905f5260205f20905b81548152906001019060200180831161041c57829003601f168201915b505050505091505090565b5f336001600160a01b038616811480159061046657506104648682610264565b155b1561047757610477868286866106cb565b610483868686866104c3565b50600195945050505050565b5f6001600160e01b03198216630f632fb360e01b14806101b157506301ffc9a760e01b6001600160e01b03198316146101b1565b6001600160a01b0384166104f1576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b03831661051a57604051630b8bbd6160e41b81525f60048201526024016104e8565b6105268484848461076d565b50505050565b5f516020610ad65f395f51905f526001600160a01b0385166105635760405163198ecd5360e31b81525f60048201526024016104e8565b6001600160a01b03841661058c57604051636f65f46560e01b81525f60048201526024016104e8565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f516020610ad65f395f51905f526001600160a01b0384166106335760405163198ecd5360e31b81525f60048201526024016104e8565b6001600160a01b03831661065c57604051636f65f46560e01b81525f60048201526024016104e8565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f516020610ad65f395f51905f525f6106e5868686610214565b90505f19811015610765578281101561073157604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104e8565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f516020610ad65f395f51905f52336001600160a01b03861615610814576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107ed576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104e8565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610859576001600160a01b0385165f9081526020838152604080832087845290915281208054859290610853908490610ab6565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b80356001600160a01b03811681146108c4575f5ffd5b919050565b5f5f604083850312156108da575f5ffd5b6108e3836108ae565b946020939093013593505050565b5f60208284031215610901575f5ffd5b81356001600160e01b031981168114610918575f5ffd5b9392505050565b5f5f5f60608486031215610931575f5ffd5b61093a846108ae565b95602085013595506040909401359392505050565b5f5f60408385031215610960575f5ffd5b610969836108ae565b91506020830135801515811461097d575f5ffd5b809150509250929050565b5f5f5f6060848603121561099a575f5ffd5b6109a3846108ae565b92506109b1602085016108ae565b929592945050506040919091013590565b5f5f604083850312156109d3575f5ffd5b6109dc836108ae565b91506109ea602084016108ae565b90509250929050565b5f60208284031215610a03575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60808587031215610a52575f5ffd5b610a5b856108ae565b9350610a69602086016108ae565b93969395505050506040820135916060013590565b600181811c90821680610a9257607f821691505b602082108103610ab057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156101b157634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a2646970667358221220e6fa60d0b74a65cdcdd030a7a455557074781207021925bf6c50a14a5f37efd764736f6c634300081f0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b506004361061009a575f3560e01c8063598af9e711610063578063598af9e714610120578063b6363cf214610133578063c87b56dd14610146578063e8a3d48514610166578063fe99049a1461016e575f5ffd5b8062fdd58e1461009e57806301ffc9a7146100c4578063095bcdb6146100e7578063426a8493146100fa578063558a72971461010d575b5f5ffd5b6100b16100ac3660046108c9565b610181565b6040519081526020015b60405180910390f35b6100d76100d23660046108f1565b6101b7565b60405190151581526020016100bb565b6100d76100f536600461091f565b6101db565b6100d761010836600461091f565b6101f2565b6100d761011b36600461094f565b6101ff565b6100b161012e366004610988565b610214565b6100d76101413660046109c2565b610264565b6101596101543660046109f3565b6102b0565b6040516100bb9190610a0a565b610159610390565b6100d761017c366004610a3f565b610444565b6001600160a01b0382165f9081525f516020610ad65f395f51905f52602090815260408083208484529091529020545b92915050565b5f6001600160e01b0319821663041b104b60e31b14806101b157506101b18261048f565b5f6101e8338585856104c3565b5060019392505050565b5f6101e83385858561052c565b5f61020b3384846105fc565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f8181527f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5016020526040902080546060917f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5009161030c90610a7e565b80601f016020809104026020016040519081016040528092919081815260200182805461033890610a7e565b80156103835780601f1061035a57610100808354040283529160200191610383565b820191905f5260205f20905b81548152906001019060200180831161036657829003601f168201915b5050505050915050919050565b7f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e50080546060919081906103c290610a7e565b80601f01602080910402602001604051908101604052809291908181526020018280546103ee90610a7e565b80156104395780601f1061041057610100808354040283529160200191610439565b820191905f5260205f20905b81548152906001019060200180831161041c57829003601f168201915b505050505091505090565b5f336001600160a01b038616811480159061046657506104648682610264565b155b1561047757610477868286866106cb565b610483868686866104c3565b50600195945050505050565b5f6001600160e01b03198216630f632fb360e01b14806101b157506301ffc9a760e01b6001600160e01b03198316146101b1565b6001600160a01b0384166104f1576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b03831661051a57604051630b8bbd6160e41b81525f60048201526024016104e8565b6105268484848461076d565b50505050565b5f516020610ad65f395f51905f526001600160a01b0385166105635760405163198ecd5360e31b81525f60048201526024016104e8565b6001600160a01b03841661058c57604051636f65f46560e01b81525f60048201526024016104e8565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f516020610ad65f395f51905f526001600160a01b0384166106335760405163198ecd5360e31b81525f60048201526024016104e8565b6001600160a01b03831661065c57604051636f65f46560e01b81525f60048201526024016104e8565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f516020610ad65f395f51905f525f6106e5868686610214565b90505f19811015610765578281101561073157604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104e8565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f516020610ad65f395f51905f52336001600160a01b03861615610814576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107ed576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104e8565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610859576001600160a01b0385165f9081526020838152604080832087845290915281208054859290610853908490610ab6565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b80356001600160a01b03811681146108c4575f5ffd5b919050565b5f5f604083850312156108da575f5ffd5b6108e3836108ae565b946020939093013593505050565b5f60208284031215610901575f5ffd5b81356001600160e01b031981168114610918575f5ffd5b9392505050565b5f5f5f60608486031215610931575f5ffd5b61093a846108ae565b95602085013595506040909401359392505050565b5f5f60408385031215610960575f5ffd5b610969836108ae565b91506020830135801515811461097d575f5ffd5b809150509250929050565b5f5f5f6060848603121561099a575f5ffd5b6109a3846108ae565b92506109b1602085016108ae565b929592945050506040919091013590565b5f5f604083850312156109d3575f5ffd5b6109dc836108ae565b91506109ea602084016108ae565b90509250929050565b5f60208284031215610a03575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f5f60808587031215610a52575f5ffd5b610a5b856108ae565b9350610a69602086016108ae565b93969395505050506040820135916060013590565b600181811c90821680610a9257607f821691505b602082108103610ab057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156101b157634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a2646970667358221220e6fa60d0b74a65cdcdd030a7a455557074781207021925bf6c50a14a5f37efd764736f6c634300081f0033", "linkReferences": {}, "deployedLinkReferences": {} }