Update to Aztec v5 (5.0.0-rc.1) - #56
Merged
Merged
Conversation
Bumps all @aztec/* packages to 5.0.0-rc.1 and adapts the custom
DemoWallet/InternalWallet/ExternalWallet hierarchy to the v5 SDK,
using yarn-project/wallets EmbeddedWallet as the reference.
SDK / API changes:
- AccountManager.create now takes an options bag { salt, immutablesHash }
- SimulationOverrides ctor now takes { contracts }
- getGasLimits moved to @aztec/wallet-sdk/base-wallet and now takes
(gasUsed, maxTxGasLimits, padding); derive maxTxGasLimits from node txsLimits
- removed estimateGas fee option (gas is estimated via simulation)
- stub account imports moved: @aztec/accounts/{schnorr,ecdsa}/stub
- buildAccountOverrides now overrides currentContractClassId against
pre-registered stub classes; added initStubClasses() called at wallet
bootstrap (web + app)
- AztecNode.getBlockHeader() -> getBlockData("latest").header
- zod v4: bump to ^4, migrate z.function({input,output}) and two-arg
z.record; use getSchemaReturnType/getSchemaParameters helpers
- extension: BackgroundConnectionHandler config now requires a logger
Features:
- Initializerless Schnorr accounts (schnorr_initializerless): committed
into the address via immutables hash, no deployment tx; materialized
locally by simulating the constructor. Marked deployed at creation so
the UI skips the deploy action.
- Account creation UI now offers a type chooser (initializerless / schnorr
/ ecdsa r1 / ecdsa k1) instead of hardcoding ecdsasecp256r1.
Networks:
- Removed nothing new (only localhost + testnet remained); testnet RPC is
now https://canonical.testnet.rpc.aztec-labs.com and its rollup version
auto-detects from the node.
Note: v5 changed the Schnorr signature scheme and public-key representation,
so pre-existing testnet Schnorr accounts are not controllable by this code
and must be recreated. ECDSA accounts are unaffected.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
🚀 Web wallet deployed! Preview URL: https://demo-wallet-h01yggfdj-thunkars-projects.vercel.app |
- 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>
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.
Summary
Migrates demo-wallet from Aztec v4.3.0-rc.1 → v5.0.0-rc.1, using
aztec-packages/yarn-project/walletsEmbeddedWalletas the reference for how the wallet adapts to v5. The customDemoWallet/InternalWallet/ExternalWallethierarchy (which mirrorsEmbeddedWallet) was adapted by hand.The current tip of
mainis preserved as thev4tag.SDK / API changes
AccountManager.createnow takes an options bag{ salt, immutablesHash }SimulationOverridesctor now takes{ contracts }getGasLimitsmoved to@aztec/wallet-sdk/base-wallet, new signature(gasUsed, maxTxGasLimits, padding);maxTxGasLimitsderived from nodetxsLimitsestimateGasfee option (gas estimated from simulation)@aztec/accounts/{schnorr,ecdsa}/stubbuildAccountOverridesnow overridescurrentContractClassIdagainst pre-registered stub classes; addedinitStubClasses()invoked at wallet bootstrap (web + app)AztecNode.getBlockHeader()→getBlockData("latest").header^4, migratedz.function({ input, output }), two-argz.record, andgetSchemaReturnType/getSchemaParametershelpersBackgroundConnectionHandlerconfig now requires aloggerFeatures
schnorr_initializerless): committed into the address via an immutables hash, no deployment tx required — usable immediately (state materialized by simulating the constructor). Marked deployed at creation so the UI skips the deploy action.ecdsasecp256r1.Networks
localhost+testnetremain (already the case). Testnet RPC is nowhttps://canonical.testnet.rpc.aztec-labs.comand the rollup version auto-detects from the node.v5 changed the Schnorr signature scheme and public-key representation, so pre-existing testnet Schnorr accounts cannot be controlled by this code and must be recreated. ECDSA accounts are unaffected.
Verification
turbo typecheck✓ (shared, web, app) and extensiontsc✓turbo build(web) ✓, extensionwxt build✓turbo lint✓ (0 errors; remaining warnings pre-existing)🤖 Generated with Claude Code