ABI: principalCapacityV1

Source module: apps/dclutch-web/lib/generated/principalCapacityV1.ts, whose own header reads:

@generated by scripts/generate-principal-capacity.mjs; do not edit.
Regenerate with: npm run abi:principal-capacity

Source: crates/dclutch-source-contract/src/generated_principal_capacity_v1.rs,
itself emitted by formal/dclutch-semantics/EmitSourcePrincipalCapacityV1Rust.lean.

Numeric constants (widths, offsets, counts, tags)

namevalue
CHAIN_STATE_DEFAULT_KAPPA_NUMERATOR_V11
MANIPULATION_FLOOR_V1_BYTES160
MANIPULATION_FLOOR_V1_SCHEMA_VERSION1
MANIPULATION_FLOOR_V1_MAGIC_OFFSET0
MANIPULATION_FLOOR_V1_VERSION_OFFSET8
MANIPULATION_FLOOR_V1_BASIS_OFFSET10
MANIPULATION_FLOOR_V1_RESERVED_OFFSET11
MANIPULATION_FLOOR_V1_RESERVED_BYTES5
MANIPULATION_FLOOR_V1_SOURCE_SPEC_OFFSET16
MANIPULATION_FLOOR_V1_ADAPTER_CONFIG_OFFSET48
MANIPULATION_FLOOR_V1_COLLATERAL_UNIT_OFFSET80
MANIPULATION_FLOOR_V1_DERIVATION_RELEASE_OFFSET112
MANIPULATION_FLOOR_V1_FLOOR_ATOMS_OFFSET144
MANIPULATION_FLOOR_V1_TAIL_RESERVED_OFFSET152
MANIPULATION_FLOOR_V1_TAIL_RESERVED_BYTES8
MANIPULATION_FLOOR_V1_CURVE_DERIVED_TAG1
MANIPULATION_FLOOR_V1_OBSERVED_DEPTH_TAG2
SOURCE_CAPACITY_PRINCIPAL_NUMERATOR_OFFSET_V188

Unrendered exports (verbatim)

The renderer did not recognize these statement shapes, so they are shown verbatim rather than dropped.

export const CHAIN_STATE_DEFAULT_KAPPA_DENOMINATOR_V1 = 4 as const;

/** The venue floor the default kappa is scaled against, in lamports. */
export const BONDING_CURVE_GRADUATION_FLOOR_LAMPORTS_V1 = 18618074000n as const;

/**
 * The magic a `ManipulationFloorV1` record announces itself with.
 *
 * Emitted alongside the offsets rather than left out of them. A browser
 * that has the layout but not the magic can read a floor record and cannot
 * RECOGNIZE one -- it would be indexing into whatever bytes it was handed,
 * which for a value that bounds founding principal is the difference between
 * a check and a decoration.
 */
export const MANIPULATION_FLOOR_V1_MAGIC = 'DCLTMFL1';

/** The schema release this record is published under, as lowercase hex. */
export const MANIPULATION_FLOOR_SCHEMA_RELEASE_ID_V1 = '9c1dc900e6b6bf2c7ef2febebe2c0aa08529af8c44c4fd1d22abb765b1da1600';
export const MANIPULATION_FLOOR_SCHEMA_RELEASE_PREIMAGE_V1 = 'dclutch/schema/source-manipulation-floor-v1';

/** The bonding-curve buyout/exit derivation, the only one released today. */
export const BONDING_CURVE_FLOOR_DERIVATION_ID_V1 = '0c2e4a32ad014352ec6ff0e72d6a7af1eefb01997edf56fb8308dbf19bcf80bd';
export const BONDING_CURVE_FLOOR_DERIVATION_PREIMAGE_V1 = 'dclutch/source-manipulation-floor-derivation/bonding-curve-buyout-exit/v1';

/** `ManipulationFloorV1` layout, for a decoder that reads a real floor record. */
export const SOURCE_CAPACITY_PRINCIPAL_DENOMINATOR_OFFSET_V1 = 92 as const;

/**
 * The Lean-emitted founding-admission corpus, carried across verbatim.
 *
 * `lib/founding/principalCapacity.test.ts` runs the browser predicate over
 * every row and requires the same verdict, which makes the port differential
 * against the model rather than against a second reading of the Rust.
 */
export const PRINCIPAL_ADMISSION_CASES_V1 = Object.freeze([
  Object.freeze({ numerator: 1, denominator: 4, floorAtoms: 18618074000n, principalAtoms: 4654518500n, admitted: true }),
  Object.freeze({ numerator: 1, denominator: 4, floorAtoms: 18618074000n, principalAtoms: 4654518501n, admitted: false }),
  Object.freeze({ numerator: 1, denominator: 1, floorAtoms: 1000n, principalAtoms: 1000n, admitted: true }),
  Object.freeze({ numerator: 1, denominator: 1, floorAtoms: 1000n, principalAtoms: 1001n, admitted: false }),
  Object.freeze({ numerator: 3, denominator: 2, floorAtoms: 1000n, principalAtoms: 1500n, admitted: true }),
  Object.freeze({ numerator: 3, denominator: 2, floorAtoms: 1000n, principalAtoms: 1501n, admitted: false }),
  Object.freeze({ numerator: 0, denominator: 1, floorAtoms: 18618074000n, principalAtoms: 1n, admitted: false }),
  Object.freeze({ numerator: 1, denominator: 4, floorAtoms: 0n, principalAtoms: 1n, admitted: false }),
  Object.freeze({ numerator: 0, denominator: 1, floorAtoms: 0n, principalAtoms: 1n, admitted: false }),
  Object.freeze({ numerator: 1, denominator: 4, floorAtoms: 18618074000n, principalAtoms: 0n, admitted: false }),
  Object.freeze({ numerator: 0, denominator: 0, floorAtoms: 18618074000n, principalAtoms: 1n, admitted: false }),
  Object.freeze({ numerator: 1, denominator: 0, floorAtoms: 18618074000n, principalAtoms: 1n, admitted: false }),
  Object.freeze({ numerator: 1, denominator: 3, floorAtoms: 10n, principalAtoms: 3n, admitted: true }),
  Object.freeze({ numerator: 1, denominator: 3, floorAtoms: 10n, principalAtoms: 4n, admitted: false }),
  Object.freeze({ numerator: 4294967295, denominator: 1, floorAtoms: 18446744073709551615n, principalAtoms: 18446744073709551615n, admitted: true }),
  Object.freeze({ numerator: 4294967295, denominator: 1, floorAtoms: 18446744073709551615n, principalAtoms: 340282366920938463463374607431768211455n, admitted: false }),
  Object.freeze({ numerator: 1, denominator: 4294967295, floorAtoms: 18446744073709551615n, principalAtoms: 340282366920938463463374607431768211455n, admitted: false }),
] as const);