·
10 commits
to mainnet
since this release
Mainnet Release Changes b4b599cb → 9ff7cdea)
Testnet Release Changes b4b599cb → 030ee49)
Features
- Off-chain SNARK Proof Verification (#1263) — New snarkVerify and snarkVerifyBatch WASM functions plus TypeScript wrappers (verifyProof, verifyBatchProof) enable verifying Varuna V2 proofs without requiring programs to be deployed on-chain.
Includes a new Proof WASM type with string/bytes serialization, VerifyingKey.verify() and VerifyingKey.verifyBatch() convenience methods, automatic Aleo-type-to-field conversion for inputs, and updated React/Node/extension templates with
working examples. - Multi-Party Computation (MPC) Support (#1217) — New computeExternalSigningInputs function computes the inputs needed for multi-party Request::sign computations. Includes buildExecutionRequestFromExternallySignedData for constructing
authorizations from externally signed data, support for building proving requests from execution requests, and dynamic_record as a signing input type. - Value Type Export (#1258) — The Value type is now exported through the WASM layer to TypeScript with serialization methods (fromString, toString, toBytesLe, fromBytesLe), type introspection (isPlaintext, isRecord, isFuture, valueType), field
conversion (toFields, toFieldsRaw, toBitsLe), and variant extraction (toPlaintext, toRecordPlaintext, fromPlaintext, fromRecordPlaintext). - Dynamic Dispatch Support — WASM support for dynamic dispatch variant types (DynamicRecord, DynamicFuture, RecordWithDynamicID, ExternalRecordWithDynamicID) with dot-delimited type strings matching snarkVM serialization. Includes
DynamicRecord re-export from snarkVM with JS/TS tests for all variant types. - Dynamic dispatch target auto-resolution in inputs (#1237) — New utility function for converting program and function names to field elements, used for dynamic dispatch target resolution.
- Consensus V14 Deployment Handling (#1230) — Deployments now handle Consensus V14 correctly, including record verifying key inclusion for V14+ and proper devnode deployment construction per consensus version.
- Import Resolution for Dynamic Dispatch (#1264) — resolve_imports now walks all keys in the provided imports object, not just the top-level program's statically declared imports. This enables dynamic dispatch targets to be included without
being declared via import statements. Includes validation for key/ID mismatches, explicit errors for missing static dependencies, and a top_level_program parameter to prevent edition conflicts.
Bug Fixes
- JWT Refresh URL (#1256, #1252) — Fixed RecordScanner and AleoNetworkClient JWT refresh to derive the URL from the user-configured host origin instead of hardcoding api.provable.com or appending to the scanner path. Self-hosted and staging
environments now work correctly.
Interface Changes
- KeyLocator Restructured (#1240) — Replaced the opaque locator: string in the keystore interface with a structured discriminated union (ProvingKeyLocator, VerifyingKeyLocator, TranslationKeyLocator) including program, function name, edition,
amendment, and network fields. Adds input validation, validateNonNegative for numeric fields, and narrows getProvingKey/getVerifyingKey to accept only the correct locator type. Breaking change to the KeyStore interface.
Dependency Updates
- webpack 5.103.0 → 5.104.1
- flatted 3.3.3 → 3.4.2
- rustls-webpki 0.103.9 → 0.103.10
- next 15.5.10 → 15.5.14