@aztec/wallet-sdk 0.0.1-commit.5de5ca79e → 0.0.1-commit.6201a7b05

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.
Files changed (57) hide show
  1. package/dest/base-wallet/base_wallet.d.ts +50 -40
  2. package/dest/base-wallet/base_wallet.d.ts.map +1 -1
  3. package/dest/base-wallet/base_wallet.js +140 -73
  4. package/dest/base-wallet/index.d.ts +2 -2
  5. package/dest/base-wallet/index.d.ts.map +1 -1
  6. package/dest/base-wallet/utils.d.ts +3 -2
  7. package/dest/base-wallet/utils.d.ts.map +1 -1
  8. package/dest/base-wallet/utils.js +3 -1
  9. package/dest/crypto.d.ts +39 -1
  10. package/dest/crypto.d.ts.map +1 -1
  11. package/dest/crypto.js +88 -0
  12. package/dest/extension/provider/extension_wallet.d.ts +2 -5
  13. package/dest/extension/provider/extension_wallet.d.ts.map +1 -1
  14. package/dest/extension/provider/index.d.ts +2 -2
  15. package/dest/extension/provider/index.d.ts.map +1 -1
  16. package/dest/iframe/handlers/iframe_connection_handler.d.ts +118 -0
  17. package/dest/iframe/handlers/iframe_connection_handler.d.ts.map +1 -0
  18. package/dest/iframe/handlers/iframe_connection_handler.js +228 -0
  19. package/dest/iframe/handlers/index.d.ts +2 -0
  20. package/dest/iframe/handlers/index.d.ts.map +1 -0
  21. package/dest/iframe/handlers/index.js +1 -0
  22. package/dest/iframe/provider/iframe_discovery.d.ts +25 -0
  23. package/dest/iframe/provider/iframe_discovery.d.ts.map +1 -0
  24. package/dest/iframe/provider/iframe_discovery.js +167 -0
  25. package/dest/iframe/provider/iframe_provider.d.ts +65 -0
  26. package/dest/iframe/provider/iframe_provider.d.ts.map +1 -0
  27. package/dest/iframe/provider/iframe_provider.js +257 -0
  28. package/dest/iframe/provider/iframe_wallet.d.ts +68 -0
  29. package/dest/iframe/provider/iframe_wallet.d.ts.map +1 -0
  30. package/dest/iframe/provider/iframe_wallet.js +200 -0
  31. package/dest/iframe/provider/index.d.ts +4 -0
  32. package/dest/iframe/provider/index.d.ts.map +1 -0
  33. package/dest/iframe/provider/index.js +3 -0
  34. package/dest/manager/types.d.ts +3 -2
  35. package/dest/manager/types.d.ts.map +1 -1
  36. package/dest/manager/wallet_manager.d.ts +1 -1
  37. package/dest/manager/wallet_manager.d.ts.map +1 -1
  38. package/dest/manager/wallet_manager.js +46 -16
  39. package/dest/types.d.ts +14 -2
  40. package/dest/types.d.ts.map +1 -1
  41. package/dest/types.js +4 -0
  42. package/package.json +12 -8
  43. package/src/base-wallet/base_wallet.ts +203 -119
  44. package/src/base-wallet/index.ts +6 -1
  45. package/src/base-wallet/utils.ts +6 -4
  46. package/src/crypto.ts +104 -0
  47. package/src/extension/provider/extension_wallet.ts +1 -6
  48. package/src/extension/provider/index.ts +1 -1
  49. package/src/iframe/handlers/iframe_connection_handler.ts +328 -0
  50. package/src/iframe/handlers/index.ts +7 -0
  51. package/src/iframe/provider/iframe_discovery.ts +185 -0
  52. package/src/iframe/provider/iframe_provider.ts +331 -0
  53. package/src/iframe/provider/iframe_wallet.ts +229 -0
  54. package/src/iframe/provider/index.ts +3 -0
  55. package/src/manager/types.ts +2 -1
  56. package/src/manager/wallet_manager.ts +48 -14
  57. package/src/types.ts +13 -0
@@ -1,22 +1,20 @@
1
- import type { Account } from '@aztec/aztec.js/account';
1
+ import type { Account, NoFrom } from '@aztec/aztec.js/account';
2
2
  import type { CallIntent, IntentInnerHash } from '@aztec/aztec.js/authorization';
3
3
  import { type InteractionWaitOptions, type SendReturn } from '@aztec/aztec.js/contracts';
4
4
  import type { FeePaymentMethod } from '@aztec/aztec.js/fee';
5
- import type { Aliased, AppCapabilities, BatchResults, BatchedMethod, ExecuteUtilityOptions, PrivateEvent, PrivateEventFilter, ProfileOptions, SendOptions, SimulateOptions, Wallet, WalletCapabilities } from '@aztec/aztec.js/wallet';
5
+ import { type Aliased, type AppCapabilities, type BatchResults, type BatchedMethod, ContractInitializationStatus, type ExecuteUtilityOptions, type PrivateEvent, type PrivateEventFilter, type ProfileOptions, type SendOptions, type SimulateOptions, TxSimulationResultWithAppOffset, type Wallet, type WalletCapabilities } from '@aztec/aztec.js/wallet';
6
6
  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';
11
10
  import type { PXE } from '@aztec/pxe/server';
12
11
  import { type ContractArtifact, type EventMetadataDefinition, type FunctionCall } from '@aztec/stdlib/abi';
13
12
  import type { AuthWitness } from '@aztec/stdlib/auth-witness';
14
13
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
15
14
  import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
16
- import { GasSettings } from '@aztec/stdlib/gas';
15
+ import { GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
17
16
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
18
- import { type TxExecutionRequest, type TxProfileResult, TxSimulationResult, type UtilityExecutionResult } from '@aztec/stdlib/tx';
19
- import { ExecutionPayload } from '@aztec/stdlib/tx';
17
+ import { ExecutionPayload, type TxExecutionRequest, type TxProfileResult, type UtilityExecutionResult } from '@aztec/stdlib/tx';
20
18
  /**
21
19
  * Options to configure fee payment for a transaction
22
20
  */
@@ -27,16 +25,30 @@ export type FeeOptions = {
27
25
  */
28
26
  walletFeePaymentMethod?: FeePaymentMethod;
29
27
  /** Configuration options for the account to properly handle the selected fee payment method */
30
- accountFeePaymentMethodOptions: AccountFeePaymentMethodOptions;
28
+ accountFeePaymentMethodOptions?: AccountFeePaymentMethodOptions;
31
29
  /** The gas settings to use for the transaction */
32
30
  gasSettings: GasSettings;
33
31
  };
34
32
  /** Options for `simulateViaEntrypoint`. */
35
- export type SimulateViaEntrypointOptions = Pick<SimulateOptions, 'from' | 'additionalScopes' | 'skipTxValidation' | 'skipFeeEnforcement'> & {
33
+ export type SimulateViaEntrypointOptions = Pick<SimulateOptions, 'from' | 'additionalScopes' | 'skipTxValidation' | 'skipFeeEnforcement' | 'sendMessagesAs'> & {
36
34
  /** Fee options for the entrypoint */
37
35
  feeOptions: FeeOptions;
38
- /** Scopes to use for the simulation */
39
- scopes: AccessScopes;
36
+ };
37
+ /** Options for `completeFeeOptions`. */
38
+ export type CompleteFeeOptionsConfig = {
39
+ /** The address where the transaction is being sent from. */
40
+ from: AztecAddress | NoFrom;
41
+ /** The address paying for fees (if any fee payment method is embedded in the execution payload). */
42
+ feePayer?: AztecAddress;
43
+ /** User-provided partial gas settings. */
44
+ gasSettings?: Partial<FieldsOf<GasSettings>>;
45
+ /** If true, returns gas settings with high gas limits for estimation. If false, uses fallback limits. */
46
+ forEstimation?: boolean;
47
+ /**
48
+ * Assumed network congestion level for fee prediction. Controls how aggressively the wallet
49
+ * estimates future fees. Defaults to Limit (worst case) when not specified.
50
+ */
51
+ congestionEstimate?: ManaUsageEstimate;
40
52
  };
41
53
  /**
42
54
  * A base class for Wallet implementations
@@ -47,8 +59,17 @@ export declare abstract class BaseWallet implements Wallet {
47
59
  protected log: import("@aztec/foundation/log").Logger;
48
60
  protected minFeePadding: number;
49
61
  protected cancellableTransactions: boolean;
62
+ private nodeInfoPromise;
50
63
  protected constructor(pxe: PXE, aztecNode: AztecNode, log?: import("@aztec/foundation/log").Logger);
51
- protected scopesFrom(from: AztecAddress, additionalScopes?: AztecAddress[]): AztecAddress[];
64
+ protected scopesFrom(from: AztecAddress | NoFrom, additionalScopes?: AztecAddress[]): AztecAddress[];
65
+ /**
66
+ * Picks the sender address PXE should tag private messages with. Returns `undefined` when there is no signing
67
+ * account (`from === NO_FROM`) and no explicit override; in that case any private log emitted by the tx will fail
68
+ * the contract-side `Sender for tags is not set` assertion unless `set_sender_for_tags` is called first.
69
+ * @param from - Tx sender, or `NO_FROM`.
70
+ * @param sendMessagesAs - Explicit override.
71
+ */
72
+ protected senderForTagsFrom(from: AztecAddress | NoFrom, sendMessagesAs?: AztecAddress): AztecAddress | undefined;
52
73
  protected abstract getAccountFromAddress(address: AztecAddress): Promise<Account>;
53
74
  abstract getAccounts(): Promise<Aliased<AztecAddress>[]>;
54
75
  /**
@@ -60,7 +81,7 @@ export declare abstract class BaseWallet implements Wallet {
60
81
  */
61
82
  getAddressBook(): Promise<Aliased<AztecAddress>[]>;
62
83
  getChainInfo(): Promise<ChainInfo>;
63
- protected createTxExecutionRequestFromPayloadAndFee(executionPayload: ExecutionPayload, from: AztecAddress, feeOptions: FeeOptions): Promise<TxExecutionRequest>;
84
+ protected createTxExecutionRequestFromPayloadAndFee(executionPayload: ExecutionPayload, from: AztecAddress | NoFrom, feeOptions: FeeOptions): Promise<TxExecutionRequest>;
64
85
  createAuthWit(from: AztecAddress, messageHashOrIntent: IntentInnerHash | CallIntent): Promise<AuthWitness>;
65
86
  /**
66
87
  * Request capabilities from the wallet.
@@ -79,30 +100,15 @@ export declare abstract class BaseWallet implements Wallet {
79
100
  batch<const T extends readonly BatchedMethod[]>(methods: T): Promise<BatchResults<T>>;
80
101
  /**
81
102
  * Completes partial user-provided fee options with wallet defaults.
82
- * @param from - The address where the transaction is being sent from
83
- * @param feePayer - The address paying for fees (if any fee payment method is embedded in the execution payload)
84
- * @param gasSettings - User-provided partial gas settings
85
- * @returns - Complete fee options that can be used to create a transaction execution request
103
+ * @param config - Fee completion config.
86
104
  */
87
- protected completeFeeOptions(from: AztecAddress, feePayer?: AztecAddress, gasSettings?: Partial<FieldsOf<GasSettings>>): Promise<FeeOptions>;
105
+ protected completeFeeOptions(config: CompleteFeeOptionsConfig): Promise<FeeOptions>;
88
106
  /**
89
- * Completes partial user-provided fee options with unreasonably high gas limits
90
- * for gas estimation. Uses the same logic as completeFeeOptions but sets high limits
91
- * to avoid running out of gas during estimation.
92
- * @param from - The address where the transaction is being sent from
93
- * @param feePayer - The address paying for fees (if any fee payment method is embedded in the execution payload)
94
- * @param gasSettings - User-provided partial gas settings
107
+ * Returns the worst-case min fee across predicted future slots.
108
+ * Falls back to getCurrentMinFees if the node doesn't support getPredictedMinFees.
109
+ * @param estimate - The mana usage estimate to use for fee prediction. Defaults to Limit for conservative estimation.
95
110
  */
96
- protected completeFeeOptionsForEstimation(from: AztecAddress, feePayer?: AztecAddress, gasSettings?: Partial<FieldsOf<GasSettings>>): Promise<{
97
- /**
98
- * A wallet-provided fallback fee payment method that is used only if the transaction that is being constructed
99
- * doesn't already include one
100
- */
101
- walletFeePaymentMethod?: FeePaymentMethod | undefined;
102
- /** Configuration options for the account to properly handle the selected fee payment method */
103
- accountFeePaymentMethodOptions: AccountFeePaymentMethodOptions;
104
- gasSettings: GasSettings;
105
- }>;
111
+ protected getMinFees(estimate?: ManaUsageEstimate): Promise<GasFees>;
106
112
  registerSender(address: AztecAddress, _alias?: string): Promise<AztecAddress>;
107
113
  registerContract(instance: ContractInstanceWithAddress, artifact?: ContractArtifact, secretKey?: Fr): Promise<ContractInstanceWithAddress>;
108
114
  /**
@@ -110,7 +116,14 @@ export declare abstract class BaseWallet implements Wallet {
110
116
  * @param executionPayload - The execution payload to simulate.
111
117
  * @param opts - Simulation options.
112
118
  */
113
- protected simulateViaEntrypoint(executionPayload: ExecutionPayload, opts: SimulateViaEntrypointOptions): Promise<TxSimulationResult>;
119
+ protected simulateViaEntrypoint(executionPayload: ExecutionPayload, opts: SimulateViaEntrypointOptions): Promise<TxSimulationResultWithAppOffset>;
120
+ /**
121
+ * Computes the index where the app's calls begin in the flattened array of calls (0 = entrypoint/root, 1..N = fee
122
+ * calls, N+1 = app).
123
+ * @param from - The sender address, or NO_FROM for the default entrypoint.
124
+ * @param feeOptions - Fee options containing the wallet fee payment method.
125
+ */
126
+ protected computeAppCallOffset(from: AztecAddress | NoFrom, feeOptions: FeeOptions): Promise<number>;
114
127
  /**
115
128
  * Simulates a transaction, optimizing leading public static calls by running them directly
116
129
  * on the node while sending the remaining calls through the standard PXE path.
@@ -119,7 +132,7 @@ export declare abstract class BaseWallet implements Wallet {
119
132
  * @param opts - Simulation options (from address, fee settings, etc.).
120
133
  * @returns The merged simulation result.
121
134
  */
122
- simulateTx(executionPayload: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResult>;
135
+ simulateTx(executionPayload: ExecutionPayload, opts: SimulateOptions): Promise<TxSimulationResultWithAppOffset>;
123
136
  profileTx(executionPayload: ExecutionPayload, opts: ProfileOptions): Promise<TxProfileResult>;
124
137
  sendTx<W extends InteractionWaitOptions = undefined>(executionPayload: ExecutionPayload, opts: SendOptions<W>): Promise<SendReturn<W>>;
125
138
  /**
@@ -132,14 +145,11 @@ export declare abstract class BaseWallet implements Wallet {
132
145
  getPrivateEvents<T>(eventDef: EventMetadataDefinition, eventFilter: PrivateEventFilter): Promise<PrivateEvent<T>[]>;
133
146
  /**
134
147
  * Returns metadata about a contract, including whether it has been initialized, published, and updated.
135
- *
136
- * `isContractInitialized` requires the contract instance to be registered in the PXE (for `init_hash`). When the
137
- * instance is not available, `isContractInitialized` is `undefined` since it cannot be determined.
138
148
  * @param address - The contract address to query.
139
149
  */
140
150
  getContractMetadata(address: AztecAddress): Promise<{
141
151
  instance: ContractInstanceWithAddress | undefined;
142
- isContractInitialized: boolean | undefined;
152
+ initializationStatus: ContractInitializationStatus;
143
153
  isContractPublished: boolean;
144
154
  isContractUpdated: boolean;
145
155
  updatedContractClassId: Fr | undefined;
@@ -149,4 +159,4 @@ export declare abstract class BaseWallet implements Wallet {
149
159
  isContractClassPubliclyRegistered: boolean;
150
160
  }>;
151
161
  }
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxFQUNMLEtBQUssc0JBQXNCLEVBRTNCLEtBQUssVUFBVSxFQUVoQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFNUQsT0FBTyxLQUFLLEVBQ1YsT0FBTyxFQUNQLGVBQWUsRUFDZixZQUFZLEVBQ1osYUFBYSxFQUNiLHFCQUFxQixFQUNyQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE1BQU0sRUFDTixrQkFBa0IsRUFDbkIsTUFBTSx3QkFBd0IsQ0FBQztBQU9oQyxPQUFPLEVBQUUsOEJBQThCLEVBQXdDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEgsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBb0IsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQXNCLE1BQU0sbUJBQW1CLENBQUM7QUFDakUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssdUJBQXVCLEVBQzVCLEtBQUssWUFBWSxFQUVsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sS0FB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
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxLQUFLLHNCQUFzQixFQUUzQixLQUFLLFVBQVUsRUFFaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELE9BQU8sRUFDTCxLQUFLLE9BQU8sRUFDWixLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssYUFBYSxFQUNsQiw0QkFBNEIsRUFDNUIsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssY0FBYyxFQUNuQixLQUFLLFdBQVcsRUFDaEIsS0FBSyxlQUFlLEVBQ3BCLCtCQUErQixFQUMvQixLQUFLLE1BQU0sRUFDWCxLQUFLLGtCQUFrQixFQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSw4QkFBOEIsRUFBd0MsTUFBTSw0QkFBNEIsQ0FBQztBQUVsSCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLHVCQUF1QixFQUM1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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":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EACL,KAAK,sBAAsB,EAE3B,KAAK,UAAU,EAEhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,+BAA+B,EAC/B,KAAK,MAAM,EACX,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,8BAA8B,EAAwC,MAAM,4BAA4B,CAAC;AAElH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,GAAG,EAAsB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,2BAA2B,EAIjC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAO,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAEL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAE5B,MAAM,kBAAkB,CAAC;AAM1B;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,gBAAgB,CAAC;IAC1C,+FAA+F;IAC/F,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;IAChE,kDAAkD;IAClD,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,4BAA4B,GAAG,IAAI,CAC7C,eAAe,EACf,MAAM,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,gBAAgB,CAC3F,GAAG;IACF,qCAAqC;IACrC,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,wBAAwB,GAAG;IACrC,4DAA4D;IAC5D,IAAI,EAAE,YAAY,GAAG,MAAM,CAAC;IAC5B,oGAAoG;IACpG,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7C,yGAAyG;IACzG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,iBAAiB,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,8BAAsB,UAAW,YAAW,MAAM;IAS9C,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG;IAC3B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS;IACvC,SAAS,CAAC,GAAG;IAVf,SAAS,CAAC,aAAa,SAAO;IAC9B,SAAS,CAAC,uBAAuB,UAAS;IAG1C,OAAO,CAAC,eAAe,CAAgC;IAGvD,SAAS,aACY,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EAC7B,GAAG,yCAAyC,EACpD;IAEJ,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,gBAAgB,GAAE,YAAY,EAAO,GAAG,YAAY,EAAE,CAIvG;IAED;;;;;;OAMG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,cAAc,CAAC,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS,CAEhH;IAED,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAElF,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAEzD;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAGvD;IAEK,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAMvC;IAED,UAAgB,yCAAyC,CACvD,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,YAAY,GAAG,MAAM,EAC3B,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAyB7B;IAEY,aAAa,CACxB,IAAI,EAAE,YAAY,EAClB,mBAAmB,EAAE,eAAe,GAAG,UAAU,GAChD,OAAO,CAAC,WAAW,CAAC,CAItB;IAED;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAElF;IAEY,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAgBjG;IAED;;;OAGG;IACH,UAAgB,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqCxF;IAED;;;;OAIG;IACH,UAAgB,UAAU,CAAC,QAAQ,GAAE,iBAA2C,GAAG,OAAO,CAAC,OAAO,CAAC,CAelG;IAED,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAEhF;IAEK,gBAAgB,CACpB,QAAQ,EAAE,2BAA2B,EACrC,QAAQ,CAAC,EAAE,gBAAgB,EAC3B,SAAS,CAAC,EAAE,EAAE,GACb,OAAO,CAAC,2BAA2B,CAAC,CAgCtC;IAED;;;;OAIG;IACH,UAAgB,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,4BAA4B,4CAe3G;IAED;;;;;OAKG;IACH,UAAgB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAMzG;IAED;;;;;;;OAOG;IACG,UAAU,CACd,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,+BAA+B,CAAC,CAgD1C;IAEK,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAclG;IAEY,MAAM,CAAC,CAAC,SAAS,sBAAsB,GAAG,SAAS,EAC9D,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CA0CxB;IAED;;;OAGG;IACH,UAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAOlF;IAED,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,KAAK,CAYpE;IAED,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAE/F;IAEK,gBAAgB,CAAC,CAAC,EACtB,QAAQ,EAAE,uBAAuB,EACjC,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAe5B;IAED;;;OAGG;IACG,mBAAmB,CAAC,OAAO,EAAE,YAAY;;;;;;OAiC9C;IAEK,wBAAwB,CAAC,EAAE,EAAE,EAAE;;;OAMpC;CACF"}
@@ -1,7 +1,9 @@
1
+ import { NO_FROM } from '@aztec/aztec.js/account';
1
2
  import { NO_WAIT, extractOffchainOutput } from '@aztec/aztec.js/contracts';
2
3
  import { waitForTx } from '@aztec/aztec.js/node';
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
+ import { ContractInitializationStatus, TxSimulationResultWithAppOffset } from '@aztec/aztec.js/wallet';
4
5
  import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
6
+ import { DefaultEntrypoint } from '@aztec/entrypoints/default';
5
7
  import { Fr } from '@aztec/foundation/curves/bn254';
6
8
  import { createLogger } from '@aztec/foundation/log';
7
9
  import { displayDebugLogs } from '@aztec/pxe/client/lazy';
@@ -9,8 +11,8 @@ import { decodeFromAbi } from '@aztec/stdlib/abi';
9
11
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
10
12
  import { computePartialAddress, getContractClassFromArtifact } from '@aztec/stdlib/contract';
11
13
  import { SimulationError } from '@aztec/stdlib/errors';
12
- import { Gas, GasSettings } from '@aztec/stdlib/gas';
13
- import { computeSiloedPrivateInitializationNullifier } from '@aztec/stdlib/hash';
14
+ import { Gas, GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
15
+ import { computeSiloedPrivateInitializationNullifier, computeSiloedPublicInitializationNullifier } from '@aztec/stdlib/hash';
14
16
  import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
15
17
  import { inspect } from 'util';
16
18
  import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simulateViaNode } from './utils.js';
@@ -22,6 +24,9 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
22
24
  log;
23
25
  minFeePadding;
24
26
  cancellableTransactions;
27
+ // A wallet is instantiated for a particular chain, so chain info never changes during its lifetime.
28
+ // We cache it here because getChainInfo is called frequently (every tx simulation, send, auth wit, etc.).
29
+ nodeInfoPromise;
25
30
  // Protected because we want to force wallets to instantiate their own PXE.
26
31
  constructor(pxe, aztecNode, log = createLogger('wallet-sdk:base_wallet')){
27
32
  this.pxe = pxe;
@@ -31,7 +36,7 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
31
36
  this.cancellableTransactions = false;
32
37
  }
33
38
  scopesFrom(from, additionalScopes = []) {
34
- const allScopes = from.isZero() ? additionalScopes : [
39
+ const allScopes = from === NO_FROM ? additionalScopes : [
35
40
  from,
36
41
  ...additionalScopes
37
42
  ];
@@ -41,6 +46,15 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
41
46
  ].map(AztecAddress.fromString);
42
47
  }
43
48
  /**
49
+ * Picks the sender address PXE should tag private messages with. Returns `undefined` when there is no signing
50
+ * account (`from === NO_FROM`) and no explicit override; in that case any private log emitted by the tx will fail
51
+ * the contract-side `Sender for tags is not set` assertion unless `set_sender_for_tags` is called first.
52
+ * @param from - Tx sender, or `NO_FROM`.
53
+ * @param sendMessagesAs - Explicit override.
54
+ */ senderForTagsFrom(from, sendMessagesAs) {
55
+ return sendMessagesAs ?? (from === NO_FROM ? undefined : from);
56
+ }
57
+ /**
44
58
  * Returns the list of aliased contacts associated with the wallet.
45
59
  * This base implementation directly returns PXE's senders, but note that in general contacts are a superset of senders.
46
60
  * - Senders: Addresses we check during synching in case they sent us notes,
@@ -54,7 +68,10 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
54
68
  }));
55
69
  }
56
70
  async getChainInfo() {
57
- const { l1ChainId, rollupVersion } = await this.aztecNode.getNodeInfo();
71
+ if (!this.nodeInfoPromise) {
72
+ this.nodeInfoPromise = this.aztecNode.getNodeInfo();
73
+ }
74
+ const { l1ChainId, rollupVersion } = await this.nodeInfoPromise;
58
75
  return {
59
76
  chainId: new Fr(l1ChainId),
60
77
  version: new Fr(rollupVersion)
@@ -62,18 +79,24 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
62
79
  }
63
80
  async createTxExecutionRequestFromPayloadAndFee(executionPayload, from, feeOptions) {
64
81
  const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
65
- const executionOptions = {
66
- txNonce: Fr.random(),
67
- cancellable: this.cancellableTransactions,
68
- feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
69
- };
70
82
  const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
71
83
  feeExecutionPayload,
72
84
  executionPayload
73
85
  ]) : executionPayload;
74
- const fromAccount = await this.getAccountFromAddress(from);
75
86
  const chainInfo = await this.getChainInfo();
76
- return fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
87
+ if (from === NO_FROM) {
88
+ const entrypoint = new DefaultEntrypoint();
89
+ return entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
90
+ } else {
91
+ const fromAccount = await this.getAccountFromAddress(from);
92
+ const executionOptions = {
93
+ txNonce: Fr.random(),
94
+ cancellable: this.cancellableTransactions,
95
+ // If from is an address, feeOptions include the way the account contract should handle the fee payment
96
+ feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
97
+ };
98
+ return fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
99
+ }
77
100
  }
78
101
  async createAuthWit(from, messageHashOrIntent) {
79
102
  const account = await this.getAccountFromAddress(from);
@@ -116,26 +139,33 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
116
139
  }
117
140
  /**
118
141
  * Completes partial user-provided fee options with wallet defaults.
119
- * @param from - The address where the transaction is being sent from
120
- * @param feePayer - The address paying for fees (if any fee payment method is embedded in the execution payload)
121
- * @param gasSettings - User-provided partial gas settings
122
- * @returns - Complete fee options that can be used to create a transaction execution request
123
- */ async completeFeeOptions(from, feePayer, gasSettings) {
124
- const maxFeesPerGas = gasSettings?.maxFeesPerGas ?? (await this.aztecNode.getCurrentMinFees()).mul(1 + this.minFeePadding);
142
+ * @param config - Fee completion config.
143
+ */ async completeFeeOptions(config) {
144
+ const { from, feePayer, gasSettings, forEstimation, congestionEstimate } = config;
145
+ const maxFeesPerGas = gasSettings?.maxFeesPerGas ?? (await this.getMinFees(congestionEstimate)).mul(1 + this.minFeePadding);
125
146
  let accountFeePaymentMethodOptions;
126
- // The transaction does not include a fee payment method, so we set the flag
127
- // for the account to use its fee juice balance
128
- if (!feePayer) {
129
- accountFeePaymentMethodOptions = AccountFeePaymentMethodOptions.PREEXISTING_FEE_JUICE;
130
- } else {
131
- // The transaction includes fee payment method, so we check if we are the fee payer for it
132
- // (this can only happen if the embedded payment method is FeeJuiceWithClaim)
133
- accountFeePaymentMethodOptions = from.equals(feePayer) ? AccountFeePaymentMethodOptions.FEE_JUICE_WITH_CLAIM : AccountFeePaymentMethodOptions.EXTERNAL;
147
+ // If from is an address, we need to determine the appropriate fee payment method options for the
148
+ // account contract entrypoint to use
149
+ if (from !== NO_FROM) {
150
+ if (!feePayer) {
151
+ // The transaction does not include a fee payment method, so we set the flag
152
+ // for the account to use its fee juice balance
153
+ accountFeePaymentMethodOptions = AccountFeePaymentMethodOptions.PREEXISTING_FEE_JUICE;
154
+ } else {
155
+ // The transaction includes fee payment method, so we check if we are the fee payer for it
156
+ // (this can only happen if the embedded payment method is FeeJuiceWithClaim)
157
+ accountFeePaymentMethodOptions = from.equals(feePayer) ? AccountFeePaymentMethodOptions.FEE_JUICE_WITH_CLAIM : AccountFeePaymentMethodOptions.EXTERNAL;
158
+ }
134
159
  }
135
- const fullGasSettings = GasSettings.default({
136
- ...gasSettings,
137
- maxFeesPerGas
138
- });
160
+ const gasSettingsOverrides = {
161
+ gasLimits: gasSettings?.gasLimits ? Gas.from(gasSettings.gasLimits) : undefined,
162
+ teardownGasLimits: gasSettings?.teardownGasLimits ? Gas.from(gasSettings.teardownGasLimits) : undefined,
163
+ maxFeesPerGas,
164
+ maxPriorityFeesPerGas: gasSettings?.maxPriorityFeesPerGas ?? GasFees.empty()
165
+ };
166
+ // When estimating gas (simulation), use high limits so the simulation doesn't run out of gas.
167
+ // When sending for real, use protocol max limits that the network will actually accept.
168
+ const fullGasSettings = forEstimation ? GasSettings.forEstimation(gasSettingsOverrides) : GasSettings.fallback(gasSettingsOverrides);
139
169
  this.log.debug(`Using L2 gas settings`, fullGasSettings);
140
170
  return {
141
171
  gasSettings: fullGasSettings,
@@ -144,22 +174,24 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
144
174
  };
145
175
  }
146
176
  /**
147
- * Completes partial user-provided fee options with unreasonably high gas limits
148
- * for gas estimation. Uses the same logic as completeFeeOptions but sets high limits
149
- * to avoid running out of gas during estimation.
150
- * @param from - The address where the transaction is being sent from
151
- * @param feePayer - The address paying for fees (if any fee payment method is embedded in the execution payload)
152
- * @param gasSettings - User-provided partial gas settings
153
- */ async completeFeeOptionsForEstimation(from, feePayer, gasSettings) {
154
- const defaultFeeOptions = await this.completeFeeOptions(from, feePayer, gasSettings);
155
- const { gasSettings: { maxFeesPerGas, maxPriorityFeesPerGas } } = defaultFeeOptions;
156
- // Use unrealistically high gas limits for estimation to avoid running out of gas.
157
- // They will be tuned down after the simulation.
158
- const gasSettingsForEstimation = new GasSettings(new Gas(GAS_ESTIMATION_DA_GAS_LIMIT, GAS_ESTIMATION_L2_GAS_LIMIT), new Gas(GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT, GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT), maxFeesPerGas, maxPriorityFeesPerGas);
159
- return {
160
- ...defaultFeeOptions,
161
- gasSettings: gasSettingsForEstimation
162
- };
177
+ * Returns the worst-case min fee across predicted future slots.
178
+ * Falls back to getCurrentMinFees if the node doesn't support getPredictedMinFees.
179
+ * @param estimate - The mana usage estimate to use for fee prediction. Defaults to Limit for conservative estimation.
180
+ */ async getMinFees(estimate = ManaUsageEstimate.Limit) {
181
+ try {
182
+ const predicted = await this.aztecNode.getPredictedMinFees(estimate);
183
+ if (predicted.length === 0) {
184
+ return this.aztecNode.getCurrentMinFees();
185
+ }
186
+ return predicted.reduce((worst, fees)=>fees.feePerL2Gas > worst.feePerL2Gas ? fees : worst);
187
+ } catch (err) {
188
+ // Fallback for old nodes that don't support getPredictedMinFees.
189
+ // Only fall back on method-not-found errors (JSON-RPC code -32601); rethrow others.
190
+ if (err?.cause?.code === -32601 || err?.message?.includes('Method not found')) {
191
+ return this.aztecNode.getCurrentMinFees();
192
+ }
193
+ throw err;
194
+ }
163
195
  }
164
196
  registerSender(address, _alias = '') {
165
197
  return this.pxe.registerSender(address);
@@ -202,12 +234,27 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
202
234
  * @param opts - Simulation options.
203
235
  */ async simulateViaEntrypoint(executionPayload, opts) {
204
236
  const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, opts.feeOptions);
205
- return this.pxe.simulateTx(txRequest, {
237
+ const result = await this.pxe.simulateTx(txRequest, {
206
238
  simulatePublic: true,
207
239
  skipTxValidation: opts.skipTxValidation,
208
240
  skipFeeEnforcement: opts.skipFeeEnforcement,
209
- scopes: opts.scopes
241
+ scopes: this.scopesFrom(opts.from, opts.additionalScopes),
242
+ senderForTags: this.senderForTagsFrom(opts.from, opts.sendMessagesAs)
210
243
  });
244
+ const appCallOffset = await this.computeAppCallOffset(opts.from, opts.feeOptions);
245
+ return TxSimulationResultWithAppOffset.fromResultAndOffset(result, appCallOffset);
246
+ }
247
+ /**
248
+ * Computes the index where the app's calls begin in the flattened array of calls (0 = entrypoint/root, 1..N = fee
249
+ * calls, N+1 = app).
250
+ * @param from - The sender address, or NO_FROM for the default entrypoint.
251
+ * @param feeOptions - Fee options containing the wallet fee payment method.
252
+ */ async computeAppCallOffset(from, feeOptions) {
253
+ if (from === NO_FROM) {
254
+ return 0;
255
+ }
256
+ const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
257
+ return (feeExecutionPayload?.calls.length ?? 0) + 1; // +1 for entrypoint
211
258
  }
212
259
  /**
213
260
  * Simulates a transaction, optimizing leading public static calls by running them directly
@@ -217,7 +264,13 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
217
264
  * @param opts - Simulation options (from address, fee settings, etc.).
218
265
  * @returns The merged simulation result.
219
266
  */ async simulateTx(executionPayload, opts) {
220
- const feeOptions = opts.fee?.estimateGas ? await this.completeFeeOptionsForEstimation(opts.from, executionPayload.feePayer, opts.fee?.gasSettings) : await this.completeFeeOptions(opts.from, executionPayload.feePayer, opts.fee?.gasSettings);
267
+ const feeOptions = await this.completeFeeOptions({
268
+ from: opts.from,
269
+ feePayer: executionPayload.feePayer,
270
+ gasSettings: opts.fee?.gasSettings,
271
+ forEstimation: true,
272
+ congestionEstimate: opts.fee?.congestionEstimate
273
+ });
221
274
  const { optimizableCalls, remainingCalls } = extractOptimizablePublicStaticCalls(executionPayload);
222
275
  const remainingPayload = {
223
276
  ...executionPayload,
@@ -230,33 +283,49 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
230
283
  try {
231
284
  blockHeader = await this.pxe.getSyncedBlockHeader();
232
285
  } catch {
233
- blockHeader = await this.aztecNode.getBlockHeader();
286
+ blockHeader = await this.aztecNode.getBlockHeader('latest');
234
287
  }
288
+ const simulationOrigin = opts.from === NO_FROM ? AztecAddress.ZERO : opts.from;
235
289
  const [optimizedResults, normalResult] = await Promise.all([
236
- optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, opts.from, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true, this.getContractName.bind(this)) : Promise.resolve([]),
290
+ optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, simulationOrigin, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true, this.getContractName.bind(this)) : Promise.resolve([]),
237
291
  remainingCalls.length > 0 ? this.simulateViaEntrypoint(remainingPayload, {
238
292
  from: opts.from,
239
293
  feeOptions,
240
- scopes: this.scopesFrom(opts.from, opts.additionalScopes),
294
+ additionalScopes: opts.additionalScopes,
241
295
  skipTxValidation: opts.skipTxValidation,
242
- skipFeeEnforcement: opts.skipFeeEnforcement ?? true
296
+ skipFeeEnforcement: opts.skipFeeEnforcement ?? true,
297
+ sendMessagesAs: opts.sendMessagesAs
243
298
  }) : Promise.resolve(null)
244
299
  ]);
245
300
  return buildMergedSimulationResult(optimizedResults, normalResult);
246
301
  }
247
302
  async profileTx(executionPayload, opts) {
248
- const feeOptions = await this.completeFeeOptions(opts.from, executionPayload.feePayer, opts.fee?.gasSettings);
303
+ const feeOptions = await this.completeFeeOptions({
304
+ from: opts.from,
305
+ feePayer: executionPayload.feePayer,
306
+ gasSettings: opts.fee?.gasSettings,
307
+ congestionEstimate: opts.fee?.congestionEstimate
308
+ });
249
309
  const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, feeOptions);
250
310
  return this.pxe.profileTx(txRequest, {
251
311
  profileMode: opts.profileMode,
252
312
  skipProofGeneration: opts.skipProofGeneration ?? true,
253
- scopes: this.scopesFrom(opts.from, opts.additionalScopes)
313
+ scopes: this.scopesFrom(opts.from, opts.additionalScopes),
314
+ senderForTags: this.senderForTagsFrom(opts.from, opts.sendMessagesAs)
254
315
  });
255
316
  }
256
317
  async sendTx(executionPayload, opts) {
257
- const feeOptions = await this.completeFeeOptions(opts.from, executionPayload.feePayer, opts.fee?.gasSettings);
318
+ const feeOptions = await this.completeFeeOptions({
319
+ from: opts.from,
320
+ feePayer: executionPayload.feePayer,
321
+ gasSettings: opts.fee?.gasSettings,
322
+ congestionEstimate: opts.fee?.congestionEstimate
323
+ });
258
324
  const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, feeOptions);
259
- const provenTx = await this.pxe.proveTx(txRequest, this.scopesFrom(opts.from, opts.additionalScopes));
325
+ const provenTx = await this.pxe.proveTx(txRequest, {
326
+ scopes: this.scopesFrom(opts.from, opts.additionalScopes),
327
+ senderForTags: this.senderForTagsFrom(opts.from, opts.sendMessagesAs)
328
+ });
260
329
  const offchainOutput = extractOffchainOutput(provenTx.getOffchainEffects(), provenTx.publicInputs.constants.anchorBlockHeader.globalVariables.timestamp);
261
330
  const tx = await provenTx.toTx();
262
331
  const txHash = tx.getTxHash();
@@ -314,9 +383,7 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
314
383
  executeUtility(call, opts) {
315
384
  return this.pxe.executeUtility(call, {
316
385
  authwits: opts.authWitnesses,
317
- scopes: [
318
- opts.scope
319
- ]
386
+ scopes: opts.scopes
320
387
  });
321
388
  }
322
389
  async getPrivateEvents(eventDef, eventFilter) {
@@ -337,31 +404,31 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
337
404
  }
338
405
  /**
339
406
  * Returns metadata about a contract, including whether it has been initialized, published, and updated.
340
- *
341
- * `isContractInitialized` requires the contract instance to be registered in the PXE (for `init_hash`). When the
342
- * instance is not available, `isContractInitialized` is `undefined` since it cannot be determined.
343
407
  * @param address - The contract address to query.
344
408
  */ async getContractMetadata(address) {
345
409
  const instance = await this.pxe.getContractInstance(address);
346
410
  const publiclyRegisteredContractPromise = this.aztecNode.getContract(address);
347
- // We check only the private initialization nullifier. It is emitted by both private and public initializers and
348
- // includes init_hash, preventing observers from determining initialization status from the address alone. Without
349
- // the instance (and thus init_hash), we can't compute it, so we return undefined.
350
- //
351
- // We skip the public initialization nullifier because it's not always emitted (contracts without public external
352
- // functions that require initialization checks won't emit it). If the private one exists, the public one was
353
- // created in the same tx and will also be present.
354
- let isContractInitialized = undefined;
411
+ let initializationStatus;
355
412
  if (instance) {
413
+ // We have the instance, so we can compute the private initialization nullifier (which includes init_hash and is
414
+ // emitted by both private and public initializers) and get a definitive INITIALIZED/UNINITIALIZED answer.
356
415
  const initNullifier = await computeSiloedPrivateInitializationNullifier(address, instance.initializationHash);
357
416
  const witness = await this.aztecNode.getNullifierMembershipWitness('latest', initNullifier);
358
- isContractInitialized = !!witness;
417
+ initializationStatus = witness ? ContractInitializationStatus.INITIALIZED : ContractInitializationStatus.UNINITIALIZED;
418
+ } else {
419
+ // Without the instance we lack the init_hash needed for the private nullifier. We fall back to checking the
420
+ // public initialization nullifier (computed from address alone). Not all contracts emit it (only those with
421
+ // public functions that require initialization checks), so its absence doesn't mean the contract is
422
+ // uninitialized.
423
+ const publicNullifier = await computeSiloedPublicInitializationNullifier(address);
424
+ const witness = await this.aztecNode.getNullifierMembershipWitness('latest', publicNullifier);
425
+ initializationStatus = witness ? ContractInitializationStatus.INITIALIZED : ContractInitializationStatus.UNKNOWN;
359
426
  }
360
427
  const publiclyRegisteredContract = await publiclyRegisteredContractPromise;
361
428
  const isContractUpdated = publiclyRegisteredContract && !publiclyRegisteredContract.currentContractClassId.equals(publiclyRegisteredContract.originalContractClassId);
362
429
  return {
363
430
  instance: instance ?? undefined,
364
- isContractInitialized,
431
+ initializationStatus,
365
432
  isContractPublished: !!publiclyRegisteredContract,
366
433
  isContractUpdated: !!isContractUpdated,
367
434
  updatedContractClassId: isContractUpdated ? publiclyRegisteredContract.currentContractClassId : undefined
@@ -1,3 +1,3 @@
1
- export { BaseWallet, type FeeOptions, type SimulateViaEntrypointOptions } from './base_wallet.js';
1
+ export { BaseWallet, type CompleteFeeOptionsConfig, type FeeOptions, type SimulateViaEntrypointOptions, } from './base_wallet.js';
2
2
  export { simulateViaNode, buildMergedSimulationResult, extractOptimizablePublicStaticCalls } from './utils.js';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssVUFBVSxFQUFFLEtBQUssNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZUFBZSxFQUFFLDJCQUEyQixFQUFFLG1DQUFtQyxFQUFFLE1BQU0sWUFBWSxDQUFDIn0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLEtBQUssd0JBQXdCLEVBQzdCLEtBQUssVUFBVSxFQUNmLEtBQUssNEJBQTRCLEdBQ2xDLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBRSwyQkFBMkIsRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLFlBQVksQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base-wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/base-wallet/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,wBAAwB,EAC7B,KAAK,UAAU,EACf,KAAK,4BAA4B,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,mCAAmC,EAAE,MAAM,YAAY,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { AztecNode } from '@aztec/aztec.js/node';
2
+ import { TxSimulationResultWithAppOffset } from '@aztec/aztec.js/wallet';
2
3
  import type { ChainInfo } from '@aztec/entrypoints/interfaces';
3
4
  import type { ContractNameResolver } from '@aztec/pxe/client/lazy';
4
5
  import { type FunctionCall } from '@aztec/stdlib/abi';
@@ -45,5 +46,5 @@ export declare function simulateViaNode(node: AztecNode, publicStaticCalls: Func
45
46
  * @param normalResult - Result from normal simulation (null if all calls were optimized).
46
47
  * @returns A single TxSimulationResult with return values in original call order.
47
48
  */
48
- export declare function buildMergedSimulationResult(optimizedResults: TxSimulationResult[], normalResult: TxSimulationResult | null): TxSimulationResult;
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkvRCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR25FLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFyRCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZ0JBQWdCLEVBT3JCLGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixtQ0FBbUMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEdBQUc7SUFDOUUsdUVBQXVFO0lBQ3ZFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ2pDLDJCQUEyQjtJQUMzQixjQUFjLEVBQUUsWUFBWSxFQUFFLENBQUM7Q0FDaEMsQ0FPQTtBQXVHRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBc0IsZUFBZSxDQUNuQyxJQUFJLEVBQUUsU0FBUyxFQUNmLGlCQUFpQixFQUFFLFlBQVksRUFBRSxFQUNqQyxJQUFJLEVBQUUsWUFBWSxFQUNsQixTQUFTLEVBQUUsU0FBUyxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixXQUFXLEVBQUUsV0FBVyxFQUN4QixrQkFBa0IscUJBQWdCLEVBQ2xDLGVBQWUsRUFBRSxvQkFBb0IsR0FDcEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0F3Qi9CO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLDJCQUEyQixDQUN6QyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxFQUN0QyxZQUFZLEVBQUUsa0JBQWtCLEdBQUcsSUFBSSxHQUN0QyxrQkFBa0IsQ0FvQnBCIn0=
49
+ export declare function buildMergedSimulationResult(optimizedResults: TxSimulationResult[], normalResult: TxSimulationResultWithAppOffset | null): TxSimulationResultWithAppOffset;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkvRCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR25FLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFyRCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZ0JBQWdCLEVBT3JCLGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixtQ0FBbUMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEdBQUc7SUFDOUUsdUVBQXVFO0lBQ3ZFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ2pDLDJCQUEyQjtJQUMzQixjQUFjLEVBQUUsWUFBWSxFQUFFLENBQUM7Q0FDaEMsQ0FPQTtBQXVHRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCx3QkFBc0IsZUFBZSxDQUNuQyxJQUFJLEVBQUUsU0FBUyxFQUNmLGlCQUFpQixFQUFFLFlBQVksRUFBRSxFQUNqQyxJQUFJLEVBQUUsWUFBWSxFQUNsQixTQUFTLEVBQUUsU0FBUyxFQUNwQixXQUFXLEVBQUUsV0FBVyxFQUN4QixXQUFXLEVBQUUsV0FBVyxFQUN4QixrQkFBa0IscUJBQWdCLEVBQ2xDLGVBQWUsRUFBRSxvQkFBb0IsR0FDcEMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0F3Qi9CO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLDJCQUEyQixDQUN6QyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxFQUN0QyxZQUFZLEVBQUUsK0JBQStCLEdBQUcsSUFBSSxHQUNuRCwrQkFBK0IsQ0FxQmpDIn0=
@@ -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;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
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/base-wallet/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,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,+BAA+B,GAAG,IAAI,GACnD,+BAA+B,CAqBjC"}