mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-02-03 07:45:18 +00:00
6dc2773957
* Normalised storage tree addressing in function prototypes detail: Argument list is always `<db> <account-path> <slot-path> ..` with both path arguments as `openArray[]` * Remove cruft * CoreDb internally Use full account paths rather than addresses * Update API logging * Use hashed account address only in prototypes why: This avoids unnecessary repeated hashing of the same account address. The burden of doing that is upon the application. In the case here, the ledger caches all kinds of stuff anyway so it is common sense to exploit that for account address hashes. caveat: Using `openArray[byte]` argument types for hashed accounts is inherently fragile. In non-release mode, a length verification `doAssert` is enabled by default. * No accPath in data record (use `AristoAccount` as `CoreDbAccount`) * Remove now unused `eAddr` field from ledger `AccountRef` type why: Is duplicate of lookup key * Avoid merging the account record/statement in the ledger twice.
303 lines
6.9 KiB
Nim
303 lines
6.9 KiB
Nim
# nimbus-eth1
|
|
# Copyright (c) 2023-2024 Status Research & Development GmbH
|
|
# Licensed under either of
|
|
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
|
|
# http://www.apache.org/licenses/LICENSE-2.0)
|
|
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
|
|
# http://opensource.org/licenses/MIT)
|
|
# at your option. This file may not be copied, modified, or distributed
|
|
# except according to those terms.
|
|
|
|
type
|
|
AristoError* = enum
|
|
NothingSerious = 0
|
|
|
|
# Miscelaneous/unclassified handy helpers
|
|
GenericError
|
|
|
|
|
|
# Data record transcoders, `blobify()` from `blobify.nim`
|
|
BlobifyBranchMissingRefs
|
|
BlobifyExtMissingRefs
|
|
BlobifyExtPathOverflow
|
|
BlobifyLeafPathOverflow
|
|
BlobifyNilFilter
|
|
BlobifyNilVertex
|
|
BlobifyStateSrcLenGarbled
|
|
BlobifyStateTrgLenGarbled
|
|
|
|
|
|
# Cache checker `checkCache()`
|
|
CheckAnyVidDeadStorageRoot
|
|
CheckAnyVidSharedStorageRoot
|
|
CheckAnyVtxEmptyKeyMissing
|
|
CheckAnyVtxEmptyKeyExpected
|
|
CheckAnyVtxEmptyKeyMismatch
|
|
CheckAnyVtxBranchLinksMissing
|
|
CheckAnyVtxExtPfxMissing
|
|
CheckAnyVtxLockWithoutKey
|
|
CheckAnyVTopUnset
|
|
|
|
CheckBeCacheGarbledVTop
|
|
CheckBeCacheIsDirty
|
|
CheckBeCacheKeyCantCompile
|
|
CheckBeCacheKeyDangling
|
|
CheckBeCacheKeyMismatch
|
|
CheckBeCacheKeyMissing
|
|
CheckBeCacheKeyNonEmpty
|
|
CheckBeCacheVidUnsynced
|
|
CheckBeCacheVtxDangling
|
|
CheckBeFifoSrcTrgMismatch
|
|
CheckBeFifoTrgNotStateRoot
|
|
CheckBeGarbledVTop
|
|
CheckBeKeyCantCompile
|
|
CheckBeKeyInvalid
|
|
CheckBeKeyMismatch
|
|
CheckBeKeyMissing
|
|
CheckBeVtxBranchLinksMissing
|
|
CheckBeVtxExtPfxMissing
|
|
CheckBeVtxInvalid
|
|
CheckBeVtxMissing
|
|
|
|
CheckStkKeyStrayZeroEntry
|
|
CheckStkVtxIncomplete
|
|
CheckStkVtxKeyMismatch
|
|
CheckStkVtxKeyMissing
|
|
|
|
CheckRlxVidVtxMismatch
|
|
CheckRlxVtxIncomplete
|
|
CheckRlxVtxKeyMissing
|
|
CheckRlxVtxKeyMismatch
|
|
|
|
|
|
# De-serialiser from `blobify.nim`
|
|
DeblobNilArgument
|
|
DeblobUnknown
|
|
DeblobVtxTooShort
|
|
DeblobHashKeyExpected
|
|
DeblobBranchTooShort
|
|
DeblobBranchSizeGarbled
|
|
DeblobBranchInxOutOfRange
|
|
DeblobExtTooShort
|
|
DeblobExtSizeGarbled
|
|
DeblobExtGotLeafPrefix
|
|
DeblobLeafSizeGarbled
|
|
DeblobLeafGotExtPrefix
|
|
DeblobSizeGarbled
|
|
DeblobWrongType
|
|
DeblobWrongSize
|
|
DeblobPayloadTooShortInt64
|
|
DeblobPayloadTooShortInt256
|
|
DeblobNonceLenUnsupported
|
|
DeblobBalanceLenUnsupported
|
|
DeblobStorageLenUnsupported
|
|
DeblobCodeLenUnsupported
|
|
DeblobFilterTooShort
|
|
DeblobFilterGenTooShort
|
|
DeblobFilterTrpTooShort
|
|
DeblobFilterTrpVtxSizeGarbled
|
|
DeblobFilterSizeGarbled
|
|
|
|
|
|
# Deletion of vertex paths, `deleteXxx()`
|
|
DelAccRootNotAccepted
|
|
DelBranchExpexted
|
|
DelBranchLocked
|
|
DelBranchWithoutRefs
|
|
DelDanglingStoTrie
|
|
DelExtLocked
|
|
DelLeafExpexted
|
|
DelLeafLocked
|
|
DelLeafUnexpected
|
|
DelPathNotFound
|
|
DelPathTagError
|
|
DelRootVidMissing
|
|
DelStoAccMissing
|
|
DelStoRootMissing
|
|
DelStoRootNotAccepted
|
|
DelSubTreeAccRoot
|
|
DelSubTreeVoidRoot
|
|
DelVidStaleVtx
|
|
|
|
|
|
# Functions from `aristo_desc.nim`
|
|
DescMustBeOnCentre
|
|
DescNotAllowedOnCentre
|
|
DescStaleDescriptor
|
|
|
|
|
|
# Functions from `aristo_filter.nim`
|
|
FilBackendMissing
|
|
FilBackendRoMode
|
|
FilNilFilterRejected
|
|
FilSiblingsCommitUnfinshed
|
|
FilSrcTrgInconsistent
|
|
FilStateRootMismatch
|
|
FilTrgSrcMismatch
|
|
|
|
|
|
# Fetch functions from `aristo_fetch.nim`
|
|
FetchAccInaccessible
|
|
FetchAccPathWithoutLeaf
|
|
FetchAccRootNotAccepted
|
|
FetchLeafKeyInvalid
|
|
FetchPathInvalid
|
|
FetchPathNotFound
|
|
FetchRootVidMissing
|
|
FetchStoRootNotAccepted
|
|
|
|
|
|
# Get functions from `aristo_get.nim`
|
|
GetFilNotFound
|
|
GetFqsNotFound
|
|
GetKeyNotFound
|
|
GetKeyUpdateNeeded
|
|
GetLstNotFound
|
|
GetTuvNotFound
|
|
GetVtxNotFound
|
|
|
|
|
|
# Update `Merkle` hashes `hashify()`
|
|
HashifyVtxUnresolved
|
|
HashifyRootVtxUnresolved
|
|
HashifyProofHashMismatch
|
|
|
|
|
|
# Path function `hikeUp()`
|
|
HikeBranchMissingEdge
|
|
HikeBranchTailEmpty
|
|
HikeDanglingEdge
|
|
HikeEmptyPath
|
|
HikeExtMissingEdge
|
|
HikeExtTailEmpty
|
|
HikeExtTailMismatch
|
|
HikeLeafUnexpected
|
|
HikeNoLegs
|
|
HikeRootMissing
|
|
|
|
|
|
# Merge leaf `merge()`
|
|
MergeAssemblyFailed # Ooops, internal error
|
|
MergeAccRootNotAccepted
|
|
MergeStoRootNotAccepted
|
|
MergeBranchGarbledNibble
|
|
MergeBranchGarbledTail
|
|
MergeBranchLinkLeafGarbled
|
|
MergeBranchLinkVtxPfxTooShort
|
|
MergeBranchProofModeLock
|
|
MergeBranchRootExpected
|
|
MergeHashKeyDiffersFromCached
|
|
MergeHashKeyInvalid
|
|
MergeLeafGarbledHike
|
|
MergeLeafPathCachedAlready
|
|
MergeLeafPathOnBackendAlready
|
|
MergeLeafProofModeLock
|
|
MergeLeafTypeAccountRequired
|
|
MergeLeafTypeRawDataRequired
|
|
MergeNodeAccountPayloadError
|
|
MergeNodeVidMissing
|
|
MergeNodeVtxDiffersFromExisting
|
|
MergeNonBranchProofModeLock
|
|
MergeProofInitMissing
|
|
MergeRevVidMustHaveBeenCached
|
|
MergeRootArgsIncomplete
|
|
MergeRootBranchLinkBusy
|
|
MergeRootKeyDiffersForVid
|
|
MergeRootKeyInvalid
|
|
MergeRootKeyMissing
|
|
MergeRootKeyNotInProof
|
|
MergeRootKeysMissing
|
|
MergeRootKeysOverflow
|
|
MergeRootVidMissing
|
|
MergeStoAccMissing
|
|
|
|
|
|
# Neighbour vertex, tree traversal `nearbyRight()` and `nearbyLeft()`
|
|
NearbyBeyondRange
|
|
NearbyBranchError
|
|
NearbyDanglingLink
|
|
NearbyEmptyHike
|
|
NearbyExtensionError
|
|
NearbyFailed
|
|
NearbyBranchExpected
|
|
NearbyLeafExpected
|
|
NearbyNestingTooDeep
|
|
NearbyPathTailUnexpected
|
|
NearbyUnexpectedVtx
|
|
NearbyVidInvalid
|
|
|
|
|
|
# Path/nibble/key conversions in `aisto_path.nim`
|
|
PathExpected64Nibbles
|
|
PathAtMost64Nibbles
|
|
PathExpectedLeaf
|
|
|
|
|
|
# RocksDB backend
|
|
RdbBeCantCreateDataDir
|
|
RdbBeCantCreateTmpDir
|
|
RdbBeDriverDelAdmError
|
|
RdbBeDriverDelKeyError
|
|
RdbBeDriverDelVtxError
|
|
RdbBeDriverGetAdmError
|
|
RdbBeDriverGetKeyError
|
|
RdbBeDriverGetVtxError
|
|
RdbBeDriverGuestError
|
|
RdbBeDriverPutAdmError
|
|
RdbBeDriverPutKeyError
|
|
RdbBeDriverPutVtxError
|
|
RdbBeDriverWriteError
|
|
RdbBeTypeUnsupported
|
|
RdbBeWrSessionUnfinished
|
|
RdbBeWrTriggerActiveAlready
|
|
RdbBeWrTriggerNilFn
|
|
RdbGuestInstanceAborted
|
|
RdbGuestInstanceUnsupported
|
|
RdbHashKeyExpected
|
|
|
|
|
|
# Rlp decoder, `read()`
|
|
Rlp2Or17ListEntries
|
|
RlpBlobExpected
|
|
RlpBranchHashKeyExpected
|
|
RlpEmptyBlobExpected
|
|
RlpExtHashKeyExpected
|
|
RlpHashKeyExpected
|
|
RlpNonEmptyBlobExpected
|
|
RlpOtherException
|
|
RlpRlpException
|
|
|
|
|
|
# Serialise decoder
|
|
SerCantResolveStorageRoot
|
|
|
|
|
|
# Transaction wrappers
|
|
TxAccRootMissing
|
|
TxArgStaleTx
|
|
TxArgsUseless
|
|
TxBackendNotWritable
|
|
TxLevelTooDeep
|
|
TxLevelUseless
|
|
TxNoPendingTx
|
|
TxNotFound
|
|
TxNotTopTx
|
|
TxPendingTx
|
|
TxPrettyPointlessLayer
|
|
TxStackGarbled
|
|
TxStackUnderflow
|
|
TxStateRootMismatch
|
|
|
|
|
|
# Functions from `aristo_utils.nim`
|
|
UtilsAccLeafPayloadExpected
|
|
UtilsAccNodeUnsupported
|
|
UtilsAccPathMissing
|
|
UtilsAccStorageKeyMissing
|
|
UtilsAccVtxUnsupported
|
|
UtilsAccWrongStorageRoot
|
|
UtilsPayloadTypeUnsupported
|
|
UtilsStoRootMissing
|
|
|
|
# End
|