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)
| name | value |
|---|---|
CHAIN_STATE_DEFAULT_KAPPA_NUMERATOR_V1 | 1 |
MANIPULATION_FLOOR_V1_BYTES | 160 |
MANIPULATION_FLOOR_V1_SCHEMA_VERSION | 1 |
MANIPULATION_FLOOR_V1_MAGIC_OFFSET | 0 |
MANIPULATION_FLOOR_V1_VERSION_OFFSET | 8 |
MANIPULATION_FLOOR_V1_BASIS_OFFSET | 10 |
MANIPULATION_FLOOR_V1_RESERVED_OFFSET | 11 |
MANIPULATION_FLOOR_V1_RESERVED_BYTES | 5 |
MANIPULATION_FLOOR_V1_SOURCE_SPEC_OFFSET | 16 |
MANIPULATION_FLOOR_V1_ADAPTER_CONFIG_OFFSET | 48 |
MANIPULATION_FLOOR_V1_COLLATERAL_UNIT_OFFSET | 80 |
MANIPULATION_FLOOR_V1_DERIVATION_RELEASE_OFFSET | 112 |
MANIPULATION_FLOOR_V1_FLOOR_ATOMS_OFFSET | 144 |
MANIPULATION_FLOOR_V1_TAIL_RESERVED_OFFSET | 152 |
MANIPULATION_FLOOR_V1_TAIL_RESERVED_BYTES | 8 |
MANIPULATION_FLOOR_V1_CURVE_DERIVED_TAG | 1 |
MANIPULATION_FLOOR_V1_OBSERVED_DEPTH_TAG | 2 |
SOURCE_CAPACITY_PRINCIPAL_NUMERATOR_OFFSET_V1 | 88 |
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);