@aztec/wallet-sdk 0.0.1-commit.cd76b27 → 0.0.1-commit.d0fcfb7f

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.
@@ -7,11 +7,11 @@ import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
7
7
  import type { ChainInfo } from '@aztec/entrypoints/interfaces';
8
8
  import { Fr } from '@aztec/foundation/curves/bn254';
9
9
  import type { FieldsOf } from '@aztec/foundation/types';
10
- import type { AccessScopes } from '@aztec/pxe/client/lazy';
10
+ import { type AccessScopes } from '@aztec/pxe/client/lazy';
11
11
  import type { PXE } from '@aztec/pxe/server';
12
12
  import { type ContractArtifact, type EventMetadataDefinition, type FunctionCall } from '@aztec/stdlib/abi';
13
13
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
14
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
14
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
15
  import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
16
16
  import { GasSettings } from '@aztec/stdlib/gas';
17
17
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
@@ -42,6 +42,7 @@ export declare abstract class BaseWallet implements Wallet {
42
42
  protected cancellableTransactions: boolean;
43
43
  protected constructor(pxe: PXE, aztecNode: AztecNode, log?: import("@aztec/foundation/log").Logger);
44
44
  protected scopesFor(from: AztecAddress): AztecAddress[];
45
+ protected scopesFrom(from: AztecAddress, additionalScopes?: AztecAddress[]): AztecAddress[];
45
46
  protected abstract getAccountFromAddress(address: AztecAddress): Promise<Account>;
46
47
  abstract getAccounts(): Promise<Aliased<AztecAddress>[]>;
47
48
  /**
@@ -119,6 +120,11 @@ export declare abstract class BaseWallet implements Wallet {
119
120
  simulateTx(executionPayload: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResult>;
120
121
  profileTx(executionPayload: ExecutionPayload, opts: ProfileOptions): Promise<TxProfileResult>;
121
122
  sendTx<W extends InteractionWaitOptions = undefined>(executionPayload: ExecutionPayload, opts: SendOptions<W>): Promise<SendReturn<W>>;
123
+ /**
124
+ * Resolves a contract address to a human-readable name via PXE, if available.
125
+ * @param address - The contract address to resolve.
126
+ */
127
+ protected getContractName(address: AztecAddress): Promise<string | undefined>;
122
128
  protected contextualizeError(err: Error, ...context: string[]): Error;
123
129
  executeUtility(call: FunctionCall, opts: ExecuteUtilityOptions): Promise<UtilityExecutionResult>;
124
130
  getPrivateEvents<T>(eventDef: EventMetadataDefinition, eventFilter: PrivateEventFilter): Promise<PrivateEvent<T>[]>;
@@ -134,4 +140,4 @@ export declare abstract class BaseWallet implements Wallet {
134
140
  isContractClassPubliclyRegistered: boolean;
135
141
  }>;
136
142
  }
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUFFLEtBQUssc0JBQXNCLEVBQVcsS0FBSyxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELE9BQU8sS0FBSyxFQUNWLE9BQU8sRUFDUCxlQUFlLEVBQ2YsWUFBWSxFQUNaLGFBQWEsRUFDYixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsV0FBVyxFQUNYLGVBQWUsRUFDZixNQUFNLEVBQ04sa0JBQWtCLEVBQ25CLE1BQU0sd0JBQXdCLENBQUM7QUFPaEMsT0FBTyxFQUFFLDhCQUE4QixFQUF3QyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FBSyxF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
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTNCLEtBQUssVUFBVSxFQUVoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQ1YsT0FBTyxFQUNQLGVBQWUsRUFDZixZQUFZLEVBQ1osYUFBYSxFQUNiLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE1BQU0sRUFDTixrQkFBa0IsRUFDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQU9oQyxPQUFPLEVBQUUsOEJBQThCLEVBQXdDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEgsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBb0IsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import { NO_WAIT } from '@aztec/aztec.js/contracts';
1
+ import { NO_WAIT, extractOffchainOutput } from '@aztec/aztec.js/contracts';
2
2
  import { waitForTx } from '@aztec/aztec.js/node';
3
3
  import { GAS_ESTIMATION_DA_GAS_LIMIT, GAS_ESTIMATION_L2_GAS_LIMIT, GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT, GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT } from '@aztec/constants';
4
4
  import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
6
  import { createLogger } from '@aztec/foundation/log';
7
+ import { displayDebugLogs } from '@aztec/pxe/client/lazy';
7
8
  import { decodeFromAbi } from '@aztec/stdlib/abi';
9
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
10
  import { computePartialAddress, getContractClassFromArtifact } from '@aztec/stdlib/contract';
9
11
  import { SimulationError } from '@aztec/stdlib/errors';
10
12
  import { Gas, GasSettings } from '@aztec/stdlib/gas';
@@ -35,6 +37,16 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
35
37
  from
36
38
  ];
37
39
  }
40
+ scopesFrom(from, additionalScopes = []) {
41
+ const allScopes = from.isZero() ? additionalScopes : [
42
+ from,
43
+ ...additionalScopes
44
+ ];
45
+ const scopeSet = new Set(allScopes.map((address)=>address.toString()));
46
+ return [
47
+ ...scopeSet
48
+ ].map(AztecAddress.fromString);
49
+ }
38
50
  /**
39
51
  * Returns the list of aliased contacts associated with the wallet.
40
52
  * This base implementation directly returns PXE's senders, but note that in general contacts are a superset of senders.
@@ -232,8 +244,8 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
232
244
  blockHeader = await this.aztecNode.getBlockHeader();
233
245
  }
234
246
  const [optimizedResults, normalResult] = await Promise.all([
235
- optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, opts.from, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true) : Promise.resolve([]),
236
- remainingCalls.length > 0 ? this.simulateViaEntrypoint(remainingPayload, opts.from, feeOptions, this.scopesFor(opts.from), opts.skipTxValidation, opts.skipFeeEnforcement ?? true) : Promise.resolve(null)
247
+ optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, opts.from, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true, this.getContractName.bind(this)) : Promise.resolve([]),
248
+ remainingCalls.length > 0 ? this.simulateViaEntrypoint(remainingPayload, opts.from, feeOptions, this.scopesFrom(opts.from, opts.additionalScopes), opts.skipTxValidation, opts.skipFeeEnforcement ?? true) : Promise.resolve(null)
237
249
  ]);
238
250
  return buildMergedSimulationResult(optimizedResults, normalResult);
239
251
  }
@@ -243,13 +255,14 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
243
255
  return this.pxe.profileTx(txRequest, {
244
256
  profileMode: opts.profileMode,
245
257
  skipProofGeneration: opts.skipProofGeneration ?? true,
246
- scopes: this.scopesFor(opts.from)
258
+ scopes: this.scopesFrom(opts.from, opts.additionalScopes)
247
259
  });
248
260
  }
249
261
  async sendTx(executionPayload, opts) {
250
262
  const feeOptions = await this.completeFeeOptions(opts.from, executionPayload.feePayer, opts.fee?.gasSettings);
251
263
  const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, feeOptions);
252
- const provenTx = await this.pxe.proveTx(txRequest, this.scopesFor(opts.from));
264
+ const provenTx = await this.pxe.proveTx(txRequest, this.scopesFrom(opts.from, opts.additionalScopes));
265
+ const offchainOutput = extractOffchainOutput(provenTx.getOffchainEffects());
253
266
  const tx = await provenTx.toTx();
254
267
  const txHash = tx.getTxHash();
255
268
  if (await this.aztecNode.getTxEffect(txHash)) {
@@ -262,11 +275,33 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
262
275
  this.log.info(`Sent transaction ${txHash}`);
263
276
  // If wait is NO_WAIT, return txHash immediately
264
277
  if (opts.wait === NO_WAIT) {
265
- return txHash;
278
+ return {
279
+ txHash,
280
+ ...offchainOutput
281
+ };
266
282
  }
267
283
  // Otherwise, wait for the full receipt (default behavior on wait: undefined)
268
284
  const waitOpts = typeof opts.wait === 'object' ? opts.wait : undefined;
269
- return await waitForTx(this.aztecNode, txHash, waitOpts);
285
+ const receipt = await waitForTx(this.aztecNode, txHash, waitOpts);
286
+ // Display debug logs from public execution if present (served in test mode only)
287
+ if (receipt.debugLogs?.length) {
288
+ await displayDebugLogs(receipt.debugLogs, this.getContractName.bind(this));
289
+ }
290
+ return {
291
+ receipt,
292
+ ...offchainOutput
293
+ };
294
+ }
295
+ /**
296
+ * Resolves a contract address to a human-readable name via PXE, if available.
297
+ * @param address - The contract address to resolve.
298
+ */ async getContractName(address) {
299
+ const instance = await this.pxe.getContractInstance(address);
300
+ if (!instance) {
301
+ return undefined;
302
+ }
303
+ const artifact = await this.pxe.getContractArtifact(instance.currentContractClassId);
304
+ return artifact?.name;
270
305
  }
271
306
  contextualizeError(err, ...context) {
272
307
  let contextStr = '';
@@ -1,5 +1,6 @@
1
1
  import type { AztecNode } from '@aztec/aztec.js/node';
2
2
  import type { ChainInfo } from '@aztec/entrypoints/interfaces';
3
+ import type { ContractNameResolver } from '@aztec/pxe/client/lazy';
3
4
  import { type FunctionCall } from '@aztec/stdlib/abi';
4
5
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
6
  import type { GasSettings } from '@aztec/stdlib/gas';
@@ -33,7 +34,7 @@ export declare function extractOptimizablePublicStaticCalls(payload: ExecutionPa
33
34
  * @param skipFeeEnforcement - Whether to skip fee enforcement during simulation.
34
35
  * @returns Array of TxSimulationResult, one per batch.
35
36
  */
36
- export declare function simulateViaNode(node: AztecNode, publicStaticCalls: FunctionCall[], from: AztecAddress, chainInfo: ChainInfo, gasSettings: GasSettings, blockHeader: BlockHeader, skipFeeEnforcement?: boolean): Promise<TxSimulationResult[]>;
37
+ export declare function simulateViaNode(node: AztecNode, publicStaticCalls: FunctionCall[], from: AztecAddress, chainInfo: ChainInfo, gasSettings: GasSettings, blockHeader: BlockHeader, skipFeeEnforcement: boolean | undefined, getContractName: ContractNameResolver): Promise<TxSimulationResult[]>;
37
38
  /**
38
39
  * Merges simulation results from the optimized (public static) and normal paths.
39
40
  * Since optimized calls are always a leading prefix, return values are simply
@@ -45,4 +46,4 @@ export declare function simulateViaNode(node: AztecNode, publicStaticCalls: Func
45
46
  * @returns A single TxSimulationResult with return values in original call order.
46
47
  */
47
48
  export declare function buildMergedSimulationResult(optimizedResults: TxSimulationResult[], normalResult: TxSimulationResult | null): TxSimulationResult;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUsvRCxPQUFPLEVBQUUsS0FBSyxZQUFZLEVBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFRckQsT0FBTyxFQUNMLEtBQUssV0FBVyxFQUNoQixLQUFLLGdCQUFnQixFQU9yQixrQkFBa0IsRUFDbkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQjs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsbUNBQW1DLENBQUMsT0FBTyxFQUFFLGdCQUFnQixHQUFHO0lBQzlFLHVFQUF1RTtJQUN2RSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUNqQywyQkFBMkI7SUFDM0IsY0FBYyxFQUFFLFlBQVksRUFBRSxDQUFDO0NBQ2hDLENBT0E7QUFtR0Q7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsd0JBQXNCLGVBQWUsQ0FDbkMsSUFBSSxFQUFFLFNBQVMsRUFDZixpQkFBaUIsRUFBRSxZQUFZLEVBQUUsRUFDakMsSUFBSSxFQUFFLFlBQVksRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsa0JBQWtCLEdBQUUsT0FBYyxHQUNqQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQXVCL0I7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQ3pDLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLEVBQ3RDLFlBQVksRUFBRSxrQkFBa0IsR0FBRyxJQUFJLEdBQ3RDLGtCQUFrQixDQW9CcEIifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkvRCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR25FLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFyRCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZ0JBQWdCLEVBT3JCLGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixtQ0FBbUMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEdBQUc7SUFDOUUsdUVBQXVFO0lBQ3ZFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ2pDLDJCQUEyQjtJQUMzQixjQUFjLEVBQUUsWUFBWSxFQUFFLENBQUM7Q0FDaEMsQ0FPQTtBQXVHRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBc0IsZUFBZSxDQUNuQyxJQUFJLEVBQUUsU0FBUyxFQUNmLGlCQUFpQixFQUFFLFlBQVksRUFBRSxFQUNqQyxJQUFJLEVBQUUsWUFBWSxFQUNsQixTQUFTLEVBQUUsU0FBUyxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixXQUFXLEVBQUUsV0FBVyxFQUN4QixrQkFBa0IscUJBQWdCLEVBQ2xDLGVBQWUsRUFBRSxvQkFBb0IsR0FDcEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0F3Qi9CO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLDJCQUEyQixDQUN6QyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxFQUN0QyxZQUFZLEVBQUUsa0JBQWtCLEdBQUcsSUFBSSxHQUN0QyxrQkFBa0IsQ0FvQnBCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/base-wallet/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAK/D,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAOrB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;GASG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,gBAAgB,GAAG;IAC9E,uEAAuE;IACvE,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,2BAA2B;IAC3B,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC,CAOA;AAmGD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,YAAY,EAAE,EACjC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,kBAAkB,GAAE,OAAc,GACjC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAuB/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,gBAAgB,EAAE,kBAAkB,EAAE,EACtC,YAAY,EAAE,kBAAkB,GAAG,IAAI,GACtC,kBAAkB,CAoBpB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/base-wallet/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAOrB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;GASG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,gBAAgB,GAAG;IAC9E,uEAAuE;IACvE,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,2BAA2B;IAC3B,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC,CAOA;AAuGD;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,YAAY,EAAE,EACjC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,kBAAkB,qBAAgB,EAClC,eAAe,EAAE,oBAAoB,GACpC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAwB/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,gBAAgB,EAAE,kBAAkB,EAAE,EACtC,YAAY,EAAE,kBAAkB,GAAG,IAAI,GACtC,kBAAkB,CAoBpB"}
@@ -1,6 +1,7 @@
1
1
  import { MAX_ENQUEUED_CALLS_PER_CALL } from '@aztec/constants';
2
2
  import { makeTuple } from '@aztec/foundation/array';
3
3
  import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { displayDebugLogs } from '@aztec/pxe/client/lazy';
4
5
  import { generateSimulatedProvingResult } from '@aztec/pxe/simulator';
5
6
  import { ClaimedLengthArray, CountedPublicCallRequest, PrivateCircuitPublicInputs, PublicCallRequest } from '@aztec/stdlib/kernel';
6
7
  import { ChonkProof } from '@aztec/stdlib/proofs';
@@ -34,7 +35,7 @@ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, T
34
35
  * @param blockHeader - Block header to use as anchor.
35
36
  * @param skipFeeEnforcement - Whether to skip fee enforcement during simulation.
36
37
  * @returns TxSimulationResult with public return values.
37
- */ async function simulateBatchViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement) {
38
+ */ async function simulateBatchViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement, getContractName) {
38
39
  const txContext = new TxContext(chainInfo.chainId, chainInfo.version, gasSettings);
39
40
  const publicFunctionCalldata = [];
40
41
  for (const call of publicStaticCalls){
@@ -77,6 +78,8 @@ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, T
77
78
  if (publicOutput.revertReason) {
78
79
  throw publicOutput.revertReason;
79
80
  }
81
+ // Display debug logs from the public simulation.
82
+ await displayDebugLogs(publicOutput.debugLogs, getContractName);
80
83
  return new TxSimulationResult(privateResult, provingResult.publicInputs, publicOutput, undefined);
81
84
  }
82
85
  /**
@@ -91,14 +94,14 @@ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, T
91
94
  * @param blockHeader - Block header to use as anchor.
92
95
  * @param skipFeeEnforcement - Whether to skip fee enforcement during simulation.
93
96
  * @returns Array of TxSimulationResult, one per batch.
94
- */ export async function simulateViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement = true) {
97
+ */ export async function simulateViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement = true, getContractName) {
95
98
  const batches = [];
96
99
  for(let i = 0; i < publicStaticCalls.length; i += MAX_ENQUEUED_CALLS_PER_CALL){
97
100
  batches.push(publicStaticCalls.slice(i, i + MAX_ENQUEUED_CALLS_PER_CALL));
98
101
  }
99
102
  const results = [];
100
103
  for (const batch of batches){
101
- const result = await simulateBatchViaNode(node, batch, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement);
104
+ const result = await simulateBatchViaNode(node, batch, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement, getContractName);
102
105
  results.push(result);
103
106
  }
104
107
  return results;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aztec/wallet-sdk",
3
3
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/wallet-sdk",
4
- "version": "0.0.1-commit.cd76b27",
4
+ "version": "0.0.1-commit.d0fcfb7f",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./base-wallet": "./dest/base-wallet/index.js",
@@ -71,15 +71,15 @@
71
71
  ]
72
72
  },
73
73
  "dependencies": {
74
- "@aztec/aztec.js": "0.0.1-commit.cd76b27",
75
- "@aztec/constants": "0.0.1-commit.cd76b27",
76
- "@aztec/entrypoints": "0.0.1-commit.cd76b27",
77
- "@aztec/foundation": "0.0.1-commit.cd76b27",
78
- "@aztec/pxe": "0.0.1-commit.cd76b27",
79
- "@aztec/stdlib": "0.0.1-commit.cd76b27"
74
+ "@aztec/aztec.js": "0.0.1-commit.d0fcfb7f",
75
+ "@aztec/constants": "0.0.1-commit.d0fcfb7f",
76
+ "@aztec/entrypoints": "0.0.1-commit.d0fcfb7f",
77
+ "@aztec/foundation": "0.0.1-commit.d0fcfb7f",
78
+ "@aztec/pxe": "0.0.1-commit.d0fcfb7f",
79
+ "@aztec/stdlib": "0.0.1-commit.d0fcfb7f"
80
80
  },
81
81
  "devDependencies": {
82
- "@aztec/noir-contracts.js": "0.0.1-commit.cd76b27",
82
+ "@aztec/noir-contracts.js": "0.0.1-commit.d0fcfb7f",
83
83
  "@jest/globals": "^30.0.0",
84
84
  "@types/jest": "^30.0.0",
85
85
  "@types/node": "^22.15.17",
@@ -1,6 +1,11 @@
1
1
  import type { Account } from '@aztec/aztec.js/account';
2
2
  import type { CallIntent, IntentInnerHash } from '@aztec/aztec.js/authorization';
3
- import { type InteractionWaitOptions, NO_WAIT, type SendReturn } from '@aztec/aztec.js/contracts';
3
+ import {
4
+ type InteractionWaitOptions,
5
+ NO_WAIT,
6
+ type SendReturn,
7
+ extractOffchainOutput,
8
+ } from '@aztec/aztec.js/contracts';
4
9
  import type { FeePaymentMethod } from '@aztec/aztec.js/fee';
5
10
  import { waitForTx } from '@aztec/aztec.js/node';
6
11
  import type {
@@ -28,7 +33,7 @@ import type { ChainInfo } from '@aztec/entrypoints/interfaces';
28
33
  import { Fr } from '@aztec/foundation/curves/bn254';
29
34
  import { createLogger } from '@aztec/foundation/log';
30
35
  import type { FieldsOf } from '@aztec/foundation/types';
31
- import type { AccessScopes } from '@aztec/pxe/client/lazy';
36
+ import { type AccessScopes, displayDebugLogs } from '@aztec/pxe/client/lazy';
32
37
  import type { PXE, PackedPrivateEvent } from '@aztec/pxe/server';
33
38
  import {
34
39
  type ContractArtifact,
@@ -37,7 +42,7 @@ import {
37
42
  decodeFromAbi,
38
43
  } from '@aztec/stdlib/abi';
39
44
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
40
- import type { AztecAddress } from '@aztec/stdlib/aztec-address';
45
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
41
46
  import {
42
47
  type ContractInstanceWithAddress,
43
48
  computePartialAddress,
@@ -95,6 +100,12 @@ export abstract class BaseWallet implements Wallet {
95
100
  return from.isZero() ? [] : [from];
96
101
  }
97
102
 
103
+ protected scopesFrom(from: AztecAddress, additionalScopes: AztecAddress[] = []): AztecAddress[] {
104
+ const allScopes = from.isZero() ? additionalScopes : [from, ...additionalScopes];
105
+ const scopeSet = new Set(allScopes.map(address => address.toString()));
106
+ return [...scopeSet].map(AztecAddress.fromString);
107
+ }
108
+
98
109
  protected abstract getAccountFromAddress(address: AztecAddress): Promise<Account>;
99
110
 
100
111
  abstract getAccounts(): Promise<Aliased<AztecAddress>[]>;
@@ -348,6 +359,7 @@ export abstract class BaseWallet implements Wallet {
348
359
  feeOptions.gasSettings,
349
360
  blockHeader,
350
361
  opts.skipFeeEnforcement ?? true,
362
+ this.getContractName.bind(this),
351
363
  )
352
364
  : Promise.resolve([]),
353
365
  remainingCalls.length > 0
@@ -355,7 +367,7 @@ export abstract class BaseWallet implements Wallet {
355
367
  remainingPayload,
356
368
  opts.from,
357
369
  feeOptions,
358
- this.scopesFor(opts.from),
370
+ this.scopesFrom(opts.from, opts.additionalScopes),
359
371
  opts.skipTxValidation,
360
372
  opts.skipFeeEnforcement ?? true,
361
373
  )
@@ -371,7 +383,7 @@ export abstract class BaseWallet implements Wallet {
371
383
  return this.pxe.profileTx(txRequest, {
372
384
  profileMode: opts.profileMode,
373
385
  skipProofGeneration: opts.skipProofGeneration ?? true,
374
- scopes: this.scopesFor(opts.from),
386
+ scopes: this.scopesFrom(opts.from, opts.additionalScopes),
375
387
  });
376
388
  }
377
389
 
@@ -381,7 +393,8 @@ export abstract class BaseWallet implements Wallet {
381
393
  ): Promise<SendReturn<W>> {
382
394
  const feeOptions = await this.completeFeeOptions(opts.from, executionPayload.feePayer, opts.fee?.gasSettings);
383
395
  const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, feeOptions);
384
- const provenTx = await this.pxe.proveTx(txRequest, this.scopesFor(opts.from));
396
+ const provenTx = await this.pxe.proveTx(txRequest, this.scopesFrom(opts.from, opts.additionalScopes));
397
+ const offchainOutput = extractOffchainOutput(provenTx.getOffchainEffects());
385
398
  const tx = await provenTx.toTx();
386
399
  const txHash = tx.getTxHash();
387
400
  if (await this.aztecNode.getTxEffect(txHash)) {
@@ -395,12 +408,32 @@ export abstract class BaseWallet implements Wallet {
395
408
 
396
409
  // If wait is NO_WAIT, return txHash immediately
397
410
  if (opts.wait === NO_WAIT) {
398
- return txHash as SendReturn<W>;
411
+ return { txHash, ...offchainOutput } as SendReturn<W>;
399
412
  }
400
413
 
401
414
  // Otherwise, wait for the full receipt (default behavior on wait: undefined)
402
415
  const waitOpts = typeof opts.wait === 'object' ? opts.wait : undefined;
403
- return (await waitForTx(this.aztecNode, txHash, waitOpts)) as SendReturn<W>;
416
+ const receipt = await waitForTx(this.aztecNode, txHash, waitOpts);
417
+
418
+ // Display debug logs from public execution if present (served in test mode only)
419
+ if (receipt.debugLogs?.length) {
420
+ await displayDebugLogs(receipt.debugLogs, this.getContractName.bind(this));
421
+ }
422
+
423
+ return { receipt, ...offchainOutput } as SendReturn<W>;
424
+ }
425
+
426
+ /**
427
+ * Resolves a contract address to a human-readable name via PXE, if available.
428
+ * @param address - The contract address to resolve.
429
+ */
430
+ protected async getContractName(address: AztecAddress): Promise<string | undefined> {
431
+ const instance = await this.pxe.getContractInstance(address);
432
+ if (!instance) {
433
+ return undefined;
434
+ }
435
+ const artifact = await this.pxe.getContractArtifact(instance.currentContractClassId);
436
+ return artifact?.name;
404
437
  }
405
438
 
406
439
  protected contextualizeError(err: Error, ...context: string[]): Error {
@@ -4,6 +4,8 @@ import type { ChainInfo } from '@aztec/entrypoints/interfaces';
4
4
  import { makeTuple } from '@aztec/foundation/array';
5
5
  import { Fr } from '@aztec/foundation/curves/bn254';
6
6
  import type { Tuple } from '@aztec/foundation/serialize';
7
+ import type { ContractNameResolver } from '@aztec/pxe/client/lazy';
8
+ import { displayDebugLogs } from '@aztec/pxe/client/lazy';
7
9
  import { generateSimulatedProvingResult } from '@aztec/pxe/simulator';
8
10
  import { type FunctionCall, FunctionSelector } from '@aztec/stdlib/abi';
9
11
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
@@ -72,6 +74,7 @@ async function simulateBatchViaNode(
72
74
  gasSettings: GasSettings,
73
75
  blockHeader: BlockHeader,
74
76
  skipFeeEnforcement: boolean,
77
+ getContractName: ContractNameResolver,
75
78
  ): Promise<TxSimulationResult> {
76
79
  const txContext = new TxContext(chainInfo.chainId, chainInfo.version, gasSettings);
77
80
 
@@ -145,6 +148,9 @@ async function simulateBatchViaNode(
145
148
  throw publicOutput.revertReason;
146
149
  }
147
150
 
151
+ // Display debug logs from the public simulation.
152
+ await displayDebugLogs(publicOutput.debugLogs, getContractName);
153
+
148
154
  return new TxSimulationResult(privateResult, provingResult.publicInputs, publicOutput, undefined);
149
155
  }
150
156
 
@@ -169,6 +175,7 @@ export async function simulateViaNode(
169
175
  gasSettings: GasSettings,
170
176
  blockHeader: BlockHeader,
171
177
  skipFeeEnforcement: boolean = true,
178
+ getContractName: ContractNameResolver,
172
179
  ): Promise<TxSimulationResult[]> {
173
180
  const batches: FunctionCall[][] = [];
174
181
 
@@ -187,6 +194,7 @@ export async function simulateViaNode(
187
194
  gasSettings,
188
195
  blockHeader,
189
196
  skipFeeEnforcement,
197
+ getContractName,
190
198
  );
191
199
  results.push(result);
192
200
  }