chore(next): move to aztec 6.0.0-rc.1 and target the v6 testnet - #65
Merged
Merged
Conversation
- Schnorr signing keys are Grumpkin scalars (Fq); the account-creation UI
was generating raw random 32-byte keys, which frequently exceed the Fq
modulus and made Fq.fromBuffer throw ("greater or equal to field
modulus"). Generate a valid Fq for schnorr/schnorr_initializerless;
ECDSA keeps raw 32-byte buffers.
- initStubClasses registered the stub contract classes with PXE on every
wallet/session bootstrap, producing repeated "Added contract class" work
on the shared PXE. Guard registration with a getContractArtifact check so
each class is registered at most once per PXE.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The dev-mode system-wide manifest check hardcoded Google Chrome's dir (/etc/opt/chrome/native-messaging-hosts), so on Chromium/Brave (e.g. Arch/CachyOS, which default to Chromium) the browser never found the host and never spawned it. Check all Chromium-family dirs and print a one-shot install command covering Chrome, Chromium and Brave; document the per-browser paths in the README. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Align the live progress bar and the phase-breakdown timeline with the reference palette in aztec-kit/packages/embedded-wallet: - Simulation: #ff9800 -> #ce93d8 (reference purple) - Sync (#90caf9), Witgen (#ffb74d), Proving (#f48fb1), Other (#bdbdbd), Sending (#2196f3), Mining (#4caf50) already matched. - Validation moves to the freed #ff9800 so it stays distinct from Simulation in the breakdown bar (the reference has no Validation phase). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update to Aztec v5 (5.0.0-rc.1)
… can load them
Since SQLite3MultipleCiphers 2.3.5 (aztec-packages#24293, in rc.2) the
sqlite3mc loader resolves sqlite3.wasm through Module['locateFile'] with a
dynamic path the bundler can't rewrite; production builds request unhashed
assets/sqlite3.wasm relative to the worker chunk and 404 ('unsupported
MIME type' follow-up). Dev is unaffected. Emit the wasm and the OPFS
async-proxy script under their original names at build time. Same fix as
aztec-kit's sqliteRuntimeAssetsPlugin.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
fix(web): emit sqlite3mc runtime assets unhashed so production builds…
Bump all @aztec/* packages from 5.0.0-rc.2 to the stable 5.0.0 release across every workspace (shared, web, extension, app) and migrate the breaking API changes between the RC and the stable release: - PXE now stores/returns contract instance *preimages* (ContractInstancePreimageWithAddress): they expose originalContractClassId instead of currentContractClassId, which is now chain-tracked state. Update DecodingCache, the tx callstack decoder and the call-authorization formatter accordingly. - Wallet.registerContract is now (instance: ContractInstancePreimage, artifact?, secretKeyOrKeys?: Fr | MasterSecretKeys) => Promise<void>. Update the ExternalWallet override and rewrite RegisterContractOperation to register the contract class and instance independently, derive privacy keys before registerAccount, compute the address from the preimage, and drop the removed pxe.updateContract path. Verified: typecheck (shared/web/app + extension tsc), tests (31 pass), lint (0 errors) and the web production build all pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
v5's pxe.getContractInstance returns only the immutable address preimage (originalContractClassId), so decoding an upgraded contract's calls against that class id would pick a stale artifact (or none, if only the new class's artifact is registered), producing wrong or missing function/contract names. Resolve the effective (current) contract class id from chain state via node.getContract().currentContractClassId, falling back to the preimage's originalContractClassId when the contract isn't published on-chain (local registrations, where original and current are necessarily equal). The lookup is memoized per address in DecodingCache, so it costs at most one node call per address per session. All six decoder sites now go through the new getContractArtifactForAddress helper. resolveContractName is intentionally left on originalContractClassId: it names a preimage at registration time (not yet on chain), where original == current. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(deps): update Aztec packages to v5.0.0 stable
The v5 Wallet interface makes registerContract return void, and the SDK's batch output schema validates each registerContract result as z.void().optional(). The batch handler was forwarding the operation's internal return value — the contract instance, which we keep as the "already registered" early-return sentinel — as the wire result, so an app batching registerContract calls rejected the response with "expected void" (invalid_type) zod errors, one per batched item. Emit undefined as the batch wire result for registerContract. The standalone registerContract path already returns void, and registerContract is the only batchable method whose wallet-interface return type is void. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
fix(batch): emit void for registerContract results over the wire
Bump all @aztec/* packages from the 5.0.0 stable release to tonight's nightly (5.0.0-nightly.20260715) to pick up the latest fixes, across all workspaces. No source changes were required — the v5 migration on this branch is drop-in compatible with the nightly (typecheck, tests, extension compile and web build all pass). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Surface the Aztec SDK version the wallet is built against in a footer at the bottom of the expanded menu drawer, so it's easy to tell which SDK build a running wallet is using (handy when testing nightlies). The version is read from the workspace's pinned @aztec/aztec.js dependency at build time and injected via a Vite `define` (__AZTEC_SDK_VERSION__) in both the web and Electron-renderer configs — a single source of truth that tracks whatever version is installed. shared/src/ui/utils/version.ts reads the define and falls back to "unknown" where it isn't applied (e.g. tests). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update to 5.0.0-nightly.20260715 + show Aztec SDK version in UI
Bump all @aztec/* packages from 5.0.0-nightly.20260715 to the official 5.0.1 release across every workspace. 5.0.1 is structurally identical to that nightly, so no source changes were needed — the version-display footer picks up "5.0.1" automatically from the pinned dependency at build time. Verified: typecheck (shared/web/app), extension tsc, tests (31 pass) and the web build all pass; the built bundle shows 5.0.1 with no stale nightly refs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
chore(deps): update Aztec packages to v5.0.1
# Conflicts: # app/package.json # extension/package.json # extension/yarn.lock # shared/package.json # web/package.json # yarn.lock
…staging-public v6 ships under new npm scopes, so this is more than a version bump: - @aztec/* -> @aztec-labs/*; foundation packages (bb.js, noir-*, l1-artifacts) -> @aztec-foundation/*. The vendored viem fork keeps its npm:@aztec/viem alias. - BaseWallet.scopesFrom takes (from, additionalScopes, sendMessagesAs) so the tag sender is kept in scope. - FunctionAbi.returnTypes is deprecated in favour of a single returnType (multiple returns are one tuple): decodeFromAbi takes a single type, and argument lists decode with decodeEachFromAbi. Read return types through getFunctionReturnType. - The testnet network entry is replaced by staging-public (https://staging-public.rpc.aztec-labs.com, Sepolia L1) until an official v6 testnet exists. Its gateway requires an API key, read at build time from VITE_STAGING_PUBLIC_API_KEY and sent as x-aztec-api-key by the new shared createNodeClient(network), which both the Electron worker and the web wallet use. - Release builds get the key from the STAGING_PUBLIC_API_KEY secret. - update.js tracks v6 nightlies under @aztec-labs and sends the key when fetching node info. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…network The official v6 testnet is up behind the rpc2 AWS API gateway, so the staging-public stand-in goes away and `testnet` comes back, pointing at https://testnet-v6.rpc2.aztec-labs.com. That gateway reads the key from x-api-key (a missing or wrong key both come back 403 Forbidden). API keys are no longer wired per network by hand: each network's key is read at build time from VITE_<ID>_API_KEY (network id in upper snake case, e.g. VITE_TESTNET_API_KEY). In CI, every <ID>_API_KEY repo secret is exported under that name before the web deploys and the Electron release build, via .github/actions/export-network-api-keys (inlined in deploy-web.yml, where a local action would run the PR head's copy under pull_request_target). A new gated network only needs its secret. update.js uses the same naming. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ci.yml now passes secrets to build-artifacts and the export step runs for dev builds too, so PR/next artifacts can reach gated networks like testnet. Fork PRs get no secrets and still build keyless. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
🚀 Web wallet deployed! Preview URL: https://demo-wallet-lw7dzntdr-thunkars-projects.vercel.app |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Brings
nextlevel withmain(v5.0.1 plus the stable fixes), then moves it to Aztec v6.0.0-rc.1 on the v6 testnet. Changes mirror aztec-kit'snext.Changes
mainintonext. Only version pins and lockfiles conflicted. They were resolved tomain, so the merge result equalsmain.@aztec/*→@aztec-labs/*.bb.js,noir-*andl1-artifacts→@aztec-foundation/*.@aztec/viemis unchanged. All pins are6.0.0-rc.1.BaseWallet.scopesFrom(from, additionalScopes, sendMessagesAs): the tag sender is now kept in scope.returnType; multiple return values are one tuple.decodeFromAbitakes one type, argument lists usedecodeEachFromAbi, and return types are read withgetFunctionReturnType.testnetnow points athttps://testnet-v6.rpc2.aztec-labs.com(Sepolia L1). The node sits behind the rpc2 AWS API gateway, which reads the key fromx-api-key. Its CORS allows that header.VITE_<ID>_API_KEY, where<ID>is the network id in upper snake case (for exampleVITE_TESTNET_API_KEY).createNodeClient(network)sends the key. The Electron worker and the web wallet both use it.<ID>_API_KEYrepo secret is exported asVITE_<ID>_API_KEY. This happens in the web deploy (deploy-web.yml), the release web deploy, and the Electron builds (CI dev builds viasecrets: inheritinci.yml, plus the release build)..github/actions/export-network-api-keys. It is inlined indeploy-web.ymlbecause underpull_request_targeta local action would run the PR head's copy with every secret.scripts/update.js. Tracks v6 nightlies under@aztec-labsand sends each network's key when fetching node info.Before merging / deploying
TESTNET_API_KEYrepo secret.Testing
electron-forge packageboth succeed, and the key is injected into the web bundle and the Electron main, renderer and worker bundles.x-api-keyfrom browser origins.🤖 Generated with Claude Code