UNPKG

@openzeppelin/contracts-upgradeable

Version:
550 lines (549 loc) 22.7 kB
{ "_format": "hh-sol-artifact-1", "contractName": "ERC6909MetadataUpgradeable", "sourceName": "contracts/token/ERC6909/extensions/draft-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": "0x608060405234801561000f575f80fd5b50610afd8061001d5f395ff3fe608060405234801561000f575f80fd5b50600436106100a4575f3560e01c8063426a84931161006e578063426a84931461017e5780634e41a1fb14610191578063558a7297146101a4578063598af9e7146101b7578063b6363cf2146101ca578063fe99049a146101dd575f80fd5b8062ad800c146100a8578062fdd58e146100d157806301ffc9a7146100f2578063095bcdb6146101155780633f47e66214610128575b5f80fd5b6100bb6100b636600461086a565b6101f0565b6040516100c89190610881565b60405180910390f35b6100e46100df3660046108e8565b6102b3565b6040519081526020016100c8565b610105610100366004610910565b6102e9565b60405190151581526020016100c8565b61010561012336600461093e565b61031d565b61016c61013636600461086a565b5f9081527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602052604090206002015460ff1690565b60405160ff90911681526020016100c8565b61010561018c36600461093e565b610334565b6100bb61019f36600461086a565b610341565b6101056101b236600461096e565b610383565b6100e46101c53660046109a7565b610398565b6101056101d83660046109e0565b6103e8565b6101056101eb366004610a11565b610434565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091208054606092919061022f90610a50565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a50565b80156102a65780601f1061027d576101008083540402835291602001916102a6565b820191905f5260205f20905b81548152906001019060200180831161028957829003601f168201915b5050505050915050919050565b6001600160a01b0382165f9081525f80516020610aa8833981519152602090815260408083208484529091529020545b92915050565b5f6001600160e01b03198216630f632fb360e01b14806102e357506301ffc9a760e01b6001600160e01b03198316146102e3565b5f61032a3385858561047f565b5060019392505050565b5f61032a338585856104e8565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091206001018054606092919061022f90610a50565b5f61038f3384846105b8565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f336001600160a01b0386168114801590610456575061045486826103e8565b155b156104675761046786828686610687565b6104738686868661047f565b50600195945050505050565b6001600160a01b0384166104ad576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b0383166104d657604051630b8bbd6160e41b81525f60048201526024016104a4565b6104e284848484610729565b50505050565b5f80516020610aa88339815191526001600160a01b03851661051f5760405163198ecd5360e31b81525f60048201526024016104a4565b6001600160a01b03841661054857604051636f65f46560e01b81525f60048201526024016104a4565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f80516020610aa88339815191526001600160a01b0384166105ef5760405163198ecd5360e31b81525f60048201526024016104a4565b6001600160a01b03831661061857604051636f65f46560e01b81525f60048201526024016104a4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f80516020610aa88339815191525f6106a1868686610398565b90505f1981101561072157828110156106ed57604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104a4565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f80516020610aa8833981519152336001600160a01b038616156107d0576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107a9576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104a4565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610815576001600160a01b0385165f908152602083815260408083208784529091528120805485929061080f908490610a88565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b5f6020828403121561087a575f80fd5b5035919050565b5f602080835283518060208501525f5b818110156108ad57858101830151858201604001528201610891565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108e3575f80fd5b919050565b5f80604083850312156108f9575f80fd5b610902836108cd565b946020939093013593505050565b5f60208284031215610920575f80fd5b81356001600160e01b031981168114610937575f80fd5b9392505050565b5f805f60608486031215610950575f80fd5b610959846108cd565b95602085013595506040909401359392505050565b5f806040838503121561097f575f80fd5b610988836108cd565b91506020830135801515811461099c575f80fd5b809150509250929050565b5f805f606084860312156109b9575f80fd5b6109c2846108cd565b92506109d0602085016108cd565b9150604084013590509250925092565b5f80604083850312156109f1575f80fd5b6109fa836108cd565b9150610a08602084016108cd565b90509250929050565b5f805f8060808587031215610a24575f80fd5b610a2d856108cd565b9350610a3b602086016108cd565b93969395505050506040820135916060013590565b600181811c90821680610a6457607f821691505b602082108103610a8257634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a264697066735822122003ac03d4b03b418d173024d7cc6f1426d03154aad5d44d5d12d898136c0b669b64736f6c63430008180033", "deployedBytecode": "0x608060405234801561000f575f80fd5b50600436106100a4575f3560e01c8063426a84931161006e578063426a84931461017e5780634e41a1fb14610191578063558a7297146101a4578063598af9e7146101b7578063b6363cf2146101ca578063fe99049a146101dd575f80fd5b8062ad800c146100a8578062fdd58e146100d157806301ffc9a7146100f2578063095bcdb6146101155780633f47e66214610128575b5f80fd5b6100bb6100b636600461086a565b6101f0565b6040516100c89190610881565b60405180910390f35b6100e46100df3660046108e8565b6102b3565b6040519081526020016100c8565b610105610100366004610910565b6102e9565b60405190151581526020016100c8565b61010561012336600461093e565b61031d565b61016c61013636600461086a565b5f9081527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602052604090206002015460ff1690565b60405160ff90911681526020016100c8565b61010561018c36600461093e565b610334565b6100bb61019f36600461086a565b610341565b6101056101b236600461096e565b610383565b6100e46101c53660046109a7565b610398565b6101056101d83660046109e0565b6103e8565b6101056101eb366004610a11565b610434565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091208054606092919061022f90610a50565b80601f016020809104026020016040519081016040528092919081815260200182805461025b90610a50565b80156102a65780601f1061027d576101008083540402835291602001916102a6565b820191905f5260205f20905b81548152906001019060200180831161028957829003601f168201915b5050505050915050919050565b6001600160a01b0382165f9081525f80516020610aa8833981519152602090815260408083208484529091529020545b92915050565b5f6001600160e01b03198216630f632fb360e01b14806102e357506301ffc9a760e01b6001600160e01b03198316146102e3565b5f61032a3385858561047f565b5060019392505050565b5f61032a338585856104e8565b5f8181527fa0651e3d105d335a33d7d04897e080112be09c416f44637d6543e5b47885f800602081905260409091206001018054606092919061022f90610a50565b5f61038f3384846105b8565b50600192915050565b6001600160a01b039283165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf902602090815260408083209490951682529283528381209181529152205490565b6001600160a01b039182165f9081527f9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf9016020908152604080832093909416825291909152205460ff1690565b5f336001600160a01b0386168114801590610456575061045486826103e8565b155b156104675761046786828686610687565b6104738686868661047f565b50600195945050505050565b6001600160a01b0384166104ad576040516301486a4160e71b81525f60048201526024015b60405180910390fd5b6001600160a01b0383166104d657604051630b8bbd6160e41b81525f60048201526024016104a4565b6104e284848484610729565b50505050565b5f80516020610aa88339815191526001600160a01b03851661051f5760405163198ecd5360e31b81525f60048201526024016104a4565b6001600160a01b03841661054857604051636f65f46560e01b81525f60048201526024016104a4565b6001600160a01b038581165f81815260028401602090815260408083209489168084529482528083208884528252918290208690559051858152869392917fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7910160405180910390a45050505050565b5f80516020610aa88339815191526001600160a01b0384166105ef5760405163198ecd5360e31b81525f60048201526024016104a4565b6001600160a01b03831661061857604051636f65f46560e01b81525f60048201526024016104a4565b6001600160a01b038481165f818152600184016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527fceb576d9f15e4e200fdb5096d64d5dfd667e16def20c1eefd14256d8e3faa267910160405180910390a350505050565b5f80516020610aa88339815191525f6106a1868686610398565b90505f1981101561072157828110156106ed57604051632c51fead60e11b81526001600160a01b03861660048201526024810182905260448101849052606481018590526084016104a4565b6001600160a01b038087165f9081526002840160209081526040808320938916835292815282822087835290522083820390555b505050505050565b5f80516020610aa8833981519152336001600160a01b038616156107d0576001600160a01b0386165f90815260208381526040808320878452909152902054838110156107a9576040516302c6d3fb60e61b81526001600160a01b03881660048201526024810182905260448101859052606481018690526084016104a4565b6001600160a01b0387165f9081526020848152604080832088845290915290209084900390555b6001600160a01b03851615610815576001600160a01b0385165f908152602083815260408083208784529091528120805485929061080f908490610a88565b90915550505b604080516001600160a01b03838116825260208201869052869281891692918a16917f1b3d7edb2e9c0b0e7c525b20aaaef0f5940d2ed71663c7d39266ecafac728859910160405180910390a4505050505050565b5f6020828403121561087a575f80fd5b5035919050565b5f602080835283518060208501525f5b818110156108ad57858101830151858201604001528201610891565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146108e3575f80fd5b919050565b5f80604083850312156108f9575f80fd5b610902836108cd565b946020939093013593505050565b5f60208284031215610920575f80fd5b81356001600160e01b031981168114610937575f80fd5b9392505050565b5f805f60608486031215610950575f80fd5b610959846108cd565b95602085013595506040909401359392505050565b5f806040838503121561097f575f80fd5b610988836108cd565b91506020830135801515811461099c575f80fd5b809150509250929050565b5f805f606084860312156109b9575f80fd5b6109c2846108cd565b92506109d0602085016108cd565b9150604084013590509250925092565b5f80604083850312156109f1575f80fd5b6109fa836108cd565b9150610a08602084016108cd565b90509250929050565b5f805f8060808587031215610a24575f80fd5b610a2d856108cd565b9350610a3b602086016108cd565b93969395505050506040820135916060013590565b600181811c90821680610a6457607f821691505b602082108103610a8257634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102e357634e487b7160e01b5f52601160045260245ffdfe9e75074fe7582401cc58901f6bda367c4d687c51437956963a7c06ef5cfaf900a264697066735822122003ac03d4b03b418d173024d7cc6f1426d03154aad5d44d5d12d898136c0b669b64736f6c63430008180033", "linkReferences": {}, "deployedLinkReferences": {} }