chore(deps): update Aztec packages to v5.0.0 stable - #59
Merged
Conversation
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>
|
🚀 Web wallet deployed! Preview URL: https://demo-wallet-acnc4d3jb-thunkars-projects.vercel.app |
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>
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
Aztec v5.0.0 is out. This bumps every
@aztec/*dependency from5.0.0-rc.2to the stable5.0.0release across all four workspaces (shared,web,extension,app) and migrates the breaking API changes between the RC and the stable release.API changes migrated
pxe.getContractInstance()now returnsContractInstancePreimageWithAddress, which exposesoriginalContractClassIdinstead ofcurrentContractClassId(the current class id is now chain-tracked state, not part of the preimage). UpdatedDecodingCache,tx-callstack-decoder.ts, andcall-authorization-formatter.ts.Wallet.registerContractsignature is now(instance: ContractInstancePreimage, artifact?, secretKeyOrKeys?: Fr | MasterSecretKeys) => Promise<void>. Updated theExternalWalletoverride and rewroteRegisterContractOperationto:registerContractClass()+registerContract(instance)),registerAccount(it now takesAccountPrivacyKeys, not a rawFr),computeContractAddressFromInstance,pxe.updateContractpath (upgrades are chain-tracked now).Verification
typecheck(shared/web/app)tsctestlinttsc -b && vite build)Full
wxt build(extension) and Electronpackage/make(app) were not run — they need native BB binaries — but both are type-clean via theirtscsteps.🤖 Generated with Claude Code