chik-consensus 0.25.0

Utility functions and types used by the Chik blockchain full node
Documentation
use klvmr::MEMPOOL_MODE as KLVM_MEMPOOL_MODE;

// flags controlling the condition parsing
// These flags are combined in the same fields as klvm_rs flags, controlling the
// KLVM execution. To avoid clashes, KLVM flags are in the lower two bytes and
// condition parsing and validation flags are in the top two bytes.

// unknown condition codes are disallowed
pub const NO_UNKNOWN_CONDS: u32 = 0x2_0000;

// With this flag, conditions will require the exact number of arguments
// currently supported for those conditions. This is meant for mempool-mode
pub const STRICT_ARGS_COUNT: u32 = 0x8_0000;

// By default, run_block_generator validates the signatures of any AGG_SIG
// condition. By passing in this flag, the signatures are not validated (saving
// time). This is useful when we've already validated a block but we need to
// re-run it to compute additions and removals.
pub const DONT_VALIDATE_SIGNATURE: u32 = 0x1_0000;

// This flag controls whether or not we add a flat cost to conditions when
// processing them in in chik_rs. It is set to activate after hard fork 2.
pub const COST_CONDITIONS: u32 = 0x80_0000;

pub const MEMPOOL_MODE: u32 = KLVM_MEMPOOL_MODE | NO_UNKNOWN_CONDS | STRICT_ARGS_COUNT;