UNPKG

@openzeppelin/contracts-upgradeable

Version:
550 lines (549 loc) 22.7 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ERC6909MetadataUpgradeable", "sourceName": "contracts/token/ERC6909/extensions/ERC6909MetadataUpgradeable.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": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint8", "name": "newDecimals", "type": "uint8" } ], "name": "ERC6909DecimalsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "newName", "type": "string" } ], "name": "ERC6909NameUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "newSymbol", "type": "string" } ], "name": "ERC6909SymbolUpdated", "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" }, { "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": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "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": "uint256", "name": "id", "type": "uint256" } ], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "symbol", "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": "0x6080604052348015600e575f5ffd5b50610b0b8061001c5f395ff3fe608060405234801561000f575f5ffd5b50600436106100a4575f3560e01c8063426a84931161006e578063426a84931461017e5780634e41a1fb14610191578063558a7297146101a4578063598af9e7146101b7578063b6363cf2146101ca578063fe99049a146101dd575f5ffd5b8062ad800c146100a8578062fdd58e146100d157806301ffc9a7146100f2578063095bcdb6146101155780633f47e66214610128575b5f5ffd5b6100bb6100b636600461088e565b6101f0565b6040516100c891906108a5565b60405180910390f35b6100e46100df3660046108f5565b6102b3565b6040519081526020016100c8565b61010561010036600461091d565b6102e9565b60405190151581526020016100c8565b61010561012336600461094b565b61030d565b61016c61013636600461088e565b5f9081527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602052604090206002015460ff1690565b60405160ff90911681526020016100c8565b61010561018c36600461094b565b610324565b6100bb61019f36600461088e565b610331565b6101056101b236600461097b565b610373565b6100e46101c53660046109b4565b610388565b6101056101d83660046109ee565b6103d8565b6101056101eb366004610a1f565b610424565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091208054606092919061022f90610a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a5e565b80156102a65780601f1061027d576101008083540402835291602001916102a6565b820191905f5260205f20905b81548152906001019060200180831161028957829003601f168201915b5050505050915050919050565b6001600160a01b0382165f9081525f516020610ab65f395f51905f52602090815260408083208484529091529020545b92915050565b5f6001600160e01b031982166371abc79560e01b14806102e357506102e38261046f565b5f61031a338585856104a3565b5060019392505050565b5f61031a3385858561050c565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091206001018054606092919061022f90610a5e565b5f61037f3384846105dc565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f336001600160a01b0386168114801590610446575061044486826103d8565b155b1561045757610457868286866106ab565b610463868686866104a3565b50600195945050505050565b5f6001600160e01b03198216630f632fb360e01b14806102e357506301ffc9a760e01b6001600160e01b03198316146102e3565b6001600160a01b0384166104d1576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b0383166104fa57604051630b8bbd6160e41b81525f60048201526024016104c8565b6105068484848461074d565b50505050565b5f516020610ab65f395f51905f526001600160a01b0385166105435760405163198ecd5360e31b81525f60048201526024016104c8565b6001600160a01b03841661056c57604051636f65f46560e01b81525f60048201526024016104c8565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f516020610ab65f395f51905f526001600160a01b0384166106135760405163198ecd5360e31b81525f60048201526024016104c8565b6001600160a01b03831661063c57604051636f65f46560e01b81525f60048201526024016104c8565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f516020610ab65f395f51905f525f6106c5868686610388565b90505f19811015610745578281101561071157604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104c8565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f516020610ab65f395f51905f52336001600160a01b038616156107f4576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107cd576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104c8565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610839576001600160a01b0385165f9081526020838152604080832087845290915281208054859290610833908490610a96565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b5f6020828403121561089e575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146108f0575f5ffd5b919050565b5f5f60408385031215610906575f5ffd5b61090f836108da565b946020939093013593505050565b5f6020828403121561092d575f5ffd5b81356001600160e01b031981168114610944575f5ffd5b9392505050565b5f5f5f6060848603121561095d575f5ffd5b610966846108da565b95602085013595506040909401359392505050565b5f5f6040838503121561098c575f5ffd5b610995836108da565b9150602083013580151581146109a9575f5ffd5b809150509250929050565b5f5f5f606084860312156109c6575f5ffd5b6109cf846108da565b92506109dd602085016108da565b929592945050506040919091013590565b5f5f604083850312156109ff575f5ffd5b610a08836108da565b9150610a16602084016108da565b90509250929050565b5f5f5f5f60808587031215610a32575f5ffd5b610a3b856108da565b9350610a49602086016108da565b93969395505050506040820135916060013590565b600181811c90821680610a7257607f821691505b602082108103610a9057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a26469706673582212200607f8db706b390a57c53d0e83253d3fae59645d89702ddcceeaec5c8059481364736f6c634300081f0033", "deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106100a4575f3560e01c8063426a84931161006e578063426a84931461017e5780634e41a1fb14610191578063558a7297146101a4578063598af9e7146101b7578063b6363cf2146101ca578063fe99049a146101dd575f5ffd5b8062ad800c146100a8578062fdd58e146100d157806301ffc9a7146100f2578063095bcdb6146101155780633f47e66214610128575b5f5ffd5b6100bb6100b636600461088e565b6101f0565b6040516100c891906108a5565b60405180910390f35b6100e46100df3660046108f5565b6102b3565b6040519081526020016100c8565b61010561010036600461091d565b6102e9565b60405190151581526020016100c8565b61010561012336600461094b565b61030d565b61016c61013636600461088e565b5f9081527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602052604090206002015460ff1690565b60405160ff90911681526020016100c8565b61010561018c36600461094b565b610324565b6100bb61019f36600461088e565b610331565b6101056101b236600461097b565b610373565b6100e46101c53660046109b4565b610388565b6101056101d83660046109ee565b6103d8565b6101056101eb366004610a1f565b610424565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091208054606092919061022f90610a5e565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a5e565b80156102a65780601f1061027d576101008083540402835291602001916102a6565b820191905f5260205f20905b81548152906001019060200180831161028957829003601f168201915b5050505050915050919050565b6001600160a01b0382165f9081525f516020610ab65f395f51905f52602090815260408083208484529091529020545b92915050565b5f6001600160e01b031982166371abc79560e01b14806102e357506102e38261046f565b5f61031a338585856104a3565b5060019392505050565b5f61031a3385858561050c565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091206001018054606092919061022f90610a5e565b5f61037f3384846105dc565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f336001600160a01b0386168114801590610446575061044486826103d8565b155b1561045757610457868286866106ab565b610463868686866104a3565b50600195945050505050565b5f6001600160e01b03198216630f632fb360e01b14806102e357506301ffc9a760e01b6001600160e01b03198316146102e3565b6001600160a01b0384166104d1576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b0383166104fa57604051630b8bbd6160e41b81525f60048201526024016104c8565b6105068484848461074d565b50505050565b5f516020610ab65f395f51905f526001600160a01b0385166105435760405163198ecd5360e31b81525f60048201526024016104c8565b6001600160a01b03841661056c57604051636f65f46560e01b81525f60048201526024016104c8565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f516020610ab65f395f51905f526001600160a01b0384166106135760405163198ecd5360e31b81525f60048201526024016104c8565b6001600160a01b03831661063c57604051636f65f46560e01b81525f60048201526024016104c8565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f516020610ab65f395f51905f525f6106c5868686610388565b90505f19811015610745578281101561071157604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104c8565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f516020610ab65f395f51905f52336001600160a01b038616156107f4576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107cd576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104c8565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610839576001600160a01b0385165f9081526020838152604080832087845290915281208054859290610833908490610a96565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b5f6020828403121561089e575f5ffd5b5035919050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146108f0575f5ffd5b919050565b5f5f60408385031215610906575f5ffd5b61090f836108da565b946020939093013593505050565b5f6020828403121561092d575f5ffd5b81356001600160e01b031981168114610944575f5ffd5b9392505050565b5f5f5f6060848603121561095d575f5ffd5b610966846108da565b95602085013595506040909401359392505050565b5f5f6040838503121561098c575f5ffd5b610995836108da565b9150602083013580151581146109a9575f5ffd5b809150509250929050565b5f5f5f606084860312156109c6575f5ffd5b6109cf846108da565b92506109dd602085016108da565b929592945050506040919091013590565b5f5f604083850312156109ff575f5ffd5b610a08836108da565b9150610a16602084016108da565b90509250929050565b5f5f5f5f60808587031215610a32575f5ffd5b610a3b856108da565b9350610a49602086016108da565b93969395505050506040820135916060013590565b600181811c90821680610a7257607f821691505b602082108103610a9057634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a26469706673582212200607f8db706b390a57c53d0e83253d3fae59645d89702ddcceeaec5c8059481364736f6c634300081f0033", "linkReferences": {}, "deployedLinkReferences": {} }