Repository navigation
Releases
v0.16.2
Veil 0.16.2
Patch release for all ten Veil, Shield Swap, and Bridge packages, published
under npm's latest tag. The functional change is in
@provablehq/aleo-bridge-sdk; the other packages move in lockstep.
npm install @provablehq/aleo-bridge-sdk@latestChanges
- Add public ALEO ↔ BSC transfers through Verulink. The default registry
declares both routes, pinned to the reviewed upstream deployment: the BSC
contracts, the Aleo programs, the Verulink domains, and the token metadata. quotereads the bridge fee from contract state.executesubmits the
source transaction on either chain.completeretrieves the attestor
signatures, verifies quorum and membership against the current attestor
set, checks destination consumption, and claims on the destination chain.
Screening that redirects funds to holding is reported separately from
successful delivery.- Prepared Aleo transactions are preserved in the checkpoint for recovery.
An approval-only EVM checkpoint is ambiguous and is never resubmitted
automatically. - Registry checkpoints written by earlier releases still resume.
- Runnable examples cover a checkpointed Verulink round trip and
bidirectional USDG transfers between Aleo and Ethereum or Solana. The
bridge README, the examples README, and the site docs describe the new
routes and the signer and fee requirements.
Compatibility
No type, option, or export is removed. Peer ranges for veil-aleo-devnode,
veil-aleo-sdk, and veil-aleo-wallet-adapter move to >=0.16.2 <1.0.0.
Validation
The feature PR completed a mainnet round trip on 2026-11-04 (20 ALEO to BSC
and back, with delivery verified on both chains) and passed live read-only
quotes in both directions. The root suite, the bridge build and typecheck,
the bridge examples typecheck, and the reference dApp typecheck pass on the
release branch. Packed peer ranges for veil-aleo-devnode, veil-aleo-sdk,
and veil-aleo-wallet-adapter resolve to >=0.16.2 <1.0.0.
Source: feature PR #217 and
docs PR #218.
Veil 0.16.1
Veil 0.16.1
Patch release for all ten Veil, Shield Swap, and Bridge packages, published
under npm's latest tag. The functional change is in
@provablehq/veil-core and @provablehq/shield-swap-cli; the other packages
move in lockstep.
npm install @provablehq/veil-core@latest @provablehq/shield-swap-cli@latestChanges
- Add a
floorinventory distribution. A floor treats the target record
count as a minimum: the planner counts only records at or above
minRecordAmount, leaves surplus records and sub-minimum dust alone, splits
the largest record for any shortfall, and never joins. When no set of splits
can reach the floor it throwsInsufficient available inventory for target without joinsbefore planning rather than consolidating. - Make
floorthe default distribution. AnInventoryTargetwithout
distributionused to meanpreserve, an exact count reached by joining
surplus or splitting; it now meansfloor.autoJoinasks forpreserve
explicitly, since consolidation is an exact single-record layout. - The Shield Swap CLI inventory policy accepts
"distribution": "floor"and
defaults to it.INVENTORY.md, the record inventory guide, and the type
docs describe all three modes.
Compatibility
The default change is observable. A plan for { records: 1 } with no
distribution now plans nothing when any record already meets the minimum,
where 0.16.0 joined every record into one. Callers that consolidate through
the planner MUST pass distribution: 'preserve' to keep the exact-count
behaviour. preserve and balanced themselves are unchanged, and no type,
option, or export is removed. Peer ranges for veil-aleo-devnode,
veil-aleo-sdk, and veil-aleo-wallet-adapter move to >=0.16.1 <1.0.0.
Validation
The root suite passed 2,750 tests with 316 gated tests skipped across 232
test files. All ten packages build, and the reference dApp typechecks. Packed
peer ranges for veil-aleo-devnode, veil-aleo-sdk, and
veil-aleo-wallet-adapter resolve to >=0.16.1 <1.0.0. The feature PR
exercised the floor planner live on testnet through the Shield Swap MCP and
the SDK directly.
Source: feature PR #215.
Veil 0.16.0
Veil 0.16.0
Minor release for all ten Veil, Shield Swap, and Bridge packages, published
under npm's latest tag. The functional change is in
@provablehq/aleo-bridge-sdk; the other packages move in lockstep.
npm install @provablehq/veil-core@latest @provablehq/aleo-bridge-sdk@latestChanges
- Refuse to bridge over a paused route. Every active route in the bridge
registry now declares the on-chain pause flags it depends on: thepause,
paused, orpause__mapping of each Aleo program in the route, the
OpenZeppelinpaused()view of the xReserve contract and CCTP
MessageTransmitter, and the pausable hook and ISM the Ethereum Hyperlane
Mailbox runs on dispatch to and delivery from Aleo. Mapping names were
verified against deployed bytecode on mainnet and testnet. - Add
getRouteStatus, also bound asclient.getRouteStatusand exposed as
thebridge_get_route_statusagent and MCP tool. It reads every declared
flag in parallel through the configured public clients and reports each as
active,paused,unknown(the read failed), orskipped(no client is
configured for that chain). - Report pause state with every quote.
quoteresults carrypausedand
routeStatus, so an application can still show the price while disabling
submission. - Refuse paused routes before any wallet interaction.
execute,resume,
andcompletethrowBridgeRoutePausedError, which extendsBridgeError,
names the paused program or contract in its message, and carries the full
route status. A flag that cannot be read never blocks, since the chain
enforces the pause either way; passskipRouteStatus: trueto skip the
reads.
Compatibility
All additions are optional. The new route field stays out of the registry
compatibility fingerprint, so plans and checkpoints saved on 0.15.0 remain
valid. Existing call sites compile and behave as before, except that a route
whose flag reads as paused is now refused up front instead of failing on
chain after proving. Peer ranges for veil-aleo-devnode, veil-aleo-sdk,
and veil-aleo-wallet-adapter move to >=0.16.0 <1.0.0.
shield and unshield are asset-keyed privacy actions with no route to look
up and are not guarded; their token programs still enforce pause__ on chain.
Validation
The root suite passed 2,746 tests with 316 gated tests skipped across 232
test files. All ten packages build, and the reference dApp typechecks. Packed
peer ranges for veil-aleo-devnode, veil-aleo-sdk, and
veil-aleo-wallet-adapter resolve to >=0.16.0 <1.0.0. A read-only live
test read every declared mainnet flag with no unknown outcome and confirmed
execute refuses a paused Aleo-to-Ethereum route before asking for a wallet.
Source: feature PR #210.
Veil 0.15.0
Veil 0.15.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@latestChanges
- Support Shield-compatible xReserve private USDCx mints for local Aleo
accounts in@provablehq/aleo-bridge-sdk. The SDK reserves a persistent
counter, derives the secret scalar and BHP256 address commitment from the
account's view key, checkpoints only the public commitment, and reads the
scalar back from its identity store when it submitsprivate_mint. A quoted
plan carries its reserved commitment underplan.circle, so executing the
quoted plan deposits against the quoted identity instead of reserving a
second one. - Support wallet-prepared private mints. Quote, execute, and resume accept
walletPreparedDeposit; completion accepts the matching
privateMintNonceInputrequest while the wallet retains the scalar. The SDK
validates the reviewed wrapper, canonical hook, attested commitment,
recipient, and nonce-source exclusivity before submission. - Group every Circle-specific option under a
circlekey on the bridge
client config and on quote, execute, resume, complete, and recover: the
identity store, reserved commitment, wallet preparation, nonce input, and
legacy secret nonce for xReserve, and the manual-mint and
approval-replacement overrides for CCTP. The flatprivateMintSecretNonce
andcctpcall options are deprecated and still accepted; the same field
supplied in both forms with different values is rejected. - Ship
fileXReservePrivateMintIdentityStorefrom
@provablehq/aleo-bridge-sdk/node. It replaces files atomically with0600
permissions, backs up the identity file with its.countercompanion, and
locks reservations across processes that share a path. Stale-lock recovery
reclaims only a confirmed dead owner's file; foreign or unrecognized owners
fail closed. - Validate store-managed identities before funds move: a quoted identity
that is absent from the store, or that names a different recipient, is
rejected before source approval or deposit submission. Standalone actions
require an explicit shared identity store rather than deriving into a
temporary one. - Move
@provablehq/veil-aleo-sdkand@provablehq/veil-aleo-devnodeto the
snarkVM 4.12.0 toolchain:@provablehq/sdk0.13.0 and
@provablehq/aleo-devnode0.4.0. The default devnode consensus-heights list
now matches snarkVM's built-inTEST_CONSENSUS_VERSION_HEIGHTS, and a
ready node runs the latest consensus version before the first caller
transaction. A caller who setsCONSENSUS_VERSION_HEIGHTSexplicitly MUST
pass twenty-two heights with the first at 0 and the rest strictly
increasing. - Move
@provablehq/veil-aleo-react-hooksand
@provablehq/veil-aleo-wallet-adapterto the current aleo-dev-toolkit
adapter releases:@provablehq/aleo-wallet-adapter-core1.2.0,-react
1.4.0,-shield1.4.0, and-leo,-puzzle,-fox1.1.3.
Private USDCx mints
A private xReserve mint commits the deposit to a secret scalar that is needed
again at completion. The bridge client takes an identity store as
circle.privateMintIdentities and supplies it to quote, execute, and
complete. A client built without one derives into an in-memory store, which
does not survive a restart; a durable deployment MUST pass
fileXReservePrivateMintIdentityStore or an implementation of
XReservePrivateMintIdentityStore backed by its own storage.
New derivations follow shield-core's mainnet/testnet domain separation.
Identities stored by earlier builds continue to complete with their
originally stored scalars. Transfers quoted on 0.14.0 with the implicit
0scalar nonce still complete; pass circle: { privateMintSecretNonce } to
keep producing that commitment.
Guide: private USDCx mints
· wallet-prepared mint example.
Validation
The root suite passed 2,724 tests with 314 gated tests skipped across 230
test files. All ten packages build, and the reference dApp typechecks. Packed
peer ranges for veil-aleo-devnode, veil-aleo-sdk, and
veil-aleo-wallet-adapter resolve to >=0.15.0 <1.0.0.
Source: feature PR #166,
toolchain PR #197,
fix PR #208.
Veil 0.14.0
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@latestChanges
- 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.RecordAssetneeds
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; attachingrecordActions()alone does not
enable it. Core exposes an injectableRecordInventoryStoreand 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.
ExplicittokenJoinrouters remain supported;tokenJoin: falseselects
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
statusto@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-sdkafter 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.
Veil 0.13.0
Veil 0.13.0 adds automatic compliance proofs for the Shield Swap and Bridge SDKs. Local accounts generate and cache proofs against the current freezelist root; supported wallets derive them through algorithm requests. Existing supplied proofs and custom providers remain supported.
The Bridge SDK reads compliance state through its public client. Shield Swap fee-tier discovery now works without API authentication.
All ten packages are published on npm under latest.
Compliance
Proof generation is enabled by default in the Shield Swap and Bridge SDKs. With a local SDK client or a compatible wallet connected with the required algorithm grants, callers need no manual proof generation, provider, or cache. Omit proofs (Shield Swap) or merkleProof (Bridge) to use the default.
Swaps and liquidity actions on Shield swap are done compliantly in zero knowledge via Merkle Exclusion proofs that prove in zero knowledge that private addresses are not on a known freezelist. Callers construct these Merkle exclusion proofs locally and send them as private inputs into Aleo's zkSnarks. These proofs are verified locally showing that frozen addresses are absent from the freezelist without publicly revealing those addresses or the Merkle paths. These compliance checks preserve the privacy of the addresses making swaps or managing liquidity.
| SDK | Public function | When Merkle exclusion proofs are required |
|---|---|---|
| Shield Swap | swap(), swapMultiHop() |
Wrapped input-token sender; intermediate hops add no proof inputs |
| Shield Swap | claimSwapOutput() |
Shield Swap signer, plus wrapped output and refund receivers when applicable |
| Shield Swap | mint() |
Shield Swap signer, position recipient, withdrawal address, and any wrapped token senders |
| Shield Swap | increaseLiquidity() |
Wrapped token senders |
| Shield Swap | collect() |
Shield Swap position owner, withdrawal address, and any wrapped token receivers |
| Shield Swap | rebalancePosition() |
Shield Swap position owner and withdrawal address, funded wrapped token senders, and wrapped token receivers |
| Bridge | bridge.unshield() / exported unshield() |
ARC-22 private-to-public transfer; one signer bundle |
| Bridge | bridge.execute() |
Outbound Aleo USDCx xReserve burn in private mode (the default); one signer bundle |
| Bridge | xreserve.aleoToEvm.execute() |
Standalone execution of the same private burn; one signer bundle |
Proof configuration guides: Shield Swap · Bridge.
Veil 0.13.0-rc.0
Veil 0.13.0-rc.0
Release candidate for all ten Veil, Shield Swap, and Bridge packages. Install
with the npm rc tag; the stable latest tag remains on 0.12.1.
npm install @provablehq/veil-core@rc @provablehq/veil-aleo-sdk@rcChanges
- Generate compliance Merkle proofs automatically for Shield Swap actions and
Bridge ARC-22 unshielding and private xReserve burns. Local SDK accounts check
the current chain root and cache verified witnesses while that root is unchanged. - Support wallet-derived freezelist requests and constrained algorithm grants.
Preserve supplied proof strings, wallet requests, and existing provider callbacks;
also accept action-sized tuples and annotated compliance proofs. - Read Bridge compliance state through its required public client. Wallet adapters
need onlyexecuteTransaction; account and proving metadata remain optional. - Preserve opaque collect/rebalance calls with supplied proof tuples or custom
providers withoutwithdrawalAddress. Automatic generation and providers marked
requiresSubjectreport an error when the actual address cannot be recovered. - Allow public fee-tier discovery, matching the deployed Shield Swap API.
Validation and known limitations
The regression suite passed 2,424 tests, with 267 gated tests skipped. All 32
type tests passed. All ten packages build and install together; installed Bridge
and first-swap examples compile. Live testnet swaps and liquidity passed all 12
tests. The mainnet Arc private burn passed with a supplied proof string.
The mainnet Ethereum burn accepted automatically generated proofs and delivered
0.996501 USDC. Its delivery assertion failed because the existing registry assumes
a 2-USDC fee, while the provider charged 1.0035 USDC. This fee-quote discrepancy
remains in the candidate. The mainnet freezelist was empty during this validation.
Automatic local generation requires the SDK generator. Wallet derivation requires
algorithm support and matching grants; custom deployments require explicit
freezelist mappings. Supplied proofs and providers remain responsible for freshness.
A combined install including Bridge and optional Privy helpers may encounter their
existing Solana peer-version conflict. The package checks explicitly select
@solana/kit@^8.0.0.
Source: feature PR #188 and
release PR #189.
Veil 0.12.1
Veil 0.12.1 publishes all ten packages in the fixed group at the same version: @provablehq/veil-core, @provablehq/veil-aleo-sdk, @provablehq/veil-aleo-devnode, @provablehq/veil-aleo-wallet-adapter, @provablehq/veil-aleo-react-hooks, @provablehq/veil-leo, @provablehq/veil-codegen, @provablehq/shield-swap-sdk, @provablehq/shield-swap-cli, and @provablehq/aleo-bridge-sdk.
This is a patch release. The only functional change is in the Shield Swap SDK and CLI; every other package is republished so the fixed group stays on one version.
Shield Swap: application API actions and referral CLI
@provablehq/shield-swap-sdk now exposes every non-admin operation of the deployed Shield Swap application API as a typed SDK action and as an agent and MCP tool. This covers personal referral codes and referral attribution, market discovery and analytics, compliance, price history, and wallet-session management. Admin-only operations stay excluded. The generated API types are refreshed from the deployed OpenAPI specification, and an endpoint coverage test guards the catalog against drift. (#178)
Session handling gains cookie-aware refresh and explicit logout. Browser cookies and retained Node refresh cookies are both supported, concurrent refreshes are deduplicated, and credentials are cleared when the session ends. Adopting an explicit JWT clears the previous account's refresh state and signer, and a stale in-flight refresh cannot overwrite a replacement session. Existing action names remain available; getPool24hStats carries the corrected pool-statistics response type.
@provablehq/shield-swap-cli adds a redeem command:
shield-swap redeem --code <code> --execute
shield-swap redeem --generate --executeBoth forms preview by default and require --execute to act. --code redeems a referral code and saves the account's access status on success. --generate returns the saved account's existing shareable code or requests a new one. --network and --json select the network and emit machine-readable output.
Upgrading
- Update every
@provablehq/veil-*,@provablehq/shield-swap-*, and@provablehq/aleo-bridge-sdkdependency to0.12.1together. The fixed group shares one version and the peer floors onveil-coreandveil-aleo-devnodenow start at 0.12.1. - No code changes are required. Callers of
getPool24hStatsmay see a narrowed response type when they upgrade; it now matches what the API returns.
Per-package details are in each package's CHANGELOG.md.
Veil 0.12.0
Veil 0.12.0 publishes all ten packages in the fixed group at the same version: @provablehq/veil-core, @provablehq/veil-aleo-sdk, @provablehq/veil-aleo-devnode, @provablehq/veil-aleo-wallet-adapter, @provablehq/veil-aleo-react-hooks, @provablehq/veil-leo, @provablehq/veil-codegen, @provablehq/shield-swap-sdk, @provablehq/shield-swap-cli, and @provablehq/aleo-bridge-sdk.
Toolchain: snarkVM 4.11.0
Every package moves to the snarkVM 4.11.0 line: @provablehq/sdk 0.12.0, @provablehq/aleo-devnode 0.3.0, and Leo 4.4.5.
snarkVM 4.11.0 adds ConsensusVersion::V21 (Varuna V3) and a V22 placeholder pinned to u32::MAX. The SDK now builds every deployment and execution against the latest Varuna version, and a node still on an earlier consensus version rejects them. The default devnode consensus-heights list has twenty-two entries and activates every live consensus version at genesis, so a devnode runs V21 from its first block.
A caller who passes an explicit CONSENSUS_VERSION_HEIGHTS MUST pass twenty-two heights or the WASM transaction builder panics, and MUST activate V21 by the first block that carries a transaction.
Peer ranges on @provablehq/veil-core and @provablehq/veil-aleo-devnode now start at 0.12.0.
Wallet adapters: aleo-wallet-adaptor-* → aleo-wallet-adapter-*
Upstream deprecated every @provablehq/aleo-wallet-adaptor-* release and renamed the line to @provablehq/aleo-wallet-adapter-*. @provablehq/veil-aleo-wallet-adapter and @provablehq/veil-aleo-react-hooks now depend on the renamed packages (core 1.1.1, react 1.3.0, shield 1.2.1, leo/puzzle/fox 1.1.1). The renamed react adapter accepts React 19 as a peer.
Exported symbol names are unchanged. A consumer MUST replace every aleo-wallet-adaptor- import and dependency with aleo-wallet-adapter- in the same change, because a provider from one package name cannot supply context to hooks from the other. The optional peer on @provablehq/veil-aleo-wallet-adapter is now @provablehq/aleo-wallet-adapter-core.
Bridge SDK
@provablehq/aleo-bridge-sdk is published as a preview and versions in lockstep with the Veil packages. Its API is subject to breaking changes between minor releases.
- Arc mainnet and CCTP V2 routes. Add Arc mainnet USDC-to-USDCx bridging through the quote, execute, wait, resume, and complete lifecycle, and native USDC CCTP V2 routes from Ethereum, Base, and Arbitrum to Arc with Fast/Standard fees, forwarding, and checkpoint recovery. Exhaustive protocol and result switches must handle
cctpandevm-cctp. New CCTP burns use Circle's version-0 forwarding frame; recovery of already-submitted version-1 burns is preserved. Saved pre-Arc plans and checkpoints for unchanged reviewed routes stay valid through pinned route fingerprints; unknown versions and altered deployments are rejected. CCTP recovery is hardened with bounded destination-event discovery, stable terminal receipts, and verified approval replacement with retained audit hashes. xReserve destination domains are now explicit, with legacy Sepolia checkpoint recovery preserved. Fee-ceiling defaults are unchanged. (#148) - Hyperlane Warp Routes. Add active BAT, USDG, and ZEC Warp Routes, including classic SPL Token and Token-2022 collateral transfers between Solana and Aleo, reviewed Aleo withdrawal metadata, and ARC-22 privacy wrappers. Existing native Solana metadata and builder parameter types are preserved; named SPL and combined transfer metadata types are added. (#169)
- Privy and Dynamic server wallets. Add optional Privy and Dynamic server-wallet helpers for EVM and Solana bridge clients, exposed as the
@provablehq/aleo-bridge-sdk/privyand@provablehq/aleo-bridge-sdk/dynamicentry points, with remote signature validation, preserved Solana bridge signatures, and documented configuration examples underexamples/remote-wallets. The@privy-io/nodeand@dynamic-labs-wallet/node-*packages are optional peers. (#170)
Upgrading
- Update every
@provablehq/veil-*,@provablehq/shield-swap-*, and@provablehq/aleo-bridge-sdkdependency to0.12.0together. The fixed group shares one version and the peer floors onveil-coreandveil-aleo-devnodenow start at 0.12.0. - If the project depends on
@provablehq/sdkor@provablehq/aleo-devnodedirectly, move them to 0.12.0 and 0.3.0. - If the project imports from
@provablehq/aleo-wallet-adaptor-*, switch every import and dependency to@provablehq/aleo-wallet-adapter-*in one change. - If the project runs a devnode with a custom
CONSENSUS_VERSION_HEIGHTS, extend the list to twenty-two entries with V21 active by the first transacting block.
Per-package details are in each package's CHANGELOG.md.