@dynamic-labs/solana 4.0.0-alpha.5 → 4.0.0-alpha.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +468 -0
  2. package/package.cjs +8 -0
  3. package/package.js +4 -0
  4. package/package.json +12 -18
  5. package/src/{CoinbaseSolana.cjs → CoinbaseSolana/CoinbaseSolana.cjs} +6 -14
  6. package/src/{CoinbaseSolana.d.ts → CoinbaseSolana/CoinbaseSolana.d.ts} +1 -3
  7. package/src/{CoinbaseSolana.js → CoinbaseSolana/CoinbaseSolana.js} +6 -14
  8. package/src/CoinbaseSolana/index.d.ts +1 -0
  9. package/src/{Phantom.cjs → Phantom/Phantom.cjs} +7 -9
  10. package/src/Phantom/Phantom.d.ts +9 -0
  11. package/src/{Phantom.js → Phantom/Phantom.js} +7 -9
  12. package/src/Phantom/index.d.ts +1 -0
  13. package/src/{solProviderHelper.cjs → SolProviderHelper/SolProviderHelper.cjs} +33 -22
  14. package/src/{solProviderHelper.d.ts → SolProviderHelper/SolProviderHelper.d.ts} +6 -5
  15. package/src/{solProviderHelper.js → SolProviderHelper/SolProviderHelper.js} +33 -22
  16. package/src/SolProviderHelper/index.d.ts +1 -0
  17. package/src/SolanaWalletConnectors.cjs +21 -0
  18. package/src/SolanaWalletConnectors.d.ts +2 -0
  19. package/src/SolanaWalletConnectors.js +17 -0
  20. package/src/SolanaWalletConnectorsWithConfig/SolanaWalletConnectorsWithConfig.cjs +26 -0
  21. package/src/SolanaWalletConnectorsWithConfig/SolanaWalletConnectorsWithConfig.d.ts +6 -0
  22. package/src/SolanaWalletConnectorsWithConfig/SolanaWalletConnectorsWithConfig.js +22 -0
  23. package/src/SolanaWalletConnectorsWithConfig/index.d.ts +1 -0
  24. package/src/{Solflare.cjs → Solflare/Solflare.cjs} +9 -10
  25. package/src/{Solflare.d.ts → Solflare/Solflare.d.ts} +1 -3
  26. package/src/{Solflare.js → Solflare/Solflare.js} +9 -10
  27. package/src/Solflare/index.d.ts +1 -0
  28. package/src/index.cjs +19 -18
  29. package/src/index.d.ts +7 -5
  30. package/src/index.js +9 -17
  31. package/src/injected/{BackpackSol.cjs → BackpackSol/BackpackSol.cjs} +5 -7
  32. package/src/injected/{BackpackSol.d.ts → BackpackSol/BackpackSol.d.ts} +1 -3
  33. package/src/injected/{BackpackSol.js → BackpackSol/BackpackSol.js} +5 -7
  34. package/src/injected/BackpackSol/index.d.ts +1 -0
  35. package/src/injected/{FallbackSolanaConnector.cjs → FallbackSolanaConnector/FallbackSolanaConnector.cjs} +3 -5
  36. package/src/injected/{FallbackSolanaConnector.d.ts → FallbackSolanaConnector/FallbackSolanaConnector.d.ts} +1 -3
  37. package/src/injected/{FallbackSolanaConnector.js → FallbackSolanaConnector/FallbackSolanaConnector.js} +3 -5
  38. package/src/injected/FallbackSolanaConnector/index.d.ts +1 -0
  39. package/src/injected/{InjectedWalletBase.cjs → InjectedWalletBase/InjectedWalletBase.cjs} +23 -27
  40. package/src/injected/{InjectedWalletBase.d.ts → InjectedWalletBase/InjectedWalletBase.d.ts} +6 -8
  41. package/src/injected/{InjectedWalletBase.js → InjectedWalletBase/InjectedWalletBase.js} +24 -28
  42. package/src/injected/InjectedWalletBase/index.d.ts +1 -0
  43. package/src/injected/{PhantomInjected.cjs → PhantomInjected/PhantomInjected.cjs} +5 -7
  44. package/src/injected/{PhantomInjected.d.ts → PhantomInjected/PhantomInjected.d.ts} +1 -3
  45. package/src/injected/{PhantomInjected.js → PhantomInjected/PhantomInjected.js} +5 -7
  46. package/src/injected/PhantomInjected/index.d.ts +1 -0
  47. package/src/injected/fetchInjectedWalletConnectors.cjs +43 -25
  48. package/src/injected/fetchInjectedWalletConnectors.js +43 -25
  49. package/src/injected/index.d.ts +0 -1
  50. package/src/{SolanaWalletStandardConnector/utils → injected/walletStandard}/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.cjs +72 -21
  51. package/src/injected/walletStandard/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.d.ts +4 -0
  52. package/src/{SolanaWalletStandardConnector/utils → injected/walletStandard}/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.js +71 -20
  53. package/src/injected/walletStandard/getConnectorConstructorForWalletStandardWallet/getConnectorConstructorForWalletStandardWallet.cjs +29 -0
  54. package/src/injected/walletStandard/getConnectorConstructorForWalletStandardWallet/getConnectorConstructorForWalletStandardWallet.d.ts +3 -0
  55. package/src/injected/walletStandard/getConnectorConstructorForWalletStandardWallet/getConnectorConstructorForWalletStandardWallet.js +25 -0
  56. package/src/injected/walletStandard/getConnectorConstructorForWalletStandardWallet/index.d.ts +1 -0
  57. package/src/injected/walletStandard/getWalletStandardWallets/getWalletStandardWallets.cjs +10 -0
  58. package/src/injected/walletStandard/getWalletStandardWallets/getWalletStandardWallets.d.ts +1 -0
  59. package/src/injected/walletStandard/getWalletStandardWallets/getWalletStandardWallets.js +6 -0
  60. package/src/injected/walletStandard/getWalletStandardWallets/index.d.ts +1 -0
  61. package/src/phantomRedirect/{PhantomRedirect.cjs → PhantomRedirect/PhantomRedirect.cjs} +28 -25
  62. package/src/phantomRedirect/{PhantomRedirect.d.ts → PhantomRedirect/PhantomRedirect.d.ts} +3 -3
  63. package/src/phantomRedirect/{PhantomRedirect.js → PhantomRedirect/PhantomRedirect.js} +10 -7
  64. package/src/phantomRedirect/PhantomRedirect/index.d.ts +1 -0
  65. package/src/phantomRedirect/buildUrl/buildUrl.cjs +8 -0
  66. package/src/phantomRedirect/buildUrl/buildUrl.d.ts +1 -0
  67. package/src/phantomRedirect/buildUrl/buildUrl.js +4 -0
  68. package/src/phantomRedirect/buildUrl/index.d.ts +1 -0
  69. package/src/phantomRedirect/decryptPayload/decryptPayload.cjs +34 -0
  70. package/src/phantomRedirect/decryptPayload/decryptPayload.d.ts +1 -0
  71. package/src/phantomRedirect/decryptPayload/decryptPayload.js +25 -0
  72. package/src/phantomRedirect/decryptPayload/index.d.ts +1 -0
  73. package/src/phantomRedirect/encryptPayload/encryptPayload.cjs +18 -0
  74. package/src/phantomRedirect/encryptPayload/encryptPayload.d.ts +1 -0
  75. package/src/phantomRedirect/encryptPayload/encryptPayload.js +10 -0
  76. package/src/phantomRedirect/encryptPayload/index.d.ts +1 -0
  77. package/src/phantomRedirect/fetchCluster/fetchCluster.cjs +33 -0
  78. package/src/phantomRedirect/fetchCluster/fetchCluster.d.ts +1 -0
  79. package/src/phantomRedirect/fetchCluster/fetchCluster.js +29 -0
  80. package/src/phantomRedirect/fetchCluster/index.d.ts +1 -0
  81. package/src/phantomRedirect/storage/index.d.ts +1 -0
  82. package/src/phantomRedirect/{storage.d.ts → storage/storage.d.ts} +1 -1
  83. package/src/utils/logger.cjs +10 -0
  84. package/src/utils/logger.d.ts +2 -0
  85. package/src/utils/logger.js +6 -0
  86. package/src/Phantom.d.ts +0 -12
  87. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs +0 -100
  88. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.d.ts +0 -20
  89. package/src/SolanaWalletStandardConnector/SolanaWalletStandardConnector.js +0 -96
  90. package/src/SolanaWalletStandardConnector/index.d.ts +0 -1
  91. package/src/SolanaWalletStandardConnector/utils/createSolanaSignerFromWalletStandard/createSolanaSignerFromWalletStandard.d.ts +0 -3
  92. package/src/injected/UnknownInjected.cjs +0 -21
  93. package/src/injected/UnknownInjected.d.ts +0 -8
  94. package/src/injected/UnknownInjected.js +0 -17
  95. package/src/phantomRedirect/utils.cjs +0 -56
  96. package/src/phantomRedirect/utils.d.ts +0 -4
  97. package/src/phantomRedirect/utils.js +0 -44
  98. /package/src/{SolanaWalletStandardConnector/utils → injected/walletStandard}/createSolanaSignerFromWalletStandard/index.d.ts +0 -0
  99. /package/src/{utils → injected/walletStandard}/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.cjs +0 -0
  100. /package/src/{utils → injected/walletStandard}/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.d.ts +0 -0
  101. /package/src/{utils → injected/walletStandard}/findWalletProviderFromWalletStandard/findWalletProviderFromWalletStandard.js +0 -0
  102. /package/src/{utils → injected/walletStandard}/findWalletProviderFromWalletStandard/index.d.ts +0 -0
  103. /package/src/phantomRedirect/{storage.cjs → storage/storage.cjs} +0 -0
  104. /package/src/phantomRedirect/{storage.js → storage/storage.js} +0 -0
@@ -1,9 +1,7 @@
1
- import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
2
- import { InjectedWalletBase } from './InjectedWalletBase';
1
+ import { InjectedWalletBase } from '../InjectedWalletBase';
3
2
  export declare class BackpackSol extends InjectedWalletBase {
4
3
  name: string;
5
4
  overrideKey: string;
6
- constructor(opts: SolWalletConnectorOpts);
7
5
  getSigner<IBackpackSolanaSigner>(): Promise<IBackpackSolanaSigner | undefined>;
8
6
  signMessage(messageToSign: string): Promise<string | undefined>;
9
7
  }
@@ -1,20 +1,18 @@
1
1
  'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
3
  import { bufferToBase64 } from '@dynamic-labs/utils';
4
- import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
5
- import { InjectedWalletBase } from './InjectedWalletBase.js';
4
+ import { InjectedWalletBase } from '../InjectedWalletBase/InjectedWalletBase.js';
6
5
 
7
6
  class BackpackSol extends InjectedWalletBase {
8
- constructor(opts) {
9
- super(opts);
7
+ constructor() {
8
+ super(...arguments);
10
9
  this.name = 'Backpack';
11
10
  this.overrideKey = 'backpacksol';
12
- this.wallet = findWalletBookWallet(this.walletBook, this.key);
13
11
  }
14
12
  getSigner() {
15
13
  return __awaiter(this, void 0, void 0, function* () {
16
14
  var _a;
17
- return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect();
15
+ return (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.connect();
18
16
  });
19
17
  }
20
18
  signMessage(messageToSign) {
@@ -0,0 +1 @@
1
+ export * from './BackpackSol';
@@ -3,16 +3,14 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var walletBook = require('@dynamic-labs/wallet-book');
7
- var InjectedWalletBase = require('./InjectedWalletBase.cjs');
6
+ var InjectedWalletBase = require('../InjectedWalletBase/InjectedWalletBase.cjs');
8
7
 
9
8
  class FallbackSolanaConnector extends InjectedWalletBase.InjectedWalletBase {
10
- constructor(opts) {
11
- super(opts);
9
+ constructor() {
10
+ super(...arguments);
12
11
  this.name = 'Fallback Connector';
13
12
  this.overrideKey = 'fallbackconnector';
14
13
  this.isAvailable = false;
15
- this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
16
14
  }
17
15
  isInstalledOnBrowser() {
18
16
  return false;
@@ -1,9 +1,7 @@
1
- import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
2
- import { InjectedWalletBase } from './InjectedWalletBase';
1
+ import { InjectedWalletBase } from '../InjectedWalletBase';
3
2
  export declare class FallbackSolanaConnector extends InjectedWalletBase {
4
3
  name: string;
5
4
  overrideKey: string;
6
5
  isAvailable: boolean;
7
- constructor(opts: SolWalletConnectorOpts);
8
6
  isInstalledOnBrowser(): boolean;
9
7
  }
@@ -1,14 +1,12 @@
1
1
  'use client'
2
- import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
3
- import { InjectedWalletBase } from './InjectedWalletBase.js';
2
+ import { InjectedWalletBase } from '../InjectedWalletBase/InjectedWalletBase.js';
4
3
 
5
4
  class FallbackSolanaConnector extends InjectedWalletBase {
6
- constructor(opts) {
7
- super(opts);
5
+ constructor() {
6
+ super(...arguments);
8
7
  this.name = 'Fallback Connector';
9
8
  this.overrideKey = 'fallbackconnector';
10
9
  this.isAvailable = false;
11
- this.wallet = findWalletBookWallet(this.walletBook, this.key);
12
10
  }
13
11
  isInstalledOnBrowser() {
14
12
  return false;
@@ -0,0 +1 @@
1
+ export * from './FallbackSolanaConnector';
@@ -3,46 +3,42 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var _tslib = require('../../_virtual/_tslib.cjs');
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
7
  var web3_js = require('@solana/web3.js');
8
- var walletBook = require('@dynamic-labs/wallet-book');
9
8
  var utils = require('@dynamic-labs/utils');
10
9
  var solanaCore = require('@dynamic-labs/solana-core');
11
- var solProviderHelper = require('../solProviderHelper.cjs');
12
- var SignMessageNotSupportedError = require('../errors/SignMessageNotSupportedError.cjs');
10
+ var SolProviderHelper = require('../../SolProviderHelper/SolProviderHelper.cjs');
11
+ var SignMessageNotSupportedError = require('../../errors/SignMessageNotSupportedError.cjs');
13
12
 
14
- class InjectedWalletBase extends solanaCore.SolWalletConnector {
15
- getSolProviderHelper() {
16
- if (!this.wallet) {
17
- this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
13
+ class InjectedWalletBase extends solanaCore.SolanaWalletConnector {
14
+ get solProviderHelper() {
15
+ if (!this._solProviderHelper) {
16
+ this._solProviderHelper = new SolProviderHelper.SolProviderHelper(this);
18
17
  }
19
- if (this.wallet && !this.solProviderHelper) {
20
- this.solProviderHelper = new solProviderHelper.SolProviderHelper(this.wallet);
21
- }
22
- return this.solProviderHelper;
18
+ return this._solProviderHelper;
23
19
  }
24
- getProvider() {
20
+ findProvider() {
25
21
  var _a;
26
- return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
22
+ return (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
27
23
  }
28
24
  setupEventListeners() {
29
25
  var _a;
30
- (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._setupEventListeners(this);
26
+ (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a._setupEventListeners();
31
27
  }
32
28
  teardownEventListeners() {
33
29
  var _a;
34
- (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._teardownEventListeners();
30
+ (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a._teardownEventListeners();
35
31
  }
36
32
  connect() {
37
33
  return _tslib.__awaiter(this, void 0, void 0, function* () {
38
34
  var _a;
39
- yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect());
35
+ yield ((_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.connect());
40
36
  });
41
37
  }
42
38
  getSigner() {
43
39
  return _tslib.__awaiter(this, void 0, void 0, function* () {
44
40
  var _a;
45
- return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect();
41
+ return (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.connect();
46
42
  });
47
43
  }
48
44
  createUiTransaction(from) {
@@ -53,6 +49,8 @@ class InjectedWalletBase extends solanaCore.SolWalletConnector {
53
49
  from,
54
50
  onSubmit: (transaction) => _tslib.__awaiter(this, void 0, void 0, function* () {
55
51
  var _a;
52
+ if (!transaction)
53
+ return;
56
54
  const signer = yield this.getSigner();
57
55
  if (!signer)
58
56
  throw new Error('Signer not found');
@@ -72,23 +70,21 @@ class InjectedWalletBase extends solanaCore.SolWalletConnector {
72
70
  return (yield signer.signAndSendTransaction(transaction)).signature;
73
71
  }),
74
72
  });
75
- transaction.feeDeducted = true;
76
73
  return transaction;
77
74
  });
78
75
  }
79
76
  isInstalledOnBrowser() {
80
77
  var _a;
81
- return Boolean((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
78
+ return Boolean((_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
82
79
  }
83
80
  getAddress() {
84
81
  return _tslib.__awaiter(this, void 0, void 0, function* () {
85
82
  var _a, _b;
86
83
  if (!this.isInstalledOnBrowser()) {
87
84
  if (utils.isMobile() &&
88
- ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.mobile) &&
89
- this.wallet.mobile.inAppBrowser &&
85
+ ((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.inAppBrowserUrl) &&
90
86
  this.mobileExperience === 'in-app-browser') {
91
- const inAppBrowserCompiledTemplate = utils.template(this.wallet.mobile.inAppBrowser);
87
+ const inAppBrowserCompiledTemplate = utils.template(this.metadata.inAppBrowserUrl);
92
88
  const deepLink = inAppBrowserCompiledTemplate({
93
89
  encodedDappURI: encodeURIComponent(window.location.toString()),
94
90
  });
@@ -96,23 +92,23 @@ class InjectedWalletBase extends solanaCore.SolWalletConnector {
96
92
  }
97
93
  return;
98
94
  }
99
- return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.getAddress();
95
+ return (_b = this.solProviderHelper) === null || _b === void 0 ? void 0 : _b.getAddress();
100
96
  });
101
97
  }
102
98
  signMessage(messageToSign) {
103
99
  return _tslib.__awaiter(this, void 0, void 0, function* () {
104
100
  var _a, _b;
105
- const walletAddress = yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getAddress());
101
+ const walletAddress = yield ((_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.getAddress());
106
102
  if (walletAddress && this.isLedgerAddress(walletAddress)) {
107
103
  throw new SignMessageNotSupportedError.SignMessageNotSupportedError(this.name);
108
104
  }
109
- return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.signMessage(messageToSign);
105
+ return (_b = this.solProviderHelper) === null || _b === void 0 ? void 0 : _b.signMessage(messageToSign);
110
106
  });
111
107
  }
112
108
  getConnectedAccounts() {
113
109
  return _tslib.__awaiter(this, void 0, void 0, function* () {
114
110
  var _a, _b;
115
- return (_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getConnectedAccounts()) !== null && _b !== void 0 ? _b : [];
111
+ return (_b = (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.getConnectedAccounts()) !== null && _b !== void 0 ? _b : [];
116
112
  });
117
113
  }
118
114
  }
@@ -1,13 +1,11 @@
1
- import { WalletSchema } from '@dynamic-labs/wallet-book';
2
- import { SolWalletConnector, type ISolana } from '@dynamic-labs/solana-core';
1
+ import { SolanaWalletConnector, type ISolana } from '@dynamic-labs/solana-core';
3
2
  import { IUITransaction } from '@dynamic-labs/types';
4
3
  import { ISendBalanceWalletConnector } from '@dynamic-labs/wallet-connector-core';
5
- import { SolProviderHelper } from '../solProviderHelper';
6
- export declare abstract class InjectedWalletBase extends SolWalletConnector implements ISendBalanceWalletConnector {
7
- solProviderHelper: SolProviderHelper | undefined;
8
- wallet: WalletSchema | undefined;
9
- getSolProviderHelper(): SolProviderHelper | undefined;
10
- getProvider(): ISolana | undefined;
4
+ import { SolProviderHelper } from '../../SolProviderHelper';
5
+ export declare abstract class InjectedWalletBase extends SolanaWalletConnector implements ISendBalanceWalletConnector {
6
+ _solProviderHelper: SolProviderHelper | undefined;
7
+ get solProviderHelper(): SolProviderHelper | undefined;
8
+ findProvider(): ISolana | undefined;
11
9
  setupEventListeners(): void;
12
10
  teardownEventListeners(): void;
13
11
  connect(): Promise<void>;
@@ -1,44 +1,40 @@
1
1
  'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
3
  import { PublicKey } from '@solana/web3.js';
4
- import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
5
4
  import { isMobile, template } from '@dynamic-labs/utils';
6
- import { SolWalletConnector, SolanaUiTransaction } from '@dynamic-labs/solana-core';
7
- import { SolProviderHelper } from '../solProviderHelper.js';
8
- import { SignMessageNotSupportedError } from '../errors/SignMessageNotSupportedError.js';
5
+ import { SolanaWalletConnector, SolanaUiTransaction } from '@dynamic-labs/solana-core';
6
+ import { SolProviderHelper } from '../../SolProviderHelper/SolProviderHelper.js';
7
+ import { SignMessageNotSupportedError } from '../../errors/SignMessageNotSupportedError.js';
9
8
 
10
- class InjectedWalletBase extends SolWalletConnector {
11
- getSolProviderHelper() {
12
- if (!this.wallet) {
13
- this.wallet = findWalletBookWallet(this.walletBook, this.key);
9
+ class InjectedWalletBase extends SolanaWalletConnector {
10
+ get solProviderHelper() {
11
+ if (!this._solProviderHelper) {
12
+ this._solProviderHelper = new SolProviderHelper(this);
14
13
  }
15
- if (this.wallet && !this.solProviderHelper) {
16
- this.solProviderHelper = new SolProviderHelper(this.wallet);
17
- }
18
- return this.solProviderHelper;
14
+ return this._solProviderHelper;
19
15
  }
20
- getProvider() {
16
+ findProvider() {
21
17
  var _a;
22
- return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
18
+ return (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.getInstalledProvider();
23
19
  }
24
20
  setupEventListeners() {
25
21
  var _a;
26
- (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._setupEventListeners(this);
22
+ (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a._setupEventListeners();
27
23
  }
28
24
  teardownEventListeners() {
29
25
  var _a;
30
- (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a._teardownEventListeners();
26
+ (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a._teardownEventListeners();
31
27
  }
32
28
  connect() {
33
29
  return __awaiter(this, void 0, void 0, function* () {
34
30
  var _a;
35
- yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect());
31
+ yield ((_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.connect());
36
32
  });
37
33
  }
38
34
  getSigner() {
39
35
  return __awaiter(this, void 0, void 0, function* () {
40
36
  var _a;
41
- return (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.connect();
37
+ return (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.connect();
42
38
  });
43
39
  }
44
40
  createUiTransaction(from) {
@@ -49,6 +45,8 @@ class InjectedWalletBase extends SolWalletConnector {
49
45
  from,
50
46
  onSubmit: (transaction) => __awaiter(this, void 0, void 0, function* () {
51
47
  var _a;
48
+ if (!transaction)
49
+ return;
52
50
  const signer = yield this.getSigner();
53
51
  if (!signer)
54
52
  throw new Error('Signer not found');
@@ -68,23 +66,21 @@ class InjectedWalletBase extends SolWalletConnector {
68
66
  return (yield signer.signAndSendTransaction(transaction)).signature;
69
67
  }),
70
68
  });
71
- transaction.feeDeducted = true;
72
69
  return transaction;
73
70
  });
74
71
  }
75
72
  isInstalledOnBrowser() {
76
73
  var _a;
77
- return Boolean((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
74
+ return Boolean((_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.isInstalledHelper());
78
75
  }
79
76
  getAddress() {
80
77
  return __awaiter(this, void 0, void 0, function* () {
81
78
  var _a, _b;
82
79
  if (!this.isInstalledOnBrowser()) {
83
80
  if (isMobile() &&
84
- ((_a = this.wallet) === null || _a === void 0 ? void 0 : _a.mobile) &&
85
- this.wallet.mobile.inAppBrowser &&
81
+ ((_a = this.metadata) === null || _a === void 0 ? void 0 : _a.inAppBrowserUrl) &&
86
82
  this.mobileExperience === 'in-app-browser') {
87
- const inAppBrowserCompiledTemplate = template(this.wallet.mobile.inAppBrowser);
83
+ const inAppBrowserCompiledTemplate = template(this.metadata.inAppBrowserUrl);
88
84
  const deepLink = inAppBrowserCompiledTemplate({
89
85
  encodedDappURI: encodeURIComponent(window.location.toString()),
90
86
  });
@@ -92,23 +88,23 @@ class InjectedWalletBase extends SolWalletConnector {
92
88
  }
93
89
  return;
94
90
  }
95
- return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.getAddress();
91
+ return (_b = this.solProviderHelper) === null || _b === void 0 ? void 0 : _b.getAddress();
96
92
  });
97
93
  }
98
94
  signMessage(messageToSign) {
99
95
  return __awaiter(this, void 0, void 0, function* () {
100
96
  var _a, _b;
101
- const walletAddress = yield ((_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getAddress());
97
+ const walletAddress = yield ((_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.getAddress());
102
98
  if (walletAddress && this.isLedgerAddress(walletAddress)) {
103
99
  throw new SignMessageNotSupportedError(this.name);
104
100
  }
105
- return (_b = this.getSolProviderHelper()) === null || _b === void 0 ? void 0 : _b.signMessage(messageToSign);
101
+ return (_b = this.solProviderHelper) === null || _b === void 0 ? void 0 : _b.signMessage(messageToSign);
106
102
  });
107
103
  }
108
104
  getConnectedAccounts() {
109
105
  return __awaiter(this, void 0, void 0, function* () {
110
106
  var _a, _b;
111
- return (_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.getConnectedAccounts()) !== null && _b !== void 0 ? _b : [];
107
+ return (_b = (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.getConnectedAccounts()) !== null && _b !== void 0 ? _b : [];
112
108
  });
113
109
  }
114
110
  }
@@ -0,0 +1 @@
1
+ export * from './InjectedWalletBase';
@@ -3,17 +3,15 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var _tslib = require('../../_virtual/_tslib.cjs');
6
+ var _tslib = require('../../../_virtual/_tslib.cjs');
7
7
  var utils = require('@dynamic-labs/utils');
8
- var walletBook = require('@dynamic-labs/wallet-book');
9
- var InjectedWalletBase = require('./InjectedWalletBase.cjs');
8
+ var InjectedWalletBase = require('../InjectedWalletBase/InjectedWalletBase.cjs');
10
9
 
11
10
  class PhantomInjected extends InjectedWalletBase.InjectedWalletBase {
12
- constructor(opts) {
13
- super(opts);
11
+ constructor() {
12
+ super(...arguments);
14
13
  this.name = 'Phantom';
15
14
  this.overrideKey = 'phantom';
16
- this.wallet = walletBook.findWalletBookWallet(this.walletBook, this.key);
17
15
  }
18
16
  getAddress() {
19
17
  const _super = Object.create(null, {
@@ -34,7 +32,7 @@ class PhantomInjected extends InjectedWalletBase.InjectedWalletBase {
34
32
  }
35
33
  canGetChainAddress() {
36
34
  var _a, _b;
37
- return ((_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.findProvider()) === null || _b === void 0 ? void 0 : _b.publicKey) !== null;
35
+ return ((_b = (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.findProvider()) === null || _b === void 0 ? void 0 : _b.publicKey) !== null;
38
36
  }
39
37
  }
40
38
 
@@ -1,9 +1,7 @@
1
- import { SolWalletConnectorOpts } from '@dynamic-labs/solana-core';
2
- import { InjectedWalletBase } from './InjectedWalletBase';
1
+ import { InjectedWalletBase } from '../InjectedWalletBase';
3
2
  export declare class PhantomInjected extends InjectedWalletBase {
4
3
  name: string;
5
4
  overrideKey: string;
6
- constructor(opts: SolWalletConnectorOpts);
7
5
  getAddress(): Promise<string | undefined>;
8
6
  canGetChainAddress(): boolean;
9
7
  }
@@ -1,15 +1,13 @@
1
1
  'use client'
2
- import { __awaiter } from '../../_virtual/_tslib.js';
2
+ import { __awaiter } from '../../../_virtual/_tslib.js';
3
3
  import { isMobile, handleMobileWalletRedirect } from '@dynamic-labs/utils';
4
- import { findWalletBookWallet } from '@dynamic-labs/wallet-book';
5
- import { InjectedWalletBase } from './InjectedWalletBase.js';
4
+ import { InjectedWalletBase } from '../InjectedWalletBase/InjectedWalletBase.js';
6
5
 
7
6
  class PhantomInjected extends InjectedWalletBase {
8
- constructor(opts) {
9
- super(opts);
7
+ constructor() {
8
+ super(...arguments);
10
9
  this.name = 'Phantom';
11
10
  this.overrideKey = 'phantom';
12
- this.wallet = findWalletBookWallet(this.walletBook, this.key);
13
11
  }
14
12
  getAddress() {
15
13
  const _super = Object.create(null, {
@@ -30,7 +28,7 @@ class PhantomInjected extends InjectedWalletBase {
30
28
  }
31
29
  canGetChainAddress() {
32
30
  var _a, _b;
33
- return ((_b = (_a = this.getSolProviderHelper()) === null || _a === void 0 ? void 0 : _a.findProvider()) === null || _b === void 0 ? void 0 : _b.publicKey) !== null;
31
+ return ((_b = (_a = this.solProviderHelper) === null || _a === void 0 ? void 0 : _a.findProvider()) === null || _b === void 0 ? void 0 : _b.publicKey) !== null;
34
32
  }
35
33
  }
36
34
 
@@ -0,0 +1 @@
1
+ export * from './PhantomInjected';
@@ -3,60 +3,78 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var CoinbaseSolana = require('../CoinbaseSolana.cjs');
7
- var Solflare = require('../Solflare.cjs');
8
- var SolanaWalletStandardConnector = require('../SolanaWalletStandardConnector/SolanaWalletStandardConnector.cjs');
9
- var InjectedWalletBase = require('./InjectedWalletBase.cjs');
10
- var BackpackSol = require('./BackpackSol.cjs');
6
+ var utils = require('@dynamic-labs/utils');
7
+ var CoinbaseSolana = require('../CoinbaseSolana/CoinbaseSolana.cjs');
8
+ var Solflare = require('../Solflare/Solflare.cjs');
9
+ var logger = require('../utils/logger.cjs');
10
+ var InjectedWalletBase = require('./InjectedWalletBase/InjectedWalletBase.cjs');
11
+ var BackpackSol = require('./BackpackSol/BackpackSol.cjs');
12
+ var getConnectorConstructorForWalletStandardWallet = require('./walletStandard/getConnectorConstructorForWalletStandardWallet/getConnectorConstructorForWalletStandardWallet.cjs');
13
+ var getWalletStandardWallets = require('./walletStandard/getWalletStandardWallets/getWalletStandardWallets.cjs');
11
14
 
12
15
  const injectedWalletOverrides = [
13
16
  CoinbaseSolana.CoinbaseSolana,
14
17
  BackpackSol.BackpackSol,
15
18
  Solflare.Solflare,
16
19
  ];
17
- const filteredInjectedWalletKeysOverrides = [
20
+ const walletsWithCustomConnectors = [
18
21
  'coinbasesolana',
19
22
  'phantom',
20
23
  'phantomledger',
21
24
  'backpacksol',
22
25
  'solflare',
23
26
  ];
27
+ const shouldAddWalletStandardConnector = (wallet, walletBook) => {
28
+ var _a, _b, _c, _d, _e, _f;
29
+ const { name } = wallet;
30
+ const chain = 'sol';
31
+ const connectorKey = `${utils.sanitizeName(name)}${chain}`;
32
+ logger.logger.logVerboseTroubleshootingMessage('[SOL shouldAddWalletStandardConnector]', name, chain, connectorKey, wallet.features);
33
+ const existingWallet = Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {}).find(([key, wallet]) => {
34
+ var _a;
35
+ return key === connectorKey ||
36
+ walletsWithCustomConnectors.includes(connectorKey) ||
37
+ (wallet.name === name && ((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a[0].chain) === chain);
38
+ });
39
+ const hasAllFeatures = Boolean(((_b = wallet.features) === null || _b === void 0 ? void 0 : _b['standard:events']) &&
40
+ ((_c = wallet.features) === null || _c === void 0 ? void 0 : _c['standard:connect']) &&
41
+ ((_d = wallet.features) === null || _d === void 0 ? void 0 : _d['solana:signMessage']) &&
42
+ ((_e = wallet.features) === null || _e === void 0 ? void 0 : _e['solana:signTransaction']) &&
43
+ ((_f = wallet.features) === null || _f === void 0 ? void 0 : _f['solana:signAndSendTransaction']));
44
+ logger.logger.logVerboseTroubleshootingMessage('[SOL shouldAddWalletStandardConnector]', {
45
+ existingWallet,
46
+ hasAllFeatures,
47
+ shouldAdd: !existingWallet && hasAllFeatures,
48
+ });
49
+ return !existingWallet && hasAllFeatures;
50
+ };
24
51
  const fetchInjectedWalletConnectors = ({ walletBook, }) => {
25
52
  var _a;
26
- return Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
53
+ const walletBookConnectors = Object.entries((_a = walletBook === null || walletBook === void 0 ? void 0 : walletBook.wallets) !== null && _a !== void 0 ? _a : {})
27
54
  .filter(([key, wallet]) => {
28
55
  var _a;
29
56
  const isSolanaWallet = Boolean((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.chain === 'sol'));
30
- const shouldBeFiltered = filteredInjectedWalletKeysOverrides.includes(key);
57
+ const shouldBeFiltered = walletsWithCustomConnectors.includes(key);
31
58
  return isSolanaWallet && !shouldBeFiltered;
32
59
  })
33
60
  .map(([key, wallet]) => {
34
- var _a;
35
61
  const { shortName } = wallet;
36
62
  const name = shortName || wallet.name;
37
- const hasWalletStandard = Boolean((_a = wallet.injectedConfig) === null || _a === void 0 ? void 0 : _a.find((config) => config.walletStandard));
38
- if (hasWalletStandard) {
39
- const isWalletStandardPresent = Boolean(SolanaWalletStandardConnector.SolanaWalletStandardConnector.getWallet(walletBook, key));
40
- if (isWalletStandardPresent) {
41
- return class extends SolanaWalletStandardConnector.SolanaWalletStandardConnector {
42
- constructor(props) {
43
- super(Object.assign({}, props));
44
- this.name = name;
45
- this.overrideKey = key;
46
- }
47
- };
48
- }
49
- }
50
63
  return class extends InjectedWalletBase.InjectedWalletBase {
51
- constructor(props) {
52
- super(Object.assign({}, props));
64
+ constructor() {
65
+ super(...arguments);
53
66
  this.name = name;
54
- this.wallet = wallet;
55
67
  // this is the key from the wallet book entry so that we don't purely rely on the normalized name
56
68
  this.overrideKey = key;
57
69
  }
58
70
  };
59
71
  });
72
+ const walletStandardWallets = getWalletStandardWallets.getWalletStandardWallets();
73
+ const walletStandardConnectors = walletStandardWallets
74
+ .filter((wallet) => shouldAddWalletStandardConnector(wallet, walletBook))
75
+ .map((wallet) => getConnectorConstructorForWalletStandardWallet.getConnectorConstructorForWalletStandardWallet(wallet));
76
+ logger.logger.logVerboseTroubleshootingMessage('[SOL fetchInjectedWalletConnectors] walletStandardConnectors', walletStandardConnectors.map((w) => w.name));
77
+ return [...walletBookConnectors, ...walletStandardConnectors];
60
78
  };
61
79
 
62
80
  exports.fetchInjectedWalletConnectors = fetchInjectedWalletConnectors;