@openzeppelin/contracts-upgradeable
Version:
Secure Smart Contract library for Solidity
493 lines (492 loc) • 21.6 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ERC6909ContentURIUpgradeable",
"sourceName": "contracts/token/ERC6909/extensions/draft-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": "0x608060405234801561000f575f80fd5b50610b1d8061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061009a575f3560e01c8063598af9e711610063578063598af9e714610120578063b6363cf214610133578063c87b56dd14610146578063e8a3d48514610166578063fe99049a1461016e575f80fd5b8062fdd58e1461009e57806301ffc9a7146100c4578063095bcdb6146100e7578063426a8493146100fa578063558a72971461010d575b5f80fd5b6100b16100ac3660046108a5565b610181565b6040519081526020015b60405180910390f35b6100d76100d23660046108cd565b6101b7565b60405190151581526020016100bb565b6100d76100f53660046108fb565b6101eb565b6100d76101083660046108fb565b610202565b6100d761011b36600461092b565b61020f565b6100b161012e366004610964565b610224565b6100d761014136600461099d565b610274565b6101596101543660046109ce565b6102c0565b6040516100bb91906109e5565b6101596103a0565b6100d761017c366004610a31565b610454565b6001600160a01b0382165f9081525f80516020610ac8833981519152602090815260408083208484529091529020545b92915050565b5f6001600160e01b03198216630f632fb360e01b14806101b157506301ffc9a760e01b6001600160e01b03198316146101b1565b5f6101f83385858561049f565b5060019392505050565b5f6101f833858585610508565b5f61021b3384846105d8565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f8181527f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5016020526040902080546060917f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5009161031c90610a70565b80601f016020809104026020016040519081016040528092919081815260200182805461034890610a70565b80156103935780601f1061036a57610100808354040283529160200191610393565b820191905f5260205f20905b81548152906001019060200180831161037657829003601f168201915b5050505050915050919050565b7f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e50080546060919081906103d290610a70565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90610a70565b80156104495780601f1061042057610100808354040283529160200191610449565b820191905f5260205f20905b81548152906001019060200180831161042c57829003601f168201915b505050505091505090565b5f336001600160a01b038616811480159061047657506104748682610274565b155b1561048757610487868286866106a7565b6104938686868661049f565b50600195945050505050565b6001600160a01b0384166104cd576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b0383166104f657604051630b8bbd6160e41b81525f60048201526024016104c4565b61050284848484610749565b50505050565b5f80516020610ac88339815191526001600160a01b03851661053f5760405163198ecd5360e31b81525f60048201526024016104c4565b6001600160a01b03841661056857604051636f65f46560e01b81525f60048201526024016104c4565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f80516020610ac88339815191526001600160a01b03841661060f5760405163198ecd5360e31b81525f60048201526024016104c4565b6001600160a01b03831661063857604051636f65f46560e01b81525f60048201526024016104c4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f80516020610ac88339815191525f6106c1868686610224565b90505f19811015610741578281101561070d57604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104c4565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f80516020610ac8833981519152336001600160a01b038616156107f0576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107c9576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104c4565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610835576001600160a01b0385165f908152602083815260408083208784529091528120805485929061082f908490610aa8565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b80356001600160a01b03811681146108a0575f80fd5b919050565b5f80604083850312156108b6575f80fd5b6108bf8361088a565b946020939093013593505050565b5f602082840312156108dd575f80fd5b81356001600160e01b0319811681146108f4575f80fd5b9392505050565b5f805f6060848603121561090d575f80fd5b6109168461088a565b95602085013595506040909401359392505050565b5f806040838503121561093c575f80fd5b6109458361088a565b915060208301358015158114610959575f80fd5b809150509250929050565b5f805f60608486031215610976575f80fd5b61097f8461088a565b925061098d6020850161088a565b9150604084013590509250925092565b5f80604083850312156109ae575f80fd5b6109b78361088a565b91506109c56020840161088a565b90509250929050565b5f602082840312156109de575f80fd5b5035919050565b5f602080835283518060208501525f5b81811015610a11578581018301518582016040015282016109f5565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f8060808587031215610a44575f80fd5b610a4d8561088a565b9350610a5b6020860161088a565b93969395505050506040820135916060013590565b600181811c90821680610a8457607f821691505b602082108103610aa257634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156101b157634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a26469706673582212201fa6665e0bef6a329b53a00ac2521cc0b32cb8817ec181b480e97270298c38fc64736f6c63430008180033",
"deployedBytecode": "0x608060405234801561000f575f80fd5b506004361061009a575f3560e01c8063598af9e711610063578063598af9e714610120578063b6363cf214610133578063c87b56dd14610146578063e8a3d48514610166578063fe99049a1461016e575f80fd5b8062fdd58e1461009e57806301ffc9a7146100c4578063095bcdb6146100e7578063426a8493146100fa578063558a72971461010d575b5f80fd5b6100b16100ac3660046108a5565b610181565b6040519081526020015b60405180910390f35b6100d76100d23660046108cd565b6101b7565b60405190151581526020016100bb565b6100d76100f53660046108fb565b6101eb565b6100d76101083660046108fb565b610202565b6100d761011b36600461092b565b61020f565b6100b161012e366004610964565b610224565b6100d761014136600461099d565b610274565b6101596101543660046109ce565b6102c0565b6040516100bb91906109e5565b6101596103a0565b6100d761017c366004610a31565b610454565b6001600160a01b0382165f9081525f80516020610ac8833981519152602090815260408083208484529091529020545b92915050565b5f6001600160e01b03198216630f632fb360e01b14806101b157506301ffc9a760e01b6001600160e01b03198316146101b1565b5f6101f83385858561049f565b5060019392505050565b5f6101f833858585610508565b5f61021b3384846105d8565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f8181527f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5016020526040902080546060917f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e5009161031c90610a70565b80601f016020809104026020016040519081016040528092919081815260200182805461034890610a70565b80156103935780601f1061036a57610100808354040283529160200191610393565b820191905f5260205f20905b81548152906001019060200180831161037657829003601f168201915b5050505050915050919050565b7f2ada2772a8c4d40c4be8741992e423a9f97d5f4ef76852e5c17a40aa7fb9e50080546060919081906103d290610a70565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90610a70565b80156104495780601f1061042057610100808354040283529160200191610449565b820191905f5260205f20905b81548152906001019060200180831161042c57829003601f168201915b505050505091505090565b5f336001600160a01b038616811480159061047657506104748682610274565b155b1561048757610487868286866106a7565b6104938686868661049f565b50600195945050505050565b6001600160a01b0384166104cd576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b0383166104f657604051630b8bbd6160e41b81525f60048201526024016104c4565b61050284848484610749565b50505050565b5f80516020610ac88339815191526001600160a01b03851661053f5760405163198ecd5360e31b81525f60048201526024016104c4565b6001600160a01b03841661056857604051636f65f46560e01b81525f60048201526024016104c4565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f80516020610ac88339815191526001600160a01b03841661060f5760405163198ecd5360e31b81525f60048201526024016104c4565b6001600160a01b03831661063857604051636f65f46560e01b81525f60048201526024016104c4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f80516020610ac88339815191525f6106c1868686610224565b90505f19811015610741578281101561070d57604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104c4565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f80516020610ac8833981519152336001600160a01b038616156107f0576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107c9576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104c4565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610835576001600160a01b0385165f908152602083815260408083208784529091528120805485929061082f908490610aa8565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b80356001600160a01b03811681146108a0575f80fd5b919050565b5f80604083850312156108b6575f80fd5b6108bf8361088a565b946020939093013593505050565b5f602082840312156108dd575f80fd5b81356001600160e01b0319811681146108f4575f80fd5b9392505050565b5f805f6060848603121561090d575f80fd5b6109168461088a565b95602085013595506040909401359392505050565b5f806040838503121561093c575f80fd5b6109458361088a565b915060208301358015158114610959575f80fd5b809150509250929050565b5f805f60608486031215610976575f80fd5b61097f8461088a565b925061098d6020850161088a565b9150604084013590509250925092565b5f80604083850312156109ae575f80fd5b6109b78361088a565b91506109c56020840161088a565b90509250929050565b5f602082840312156109de575f80fd5b5035919050565b5f602080835283518060208501525f5b81811015610a11578581018301518582016040015282016109f5565b505f604082860101526040601f19601f8301168501019250505092915050565b5f805f8060808587031215610a44575f80fd5b610a4d8561088a565b9350610a5b6020860161088a565b93969395505050506040820135916060013590565b600181811c90821680610a8457607f821691505b602082108103610aa257634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156101b157634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a26469706673582212201fa6665e0bef6a329b53a00ac2521cc0b32cb8817ec181b480e97270298c38fc64736f6c63430008180033",
"linkReferences": {},
"deployedLinkReferences": {}
}