Skip to content

Veil 0.14.0

Choose a tag to compare

@iamalwaysuncomfortable iamalwaysuncomfortable released this 23 Oct 17:03
· 33 commits to main since this release
f4f5aa7

Veil 0.14.0

Minor release for all ten Veil, Shield Swap, and Bridge packages, published
under npm's latest tag.

npm install @provablehq/veil-core@latest @provablehq/veil-aleo-sdk@latest

Changes

  • Add record inventory management to @provablehq/veil-core: inspect private
    records, join or split them, plan a target count and distribution, execute
    the dependent steps, and reconcile saved transactions. RecordAsset needs
    only a program; record-name and amount-field overrides cover compatible
    custom assets. Native credits, ARC20, and ARC22 records are supported.
  • Reserve execution inputs and checkpoint proved transactions for recovery.
    Record management stays off until the client sets
    recordManagement.enabled: true; attaching recordActions() alone does not
    enable it. Core exposes an injectable RecordInventoryStore and an
    in-memory implementation.
  • Prefer batch join helpers for more than two records: up to 16 inputs for
    credits or dedicated stablecoin helpers and 15 for dynamic ARC helpers.
    Explicit tokenJoin routers remain supported; tokenJoin: false selects
    native pairwise joins.
  • Support private fees on managed local-account writes in
    @provablehq/veil-aleo-sdk. Selection prefers an eligible supplied fee
    record, otherwise reserves sufficient unreserved credits alongside the
    execution inputs, through local, delegated, and devnode proving.
  • Add Shield Swap inventory wrappers that resolve underlying token programs.
    Automatic local swap record selection retries once on pre-proving
    reservation conflicts with swap terms fixed. RecordReservationConflictError
    is exported for input acquisition failures.
  • Add shield-swap inventory inspect, plan, rebalance, run, and
    status to @provablehq/shield-swap-cli, with count ranges, budgets,
    cooldowns, dry-run defaults, and a SQLite recovery journal exported from
    @provablehq/shield-swap-cli/storage. These commands require Node 22.13+.
    CLI status shows per-entry rebroadcast attempts and errors.
  • Correct the BAT, USDG, and ZEC warp-route owners in
    @provablehq/aleo-bridge-sdk after ownership rotation, restoring all five
    outbound routes from Aleo to Ethereum and Solana.
  • Document compliance proof requirements and defaults across the Shield Swap
    and Bridge SDKs.

Record management

Private token balances need consolidation for larger spends and separate
records for concurrent trades. Record management plans and executes that
work through the existing account, record-provider, and proving interfaces.

Reservations protect clients sharing the same account, chain scope, and
store. Unmanaged wallets and raw submissions bypass them. SQLite coordinates
reservations across processes; the bundled blinded-identity store does not
coordinate identity counters across processes, so concurrent trading must
coordinate those identities separately or stay in one process with a shared
store object.

Concurrent swaps are independent transactions. Each needs a sufficiently
large available input record and enforces its own output floor; automatic
selection does not join records during a swap. Some trades may succeed while
others fail, so each successful output must be claimed.

A missing transaction or failed broadcast does not establish rejection.
Uncertain spends retain reservations and block maintenance until reconciled.
Recovery rebroadcasts the same proof and transaction id and does not
force-unlock entries or undo completed chain operations.

Wallet RPC writes require public fees or FeeMaster and cannot enforce a
pre-broadcast fee ceiling. Nonempty wallet rebalance plans reject such
ceilings before scanning; no-op plans remain valid.

Guides: record management
· concurrent swaps example
· inventory CLI configuration and recovery.

Validation

The root suite passed 2,649 tests with 314 gated tests skipped across 227
test files. All ten packages build and typecheck, and the reference dApp
typechecks. Packed peer ranges for veil-aleo-devnode, veil-aleo-sdk, and
veil-aleo-wallet-adapter resolve to >=0.14.0 <1.0.0.

Funded testnet runs on the feature branch covered six concurrent
USDCx-to-ETH swaps with return swaps and all twelve claims, plus native joins,
restoring splits, fee-ceiling rejection before broadcast, cancellation after
submission, and journal recovery.

Source: feature PR #172,
fix PR #193,
docs PR #194.