Errors of the identity suite
Every custom error of ONCHAINID, grouped by the contract that raises it. Most are declared in the library Errors (contracts/libraries/Errors.sol). The key registry declares seven of its own in ERC734Validator. The errors of the recovery module are OpenZeppelin's and are listed in RecoveryModule.
Common
ZeroAddress()
A required address is zero
EmptyString()
A salt is empty
InvalidSignature()
A signature does not verify
InvalidSignerData()
Signer data is missing, too short, or does not hash to the key given
Keys
SenderDoesNotHaveManagementKey()
A function reserved to MANAGEMENT is called by another key
SenderDoesNotHaveActionKey()
An approval needs ACTION and the caller lacks it
SenderDoesNotHaveClaimSignerKey()
A claim is added or removed by a caller without a claim key
KeyDoesNotHavePurpose(bytes32 key, uint256 purpose)
A purpose is removed from a key that does not hold it
KeyAlreadyRegistered(bytes32 keyHash)
A key receives a purpose it already holds
KeyNotRegistered(bytes32 keyHash)
A key is unknown to the registry
KeyTypeMismatch(bytes32 keyHash)
A registered key is given a purpose with another key type than the one recorded
InvalidPurpose(uint256 purpose)
A purpose outside 1 to 6
InvalidSignerLength()
Signer data shorter than an address
CannotRemoveLastManagementKey()
The last MANAGEMENT key that can sign is removed
ModuleCannotBeKey()
The key registry itself is given as a key
ClientDataTooLong()
The client data of a key exceeds its limit
Claims
InvalidClaim()
The issuer does not answer Valid for the claim
InvalidClaimTopic()
The topic is 0
ClaimMetadataMismatch(uint256 scheme, string uri)
The scheme and the URI do not match the metadataHash that was signed
ClaimSignatureTooLong(), ClaimPayloadTooLong(), ClaimUriTooLong()
A field of the claim exceeds 2,048 bytes
ClaimNotRegistered(bytes32 claimId)
A claim to remove does not exist
ClaimAlreadyRevoked()
A digest is revoked twice
IdentityNotClaimIssuerType(address identity)
An issuer with no claim key on the identity is not of type CLAIM_ISSUER
ReputationBelowClaimAddThreshold(address identity, uint256 score, uint256 threshold)
That issuer's reputation is below the threshold
EASNotSupported()
A function the EAS adapter does not serve is called on it
Execution
SenderCannotPropose(address sender)
execute is called by an address that holds no key allowed to propose
InvalidRequestId()
An approval names a request that does not exist
RequestAlreadyExecuted()
The request is already closed
RequestInvalidated()
The request was queued before the module was last uninstalled
ProposerNoLongerAuthorized(address proposer)
The key that queued the request lost its authority
ReturnToAccountFailed()
The value sent with execute cannot be returned to the identity
UnsupportedExecutionMode(bytes32 mode)
The identity is asked to execute in a mode it does not accept, such as a delegate call
OwnModuleTargetBlocked(address target)
A dispatched call targets one of the identity's own modules
ExecutorPurposeNotAuthorized()
A module dispatches a call that the purpose registered for it does not cover
IdentityNoValidatorOrExecutor()
An identity is initialized with neither a validator nor an executor
Creating identities
UnknownIdentityType(uint256 identityType)
The type has no policy
ZeroIdentityType()
A policy is set for type 0
IdentityTypeNotSelfDeployable(uint256 identityType)
createIdentity for a type that is not self-deployable
NotAuthorizedForIdentityType(address caller, uint256 identityType, uint64 requiredRole)
createIdentityFor by a caller without the role of the type
DelayedRoleNotSupported(address caller, uint64 requiredRole, uint32 executionDelay)
The caller holds that role with an execution delay
SingleBindingTypeCannotBePublic(uint256 identityType)
A type bound to one contract is opened to the public role
EmptyListOfKeys(), NoManagementKeyInKeys()
No key, or no MANAGEMENT key, is supplied
KeyNotForAccount(bytes32 keyHash), AccountNotSoleManagementKey(address account)
createIdentityFor: a key is not a key of the account, or the account is not the only MANAGEMENT key
CallerKeyCannotBeModule(bytes32 keyHash)
A key of type MODULE is supplied at creation
Linking wallets
NotFactoryIdentity(address caller)
linkAccount is called by a contract the factory did not deploy
NonCanonicalAccount(bytes account)
A wallet is not in the canonical ERC-7930 form
NonEvmAccount(bytes account), AccountNotOnLocalChain(bytes account)
A signature link for a wallet that is not an EVM wallet of this chain
ExpiredSignature(uint256 expiry)
The link signature is expired, or carries no expiry
UntrustedVerifier(address verifier)
The signer names a verifier the factory does not trust
WalletAlreadyLinkedToIdentity(bytes wallet)
The wallet is already linked to the calling identity
WalletBoundToAnotherIdentity(bytes wallet, address boundIdentity)
The wallet is linked to another identity
WalletAlreadyRevoked(bytes wallet)
The wallet was revoked: a revocation is final
WalletNotLinkedToIdentity(bytes wallet), WalletNotActive(bytes wallet)
A revocation names a wallet that is not linked to the identity, or not active
CannotLinkToAssetIdentity(address identity)
A wallet is linked to an ASSET identity
CannotLinkFactoryIdentity(address identity)
An identity is given as a wallet to link
CannotRevokeFromNonSigningIdentity(address identity)
A revocation on an identity bound to one contract
CrossChainSenderWalletMismatch(bytes sender, bytes wallet)
The sender of a link proposal is not the wallet it names
CrossChainLinkForLocalWallet(bytes wallet)
A proposal names a wallet of this chain
WalletAlreadyHasEntry(bytes wallet)
A proposal names a wallet that is already linked or revoked
PendingCrossChainLinkExpired(uint256 expiry)
A proposal is delivered or settled after its expiry
PendingCrossChainLinkIdentityMismatch(bytes wallet, address caller, address recorded)
A proposal is settled by another identity than the one it names
The beacon of the identities
BeaconNotInitialized(), BeaconAlreadyInitialized()
An identity is created before the beacon exists. The beacon is initialized twice
BeaconAddressMismatch(address expected, address actual)
The beacon is not deployed at the address the factory committed to
ImplementationNotAContract(address implementation)
The candidate implementation has no code
ImplementationFactoryMismatch(address implementation)
It does not name this factory
ImplementationRegistryMismatch(address expected, address actual)
It names another key registry than the one identities use
ImplementationInitializersNotDisabled(address implementation)
Its initializers are not locked
ImplementationVersionMismatch(string expected, string actual)
Its version is not the one the upgrade announced
Last updated