@aztec/wallet-sdk 4.0.0-devnet.2-patch.4 → 4.0.0-devnet.3-patch.1

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 +31 -20
  2. package/dest/base-wallet/base_wallet.d.ts.map +1 -1
  3. package/dest/base-wallet/base_wallet.js +108 -48
  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 +6 -3
  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 +159 -82
  44. package/src/base-wallet/index.ts +1 -1
  45. package/src/base-wallet/utils.ts +8 -0
  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
@@ -0,0 +1,200 @@
1
+ /**
2
+ * IframeWallet — Wallet proxy that communicates with a web wallet loaded in an iframe.
3
+ *
4
+ * This mirrors {@link ExtensionWallet} from `@aztec/wallet-sdk/extension/provider` but uses
5
+ * `window.postMessage` / `window.addEventListener('message')` instead of MessagePort.
6
+ *
7
+ * The wire protocol (encrypted {@link WalletMessage} / {@link WalletResponse}) is identical.
8
+ */ import { WalletSchema } from '@aztec/aztec.js/wallet';
9
+ import { jsonStringify } from '@aztec/foundation/json-rpc';
10
+ import { promiseWithResolvers } from '@aztec/foundation/promise';
11
+ import { schemaHasMethod } from '@aztec/foundation/schemas';
12
+ import { decrypt, encrypt } from '../../crypto.js';
13
+ import { WalletMessageType } from '../../types.js';
14
+ /**
15
+ * A wallet implementation that communicates with a web wallet loaded in an iframe
16
+ * using encrypted postMessage.
17
+ *
18
+ * Uses the same Proxy pattern as {@link ExtensionWallet}: intercepts property access,
19
+ * checks if the property is a Wallet method via {@link WalletSchema}, and routes the
20
+ * call through an encrypted postMessage channel.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const wallet = IframeWallet.create(walletId, sessionId, iframeWindow, walletOrigin, sharedKey, chainInfo, appId);
25
+ * const accounts = await wallet.asWallet().getAccounts();
26
+ * ```
27
+ */ export class IframeWallet {
28
+ chainInfo;
29
+ appId;
30
+ walletId;
31
+ sessionId;
32
+ iframeWindow;
33
+ walletOrigin;
34
+ sharedKey;
35
+ inFlight;
36
+ disconnected;
37
+ disconnectCallbacks;
38
+ messageListener;
39
+ constructor(chainInfo, appId, walletId, sessionId, iframeWindow, walletOrigin, sharedKey){
40
+ this.chainInfo = chainInfo;
41
+ this.appId = appId;
42
+ this.walletId = walletId;
43
+ this.sessionId = sessionId;
44
+ this.iframeWindow = iframeWindow;
45
+ this.walletOrigin = walletOrigin;
46
+ this.sharedKey = sharedKey;
47
+ this.inFlight = new Map();
48
+ this.disconnected = false;
49
+ this.disconnectCallbacks = [];
50
+ this.messageListener = null;
51
+ }
52
+ /**
53
+ * Creates a proxied IframeWallet that implements the {@link Wallet} interface.
54
+ *
55
+ * All Wallet method calls are intercepted by a Proxy, encrypted with the shared
56
+ * AES-256-GCM key, sent via postMessage, and the response is decrypted and
57
+ * validated against {@link WalletSchema}.
58
+ *
59
+ * @param walletId - Unique identifier of the remote wallet
60
+ * @param sessionId - Session identifier from the key exchange
61
+ * @param iframeWindow - The iframe's contentWindow to post messages to
62
+ * @param walletOrigin - Origin of the wallet iframe (for postMessage targeting)
63
+ * @param sharedKey - AES-256-GCM key derived from ECDH key exchange
64
+ * @param chainInfo - Network information (chainId and version)
65
+ * @param appId - Application identifier for the requesting dApp
66
+ * @returns A proxied IframeWallet — call `.asWallet()` to get the typed `Wallet`
67
+ */ static create(walletId, sessionId, iframeWindow, walletOrigin, sharedKey, chainInfo, appId) {
68
+ const wallet = new IframeWallet(chainInfo, appId, walletId, sessionId, iframeWindow, walletOrigin, sharedKey);
69
+ wallet.messageListener = (event)=>{
70
+ if (event.origin !== walletOrigin) {
71
+ return;
72
+ }
73
+ const msg = event.data;
74
+ if (!msg || typeof msg !== 'object') {
75
+ return;
76
+ }
77
+ if (msg.type === WalletMessageType.SECURE_RESPONSE && msg.sessionId === sessionId) {
78
+ void wallet.handleEncryptedResponse(msg.encrypted);
79
+ } else if (msg.type === WalletMessageType.SESSION_DISCONNECTED && msg.sessionId === sessionId) {
80
+ wallet.handleDisconnect();
81
+ }
82
+ };
83
+ window.addEventListener('message', wallet.messageListener);
84
+ return new Proxy(wallet, {
85
+ get: (target, prop, receiver)=>{
86
+ if (prop === 'asWallet') {
87
+ return ()=>receiver;
88
+ } else if (schemaHasMethod(WalletSchema, prop.toString())) {
89
+ return async (...args)=>{
90
+ const result = await target.postMessage({
91
+ type: prop.toString(),
92
+ args
93
+ });
94
+ return WalletSchema[prop.toString()].returnType().parseAsync(result);
95
+ };
96
+ } else {
97
+ return target[prop];
98
+ }
99
+ }
100
+ });
101
+ }
102
+ /**
103
+ * Returns this wallet as a typed {@link Wallet} interface.
104
+ * When accessed through the Proxy (via `create()`), returns the proxy itself.
105
+ */ asWallet() {
106
+ return this;
107
+ }
108
+ async handleEncryptedResponse(encrypted) {
109
+ try {
110
+ const response = await decrypt(this.sharedKey, encrypted);
111
+ const { messageId, result, error, walletId: responseWalletId } = response;
112
+ if (!messageId || responseWalletId !== this.walletId) {
113
+ return;
114
+ }
115
+ const pending = this.inFlight.get(messageId);
116
+ if (!pending) {
117
+ return;
118
+ }
119
+ if (error) {
120
+ pending.reject(new Error(jsonStringify(error)));
121
+ } else {
122
+ pending.resolve(result);
123
+ }
124
+ this.inFlight.delete(messageId);
125
+ } catch {
126
+ // Decryption errors are silently ignored (message not for us or corrupted)
127
+ }
128
+ }
129
+ async postMessage(call) {
130
+ if (this.disconnected) {
131
+ throw new Error('Wallet has been disconnected');
132
+ }
133
+ const messageId = globalThis.crypto.randomUUID();
134
+ const message = {
135
+ type: call.type,
136
+ args: call.args,
137
+ messageId,
138
+ chainInfo: this.chainInfo,
139
+ appId: this.appId,
140
+ walletId: this.walletId
141
+ };
142
+ const encrypted = await encrypt(this.sharedKey, jsonStringify(message));
143
+ this.iframeWindow.postMessage({
144
+ type: WalletMessageType.SECURE_MESSAGE,
145
+ sessionId: this.sessionId,
146
+ encrypted
147
+ }, this.walletOrigin);
148
+ const { promise, resolve, reject } = promiseWithResolvers();
149
+ this.inFlight.set(messageId, {
150
+ promise,
151
+ resolve,
152
+ reject
153
+ });
154
+ return promise;
155
+ }
156
+ handleDisconnect() {
157
+ if (this.disconnected) {
158
+ return;
159
+ }
160
+ this.disconnected = true;
161
+ if (this.messageListener) {
162
+ window.removeEventListener('message', this.messageListener);
163
+ this.messageListener = null;
164
+ }
165
+ const error = new Error('Wallet disconnected');
166
+ for (const { reject } of this.inFlight.values()){
167
+ reject(error);
168
+ }
169
+ this.inFlight.clear();
170
+ for (const cb of this.disconnectCallbacks){
171
+ try {
172
+ cb();
173
+ } catch {
174
+ // Ignore errors in disconnect callbacks
175
+ }
176
+ }
177
+ }
178
+ onDisconnect(callback) {
179
+ this.disconnectCallbacks.push(callback);
180
+ return ()=>{
181
+ const i = this.disconnectCallbacks.indexOf(callback);
182
+ if (i !== -1) {
183
+ this.disconnectCallbacks.splice(i, 1);
184
+ }
185
+ };
186
+ }
187
+ isDisconnected() {
188
+ return this.disconnected;
189
+ }
190
+ disconnect() {
191
+ if (this.disconnected) {
192
+ return;
193
+ }
194
+ this.iframeWindow.postMessage({
195
+ type: WalletMessageType.DISCONNECT,
196
+ sessionId: this.sessionId
197
+ }, this.walletOrigin);
198
+ this.handleDisconnect();
199
+ }
200
+ }
@@ -0,0 +1,4 @@
1
+ export { IframeWallet } from './iframe_wallet.js';
2
+ export { IframeWalletProvider, type IframeConnectionOptions } from './iframe_provider.js';
3
+ export { discoverWebWallets } from './iframe_discovery.js';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pZnJhbWUvcHJvdmlkZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxLQUFLLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/iframe/provider/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { IframeWallet } from './iframe_wallet.js';
2
+ export { IframeWalletProvider } from './iframe_provider.js';
3
+ export { discoverWebWallets } from './iframe_discovery.js';
@@ -87,6 +87,7 @@ export interface WalletProvider {
87
87
  * matches their wallet before calling `confirm()`.
88
88
  *
89
89
  * @param appId - Application identifier for the requesting dapp
90
+ * @param options - Optional provider-specific options (e.g. container element for iframe wallets)
90
91
  * @returns A pending connection with verification hash and confirm/cancel methods
91
92
  *
92
93
  * @example
@@ -101,7 +102,7 @@ export interface WalletProvider {
101
102
  * const wallet = await pending.confirm();
102
103
  * ```
103
104
  */
104
- establishSecureChannel(appId: string): Promise<PendingConnection>;
105
+ establishSecureChannel(appId: string, options?: Record<string, unknown>): Promise<PendingConnection>;
105
106
  /**
106
107
  * Disconnects the current wallet and cleans up resources.
107
108
  * After calling this, the wallet returned from confirm() should no longer be used.
@@ -164,4 +165,4 @@ export interface DiscoverySession {
164
165
  /** Cancel discovery immediately and clean up resources */
165
166
  cancel: () => void;
166
167
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sV0FBVyxpQkFBaUI7SUFDaEM7Ozs7T0FJRztJQUNILGdCQUFnQixFQUFFLE1BQU0sQ0FBQztJQUV6Qjs7O09BR0c7SUFDSCxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTNCOzs7T0FHRztJQUNILE1BQU0sSUFBSSxJQUFJLENBQUM7Q0FDaEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxxQkFBcUI7SUFDcEMsNENBQTRDO0lBQzVDLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIseURBQXlEO0lBQ3pELFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3JCLHlEQUF5RDtJQUN6RCxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUN0QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGVBQWU7SUFDOUIsa0NBQWtDO0lBQ2xDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUNoQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLG1CQUFtQjtJQUNsQyxxQ0FBcUM7SUFDckMsVUFBVSxDQUFDLEVBQUUscUJBQXFCLENBQUM7SUFDbkMsK0JBQStCO0lBQy9CLFVBQVUsQ0FBQyxFQUFFLGVBQWUsQ0FBQztDQUM5QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxJQUFJLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0IseUNBQXlDO0lBQ3pDLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCw4QkFBOEI7SUFDOUIsSUFBSSxFQUFFLGtCQUFrQixDQUFDO0lBQ3pCLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsZUFBZTtJQUNmLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNkLDBCQUEwQjtJQUMxQixRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0gsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNsRTs7OztPQUlHO0lBQ0gsVUFBVSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1Qjs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsR0FBRyxNQUFNLElBQUksQ0FBQztJQUNsRTs7O09BR0c7SUFDSCxjQUFjLElBQUksT0FBTyxDQUFDO0NBQzNCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsc0JBQXNCO0lBQ3JDLHFDQUFxQztJQUNyQyxTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLHdDQUF3QztJQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsOERBQThEO0lBQzlELE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNqQjs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLEtBQUssSUFBSSxDQUFDO0NBQ3pEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0Isd0VBQXdFO0lBQ3hFLE9BQU8sRUFBRSxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMscUVBQXFFO0lBQ3JFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsMERBQTBEO0lBQzFELE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztDQUNwQiJ9
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sV0FBVyxpQkFBaUI7SUFDaEM7Ozs7T0FJRztJQUNILGdCQUFnQixFQUFFLE1BQU0sQ0FBQztJQUV6Qjs7O09BR0c7SUFDSCxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRTNCOzs7T0FHRztJQUNILE1BQU0sSUFBSSxJQUFJLENBQUM7Q0FDaEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxxQkFBcUI7SUFDcEMsNENBQTRDO0lBQzVDLE9BQU8sRUFBRSxPQUFPLENBQUM7SUFDakIseURBQXlEO0lBQ3pELFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQ3JCLHlEQUF5RDtJQUN6RCxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUN0QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGVBQWU7SUFDOUIsa0NBQWtDO0lBQ2xDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztDQUNoQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLG1CQUFtQjtJQUNsQyxxQ0FBcUM7SUFDckMsVUFBVSxDQUFDLEVBQUUscUJBQXFCLENBQUM7SUFDbkMsK0JBQStCO0lBQy9CLFVBQVUsQ0FBQyxFQUFFLGVBQWUsQ0FBQztDQUM5QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUM7QUFFckQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxJQUFJLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0IseUNBQXlDO0lBQ3pDLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCw4QkFBOEI7SUFDOUIsSUFBSSxFQUFFLGtCQUFrQixDQUFDO0lBQ3pCLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsZUFBZTtJQUNmLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNkLDBCQUEwQjtJQUMxQixRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXVCRztJQUNILHNCQUFzQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyRzs7OztPQUlHO0lBQ0gsVUFBVSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1Qjs7OztPQUlHO0lBQ0gsWUFBWSxDQUFDLFFBQVEsRUFBRSw2QkFBNkIsR0FBRyxNQUFNLElBQUksQ0FBQztJQUNsRTs7O09BR0c7SUFDSCxjQUFjLElBQUksT0FBTyxDQUFDO0NBQzNCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsc0JBQXNCO0lBQ3JDLHFDQUFxQztJQUNyQyxTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLHdDQUF3QztJQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsOERBQThEO0lBQzlELE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNqQjs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLEtBQUssSUFBSSxDQUFDO0NBQ3pEO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0Isd0VBQXdFO0lBQ3hFLE9BQU8sRUFBRSxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkMscUVBQXFFO0lBQ3JFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsMERBQTBEO0lBQzFELE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQztDQUNwQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3B;;;OAGG;IACH,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE;;;;OAIG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,6BAA6B,GAAG,MAAM,IAAI,CAAC;IAClE;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,qEAAqE;IACrE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/manager/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3B;;;OAGG;IACH,MAAM,IAAI,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,KAAK,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,MAAM,IAAI,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,kBAAkB,CAAC;IACzB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACrG;;;;OAIG;IACH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,6BAA6B,GAAG,MAAM,IAAI,CAAC;IAClE;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,qCAAqC;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACvC,qEAAqE;IACrE,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB"}
@@ -67,4 +67,4 @@ export declare class WalletManager {
67
67
  */
68
68
  private isExtensionAllowed;
69
69
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X21hbmFnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL3dhbGxldF9tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sS0FBSyxFQUNWLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFJaEIsbUJBQW1CLEVBRXBCLE1BQU0sWUFBWSxDQUFDO0FBRXBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxxQkFBYSxhQUFhO0lBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBR1o7SUFFRixPQUFPLGVBQWlCO0lBRXhCOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLG1CQUFtQixHQUFHLGFBQWEsQ0FPM0Q7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEdBQUcsZ0JBQWdCLENBNkVyRTtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxrQ0FBa0M7SUEwRTFDOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0NBVzNCIn0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0X21hbmFnZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL3dhbGxldF9tYW5hZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sS0FBSyxFQUNWLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFJaEIsbUJBQW1CLEVBRXBCLE1BQU0sWUFBWSxDQUFDO0FBRXBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxxQkFBYSxhQUFhO0lBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBR1o7SUFFRixPQUFPLGVBQWlCO0lBRXhCOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLG1CQUFtQixHQUFHLGFBQWEsQ0FPM0Q7SUFFRDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEdBQUcsZ0JBQWdCLENBOEdyRTtJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxrQ0FBa0M7SUEwRTFDOzs7O09BSUc7SUFDSCxPQUFPLENBQUMsa0JBQWtCO0NBVzNCIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"wallet_manager.d.ts","sourceRoot":"","sources":["../../src/manager/wallet_manager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAIhB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAGZ;IAEF,OAAO,eAAiB;IAExB;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAO3D;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,gBAAgB,CA6ErE;IAED;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IA0E1C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
1
+ {"version":3,"file":"wallet_manager.d.ts","sourceRoot":"","sources":["../../src/manager/wallet_manager.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAIhB,mBAAmB,EAEpB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAGZ;IAEF,OAAO,eAAiB;IAExB;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,aAAa,CAO3D;IAED;;;;;;;;;;;;OAYG;IACH,mBAAmB,CAAC,OAAO,EAAE,sBAAsB,GAAG,gBAAgB,CA8GrE;IAED;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IA0E1C;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
@@ -1,5 +1,6 @@
1
1
  import { promiseWithResolvers } from '@aztec/foundation/promise';
2
2
  import { ExtensionProvider, ExtensionWallet } from '../extension/provider/index.js';
3
+ import { discoverWebWallets } from '../iframe/provider/iframe_discovery.js';
3
4
  import { WalletMessageType } from '../types.js';
4
5
  /**
5
6
  * Manager for wallet discovery, configuration, and connection.
@@ -75,6 +76,20 @@ import { WalletMessageType } from '../types.js';
75
76
  let pendingResolve = null;
76
77
  let completed = false;
77
78
  const { promise: donePromise, resolve: resolveDone } = promiseWithResolvers();
79
+ const pendingSources = new Set();
80
+ const emit = (provider)=>{
81
+ options.onWalletDiscovered?.(provider);
82
+ if (pendingResolve) {
83
+ const resolve = pendingResolve;
84
+ pendingResolve = null;
85
+ resolve({
86
+ value: provider,
87
+ done: false
88
+ });
89
+ } else {
90
+ pendingProviders.push(provider);
91
+ }
92
+ };
78
93
  const markComplete = ()=>{
79
94
  completed = true;
80
95
  resolveDone();
@@ -87,7 +102,14 @@ import { WalletMessageType } from '../types.js';
87
102
  });
88
103
  }
89
104
  };
105
+ const sourceComplete = (source)=>{
106
+ pendingSources.delete(source);
107
+ if (pendingSources.size === 0) {
108
+ markComplete();
109
+ }
110
+ };
90
111
  if (this.config.extensions?.enabled) {
112
+ pendingSources.add('extensions');
91
113
  const extensionConfig = this.config.extensions;
92
114
  void ExtensionProvider.discoverWallets(chainInfo, {
93
115
  appId,
@@ -95,25 +117,33 @@ import { WalletMessageType } from '../types.js';
95
117
  signal: abortController.signal,
96
118
  onWalletDiscovered: (discoveredWallet)=>{
97
119
  const provider = this.createProviderFromDiscoveredWallet(discoveredWallet, chainInfo, extensionConfig);
98
- if (!provider) {
99
- return;
120
+ if (provider) {
121
+ emit(provider);
100
122
  }
101
- // Call user's callback if provided
102
- options.onWalletDiscovered?.(provider);
103
- // Also queue for async iterator
104
- if (pendingResolve) {
105
- const resolve = pendingResolve;
106
- pendingResolve = null;
107
- resolve({
108
- value: provider,
109
- done: false
110
- });
111
- } else {
112
- pendingProviders.push(provider);
123
+ }
124
+ }).then(()=>sourceComplete('extensions'));
125
+ }
126
+ if (this.config.webWallets?.urls && this.config.webWallets.urls.length > 0) {
127
+ pendingSources.add('webWallets');
128
+ const webSession = discoverWebWallets(this.config.webWallets.urls, chainInfo);
129
+ // Forward discovered web wallets into the shared iterator
130
+ void (async ()=>{
131
+ try {
132
+ for await (const provider of webSession.wallets){
133
+ if (abortController.signal.aborted) {
134
+ break;
135
+ }
136
+ emit(provider);
113
137
  }
138
+ } finally{
139
+ sourceComplete('webWallets');
114
140
  }
115
- }).then(markComplete);
116
- } else {
141
+ })();
142
+ abortController.signal.addEventListener('abort', ()=>webSession.cancel(), {
143
+ once: true
144
+ });
145
+ }
146
+ if (pendingSources.size === 0) {
117
147
  markComplete();
118
148
  }
119
149
  const wallets = {
package/dest/types.d.ts CHANGED
@@ -14,7 +14,15 @@ export declare enum WalletMessageType {
14
14
  /** Key exchange request sent over MessageChannel */
15
15
  KEY_EXCHANGE_REQUEST = "aztec-wallet-key-exchange-request",
16
16
  /** Key exchange response sent over MessageChannel */
17
- KEY_EXCHANGE_RESPONSE = "aztec-wallet-key-exchange-response"
17
+ KEY_EXCHANGE_RESPONSE = "aztec-wallet-key-exchange-response",
18
+ /** Wallet ready signal */
19
+ WALLET_READY = "aztec-wallet-ready",
20
+ /** Encrypted wallet message wrapper */
21
+ SECURE_MESSAGE = "aztec-wallet-secure-message",
22
+ /** Encrypted wallet response wrapper */
23
+ SECURE_RESPONSE = "aztec-wallet-secure-response",
24
+ /** Session disconnected notification */
25
+ SESSION_DISCONNECTED = "aztec-wallet-session-disconnected"
18
26
  }
19
27
  /**
20
28
  * Information about an installed Aztec wallet.
@@ -120,4 +128,8 @@ export interface KeyExchangeResponse {
120
128
  /** Wallet's ECDH public key for deriving shared secret */
121
129
  publicKey: ExportedPublicKey;
122
130
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRDs7O0dBR0c7QUFDSCxvQkFBWSxpQkFBaUI7SUFDM0Isa0RBQWtEO0lBQ2xELFNBQVMsMkJBQTJCO0lBQ3BDLHVDQUF1QztJQUN2QyxrQkFBa0Isb0NBQW9DO0lBQ3RELHNFQUFzRTtJQUN0RSxVQUFVLDRCQUE0QjtJQUN0QyxvREFBb0Q7SUFDcEQsb0JBQW9CLHNDQUFzQztJQUMxRCxxREFBcUQ7SUFDckQscUJBQXFCLHVDQUF1QztDQUM3RDtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxVQUFVO0lBQ3pCLHVDQUF1QztJQUN2QyxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsaUNBQWlDO0lBQ2pDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2QscUJBQXFCO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLENBQUM7Q0FDakI7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFdBQVcsbUJBQW9CLFNBQVEsVUFBVTtJQUNyRCxnRUFBZ0U7SUFDaEUsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0lBQzdCOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMzQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsK0NBQStDO0lBQy9DLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0NBQWdDO0lBQ2hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLHdCQUF3QjtJQUN4QixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLHdDQUF3QztJQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsNENBQTRDO0lBQzVDLFFBQVEsRUFBRSxNQUFNLENBQUM7Q0FDbEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxjQUFjO0lBQzdCLHNDQUFzQztJQUN0QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGtDQUFrQztJQUNsQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsNkJBQTZCO0lBQzdCLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNoQix1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sQ0FBQztDQUNsQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixpQ0FBaUM7SUFDakMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztJQUNsQyxpQkFBaUI7SUFDakIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQix3Q0FBd0M7SUFDeEMsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLGlFQUFpRTtJQUNqRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0NBQ3RCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLDBDQUEwQztJQUMxQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsa0JBQWtCLENBQUM7SUFDM0MsZ0RBQWdEO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsK0JBQStCO0lBQy9CLFVBQVUsRUFBRSxVQUFVLENBQUM7Q0FDeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxrQkFBa0I7SUFDakMsbUJBQW1CO0lBQ25CLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztJQUM3QyxnREFBZ0Q7SUFDaEQsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQix3REFBd0Q7SUFDeEQsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0NBQzlCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7SUFDOUMsZ0RBQWdEO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsMERBQTBEO0lBQzFELFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztDQUM5QiJ9
131
+ /**
132
+ * Callback invoked when a wallet connection is disconnected.
133
+ */
134
+ export type DisconnectCallback = () => void;
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRDs7O0dBR0c7QUFDSCxvQkFBWSxpQkFBaUI7SUFDM0Isa0RBQWtEO0lBQ2xELFNBQVMsMkJBQTJCO0lBQ3BDLHVDQUF1QztJQUN2QyxrQkFBa0Isb0NBQW9DO0lBQ3RELHNFQUFzRTtJQUN0RSxVQUFVLDRCQUE0QjtJQUN0QyxvREFBb0Q7SUFDcEQsb0JBQW9CLHNDQUFzQztJQUMxRCxxREFBcUQ7SUFDckQscUJBQXFCLHVDQUF1QztJQUM1RCwwQkFBMEI7SUFDMUIsWUFBWSx1QkFBdUI7SUFDbkMsdUNBQXVDO0lBQ3ZDLGNBQWMsZ0NBQWdDO0lBQzlDLHdDQUF3QztJQUN4QyxlQUFlLGlDQUFpQztJQUNoRCx3Q0FBd0M7SUFDeEMsb0JBQW9CLHNDQUFzQztDQUMzRDtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxVQUFVO0lBQ3pCLHVDQUF1QztJQUN2QyxFQUFFLEVBQUUsTUFBTSxDQUFDO0lBQ1gsaUNBQWlDO0lBQ2pDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2QscUJBQXFCO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLENBQUM7Q0FDakI7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFdBQVcsbUJBQW9CLFNBQVEsVUFBVTtJQUNyRCxnRUFBZ0U7SUFDaEUsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0lBQzdCOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUMzQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsK0NBQStDO0lBQy9DLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0NBQWdDO0lBQ2hDLElBQUksRUFBRSxNQUFNLENBQUM7SUFDYiwrQkFBK0I7SUFDL0IsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hCLHdCQUF3QjtJQUN4QixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLHdDQUF3QztJQUN4QyxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2QsNENBQTRDO0lBQzVDLFFBQVEsRUFBRSxNQUFNLENBQUM7Q0FDbEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxjQUFjO0lBQzdCLHNDQUFzQztJQUN0QyxTQUFTLEVBQUUsTUFBTSxDQUFDO0lBQ2xCLGtDQUFrQztJQUNsQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDakIsNkJBQTZCO0lBQzdCLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNoQix1Q0FBdUM7SUFDdkMsUUFBUSxFQUFFLE1BQU0sQ0FBQztDQUNsQjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixpQ0FBaUM7SUFDakMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztJQUNsQyxpQkFBaUI7SUFDakIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQix3Q0FBd0M7SUFDeEMsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLGlFQUFpRTtJQUNqRSxTQUFTLEVBQUUsU0FBUyxDQUFDO0NBQ3RCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsaUJBQWlCO0lBQ2hDLDBDQUEwQztJQUMxQyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsa0JBQWtCLENBQUM7SUFDM0MsZ0RBQWdEO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsK0JBQStCO0lBQy9CLFVBQVUsRUFBRSxVQUFVLENBQUM7Q0FDeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sV0FBVyxrQkFBa0I7SUFDakMsbUJBQW1CO0lBQ25CLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztJQUM3QyxnREFBZ0Q7SUFDaEQsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQix3REFBd0Q7SUFDeEQsU0FBUyxFQUFFLGlCQUFpQixDQUFDO0NBQzlCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7SUFDOUMsZ0RBQWdEO0lBQ2hELFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsMERBQTBEO0lBQzFELFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztDQUM5QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDIn0=
@@ -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":"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"}
package/dest/types.js CHANGED
@@ -7,5 +7,9 @@
7
7
  /** Disconnect message (unencrypted control message, bidirectional) */ WalletMessageType["DISCONNECT"] = "aztec-wallet-disconnect";
8
8
  /** Key exchange request sent over MessageChannel */ WalletMessageType["KEY_EXCHANGE_REQUEST"] = "aztec-wallet-key-exchange-request";
9
9
  /** Key exchange response sent over MessageChannel */ WalletMessageType["KEY_EXCHANGE_RESPONSE"] = "aztec-wallet-key-exchange-response";
10
+ /** Wallet ready signal */ WalletMessageType["WALLET_READY"] = "aztec-wallet-ready";
11
+ /** Encrypted wallet message wrapper */ WalletMessageType["SECURE_MESSAGE"] = "aztec-wallet-secure-message";
12
+ /** Encrypted wallet response wrapper */ WalletMessageType["SECURE_RESPONSE"] = "aztec-wallet-secure-response";
13
+ /** Session disconnected notification */ WalletMessageType["SESSION_DISCONNECTED"] = "aztec-wallet-session-disconnected";
10
14
  return WalletMessageType;
11
15
  }({});
package/package.json CHANGED
@@ -1,12 +1,14 @@
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": "4.0.0-devnet.2-patch.4",
4
+ "version": "4.0.0-devnet.3-patch.1",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  "./base-wallet": "./dest/base-wallet/index.js",
8
8
  "./extension/handlers": "./dest/extension/handlers/index.js",
9
9
  "./extension/provider": "./dest/extension/provider/index.js",
10
+ "./iframe/handlers": "./dest/iframe/handlers/index.js",
11
+ "./iframe/provider": "./dest/iframe/provider/index.js",
10
12
  "./crypto": "./dest/crypto.js",
11
13
  "./types": "./dest/types.js",
12
14
  "./manager": "./dest/manager/index.js"
@@ -16,6 +18,8 @@
16
18
  "./src/base-wallet/index.ts",
17
19
  "./src/extension/handlers/index.ts",
18
20
  "./src/extension/provider/index.ts",
21
+ "./src/iframe/handlers/index.ts",
22
+ "./src/iframe/provider/index.ts",
19
23
  "./src/crypto.ts",
20
24
  "./src/types.ts",
21
25
  "./src/manager/index.ts"
@@ -71,15 +75,15 @@
71
75
  ]
72
76
  },
73
77
  "dependencies": {
74
- "@aztec/aztec.js": "4.0.0-devnet.2-patch.4",
75
- "@aztec/constants": "4.0.0-devnet.2-patch.4",
76
- "@aztec/entrypoints": "4.0.0-devnet.2-patch.4",
77
- "@aztec/foundation": "4.0.0-devnet.2-patch.4",
78
- "@aztec/pxe": "4.0.0-devnet.2-patch.4",
79
- "@aztec/stdlib": "4.0.0-devnet.2-patch.4"
78
+ "@aztec/aztec.js": "4.0.0-devnet.3-patch.1",
79
+ "@aztec/constants": "4.0.0-devnet.3-patch.1",
80
+ "@aztec/entrypoints": "4.0.0-devnet.3-patch.1",
81
+ "@aztec/foundation": "4.0.0-devnet.3-patch.1",
82
+ "@aztec/pxe": "4.0.0-devnet.3-patch.1",
83
+ "@aztec/stdlib": "4.0.0-devnet.3-patch.1"
80
84
  },
81
85
  "devDependencies": {
82
- "@aztec/noir-contracts.js": "4.0.0-devnet.2-patch.4",
86
+ "@aztec/noir-contracts.js": "4.0.0-devnet.3-patch.1",
83
87
  "@jest/globals": "^30.0.0",
84
88
  "@types/jest": "^30.0.0",
85
89
  "@types/node": "^22.15.17",