nimbus-eth1/nimbus/db/ledger/base/base_config.nim

49 lines
1.5 KiB
Nim
Raw Normal View History

# Nimbus
# 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
../../core_db/base/base_config
# Configuration section
const
EnableApiTracking = false
## When enabled, API functions are logged. Tracking is enabled by setting
## the `trackApi` flag to `true`. This setting is typically inherited from
## the `CoreDb` descriptor flag `trackLedgerApi` (which is only available
## if the flag `CoreDbEnableApiTracking` is set `true`.
EnableApiProfiling = false
## Enable API functions profiling. This setting is only effective if the
## flag `CoreDbEnableApiJumpTable` is set `true`.
# Exportable constants (leave alone this section)
const
LedgerEnableApiTracking* = EnableApiTracking and CoreDbEnableApiTracking
LedgerEnableApiProfiling* = EnableApiProfiling and CoreDbEnableApiJumpTable
# Support warning about extra compile time options. For production, non of
# the above features should be enabled.
import strutils
const ledgerBaseConfigExtras* = block:
var s: seq[string]
when LedgerEnableApiTracking:
s.add "logging"
when LedgerEnableApiProfiling:
s.add "profiling"
if s.len == 0:
""
else:
"Ledger(" & s.join(", ") & ")"
# End