ITeeCommonErrors
Shared custom errors used across multiple FlareTeeManager facet interfaces.
The interface has no functions.
It exists so the same error selectors can be declared once and inherited by many facets without "Identifier already declared" when those interfaces are combined into IFlareTeeManager.
Facet-specific errors stay on the facet pages (IExtensionManager, IMachineManager, IVerification, IOperationFees, IOwnerAllowlist).
Access control
OnlyOwner
The caller is not the owner of the resource the function acts on (TEE machine, wallet, or wallet project).
error OnlyOwner()
OnlyExtensionOwner
The caller is not the owner of the extension.
error OnlyExtensionOwner()
OnlyExtensionOwnerOrOperator
The caller is neither the extension owner nor the optional extension operator. Used for prep steps such as machine-path-list lifecycle, where the real security gate is a later governance threshold.
error OnlyExtensionOwnerOrOperator()
OnlyProposedOwner
The caller is not the address proposed in a two-step ownership transfer (proposeNewOwner / confirmOwnership).
error OnlyProposedOwner()
OnlyOwnerOrBackupManager
The caller is neither the wallet project owner nor that project's backup manager.
error OnlyOwnerOrBackupManager()
OnlyProductionOrPausedStatus
The wallet is not in PRODUCTION or PAUSED status.
Thrown by Protocol Managed Wallet payment flows that require the wallet to be usable or paused, not uninitialized or banned.
error OnlyProductionOrPausedStatus()
OwnerNotAllowed
The address is not on the relevant IOwnerAllowlist (extension owner, TEE machine owner, or wallet project owner).
error OwnerNotAllowed()
NotOwnerOrPauser
The caller cannot pause: they are not the owner and not a listed pauser for that extension or wallet project.
error NotOwnerOrPauser(address caller)
Parameters
caller: The address that attempted the pause.
NotOwnerOrUnpauser
The caller cannot unpause: they are not the owner and not a listed unpauser for that extension or wallet project.
error NotOwnerOrUnpauser(address caller)
Parameters
caller: The address that attempted the unpause.
Validation
ExtensionIdMismatch
The TEE machines, wallets, or backups in the call do not all belong to the same extension.
error ExtensionIdMismatch()
TeeMachineNotAvailable
The TEE machine is not in PRODUCTION.
Thrown when sending non-system instructions or when confirming availability for a machine that is not live.
error TeeMachineNotAvailable()
InvalidKeyType
The key type on the proof or backup does not match the wallet project's configured key type.
error InvalidKeyType()
InvalidSigningAlgo
The signing algorithm on the proof or backup does not match the wallet project's configured algorithm.
error InvalidSigningAlgo()
InvalidPublicKey
The public key is empty or does not match the key already stored for that wallet.
error InvalidPublicKey()
InvalidDuration
A governance duration is outside the allowed range. Availability-check validity must be between 1 hour and 365 days, signing-policy validity between 1 and 100 reward epochs, and challenge validity between 1 minute and 1 hour.
error InvalidDuration()
InvalidResponseData
An availability-check proof's response body failed verification (code hash, platform, signing policy, or state).
See IVerification.confirmAvailability.
error InvalidResponseData()
InvalidThreshold
A threshold is zero, larger than the signer or cosigner set, or does not match the stored configuration.
error InvalidThreshold()
InvalidCosigner
A cosigner address is zero, or the caller is not a registered wallet cosigner.
error InvalidCosigner(address cosigner)
Parameters
cosigner: The invalid or unauthorized address.
DuplicatedCosigner
The same cosigner address appears more than once in the list.
error DuplicatedCosigner(address cosigner)
Parameters
cosigner: The duplicated address.
InvalidAvailabilityCheckStatus
The availability-check proof status is not OK.
error InvalidAvailabilityCheckStatus()
InvalidWalletStatus
The wallet is not in the status the function requires (for example, not PRODUCTION when generating keys).
error InvalidWalletStatus()
LengthsMismatch
Parallel arrays in the call (for example operation types, commands, and fees) do not have the same length.
error LengthsMismatch()
VersionNotSupported
The (codeHash, platform) pair is not supported for the extension.
error VersionNotSupported()
AvailabilityCheckTimestampInvalid
The proof header timestamp is not strictly before block.timestamp, is earlier than the stored challenge time, or is before the machine's last status change.
error AvailabilityCheckTimestampInvalid()
KeyTypeNotSupported
The key type is not on the extension's supported list (or the system-supported list when adding types).
error KeyTypeNotSupported(bytes32 keyType)
Parameters
keyType: The unsupported key type.
InvalidNonce
The nonce is zero, out of range, or does not match the stored nonce for that TEE (machine-path lists and key confirmation).
error InvalidNonce()
InvalidGovernanceHash
The governance hash is unknown, has a zero threshold, or is not the extension's latest hash at machine registration.
error InvalidGovernanceHash()
InvalidAddress
An address in the list is zero, or a stored address does not match the value in the call.
error InvalidAddress()
AddressAlreadyInSet
The address is already in the allowlist or pauser set.
error AddressAlreadyInSet(address addr)
Parameters
addr: The address that is already present.
AddressNotInSet
The address is not in the allowlist or pauser set, so it cannot be removed.
error AddressNotInSet(address addr)
Parameters
addr: The address that was not found.
NoAddresses
The call passed an empty address list.
error NoAddresses()