@phantom/browser-sdk 0.0.8 → 0.0.9

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 CHANGED
@@ -28,7 +28,7 @@ import { createSolanaPlugin } from "@phantom/browser-sdk/solana"; // Import the
28
28
 
29
29
  // Create a Phantom instance with the Solana plugin
30
30
  const phantom = createPhantom({
31
- chainPlugins: [createSolanaPlugin()],
31
+ plugins: [createSolanaPlugin()],
32
32
  });
33
33
 
34
34
  // Now you can use the Solana-specific methods
@@ -89,7 +89,7 @@ The SDK also allows you to listen for `connect`, `disconnect`, and `accountChang
89
89
  **Example:**
90
90
 
91
91
  ```typescript
92
- const phantom = createPhantom({ chainPlugins: [createSolanaPlugin()] });
92
+ const phantom = createPhantom({ plugins: [createSolanaPlugin()] });
93
93
 
94
94
  const handleConnect = (address: string) => {
95
95
  console.log(`Wallet connected with public key: ${address}`);
@@ -115,7 +115,7 @@ The SDK also allows you to listen for `connect`, `disconnect`, and `accountChang
115
115
  **Example:**
116
116
 
117
117
  ```typescript
118
- const phantom = createPhantom({ chainPlugins: [createSolanaPlugin()] });
118
+ const phantom = createPhantom({ plugins: [createSolanaPlugin()] });
119
119
 
120
120
  const handleDisconnect = () => {
121
121
  console.log("Wallet disconnected");
@@ -0,0 +1,37 @@
1
+ import { Plugin } from '../index.js';
2
+
3
+ type NetworkID = "bip122:000000000019d6689c085ae165831e93" | "bip122:000000000933ea01ad0ee984209779ba" | "solana:101" | "solana:102" | "solana:103" | "solana:localnet" | "eip155:1" | "eip155:11155111" | "eip155:137" | "eip155:80002" | "eip155:8453" | "eip155:84532" | "eip155:143" | "eip155:10143" | "eip155:41454" | "eip155:42161" | "eip155:421614" | "hypercore:mainnet" | "hypercore:testnet" | "sui:mainnet" | "sui:testnet";
4
+ type AutoConfirmEnableParams = {
5
+ chains?: NetworkID[];
6
+ };
7
+ type AutoConfirmResult = {
8
+ enabled: boolean;
9
+ chains: NetworkID[];
10
+ };
11
+ type AutoConfirmSupportedChainsResult = {
12
+ chains: NetworkID[];
13
+ };
14
+
15
+ declare function autoConfirmEnable(params?: AutoConfirmEnableParams): Promise<AutoConfirmResult>;
16
+
17
+ declare function autoConfirmDisable(): Promise<AutoConfirmResult>;
18
+
19
+ declare function autoConfirmStatus(): Promise<AutoConfirmResult>;
20
+
21
+ declare function autoConfirmSupportedChains(): Promise<AutoConfirmSupportedChainsResult>;
22
+
23
+ type AutoConfirmPlugin = {
24
+ autoConfirmEnable: typeof autoConfirmEnable;
25
+ autoConfirmDisable: typeof autoConfirmDisable;
26
+ autoConfirmStatus: typeof autoConfirmStatus;
27
+ autoConfirmSupportedChains: typeof autoConfirmSupportedChains;
28
+ };
29
+ declare function createAutoConfirmPlugin(): Plugin<AutoConfirmPlugin>;
30
+
31
+ declare module "../index" {
32
+ interface Phantom {
33
+ autoConfirm: AutoConfirmPlugin;
34
+ }
35
+ }
36
+
37
+ export { AutoConfirmEnableParams, AutoConfirmResult, AutoConfirmSupportedChainsResult, NetworkID, createAutoConfirmPlugin };
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/auto-confirm/index.ts
21
+ var auto_confirm_exports = {};
22
+ __export(auto_confirm_exports, {
23
+ createAutoConfirmPlugin: () => createAutoConfirmPlugin
24
+ });
25
+ module.exports = __toCommonJS(auto_confirm_exports);
26
+
27
+ // src/auto-confirm/getProvider.ts
28
+ function getProvider() {
29
+ if (typeof window === "undefined") {
30
+ return null;
31
+ }
32
+ const provider = window.phantom?.app;
33
+ if (!provider) {
34
+ return null;
35
+ }
36
+ return provider;
37
+ }
38
+
39
+ // src/auto-confirm/autoConfirmEnable.ts
40
+ async function autoConfirmEnable(params) {
41
+ const provider = await getProvider();
42
+ if (!provider) {
43
+ throw new Error("Provider not found.");
44
+ }
45
+ const result = await provider.request({
46
+ method: "phantom_auto_confirm_enable",
47
+ params: params || {}
48
+ });
49
+ return result;
50
+ }
51
+
52
+ // src/auto-confirm/autoConfirmDisable.ts
53
+ async function autoConfirmDisable() {
54
+ const provider = await getProvider();
55
+ if (!provider) {
56
+ throw new Error("Provider not found.");
57
+ }
58
+ const result = await provider.request({
59
+ method: "phantom_auto_confirm_disable",
60
+ params: {}
61
+ });
62
+ return result;
63
+ }
64
+
65
+ // src/auto-confirm/autoConfirmStatus.ts
66
+ async function autoConfirmStatus() {
67
+ const provider = await getProvider();
68
+ if (!provider) {
69
+ throw new Error("Provider not found.");
70
+ }
71
+ const result = await provider.request({
72
+ method: "phantom_auto_confirm_status",
73
+ params: {}
74
+ });
75
+ return result;
76
+ }
77
+
78
+ // src/auto-confirm/autoConfirmSupportedChains.ts
79
+ async function autoConfirmSupportedChains() {
80
+ const provider = getProvider();
81
+ if (!provider) {
82
+ throw new Error("Provider not found.");
83
+ }
84
+ const result = await provider.request({
85
+ method: "phantom_auto_confirm_supported_chains",
86
+ params: {}
87
+ });
88
+ return result;
89
+ }
90
+
91
+ // src/auto-confirm/plugin.ts
92
+ var autoConfirm = {
93
+ autoConfirmEnable,
94
+ autoConfirmDisable,
95
+ autoConfirmStatus,
96
+ autoConfirmSupportedChains
97
+ };
98
+ function createAutoConfirmPlugin() {
99
+ return {
100
+ name: "autoConfirm",
101
+ create: () => autoConfirm
102
+ };
103
+ }
104
+ // Annotate the CommonJS export names for ESM import in node:
105
+ 0 && (module.exports = {
106
+ createAutoConfirmPlugin
107
+ });
@@ -0,0 +1,82 @@
1
+ import "../chunk-GV6AIHPN.mjs";
2
+
3
+ // src/auto-confirm/getProvider.ts
4
+ function getProvider() {
5
+ if (typeof window === "undefined") {
6
+ return null;
7
+ }
8
+ const provider = window.phantom?.app;
9
+ if (!provider) {
10
+ return null;
11
+ }
12
+ return provider;
13
+ }
14
+
15
+ // src/auto-confirm/autoConfirmEnable.ts
16
+ async function autoConfirmEnable(params) {
17
+ const provider = await getProvider();
18
+ if (!provider) {
19
+ throw new Error("Provider not found.");
20
+ }
21
+ const result = await provider.request({
22
+ method: "phantom_auto_confirm_enable",
23
+ params: params || {}
24
+ });
25
+ return result;
26
+ }
27
+
28
+ // src/auto-confirm/autoConfirmDisable.ts
29
+ async function autoConfirmDisable() {
30
+ const provider = await getProvider();
31
+ if (!provider) {
32
+ throw new Error("Provider not found.");
33
+ }
34
+ const result = await provider.request({
35
+ method: "phantom_auto_confirm_disable",
36
+ params: {}
37
+ });
38
+ return result;
39
+ }
40
+
41
+ // src/auto-confirm/autoConfirmStatus.ts
42
+ async function autoConfirmStatus() {
43
+ const provider = await getProvider();
44
+ if (!provider) {
45
+ throw new Error("Provider not found.");
46
+ }
47
+ const result = await provider.request({
48
+ method: "phantom_auto_confirm_status",
49
+ params: {}
50
+ });
51
+ return result;
52
+ }
53
+
54
+ // src/auto-confirm/autoConfirmSupportedChains.ts
55
+ async function autoConfirmSupportedChains() {
56
+ const provider = getProvider();
57
+ if (!provider) {
58
+ throw new Error("Provider not found.");
59
+ }
60
+ const result = await provider.request({
61
+ method: "phantom_auto_confirm_supported_chains",
62
+ params: {}
63
+ });
64
+ return result;
65
+ }
66
+
67
+ // src/auto-confirm/plugin.ts
68
+ var autoConfirm = {
69
+ autoConfirmEnable,
70
+ autoConfirmDisable,
71
+ autoConfirmStatus,
72
+ autoConfirmSupportedChains
73
+ };
74
+ function createAutoConfirmPlugin() {
75
+ return {
76
+ name: "autoConfirm",
77
+ create: () => autoConfirm
78
+ };
79
+ }
80
+ export {
81
+ createAutoConfirmPlugin
82
+ };
package/dist/index.d.ts CHANGED
@@ -1,16 +1,16 @@
1
- type ChainPlugin<T> = {
1
+ type Plugin<T> = {
2
2
  name: string;
3
3
  create: () => T;
4
4
  };
5
5
  type CreatePhantomConfig = {
6
- chainPlugins?: ChainPlugin<unknown>[];
6
+ plugins?: Plugin<unknown>[];
7
7
  };
8
8
  interface Phantom {
9
9
  }
10
10
  /**
11
- * Creates a Phantom instance with the provided chain plugins.
11
+ * Creates a Phantom instance with the provided plugins.
12
12
  * Each plugin extends the Phantom interface via declaration merging.
13
13
  */
14
- declare function createPhantom({ chainPlugins }: CreatePhantomConfig): Phantom;
14
+ declare function createPhantom({ plugins }: CreatePhantomConfig): Phantom;
15
15
 
16
- export { ChainPlugin, CreatePhantomConfig, Phantom, createPhantom };
16
+ export { CreatePhantomConfig, Phantom, Plugin, createPhantom };
package/dist/index.js CHANGED
@@ -23,9 +23,9 @@ __export(src_exports, {
23
23
  createPhantom: () => createPhantom
24
24
  });
25
25
  module.exports = __toCommonJS(src_exports);
26
- function createPhantom({ chainPlugins = [] }) {
26
+ function createPhantom({ plugins = [] }) {
27
27
  const phantom = {};
28
- for (const plugin of chainPlugins) {
28
+ for (const plugin of plugins) {
29
29
  phantom[plugin.name] = plugin.create();
30
30
  }
31
31
  return phantom;
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  import "./chunk-GV6AIHPN.mjs";
2
2
 
3
3
  // src/index.ts
4
- function createPhantom({ chainPlugins = [] }) {
4
+ function createPhantom({ plugins = [] }) {
5
5
  const phantom = {};
6
- for (const plugin of chainPlugins) {
6
+ for (const plugin of plugins) {
7
7
  phantom[plugin.name] = plugin.create();
8
8
  }
9
9
  return phantom;
@@ -1,4 +1,4 @@
1
- import { ChainPlugin } from '../index.js';
1
+ import { Plugin } from '../index.js';
2
2
  import { Transaction as Transaction$1 } from '@solana/kit';
3
3
  import { VersionedTransaction as VersionedTransaction$1 } from '@solana/web3.js';
4
4
 
@@ -128,7 +128,7 @@ type Solana = {
128
128
  addEventListener: (event: PhantomEventType, callback: PhantomEventCallback) => () => void;
129
129
  removeEventListener: (event: PhantomEventType, callback: PhantomEventCallback) => void;
130
130
  };
131
- declare function createSolanaPlugin(): ChainPlugin<Solana>;
131
+ declare function createSolanaPlugin(): Plugin<Solana>;
132
132
 
133
133
  declare module "../index" {
134
134
  interface Phantom {
@@ -49,14 +49,15 @@ function transactionToVersionedTransaction(transaction) {
49
49
  return fakeVersioned;
50
50
  }
51
51
 
52
- // src/solana/adapters/injected.ts
52
+ // src/solana/strategies/injected.ts
53
53
  var import_compat = require("@solana/compat");
54
54
  var MAX_RETRIES = 4;
55
55
  var BASE_DELAY = 100;
56
56
  var _getProvider, getProvider_fn;
57
- var InjectedSolanaAdapter = class {
57
+ var InjectedSolanaStrategy = class {
58
58
  constructor() {
59
59
  __privateAdd(this, _getProvider);
60
+ this.type = "injected" /* INJECTED */;
60
61
  }
61
62
  load() {
62
63
  let retryCount = 0;
@@ -86,7 +87,7 @@ var InjectedSolanaAdapter = class {
86
87
  async connect({ onlyIfTrusted }) {
87
88
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
88
89
  if (!provider) {
89
- throw new Error("Phantom provider not found.");
90
+ throw new Error("Provider not found.");
90
91
  }
91
92
  if (provider.isConnected && provider.publicKey) {
92
93
  return this.getAccount() ?? void 0;
@@ -101,7 +102,7 @@ var InjectedSolanaAdapter = class {
101
102
  async disconnect() {
102
103
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
103
104
  if (!provider) {
104
- throw new Error("Phantom provider not found.");
105
+ throw new Error("Provider not found.");
105
106
  }
106
107
  await provider.disconnect();
107
108
  }
@@ -115,7 +116,7 @@ var InjectedSolanaAdapter = class {
115
116
  async signMessage(message, display) {
116
117
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
117
118
  if (!provider) {
118
- throw new Error("Phantom provider not found.");
119
+ throw new Error("Provider not found.");
119
120
  }
120
121
  if (!provider.isConnected) {
121
122
  throw new Error("Provider is not connected.");
@@ -129,7 +130,7 @@ var InjectedSolanaAdapter = class {
129
130
  async signIn(signInData) {
130
131
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
131
132
  if (!provider) {
132
- throw new Error("Phantom provider not found.");
133
+ throw new Error("Provider not found.");
133
134
  }
134
135
  const result = await provider.signIn(signInData);
135
136
  return {
@@ -141,7 +142,7 @@ var InjectedSolanaAdapter = class {
141
142
  async signAndSendTransaction(transaction) {
142
143
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
143
144
  if (!provider) {
144
- throw new Error("Phantom provider not found.");
145
+ throw new Error("Provider not found.");
145
146
  }
146
147
  if (!provider.isConnected) {
147
148
  throw new Error("Provider is not connected.");
@@ -156,7 +157,7 @@ var InjectedSolanaAdapter = class {
156
157
  async signTransaction(transaction) {
157
158
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
158
159
  if (!provider) {
159
- throw new Error("Phantom provider not found.");
160
+ throw new Error("Provider not found.");
160
161
  }
161
162
  if (!provider.isConnected) {
162
163
  throw new Error("Provider is not connected.");
@@ -169,7 +170,7 @@ var InjectedSolanaAdapter = class {
169
170
  async signAllTransactions(transactions) {
170
171
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
171
172
  if (!provider) {
172
- throw new Error("Phantom provider not found.");
173
+ throw new Error("Provider not found.");
173
174
  }
174
175
  if (!provider.isConnected) {
175
176
  throw new Error("Provider is not connected.");
@@ -187,12 +188,13 @@ getProvider_fn = function() {
187
188
  return window?.phantom?.solana;
188
189
  };
189
190
 
190
- // src/solana/adapters/kms.ts
191
+ // src/solana/strategies/kms.ts
191
192
  var API_URL = "https://api.phantom.app/v1/wallet";
192
193
  var _getJwtToken, getJwtToken_fn;
193
- var KmsSolanaAdapter = class {
194
+ var KmsSolanaStrategy = class {
194
195
  constructor() {
195
196
  __privateAdd(this, _getJwtToken);
197
+ this.type = "kms" /* KMS */;
196
198
  }
197
199
  load() {
198
200
  return Promise.resolve(this);
@@ -321,8 +323,11 @@ getJwtToken_fn = function() {
321
323
  return localStorage.getItem("phantom-solana-kms-jwt");
322
324
  };
323
325
 
324
- // src/solana/adapters/deeplinks.ts
325
- var DeepLinkSolanaAdapter = class {
326
+ // src/solana/strategies/deeplinks.ts
327
+ var DeepLinkSolanaStrategy = class {
328
+ constructor() {
329
+ this.type = "deeplink" /* DEEPLINK */;
330
+ }
326
331
  load() {
327
332
  return Promise.resolve(this);
328
333
  }
@@ -382,22 +387,22 @@ var DeepLinkSolanaAdapter = class {
382
387
  }
383
388
  };
384
389
 
385
- // src/solana/getAdapter.ts
386
- async function getAdapter(type = "injected") {
387
- if (type === "injected") {
388
- const adapter = new InjectedSolanaAdapter();
390
+ // src/solana/getProvider.ts
391
+ async function getProvider(strategy = "injected" /* INJECTED */) {
392
+ if (strategy === "injected") {
393
+ const provider = new InjectedSolanaStrategy();
389
394
  try {
390
- await adapter.load();
391
- return adapter;
395
+ await provider.load();
396
+ return provider;
392
397
  } catch (error) {
393
- throw new Error("Phantom provider not found.");
398
+ throw new Error("Provider not found.");
394
399
  }
395
- } else if (type === "kms") {
396
- return new KmsSolanaAdapter();
397
- } else if (type === "deeplink") {
398
- return new DeepLinkSolanaAdapter();
400
+ } else if (strategy === "kms") {
401
+ return new KmsSolanaStrategy();
402
+ } else if (strategy === "deeplink") {
403
+ return new DeepLinkSolanaStrategy();
399
404
  } else {
400
- throw new Error("Invalid adapter type.");
405
+ throw new Error("Invalid provider type.");
401
406
  }
402
407
  }
403
408
 
@@ -436,15 +441,15 @@ function triggerEvent(event, ...args) {
436
441
 
437
442
  // src/solana/connect.ts
438
443
  async function connect() {
439
- const adapter = await getAdapter();
440
- if (!adapter) {
441
- throw new Error("Phantom provider not found.");
444
+ const provider = await getProvider();
445
+ if (!provider) {
446
+ throw new Error("Provider not found.");
442
447
  }
443
- if (adapter.isConnected) {
444
- return adapter.getAccount();
448
+ if (provider.isConnected) {
449
+ return provider.getAccount();
445
450
  }
446
451
  try {
447
- const address = await adapter.connect({ onlyIfTrusted: true });
452
+ const address = await provider.connect({ onlyIfTrusted: true });
448
453
  if (address) {
449
454
  triggerEvent("connect", address);
450
455
  return address;
@@ -452,7 +457,7 @@ async function connect() {
452
457
  } catch (error) {
453
458
  }
454
459
  try {
455
- const address = await adapter.connect({ onlyIfTrusted: false });
460
+ const address = await provider.connect({ onlyIfTrusted: false });
456
461
  if (address) {
457
462
  triggerEvent("connect", address);
458
463
  return address;
@@ -464,29 +469,29 @@ async function connect() {
464
469
 
465
470
  // src/solana/disconnect.ts
466
471
  async function disconnect() {
467
- const adapter = await getAdapter();
468
- if (!adapter) {
469
- throw new Error("Phantom provider not found.");
472
+ const provider = await getProvider();
473
+ if (!provider) {
474
+ throw new Error("Provider not found.");
470
475
  }
471
- await adapter.disconnect();
476
+ await provider.disconnect();
472
477
  triggerEvent("disconnect");
473
478
  }
474
479
 
475
480
  // src/solana/getAccount.ts
476
481
  async function getAccount() {
477
- const adapter = await getAdapter();
478
- return adapter.getAccount();
482
+ const provider = await getProvider();
483
+ return provider.getAccount();
479
484
  }
480
485
 
481
486
  // src/solana/signAndSendTransaction.ts
482
487
  var import_compat2 = require("@solana/compat");
483
488
  async function signAndSendTransaction(transaction) {
484
- const adapter = await getAdapter();
485
- if (!adapter) {
486
- throw new Error("Adapter not found.");
489
+ const provider = await getProvider();
490
+ if (!provider) {
491
+ throw new Error("Provider not found.");
487
492
  }
488
- if (!adapter.isConnected) {
489
- await adapter.connect({ onlyIfTrusted: false });
493
+ if (!provider.isConnected) {
494
+ await provider.connect({ onlyIfTrusted: false });
490
495
  }
491
496
  let kitTransaction;
492
497
  if (transaction?.messageBytes == null) {
@@ -494,16 +499,16 @@ async function signAndSendTransaction(transaction) {
494
499
  } else {
495
500
  kitTransaction = transaction;
496
501
  }
497
- return adapter.signAndSendTransaction(kitTransaction);
502
+ return provider.signAndSendTransaction(kitTransaction);
498
503
  }
499
504
 
500
505
  // src/solana/signIn.ts
501
506
  async function signIn(signInData) {
502
- const adapter = await getAdapter();
503
- if (!adapter) {
504
- throw new Error("Adapter not found.");
507
+ const provider = await getProvider();
508
+ if (!provider) {
509
+ throw new Error("Provider not found.");
505
510
  }
506
- const result = await adapter.signIn(signInData);
511
+ const result = await provider.signIn(signInData);
507
512
  if (result.address) {
508
513
  triggerEvent("connect", result.address);
509
514
  }
@@ -512,14 +517,14 @@ async function signIn(signInData) {
512
517
 
513
518
  // src/solana/signMessage.ts
514
519
  async function signMessage(message, display) {
515
- const adapter = await getAdapter();
516
- if (!adapter) {
517
- throw new Error("Adapter not found.");
520
+ const provider = await getProvider();
521
+ if (!provider) {
522
+ throw new Error("Provider not found.");
518
523
  }
519
- if (!adapter.isConnected) {
520
- await adapter.connect({ onlyIfTrusted: false });
524
+ if (!provider.isConnected) {
525
+ await provider.connect({ onlyIfTrusted: false });
521
526
  }
522
- return adapter.signMessage(message, display);
527
+ return provider.signMessage(message, display);
523
528
  }
524
529
 
525
530
  // src/solana/plugin.ts
@@ -15,14 +15,15 @@ function transactionToVersionedTransaction(transaction) {
15
15
  return fakeVersioned;
16
16
  }
17
17
 
18
- // src/solana/adapters/injected.ts
18
+ // src/solana/strategies/injected.ts
19
19
  import { fromVersionedTransaction } from "@solana/compat";
20
20
  var MAX_RETRIES = 4;
21
21
  var BASE_DELAY = 100;
22
22
  var _getProvider, getProvider_fn;
23
- var InjectedSolanaAdapter = class {
23
+ var InjectedSolanaStrategy = class {
24
24
  constructor() {
25
25
  __privateAdd(this, _getProvider);
26
+ this.type = "injected" /* INJECTED */;
26
27
  }
27
28
  load() {
28
29
  let retryCount = 0;
@@ -52,7 +53,7 @@ var InjectedSolanaAdapter = class {
52
53
  async connect({ onlyIfTrusted }) {
53
54
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
54
55
  if (!provider) {
55
- throw new Error("Phantom provider not found.");
56
+ throw new Error("Provider not found.");
56
57
  }
57
58
  if (provider.isConnected && provider.publicKey) {
58
59
  return this.getAccount() ?? void 0;
@@ -67,7 +68,7 @@ var InjectedSolanaAdapter = class {
67
68
  async disconnect() {
68
69
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
69
70
  if (!provider) {
70
- throw new Error("Phantom provider not found.");
71
+ throw new Error("Provider not found.");
71
72
  }
72
73
  await provider.disconnect();
73
74
  }
@@ -81,7 +82,7 @@ var InjectedSolanaAdapter = class {
81
82
  async signMessage(message, display) {
82
83
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
83
84
  if (!provider) {
84
- throw new Error("Phantom provider not found.");
85
+ throw new Error("Provider not found.");
85
86
  }
86
87
  if (!provider.isConnected) {
87
88
  throw new Error("Provider is not connected.");
@@ -95,7 +96,7 @@ var InjectedSolanaAdapter = class {
95
96
  async signIn(signInData) {
96
97
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
97
98
  if (!provider) {
98
- throw new Error("Phantom provider not found.");
99
+ throw new Error("Provider not found.");
99
100
  }
100
101
  const result = await provider.signIn(signInData);
101
102
  return {
@@ -107,7 +108,7 @@ var InjectedSolanaAdapter = class {
107
108
  async signAndSendTransaction(transaction) {
108
109
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
109
110
  if (!provider) {
110
- throw new Error("Phantom provider not found.");
111
+ throw new Error("Provider not found.");
111
112
  }
112
113
  if (!provider.isConnected) {
113
114
  throw new Error("Provider is not connected.");
@@ -122,7 +123,7 @@ var InjectedSolanaAdapter = class {
122
123
  async signTransaction(transaction) {
123
124
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
124
125
  if (!provider) {
125
- throw new Error("Phantom provider not found.");
126
+ throw new Error("Provider not found.");
126
127
  }
127
128
  if (!provider.isConnected) {
128
129
  throw new Error("Provider is not connected.");
@@ -135,7 +136,7 @@ var InjectedSolanaAdapter = class {
135
136
  async signAllTransactions(transactions) {
136
137
  const provider = __privateMethod(this, _getProvider, getProvider_fn).call(this);
137
138
  if (!provider) {
138
- throw new Error("Phantom provider not found.");
139
+ throw new Error("Provider not found.");
139
140
  }
140
141
  if (!provider.isConnected) {
141
142
  throw new Error("Provider is not connected.");
@@ -153,12 +154,13 @@ getProvider_fn = function() {
153
154
  return window?.phantom?.solana;
154
155
  };
155
156
 
156
- // src/solana/adapters/kms.ts
157
+ // src/solana/strategies/kms.ts
157
158
  var API_URL = "https://api.phantom.app/v1/wallet";
158
159
  var _getJwtToken, getJwtToken_fn;
159
- var KmsSolanaAdapter = class {
160
+ var KmsSolanaStrategy = class {
160
161
  constructor() {
161
162
  __privateAdd(this, _getJwtToken);
163
+ this.type = "kms" /* KMS */;
162
164
  }
163
165
  load() {
164
166
  return Promise.resolve(this);
@@ -287,8 +289,11 @@ getJwtToken_fn = function() {
287
289
  return localStorage.getItem("phantom-solana-kms-jwt");
288
290
  };
289
291
 
290
- // src/solana/adapters/deeplinks.ts
291
- var DeepLinkSolanaAdapter = class {
292
+ // src/solana/strategies/deeplinks.ts
293
+ var DeepLinkSolanaStrategy = class {
294
+ constructor() {
295
+ this.type = "deeplink" /* DEEPLINK */;
296
+ }
292
297
  load() {
293
298
  return Promise.resolve(this);
294
299
  }
@@ -348,22 +353,22 @@ var DeepLinkSolanaAdapter = class {
348
353
  }
349
354
  };
350
355
 
351
- // src/solana/getAdapter.ts
352
- async function getAdapter(type = "injected") {
353
- if (type === "injected") {
354
- const adapter = new InjectedSolanaAdapter();
356
+ // src/solana/getProvider.ts
357
+ async function getProvider(strategy = "injected" /* INJECTED */) {
358
+ if (strategy === "injected") {
359
+ const provider = new InjectedSolanaStrategy();
355
360
  try {
356
- await adapter.load();
357
- return adapter;
361
+ await provider.load();
362
+ return provider;
358
363
  } catch (error) {
359
- throw new Error("Phantom provider not found.");
364
+ throw new Error("Provider not found.");
360
365
  }
361
- } else if (type === "kms") {
362
- return new KmsSolanaAdapter();
363
- } else if (type === "deeplink") {
364
- return new DeepLinkSolanaAdapter();
366
+ } else if (strategy === "kms") {
367
+ return new KmsSolanaStrategy();
368
+ } else if (strategy === "deeplink") {
369
+ return new DeepLinkSolanaStrategy();
365
370
  } else {
366
- throw new Error("Invalid adapter type.");
371
+ throw new Error("Invalid provider type.");
367
372
  }
368
373
  }
369
374
 
@@ -402,15 +407,15 @@ function triggerEvent(event, ...args) {
402
407
 
403
408
  // src/solana/connect.ts
404
409
  async function connect() {
405
- const adapter = await getAdapter();
406
- if (!adapter) {
407
- throw new Error("Phantom provider not found.");
410
+ const provider = await getProvider();
411
+ if (!provider) {
412
+ throw new Error("Provider not found.");
408
413
  }
409
- if (adapter.isConnected) {
410
- return adapter.getAccount();
414
+ if (provider.isConnected) {
415
+ return provider.getAccount();
411
416
  }
412
417
  try {
413
- const address = await adapter.connect({ onlyIfTrusted: true });
418
+ const address = await provider.connect({ onlyIfTrusted: true });
414
419
  if (address) {
415
420
  triggerEvent("connect", address);
416
421
  return address;
@@ -418,7 +423,7 @@ async function connect() {
418
423
  } catch (error) {
419
424
  }
420
425
  try {
421
- const address = await adapter.connect({ onlyIfTrusted: false });
426
+ const address = await provider.connect({ onlyIfTrusted: false });
422
427
  if (address) {
423
428
  triggerEvent("connect", address);
424
429
  return address;
@@ -430,29 +435,29 @@ async function connect() {
430
435
 
431
436
  // src/solana/disconnect.ts
432
437
  async function disconnect() {
433
- const adapter = await getAdapter();
434
- if (!adapter) {
435
- throw new Error("Phantom provider not found.");
438
+ const provider = await getProvider();
439
+ if (!provider) {
440
+ throw new Error("Provider not found.");
436
441
  }
437
- await adapter.disconnect();
442
+ await provider.disconnect();
438
443
  triggerEvent("disconnect");
439
444
  }
440
445
 
441
446
  // src/solana/getAccount.ts
442
447
  async function getAccount() {
443
- const adapter = await getAdapter();
444
- return adapter.getAccount();
448
+ const provider = await getProvider();
449
+ return provider.getAccount();
445
450
  }
446
451
 
447
452
  // src/solana/signAndSendTransaction.ts
448
453
  import { fromVersionedTransaction as fromVersionedTransaction2 } from "@solana/compat";
449
454
  async function signAndSendTransaction(transaction) {
450
- const adapter = await getAdapter();
451
- if (!adapter) {
452
- throw new Error("Adapter not found.");
455
+ const provider = await getProvider();
456
+ if (!provider) {
457
+ throw new Error("Provider not found.");
453
458
  }
454
- if (!adapter.isConnected) {
455
- await adapter.connect({ onlyIfTrusted: false });
459
+ if (!provider.isConnected) {
460
+ await provider.connect({ onlyIfTrusted: false });
456
461
  }
457
462
  let kitTransaction;
458
463
  if (transaction?.messageBytes == null) {
@@ -460,16 +465,16 @@ async function signAndSendTransaction(transaction) {
460
465
  } else {
461
466
  kitTransaction = transaction;
462
467
  }
463
- return adapter.signAndSendTransaction(kitTransaction);
468
+ return provider.signAndSendTransaction(kitTransaction);
464
469
  }
465
470
 
466
471
  // src/solana/signIn.ts
467
472
  async function signIn(signInData) {
468
- const adapter = await getAdapter();
469
- if (!adapter) {
470
- throw new Error("Adapter not found.");
473
+ const provider = await getProvider();
474
+ if (!provider) {
475
+ throw new Error("Provider not found.");
471
476
  }
472
- const result = await adapter.signIn(signInData);
477
+ const result = await provider.signIn(signInData);
473
478
  if (result.address) {
474
479
  triggerEvent("connect", result.address);
475
480
  }
@@ -478,14 +483,14 @@ async function signIn(signInData) {
478
483
 
479
484
  // src/solana/signMessage.ts
480
485
  async function signMessage(message, display) {
481
- const adapter = await getAdapter();
482
- if (!adapter) {
483
- throw new Error("Adapter not found.");
486
+ const provider = await getProvider();
487
+ if (!provider) {
488
+ throw new Error("Provider not found.");
484
489
  }
485
- if (!adapter.isConnected) {
486
- await adapter.connect({ onlyIfTrusted: false });
490
+ if (!provider.isConnected) {
491
+ await provider.connect({ onlyIfTrusted: false });
487
492
  }
488
- return adapter.signMessage(message, display);
493
+ return provider.signMessage(message, display);
489
494
  }
490
495
 
491
496
  // src/solana/plugin.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phantom/browser-sdk",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.mjs",
6
6
  "types": "dist/index.d.ts",
@@ -14,6 +14,11 @@
14
14
  "import": "./dist/solana/index.mjs",
15
15
  "require": "./dist/solana/index.js",
16
16
  "types": "./dist/solana/index.d.ts"
17
+ },
18
+ "./auto-confirm": {
19
+ "import": "./dist/auto-confirm/index.mjs",
20
+ "require": "./dist/auto-confirm/index.js",
21
+ "types": "./dist/auto-confirm/index.d.ts"
17
22
  }
18
23
  },
19
24
  "files": [
@@ -23,9 +28,9 @@
23
28
  "scripts": {
24
29
  "?pack-release": "When https://github.com/changesets/changesets/issues/432 has a solution we can remove this trick",
25
30
  "pack-release": "rimraf ./_release && yarn pack && mkdir ./_release && tar zxvf ./package.tgz --directory ./_release && rm ./package.tgz",
26
- "build": "rimraf ./dist && tsup src/index.ts src/solana/index.ts --format cjs,esm --dts",
27
- "build:watch": "rimraf ./dist && tsup src/index.ts src/solana/index.ts --format cjs,esm --dts --watch",
28
- "dev": "rimraf ./dist && tsup src/index.ts src/solana/index.ts --format cjs,esm --dts --watch",
31
+ "build": "rimraf ./dist && tsup src/index.ts src/solana/index.ts src/auto-confirm/index.ts --format cjs,esm --dts",
32
+ "build:watch": "rimraf ./dist && tsup src/index.ts src/solana/index.ts src/auto-confirm/index.ts --format cjs,esm --dts --watch",
33
+ "dev": "rimraf ./dist && tsup src/index.ts src/solana/index.ts src/auto-confirm/index.ts --format cjs,esm --dts --watch",
29
34
  "lint": "tsc --noEmit && eslint --cache . --ext .ts,.tsx",
30
35
  "test": "jest"
31
36
  },