Jordan Hrycaj f08178c592
Separate constructor helpers for core db and ledger (#2480)
* Extract `CoreDb` constructor helpers from `base.nim` into separate module

why:
  This makes it easier to avoid circular imports.

* Extract `Ledger` constructor helpers from `base.nim` into separate module

why:
  Move `accounts_ledger.nim` file to sub-folder `backend`. That way the
  layout resembles that of the `core_db`.
2024-07-12 19:32:31 +00:00
..
2024-07-03 15:50:27 +00:00
2024-07-03 15:50:27 +00:00

Core database

Layout of CoreDb descriptor objects

Objects dependence:

    CoreDbRef                           -- Base descriptor
     | | |
     | | +--- CoreDbCtxRef              -- Context descriptor
     | |       | | | |
     | |       | | | +--- CoreDbKvtRef  -- Key-value table
     | |       | | |
     | |       | | +----- CoreDbMptRef  -- Generic MPT
     | |       | |
     | |       | +------- CoreDbAccRef  -- Accounts database
     | |       |
	 | |       +--------- CoreDbTxRef   -- Transaction handle
     | |
     | +----- CoreDbCtxRef
     |         : : : :
     |
     +------- CoreDbCtxRef
               : : : :