@aztec/cli-wallet 0.0.1-commit.b64cb54f6 → 0.0.1-commit.b6e433891

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,4 +3,4 @@ import type { TxHash } from '@aztec/aztec.js/tx';
3
3
  import type { LogFn } from '@aztec/foundation/log';
4
4
  import type { CLIWallet } from '../utils/wallet.js';
5
5
  export declare function checkTx(wallet: CLIWallet, aztecNode: AztecNode, txHash: TxHash, statusOnly: boolean, log: LogFn): Promise<import("@aztec/aztec.js/tx").TxStatus | undefined>;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tfdHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NoZWNrX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBSW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixPQUFPLENBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLE9BQU8sRUFDbkIsR0FBRyxFQUFFLEtBQUssOERBUVgifQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tfdHguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbWRzL2NoZWNrX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXRELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBUW5ELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBELHdCQUFzQixPQUFPLENBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQ2pCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsVUFBVSxFQUFFLE9BQU8sRUFDbkIsR0FBRyxFQUFFLEtBQUssOERBUVgifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"check_tx.d.ts","sourceRoot":"","sources":["../../src/cmds/check_tx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,GAAG,EAAE,KAAK,8DAQX"}
1
+ {"version":3,"file":"check_tx.d.ts","sourceRoot":"","sources":["../../src/cmds/check_tx.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAQnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,OAAO,CAC3B,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,OAAO,EACnB,GAAG,EAAE,KAAK,8DAQX"}
@@ -1,5 +1,5 @@
1
1
  import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
2
- import { siloNullifier } from '@aztec/stdlib/hash';
2
+ import { computeSiloedPrivateInitializationNullifier, computeSiloedPublicInitializationNullifier, siloNullifier } from '@aztec/stdlib/hash';
3
3
  export async function checkTx(wallet, aztecNode, txHash, statusOnly, log) {
4
4
  if (statusOnly) {
5
5
  const receipt = await aztecNode.getTxReceipt(txHash);
@@ -112,17 +112,22 @@ function toFriendlyAddress(address, artifactMap) {
112
112
  }
113
113
  async function getKnownNullifiers(wallet, artifactMap) {
114
114
  const knownContracts = await wallet.getContracts();
115
- const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
116
- const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
115
+ const [contractResults, classResults] = await Promise.all([
116
+ Promise.all(knownContracts.map((contract)=>getContractNullifiers(wallet, contract))),
117
+ Promise.all(Object.values(artifactMap).map((artifact)=>getClassNullifier(artifact)))
118
+ ]);
117
119
  const initNullifiers = {};
118
120
  const deployNullifiers = {};
119
121
  const classNullifiers = {};
120
- for (const contract of knownContracts){
121
- initNullifiers[(await siloNullifier(contract, contract.toField())).toString()] = contract;
122
- deployNullifiers[(await siloNullifier(deployerAddress, contract.toField())).toString()] = contract;
122
+ for (const { contract, deployNullifier, privateInitNullifier, publicInitNullifier } of contractResults){
123
+ deployNullifiers[deployNullifier.toString()] = contract;
124
+ if (privateInitNullifier) {
125
+ initNullifiers[privateInitNullifier.toString()] = contract;
126
+ }
127
+ initNullifiers[publicInitNullifier.toString()] = contract;
123
128
  }
124
- for (const artifact of Object.values(artifactMap)){
125
- classNullifiers[(await siloNullifier(classRegistryAddress, artifact.classId)).toString()] = `${artifact.name}Class<${artifact.classId}>`;
129
+ for (const { nullifier, label } of classResults){
130
+ classNullifiers[nullifier.toString()] = label;
126
131
  }
127
132
  return {
128
133
  initNullifiers,
@@ -130,6 +135,27 @@ async function getKnownNullifiers(wallet, artifactMap) {
130
135
  classNullifiers
131
136
  };
132
137
  }
138
+ async function getContractNullifiers(wallet, contract) {
139
+ const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
140
+ const deployNullifier = await siloNullifier(deployerAddress, contract.toField());
141
+ const metadata = await wallet.getContractMetadata(contract);
142
+ const privateInitNullifier = metadata.instance ? await computeSiloedPrivateInitializationNullifier(contract, metadata.instance.initializationHash) : undefined;
143
+ const publicInitNullifier = await computeSiloedPublicInitializationNullifier(contract);
144
+ return {
145
+ contract,
146
+ deployNullifier,
147
+ privateInitNullifier,
148
+ publicInitNullifier
149
+ };
150
+ }
151
+ async function getClassNullifier(artifact) {
152
+ const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
153
+ const nullifier = await siloNullifier(classRegistryAddress, artifact.classId);
154
+ return {
155
+ nullifier,
156
+ label: `${artifact.name}Class<${artifact.classId}>`
157
+ };
158
+ }
133
159
  async function getKnownArtifacts(wallet) {
134
160
  const knownContractAddresses = await wallet.getContracts();
135
161
  const knownContracts = (await Promise.all(knownContractAddresses.map((contractAddress)=>wallet.getContractMetadata(contractAddress)))).map((contractMetadata)=>contractMetadata.instance);
@@ -4,14 +4,14 @@ import type { AztecNode } from '@aztec/aztec.js/node';
4
4
  import { AccountManager, type Aliased, type SimulateOptions } from '@aztec/aztec.js/wallet';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
6
  import type { LogFn } from '@aztec/foundation/log';
7
- import type { AccessScopes, NotesFilter } from '@aztec/pxe/client/lazy';
7
+ import type { NotesFilter } from '@aztec/pxe/client/lazy';
8
8
  import type { PXEConfig } from '@aztec/pxe/config';
9
9
  import type { PXE } from '@aztec/pxe/server';
10
10
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
11
11
  import { NoteDao } from '@aztec/stdlib/note';
12
12
  import type { TxProvingResult, TxSimulationResult } from '@aztec/stdlib/tx';
13
13
  import { ExecutionPayload } from '@aztec/stdlib/tx';
14
- import { BaseWallet, type FeeOptions } from '@aztec/wallet-sdk/base-wallet';
14
+ import { BaseWallet, type SimulateViaEntrypointOptions } from '@aztec/wallet-sdk/base-wallet';
15
15
  import type { WalletDB } from '../storage/wallet_db.js';
16
16
  import type { AccountType } from './constants.js';
17
17
  export declare class CLIWallet extends BaseWallet {
@@ -32,9 +32,9 @@ export declare class CLIWallet extends BaseWallet {
32
32
  * Uses a stub account for kernelless simulation, bypassing real account authorization.
33
33
  * Falls through to the standard entrypoint path for SignerlessAccount (ZERO address).
34
34
  */
35
- protected simulateViaEntrypoint(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions, scopes: AccessScopes, skipTxValidation?: boolean, skipFeeEnforcement?: boolean): Promise<TxSimulationResult>;
35
+ protected simulateViaEntrypoint(executionPayload: ExecutionPayload, opts: SimulateViaEntrypointOptions): Promise<TxSimulationResult>;
36
36
  getContracts(): Promise<AztecAddress[]>;
37
37
  getNotes(filter: NotesFilter): Promise<NoteDao[]>;
38
38
  getContractArtifact(id: Fr): Promise<import("@aztec/stdlib/abi").ContractArtifact | undefined>;
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBMkMsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFHM0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sS0FBSyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFNUUsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJbEQscUJBQWEsU0FBVSxTQUFRLFVBQVU7SUFNckMsT0FBTyxDQUFDLE9BQU87SUFDZixPQUFPLENBQUMsRUFBRSxDQUFDO0lBTmIsT0FBTyxDQUFDLFlBQVksQ0FBOEI7SUFFbEQsWUFDRSxHQUFHLEVBQUUsR0FBRyxFQUNSLElBQUksRUFBRSxTQUFTLEVBQ1AsT0FBTyxFQUFFLEtBQUssRUFDZCxFQUFFLENBQUMsc0JBQVUsRUFJdEI7SUFFRCxPQUFhLE1BQU0sQ0FDakIsSUFBSSxFQUFFLFNBQVMsRUFDZixHQUFHLEVBQUUsS0FBSyxFQUNWLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFDYixpQkFBaUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FDckMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUlwQjtJQUVjLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FHN0Q7WUFFYSxvQ0FBb0M7SUF1QjVDLG1CQUFtQixDQUN2QixJQUFJLEVBQUUsWUFBWSxFQUNsQixPQUFPLEVBQUUsRUFBRSxFQUNYLFlBQVksRUFBRSxxQkFBcUIsR0FDbEMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUcxQjtJQUVjLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxZQUFZLG9CQWV6RDtZQUVhLGFBQWE7SUFXckIsdUJBQXVCLENBQzNCLE9BQU8sQ0FBQyxFQUFFLFlBQVksRUFDdEIsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUNkLElBQUksR0FBRSxXQUF1QixFQUM3QixJQUFJLENBQUMsRUFBRSxFQUFFLEVBQ1QsU0FBUyxDQUFDLEVBQUUsTUFBTSxHQUNqQixPQUFPLENBQUMsY0FBYyxDQUFDLENBbUR6QjtZQVFhLHFCQUFxQjtJQXdCcEIsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxlQUFlLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBU2hIO0lBRUQ7OztPQUdHO0lBQ0gsVUFBeUIscUJBQXFCLENBQzVDLGdCQUFnQixFQUFFLGdCQUFnQixFQUNsQyxJQUFJLEVBQUUsWUFBWSxFQUNsQixVQUFVLEVBQUUsVUFBVSxFQUN0QixNQUFNLEVBQUUsWUFBWSxFQUNwQixnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sRUFDMUIsa0JBQWtCLENBQUMsRUFBRSxPQUFPLEdBQzNCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQXVDN0I7SUFJRCxZQUFZLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBRXRDO0lBSUQsUUFBUSxDQUFDLE1BQU0sRUFBRSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBRWhEO0lBSUQsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUscUVBRXpCO0NBQ0YifQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBMkMsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsS0FBSyxxQkFBcUIsRUFHM0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLEtBQUssT0FBTyxFQUFFLEtBQUssZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzFELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxLQUFLLEVBQXVCLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBMEIsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssNEJBQTRCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU5RixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlsRCxxQkFBYSxTQUFVLFNBQVEsVUFBVTtJQU1yQyxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFOYixPQUFPLENBQUMsWUFBWSxDQUE4QjtJQUVsRCxZQUNFLEdBQUcsRUFBRSxHQUFHLEVBQ1IsSUFBSSxFQUFFLFNBQVMsRUFDUCxPQUFPLEVBQUUsS0FBSyxFQUNkLEVBQUUsQ0FBQyxzQkFBVSxFQUl0QjtJQUVELE9BQWEsTUFBTSxDQUNqQixJQUFJLEVBQUUsU0FBUyxFQUNmLEdBQUcsRUFBRSxLQUFLLEVBQ1YsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUNiLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUNyQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBSXBCO0lBRWMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUc3RDtZQUVhLG9DQUFvQztJQXVCNUMsbUJBQW1CLENBQ3ZCLElBQUksRUFBRSxZQUFZLEVBQ2xCLE9BQU8sRUFBRSxFQUFFLEVBQ1gsWUFBWSxFQUFFLHFCQUFxQixHQUNsQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBRzFCO0lBRWMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFlBQVksb0JBZXpEO1lBRWEsYUFBYTtJQVdyQix1QkFBdUIsQ0FDM0IsT0FBTyxDQUFDLEVBQUUsWUFBWSxFQUN0QixTQUFTLENBQUMsRUFBRSxFQUFFLEVBQ2QsSUFBSSxHQUFFLFdBQXVCLEVBQzdCLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFDVCxTQUFTLENBQUMsRUFBRSxNQUFNLEdBQ2pCLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FtRHpCO1lBUWEscUJBQXFCO0lBd0JwQixVQUFVLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLGVBQWUsR0FBRyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FTaEg7SUFFRDs7O09BR0c7SUFDSCxVQUF5QixxQkFBcUIsQ0FDNUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLElBQUksRUFBRSw0QkFBNEIsR0FDakMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBc0M3QjtJQUlELFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FFdEM7SUFJRCxRQUFRLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FFaEQ7SUFJRCxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxxRUFFekI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/utils/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/utils/wallet.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAA2C,MAAM,yBAAyB,CAAC;AAChG,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE5F,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAuB,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAA0B,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,KAAK,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAIlD,qBAAa,SAAU,SAAQ,UAAU;IAMrC,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,EAAE,CAAC;IANb,OAAO,CAAC,YAAY,CAA8B;IAElD,YACE,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,SAAS,EACP,OAAO,EAAE,KAAK,EACd,EAAE,CAAC,sBAAU,EAItB;IAED,OAAa,MAAM,CACjB,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,KAAK,EACV,EAAE,CAAC,EAAE,QAAQ,EACb,iBAAiB,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GACrC,OAAO,CAAC,SAAS,CAAC,CAIpB;IAEc,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAG7D;YAEa,oCAAoC;IAuB5C,mBAAmB,CACvB,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,EAAE,EACX,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,eAAe,CAAC,CAG1B;IAEc,qBAAqB,CAAC,OAAO,EAAE,YAAY,oBAezD;YAEa,aAAa;IAWrB,uBAAuB,CAC3B,OAAO,CAAC,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,EAAE,EACd,IAAI,GAAE,WAAuB,EAC7B,IAAI,CAAC,EAAE,EAAE,EACT,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,CAAC,CAmDzB;YAQa,qBAAqB;IAwBpB,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAShH;IAED;;;OAGG;IACH,UAAyB,qBAAqB,CAC5C,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,4BAA4B,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAsC7B;IAID,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAEtC;IAID,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAEhD;IAID,mBAAmB,CAAC,EAAE,EAAE,EAAE,qEAEzB;CACF"}
@@ -158,9 +158,23 @@ export class CLIWallet extends BaseWallet {
158
158
  /**
159
159
  * Uses a stub account for kernelless simulation, bypassing real account authorization.
160
160
  * Falls through to the standard entrypoint path for SignerlessAccount (ZERO address).
161
- */ async simulateViaEntrypoint(executionPayload, from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement) {
162
- if (from.equals(AztecAddress.ZERO)) {
163
- return super.simulateViaEntrypoint(executionPayload, from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement);
161
+ */ async simulateViaEntrypoint(executionPayload, opts) {
162
+ const { from, feeOptions, scopes } = opts;
163
+ let overrides;
164
+ let fromAccount;
165
+ if (!from.equals(AztecAddress.ZERO)) {
166
+ const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
167
+ fromAccount = account;
168
+ overrides = {
169
+ contracts: {
170
+ [from.toString()]: {
171
+ instance,
172
+ artifact
173
+ }
174
+ }
175
+ };
176
+ } else {
177
+ fromAccount = await this.getAccountFromAddress(from);
164
178
  }
165
179
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
166
180
  const executionOptions = {
@@ -172,21 +186,13 @@ export class CLIWallet extends BaseWallet {
172
186
  feeExecutionPayload,
173
187
  executionPayload
174
188
  ]) : executionPayload;
175
- const { account: fromAccount, instance, artifact } = await this.getFakeAccountDataFor(from);
176
189
  const chainInfo = await this.getChainInfo();
177
190
  const txRequest = await fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
178
191
  return this.pxe.simulateTx(txRequest, {
179
192
  simulatePublic: true,
180
193
  skipFeeEnforcement: true,
181
194
  skipTxValidation: true,
182
- overrides: {
183
- contracts: {
184
- [from.toString()]: {
185
- instance,
186
- artifact
187
- }
188
- }
189
- },
195
+ overrides,
190
196
  scopes
191
197
  });
192
198
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/cli-wallet",
3
- "version": "0.0.1-commit.b64cb54f6",
3
+ "version": "0.0.1-commit.b6e433891",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/cmds/index.js",
@@ -67,19 +67,19 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/accounts": "0.0.1-commit.b64cb54f6",
71
- "@aztec/aztec.js": "0.0.1-commit.b64cb54f6",
72
- "@aztec/bb.js": "0.0.1-commit.b64cb54f6",
73
- "@aztec/cli": "0.0.1-commit.b64cb54f6",
74
- "@aztec/entrypoints": "0.0.1-commit.b64cb54f6",
75
- "@aztec/ethereum": "0.0.1-commit.b64cb54f6",
76
- "@aztec/foundation": "0.0.1-commit.b64cb54f6",
77
- "@aztec/kv-store": "0.0.1-commit.b64cb54f6",
78
- "@aztec/noir-contracts.js": "0.0.1-commit.b64cb54f6",
79
- "@aztec/noir-noirc_abi": "0.0.1-commit.b64cb54f6",
80
- "@aztec/pxe": "0.0.1-commit.b64cb54f6",
81
- "@aztec/stdlib": "0.0.1-commit.b64cb54f6",
82
- "@aztec/wallet-sdk": "0.0.1-commit.b64cb54f6",
70
+ "@aztec/accounts": "0.0.1-commit.b6e433891",
71
+ "@aztec/aztec.js": "0.0.1-commit.b6e433891",
72
+ "@aztec/bb.js": "0.0.1-commit.b6e433891",
73
+ "@aztec/cli": "0.0.1-commit.b6e433891",
74
+ "@aztec/entrypoints": "0.0.1-commit.b6e433891",
75
+ "@aztec/ethereum": "0.0.1-commit.b6e433891",
76
+ "@aztec/foundation": "0.0.1-commit.b6e433891",
77
+ "@aztec/kv-store": "0.0.1-commit.b6e433891",
78
+ "@aztec/noir-contracts.js": "0.0.1-commit.b6e433891",
79
+ "@aztec/noir-noirc_abi": "0.0.1-commit.b6e433891",
80
+ "@aztec/pxe": "0.0.1-commit.b6e433891",
81
+ "@aztec/stdlib": "0.0.1-commit.b6e433891",
82
+ "@aztec/wallet-sdk": "0.0.1-commit.b6e433891",
83
83
  "commander": "^12.1.0",
84
84
  "inquirer": "^10.1.8",
85
85
  "source-map-support": "^0.5.21",
@@ -5,7 +5,11 @@ import type { AztecNode } from '@aztec/aztec.js/node';
5
5
  import { ProtocolContractAddress } from '@aztec/aztec.js/protocol';
6
6
  import type { TxHash } from '@aztec/aztec.js/tx';
7
7
  import type { LogFn } from '@aztec/foundation/log';
8
- import { siloNullifier } from '@aztec/stdlib/hash';
8
+ import {
9
+ computeSiloedPrivateInitializationNullifier,
10
+ computeSiloedPublicInitializationNullifier,
11
+ siloNullifier,
12
+ } from '@aztec/stdlib/hash';
9
13
  import { NoteDao } from '@aztec/stdlib/note';
10
14
 
11
15
  import type { CLIWallet } from '../utils/wallet.js';
@@ -144,22 +148,49 @@ function toFriendlyAddress(address: AztecAddress, artifactMap: ArtifactMap) {
144
148
 
145
149
  async function getKnownNullifiers(wallet: CLIWallet, artifactMap: ArtifactMap) {
146
150
  const knownContracts = await wallet.getContracts();
147
- const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
148
- const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
151
+
152
+ const [contractResults, classResults] = await Promise.all([
153
+ Promise.all(knownContracts.map(contract => getContractNullifiers(wallet, contract))),
154
+ Promise.all(Object.values(artifactMap).map(artifact => getClassNullifier(artifact))),
155
+ ]);
156
+
149
157
  const initNullifiers: Record<string, AztecAddress> = {};
150
158
  const deployNullifiers: Record<string, AztecAddress> = {};
151
159
  const classNullifiers: Record<string, string> = {};
152
- for (const contract of knownContracts) {
153
- initNullifiers[(await siloNullifier(contract, contract.toField())).toString()] = contract;
154
- deployNullifiers[(await siloNullifier(deployerAddress, contract.toField())).toString()] = contract;
160
+
161
+ for (const { contract, deployNullifier, privateInitNullifier, publicInitNullifier } of contractResults) {
162
+ deployNullifiers[deployNullifier.toString()] = contract;
163
+ if (privateInitNullifier) {
164
+ initNullifiers[privateInitNullifier.toString()] = contract;
165
+ }
166
+ initNullifiers[publicInitNullifier.toString()] = contract;
155
167
  }
156
- for (const artifact of Object.values(artifactMap)) {
157
- classNullifiers[(await siloNullifier(classRegistryAddress, artifact.classId)).toString()] =
158
- `${artifact.name}Class<${artifact.classId}>`;
168
+ for (const { nullifier, label } of classResults) {
169
+ classNullifiers[nullifier.toString()] = label;
159
170
  }
171
+
160
172
  return { initNullifiers, deployNullifiers, classNullifiers };
161
173
  }
162
174
 
175
+ async function getContractNullifiers(wallet: CLIWallet, contract: AztecAddress) {
176
+ const deployerAddress = ProtocolContractAddress.ContractInstanceRegistry;
177
+ const deployNullifier = await siloNullifier(deployerAddress, contract.toField());
178
+
179
+ const metadata = await wallet.getContractMetadata(contract);
180
+ const privateInitNullifier = metadata.instance
181
+ ? await computeSiloedPrivateInitializationNullifier(contract, metadata.instance.initializationHash)
182
+ : undefined;
183
+ const publicInitNullifier = await computeSiloedPublicInitializationNullifier(contract);
184
+
185
+ return { contract, deployNullifier, privateInitNullifier, publicInitNullifier };
186
+ }
187
+
188
+ async function getClassNullifier(artifact: ContractArtifactWithClassId) {
189
+ const classRegistryAddress = ProtocolContractAddress.ContractClassRegistry;
190
+ const nullifier = await siloNullifier(classRegistryAddress, artifact.classId);
191
+ return { nullifier, label: `${artifact.name}Class<${artifact.classId}>` };
192
+ }
193
+
163
194
  type ArtifactMap = Record<string, ContractArtifactWithClassId>;
164
195
  type ContractArtifactWithClassId = ContractArtifact & { classId: Fr };
165
196
 
@@ -13,16 +13,16 @@ import { AccountManager, type Aliased, type SimulateOptions } from '@aztec/aztec
13
13
  import type { DefaultAccountEntrypointOptions } from '@aztec/entrypoints/account';
14
14
  import { Fr } from '@aztec/foundation/curves/bn254';
15
15
  import type { LogFn } from '@aztec/foundation/log';
16
- import type { AccessScopes, NotesFilter } from '@aztec/pxe/client/lazy';
16
+ import type { NotesFilter } from '@aztec/pxe/client/lazy';
17
17
  import type { PXEConfig } from '@aztec/pxe/config';
18
18
  import type { PXE } from '@aztec/pxe/server';
19
19
  import { createPXE, getPXEConfig } from '@aztec/pxe/server';
20
20
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
21
21
  import { deriveSigningKey } from '@aztec/stdlib/keys';
22
22
  import { NoteDao } from '@aztec/stdlib/note';
23
- import type { TxProvingResult, TxSimulationResult } from '@aztec/stdlib/tx';
23
+ import type { SimulationOverrides, TxProvingResult, TxSimulationResult } from '@aztec/stdlib/tx';
24
24
  import { ExecutionPayload, mergeExecutionPayloads } from '@aztec/stdlib/tx';
25
- import { BaseWallet, type FeeOptions } from '@aztec/wallet-sdk/base-wallet';
25
+ import { BaseWallet, type SimulateViaEntrypointOptions } from '@aztec/wallet-sdk/base-wallet';
26
26
 
27
27
  import type { WalletDB } from '../storage/wallet_db.js';
28
28
  import type { AccountType } from './constants.js';
@@ -224,21 +224,19 @@ export class CLIWallet extends BaseWallet {
224
224
  */
225
225
  protected override async simulateViaEntrypoint(
226
226
  executionPayload: ExecutionPayload,
227
- from: AztecAddress,
228
- feeOptions: FeeOptions,
229
- scopes: AccessScopes,
230
- skipTxValidation?: boolean,
231
- skipFeeEnforcement?: boolean,
227
+ opts: SimulateViaEntrypointOptions,
232
228
  ): Promise<TxSimulationResult> {
233
- if (from.equals(AztecAddress.ZERO)) {
234
- return super.simulateViaEntrypoint(
235
- executionPayload,
236
- from,
237
- feeOptions,
238
- scopes,
239
- skipTxValidation,
240
- skipFeeEnforcement,
241
- );
229
+ const { from, feeOptions, scopes } = opts;
230
+ let overrides: SimulationOverrides | undefined;
231
+ let fromAccount: Account;
232
+ if (!from.equals(AztecAddress.ZERO)) {
233
+ const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
234
+ fromAccount = account;
235
+ overrides = {
236
+ contracts: { [from.toString()]: { instance, artifact } },
237
+ };
238
+ } else {
239
+ fromAccount = await this.getAccountFromAddress(from);
242
240
  }
243
241
 
244
242
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
@@ -251,7 +249,6 @@ export class CLIWallet extends BaseWallet {
251
249
  ? mergeExecutionPayloads([feeExecutionPayload, executionPayload])
252
250
  : executionPayload;
253
251
 
254
- const { account: fromAccount, instance, artifact } = await this.getFakeAccountDataFor(from);
255
252
  const chainInfo = await this.getChainInfo();
256
253
  const txRequest = await fromAccount.createTxExecutionRequest(
257
254
  finalExecutionPayload,
@@ -263,9 +260,7 @@ export class CLIWallet extends BaseWallet {
263
260
  simulatePublic: true,
264
261
  skipFeeEnforcement: true,
265
262
  skipTxValidation: true,
266
- overrides: {
267
- contracts: { [from.toString()]: { instance, artifact } },
268
- },
263
+ overrides,
269
264
  scopes,
270
265
  });
271
266
  }