@aztec/wallet-sdk 0.0.1-commit.d1f2d6c → 0.0.1-commit.d431d1c

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 (67) hide show
  1. package/README.md +294 -217
  2. package/dest/base-wallet/base_wallet.d.ts +4 -4
  3. package/dest/base-wallet/base_wallet.d.ts.map +1 -1
  4. package/dest/base-wallet/base_wallet.js +4 -9
  5. package/dest/crypto.d.ts +50 -59
  6. package/dest/crypto.d.ts.map +1 -1
  7. package/dest/crypto.js +108 -202
  8. package/dest/manager/index.d.ts +8 -2
  9. package/dest/manager/index.d.ts.map +1 -1
  10. package/dest/manager/index.js +6 -0
  11. package/dest/manager/types.d.ts +6 -88
  12. package/dest/manager/types.d.ts.map +1 -1
  13. package/dest/manager/types.js +1 -17
  14. package/dest/manager/wallet_manager.d.ts +7 -50
  15. package/dest/manager/wallet_manager.d.ts.map +1 -1
  16. package/dest/manager/wallet_manager.js +44 -174
  17. package/dest/providers/extension/extension_provider.d.ts +63 -0
  18. package/dest/providers/extension/extension_provider.d.ts.map +1 -0
  19. package/dest/providers/extension/extension_provider.js +124 -0
  20. package/dest/providers/extension/extension_wallet.d.ts +155 -0
  21. package/dest/providers/extension/extension_wallet.d.ts.map +1 -0
  22. package/dest/{extension/provider → providers/extension}/extension_wallet.js +95 -48
  23. package/dest/providers/extension/index.d.ts +6 -0
  24. package/dest/providers/extension/index.d.ts.map +1 -0
  25. package/dest/{extension/provider → providers/extension}/index.js +2 -0
  26. package/dest/types.d.ts +12 -43
  27. package/dest/types.d.ts.map +1 -1
  28. package/dest/types.js +2 -3
  29. package/package.json +9 -10
  30. package/src/base-wallet/base_wallet.ts +8 -15
  31. package/src/crypto.ts +113 -237
  32. package/src/manager/index.ts +10 -2
  33. package/src/manager/types.ts +5 -91
  34. package/src/manager/wallet_manager.ts +46 -192
  35. package/src/providers/extension/extension_provider.ts +167 -0
  36. package/src/{extension/provider → providers/extension}/extension_wallet.ts +110 -52
  37. package/src/providers/extension/index.ts +5 -0
  38. package/src/types.ts +10 -44
  39. package/dest/emoji_alphabet.d.ts +0 -35
  40. package/dest/emoji_alphabet.d.ts.map +0 -1
  41. package/dest/emoji_alphabet.js +0 -299
  42. package/dest/extension/handlers/background_connection_handler.d.ts +0 -158
  43. package/dest/extension/handlers/background_connection_handler.d.ts.map +0 -1
  44. package/dest/extension/handlers/background_connection_handler.js +0 -258
  45. package/dest/extension/handlers/content_script_connection_handler.d.ts +0 -56
  46. package/dest/extension/handlers/content_script_connection_handler.d.ts.map +0 -1
  47. package/dest/extension/handlers/content_script_connection_handler.js +0 -174
  48. package/dest/extension/handlers/index.d.ts +0 -12
  49. package/dest/extension/handlers/index.d.ts.map +0 -1
  50. package/dest/extension/handlers/index.js +0 -10
  51. package/dest/extension/handlers/internal_message_types.d.ts +0 -63
  52. package/dest/extension/handlers/internal_message_types.d.ts.map +0 -1
  53. package/dest/extension/handlers/internal_message_types.js +0 -22
  54. package/dest/extension/provider/extension_provider.d.ts +0 -107
  55. package/dest/extension/provider/extension_provider.d.ts.map +0 -1
  56. package/dest/extension/provider/extension_provider.js +0 -160
  57. package/dest/extension/provider/extension_wallet.d.ts +0 -131
  58. package/dest/extension/provider/extension_wallet.d.ts.map +0 -1
  59. package/dest/extension/provider/index.d.ts +0 -3
  60. package/dest/extension/provider/index.d.ts.map +0 -1
  61. package/src/emoji_alphabet.ts +0 -317
  62. package/src/extension/handlers/background_connection_handler.ts +0 -423
  63. package/src/extension/handlers/content_script_connection_handler.ts +0 -246
  64. package/src/extension/handlers/index.ts +0 -25
  65. package/src/extension/handlers/internal_message_types.ts +0 -69
  66. package/src/extension/provider/extension_provider.ts +0 -233
  67. package/src/extension/provider/index.ts +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension_wallet.d.ts","sourceRoot":"","sources":["../../../src/providers/extension/extension_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,wBAAwB,CAAC;AAOnE,OAAO,EAAE,KAAK,UAAU,EAA8D,MAAM,gBAAgB,CAAC;AAa7G;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,eAAe;IAexB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;IAlBnB,sEAAsE;IACtE,OAAO,CAAC,QAAQ,CAAoD;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,mBAAmB,CAA4B;IAEvD;;;;;;;OAOG;IACH,OAAO,eAMH;IAEJ,mCAAmC;IACnC,OAAO,CAAC,WAAW,CAAuB;IAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,MAAM,CACX,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,WAAW,EACjB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,GACZ,eAAe,CAWjB;IAED;;;;;;;;;;;;;;OAcG;IACH,SAAS,IAAI,MAAM,CAuBlB;YAUa,uBAAuB;YA0DvB,WAAW;IA2BzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI,CAQrD;IAED;;;;OAIG;IACH,cAAc,IAAI,OAAO,CAExB;IAED;;;;;;;;;;;;;OAaG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA2BhC;CACF"}
@@ -6,30 +6,30 @@ import { decrypt, encrypt } from '../../crypto.js';
6
6
  import { WalletMessageType } from '../../types.js';
7
7
  /**
8
8
  * A wallet implementation that communicates with browser extension wallets
9
- * using an encrypted MessageChannel.
9
+ * using a secure encrypted MessageChannel.
10
10
  *
11
- * This class uses a secure channel established after discovery:
11
+ * This class uses a pre-established secure channel from the discovery phase:
12
12
  *
13
- * 1. **MessageChannel**: Created during discovery and transferred via window.postMessage.
14
- * Note: The port transfer is visible to page scripts, but security comes from encryption.
13
+ * 1. **MessageChannel**: A private communication channel created during discovery,
14
+ * not visible to other scripts on the page (unlike window.postMessage).
15
15
  *
16
- * 2. **ECDH Key Exchange**: The shared secret was derived after discovery using
17
- * Elliptic Curve Diffie-Hellman key exchange over the MessagePort.
16
+ * 2. **ECDH Key Exchange**: The shared secret was derived during discovery using
17
+ * Elliptic Curve Diffie-Hellman key exchange.
18
18
  *
19
19
  * 3. **AES-GCM Encryption**: All messages are encrypted using AES-256-GCM,
20
- * providing both confidentiality and authenticity. This is what secures the channel.
20
+ * providing both confidentiality and authenticity.
21
21
  *
22
22
  * @example
23
23
  * ```typescript
24
- * // Discover and establish secure channel to a wallet
25
- * const discoveredWallets = await ExtensionProvider.discoverWallets(chainInfo, { appId: 'my-dapp' });
26
- * const connection = await discoveredWallets[0].establishSecureChannel();
24
+ * // Discovery returns wallets with secure channel components
25
+ * const wallets = await ExtensionProvider.discoverExtensions(chainInfo);
26
+ * const { info, port, sharedKey } = wallets[0];
27
27
  *
28
28
  * // User can verify emoji if desired
29
- * console.log('Verify:', hashToEmoji(connection.info.verificationHash!));
29
+ * console.log('Verify:', hashToEmoji(info.verificationHash!));
30
30
  *
31
- * // Create wallet using the connection
32
- * const wallet = ExtensionWallet.create(connection.info.id, connection.port, connection.sharedKey, chainInfo, 'my-dapp');
31
+ * // Create wallet using the discovered components
32
+ * const wallet = await ExtensionWallet.create(info, chainInfo, port, sharedKey, 'my-dapp');
33
33
  *
34
34
  * // All subsequent calls are encrypted
35
35
  * const accounts = await wallet.getAccounts();
@@ -59,47 +59,68 @@ import { WalletMessageType } from '../../types.js';
59
59
  this.inFlight = new Map();
60
60
  this.disconnected = false;
61
61
  this.disconnectCallbacks = [];
62
+ this.walletProxy = null;
62
63
  }
64
+ /** Cached Wallet proxy instance */ walletProxy;
63
65
  /**
64
- * Creates a Wallet that communicates with a browser extension
66
+ * Creates an ExtensionWallet instance that communicates with a browser extension
65
67
  * over a secure encrypted MessageChannel.
66
68
  *
67
- * @param extensionId - The unique identifier of the wallet extension
68
- * @param port - The MessagePort for encrypted communication with the wallet
69
- * @param sharedKey - The derived AES-256-GCM shared key for encryption
69
+ * @param walletInfo - The wallet info from ExtensionProvider.discoverExtensions()
70
70
  * @param chainInfo - The chain information (chainId and version) for request context
71
+ * @param port - The MessagePort for private communication with the wallet
72
+ * @param sharedKey - The derived AES-256-GCM shared key for encryption
71
73
  * @param appId - Application identifier used to identify the requesting dApp to the wallet
72
- * @returns A Wallet interface where all method calls are encrypted
74
+ * @returns The ExtensionWallet instance. Use {@link getWallet} to get the Wallet interface.
73
75
  *
74
76
  * @example
75
77
  * ```typescript
76
- * const discoveredWallets = await ExtensionProvider.discoverWallets(chainInfo, { appId: 'my-defi-app' });
77
- * const connection = await discoveredWallets[0].establishSecureChannel();
78
- * const wallet = ExtensionWallet.create(
79
- * connection.info.id,
80
- * connection.port,
81
- * connection.sharedKey,
82
- * chainInfo,
78
+ * const wallets = await ExtensionProvider.discoverExtensions(chainInfo);
79
+ * const { info, port, sharedKey } = wallets[0];
80
+ * const extensionWallet = ExtensionWallet.create(
81
+ * info,
82
+ * { chainId: Fr(31337), version: Fr(0) },
83
+ * port,
84
+ * sharedKey,
83
85
  * 'my-defi-app'
84
86
  * );
85
87
  *
88
+ * // Register disconnect handler
89
+ * extensionWallet.onDisconnect(() => console.log('Disconnected!'));
90
+ *
91
+ * // Get the Wallet interface for dApp usage
92
+ * const wallet = extensionWallet.getWallet();
86
93
  * const accounts = await wallet.getAccounts();
87
94
  * ```
88
- */ static create(extensionId, port, sharedKey, chainInfo, appId) {
89
- const wallet = new ExtensionWallet(chainInfo, appId, extensionId, port, sharedKey);
90
- // Set up message handler for encrypted responses and unencrypted control messages
95
+ */ static create(walletInfo, chainInfo, port, sharedKey, appId) {
96
+ const wallet = new ExtensionWallet(chainInfo, appId, walletInfo.id, port, sharedKey);
97
+ // Set up message handler - all messages are now encrypted
91
98
  wallet.port.onmessage = (event)=>{
92
- const data = event.data;
93
- // Check for unencrypted disconnect notification
94
- if (data && typeof data === 'object' && 'type' in data && data.type === WalletMessageType.DISCONNECT) {
95
- wallet.handleDisconnect();
96
- return;
97
- }
98
- // Otherwise treat as encrypted payload
99
- void wallet.handleEncryptedResponse(data);
99
+ void wallet.handleEncryptedResponse(event.data);
100
100
  };
101
101
  wallet.port.start();
102
- return new Proxy(wallet, {
102
+ return wallet;
103
+ }
104
+ /**
105
+ * Returns a Wallet interface that proxies all method calls through the secure channel.
106
+ *
107
+ * The returned Wallet can be used directly by dApps - all method calls are automatically
108
+ * encrypted and sent to the wallet extension.
109
+ *
110
+ * @returns A Wallet implementation that encrypts all communication
111
+ *
112
+ * @example
113
+ * ```typescript
114
+ * const extensionWallet = ExtensionWallet.create(info, chainInfo, port, sharedKey, 'my-app');
115
+ * const wallet = extensionWallet.getWallet();
116
+ * const accounts = await wallet.getAccounts();
117
+ * ```
118
+ */ getWallet() {
119
+ if (this.walletProxy) {
120
+ return this.walletProxy;
121
+ }
122
+ // Create a Proxy that intercepts wallet method calls and forwards them to the extension
123
+ this.walletProxy = new Proxy(this, {
103
124
  get: (target, prop)=>{
104
125
  if (schemaHasMethod(WalletSchema, prop.toString())) {
105
126
  return async (...args)=>{
@@ -114,6 +135,7 @@ import { WalletMessageType } from '../../types.js';
114
135
  }
115
136
  }
116
137
  });
138
+ return this.walletProxy;
117
139
  }
118
140
  /**
119
141
  * Handles an encrypted response received from the wallet extension.
@@ -129,6 +151,12 @@ import { WalletMessageType } from '../../types.js';
129
151
  try {
130
152
  const response = await decrypt(this.sharedKey, encrypted);
131
153
  const { messageId, result, error, walletId: responseWalletId } = response;
154
+ // Check for disconnect notification from the wallet backend
155
+ // This is sent as an encrypted error response with a special type
156
+ if (error && typeof error === 'object' && 'type' in error && error.type === WalletMessageType.SESSION_DISCONNECTED) {
157
+ this.handleDisconnect();
158
+ return;
159
+ }
132
160
  if (!messageId || !responseWalletId) {
133
161
  return;
134
162
  }
@@ -175,7 +203,8 @@ import { WalletMessageType } from '../../types.js';
175
203
  appId: this.appId,
176
204
  walletId: this.extensionId
177
205
  };
178
- const encrypted = await encrypt(this.sharedKey, jsonStringify(message));
206
+ // Encrypt the message and send over the private MessageChannel
207
+ const encrypted = await encrypt(this.sharedKey, message);
179
208
  this.port.postMessage(encrypted);
180
209
  const { promise, resolve, reject } = promiseWithResolvers();
181
210
  this.inFlight.set(messageId, {
@@ -194,20 +223,25 @@ import { WalletMessageType } from '../../types.js';
194
223
  return;
195
224
  }
196
225
  this.disconnected = true;
226
+ // Close the port to prevent any further messages
197
227
  if (this.port) {
198
228
  this.port.onmessage = null;
199
229
  this.port.close();
200
230
  }
231
+ // Reject all pending requests
232
+ // Note: These rejections should be caught by the callers, but we log them
233
+ // here to help with debugging if they become unhandled
201
234
  const error = new Error('Wallet disconnected');
202
235
  for (const { reject } of this.inFlight.values()){
203
236
  reject(error);
204
237
  }
205
238
  this.inFlight.clear();
239
+ // Notify registered callbacks
206
240
  for (const callback of this.disconnectCallbacks){
207
241
  try {
208
242
  callback();
209
243
  } catch {
210
- // Ignore errors on disconnect callbacks
244
+ // Ignore errors in callbacks
211
245
  }
212
246
  }
213
247
  }
@@ -251,21 +285,34 @@ import { WalletMessageType } from '../../types.js';
251
285
  *
252
286
  * @example
253
287
  * ```typescript
254
- * const extensionWallet = ExtensionWallet.create(extensionId, port, sharedKey, chainInfo, 'my-app');
288
+ * const wallet = await provider.connect('my-app');
255
289
  * // ... use wallet ...
256
- * await extensionWallet.disconnect(); // Clean disconnect when done
290
+ * await wallet.disconnect(); // Clean disconnect when done
257
291
  * ```
258
- */ // eslint-disable-next-line require-await -- async for interface compatibility
259
- async disconnect() {
292
+ */ async disconnect() {
260
293
  if (this.disconnected) {
261
294
  return;
262
295
  }
263
- if (this.port) {
264
- // Send unencrypted disconnect - control messages don't need encryption
265
- this.port.postMessage({
266
- type: WalletMessageType.DISCONNECT
267
- });
296
+ // Send disconnect message to extension before closing
297
+ if (this.port && this.sharedKey) {
298
+ try {
299
+ const message = {
300
+ type: WalletMessageType.DISCONNECT,
301
+ messageId: globalThis.crypto.randomUUID(),
302
+ chainInfo: this.chainInfo,
303
+ appId: this.appId,
304
+ walletId: this.extensionId,
305
+ args: []
306
+ };
307
+ const encrypted = await encrypt(this.sharedKey, message);
308
+ this.port.postMessage(encrypted);
309
+ } catch {
310
+ // Ignore errors sending disconnect message
311
+ }
268
312
  }
269
313
  this.handleDisconnect();
314
+ if (this.port) {
315
+ this.port.close();
316
+ }
270
317
  }
271
318
  }
@@ -0,0 +1,6 @@
1
+ export { ExtensionWallet, type DisconnectCallback } from './extension_wallet.js';
2
+ export { ExtensionProvider, type DiscoveredWallet } from './extension_provider.js';
3
+ export * from '../../crypto.js';
4
+ export { WalletMessageType } from '../../types.js';
5
+ export type { WalletInfo, WalletMessage, WalletResponse, DiscoveryRequest, DiscoveryResponse } from '../../types.js';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wcm92aWRlcnMvZXh0ZW5zaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkYsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/extension/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnF,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,2 +1,4 @@
1
1
  export { ExtensionWallet } from './extension_wallet.js';
2
2
  export { ExtensionProvider } from './extension_provider.js';
3
+ export * from '../../crypto.js';
4
+ export { WalletMessageType } from '../../types.js';
package/dest/types.d.ts CHANGED
@@ -9,16 +9,13 @@ export declare enum WalletMessageType {
9
9
  DISCOVERY = "aztec-wallet-discovery",
10
10
  /** Discovery response from a wallet */
11
11
  DISCOVERY_RESPONSE = "aztec-wallet-discovery-response",
12
- /** Disconnect message (unencrypted control message, bidirectional) */
13
- DISCONNECT = "aztec-wallet-disconnect",
14
- /** Key exchange request sent over MessageChannel */
15
- KEY_EXCHANGE_REQUEST = "aztec-wallet-key-exchange-request",
16
- /** Key exchange response sent over MessageChannel */
17
- KEY_EXCHANGE_RESPONSE = "aztec-wallet-key-exchange-response"
12
+ /** Session disconnected notification (unencrypted control message) */
13
+ SESSION_DISCONNECTED = "aztec-wallet-session-disconnected",
14
+ /** Explicit disconnect request from dApp */
15
+ DISCONNECT = "aztec-wallet-disconnect"
18
16
  }
19
17
  /**
20
- * Information about an installed Aztec wallet.
21
- * Used during discovery phase before key exchange.
18
+ * Information about an installed Aztec wallet
22
19
  */
23
20
  export interface WalletInfo {
24
21
  /** Unique identifier for the wallet */
@@ -29,16 +26,10 @@ export interface WalletInfo {
29
26
  icon?: string;
30
27
  /** Wallet version */
31
28
  version: string;
32
- }
33
- /**
34
- * Full information about a connected Aztec wallet including crypto material.
35
- * Available after key exchange completes.
36
- */
37
- export interface ConnectedWalletInfo extends WalletInfo {
38
29
  /** Wallet's ECDH public key for secure channel establishment */
39
30
  publicKey: ExportedPublicKey;
40
31
  /**
41
- * Verification hash for verification.
32
+ * Hash of the shared secret for anti-MITM verification.
42
33
  * Both dApp and wallet independently compute this from the ECDH shared secret.
43
34
  * Use {@link hashToEmoji} to convert to a visual representation for user verification.
44
35
  */
@@ -75,49 +66,27 @@ export interface WalletResponse {
75
66
  walletId: string;
76
67
  }
77
68
  /**
78
- * Discovery message for finding installed wallets (public, unencrypted).
69
+ * Discovery message for finding installed wallets (public, unencrypted)
79
70
  */
80
71
  export interface DiscoveryRequest {
81
72
  /** Message type for discovery */
82
73
  type: WalletMessageType.DISCOVERY;
83
74
  /** Request ID */
84
75
  requestId: string;
85
- /** Application ID making the request */
86
- appId: string;
87
76
  /** Chain information to check if wallet supports this network */
88
77
  chainInfo: ChainInfo;
78
+ /** dApp's ECDH public key for deriving shared secret */
79
+ publicKey: ExportedPublicKey;
89
80
  }
90
81
  /**
91
- * Discovery response from a wallet (public, unencrypted).
82
+ * Discovery response from a wallet (public, unencrypted)
92
83
  */
93
84
  export interface DiscoveryResponse {
94
85
  /** Message type for discovery response */
95
86
  type: WalletMessageType.DISCOVERY_RESPONSE;
96
87
  /** Request ID matching the discovery request */
97
88
  requestId: string;
98
- /** Basic wallet information */
89
+ /** Wallet information */
99
90
  walletInfo: WalletInfo;
100
91
  }
101
- /**
102
- * Key exchange request sent over MessageChannel after discovery approval.
103
- */
104
- export interface KeyExchangeRequest {
105
- /** Message type */
106
- type: WalletMessageType.KEY_EXCHANGE_REQUEST;
107
- /** Request ID matching the discovery request */
108
- requestId: string;
109
- /** dApp's ECDH public key for deriving shared secret */
110
- publicKey: ExportedPublicKey;
111
- }
112
- /**
113
- * Key exchange response sent over MessageChannel.
114
- */
115
- export interface KeyExchangeResponse {
116
- /** Message type */
117
- type: WalletMessageType.KEY_EXCHANGE_RESPONSE;
118
- /** Request ID matching the discovery request */
119
- requestId: string;
120
- /** Wallet's ECDH public key for deriving shared secret */
121
- publicKey: ExportedPublicKey;
122
- }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRDs7O0dBR0c7QUFDSCxvQkFBWSxpQkFBaUI7SUFDM0Isa0RBQWtEO0lBQ2xELFNBQVMsMkJBQTJCO0lBQ3BDLHVDQUF1QztJQUN2QyxrQkFBa0Isb0NBQW9DO0lBQ3RELHNFQUFzRTtJQUN0RSxVQUFVLDRCQUE0QjtJQUN0QyxvREFBb0Q7SUFDcEQsb0JBQW9CLHNDQUFzQztJQUMxRCxxREFBcUQ7SUFDckQscUJBQXFCLHVDQUF1QztDQUM3RDtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxVQUFVO0lBQ3pCLHVDQUF1QztJQUN2QyxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsaUNBQWlDO0lBQ2pDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2QscUJBQXFCO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLENBQUM7Q0FDakI7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFdBQVcsbUJBQW9CLFNBQVEsVUFBVTtJQUNyRCxnRUFBZ0U7SUFDaEUsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0lBQzdCOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMzQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsK0NBQStDO0lBQy9DLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0NBQWdDO0lBQ2hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLHdCQUF3QjtJQUN4QixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLHdDQUF3QztJQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsNENBQTRDO0lBQzVDLFFBQVEsRUFBRSxNQUFNLENBQUM7Q0FDbEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxjQUFjO0lBQzdCLHNDQUFzQztJQUN0QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGtDQUFrQztJQUNsQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsNkJBQTZCO0lBQzdCLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNoQix1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sQ0FBQztDQUNsQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixpQ0FBaUM7SUFDakMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztJQUNsQyxpQkFBaUI7SUFDakIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQix3Q0FBd0M7SUFDeEMsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLGlFQUFpRTtJQUNqRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0NBQ3RCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLDBDQUEwQztJQUMxQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsa0JBQWtCLENBQUM7SUFDM0MsZ0RBQWdEO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsK0JBQStCO0lBQy9CLFVBQVUsRUFBRSxVQUFVLENBQUM7Q0FDeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxrQkFBa0I7SUFDakMsbUJBQW1CO0lBQ25CLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztJQUM3QyxnREFBZ0Q7SUFDaEQsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQix3REFBd0Q7SUFDeEQsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0NBQzlCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7SUFDOUMsZ0RBQWdEO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsMERBQTBEO0lBQzFELFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztDQUM5QiJ9
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRDs7O0dBR0c7QUFDSCxvQkFBWSxpQkFBaUI7SUFDM0Isa0RBQWtEO0lBQ2xELFNBQVMsMkJBQTJCO0lBQ3BDLHVDQUF1QztJQUN2QyxrQkFBa0Isb0NBQW9DO0lBQ3RELHNFQUFzRTtJQUN0RSxvQkFBb0Isc0NBQXNDO0lBQzFELDRDQUE0QztJQUM1QyxVQUFVLDRCQUE0QjtDQUN2QztBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLFVBQVU7SUFDekIsdUNBQXVDO0lBQ3ZDLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxpQ0FBaUM7SUFDakMsSUFBSSxFQUFFLE1BQU0sQ0FBQztJQUNiLCtCQUErQjtJQUMvQixJQUFJLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDZCxxQkFBcUI7SUFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQixnRUFBZ0U7SUFDaEUsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0lBQzdCOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMzQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsK0NBQStDO0lBQy9DLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0NBQWdDO0lBQ2hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLHdCQUF3QjtJQUN4QixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLHdDQUF3QztJQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsNENBQTRDO0lBQzVDLFFBQVEsRUFBRSxNQUFNLENBQUM7Q0FDbEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxjQUFjO0lBQzdCLHNDQUFzQztJQUN0QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGtDQUFrQztJQUNsQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsNkJBQTZCO0lBQzdCLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNoQix1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sQ0FBQztDQUNsQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixpQ0FBaUM7SUFDakMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztJQUNsQyxpQkFBaUI7SUFDakIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixpRUFBaUU7SUFDakUsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQix3REFBd0Q7SUFDeEQsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0NBQzlCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLDBDQUEwQztJQUMxQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsa0JBQWtCLENBQUM7SUFDM0MsZ0RBQWdEO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIseUJBQXlCO0lBQ3pCLFVBQVUsRUFBRSxVQUFVLENBQUM7Q0FDeEIifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B,kDAAkD;IAClD,SAAS,2BAA2B;IACpC,uCAAuC;IACvC,kBAAkB,oCAAoC;IACtD,sEAAsE;IACtE,UAAU,4BAA4B;IACtC,oDAAoD;IACpD,oBAAoB,sCAAsC;IAC1D,qDAAqD;IACrD,qBAAqB,uCAAuC;CAC7D;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,gEAAgE;IAChE,SAAS,EAAE,iBAAiB,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,wBAAwB;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;IAClC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,SAAS,EAAE,SAAS,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,IAAI,EAAE,iBAAiB,CAAC,kBAAkB,CAAC;IAC3C,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,IAAI,EAAE,iBAAiB,CAAC,oBAAoB,CAAC;IAC7C,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB;IACnB,IAAI,EAAE,iBAAiB,CAAC,qBAAqB,CAAC;IAC9C,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,SAAS,EAAE,iBAAiB,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;GAGG;AACH,oBAAY,iBAAiB;IAC3B,kDAAkD;IAClD,SAAS,2BAA2B;IACpC,uCAAuC;IACvC,kBAAkB,oCAAoC;IACtD,sEAAsE;IACtE,oBAAoB,sCAAsC;IAC1D,4CAA4C;IAC5C,UAAU,4BAA4B;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,SAAS,EAAE,iBAAiB,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,wBAAwB;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;IAClC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,SAAS,EAAE,SAAS,CAAC;IACrB,wDAAwD;IACxD,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,IAAI,EAAE,iBAAiB,CAAC,kBAAkB,CAAC;IAC3C,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,UAAU,EAAE,UAAU,CAAC;CACxB"}
package/dest/types.js CHANGED
@@ -4,8 +4,7 @@
4
4
  */ export var WalletMessageType = /*#__PURE__*/ function(WalletMessageType) {
5
5
  /** Discovery request to find installed wallets */ WalletMessageType["DISCOVERY"] = "aztec-wallet-discovery";
6
6
  /** Discovery response from a wallet */ WalletMessageType["DISCOVERY_RESPONSE"] = "aztec-wallet-discovery-response";
7
- /** Disconnect message (unencrypted control message, bidirectional) */ WalletMessageType["DISCONNECT"] = "aztec-wallet-disconnect";
8
- /** Key exchange request sent over MessageChannel */ WalletMessageType["KEY_EXCHANGE_REQUEST"] = "aztec-wallet-key-exchange-request";
9
- /** Key exchange response sent over MessageChannel */ WalletMessageType["KEY_EXCHANGE_RESPONSE"] = "aztec-wallet-key-exchange-response";
7
+ /** Session disconnected notification (unencrypted control message) */ WalletMessageType["SESSION_DISCONNECTED"] = "aztec-wallet-session-disconnected";
8
+ /** Explicit disconnect request from dApp */ WalletMessageType["DISCONNECT"] = "aztec-wallet-disconnect";
10
9
  return WalletMessageType;
11
10
  }({});
package/package.json CHANGED
@@ -1,12 +1,11 @@
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.d1f2d6c",
4
+ "version": "0.0.1-commit.d431d1c",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./base-wallet": "./dest/base-wallet/index.js",
8
- "./extension/handlers": "./dest/extension/handlers/index.js",
9
- "./extension/provider": "./dest/extension/provider/index.js",
8
+ "./providers/extension": "./dest/providers/extension/index.js",
10
9
  "./crypto": "./dest/crypto.js",
11
10
  "./types": "./dest/types.js",
12
11
  "./manager": "./dest/manager/index.js"
@@ -65,15 +64,15 @@
65
64
  ]
66
65
  },
67
66
  "dependencies": {
68
- "@aztec/aztec.js": "0.0.1-commit.d1f2d6c",
69
- "@aztec/constants": "0.0.1-commit.d1f2d6c",
70
- "@aztec/entrypoints": "0.0.1-commit.d1f2d6c",
71
- "@aztec/foundation": "0.0.1-commit.d1f2d6c",
72
- "@aztec/pxe": "0.0.1-commit.d1f2d6c",
73
- "@aztec/stdlib": "0.0.1-commit.d1f2d6c"
67
+ "@aztec/aztec.js": "0.0.1-commit.d431d1c",
68
+ "@aztec/constants": "0.0.1-commit.d431d1c",
69
+ "@aztec/entrypoints": "0.0.1-commit.d431d1c",
70
+ "@aztec/foundation": "0.0.1-commit.d431d1c",
71
+ "@aztec/pxe": "0.0.1-commit.d431d1c",
72
+ "@aztec/stdlib": "0.0.1-commit.d431d1c"
74
73
  },
75
74
  "devDependencies": {
76
- "@aztec/noir-contracts.js": "0.0.1-commit.d1f2d6c",
75
+ "@aztec/noir-contracts.js": "0.0.1-commit.d431d1c",
77
76
  "@jest/globals": "^30.0.0",
78
77
  "@types/jest": "^30.0.0",
79
78
  "@types/node": "^22.15.17",
@@ -1,8 +1,6 @@
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';
4
3
  import type { FeePaymentMethod } from '@aztec/aztec.js/fee';
5
- import { waitForTx } from '@aztec/aztec.js/node';
6
4
  import type {
7
5
  Aliased,
8
6
  BatchResults,
@@ -45,7 +43,9 @@ import { siloNullifier } from '@aztec/stdlib/hash';
45
43
  import type { AztecNode } from '@aztec/stdlib/interfaces/client';
46
44
  import type {
47
45
  TxExecutionRequest,
46
+ TxHash,
48
47
  TxProfileResult,
48
+ TxReceipt,
49
49
  TxSimulationResult,
50
50
  UtilitySimulationResult,
51
51
  } from '@aztec/stdlib/tx';
@@ -282,10 +282,7 @@ export abstract class BaseWallet implements Wallet {
282
282
  return this.pxe.profileTx(txRequest, opts.profileMode, opts.skipProofGeneration ?? true);
283
283
  }
284
284
 
285
- public async sendTx<W extends InteractionWaitOptions = undefined>(
286
- executionPayload: ExecutionPayload,
287
- opts: SendOptions<W>,
288
- ): Promise<SendReturn<W>> {
285
+ async sendTx(executionPayload: ExecutionPayload, opts: SendOptions): Promise<TxHash> {
289
286
  const feeOptions = await this.completeFeeOptions(opts.from, executionPayload.feePayer, opts.fee?.gasSettings);
290
287
  const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, feeOptions);
291
288
  const provenTx = await this.pxe.proveTx(txRequest);
@@ -299,15 +296,7 @@ export abstract class BaseWallet implements Wallet {
299
296
  throw this.contextualizeError(err, inspect(tx));
300
297
  });
301
298
  this.log.info(`Sent transaction ${txHash}`);
302
-
303
- // If wait is NO_WAIT, return txHash immediately
304
- if (opts.wait === NO_WAIT) {
305
- return txHash as SendReturn<W>;
306
- }
307
-
308
- // Otherwise, wait for the full receipt (default behavior on wait: undefined)
309
- const waitOpts = typeof opts.wait === 'object' ? opts.wait : undefined;
310
- return (await waitForTx(this.aztecNode, txHash, waitOpts)) as SendReturn<W>;
299
+ return txHash;
311
300
  }
312
301
 
313
302
  protected contextualizeError(err: Error, ...context: string[]): Error {
@@ -328,6 +317,10 @@ export abstract class BaseWallet implements Wallet {
328
317
  return this.pxe.simulateUtility(call, authwits);
329
318
  }
330
319
 
320
+ getTxReceipt(txHash: TxHash): Promise<TxReceipt> {
321
+ return this.aztecNode.getTxReceipt(txHash);
322
+ }
323
+
331
324
  async getPrivateEvents<T>(
332
325
  eventDef: EventMetadataDefinition,
333
326
  eventFilter: PrivateEventFilter,