@lukso/lsp-smart-contracts
Version:
The reference smart contract implementation for the LUKSO LSP standards
1,538 lines (1,537 loc) • 1.34 MB
JavaScript
import { LSP0_TYPE_IDS, INTERFACE_ID_LSP0 } from '@lukso/lsp0-contracts';
export { ERC1271_VALUES, OPERATION_TYPES } from '@lukso/lsp0-contracts';
import { LSP6DataKeys, INTERFACE_ID_LSP6 } from '@lukso/lsp6-contracts';
export { ALL_PERMISSIONS, CALLTYPE, PERMISSIONS } from '@lukso/lsp6-contracts';
import { LSP4DataKeys, LSP4SupportedStandard } from '@lukso/lsp4-contracts';
export { LSP4_TOKEN_TYPES } from '@lukso/lsp4-contracts';
import { LSP8DataKeys, LSP8_TYPE_IDS, INTERFACE_ID_LSP8 } from '@lukso/lsp8-contracts';
export { INTERFACE_ID_LSP8_PREVIOUS, LSP8_TOKEN_ID_FORMAT } from '@lukso/lsp8-contracts';
import { INTERFACE_ID_LSP20CallVerification, INTERFACE_ID_LSP20CallVerifier } from '@lukso/lsp20-contracts';
export { LSP20_SUCCESS_VALUES } from '@lukso/lsp20-contracts';
import { INTERFACE_ID_LSP25 } from '@lukso/lsp25-contracts';
export { LSP25_VERSION } from '@lukso/lsp25-contracts';
import { LSP7_TYPE_IDS, INTERFACE_ID_LSP7 } from '@lukso/lsp7-contracts';
export { INTERFACE_ID_LSP7_PREVIOUS } from '@lukso/lsp7-contracts';
import { LSP1DataKeys, INTERFACE_ID_LSP1 } from '@lukso/lsp1-contracts';
import { INTERFACE_ID_LSP1DELEGATE } from '@lukso/lsp1delegate-contracts';
import { LSP9DataKeys, LSP9_TYPE_IDS, LSP9SupportedStandard, INTERFACE_ID_LSP9 } from '@lukso/lsp9-contracts';
import { INTERFACE_ID_LSP11 } from '@lukso/lsp11-contracts';
import { LSP14_TYPE_IDS, INTERFACE_ID_LSP14 } from '@lukso/lsp14-contracts';
import { LSP17DataKeys, INTERFACE_ID_LSP17Extendable, INTERFACE_ID_LSP17Extension } from '@lukso/lsp17contractextension-contracts';
import { INTERFACE_ID_LSP26 } from '@lukso/lsp26-contracts';
import { LSP3DataKeys, LSP3SupportedStandard } from '@lukso/lsp3-contracts';
import { LSP5DataKeys } from '@lukso/lsp5-contracts';
import { LSP10DataKeys } from '@lukso/lsp10-contracts';
import { LSP12DataKeys } from '@lukso/lsp12-contracts';
const ErrorSelectors = {
LSP0ERC725Account: {
/**
* error ERC725X_ContractDeploymentFailed()
*
* 0x0b07489b = keccak256('ERC725X_ContractDeploymentFailed()')
*/
"0x0b07489b": {
sig: "ERC725X_ContractDeploymentFailed()",
inputs: [],
name: "ERC725X_ContractDeploymentFailed",
type: "error",
devdoc: [
{
details: "Reverts when contract deployment failed via {execute} or {executeBatch} functions, This error can occur using either operation type 1 (`CREATE`) or 2 (`CREATE2`)."
}
]
},
/**
* error ERC725X_CreateOperationsRequireEmptyRecipientAddress()
*
* 0x3041824a = keccak256('ERC725X_CreateOperationsRequireEmptyRecipientAddress()')
*/
"0x3041824a": {
sig: "ERC725X_CreateOperationsRequireEmptyRecipientAddress()",
inputs: [],
name: "ERC725X_CreateOperationsRequireEmptyRecipientAddress",
type: "error",
devdoc: [
{
details: "Reverts when passing a `to` address that is not `address(0)` (= address zero) while deploying a contract via {execute} or {executeBatch} functions. This error can occur using either operation type 1 (`CREATE`) or 2 (`CREATE2`)."
}
]
},
/**
* error ERC725X_ExecuteParametersEmptyArray()
*
* 0xe9ad2b5f = keccak256('ERC725X_ExecuteParametersEmptyArray()')
*/
"0xe9ad2b5f": {
sig: "ERC725X_ExecuteParametersEmptyArray()",
inputs: [],
name: "ERC725X_ExecuteParametersEmptyArray",
type: "error",
devdoc: [
{
details: "Reverts when one of the array parameter provided to the {executeBatch} function is an empty array."
}
]
},
/**
* error ERC725X_ExecuteParametersLengthMismatch()
*
* 0x3ff55f4d = keccak256('ERC725X_ExecuteParametersLengthMismatch()')
*/
"0x3ff55f4d": {
sig: "ERC725X_ExecuteParametersLengthMismatch()",
inputs: [],
name: "ERC725X_ExecuteParametersLengthMismatch",
type: "error",
devdoc: [
{
details: "Reverts when there is not the same number of elements in the `operationTypes`, `targets` addresses, `values`, and `datas` array parameters provided when calling the {executeBatch} function."
}
]
},
/**
* error ERC725X_InsufficientBalance(
* uint256 balance,
* uint256 value
* )
*
* 0x0df9a8f8 = keccak256('ERC725X_InsufficientBalance(uint256,uint256)')
*/
"0x0df9a8f8": {
sig: "ERC725X_InsufficientBalance(uint256,uint256)",
inputs: [
{ internalType: "uint256", name: "balance", type: "uint256" },
{ internalType: "uint256", name: "value", type: "uint256" }
],
name: "ERC725X_InsufficientBalance",
type: "error",
devdoc: [
{
details: "Reverts when trying to send more native tokens `value` than available in current `balance`.",
params: {
balance: "The balance of native tokens of the ERC725X smart contract.",
value: "The amount of native tokens sent via `ERC725X.execute(...)`/`ERC725X.executeBatch(...)` that is greater than the contract's `balance`."
}
}
]
},
/**
* error ERC725X_MsgValueDisallowedInDelegateCall()
*
* 0x5ac83135 = keccak256('ERC725X_MsgValueDisallowedInDelegateCall()')
*/
"0x5ac83135": {
sig: "ERC725X_MsgValueDisallowedInDelegateCall()",
inputs: [],
name: "ERC725X_MsgValueDisallowedInDelegateCall",
type: "error",
devdoc: [
{
details: "Reverts when trying to send native tokens (`value` / `values[]` parameter of {execute} or {executeBatch} functions) while making a `delegatecall` (`operationType == 4`). Sending native tokens via `staticcall` is not allowed because `msg.value` is persisting."
}
]
},
/**
* error ERC725X_MsgValueDisallowedInStaticCall()
*
* 0x72f2bc6a = keccak256('ERC725X_MsgValueDisallowedInStaticCall()')
*/
"0x72f2bc6a": {
sig: "ERC725X_MsgValueDisallowedInStaticCall()",
inputs: [],
name: "ERC725X_MsgValueDisallowedInStaticCall",
type: "error",
devdoc: [
{
details: "Reverts when trying to send native tokens (`value` / `values[]` parameter of {execute} or {executeBatch} functions) while making a `staticcall` (`operationType == 3`). Sending native tokens via `staticcall` is not allowed because it is a state changing operation."
}
]
},
/**
* error ERC725X_NoContractBytecodeProvided()
*
* 0xb81cd8d9 = keccak256('ERC725X_NoContractBytecodeProvided()')
*/
"0xb81cd8d9": {
sig: "ERC725X_NoContractBytecodeProvided()",
inputs: [],
name: "ERC725X_NoContractBytecodeProvided",
type: "error",
devdoc: [
{
details: "Reverts when no contract bytecode was provided as parameter when trying to deploy a contract via {execute} or {executeBatch}. This error can occur using either operation type 1 (`CREATE`) or 2 (`CREATE2`)."
}
]
},
/**
* error ERC725X_UnknownOperationType(
* uint256 operationTypeProvided
* )
*
* 0x7583b3bc = keccak256('ERC725X_UnknownOperationType(uint256)')
*/
"0x7583b3bc": {
sig: "ERC725X_UnknownOperationType(uint256)",
inputs: [
{
internalType: "uint256",
name: "operationTypeProvided",
type: "uint256"
}
],
name: "ERC725X_UnknownOperationType",
type: "error",
devdoc: [
{
details: "Reverts when the `operationTypeProvided` is none of the default operation types available. (CALL = 0; CREATE = 1; CREATE2 = 2; STATICCALL = 3; DELEGATECALL = 4)",
params: {
operationTypeProvided: "The unrecognised operation type number provided to `ERC725X.execute(...)`/`ERC725X.executeBatch(...)`."
}
}
]
},
/**
* error ERC725Y_DataKeysValuesEmptyArray()
*
* 0x97da5f95 = keccak256('ERC725Y_DataKeysValuesEmptyArray()')
*/
"0x97da5f95": {
sig: "ERC725Y_DataKeysValuesEmptyArray()",
inputs: [],
name: "ERC725Y_DataKeysValuesEmptyArray",
type: "error",
devdoc: [
{
details: "Reverts when one of the array parameter provided to {setDataBatch} function is an empty array."
}
]
},
/**
* error ERC725Y_DataKeysValuesLengthMismatch()
*
* 0x3bcc8979 = keccak256('ERC725Y_DataKeysValuesLengthMismatch()')
*/
"0x3bcc8979": {
sig: "ERC725Y_DataKeysValuesLengthMismatch()",
inputs: [],
name: "ERC725Y_DataKeysValuesLengthMismatch",
type: "error",
devdoc: [
{
details: "Reverts when there is not the same number of elements in the `datakeys` and `dataValues` array parameters provided when calling the {setDataBatch} function."
}
]
},
/**
* error LSP14CallerNotPendingOwner(
* address caller
* )
*
* 0x451e4528 = keccak256('LSP14CallerNotPendingOwner(address)')
*/
"0x451e4528": {
sig: "LSP14CallerNotPendingOwner(address)",
inputs: [{ internalType: "address", name: "caller", type: "address" }],
name: "LSP14CallerNotPendingOwner",
type: "error",
devdoc: [
{
details: "Reverts when the `caller` that is trying to accept ownership of the contract is not the pending owner.",
params: { caller: "The address that tried to accept ownership." }
}
]
},
/**
* error LSP14CannotTransferOwnershipToSelf()
*
* 0xe052a6f8 = keccak256('LSP14CannotTransferOwnershipToSelf()')
*/
"0xe052a6f8": {
sig: "LSP14CannotTransferOwnershipToSelf()",
inputs: [],
name: "LSP14CannotTransferOwnershipToSelf",
type: "error",
devdoc: [
{
details: "Reverts when trying to transfer ownership to the `address(this)`."
}
],
userdoc: [
{
notice: "Cannot transfer ownership to the address of the contract itself."
}
]
},
/**
* error LSP14MustAcceptOwnershipInSeparateTransaction()
*
* 0x5758dd07 = keccak256('LSP14MustAcceptOwnershipInSeparateTransaction()')
*/
"0x5758dd07": {
sig: "LSP14MustAcceptOwnershipInSeparateTransaction()",
inputs: [],
name: "LSP14MustAcceptOwnershipInSeparateTransaction",
type: "error",
devdoc: [
{
details: "Reverts when pending owner accept ownership in the same transaction of transferring ownership."
}
],
userdoc: [
{
notice: "Cannot accept ownership in the same transaction with {transferOwnership(...)}."
}
]
},
/**
* error LSP14NotInRenounceOwnershipInterval(
* uint256 renounceOwnershipStart,
* uint256 renounceOwnershipEnd
* )
*
* 0x1b080942 = keccak256('LSP14NotInRenounceOwnershipInterval(uint256,uint256)')
*/
"0x1b080942": {
sig: "LSP14NotInRenounceOwnershipInterval(uint256,uint256)",
inputs: [
{
internalType: "uint256",
name: "renounceOwnershipStart",
type: "uint256"
},
{
internalType: "uint256",
name: "renounceOwnershipEnd",
type: "uint256"
}
],
name: "LSP14NotInRenounceOwnershipInterval",
type: "error",
devdoc: [
{
details: "Reverts when trying to renounce ownership before the initial confirmation delay.",
params: {
renounceOwnershipEnd: "The end timestamp when one can confirm the renouncement of ownership.",
renounceOwnershipStart: "The start timestamp when one can confirm the renouncement of ownership."
}
}
],
userdoc: [
{
notice: "Cannot confirm ownership renouncement yet. The ownership renouncement is allowed from: `renounceOwnershipStart` until: `renounceOwnershipEnd`."
}
]
},
/**
* error LSP20CallVerificationFailed(
* bool postCall,
* bytes4 returnedStatus
* )
*
* 0x9d6741e3 = keccak256('LSP20CallVerificationFailed(bool,bytes4)')
*/
"0x9d6741e3": {
sig: "LSP20CallVerificationFailed(bool,bytes4)",
inputs: [
{ internalType: "bool", name: "postCall", type: "bool" },
{ internalType: "bytes4", name: "returnedStatus", type: "bytes4" }
],
name: "LSP20CallVerificationFailed",
type: "error",
devdoc: [
{
details: "reverts when the call to the owner does not return the LSP20 success value",
params: {
postCall: "True if the execution call was done, False otherwise",
returnedStatus: "The bytes4 decoded data returned by the logic verifier."
}
}
]
},
/**
* error LSP20CallingVerifierFailed(
* bool postCall
* )
*
* 0x8c6a8ae3 = keccak256('LSP20CallingVerifierFailed(bool)')
*/
"0x8c6a8ae3": {
sig: "LSP20CallingVerifierFailed(bool)",
inputs: [{ internalType: "bool", name: "postCall", type: "bool" }],
name: "LSP20CallingVerifierFailed",
type: "error",
devdoc: [
{
details: "reverts when the call to the owner fail with no revert reason",
params: {
postCall: "True if the execution call was done, False otherwise"
}
}
]
},
/**
* error LSP20EOACannotVerifyCall(
* address logicVerifier
* )
*
* 0x0c392301 = keccak256('LSP20EOACannotVerifyCall(address)')
*/
"0x0c392301": {
sig: "LSP20EOACannotVerifyCall(address)",
inputs: [
{ internalType: "address", name: "logicVerifier", type: "address" }
],
name: "LSP20EOACannotVerifyCall",
type: "error",
devdoc: [
{
details: "Reverts when the logic verifier is an Externally Owned Account (EOA) that cannot return the LSP20 success value.",
params: { logicVerifier: "The address of the logic verifier" }
}
]
},
/**
* error NoExtensionFoundForFunctionSelector(
* bytes4 functionSelector
* )
*
* 0xbb370b2b = keccak256('NoExtensionFoundForFunctionSelector(bytes4)')
*/
"0xbb370b2b": {
sig: "NoExtensionFoundForFunctionSelector(bytes4)",
inputs: [
{ internalType: "bytes4", name: "functionSelector", type: "bytes4" }
],
name: "NoExtensionFoundForFunctionSelector",
type: "error",
devdoc: [
{
details: "reverts when there is no extension for the function selector being called with"
}
]
}
},
LSP0ERC725AccountInit: {
/**
* error ERC725X_ContractDeploymentFailed()
*
* 0x0b07489b = keccak256('ERC725X_ContractDeploymentFailed()')
*/
"0x0b07489b": {
sig: "ERC725X_ContractDeploymentFailed()",
inputs: [],
name: "ERC725X_ContractDeploymentFailed",
type: "error",
devdoc: [
{
details: "Reverts when contract deployment failed via {execute} or {executeBatch} functions, This error can occur using either operation type 1 (`CREATE`) or 2 (`CREATE2`)."
}
]
},
/**
* error ERC725X_CreateOperationsRequireEmptyRecipientAddress()
*
* 0x3041824a = keccak256('ERC725X_CreateOperationsRequireEmptyRecipientAddress()')
*/
"0x3041824a": {
sig: "ERC725X_CreateOperationsRequireEmptyRecipientAddress()",
inputs: [],
name: "ERC725X_CreateOperationsRequireEmptyRecipientAddress",
type: "error",
devdoc: [
{
details: "Reverts when passing a `to` address that is not `address(0)` (= address zero) while deploying a contract via {execute} or {executeBatch} functions. This error can occur using either operation type 1 (`CREATE`) or 2 (`CREATE2`)."
}
]
},
/**
* error ERC725X_ExecuteParametersEmptyArray()
*
* 0xe9ad2b5f = keccak256('ERC725X_ExecuteParametersEmptyArray()')
*/
"0xe9ad2b5f": {
sig: "ERC725X_ExecuteParametersEmptyArray()",
inputs: [],
name: "ERC725X_ExecuteParametersEmptyArray",
type: "error",
devdoc: [
{
details: "Reverts when one of the array parameter provided to the {executeBatch} function is an empty array."
}
]
},
/**
* error ERC725X_ExecuteParametersLengthMismatch()
*
* 0x3ff55f4d = keccak256('ERC725X_ExecuteParametersLengthMismatch()')
*/
"0x3ff55f4d": {
sig: "ERC725X_ExecuteParametersLengthMismatch()",
inputs: [],
name: "ERC725X_ExecuteParametersLengthMismatch",
type: "error",
devdoc: [
{
details: "Reverts when there is not the same number of elements in the `operationTypes`, `targets` addresses, `values`, and `datas` array parameters provided when calling the {executeBatch} function."
}
]
},
/**
* error ERC725X_InsufficientBalance(
* uint256 balance,
* uint256 value
* )
*
* 0x0df9a8f8 = keccak256('ERC725X_InsufficientBalance(uint256,uint256)')
*/
"0x0df9a8f8": {
sig: "ERC725X_InsufficientBalance(uint256,uint256)",
inputs: [
{ internalType: "uint256", name: "balance", type: "uint256" },
{ internalType: "uint256", name: "value", type: "uint256" }
],
name: "ERC725X_InsufficientBalance",
type: "error",
devdoc: [
{
details: "Reverts when trying to send more native tokens `value` than available in current `balance`.",
params: {
balance: "The balance of native tokens of the ERC725X smart contract.",
value: "The amount of native tokens sent via `ERC725X.execute(...)`/`ERC725X.executeBatch(...)` that is greater than the contract's `balance`."
}
}
]
},
/**
* error ERC725X_MsgValueDisallowedInDelegateCall()
*
* 0x5ac83135 = keccak256('ERC725X_MsgValueDisallowedInDelegateCall()')
*/
"0x5ac83135": {
sig: "ERC725X_MsgValueDisallowedInDelegateCall()",
inputs: [],
name: "ERC725X_MsgValueDisallowedInDelegateCall",
type: "error",
devdoc: [
{
details: "Reverts when trying to send native tokens (`value` / `values[]` parameter of {execute} or {executeBatch} functions) while making a `delegatecall` (`operationType == 4`). Sending native tokens via `staticcall` is not allowed because `msg.value` is persisting."
}
]
},
/**
* error ERC725X_MsgValueDisallowedInStaticCall()
*
* 0x72f2bc6a = keccak256('ERC725X_MsgValueDisallowedInStaticCall()')
*/
"0x72f2bc6a": {
sig: "ERC725X_MsgValueDisallowedInStaticCall()",
inputs: [],
name: "ERC725X_MsgValueDisallowedInStaticCall",
type: "error",
devdoc: [
{
details: "Reverts when trying to send native tokens (`value` / `values[]` parameter of {execute} or {executeBatch} functions) while making a `staticcall` (`operationType == 3`). Sending native tokens via `staticcall` is not allowed because it is a state changing operation."
}
]
},
/**
* error ERC725X_NoContractBytecodeProvided()
*
* 0xb81cd8d9 = keccak256('ERC725X_NoContractBytecodeProvided()')
*/
"0xb81cd8d9": {
sig: "ERC725X_NoContractBytecodeProvided()",
inputs: [],
name: "ERC725X_NoContractBytecodeProvided",
type: "error",
devdoc: [
{
details: "Reverts when no contract bytecode was provided as parameter when trying to deploy a contract via {execute} or {executeBatch}. This error can occur using either operation type 1 (`CREATE`) or 2 (`CREATE2`)."
}
]
},
/**
* error ERC725X_UnknownOperationType(
* uint256 operationTypeProvided
* )
*
* 0x7583b3bc = keccak256('ERC725X_UnknownOperationType(uint256)')
*/
"0x7583b3bc": {
sig: "ERC725X_UnknownOperationType(uint256)",
inputs: [
{
internalType: "uint256",
name: "operationTypeProvided",
type: "uint256"
}
],
name: "ERC725X_UnknownOperationType",
type: "error",
devdoc: [
{
details: "Reverts when the `operationTypeProvided` is none of the default operation types available. (CALL = 0; CREATE = 1; CREATE2 = 2; STATICCALL = 3; DELEGATECALL = 4)",
params: {
operationTypeProvided: "The unrecognised operation type number provided to `ERC725X.execute(...)`/`ERC725X.executeBatch(...)`."
}
}
]
},
/**
* error ERC725Y_DataKeysValuesEmptyArray()
*
* 0x97da5f95 = keccak256('ERC725Y_DataKeysValuesEmptyArray()')
*/
"0x97da5f95": {
sig: "ERC725Y_DataKeysValuesEmptyArray()",
inputs: [],
name: "ERC725Y_DataKeysValuesEmptyArray",
type: "error",
devdoc: [
{
details: "Reverts when one of the array parameter provided to {setDataBatch} function is an empty array."
}
]
},
/**
* error ERC725Y_DataKeysValuesLengthMismatch()
*
* 0x3bcc8979 = keccak256('ERC725Y_DataKeysValuesLengthMismatch()')
*/
"0x3bcc8979": {
sig: "ERC725Y_DataKeysValuesLengthMismatch()",
inputs: [],
name: "ERC725Y_DataKeysValuesLengthMismatch",
type: "error",
devdoc: [
{
details: "Reverts when there is not the same number of elements in the `datakeys` and `dataValues` array parameters provided when calling the {setDataBatch} function."
}
]
},
/**
* error LSP14CallerNotPendingOwner(
* address caller
* )
*
* 0x451e4528 = keccak256('LSP14CallerNotPendingOwner(address)')
*/
"0x451e4528": {
sig: "LSP14CallerNotPendingOwner(address)",
inputs: [{ internalType: "address", name: "caller", type: "address" }],
name: "LSP14CallerNotPendingOwner",
type: "error",
devdoc: [
{
details: "Reverts when the `caller` that is trying to accept ownership of the contract is not the pending owner.",
params: { caller: "The address that tried to accept ownership." }
}
]
},
/**
* error LSP14CannotTransferOwnershipToSelf()
*
* 0xe052a6f8 = keccak256('LSP14CannotTransferOwnershipToSelf()')
*/
"0xe052a6f8": {
sig: "LSP14CannotTransferOwnershipToSelf()",
inputs: [],
name: "LSP14CannotTransferOwnershipToSelf",
type: "error",
devdoc: [
{
details: "Reverts when trying to transfer ownership to the `address(this)`."
}
],
userdoc: [
{
notice: "Cannot transfer ownership to the address of the contract itself."
}
]
},
/**
* error LSP14MustAcceptOwnershipInSeparateTransaction()
*
* 0x5758dd07 = keccak256('LSP14MustAcceptOwnershipInSeparateTransaction()')
*/
"0x5758dd07": {
sig: "LSP14MustAcceptOwnershipInSeparateTransaction()",
inputs: [],
name: "LSP14MustAcceptOwnershipInSeparateTransaction",
type: "error",
devdoc: [
{
details: "Reverts when pending owner accept ownership in the same transaction of transferring ownership."
}
],
userdoc: [
{
notice: "Cannot accept ownership in the same transaction with {transferOwnership(...)}."
}
]
},
/**
* error LSP14NotInRenounceOwnershipInterval(
* uint256 renounceOwnershipStart,
* uint256 renounceOwnershipEnd
* )
*
* 0x1b080942 = keccak256('LSP14NotInRenounceOwnershipInterval(uint256,uint256)')
*/
"0x1b080942": {
sig: "LSP14NotInRenounceOwnershipInterval(uint256,uint256)",
inputs: [
{
internalType: "uint256",
name: "renounceOwnershipStart",
type: "uint256"
},
{
internalType: "uint256",
name: "renounceOwnershipEnd",
type: "uint256"
}
],
name: "LSP14NotInRenounceOwnershipInterval",
type: "error",
devdoc: [
{
details: "Reverts when trying to renounce ownership before the initial confirmation delay.",
params: {
renounceOwnershipEnd: "The end timestamp when one can confirm the renouncement of ownership.",
renounceOwnershipStart: "The start timestamp when one can confirm the renouncement of ownership."
}
}
],
userdoc: [
{
notice: "Cannot confirm ownership renouncement yet. The ownership renouncement is allowed from: `renounceOwnershipStart` until: `renounceOwnershipEnd`."
}
]
},
/**
* error LSP20CallVerificationFailed(
* bool postCall,
* bytes4 returnedStatus
* )
*
* 0x9d6741e3 = keccak256('LSP20CallVerificationFailed(bool,bytes4)')
*/
"0x9d6741e3": {
sig: "LSP20CallVerificationFailed(bool,bytes4)",
inputs: [
{ internalType: "bool", name: "postCall", type: "bool" },
{ internalType: "bytes4", name: "returnedStatus", type: "bytes4" }
],
name: "LSP20CallVerificationFailed",
type: "error",
devdoc: [
{
details: "reverts when the call to the owner does not return the LSP20 success value",
params: {
postCall: "True if the execution call was done, False otherwise",
returnedStatus: "The bytes4 decoded data returned by the logic verifier."
}
}
]
},
/**
* error LSP20CallingVerifierFailed(
* bool postCall
* )
*
* 0x8c6a8ae3 = keccak256('LSP20CallingVerifierFailed(bool)')
*/
"0x8c6a8ae3": {
sig: "LSP20CallingVerifierFailed(bool)",
inputs: [{ internalType: "bool", name: "postCall", type: "bool" }],
name: "LSP20CallingVerifierFailed",
type: "error",
devdoc: [
{
details: "reverts when the call to the owner fail with no revert reason",
params: {
postCall: "True if the execution call was done, False otherwise"
}
}
]
},
/**
* error LSP20EOACannotVerifyCall(
* address logicVerifier
* )
*
* 0x0c392301 = keccak256('LSP20EOACannotVerifyCall(address)')
*/
"0x0c392301": {
sig: "LSP20EOACannotVerifyCall(address)",
inputs: [
{ internalType: "address", name: "logicVerifier", type: "address" }
],
name: "LSP20EOACannotVerifyCall",
type: "error",
devdoc: [
{
details: "Reverts when the logic verifier is an Externally Owned Account (EOA) that cannot return the LSP20 success value.",
params: { logicVerifier: "The address of the logic verifier" }
}
]
},
/**
* error NoExtensionFoundForFunctionSelector(
* bytes4 functionSelector
* )
*
* 0xbb370b2b = keccak256('NoExtensionFoundForFunctionSelector(bytes4)')
*/
"0xbb370b2b": {
sig: "NoExtensionFoundForFunctionSelector(bytes4)",
inputs: [
{ internalType: "bytes4", name: "functionSelector", type: "bytes4" }
],
name: "NoExtensionFoundForFunctionSelector",
type: "error",
devdoc: [
{
details: "reverts when there is no extension for the function selector being called with"
}
]
}
},
LSP11SocialRecovery: {
/**
* error AccountNotSetupYet()
*
* 0x1d20946c = keccak256('AccountNotSetupYet()')
*/
"0x1d20946c": {
sig: "AccountNotSetupYet()",
inputs: [],
name: "AccountNotSetupYet",
type: "error",
devdoc: [{ details: "The account has not been set up yet." }]
},
/**
* error BatchCallsFailed(
* uint256 iteration
* )
*
* 0xd9a02303 = keccak256('BatchCallsFailed(uint256)')
*/
"0xd9a02303": {
sig: "BatchCallsFailed(uint256)",
inputs: [{ internalType: "uint256", name: "iteration", type: "uint256" }],
name: "BatchCallsFailed",
type: "error",
devdoc: [
{
details: "One or more batch calls failed.",
params: {
iteration: "The iteration at which the batch call failed."
}
}
]
},
/**
* error BatchExecuteRelayCallParamsLengthMismatch()
*
* 0xb4d50d21 = keccak256('BatchExecuteRelayCallParamsLengthMismatch()')
*/
"0xb4d50d21": {
sig: "BatchExecuteRelayCallParamsLengthMismatch()",
inputs: [],
name: "BatchExecuteRelayCallParamsLengthMismatch",
type: "error",
devdoc: [
{
details: "Thrown when there's a length mismatch in batch execute relay call parameters."
}
]
},
/**
* error CallerIsNotGuardian(
* address guardian,
* address caller
* )
*
* 0x17c6343d = keccak256('CallerIsNotGuardian(address,address)')
*/
"0x17c6343d": {
sig: "CallerIsNotGuardian(address,address)",
inputs: [
{ internalType: "address", name: "guardian", type: "address" },
{ internalType: "address", name: "caller", type: "address" }
],
name: "CallerIsNotGuardian",
type: "error",
devdoc: [
{
details: "The caller is not a guardian address provided.",
params: {
caller: "Address of the caller.",
guardian: "Expected guardian address."
}
}
]
},
/**
* error CallerIsNotTheAccount(
* address account,
* address caller
* )
*
* 0x08fd287f = keccak256('CallerIsNotTheAccount(address,address)')
*/
"0x08fd287f": {
sig: "CallerIsNotTheAccount(address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "caller", type: "address" }
],
name: "CallerIsNotTheAccount",
type: "error",
devdoc: [
{
details: "The caller is not the account holder.",
params: {
account: "The expected account holder.",
caller: "Address of the caller."
}
}
]
},
/**
* error CallerIsNotVotedAddress(
* address votedAddress,
* address caller
* )
*
* 0x94f17760 = keccak256('CallerIsNotVotedAddress(address,address)')
*/
"0x94f17760": {
sig: "CallerIsNotVotedAddress(address,address)",
inputs: [
{ internalType: "address", name: "votedAddress", type: "address" },
{ internalType: "address", name: "caller", type: "address" }
],
name: "CallerIsNotVotedAddress",
type: "error",
devdoc: [
{
details: "The caller is not the expected recoverer.",
params: {
caller: "Address of the caller.",
votedAddress: "Expected voted address."
}
}
]
},
/**
* error CallerVotesHaveNotReachedThreshold(
* address account,
* address recoverer
* )
*
* 0x36dbf4c8 = keccak256('CallerVotesHaveNotReachedThreshold(address,address)')
*/
"0x36dbf4c8": {
sig: "CallerVotesHaveNotReachedThreshold(address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "recoverer", type: "address" }
],
name: "CallerVotesHaveNotReachedThreshold",
type: "error",
devdoc: [
{
details: "Guardian is not authorized to vote for the account.",
params: {
account: "The account for which the vote is being cast.",
recoverer: "the caller"
}
}
]
},
/**
* error CannotRecoverAfterDirectCommit(
* address account,
* address committer
* )
*
* 0xfe75f628 = keccak256('CannotRecoverAfterDirectCommit(address,address)')
*/
"0xfe75f628": {
sig: "CannotRecoverAfterDirectCommit(address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "committer", type: "address" }
],
name: "CannotRecoverAfterDirectCommit",
type: "error",
devdoc: [
{
details: "The commitment provided is too early.",
params: {
account: "The account for which the commitment is being checked.",
committer: "The address providing the commitment."
}
}
]
},
/**
* error CannotRecoverBeforeDelay(
* address account,
* uint256 delay
* )
*
* 0x7c1b1700 = keccak256('CannotRecoverBeforeDelay(address,uint256)')
*/
"0x7c1b1700": {
sig: "CannotRecoverBeforeDelay(address,uint256)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "uint256", name: "delay", type: "uint256" }
],
name: "CannotRecoverBeforeDelay",
type: "error",
devdoc: [
{
details: "Thrown when an attempt to recover is made before a specified delay period.",
params: {
account: "The account address.",
delay: "The delay of the account."
}
}
]
},
/**
* error CannotVoteToAddressTwice(
* address account,
* address guardian,
* address guardianVotedAddress
* )
*
* 0x92dd87f6 = keccak256('CannotVoteToAddressTwice(address,address,address)')
*/
"0x92dd87f6": {
sig: "CannotVoteToAddressTwice(address,address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "guardian", type: "address" },
{
internalType: "address",
name: "guardianVotedAddress",
type: "address"
}
],
name: "CannotVoteToAddressTwice",
type: "error",
devdoc: [
{
details: "A guardian cannot vote for the same address twice.",
params: {
account: "The account for which the vote is being cast.",
guardian: "The guardian casting the vote.",
guardianVotedAddress: "The address voted by the guardian for recovery."
}
}
]
},
/**
* error GuardianAlreadyExists(
* address account,
* address guardian
* )
*
* 0x242d9f79 = keccak256('GuardianAlreadyExists(address,address)')
*/
"0x242d9f79": {
sig: "GuardianAlreadyExists(address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "guardian", type: "address" }
],
name: "GuardianAlreadyExists",
type: "error",
devdoc: [
{
details: "The guardian address already exists for the account.",
params: {
account: "The account trying to add the guardian.",
guardian: "The guardian address that already exists."
}
}
]
},
/**
* error GuardianNotFound(
* address account,
* address guardian
* )
*
* 0x925f444b = keccak256('GuardianNotFound(address,address)')
*/
"0x925f444b": {
sig: "GuardianNotFound(address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "guardian", type: "address" }
],
name: "GuardianNotFound",
type: "error",
devdoc: [
{
details: "The specified guardian address does not exist for the account.",
params: {
account: "The account trying to remove the guardian.",
guardian: "The guardian address that was not found."
}
}
]
},
/**
* error GuardianNumberCannotGoBelowThreshold(
* address account,
* uint256 threshold
* )
*
* 0x85283f15 = keccak256('GuardianNumberCannotGoBelowThreshold(address,uint256)')
*/
"0x85283f15": {
sig: "GuardianNumberCannotGoBelowThreshold(address,uint256)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "uint256", name: "threshold", type: "uint256" }
],
name: "GuardianNumberCannotGoBelowThreshold",
type: "error",
devdoc: [
{
details: "Removing the guardian would violate the guardian threshold.",
params: {
account: "The account trying to remove the guardian.",
threshold: "The guardian address that would cause a threshold violation if removed."
}
}
]
},
/**
* error InvalidCommitment(
* address account,
* address committer
* )
*
* 0xeca9e4a6 = keccak256('InvalidCommitment(address,address)')
*/
"0xeca9e4a6": {
sig: "InvalidCommitment(address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "committer", type: "address" }
],
name: "InvalidCommitment",
type: "error",
devdoc: [
{
details: "The commitment provided is not valid.",
params: {
account: "The account for which the commitment is being checked.",
committer: "The address providing the commitment."
}
}
]
},
/**
* error InvalidRelayNonce(
* address signer,
* uint256 invalidNonce,
* bytes signature
* )
*
* 0xc9bd9eb9 = keccak256('InvalidRelayNonce(address,uint256,bytes)')
*/
"0xc9bd9eb9": {
sig: "InvalidRelayNonce(address,uint256,bytes)",
inputs: [
{ internalType: "address", name: "signer", type: "address" },
{ internalType: "uint256", name: "invalidNonce", type: "uint256" },
{ internalType: "bytes", name: "signature", type: "bytes" }
],
name: "InvalidRelayNonce",
type: "error",
devdoc: [
{
details: "Reverts when the `signer` address retrieved from the `signature` has an invalid nonce: `invalidNonce`.",
params: {
invalidNonce: "The nonce retrieved for the `signer` address.",
signature: "The signature used to retrieve the `signer` address.",
signer: "The address of the signer."
}
}
],
userdoc: [
{
notice: "The relay call failed because an invalid nonce was provided for the address `signer` that signed the execute relay call. Invalid nonce: `invalidNonce`, signature of signer: `signature`."
}
]
},
/**
* error InvalidSecretHash(
* address account,
* bytes32 secretHash
* )
*
* 0x84bb073d = keccak256('InvalidSecretHash(address,bytes32)')
*/
"0x84bb073d": {
sig: "InvalidSecretHash(address,bytes32)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "bytes32", name: "secretHash", type: "bytes32" }
],
name: "InvalidSecretHash",
type: "error",
devdoc: [
{
details: "The provided secret hash is not valid for recovery.",
params: {
account: "The account for which recovery is being attempted.",
secretHash: "The invalid secret hash provided."
}
}
]
},
/**
* error LSP11BatchExcessiveValueSent(
* uint256 totalValues,
* uint256 msgValue
* )
*
* 0x7c3328da = keccak256('LSP11BatchExcessiveValueSent(uint256,uint256)')
*/
"0x7c3328da": {
sig: "LSP11BatchExcessiveValueSent(uint256,uint256)",
inputs: [
{ internalType: "uint256", name: "totalValues", type: "uint256" },
{ internalType: "uint256", name: "msgValue", type: "uint256" }
],
name: "LSP11BatchExcessiveValueSent",
type: "error",
devdoc: [
{
details: "Thrown when the total value sent in an LSP11 batch call exceeds the required amount.",
params: {
msgValue: "The value actually sent in the message.",
totalValues: "The total value required."
}
}
]
},
/**
* error LSP11BatchInsufficientValueSent(
* uint256 totalValues,
* uint256 msgValue
* )
*
* 0xd42081cc = keccak256('LSP11BatchInsufficientValueSent(uint256,uint256)')
*/
"0xd42081cc": {
sig: "LSP11BatchInsufficientValueSent(uint256,uint256)",
inputs: [
{ internalType: "uint256", name: "totalValues", type: "uint256" },
{ internalType: "uint256", name: "msgValue", type: "uint256" }
],
name: "LSP11BatchInsufficientValueSent",
type: "error",
devdoc: [
{
details: "Thrown when the total value sent in an LSP11 batch call is insufficient.",
params: {
msgValue: "The value actually sent in the message.",
totalValues: "The total value required."
}
}
]
},
/**
* error NotAGuardianOfTheAccount(
* address account,
* address nonGuardian
* )
*
* 0x2835d4f4 = keccak256('NotAGuardianOfTheAccount(address,address)')
*/
"0x2835d4f4": {
sig: "NotAGuardianOfTheAccount(address,address)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "address", name: "nonGuardian", type: "address" }
],
name: "NotAGuardianOfTheAccount",
type: "error",
devdoc: [
{
details: "The address provided as a guardian is not registered as a guardian for the account.",
params: {
account: "The account in question.",
nonGuardian: "Address of a non-guardian ."
}
}
]
},
/**
* error RelayCallBeforeStartTime()
*
* 0x00de4b8a = keccak256('RelayCallBeforeStartTime()')
*/
"0x00de4b8a": {
sig: "RelayCallBeforeStartTime()",
inputs: [],
name: "RelayCallBeforeStartTime",
type: "error",
devdoc: [
{
details: "Reverts when the relay call is cannot yet bet executed. This mean that the starting timestamp provided to {executeRelayCall} function is bigger than the current timestamp."
}
],
userdoc: [{ notice: "Relay call not valid yet." }]
},
/**
* error RelayCallExpired()
*
* 0x5c53a98c = keccak256('RelayCallExpired()')
*/
"0x5c53a98c": {
sig: "RelayCallExpired()",
inputs: [],
name: "RelayCallExpired",
type: "error",
devdoc: [
{
details: "Reverts when the period to execute the relay call has expired."
}
],
userdoc: [{ notice: "Relay call expired (deadline passed)." }]
},
/**
* error RelayCallNotSupported(
* bytes4 functionSelector
* )
*
* 0x0602d270 = keccak256('RelayCallNotSupported(bytes4)')
*/
"0x0602d270": {
sig: "RelayCallNotSupported(bytes4)",
inputs: [
{ internalType: "bytes4", name: "functionSelector", type: "bytes4" }
],
name: "RelayCallNotSupported",
type: "error",
devdoc: [
{
details: "Thrown when a relay call is not supported.",
params: { functionSelector: "The unsupported function selector." }
}
]
},
/**
* error SignerIsNotVotedAddress(
* address votedAddress,
* address recoveredAddress
* )
*
* 0x40a55632 = keccak256('SignerIsNotVotedAddress(address,address)')
*/
"0x40a55632": {
sig: "SignerIsNotVotedAddress(address,address)",
inputs: [
{ internalType: "address", name: "votedAddress", type: "address" },
{ internalType: "address", name: "recoveredAddress", type: "address" }
],
name: "SignerIsNotVotedAddress",
type: "error",
devdoc: [
{
details: "Thrown when the signer is not the voted address for a particular operation.",
params: {
recoveredAddress: "The recovered address from the signature.",
votedAddress: "The address passed as a parameter as voted address."
}
}
]
},
/**
* error ThresholdExceedsGuardianNumber(
* address account,
* uint256 threshold
* )
*
* 0x217be3a7 = keccak256('ThresholdExceedsGuardianNumber(address,uint256)')
*/
"0x217be3a7": {
sig: "ThresholdExceedsGuardianNumber(address,uint256)",
inputs: [
{ internalType: "address", name: "account", type: "address" },
{ internalType: "uint256", name: "threshold", type: "uint256" }
],
name: "ThresholdExceedsGuardianNumber",
type: "error",
devdoc: [
{
details: "The specified threshold exceeds the number of guardians.",
params: {
account: "The account trying to set the threshold.",
threshold: "The threshold value that exceeds the number of guardians."
}
}
]
}
},
LSP1UniversalReceiverDelegateUP: {
/**
* error CannotRegisterEOAsAsAssets(
* address caller
* )
*
* 0xa5295345 = keccak256('CannotRegisterEOAsAsAssets(address)')
*/
"0xa5295345": {
sig: "CannotRegisterEOAsAsAssets(address)",
inputs: [{ internalType: "address", name: "caller", type: "address" }],
name: "CannotRegisterEOAsAsAssets",
type: "error",
devdoc: [
{
details: "Reverts when EOA calls the {universalReceiver(..)} function with an asset/vault typeId.",
params: { caller: "The address of the EOA" }
}
],
userdoc: [{ notice: "EOA: `caller` cannot be registered as an asset." }]
}
},
LSP1UniversalReceiverDelegateVault: {
/**
* error CannotRegisterEOAsAsAssets(
* address caller
* )
*
* 0xa5295345 = keccak256('CannotRegisterEOAsAsAssets(address)')
*/
"0xa5295345": {
sig: "CannotRegisterEOAsAsAssets(address)",
inputs: [{ internalType: "address", name: "caller", type: "address" }],
name: "CannotRegisterEOAsAsAssets",
type: "error",
devdoc: [
{
details: "Reverts when EOA calls the {universalReceiver(..)} function with an asset/vault typeId.",
params: { caller: "The address of the EOA" }
}
],
userdoc: [{ notice: "EOA: `caller` cannot be registered as an asset." }]
}
},
LSP23LinkedContractsFactory: {
/**
* error InvalidValueSum()
*
* 0x2fd9ca91 = keccak256('InvalidValueSum()')
*/
"0x2fd9ca91": {
sig: "InvalidValueSum()",
inputs: [],
name: "InvalidValueSum",
type: "error",
devdoc: [
{
details: "Reverts when the `msg.value` sent is not equal to the sum of value used for the deployment of the contract & its owner contract."
}
],
userdoc: [{ notice: "Invalid value sent." }]
},
/**
* error PrimaryContractProxyInitFailureError(
* bytes errorData
* )
*
* 0x4364b6ee = keccak256('PrimaryContractProxyInitFailureError(bytes)')
*/
"0x4364b6ee": {
sig: "PrimaryContractProxyInitFailureError(bytes)",
inputs: [{ internalType: "bytes", name: "errorData", type: "bytes" }],
name: "PrimaryContractProxyInitFailureError",
type: "error",
devdoc: [
{
details: "Reverts when the deployment & initialization of the contract has failed.",
params: {
errorData: "Potentially information about why the deployment & initialization have failed."
}
}
],
userdoc: [
{
notice: "Failed to deploy & initialize the Primary Contract Proxy. Error: `errorData`."
}
]
},
/**
* error SecondaryContractProxyInitFailureError(
* bytes errorData
* )
*
* 0x9654a854 = keccak256('SecondaryContractProxyInitFailureError(bytes)')
*/
"0x9654a854": {
sig: "SecondaryContractProxyInitFailureError(bytes)",
inputs: [{ internalType: "bytes", name: "errorData", type: "bytes" }],
name: "SecondaryContractProxyInitFailureError",
type: "error",
devdoc: [
{
details: "Reverts when the deployment & initialization of the secondary contract has failed.",
params: {
errorData: "Potentially information about why the deployment & initialization have failed."
}
}
],
userdoc: [
{
notice: "Failed to deploy & initialize the Secondary Contract Proxy. Error: `errorData`."
}
]
}
},
LSP26FollowerSystem: {
/**
* error LSP26AlreadyFollowing(
* address addr
* )
*
* 0x6feacbf6 = keccak256('LSP26AlreadyFollowing(address)')
*/
"0x6feacbf6": {
sig: "LSP26AlreadyFollowing(address)",
inputs: [{ internalType: "address", name: "addr", type: "address" }],
name: "LSP26AlreadyFollowing",
type: "error"
},
/**
* error LSP26CannotSelfFollow()
*
* 0xea619542 = keccak256('LSP26CannotSelfFollow()')
*/
"0xea619542": {
sig: "LSP26CannotSelfFollow()",
inputs: [],
name: "LSP26CannotSelfFollow",
type: "error"
},
/**
* error LSP26NotFollowing(
* address addr
* )
*
* 0xc70bad4e = keccak256('LSP26NotFollowing(address)')
*/
"0xc