Contracts Errors

This document consolidates all known errors from the CryptoLegacy contracts and libraries, as well as any relevant supporting contracts and libraries.

Table of Contents

  1. BeneficiaryRegistry (BR1)

  2. BuildManagerOwnable (BMO1)

  3. CryptoLegacy (CL1)

  4. CryptoLegacyDiamondBase (CLDB1)

  5. CryptoLegacyBuildManager (CLBM1)

  6. CryptoLegacyFactory (CLF1)

  7. CryptoLegacyOwnable (CLO1)

  8. LegacyMessenger (LM1)

  9. LifetimeNft (LTN1)

  10. LockChainGate (LCG1)

  11. MultiPermit (MP1)

  12. PluginsRegistry (PR1)

  13. ProxyBuilder (PB1)

  14. ProxyBuilderAdmin (PBA1)

  15. SignatureRoleTimelock (SRT1)

  16. FeeRegistry (FR1)

  17. ISafeMinimalMultisig (SMB1)

  18. ITrustedGuardiansPlugin (TGP1)

  19. ICryptoLegacyUpdaterPlugin (CLUP1)


Libraries:

  1. LibDiamond (LD1)

  2. LibCryptoLegacy (LCL1)

  3. LibCryptoLegacyPlugins (LCLP1)

  4. LibCreate2Deploy (LCTD1)

  5. LibSafeMinimalBeneficiaryMultisig (LSMB1)

  6. LibSafeMinimalMultisig (LSM1)

  7. LibTrustedGuardiansPlugin (LTGP1)


1. BeneficiaryRegistry (BR1)

No errors in this contract.


2. BuildManagerOwnable (BMO1)

NotTheOwnerOfCryptoLegacy (BMO1)

Parameters: No parameters.

Description: Raised when a check determines that the caller is not the actual owner of the referenced CryptoLegacy contract.


CryptoLegacyNotRegistered (BMO1)

Parameters: No parameters.

Description: Raised when a CryptoLegacy contract has not been registered by a valid build manager or is otherwise unknown.


BuildManagerNotAdded (BMO1)

Parameters: No parameters.

Description: Raised when an operation requires a build manager that is not recognized in the added build managers list.


3. CryptoLegacy (CL1)

These errors are declared in the ICryptoLegacy interface and used throughout the main CryptoLegacy system.

DisabledFunc (CL1)

Parameters: No parameters.

Description: Raised when a function call is disabled by the contract's internal configuration.


NotTheOwner (CL1)

Parameters: No parameters.

Description: Raised when the caller attempts an owner-only action but is not recognized as the contract owner.


NotTheBeneficiary (CL1)

Parameters: No parameters.

Description: Raised when an address that is not a valid beneficiary tries to perform a beneficiary-only action.


TooEarly (CL1)

Parameters: No parameters.

Description: Raised when an action is attempted before the required time delay or vesting has started.


IncorrectFee (CL1)

Parameters:

  • `requiredFee (uint256)`: The minimum or exact fee expected.

Description: Raised when the fee provided (e.g., in `msg.value`) does not match the fee required by the contract logic.


ZeroAddress (CL1)

Parameters: No parameters.

Description: Raised when a provided address argument is the zero address (i.e., 0x0000000000000000000000000000000000000000).


ZeroTokens (CL1)

Parameters: No parameters.

Description: Raised when an operation that expects one or more tokens is called with zero tokens or an empty list.


InitialFeeNotPaid (CL1)

Parameters: No parameters.

Description: Raised when certain actions require that the initial deployment fee has already been paid, but it has not.


InitialFeeAlreadyPaid (CL1)

Parameters: No parameters.

Description: Raised if an attempt is made to pay the initial fee again after it has already been settled.


NotBuildManager (CL1)

Parameters: No parameters.

Description: Raised when a restricted action is attempted by an entity that is not recognized as the Build Manager.


AlreadyInit (CL1)

Parameters: No parameters.

Description: Raised when a contract or feature is being initialized, but initialization has already occurred.


LengthMismatch (CL1)

Parameters: No parameters.

Description: Raised when two or more arrays passed to a function have mismatched lengths, preventing proper correlation of elements.


ShareSumDoesntMatchBase (CL1)

Parameters: No parameters.

Description: Raised when beneficiary share percentages do not sum to the required base (e.g., 10000 basis points).


DistributionStarted (CL1)

Parameters: No parameters.

Description: Raised when an operation that must occur before distribution cannot proceed because distribution has already begun.


DistributionStartAlreadySet (CL1)

Parameters: No parameters.

Description: Raised if distributionStartAt was already set, yet an attempt is made to set or re-initiate it again.


DistributionDelay (CL1)

Parameters: No parameters.

Description: Raised if a beneficiary tries to claim an asset or operation before the required distribution delay.


AlreadySet (CL1)

Parameters: No parameters.

Description: Raised when a switch or assignment is made but the target was already assigned or set to the same value.


BeneficiaryNotSet (CL1)

Parameters: No parameters.

Description: Raised when a beneficiary is assumed to exist but none is configured.


Pause (CL1)

Parameters: No parameters.

Description: Raised if a call is attempted while the contract is in a paused state, blocking the requested action.


IncorrectFacetCutAction (CL1)

Parameters: No parameters.

Description: Raised if the diamond cut (facet management) action is not recognized (not Add, Replace, or Remove).


NotContractOwner (CL1)

Parameters: No parameters.

Description: Raised if a diamond operation expects the diamond's internal owner but is called by someone else.


FacetNotFound (CL1)

Parameters: No parameters.

Description: Raised when an attempt is made to manage or reference a facet address that cannot be located in storage.


FacetHasNoCode (CL1)

Parameters: No parameters.

Description: Raised if a facet address is found to contain no contract code upon an Add or Replace operation.


NoSelectorsInFacetToCut (CL1)

Parameters: No parameters.

Description: Raised if a facet cut is requested with zero function selectors.


FacetCantBeZero (CL1)

Parameters: No parameters.

Description: Raised if an Add, Replace, or Remove action references a zero address for the facet.


CantRemoveImmutableFunctions (CL1)

Parameters: No parameters.

Description: Raised if a removal is attempted on a function that is immutable (defined directly in the diamond).


CantAddFunctionThatAlreadyExists (CL1)

Parameters: No parameters.

Description: Raised if a new facet or plugin tries to add a function selector that already exists in the contract.


CantReplaceFunctionWithSameFunction (CL1)

Parameters: No parameters.

Description: Raised if a Replace operation attempts to replace a function selector with a facet that already provides it.


InitFunctionReverted (CL1)

Parameters: No parameters.

Description: Raised if the init function (delegatecall) reverts during a diamond cut.


InitAddressZeroButCalldataIsNot (CL1)

Parameters: No parameters.

Description: Raised if an address is zero but non-empty calldata was provided for the init function, leading to a mismatch.


InitCalldataZeroButAddressIsNot (CL1)

Parameters: No parameters.

Description: Raised if an init address is non-zero but the calldata is empty, which is invalid for a diamond cut initialization.


PluginNotRegistered (CL1)

Parameters: No parameters.

Description: Raised if a plugin is used that is not recognized in the plugins registry.


4. CryptoLegacyDiamondBase (CLDB1)

FunctionNotExists (CLDB1)

Parameters:

  • `selector (bytes4)`: The function selector that was not found.

Description: Raised when a function call does not match any available facet or plugin, indicating that the function does not exist.


NotSelfCall (CLDB1)

Parameters: No parameters.

Description: Raised when a static call checker detects that a call is not made from the contract to itself (self-call is required).


5. CryptoLegacyBuildManager (CLBM1)

These errors appear in the ICryptoLegacyBuildManager interface.

AlreadyLifetime (CLBM1)

Parameters: No parameters.

Description: Raised if an operation tries to pay a lifetime fee or set a lifetime NFT, but the user already has lifetime status.


NotValidTimeout (CLBM1)

Parameters: No parameters.

Description: Raised if the provided interval or timeout is not valid for the expected usage (e.g., not matching required durations).


IncorrectFee (CLBM1)

Parameters:

  • `feeToTake (uint256)`: The fee amount that was expected.

Description: Raised when the fee provided does not match the fee required for building or updating a CryptoLegacy.


BellowMinimumSupply (CLBM1)

Parameters:

  • `supplyLimit (uint256)`: The minimum supply that was required.

Description: Raised when a mass mint attempt occurs but the total NFT supply is below the allowed threshold.


6. CryptoLegacyFactory (CLF1)

NotBuildOperator (CLF1)

Parameters: No parameters.

Description: Raised when an action is attempted by an address that is not registered as an allowed build operator.


7. CryptoLegacyOwnable (CLO1)

No errors in this contract.


8. LegacyMessenger (LM1)

No errors in this contract.


9. LifetimeNft (LTN1)

NotTheMinter (LTN1)

Parameters: No parameters.

Description: Raised when an address attempts to mint a LifetimeNft but is not designated as an active minter operator.


10. LockChainGate (LCG1)

AlreadyLocked (LCG1)

Parameters: No parameters.

Description: Raised when an NFT is already locked for a holder and a new lock attempt is made without unlocking first.


LockedToChains (LCG1)

Parameters: No parameters.

Description: Raised when an action (e.g., unlocking) is attempted but the NFT is still locked to multiple chains.


CrossChainLock (LCG1)

Parameters: No parameters.

Description: Raised when an action cannot proceed because the NFT is currently locked under a cross-chain process.


TooEarly (LCG1)

Parameters: No parameters.

Description: Raised when an unlocking or transfer is attempted before the lock period has elapsed.


DestinationChainNotSpecified (LCG1)

Parameters: No parameters.

Description: Raised when a cross-chain locking action references a chain ID for which no destination contract is specified.


TokenNotLocked (LCG1)

Parameters: No parameters.

Description: Raised when an NFT-based action is attempted for a token that is not currently locked.


TokenIdMismatch (LCG1)

Parameters:

  • `checkTokenId (uint256)`: The token ID that was expected or discovered incorrectly.

Description: Raised when the token ID being updated or transferred does not match the token ID that was locked or recognized for the operation.


AlreadyLockedToChain (LCG1)

Parameters: No parameters.

Description: Raised when attempting to lock an NFT to a chain to which it is already locked.


SourceNotSpecified (LCG1)

Parameters: No parameters.

Description: Raised if a cross-chain message originates from a chain ID for which no source contract is set in the gate configuration.


NotLockedByChain (LCG1)

Parameters: No parameters.

Description: Raised when an unlock-from-chain operation is attempted but the NFT is not locked by that chain.


DestinationNotSpecified (LCG1)

Parameters: No parameters.

Description: (Reserved or not found in final code usage—if triggered, typically means a chain destination is missing.)


NotAvailable (LCG1)

Parameters: No parameters.

Description: Raised when an operation on a locked NFT is not available to the caller or is blocked by conditions.


IncorrectFee (LCG1)

Parameters:

  • `requiredFee (uint256)`: The exact fee that must be provided.

Description: Raised when the provided fee is insufficient or incorrectly calculated for cross-chain locking/unlocking.


SameAddress (LCG1)

Parameters: No parameters.

Description: Raised when a transfer is requested, but the source and destination addresses are the same.


RecipientLocked (LCG1)

Parameters: No parameters.

Description: Raised when trying to transfer an NFT to a recipient who already has a locked NFT, and the system prohibits such a scenario.


NotCallProxy (LCG1)

Parameters: No parameters.

Description: Raised when a cross-chain operation is not being relayed by the expected CallProxy contract.


ChainIdMismatch (LCG1)

Parameters: No parameters.

Description: Raised when a cross-chain message’s chain ID does not match the chain ID that the contract expects for the submission.


NotValidSender (LCG1)

Parameters: No parameters.

Description: Raised when a cross-chain message’s native sender does not match the recognized source contract.


NotAllowed (LCG1)

Parameters: No parameters.

Description: Raised when an operation on a locked NFT is restricted to certain operators, but the caller is not allowed.


11. MultiPermit (MP1)

No errors in this library/contract.


12. PluginsRegistry (PR1)

No errors in this contract.


13. ProxyBuilder (PB1)

AdminAlreadyCreated (PB1)

Parameters: No parameters.

Description: Raised when trying to create a ProxyBuilderAdmin contract if one already exists under the same environment.


14. ProxyBuilderAdmin (PBA1)

No errors in this contract.


15. SignatureRoleTimelock (SRT1)

AlreadyHaveRole (SRT1)

Parameters: No parameters.

Description: Raised when adding a role to an account that already holds it.


DoesntHaveRole (SRT1)

Parameters: No parameters.

Description: Raised when removing or modifying a role for an account that does not hold the role.


RoleDontExist (SRT1)

Parameters: No parameters.

Description: Raised when assigning a signature role to a role identifier that does not exist.


CallerNotCurrentAddress (SRT1)

Parameters: No parameters.

Description: Raised when a function marked for internal use is called by an external address instead of the contract itself.


IncorrectSignatureIndex (SRT1)

Parameters: No parameters.

Description: Raised when an index for a signature array is incorrect or out-of-bounds during a removal or update action.


IncorrectRoleIndex (SRT1)

Parameters: No parameters.

Description: Raised when an index for a role array is incorrect or out-of-bounds during role management.


CallFailed (SRT1)

Parameters:

  • `errorMessage (bytes)`: Raw bytes of the revert message from the failed external call.

Description: Raised when an external call made by the timelock fails.


CallNotScheduled (SRT1)

Parameters: No parameters.

Description: Raised when attempting to execute or cancel a call that is not in the pending schedule.


NotPending (SRT1)

Parameters: No parameters.

Description: Raised when a scheduled call has already been executed or canceled, so it is no longer pending.


TimelockActive (SRT1)

Parameters: No parameters.

Description: Raised when execution is attempted before the timelock period has elapsed.


TimelockExpired (SRT1)

Parameters: No parameters.

Description: Raised when execution is attempted after the timelock’s valid execution window.


CallerHaveNoRequiredRole (SRT1)

Parameters:

  • `requiredRole (bytes32)`: The role identifier that the caller fails to hold.

Description: Raised when a caller tries to schedule or execute an action requiring a role they do not possess.


CallAlreadyScheduled (SRT1)

Parameters: No parameters.

Description: Raised when a call is scheduled more than once with the same combination of target, data, and execution time.


SignatureAlreadyExists (SRT1)

Parameters: No parameters.

Description: Raised when an attempt is made to add a signature role that already exists for a given target/function.


SignatureTimeLockNotSet (SRT1)

Parameters:

  • `signature (bytes4)`: The function selector for which no timelock is configured.

Description: Raised if a signature-based action is processed but no timelock parameter is set.


OutOfTimelockBounds (SRT1)

Parameters:

  • `maxTimelock (uint256)`: The maximum allowed timelock duration.

Description: Raised when a proposed timelock duration exceeds the allowed maximum limit.


OutOfMaxExecutionPeriodBounds (SRT1)

Parameters:

  • `minPeriod (uint256)`: The minimum execution period allowed.

  • `maxPeriod (uint256)`: The maximum execution period allowed.

Description: Raised if a proposed max execution period for scheduled calls is out of the contract’s acceptable range.


16. FeeRegistry (FR1)

PctSumDoesntMatchBase (FR1)

Parameters: No parameters.

Description: Raised when fee beneficiary shares do not sum to the required base (10000).


TooBigPct (FR1)

Parameters: No parameters.

Description: Raised when a discount or share percentage is greater than the permissible maximum (10000 bps).


RefAlreadyCreated (FR1)

Parameters: No parameters.

Description: Raised if a referral code is being created but it already exists in the registry.


ZeroCode (FR1)

Parameters: No parameters.

Description: Raised if an attempt is made to create or use a referral code that is bytes8(0), which is disallowed.


NotOperator (FR1)

Parameters: No parameters.

Description: Raised if a function limited to code operators is called by an address not in that set.


NotReferrer (FR1)

Parameters: No parameters.

Description: Raised if a call referencing a referral code is made by someone other than the recognized code owner (referrer).


AlreadyReferrer (FR1)

Parameters: No parameters.

Description: Raised if a new owner address is designated for a referral code but already has a code assigned.


CodeNotCreated (FR1)

Parameters: No parameters.

Description: Raised if an update or cross-chain referral action references a code that does not exist in storage.


IncorrectFee (FR1)

Parameters:

  • `requiredFee (uint256)`: The fee that the registry expected to be provided.

Description: Raised if the fee passed into a function is less than the required amount or otherwise mismatched.


17. ISafeMinimalMultisig (SMB1)

MultisigAlreadyExecuted (SMB1)

Parameters: No parameters.

Description: Raised when attempting to confirm or re-execute a proposal that has already been marked as executed.


MultisigAlreadyConfirmed (SMB1)

Parameters: No parameters.

Description: Raised if a voter tries to confirm a proposal that they have already confirmed.


MultisigExecutionFailed (SMB1)

Parameters: No parameters.

Description: Raised if the low-level call (execution of a proposal) fails or reverts.


MultisigMethodNotAllowed (SMB1)

Parameters: No parameters.

Description: Raised if a proposal references a function selector that is not permitted by the chosen multi-sig flow.


MultisigVoterNotAllowed (SMB1)

Parameters: No parameters.

Description: Raised when an address that is not in the set of recognized voters attempts to create or confirm a proposal.


MultisigOnlyExecutor (SMB1)

Parameters: No parameters.

Description: Raised if a proposal is executed by an entity other than the contract itself (where the design requires internal execution).


MultisigIncorrectRequiredConfirmations (SMB1)

Parameters: No parameters.

Description: Raised if an attempt is made to set or initialize a multi-sig with a required confirmation count that is zero or exceeds the number of voters.


18. ITrustedGuardiansPlugin (TGP1)

NotGuardian (TGP1)

Parameters: No parameters.

Description: Raised if a function restricted to guardians is attempted by an address that is not in the guardian set.


ThresholdDontMet (TGP1)

Parameters: No parameters.

Description: Raised if an operation expects a certain guardian threshold to be met but it has not been reached.


GuardianAlreadyVoted (TGP1)

Parameters: No parameters.

Description: Raised if a guardian tries to vote or re-vote when their vote is already recorded.


MaxGuardiansTimeout (TGP1)

Parameters:

  • `guardiansThreshold (uint64)`: The maximum challenge timeout or threshold parameter allowed.

Description: Raised if a proposed guardians challenge timeout exceeds the permitted maximum (e.g., 30 days).


19. ICryptoLegacyUpdaterPlugin (CLUP1)

NotTheUpdater (CLUP1)

Parameters: No parameters.

Description: Raised when a function that only an approved updater may call is attempted by an address that is not recognized as an updater.



Libraries

20. LibDiamond (LD1)

No errors in this library.


21. LibCryptoLegacy (LCL1)

No errors in this library.


22. LibCryptoLegacyPlugins (LCLP1)

No errors in this library.


23. LibCreate2Deploy (LCTD1)

BytecodeEmpty (LCTD1)

Parameters: No parameters.

Description: Raised when a CREATE2 deployment is requested but the supplied bytecode is empty.


AlreadyExists (LCTD1)

Parameters: No parameters.

Description: Raised if the predicted address for a CREATE2 deployment is already occupied by a contract.


AddressMismatch (LCTD1)

Parameters: No parameters.

Description: Raised when a computed address from CREATE2 does not match an expected address passed in for verification.


Create2Failed (LCTD1)

Parameters: No parameters.

Description: Raised if the `create2` opcode call fails to deploy the contract.


24. LibSafeMinimalBeneficiaryMultisig (LSMB1)

No errors in this library.


25. LibSafeMinimalMultisig (LSM1)

No errors in this library.


26. LibTrustedGuardiansPlugin (LTGP1)

No errors in this library.


Parameter Types

Type
Description

address

An Ethereum wallet or contract address.

bytes32

A 32-byte hash or identifier.

bytes4

A short function selector or partial data.

bytes

Arbitrary-length byte data, commonly used for call data or signatures.

uint256

An unsigned integer capable of values up to 2^256 - 1.

uint64

A smaller unsigned integer, typically storing timestamps or short counters (max 2^64 - 1).

bool

A boolean (true/false) value.

Last updated