@phantom/browser-injected-sdk 1.0.3 → 1.0.4
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/dist/auto-confirm/index.js +22 -20
- package/dist/auto-confirm/index.mjs +13 -21
- package/dist/chunk-RGKAWEP4.mjs +39 -0
- package/dist/{chunk-JJH6SEIK.mjs → chunk-YVP5ANEI.mjs} +25 -52
- package/dist/ethereum/index.js +34 -50
- package/dist/ethereum/index.mjs +2 -2
- package/dist/index.js +24 -50
- package/dist/index.mjs +4 -12
- package/dist/solana/index.js +32 -39
- package/dist/solana/index.mjs +23 -41
- package/package.json +4 -4
- package/dist/chunk-GV6AIHPN.mjs +0 -18
package/dist/index.js
CHANGED
|
@@ -185,8 +185,12 @@ function splitUri(value) {
|
|
|
185
185
|
return value.match(/(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/);
|
|
186
186
|
}
|
|
187
187
|
|
|
188
|
+
// src/errors.ts
|
|
189
|
+
var PHANTOM_NOT_DETECTED = "Phantom wallet not detected.";
|
|
190
|
+
var ETHEREUM_PROVIDER_NOT_FOUND = "Ethereum provider not found on window.phantom.";
|
|
191
|
+
|
|
188
192
|
// src/ethereum/strategies/injected.ts
|
|
189
|
-
var MAX_RETRIES =
|
|
193
|
+
var MAX_RETRIES = 6;
|
|
190
194
|
var BASE_DELAY = 100;
|
|
191
195
|
var _getProvider, getProvider_fn;
|
|
192
196
|
var InjectedEthereumStrategy = class {
|
|
@@ -205,7 +209,11 @@ var InjectedEthereumStrategy = class {
|
|
|
205
209
|
}
|
|
206
210
|
retryCount++;
|
|
207
211
|
if (retryCount >= MAX_RETRIES) {
|
|
208
|
-
|
|
212
|
+
if (!isInstalled()) {
|
|
213
|
+
reject(new Error(PHANTOM_NOT_DETECTED));
|
|
214
|
+
} else {
|
|
215
|
+
reject(new Error(ETHEREUM_PROVIDER_NOT_FOUND));
|
|
216
|
+
}
|
|
209
217
|
} else {
|
|
210
218
|
scheduleRetry(resolve, reject);
|
|
211
219
|
}
|
|
@@ -225,7 +233,7 @@ var InjectedEthereumStrategy = class {
|
|
|
225
233
|
async connect({ onlyIfTrusted }) {
|
|
226
234
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
227
235
|
if (!provider) {
|
|
228
|
-
throw new Error(
|
|
236
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
229
237
|
}
|
|
230
238
|
if (provider.isConnected && provider.selectedAddress) {
|
|
231
239
|
return this.getAccounts();
|
|
@@ -257,7 +265,7 @@ var InjectedEthereumStrategy = class {
|
|
|
257
265
|
async signMessage(message, address) {
|
|
258
266
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
259
267
|
if (!provider) {
|
|
260
|
-
throw new Error(
|
|
268
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
261
269
|
}
|
|
262
270
|
if (!provider.isConnected) {
|
|
263
271
|
throw new Error("Provider is not connected.");
|
|
@@ -271,7 +279,7 @@ var InjectedEthereumStrategy = class {
|
|
|
271
279
|
async signPersonalMessage(message, address) {
|
|
272
280
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
273
281
|
if (!provider) {
|
|
274
|
-
throw new Error(
|
|
282
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
275
283
|
}
|
|
276
284
|
if (!provider.isConnected) {
|
|
277
285
|
throw new Error("Provider is not connected.");
|
|
@@ -285,7 +293,7 @@ var InjectedEthereumStrategy = class {
|
|
|
285
293
|
async signTypedData(typedData, address) {
|
|
286
294
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
287
295
|
if (!provider) {
|
|
288
|
-
throw new Error(
|
|
296
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
289
297
|
}
|
|
290
298
|
if (!provider.isConnected) {
|
|
291
299
|
throw new Error("Provider is not connected.");
|
|
@@ -299,7 +307,7 @@ var InjectedEthereumStrategy = class {
|
|
|
299
307
|
async signIn(signInData) {
|
|
300
308
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
301
309
|
if (!provider) {
|
|
302
|
-
throw new Error(
|
|
310
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
303
311
|
}
|
|
304
312
|
const message = createSiweMessage(signInData);
|
|
305
313
|
const address = provider.selectedAddress;
|
|
@@ -316,7 +324,7 @@ var InjectedEthereumStrategy = class {
|
|
|
316
324
|
async sendTransaction(transaction) {
|
|
317
325
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
318
326
|
if (!provider) {
|
|
319
|
-
throw new Error(
|
|
327
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
320
328
|
}
|
|
321
329
|
if (!provider.isConnected) {
|
|
322
330
|
throw new Error("Provider is not connected.");
|
|
@@ -330,7 +338,7 @@ var InjectedEthereumStrategy = class {
|
|
|
330
338
|
async signTransaction(transaction) {
|
|
331
339
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
332
340
|
if (!provider) {
|
|
333
|
-
throw new Error(
|
|
341
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
334
342
|
}
|
|
335
343
|
if (!provider.isConnected) {
|
|
336
344
|
throw new Error("Provider is not connected.");
|
|
@@ -344,7 +352,7 @@ var InjectedEthereumStrategy = class {
|
|
|
344
352
|
async getChainId() {
|
|
345
353
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
346
354
|
if (!provider) {
|
|
347
|
-
throw new Error(
|
|
355
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
348
356
|
}
|
|
349
357
|
const chainId = await provider.request({ method: "eth_chainId" });
|
|
350
358
|
return chainId;
|
|
@@ -352,7 +360,7 @@ var InjectedEthereumStrategy = class {
|
|
|
352
360
|
async switchChain(chainId) {
|
|
353
361
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
354
362
|
if (!provider) {
|
|
355
|
-
throw new Error(
|
|
363
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
356
364
|
}
|
|
357
365
|
await provider.request({
|
|
358
366
|
method: "wallet_switchEthereumChain",
|
|
@@ -362,29 +370,25 @@ var InjectedEthereumStrategy = class {
|
|
|
362
370
|
async request(args) {
|
|
363
371
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
364
372
|
if (!provider) {
|
|
365
|
-
throw new Error(
|
|
373
|
+
throw new Error(ETHEREUM_PROVIDER_NOT_FOUND);
|
|
366
374
|
}
|
|
367
375
|
return await provider.request(args);
|
|
368
376
|
}
|
|
369
377
|
};
|
|
370
378
|
_getProvider = new WeakSet();
|
|
371
379
|
getProvider_fn = function() {
|
|
372
|
-
if (
|
|
380
|
+
if (!isInstalled()) {
|
|
373
381
|
return void 0;
|
|
374
382
|
}
|
|
375
|
-
return window
|
|
383
|
+
return window.phantom.ethereum;
|
|
376
384
|
};
|
|
377
385
|
|
|
378
386
|
// src/ethereum/getProvider.ts
|
|
379
387
|
async function getProvider(strategy = "injected" /* INJECTED */) {
|
|
380
388
|
if (strategy === "injected") {
|
|
381
389
|
const provider = new InjectedEthereumStrategy();
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
return provider;
|
|
385
|
-
} catch (error) {
|
|
386
|
-
throw new Error("Provider not found.");
|
|
387
|
-
}
|
|
390
|
+
await provider.load();
|
|
391
|
+
return provider;
|
|
388
392
|
} else {
|
|
389
393
|
throw new Error("Invalid provider type.");
|
|
390
394
|
}
|
|
@@ -422,9 +426,6 @@ function triggerEvent(event, data) {
|
|
|
422
426
|
// src/ethereum/connect.ts
|
|
423
427
|
async function connect({ onlyIfTrusted = false } = {}) {
|
|
424
428
|
const provider = await getProvider();
|
|
425
|
-
if (!provider) {
|
|
426
|
-
throw new Error("Provider not found.");
|
|
427
|
-
}
|
|
428
429
|
if (provider.isConnected) {
|
|
429
430
|
const accounts = await provider.getAccounts();
|
|
430
431
|
return accounts;
|
|
@@ -454,9 +455,6 @@ async function connect({ onlyIfTrusted = false } = {}) {
|
|
|
454
455
|
// src/ethereum/disconnect.ts
|
|
455
456
|
async function disconnect() {
|
|
456
457
|
const provider = await getProvider();
|
|
457
|
-
if (!provider) {
|
|
458
|
-
throw new Error("Provider not found.");
|
|
459
|
-
}
|
|
460
458
|
await provider.disconnect();
|
|
461
459
|
triggerEvent("disconnect", []);
|
|
462
460
|
}
|
|
@@ -464,18 +462,12 @@ async function disconnect() {
|
|
|
464
462
|
// src/ethereum/getAccounts.ts
|
|
465
463
|
async function getAccounts() {
|
|
466
464
|
const provider = await getProvider();
|
|
467
|
-
if (!provider) {
|
|
468
|
-
throw new Error("Provider not found.");
|
|
469
|
-
}
|
|
470
465
|
return provider.getAccounts();
|
|
471
466
|
}
|
|
472
467
|
|
|
473
468
|
// src/ethereum/signMessage.ts
|
|
474
469
|
async function signPersonalMessage(message, address) {
|
|
475
470
|
const provider = await getProvider();
|
|
476
|
-
if (!provider) {
|
|
477
|
-
throw new Error("Provider not found.");
|
|
478
|
-
}
|
|
479
471
|
if (!provider.isConnected) {
|
|
480
472
|
await provider.connect({ onlyIfTrusted: false });
|
|
481
473
|
}
|
|
@@ -483,9 +475,6 @@ async function signPersonalMessage(message, address) {
|
|
|
483
475
|
}
|
|
484
476
|
async function signTypedData(typedData, address) {
|
|
485
477
|
const provider = await getProvider();
|
|
486
|
-
if (!provider) {
|
|
487
|
-
throw new Error("Provider not found.");
|
|
488
|
-
}
|
|
489
478
|
if (!provider.isConnected) {
|
|
490
479
|
await provider.connect({ onlyIfTrusted: false });
|
|
491
480
|
}
|
|
@@ -495,9 +484,6 @@ async function signTypedData(typedData, address) {
|
|
|
495
484
|
// src/ethereum/sendTransaction.ts
|
|
496
485
|
async function sendTransaction(transaction) {
|
|
497
486
|
const provider = await getProvider();
|
|
498
|
-
if (!provider) {
|
|
499
|
-
throw new Error("Provider not found.");
|
|
500
|
-
}
|
|
501
487
|
if (!provider.isConnected) {
|
|
502
488
|
await provider.connect({ onlyIfTrusted: false });
|
|
503
489
|
}
|
|
@@ -505,9 +491,6 @@ async function sendTransaction(transaction) {
|
|
|
505
491
|
}
|
|
506
492
|
async function signTransaction(transaction) {
|
|
507
493
|
const provider = await getProvider();
|
|
508
|
-
if (!provider) {
|
|
509
|
-
throw new Error("Provider not found.");
|
|
510
|
-
}
|
|
511
494
|
if (!provider.isConnected) {
|
|
512
495
|
await provider.connect({ onlyIfTrusted: false });
|
|
513
496
|
}
|
|
@@ -517,16 +500,10 @@ async function signTransaction(transaction) {
|
|
|
517
500
|
// src/ethereum/chainUtils.ts
|
|
518
501
|
async function getChainId() {
|
|
519
502
|
const provider = await getProvider();
|
|
520
|
-
if (!provider) {
|
|
521
|
-
throw new Error("Provider not found.");
|
|
522
|
-
}
|
|
523
503
|
return provider.getChainId();
|
|
524
504
|
}
|
|
525
505
|
async function switchChain(chainId) {
|
|
526
506
|
const provider = await getProvider();
|
|
527
|
-
if (!provider) {
|
|
528
|
-
throw new Error("Provider not found.");
|
|
529
|
-
}
|
|
530
507
|
return provider.switchChain(chainId);
|
|
531
508
|
}
|
|
532
509
|
|
|
@@ -545,9 +522,6 @@ var Ethereum = class {
|
|
|
545
522
|
}
|
|
546
523
|
async request(args) {
|
|
547
524
|
const provider = await getProvider();
|
|
548
|
-
if (!provider) {
|
|
549
|
-
throw new Error("Provider not found.");
|
|
550
|
-
}
|
|
551
525
|
const providerInstance = provider.getProvider();
|
|
552
526
|
if (!providerInstance) {
|
|
553
527
|
throw new Error("Provider instance not found.");
|
package/dist/index.mjs
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
createEthereumPlugin,
|
|
3
3
|
createSiweMessage
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-YVP5ANEI.mjs";
|
|
5
5
|
import "./chunk-WUKYLWAZ.mjs";
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
function isInstalled() {
|
|
10
|
-
try {
|
|
11
|
-
const phantom = window?.phantom;
|
|
12
|
-
return !!phantom;
|
|
13
|
-
} catch (error) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
6
|
+
import {
|
|
7
|
+
isInstalled
|
|
8
|
+
} from "./chunk-RGKAWEP4.mjs";
|
|
17
9
|
|
|
18
10
|
// src/extension/plugin.ts
|
|
19
11
|
var extension = {
|
package/dist/solana/index.js
CHANGED
|
@@ -37,8 +37,22 @@ __export(solana_exports, {
|
|
|
37
37
|
});
|
|
38
38
|
module.exports = __toCommonJS(solana_exports);
|
|
39
39
|
|
|
40
|
+
// src/errors.ts
|
|
41
|
+
var PHANTOM_NOT_DETECTED = "Phantom wallet not detected.";
|
|
42
|
+
var SOLANA_PROVIDER_NOT_FOUND = "Solana provider not found on window.phantom.";
|
|
43
|
+
|
|
44
|
+
// src/extension/isInstalled.ts
|
|
45
|
+
function isInstalled() {
|
|
46
|
+
try {
|
|
47
|
+
const phantom = window?.phantom;
|
|
48
|
+
return !!phantom;
|
|
49
|
+
} catch (error) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
40
54
|
// src/solana/strategies/injected.ts
|
|
41
|
-
var MAX_RETRIES =
|
|
55
|
+
var MAX_RETRIES = 6;
|
|
42
56
|
var BASE_DELAY = 100;
|
|
43
57
|
var _getProvider, getProvider_fn;
|
|
44
58
|
var InjectedSolanaStrategy = class {
|
|
@@ -57,7 +71,11 @@ var InjectedSolanaStrategy = class {
|
|
|
57
71
|
}
|
|
58
72
|
retryCount++;
|
|
59
73
|
if (retryCount >= MAX_RETRIES) {
|
|
60
|
-
|
|
74
|
+
if (!isInstalled()) {
|
|
75
|
+
reject(new Error(PHANTOM_NOT_DETECTED));
|
|
76
|
+
} else {
|
|
77
|
+
reject(new Error(SOLANA_PROVIDER_NOT_FOUND));
|
|
78
|
+
}
|
|
61
79
|
} else {
|
|
62
80
|
scheduleRetry(resolve, reject);
|
|
63
81
|
}
|
|
@@ -77,7 +95,7 @@ var InjectedSolanaStrategy = class {
|
|
|
77
95
|
async connect({ onlyIfTrusted }) {
|
|
78
96
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
79
97
|
if (!provider) {
|
|
80
|
-
throw new Error(
|
|
98
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
81
99
|
}
|
|
82
100
|
if (provider.isConnected && provider.publicKey) {
|
|
83
101
|
return this.getAccount() ?? void 0;
|
|
@@ -92,7 +110,7 @@ var InjectedSolanaStrategy = class {
|
|
|
92
110
|
async disconnect() {
|
|
93
111
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
94
112
|
if (!provider) {
|
|
95
|
-
throw new Error(
|
|
113
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
96
114
|
}
|
|
97
115
|
await provider.disconnect();
|
|
98
116
|
}
|
|
@@ -106,7 +124,7 @@ var InjectedSolanaStrategy = class {
|
|
|
106
124
|
async signMessage(message, display) {
|
|
107
125
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
108
126
|
if (!provider) {
|
|
109
|
-
throw new Error(
|
|
127
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
110
128
|
}
|
|
111
129
|
if (!provider.isConnected) {
|
|
112
130
|
throw new Error("Provider is not connected.");
|
|
@@ -120,7 +138,7 @@ var InjectedSolanaStrategy = class {
|
|
|
120
138
|
async signIn(signInData) {
|
|
121
139
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
122
140
|
if (!provider) {
|
|
123
|
-
throw new Error(
|
|
141
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
124
142
|
}
|
|
125
143
|
const result = await provider.signIn(signInData);
|
|
126
144
|
return {
|
|
@@ -132,7 +150,7 @@ var InjectedSolanaStrategy = class {
|
|
|
132
150
|
async signAndSendTransaction(transaction) {
|
|
133
151
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
134
152
|
if (!provider) {
|
|
135
|
-
throw new Error(
|
|
153
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
136
154
|
}
|
|
137
155
|
if (!provider.isConnected) {
|
|
138
156
|
throw new Error("Provider is not connected.");
|
|
@@ -146,7 +164,7 @@ var InjectedSolanaStrategy = class {
|
|
|
146
164
|
async signAndSendAllTransactions(transactions) {
|
|
147
165
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
148
166
|
if (!provider) {
|
|
149
|
-
throw new Error(
|
|
167
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
150
168
|
}
|
|
151
169
|
if (!provider.isConnected) {
|
|
152
170
|
throw new Error("Provider is not connected.");
|
|
@@ -163,7 +181,7 @@ var InjectedSolanaStrategy = class {
|
|
|
163
181
|
async signTransaction(transaction) {
|
|
164
182
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
165
183
|
if (!provider) {
|
|
166
|
-
throw new Error(
|
|
184
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
167
185
|
}
|
|
168
186
|
if (!provider.isConnected) {
|
|
169
187
|
throw new Error("Provider is not connected.");
|
|
@@ -174,7 +192,7 @@ var InjectedSolanaStrategy = class {
|
|
|
174
192
|
async signAllTransactions(transactions) {
|
|
175
193
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
176
194
|
if (!provider) {
|
|
177
|
-
throw new Error(
|
|
195
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
178
196
|
}
|
|
179
197
|
if (!provider.isConnected) {
|
|
180
198
|
throw new Error("Provider is not connected.");
|
|
@@ -185,22 +203,18 @@ var InjectedSolanaStrategy = class {
|
|
|
185
203
|
};
|
|
186
204
|
_getProvider = new WeakSet();
|
|
187
205
|
getProvider_fn = function() {
|
|
188
|
-
if (
|
|
206
|
+
if (!isInstalled()) {
|
|
189
207
|
return void 0;
|
|
190
208
|
}
|
|
191
|
-
return window
|
|
209
|
+
return window.phantom.solana;
|
|
192
210
|
};
|
|
193
211
|
|
|
194
212
|
// src/solana/getProvider.ts
|
|
195
213
|
async function getProvider(strategy = "injected" /* INJECTED */) {
|
|
196
214
|
if (strategy === "injected") {
|
|
197
215
|
const provider = new InjectedSolanaStrategy();
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
return provider;
|
|
201
|
-
} catch (error) {
|
|
202
|
-
throw new Error("Provider not found.");
|
|
203
|
-
}
|
|
216
|
+
await provider.load();
|
|
217
|
+
return provider;
|
|
204
218
|
} else {
|
|
205
219
|
throw new Error("Invalid provider type.");
|
|
206
220
|
}
|
|
@@ -240,9 +254,6 @@ function triggerEvent(event, ...args) {
|
|
|
240
254
|
// src/solana/connect.ts
|
|
241
255
|
async function connect({ onlyIfTrusted = false } = {}) {
|
|
242
256
|
const provider = await getProvider();
|
|
243
|
-
if (!provider) {
|
|
244
|
-
throw new Error("Provider not found.");
|
|
245
|
-
}
|
|
246
257
|
if (provider.isConnected) {
|
|
247
258
|
return provider.getAccount();
|
|
248
259
|
}
|
|
@@ -271,9 +282,6 @@ async function connect({ onlyIfTrusted = false } = {}) {
|
|
|
271
282
|
// src/solana/disconnect.ts
|
|
272
283
|
async function disconnect() {
|
|
273
284
|
const provider = await getProvider();
|
|
274
|
-
if (!provider) {
|
|
275
|
-
throw new Error("Provider not found.");
|
|
276
|
-
}
|
|
277
285
|
await provider.disconnect();
|
|
278
286
|
triggerEvent("disconnect");
|
|
279
287
|
}
|
|
@@ -281,9 +289,6 @@ async function disconnect() {
|
|
|
281
289
|
// src/solana/signAndSendTransaction.ts
|
|
282
290
|
async function signAndSendTransaction(transaction) {
|
|
283
291
|
const provider = await getProvider();
|
|
284
|
-
if (!provider) {
|
|
285
|
-
throw new Error("Provider not found.");
|
|
286
|
-
}
|
|
287
292
|
if (!provider.isConnected) {
|
|
288
293
|
await provider.connect({ onlyIfTrusted: false });
|
|
289
294
|
}
|
|
@@ -293,9 +298,6 @@ async function signAndSendTransaction(transaction) {
|
|
|
293
298
|
// src/solana/signAndSendAllTransactions.ts
|
|
294
299
|
async function signAndSendAllTransactions(transactions) {
|
|
295
300
|
const provider = await getProvider();
|
|
296
|
-
if (!provider) {
|
|
297
|
-
throw new Error("Provider not found.");
|
|
298
|
-
}
|
|
299
301
|
if (!provider.isConnected) {
|
|
300
302
|
await provider.connect({ onlyIfTrusted: false });
|
|
301
303
|
}
|
|
@@ -305,9 +307,6 @@ async function signAndSendAllTransactions(transactions) {
|
|
|
305
307
|
// src/solana/signTransaction.ts
|
|
306
308
|
async function signTransaction(transaction) {
|
|
307
309
|
const provider = await getProvider();
|
|
308
|
-
if (!provider) {
|
|
309
|
-
throw new Error("Provider not found.");
|
|
310
|
-
}
|
|
311
310
|
if (!provider.isConnected) {
|
|
312
311
|
await provider.connect({ onlyIfTrusted: false });
|
|
313
312
|
}
|
|
@@ -317,9 +316,6 @@ async function signTransaction(transaction) {
|
|
|
317
316
|
// src/solana/signAllTransactions.ts
|
|
318
317
|
async function signAllTransactions(transactions) {
|
|
319
318
|
const provider = await getProvider();
|
|
320
|
-
if (!provider) {
|
|
321
|
-
throw new Error("Provider not found.");
|
|
322
|
-
}
|
|
323
319
|
if (!provider.isConnected) {
|
|
324
320
|
await provider.connect({ onlyIfTrusted: false });
|
|
325
321
|
}
|
|
@@ -329,9 +325,6 @@ async function signAllTransactions(transactions) {
|
|
|
329
325
|
// src/solana/signMessage.ts
|
|
330
326
|
async function signMessage(message, display) {
|
|
331
327
|
const provider = await getProvider();
|
|
332
|
-
if (!provider) {
|
|
333
|
-
throw new Error("Provider not found.");
|
|
334
|
-
}
|
|
335
328
|
if (!provider.isConnected) {
|
|
336
329
|
await provider.connect({ onlyIfTrusted: false });
|
|
337
330
|
}
|
package/dist/solana/index.mjs
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import "../chunk-WUKYLWAZ.mjs";
|
|
2
2
|
import {
|
|
3
|
+
PHANTOM_NOT_DETECTED,
|
|
4
|
+
SOLANA_PROVIDER_NOT_FOUND,
|
|
3
5
|
__privateAdd,
|
|
4
|
-
__privateMethod
|
|
5
|
-
|
|
6
|
+
__privateMethod,
|
|
7
|
+
isInstalled
|
|
8
|
+
} from "../chunk-RGKAWEP4.mjs";
|
|
6
9
|
|
|
7
10
|
// src/solana/strategies/injected.ts
|
|
8
|
-
var MAX_RETRIES =
|
|
11
|
+
var MAX_RETRIES = 6;
|
|
9
12
|
var BASE_DELAY = 100;
|
|
10
13
|
var _getProvider, getProvider_fn;
|
|
11
14
|
var InjectedSolanaStrategy = class {
|
|
@@ -24,7 +27,11 @@ var InjectedSolanaStrategy = class {
|
|
|
24
27
|
}
|
|
25
28
|
retryCount++;
|
|
26
29
|
if (retryCount >= MAX_RETRIES) {
|
|
27
|
-
|
|
30
|
+
if (!isInstalled()) {
|
|
31
|
+
reject(new Error(PHANTOM_NOT_DETECTED));
|
|
32
|
+
} else {
|
|
33
|
+
reject(new Error(SOLANA_PROVIDER_NOT_FOUND));
|
|
34
|
+
}
|
|
28
35
|
} else {
|
|
29
36
|
scheduleRetry(resolve, reject);
|
|
30
37
|
}
|
|
@@ -44,7 +51,7 @@ var InjectedSolanaStrategy = class {
|
|
|
44
51
|
async connect({ onlyIfTrusted }) {
|
|
45
52
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
46
53
|
if (!provider) {
|
|
47
|
-
throw new Error(
|
|
54
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
48
55
|
}
|
|
49
56
|
if (provider.isConnected && provider.publicKey) {
|
|
50
57
|
return this.getAccount() ?? void 0;
|
|
@@ -59,7 +66,7 @@ var InjectedSolanaStrategy = class {
|
|
|
59
66
|
async disconnect() {
|
|
60
67
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
61
68
|
if (!provider) {
|
|
62
|
-
throw new Error(
|
|
69
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
63
70
|
}
|
|
64
71
|
await provider.disconnect();
|
|
65
72
|
}
|
|
@@ -73,7 +80,7 @@ var InjectedSolanaStrategy = class {
|
|
|
73
80
|
async signMessage(message, display) {
|
|
74
81
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
75
82
|
if (!provider) {
|
|
76
|
-
throw new Error(
|
|
83
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
77
84
|
}
|
|
78
85
|
if (!provider.isConnected) {
|
|
79
86
|
throw new Error("Provider is not connected.");
|
|
@@ -87,7 +94,7 @@ var InjectedSolanaStrategy = class {
|
|
|
87
94
|
async signIn(signInData) {
|
|
88
95
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
89
96
|
if (!provider) {
|
|
90
|
-
throw new Error(
|
|
97
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
91
98
|
}
|
|
92
99
|
const result = await provider.signIn(signInData);
|
|
93
100
|
return {
|
|
@@ -99,7 +106,7 @@ var InjectedSolanaStrategy = class {
|
|
|
99
106
|
async signAndSendTransaction(transaction) {
|
|
100
107
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
101
108
|
if (!provider) {
|
|
102
|
-
throw new Error(
|
|
109
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
103
110
|
}
|
|
104
111
|
if (!provider.isConnected) {
|
|
105
112
|
throw new Error("Provider is not connected.");
|
|
@@ -113,7 +120,7 @@ var InjectedSolanaStrategy = class {
|
|
|
113
120
|
async signAndSendAllTransactions(transactions) {
|
|
114
121
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
115
122
|
if (!provider) {
|
|
116
|
-
throw new Error(
|
|
123
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
117
124
|
}
|
|
118
125
|
if (!provider.isConnected) {
|
|
119
126
|
throw new Error("Provider is not connected.");
|
|
@@ -130,7 +137,7 @@ var InjectedSolanaStrategy = class {
|
|
|
130
137
|
async signTransaction(transaction) {
|
|
131
138
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
132
139
|
if (!provider) {
|
|
133
|
-
throw new Error(
|
|
140
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
134
141
|
}
|
|
135
142
|
if (!provider.isConnected) {
|
|
136
143
|
throw new Error("Provider is not connected.");
|
|
@@ -141,7 +148,7 @@ var InjectedSolanaStrategy = class {
|
|
|
141
148
|
async signAllTransactions(transactions) {
|
|
142
149
|
const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
|
|
143
150
|
if (!provider) {
|
|
144
|
-
throw new Error(
|
|
151
|
+
throw new Error(SOLANA_PROVIDER_NOT_FOUND);
|
|
145
152
|
}
|
|
146
153
|
if (!provider.isConnected) {
|
|
147
154
|
throw new Error("Provider is not connected.");
|
|
@@ -152,22 +159,18 @@ var InjectedSolanaStrategy = class {
|
|
|
152
159
|
};
|
|
153
160
|
_getProvider = new WeakSet();
|
|
154
161
|
getProvider_fn = function() {
|
|
155
|
-
if (
|
|
162
|
+
if (!isInstalled()) {
|
|
156
163
|
return void 0;
|
|
157
164
|
}
|
|
158
|
-
return window
|
|
165
|
+
return window.phantom.solana;
|
|
159
166
|
};
|
|
160
167
|
|
|
161
168
|
// src/solana/getProvider.ts
|
|
162
169
|
async function getProvider(strategy = "injected" /* INJECTED */) {
|
|
163
170
|
if (strategy === "injected") {
|
|
164
171
|
const provider = new InjectedSolanaStrategy();
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
return provider;
|
|
168
|
-
} catch (error) {
|
|
169
|
-
throw new Error("Provider not found.");
|
|
170
|
-
}
|
|
172
|
+
await provider.load();
|
|
173
|
+
return provider;
|
|
171
174
|
} else {
|
|
172
175
|
throw new Error("Invalid provider type.");
|
|
173
176
|
}
|
|
@@ -207,9 +210,6 @@ function triggerEvent(event, ...args) {
|
|
|
207
210
|
// src/solana/connect.ts
|
|
208
211
|
async function connect({ onlyIfTrusted = false } = {}) {
|
|
209
212
|
const provider = await getProvider();
|
|
210
|
-
if (!provider) {
|
|
211
|
-
throw new Error("Provider not found.");
|
|
212
|
-
}
|
|
213
213
|
if (provider.isConnected) {
|
|
214
214
|
return provider.getAccount();
|
|
215
215
|
}
|
|
@@ -238,9 +238,6 @@ async function connect({ onlyIfTrusted = false } = {}) {
|
|
|
238
238
|
// src/solana/disconnect.ts
|
|
239
239
|
async function disconnect() {
|
|
240
240
|
const provider = await getProvider();
|
|
241
|
-
if (!provider) {
|
|
242
|
-
throw new Error("Provider not found.");
|
|
243
|
-
}
|
|
244
241
|
await provider.disconnect();
|
|
245
242
|
triggerEvent("disconnect");
|
|
246
243
|
}
|
|
@@ -248,9 +245,6 @@ async function disconnect() {
|
|
|
248
245
|
// src/solana/signAndSendTransaction.ts
|
|
249
246
|
async function signAndSendTransaction(transaction) {
|
|
250
247
|
const provider = await getProvider();
|
|
251
|
-
if (!provider) {
|
|
252
|
-
throw new Error("Provider not found.");
|
|
253
|
-
}
|
|
254
248
|
if (!provider.isConnected) {
|
|
255
249
|
await provider.connect({ onlyIfTrusted: false });
|
|
256
250
|
}
|
|
@@ -260,9 +254,6 @@ async function signAndSendTransaction(transaction) {
|
|
|
260
254
|
// src/solana/signAndSendAllTransactions.ts
|
|
261
255
|
async function signAndSendAllTransactions(transactions) {
|
|
262
256
|
const provider = await getProvider();
|
|
263
|
-
if (!provider) {
|
|
264
|
-
throw new Error("Provider not found.");
|
|
265
|
-
}
|
|
266
257
|
if (!provider.isConnected) {
|
|
267
258
|
await provider.connect({ onlyIfTrusted: false });
|
|
268
259
|
}
|
|
@@ -272,9 +263,6 @@ async function signAndSendAllTransactions(transactions) {
|
|
|
272
263
|
// src/solana/signTransaction.ts
|
|
273
264
|
async function signTransaction(transaction) {
|
|
274
265
|
const provider = await getProvider();
|
|
275
|
-
if (!provider) {
|
|
276
|
-
throw new Error("Provider not found.");
|
|
277
|
-
}
|
|
278
266
|
if (!provider.isConnected) {
|
|
279
267
|
await provider.connect({ onlyIfTrusted: false });
|
|
280
268
|
}
|
|
@@ -284,9 +272,6 @@ async function signTransaction(transaction) {
|
|
|
284
272
|
// src/solana/signAllTransactions.ts
|
|
285
273
|
async function signAllTransactions(transactions) {
|
|
286
274
|
const provider = await getProvider();
|
|
287
|
-
if (!provider) {
|
|
288
|
-
throw new Error("Provider not found.");
|
|
289
|
-
}
|
|
290
275
|
if (!provider.isConnected) {
|
|
291
276
|
await provider.connect({ onlyIfTrusted: false });
|
|
292
277
|
}
|
|
@@ -296,9 +281,6 @@ async function signAllTransactions(transactions) {
|
|
|
296
281
|
// src/solana/signMessage.ts
|
|
297
282
|
async function signMessage(message, display) {
|
|
298
283
|
const provider = await getProvider();
|
|
299
|
-
if (!provider) {
|
|
300
|
-
throw new Error("Provider not found.");
|
|
301
|
-
}
|
|
302
284
|
if (!provider.isConnected) {
|
|
303
285
|
await provider.connect({ onlyIfTrusted: false });
|
|
304
286
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phantom/browser-injected-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/phantom/phantom-connect-sdk",
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"prettier": "prettier --write \"src/**/*.{ts,tsx}\""
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@phantom/chain-interfaces": "^1.0.
|
|
51
|
-
"@phantom/constants": "^1.0.
|
|
52
|
-
"@phantom/sdk-types": "^1.0.
|
|
50
|
+
"@phantom/chain-interfaces": "^1.0.4",
|
|
51
|
+
"@phantom/constants": "^1.0.4",
|
|
52
|
+
"@phantom/sdk-types": "^1.0.4"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"@jest/fake-timers": "^29.7.0",
|
package/dist/chunk-GV6AIHPN.mjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
var __accessCheck = (obj, member, msg) => {
|
|
2
|
-
if (!member.has(obj))
|
|
3
|
-
throw TypeError("Cannot " + msg);
|
|
4
|
-
};
|
|
5
|
-
var __privateAdd = (obj, member, value) => {
|
|
6
|
-
if (member.has(obj))
|
|
7
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
8
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
9
|
-
};
|
|
10
|
-
var __privateMethod = (obj, member, method) => {
|
|
11
|
-
__accessCheck(obj, member, "access private method");
|
|
12
|
-
return method;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export {
|
|
16
|
-
__privateAdd,
|
|
17
|
-
__privateMethod
|
|
18
|
-
};
|