@turnkey/core 1.0.0-beta.6 → 1.1.0
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.
- package/README.MD +3 -1
- package/dist/__clients__/core.d.ts +196 -324
- package/dist/__clients__/core.d.ts.map +1 -1
- package/dist/__clients__/core.js +571 -271
- package/dist/__clients__/core.js.map +1 -1
- package/dist/__clients__/core.mjs +522 -222
- package/dist/__clients__/core.mjs.map +1 -1
- package/dist/__generated__/sdk-client-base.d.ts +8 -2
- package/dist/__generated__/sdk-client-base.d.ts.map +1 -1
- package/dist/__generated__/sdk-client-base.js +95 -6
- package/dist/__generated__/sdk-client-base.js.map +1 -1
- package/dist/__generated__/sdk-client-base.mjs +90 -1
- package/dist/__generated__/sdk-client-base.mjs.map +1 -1
- package/dist/__generated__/version.d.ts +1 -1
- package/dist/__generated__/version.d.ts.map +1 -1
- package/dist/__generated__/version.js +1 -1
- package/dist/__generated__/version.mjs +1 -1
- package/dist/__inputs__/public_api.types.d.ts +163 -26
- package/dist/__inputs__/public_api.types.d.ts.map +1 -1
- package/dist/__polyfills__/window.js.map +1 -1
- package/dist/__polyfills__/window.mjs.map +1 -1
- package/dist/__stampers__/api/base.d.ts +1 -1
- package/dist/__stampers__/api/base.d.ts.map +1 -1
- package/dist/__stampers__/api/base.js.map +1 -1
- package/dist/__stampers__/api/base.mjs.map +1 -1
- package/dist/__stampers__/api/mobile/stamper.d.ts +1 -1
- package/dist/__stampers__/api/mobile/stamper.d.ts.map +1 -1
- package/dist/__stampers__/api/mobile/stamper.js.map +1 -1
- package/dist/__stampers__/api/mobile/stamper.mjs.map +1 -1
- package/dist/__stampers__/api/web/stamper.d.ts +1 -1
- package/dist/__stampers__/api/web/stamper.d.ts.map +1 -1
- package/dist/__stampers__/api/web/stamper.js.map +1 -1
- package/dist/__stampers__/api/web/stamper.mjs.map +1 -1
- package/dist/__stampers__/passkey/base.d.ts +1 -1
- package/dist/__stampers__/passkey/base.d.ts.map +1 -1
- package/dist/__stampers__/passkey/base.js.map +1 -1
- package/dist/__stampers__/passkey/base.mjs.map +1 -1
- package/dist/__storage__/base.d.ts +1 -1
- package/dist/__storage__/base.d.ts.map +1 -1
- package/dist/__storage__/base.js.map +1 -1
- package/dist/__storage__/base.mjs.map +1 -1
- package/dist/__storage__/mobile/storage.d.ts +1 -1
- package/dist/__storage__/mobile/storage.d.ts.map +1 -1
- package/dist/__storage__/mobile/storage.js +4 -3
- package/dist/__storage__/mobile/storage.js.map +1 -1
- package/dist/__storage__/mobile/storage.mjs +2 -1
- package/dist/__storage__/mobile/storage.mjs.map +1 -1
- package/dist/__storage__/web/storage.d.ts +1 -1
- package/dist/__storage__/web/storage.d.ts.map +1 -1
- package/dist/__storage__/web/storage.js +4 -3
- package/dist/__storage__/web/storage.js.map +1 -1
- package/dist/__storage__/web/storage.mjs +2 -1
- package/dist/__storage__/web/storage.mjs.map +1 -1
- package/dist/__typedoc-entry__/index.d.ts +3 -0
- package/dist/__typedoc-entry__/index.d.ts.map +1 -0
- package/dist/__types__/auth.d.ts +150 -0
- package/dist/__types__/auth.d.ts.map +1 -0
- package/dist/__types__/auth.js +43 -0
- package/dist/__types__/auth.js.map +1 -0
- package/dist/__types__/auth.mjs +40 -0
- package/dist/__types__/auth.mjs.map +1 -0
- package/dist/__types__/config.d.ts +140 -0
- package/dist/__types__/config.d.ts.map +1 -0
- package/dist/__types__/error.d.ts +13 -0
- package/dist/__types__/error.d.ts.map +1 -0
- package/dist/__types__/error.js +18 -0
- package/dist/__types__/error.js.map +1 -0
- package/dist/__types__/error.mjs +16 -0
- package/dist/__types__/error.mjs.map +1 -0
- package/dist/__types__/export.d.ts +10 -0
- package/dist/__types__/export.d.ts.map +1 -0
- package/dist/__types__/external-wallets.d.ts +202 -0
- package/dist/__types__/external-wallets.d.ts.map +1 -0
- package/dist/__types__/external-wallets.js +35 -0
- package/dist/__types__/external-wallets.js.map +1 -0
- package/dist/__types__/external-wallets.mjs +35 -0
- package/dist/__types__/external-wallets.mjs.map +1 -0
- package/dist/__types__/index.d.ts +7 -0
- package/dist/__types__/index.d.ts.map +1 -0
- package/dist/__types__/method-types.d.ts +314 -0
- package/dist/__types__/method-types.d.ts.map +1 -0
- package/dist/__wallet__/base.d.ts +1 -1
- package/dist/__wallet__/base.d.ts.map +1 -1
- package/dist/__wallet__/base.js +6 -6
- package/dist/__wallet__/base.js.map +1 -1
- package/dist/__wallet__/base.mjs +2 -2
- package/dist/__wallet__/base.mjs.map +1 -1
- package/dist/__wallet__/connector.d.ts +3 -3
- package/dist/__wallet__/connector.d.ts.map +1 -1
- package/dist/__wallet__/connector.js +5 -4
- package/dist/__wallet__/connector.js.map +1 -1
- package/dist/__wallet__/connector.mjs +4 -3
- package/dist/__wallet__/connector.mjs.map +1 -1
- package/dist/__wallet__/mobile/manager.d.ts +1 -1
- package/dist/__wallet__/mobile/manager.d.ts.map +1 -1
- package/dist/__wallet__/mobile/manager.js +5 -4
- package/dist/__wallet__/mobile/manager.js.map +1 -1
- package/dist/__wallet__/mobile/manager.mjs +2 -1
- package/dist/__wallet__/mobile/manager.mjs.map +1 -1
- package/dist/__wallet__/stamper.d.ts +1 -1
- package/dist/__wallet__/stamper.d.ts.map +1 -1
- package/dist/__wallet__/stamper.js +9 -8
- package/dist/__wallet__/stamper.js.map +1 -1
- package/dist/__wallet__/stamper.mjs +2 -1
- package/dist/__wallet__/stamper.mjs.map +1 -1
- package/dist/__wallet__/wallet-connect/base.d.ts +4 -2
- package/dist/__wallet__/wallet-connect/base.d.ts.map +1 -1
- package/dist/__wallet__/wallet-connect/base.js +74 -32
- package/dist/__wallet__/wallet-connect/base.js.map +1 -1
- package/dist/__wallet__/wallet-connect/base.mjs +55 -13
- package/dist/__wallet__/wallet-connect/base.mjs.map +1 -1
- package/dist/__wallet__/wallet-connect/client.d.ts +30 -9
- package/dist/__wallet__/wallet-connect/client.d.ts.map +1 -1
- package/dist/__wallet__/wallet-connect/client.js +73 -11
- package/dist/__wallet__/wallet-connect/client.js.map +1 -1
- package/dist/__wallet__/wallet-connect/client.mjs +73 -11
- package/dist/__wallet__/wallet-connect/client.mjs.map +1 -1
- package/dist/__wallet__/web/manager.d.ts +1 -1
- package/dist/__wallet__/web/manager.d.ts.map +1 -1
- package/dist/__wallet__/web/manager.js +11 -10
- package/dist/__wallet__/web/manager.js.map +1 -1
- package/dist/__wallet__/web/manager.mjs +2 -1
- package/dist/__wallet__/web/manager.mjs.map +1 -1
- package/dist/__wallet__/web/native/ethereum.d.ts +3 -3
- package/dist/__wallet__/web/native/ethereum.d.ts.map +1 -1
- package/dist/__wallet__/web/native/ethereum.js +11 -10
- package/dist/__wallet__/web/native/ethereum.js.map +1 -1
- package/dist/__wallet__/web/native/ethereum.mjs +4 -3
- package/dist/__wallet__/web/native/ethereum.mjs.map +1 -1
- package/dist/__wallet__/web/native/solana.d.ts +3 -3
- package/dist/__wallet__/web/native/solana.d.ts.map +1 -1
- package/dist/__wallet__/web/native/solana.js +13 -13
- package/dist/__wallet__/web/native/solana.js.map +1 -1
- package/dist/__wallet__/web/native/solana.mjs +8 -8
- package/dist/__wallet__/web/native/solana.mjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -2
- package/dist/index.mjs.map +1 -1
- package/dist/turnkey-helpers.js.map +1 -1
- package/dist/turnkey-helpers.mjs.map +1 -1
- package/dist/utils.d.ts +11 -23
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +120 -45
- package/dist/utils.js.map +1 -1
- package/dist/utils.mjs +102 -30
- package/dist/utils.mjs.map +1 -1
- package/package.json +8 -9
- package/dist/__types__/base.d.ts +0 -527
- package/dist/__types__/base.d.ts.map +0 -1
- package/dist/__types__/base.js +0 -89
- package/dist/__types__/base.js.map +0 -1
- package/dist/__types__/base.mjs +0 -85
- package/dist/__types__/base.mjs.map +0 -1
|
@@ -12,15 +12,7 @@ export declare class WalletConnectClient {
|
|
|
12
12
|
private sessionUpdateHandlers;
|
|
13
13
|
private sessionEventHandlers;
|
|
14
14
|
private sessionDeleteHandlers;
|
|
15
|
-
|
|
16
|
-
* Registers a callback for WalletConnect `session_delete`.
|
|
17
|
-
*
|
|
18
|
-
* - Fired from the underlying SignClient when a session is terminated.
|
|
19
|
-
* - Useful for clearing UI state or internal session data after a disconnect.
|
|
20
|
-
*
|
|
21
|
-
* @param fn - Callback to invoke when the session is deleted.
|
|
22
|
-
*/
|
|
23
|
-
onSessionDelete(fn: () => void): void;
|
|
15
|
+
private pairingExpireHandlers;
|
|
24
16
|
/**
|
|
25
17
|
* Registers a callback for WalletConnect `session_update`.
|
|
26
18
|
*
|
|
@@ -43,6 +35,24 @@ export declare class WalletConnectClient {
|
|
|
43
35
|
* @returns A function that unsubscribes this listener.
|
|
44
36
|
*/
|
|
45
37
|
onSessionEvent(fn: (args: any) => void): () => void;
|
|
38
|
+
/**
|
|
39
|
+
* Registers a callback for WalletConnect `session_delete`.
|
|
40
|
+
*
|
|
41
|
+
* - Fired from the underlying SignClient when a session is terminated.
|
|
42
|
+
* - Useful for clearing UI state or internal session data after a disconnect.
|
|
43
|
+
*
|
|
44
|
+
* @param fn - Callback to invoke when the session is deleted.
|
|
45
|
+
*/
|
|
46
|
+
onSessionDelete(fn: () => void): void;
|
|
47
|
+
/**
|
|
48
|
+
* Registers a callback for WalletConnect `pairing_expire`.
|
|
49
|
+
*
|
|
50
|
+
* - Fired from the underlying SignClient when a session proposal expires.
|
|
51
|
+
* - Useful for re-initiating the pairing process, and refreshing the pairing URI.
|
|
52
|
+
*
|
|
53
|
+
* @param fn - Callback to invoke when the pairing expires.
|
|
54
|
+
*/
|
|
55
|
+
onPairingExpire(fn: () => void): void;
|
|
46
56
|
/**
|
|
47
57
|
* Initializes the WalletConnect SignClient with your project credentials.
|
|
48
58
|
*
|
|
@@ -107,5 +117,16 @@ export declare class WalletConnectClient {
|
|
|
107
117
|
* @returns A promise that resolves once disconnection is complete.
|
|
108
118
|
*/
|
|
109
119
|
disconnect(): Promise<void>;
|
|
120
|
+
/**
|
|
121
|
+
* Cancels all in-progress WalletConnect pairings, if any.
|
|
122
|
+
*
|
|
123
|
+
* - Iterates through the core pairing registry and disconnects every active pairing
|
|
124
|
+
* - Always clears the pending approval callback so subsequent `pair()` calls
|
|
125
|
+
* can be made
|
|
126
|
+
* - Safe to call even if no pairings exist. it simply resets internal state
|
|
127
|
+
*
|
|
128
|
+
* @returns A promise that resolves once cancellation is complete.
|
|
129
|
+
*/
|
|
130
|
+
cancelPairing(): Promise<void>;
|
|
110
131
|
}
|
|
111
132
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAc;IAG5B,OAAO,CAAC,eAAe,CAAqD;IAW5E,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,qBAAqB,CAAyB;IAEtD
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACb,MAAM,sBAAsB,CAAC;AAE9B;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAc;IAG5B,OAAO,CAAC,eAAe,CAAqD;IAW5E,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,qBAAqB,CAAyB;IAEtD;;;;;;;;;OASG;IACI,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI;IASrC;;;;;;;;;OASG;IACI,cAAc,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI;IAS7C;;;;;;;OAOG;IACI,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI;IAIrC;;;;;;;OAOG;IACI,eAAe,CAAC,EAAE,EAAE,MAAM,IAAI;IAIrC;;;;;;;;;;OAUG;IACG,IAAI,CAAC,IAAI,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,SAAS,CAAC,QAAQ,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBjB;;;;;;;;;;OAUG;IACG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBzE;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;IA6B7C;;;;OAIG;IACH,UAAU,IAAI,YAAY,CAAC,MAAM,GAAG,IAAI;IAKxC;;;;;;;;;;OAUG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAClC,OAAO,CAAC,GAAG,CAAC;IAaf;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CA6BrC"}
|
|
@@ -25,17 +25,7 @@ class WalletConnectClient {
|
|
|
25
25
|
this.sessionUpdateHandlers = [];
|
|
26
26
|
this.sessionEventHandlers = [];
|
|
27
27
|
this.sessionDeleteHandlers = [];
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Registers a callback for WalletConnect `session_delete`.
|
|
31
|
-
*
|
|
32
|
-
* - Fired from the underlying SignClient when a session is terminated.
|
|
33
|
-
* - Useful for clearing UI state or internal session data after a disconnect.
|
|
34
|
-
*
|
|
35
|
-
* @param fn - Callback to invoke when the session is deleted.
|
|
36
|
-
*/
|
|
37
|
-
onSessionDelete(fn) {
|
|
38
|
-
this.sessionDeleteHandlers.push(fn);
|
|
28
|
+
this.pairingExpireHandlers = [];
|
|
39
29
|
}
|
|
40
30
|
/**
|
|
41
31
|
* Registers a callback for WalletConnect `session_update`.
|
|
@@ -69,6 +59,28 @@ class WalletConnectClient {
|
|
|
69
59
|
this.sessionEventHandlers = this.sessionEventHandlers.filter((h) => h !== fn);
|
|
70
60
|
};
|
|
71
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Registers a callback for WalletConnect `session_delete`.
|
|
64
|
+
*
|
|
65
|
+
* - Fired from the underlying SignClient when a session is terminated.
|
|
66
|
+
* - Useful for clearing UI state or internal session data after a disconnect.
|
|
67
|
+
*
|
|
68
|
+
* @param fn - Callback to invoke when the session is deleted.
|
|
69
|
+
*/
|
|
70
|
+
onSessionDelete(fn) {
|
|
71
|
+
this.sessionDeleteHandlers.push(fn);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Registers a callback for WalletConnect `pairing_expire`.
|
|
75
|
+
*
|
|
76
|
+
* - Fired from the underlying SignClient when a session proposal expires.
|
|
77
|
+
* - Useful for re-initiating the pairing process, and refreshing the pairing URI.
|
|
78
|
+
*
|
|
79
|
+
* @param fn - Callback to invoke when the pairing expires.
|
|
80
|
+
*/
|
|
81
|
+
onPairingExpire(fn) {
|
|
82
|
+
this.pairingExpireHandlers.push(fn);
|
|
83
|
+
}
|
|
72
84
|
/**
|
|
73
85
|
* Initializes the WalletConnect SignClient with your project credentials.
|
|
74
86
|
*
|
|
@@ -96,6 +108,9 @@ class WalletConnectClient {
|
|
|
96
108
|
this.client.on("session_event", (args) => {
|
|
97
109
|
this.sessionEventHandlers.forEach((h) => h(args));
|
|
98
110
|
});
|
|
111
|
+
this.client.core.pairing.events.on("pairing_expire", () => {
|
|
112
|
+
this.pairingExpireHandlers.forEach((h) => h());
|
|
113
|
+
});
|
|
99
114
|
}
|
|
100
115
|
/**
|
|
101
116
|
* Initiates a pairing request and returns a URI to be scanned or deep-linked.
|
|
@@ -137,6 +152,16 @@ class WalletConnectClient {
|
|
|
137
152
|
const session = await this.pendingApproval();
|
|
138
153
|
return session;
|
|
139
154
|
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
// we sanitize common errors to be more user-friendly
|
|
157
|
+
if (error.message?.includes("Proposal expired")) {
|
|
158
|
+
throw new Error("WalletConnect: The connection request has expired. Please scan the QR code again.");
|
|
159
|
+
}
|
|
160
|
+
if (error.message?.includes("User rejected")) {
|
|
161
|
+
throw new Error("WalletConnect: The connection request was rejected by the user.");
|
|
162
|
+
}
|
|
163
|
+
throw new Error(`WalletConnect: Approval failed: ${error.message}`);
|
|
164
|
+
}
|
|
140
165
|
finally {
|
|
141
166
|
// we clear the pending state regardless of outcome
|
|
142
167
|
this.pendingApproval = null;
|
|
@@ -190,6 +215,43 @@ class WalletConnectClient {
|
|
|
190
215
|
reason: { code: 6000, message: "User disconnected" },
|
|
191
216
|
});
|
|
192
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* Cancels all in-progress WalletConnect pairings, if any.
|
|
220
|
+
*
|
|
221
|
+
* - Iterates through the core pairing registry and disconnects every active pairing
|
|
222
|
+
* - Always clears the pending approval callback so subsequent `pair()` calls
|
|
223
|
+
* can be made
|
|
224
|
+
* - Safe to call even if no pairings exist. it simply resets internal state
|
|
225
|
+
*
|
|
226
|
+
* @returns A promise that resolves once cancellation is complete.
|
|
227
|
+
*/
|
|
228
|
+
async cancelPairing() {
|
|
229
|
+
try {
|
|
230
|
+
const pairings = this.client.core.pairing.getPairings();
|
|
231
|
+
// disconnect all active pairings
|
|
232
|
+
// technically there should only be one active pairing at a tim
|
|
233
|
+
const disconnectPromises = pairings.map(async (pairing) => {
|
|
234
|
+
try {
|
|
235
|
+
await this.client.core.pairing.disconnect({
|
|
236
|
+
topic: pairing.topic,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
catch (err) {
|
|
240
|
+
if (err.message?.includes("Expired") ||
|
|
241
|
+
err.message?.includes("Not found") ||
|
|
242
|
+
err.message?.includes("No matching key")) {
|
|
243
|
+
// already expired/disconnected, so we ignore
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
console.warn("failed to disconnect pairing:", err);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
await Promise.allSettled(disconnectPromises);
|
|
250
|
+
}
|
|
251
|
+
finally {
|
|
252
|
+
this.pendingApproval = null;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
193
255
|
}
|
|
194
256
|
|
|
195
257
|
exports.WalletConnectClient = WalletConnectClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAOA;;;;;;AAMG;MACU,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;;QAIU,
|
|
1
|
+
{"version":3,"file":"client.js","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -23,17 +23,7 @@ class WalletConnectClient {
|
|
|
23
23
|
this.sessionUpdateHandlers = [];
|
|
24
24
|
this.sessionEventHandlers = [];
|
|
25
25
|
this.sessionDeleteHandlers = [];
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Registers a callback for WalletConnect `session_delete`.
|
|
29
|
-
*
|
|
30
|
-
* - Fired from the underlying SignClient when a session is terminated.
|
|
31
|
-
* - Useful for clearing UI state or internal session data after a disconnect.
|
|
32
|
-
*
|
|
33
|
-
* @param fn - Callback to invoke when the session is deleted.
|
|
34
|
-
*/
|
|
35
|
-
onSessionDelete(fn) {
|
|
36
|
-
this.sessionDeleteHandlers.push(fn);
|
|
26
|
+
this.pairingExpireHandlers = [];
|
|
37
27
|
}
|
|
38
28
|
/**
|
|
39
29
|
* Registers a callback for WalletConnect `session_update`.
|
|
@@ -67,6 +57,28 @@ class WalletConnectClient {
|
|
|
67
57
|
this.sessionEventHandlers = this.sessionEventHandlers.filter((h) => h !== fn);
|
|
68
58
|
};
|
|
69
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Registers a callback for WalletConnect `session_delete`.
|
|
62
|
+
*
|
|
63
|
+
* - Fired from the underlying SignClient when a session is terminated.
|
|
64
|
+
* - Useful for clearing UI state or internal session data after a disconnect.
|
|
65
|
+
*
|
|
66
|
+
* @param fn - Callback to invoke when the session is deleted.
|
|
67
|
+
*/
|
|
68
|
+
onSessionDelete(fn) {
|
|
69
|
+
this.sessionDeleteHandlers.push(fn);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Registers a callback for WalletConnect `pairing_expire`.
|
|
73
|
+
*
|
|
74
|
+
* - Fired from the underlying SignClient when a session proposal expires.
|
|
75
|
+
* - Useful for re-initiating the pairing process, and refreshing the pairing URI.
|
|
76
|
+
*
|
|
77
|
+
* @param fn - Callback to invoke when the pairing expires.
|
|
78
|
+
*/
|
|
79
|
+
onPairingExpire(fn) {
|
|
80
|
+
this.pairingExpireHandlers.push(fn);
|
|
81
|
+
}
|
|
70
82
|
/**
|
|
71
83
|
* Initializes the WalletConnect SignClient with your project credentials.
|
|
72
84
|
*
|
|
@@ -94,6 +106,9 @@ class WalletConnectClient {
|
|
|
94
106
|
this.client.on("session_event", (args) => {
|
|
95
107
|
this.sessionEventHandlers.forEach((h) => h(args));
|
|
96
108
|
});
|
|
109
|
+
this.client.core.pairing.events.on("pairing_expire", () => {
|
|
110
|
+
this.pairingExpireHandlers.forEach((h) => h());
|
|
111
|
+
});
|
|
97
112
|
}
|
|
98
113
|
/**
|
|
99
114
|
* Initiates a pairing request and returns a URI to be scanned or deep-linked.
|
|
@@ -135,6 +150,16 @@ class WalletConnectClient {
|
|
|
135
150
|
const session = await this.pendingApproval();
|
|
136
151
|
return session;
|
|
137
152
|
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
// we sanitize common errors to be more user-friendly
|
|
155
|
+
if (error.message?.includes("Proposal expired")) {
|
|
156
|
+
throw new Error("WalletConnect: The connection request has expired. Please scan the QR code again.");
|
|
157
|
+
}
|
|
158
|
+
if (error.message?.includes("User rejected")) {
|
|
159
|
+
throw new Error("WalletConnect: The connection request was rejected by the user.");
|
|
160
|
+
}
|
|
161
|
+
throw new Error(`WalletConnect: Approval failed: ${error.message}`);
|
|
162
|
+
}
|
|
138
163
|
finally {
|
|
139
164
|
// we clear the pending state regardless of outcome
|
|
140
165
|
this.pendingApproval = null;
|
|
@@ -188,6 +213,43 @@ class WalletConnectClient {
|
|
|
188
213
|
reason: { code: 6000, message: "User disconnected" },
|
|
189
214
|
});
|
|
190
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Cancels all in-progress WalletConnect pairings, if any.
|
|
218
|
+
*
|
|
219
|
+
* - Iterates through the core pairing registry and disconnects every active pairing
|
|
220
|
+
* - Always clears the pending approval callback so subsequent `pair()` calls
|
|
221
|
+
* can be made
|
|
222
|
+
* - Safe to call even if no pairings exist. it simply resets internal state
|
|
223
|
+
*
|
|
224
|
+
* @returns A promise that resolves once cancellation is complete.
|
|
225
|
+
*/
|
|
226
|
+
async cancelPairing() {
|
|
227
|
+
try {
|
|
228
|
+
const pairings = this.client.core.pairing.getPairings();
|
|
229
|
+
// disconnect all active pairings
|
|
230
|
+
// technically there should only be one active pairing at a tim
|
|
231
|
+
const disconnectPromises = pairings.map(async (pairing) => {
|
|
232
|
+
try {
|
|
233
|
+
await this.client.core.pairing.disconnect({
|
|
234
|
+
topic: pairing.topic,
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
catch (err) {
|
|
238
|
+
if (err.message?.includes("Expired") ||
|
|
239
|
+
err.message?.includes("Not found") ||
|
|
240
|
+
err.message?.includes("No matching key")) {
|
|
241
|
+
// already expired/disconnected, so we ignore
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
console.warn("failed to disconnect pairing:", err);
|
|
245
|
+
}
|
|
246
|
+
});
|
|
247
|
+
await Promise.allSettled(disconnectPromises);
|
|
248
|
+
}
|
|
249
|
+
finally {
|
|
250
|
+
this.pendingApproval = null;
|
|
251
|
+
}
|
|
252
|
+
}
|
|
191
253
|
}
|
|
192
254
|
|
|
193
255
|
export { WalletConnectClient };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAOA;;;;;;AAMG;MACU,mBAAmB,CAAA;AAAhC,IAAA,WAAA,GAAA;;QAIU,
|
|
1
|
+
{"version":3,"file":"client.mjs","sources":["../../../src/__wallet__/wallet-connect/client.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { CrossPlatformWalletStamper } from "../stamper";
|
|
2
2
|
import { CrossPlatformWalletConnector } from "../connector";
|
|
3
|
-
import { TWalletManagerConfig, WalletInterface, WalletProvider, WalletInterfaceType, Chain } from "
|
|
3
|
+
import { TWalletManagerConfig, WalletInterface, WalletProvider, WalletInterfaceType, Chain } from "../../__types__";
|
|
4
4
|
export declare class WebWalletManager {
|
|
5
5
|
private initializers;
|
|
6
6
|
private wcClient?;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/web/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,KAAK,EACN,MAAM,
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/__wallet__/web/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAG5D,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,KAAK,EACN,MAAM,iBAAiB,CAAC;AAIzB,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,YAAY,CAAkC;IAGtD,OAAO,CAAC,QAAQ,CAAC,CAAsB;IAGvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAM;IAG7E,OAAO,CAAC,iBAAiB,CAAqD;IAG9E,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC;IAG9C,QAAQ,CAAC,SAAS,CAAC,EAAE,4BAA4B,CAAC;IAElD;;;;;;;;OAQG;gBACS,GAAG,EAAE,oBAAoB;IAyDrC;;;;;;;OAOG;IACG,IAAI,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpD;;;;;;;;;OASG;IACG,YAAY,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA4B5D;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB,CAMvB;CACH"}
|
|
@@ -4,9 +4,10 @@ var stamper = require('../stamper.js');
|
|
|
4
4
|
var connector = require('../connector.js');
|
|
5
5
|
var ethereum = require('./native/ethereum.js');
|
|
6
6
|
var solana = require('./native/solana.js');
|
|
7
|
-
|
|
7
|
+
require('../../__types__/auth.js');
|
|
8
|
+
var externalWallets = require('../../__types__/external-wallets.js');
|
|
8
9
|
var client = require('../wallet-connect/client.js');
|
|
9
|
-
var base
|
|
10
|
+
var base = require('../wallet-connect/base.js');
|
|
10
11
|
|
|
11
12
|
class WebWalletManager {
|
|
12
13
|
/**
|
|
@@ -45,26 +46,26 @@ class WebWalletManager {
|
|
|
45
46
|
const enableWalletConnect = enableWalletConnectEvm || enableWalletConnectSol;
|
|
46
47
|
// set up native Ethereum wallet support
|
|
47
48
|
if (enableNativeEvm) {
|
|
48
|
-
this.wallets[
|
|
49
|
-
this.addChainInterface(
|
|
49
|
+
this.wallets[externalWallets.WalletInterfaceType.Ethereum] = new ethereum.EthereumWallet();
|
|
50
|
+
this.addChainInterface(externalWallets.Chain.Ethereum, externalWallets.WalletInterfaceType.Ethereum);
|
|
50
51
|
}
|
|
51
52
|
// set up native Solana wallet support
|
|
52
53
|
if (enableNativeSol) {
|
|
53
|
-
this.wallets[
|
|
54
|
-
this.addChainInterface(
|
|
54
|
+
this.wallets[externalWallets.WalletInterfaceType.Solana] = new solana.SolanaWallet();
|
|
55
|
+
this.addChainInterface(externalWallets.Chain.Solana, externalWallets.WalletInterfaceType.Solana);
|
|
55
56
|
}
|
|
56
57
|
// if WalletConnect is configured, set it up
|
|
57
58
|
if (cfg.walletConnect && enableWalletConnect) {
|
|
58
59
|
this.wcClient = new client.WalletConnectClient();
|
|
59
|
-
const wcUnified = new base
|
|
60
|
-
this.wallets[
|
|
60
|
+
const wcUnified = new base.WalletConnectWallet(this.wcClient);
|
|
61
|
+
this.wallets[externalWallets.WalletInterfaceType.WalletConnect] = wcUnified;
|
|
61
62
|
// add async init step to the initializer queue
|
|
62
63
|
this.initializers.push(() => wcUnified.init({ ethereumNamespaces, solanaNamespaces }));
|
|
63
64
|
// register WalletConnect as a wallet interface for each enabled chain
|
|
64
65
|
if (enableWalletConnectEvm)
|
|
65
|
-
this.addChainInterface(
|
|
66
|
+
this.addChainInterface(externalWallets.Chain.Ethereum, externalWallets.WalletInterfaceType.WalletConnect);
|
|
66
67
|
if (enableWalletConnectSol)
|
|
67
|
-
this.addChainInterface(
|
|
68
|
+
this.addChainInterface(externalWallets.Chain.Solana, externalWallets.WalletInterfaceType.WalletConnect);
|
|
68
69
|
}
|
|
69
70
|
if (cfg.features?.auth) {
|
|
70
71
|
this.stamper = new stamper.CrossPlatformWalletStamper(this.wallets);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":["WalletInterfaceType","EthereumWallet","Chain","SolanaWallet","WalletConnectClient","WalletConnectWallet","CrossPlatformWalletStamper","CrossPlatformWalletConnector"],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.js","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":["WalletInterfaceType","EthereumWallet","Chain","SolanaWallet","WalletConnectClient","WalletConnectWallet","CrossPlatformWalletStamper","CrossPlatformWalletConnector"],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ import { CrossPlatformWalletStamper } from '../stamper.mjs';
|
|
|
2
2
|
import { CrossPlatformWalletConnector } from '../connector.mjs';
|
|
3
3
|
import { EthereumWallet } from './native/ethereum.mjs';
|
|
4
4
|
import { SolanaWallet } from './native/solana.mjs';
|
|
5
|
-
import
|
|
5
|
+
import '../../__types__/auth.mjs';
|
|
6
|
+
import { WalletInterfaceType, Chain } from '../../__types__/external-wallets.mjs';
|
|
6
7
|
import { WalletConnectClient } from '../wallet-connect/client.mjs';
|
|
7
8
|
import { WalletConnectWallet } from '../wallet-connect/base.mjs';
|
|
8
9
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.mjs","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manager.mjs","sources":["../../../src/__wallet__/web/manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Hex } from "viem";
|
|
2
|
-
import { EthereumWalletInterface, SignIntent, SwitchableChain, WalletInterfaceType, WalletProvider } from "
|
|
2
|
+
import { EthereumWalletInterface, SignIntent, SwitchableChain, WalletInterfaceType, WalletProvider } from "../../../__types__";
|
|
3
3
|
/**
|
|
4
4
|
* Abstract base class for Ethereum wallet implementations.
|
|
5
5
|
*
|
|
@@ -47,10 +47,10 @@ export declare abstract class BaseEthereumWallet implements EthereumWalletInterf
|
|
|
47
47
|
* - If not connected, the wallet will typically prompt the user to authorize.
|
|
48
48
|
*
|
|
49
49
|
* @param provider - The wallet provider to use.
|
|
50
|
-
* @returns A promise that resolves
|
|
50
|
+
* @returns A promise that resolves with the connected wallet's address.
|
|
51
51
|
* @throws {Error} If the wallet returns no accounts after the request.
|
|
52
52
|
*/
|
|
53
|
-
connectWalletAccount: (provider: WalletProvider) => Promise<
|
|
53
|
+
connectWalletAccount: (provider: WalletProvider) => Promise<string>;
|
|
54
54
|
/**
|
|
55
55
|
* Attempts to disconnect the wallet by revoking `eth_accounts` permission.
|
|
56
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/__wallet__/web/native/ethereum.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,GAAG,EAIJ,MAAM,MAAM,CAAC;AAGd,OAAO,EAEL,uBAAuB,EACvB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,cAAc,EAGf,MAAM,
|
|
1
|
+
{"version":3,"file":"ethereum.d.ts","sourceRoot":"","sources":["../../../../src/__wallet__/web/native/ethereum.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,GAAG,EAIJ,MAAM,MAAM,CAAC;AAGd,OAAO,EAEL,uBAAuB,EACvB,UAAU,EACV,eAAe,EACf,mBAAmB,EACnB,cAAc,EAGf,MAAM,oBAAoB,CAAC;AAM5B;;;;;;;GAOG;AACH,8BAAsB,kBAAmB,YAAW,uBAAuB;IACzE,QAAQ,CAAC,aAAa,gCAAgC;IAEtD;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,CACX,OAAO,EAAE,MAAM,GAAG,GAAG,EACrB,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,GAAG,CAAC;IAEf;;;;;;;;OAQG;IACH,YAAY,aAAoB,cAAc,KAAG,QAAQ,MAAM,CAAC,CAQ9D;IAEF;;;;;;;;;OASG;IACH,YAAY,QAAa,QAAQ,cAAc,EAAE,CAAC,CA2DhD;IAEF;;;;;;;;;OASG;IACH,oBAAoB,aAAoB,cAAc,KAAG,QAAQ,MAAM,CAAC,CAGtE;IAEF;;;;;;;;;OASG;IACH,uBAAuB,aAAoB,cAAc,KAAG,QAAQ,IAAI,CAAC,CAMvE;IAEF;;;;;;;;;;;OAWG;IACG,WAAW,CACf,QAAQ,EAAE,cAAc,EACxB,SAAS,EAAE,MAAM,GAAG,eAAe,GAClC,OAAO,CAAC,IAAI,CAAC;CAwDjB;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD;;;;;;;;;;;;;OAaG;IACH,IAAI,YACO,MAAM,YACL,cAAc,UAChB,UAAU,KACjB,QAAQ,GAAG,CAAC,CAiCb;CACH"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
var viem = require('viem');
|
|
4
4
|
var ethers = require('ethers');
|
|
5
5
|
var crypto = require('@turnkey/crypto');
|
|
6
|
-
|
|
6
|
+
require('../../../__types__/auth.js');
|
|
7
|
+
var externalWallets = require('../../../__types__/external-wallets.js');
|
|
7
8
|
var encoding = require('@turnkey/encoding');
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -16,7 +17,7 @@ var encoding = require('@turnkey/encoding');
|
|
|
16
17
|
*/
|
|
17
18
|
class BaseEthereumWallet {
|
|
18
19
|
constructor() {
|
|
19
|
-
this.interfaceType =
|
|
20
|
+
this.interfaceType = externalWallets.WalletInterfaceType.Ethereum;
|
|
20
21
|
/**
|
|
21
22
|
* Retrieves the compressed secp256k1 public key by signing a known message.
|
|
22
23
|
*
|
|
@@ -28,7 +29,7 @@ class BaseEthereumWallet {
|
|
|
28
29
|
*/
|
|
29
30
|
this.getPublicKey = async (provider) => {
|
|
30
31
|
const message = "GET_PUBLIC_KEY";
|
|
31
|
-
const signature = await this.sign(message, provider,
|
|
32
|
+
const signature = await this.sign(message, provider, externalWallets.SignIntent.SignMessage);
|
|
32
33
|
return getCompressedPublicKey(signature, message);
|
|
33
34
|
};
|
|
34
35
|
/**
|
|
@@ -64,9 +65,9 @@ class BaseEthereumWallet {
|
|
|
64
65
|
// fail silently
|
|
65
66
|
}
|
|
66
67
|
discovered.push({
|
|
67
|
-
interfaceType:
|
|
68
|
+
interfaceType: externalWallets.WalletInterfaceType.Ethereum,
|
|
68
69
|
chainInfo: {
|
|
69
|
-
namespace:
|
|
70
|
+
namespace: externalWallets.Chain.Ethereum,
|
|
70
71
|
chainId,
|
|
71
72
|
},
|
|
72
73
|
info,
|
|
@@ -89,12 +90,12 @@ class BaseEthereumWallet {
|
|
|
89
90
|
* - If not connected, the wallet will typically prompt the user to authorize.
|
|
90
91
|
*
|
|
91
92
|
* @param provider - The wallet provider to use.
|
|
92
|
-
* @returns A promise that resolves
|
|
93
|
+
* @returns A promise that resolves with the connected wallet's address.
|
|
93
94
|
* @throws {Error} If the wallet returns no accounts after the request.
|
|
94
95
|
*/
|
|
95
96
|
this.connectWalletAccount = async (provider) => {
|
|
96
97
|
const wallet = asEip1193(provider);
|
|
97
|
-
await getAccount(wallet);
|
|
98
|
+
return await getAccount(wallet);
|
|
98
99
|
};
|
|
99
100
|
/**
|
|
100
101
|
* Attempts to disconnect the wallet by revoking `eth_accounts` permission.
|
|
@@ -127,7 +128,7 @@ class BaseEthereumWallet {
|
|
|
127
128
|
* @throws {Error} If provider is non-EVM, adding/switching fails, or metadata is missing.
|
|
128
129
|
*/
|
|
129
130
|
async switchChain(provider, chainOrId) {
|
|
130
|
-
if (provider.chainInfo.namespace !==
|
|
131
|
+
if (provider.chainInfo.namespace !== externalWallets.Chain.Ethereum) {
|
|
131
132
|
throw new Error("Only EVM wallets can switch chains");
|
|
132
133
|
}
|
|
133
134
|
const wallet = asEip1193(provider);
|
|
@@ -201,12 +202,12 @@ class EthereumWallet extends BaseEthereumWallet {
|
|
|
201
202
|
const selectedProvider = asEip1193(provider);
|
|
202
203
|
const account = await getAccount(selectedProvider);
|
|
203
204
|
switch (intent) {
|
|
204
|
-
case
|
|
205
|
+
case externalWallets.SignIntent.SignMessage:
|
|
205
206
|
return await selectedProvider.request({
|
|
206
207
|
method: "personal_sign",
|
|
207
208
|
params: [payload, account],
|
|
208
209
|
});
|
|
209
|
-
case
|
|
210
|
+
case externalWallets.SignIntent.SignAndSendTransaction:
|
|
210
211
|
const tx = ethers.Transaction.from(payload);
|
|
211
212
|
const txParams = {
|
|
212
213
|
from: account,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum.js","sources":["../../../../src/__wallet__/web/native/ethereum.ts"],"sourcesContent":[null],"names":["WalletInterfaceType","SignIntent","Chain","Transaction","toHex","recoverPublicKey","hashMessage","uint8ArrayFromHexString","compressRawPublicKey","uint8ArrayToHexString"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ethereum.js","sources":["../../../../src/__wallet__/web/native/ethereum.ts"],"sourcesContent":[null],"names":["WalletInterfaceType","SignIntent","Chain","Transaction","toHex","recoverPublicKey","hashMessage","uint8ArrayFromHexString","compressRawPublicKey","uint8ArrayToHexString"],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { toHex, recoverPublicKey, hashMessage } from 'viem';
|
|
2
2
|
import { Transaction } from 'ethers';
|
|
3
3
|
import { compressRawPublicKey } from '@turnkey/crypto';
|
|
4
|
-
import
|
|
4
|
+
import '../../../__types__/auth.mjs';
|
|
5
|
+
import { SignIntent, WalletInterfaceType, Chain } from '../../../__types__/external-wallets.mjs';
|
|
5
6
|
import { uint8ArrayFromHexString, uint8ArrayToHexString } from '@turnkey/encoding';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -87,12 +88,12 @@ class BaseEthereumWallet {
|
|
|
87
88
|
* - If not connected, the wallet will typically prompt the user to authorize.
|
|
88
89
|
*
|
|
89
90
|
* @param provider - The wallet provider to use.
|
|
90
|
-
* @returns A promise that resolves
|
|
91
|
+
* @returns A promise that resolves with the connected wallet's address.
|
|
91
92
|
* @throws {Error} If the wallet returns no accounts after the request.
|
|
92
93
|
*/
|
|
93
94
|
this.connectWalletAccount = async (provider) => {
|
|
94
95
|
const wallet = asEip1193(provider);
|
|
95
|
-
await getAccount(wallet);
|
|
96
|
+
return await getAccount(wallet);
|
|
96
97
|
};
|
|
97
98
|
/**
|
|
98
99
|
* Attempts to disconnect the wallet by revoking `eth_accounts` permission.
|