Priority
High — must be addressed in current sprint
User story / Problem statement
Currently, fulfill_epoch couples epoch settlement to nav_per_share() read from the oracle feed client, assuming a single direct unit share price model. However, different RWA vaults adopt different pricing calculations: some receive direct unit share price attestations from off-chain fund accounting, while others attest total off-chain deployed value and require deriving net assets from on-chain balances and liabilities. Hardcoding a single calculation into the vault core restricts adopters and ties the state machine to a specific fund accounting approach.
Expected outcome
Extract pricing calculation into a flexible abstraction or trait (e.g., leveraging or reviving a dedicated pricing module/trait), enabling vaults to support both direct unit NAV attestation and derived net-asset formulas without modifying core epoch settlement logic.
Acceptance criteria
Technical notes
Re-evaluates the role of the pricing crate or introduces a pricing trait. This separates valuation methodology from the async epoch state machine.
Refs: ARCHITECTURE §4.2 · invariants: I16, I17
Priority
High — must be addressed in current sprint
User story / Problem statement
Currently,
fulfill_epochcouples epoch settlement tonav_per_share()read from the oracle feed client, assuming a single direct unit share price model. However, different RWA vaults adopt different pricing calculations: some receive direct unit share price attestations from off-chain fund accounting, while others attest total off-chain deployed value and require deriving net assets from on-chain balances and liabilities. Hardcoding a single calculation into the vault core restricts adopters and ties the state machine to a specific fund accounting approach.Expected outcome
Extract pricing calculation into a flexible abstraction or trait (e.g., leveraging or reviving a dedicated
pricingmodule/trait), enabling vaults to support both direct unit NAV attestation and derived net-asset formulas without modifying core epoch settlement logic.Acceptance criteria
(attested_assets + balance - liabilities) / supplyvia the abstraction.async-vaultepoch lifecycle interacts only through the pricing abstraction.Technical notes
Re-evaluates the role of the
pricingcrate or introduces a pricing trait. This separates valuation methodology from the async epoch state machine.Refs: ARCHITECTURE §4.2 · invariants: I16, I17