mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-02-12 03:57:05 +00:00
* CoreDb: Merged all sub-descriptors into `base_desc` module * Dissolve `aristo_db/common_desc.nim` * No need to export `Aristo` methods in `CoreDb` * Resolve/tighten methods in `aristo_db` sub-moduled why: So they can be straihgt implemented into the `base` module * Moved/re-implemented `KVT` methods into `base` module * Moved/re-implemented `MPT` methods into `base` module * Moved/re-implemented account methods into `base` module * Moved/re-implemented `CTX` methods into `base` module * Moved/re-implemented `handler_{aristo,kvt}` into `aristo_db` module * Moved/re-implemented `TX` methods into `base` module * Moved/re-implemented base methods into `base` module * Replaced `toAristoSavedStateBlockNumber()` by proper base method why: Was the last for keeping reason for keeping low level backend access methods * Remove dedicated low level access to `Aristo` backend why: Not needed anymore, for debugging the descriptors can be accessed directly also: some clean up stuff * Re-factor `CoreDb` descriptor layout and adjust base methods * Moved/re-implemented iterators into `base_iterator*` modules * Update docu
58 lines
1.8 KiB
Nim
58 lines
1.8 KiB
Nim
# 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.
|
|
|
|
{.push raises: [].}
|
|
|
|
import
|
|
../../aristo,
|
|
./base_desc
|
|
|
|
type
|
|
ValidateSubDesc* = CoreDbCtxRef | CoreDbTxRef # | CoreDbCaptRef
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Private helpers
|
|
# ------------------------------------------------------------------------------
|
|
|
|
proc validateSubDescRef(ctx: CoreDbCtxRef) =
|
|
doAssert not ctx.isNil
|
|
doAssert not ctx.parent.isNil
|
|
doAssert not ctx.mpt.isNil
|
|
doAssert not ctx.kvt.isNil
|
|
|
|
proc validateSubDescRef(tx: CoreDbTxRef) =
|
|
doAssert not tx.isNil
|
|
doAssert not tx.ctx.isNil
|
|
doAssert not tx.aTx.isNil
|
|
doAssert not tx.kTx.isNil
|
|
|
|
when false: # currently disabled
|
|
proc validateSubDescRef(cpt: CoreDbCaptRef) =
|
|
doAssert not cpt.isNil
|
|
doAssert not cpt.parent.isNil
|
|
doAssert not cpt.methods.recorderFn.isNil
|
|
doAssert not cpt.methods.getFlagsFn.isNil
|
|
doAssert not cpt.methods.forgetFn.isNil
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Public debugging helpers
|
|
# ------------------------------------------------------------------------------
|
|
|
|
proc validate*(dsc: ValidateSubDesc) =
|
|
dsc.validateSubDescRef
|
|
|
|
proc validate*(db: CoreDbRef) =
|
|
doAssert not db.isNil
|
|
doAssert db.dbType != CoreDbType(0)
|
|
db.defCtx.validate
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# End
|
|
# ------------------------------------------------------------------------------
|