@reown/appkit-solana-react-native 0.0.0-chore-bump-builder-20250728195048 → 0.0.0-chore-solflare-20250730210452

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 (42) hide show
  1. package/lib/commonjs/connectors/PhantomConnector.js +15 -224
  2. package/lib/commonjs/connectors/PhantomConnector.js.map +1 -1
  3. package/lib/commonjs/connectors/SolanaDeeplinkConnector.js +242 -0
  4. package/lib/commonjs/connectors/SolanaDeeplinkConnector.js.map +1 -0
  5. package/lib/commonjs/connectors/SolflareConnector.js +35 -0
  6. package/lib/commonjs/connectors/SolflareConnector.js.map +1 -0
  7. package/lib/commonjs/index.js +27 -0
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/providers/{PhantomProvider.js → SolanaDeeplinkProvider.js} +58 -56
  10. package/lib/commonjs/providers/SolanaDeeplinkProvider.js.map +1 -0
  11. package/lib/module/connectors/PhantomConnector.js +16 -224
  12. package/lib/module/connectors/PhantomConnector.js.map +1 -1
  13. package/lib/module/connectors/SolanaDeeplinkConnector.js +236 -0
  14. package/lib/module/connectors/SolanaDeeplinkConnector.js.map +1 -0
  15. package/lib/module/connectors/SolflareConnector.js +30 -0
  16. package/lib/module/connectors/SolflareConnector.js.map +1 -0
  17. package/lib/module/index.js +7 -2
  18. package/lib/module/index.js.map +1 -1
  19. package/lib/module/providers/{PhantomProvider.js → SolanaDeeplinkProvider.js} +56 -54
  20. package/lib/module/providers/SolanaDeeplinkProvider.js.map +1 -0
  21. package/lib/typescript/connectors/PhantomConnector.d.ts +9 -25
  22. package/lib/typescript/connectors/PhantomConnector.d.ts.map +1 -1
  23. package/lib/typescript/connectors/SolanaDeeplinkConnector.d.ts +32 -0
  24. package/lib/typescript/connectors/SolanaDeeplinkConnector.d.ts.map +1 -0
  25. package/lib/typescript/connectors/SolflareConnector.d.ts +11 -0
  26. package/lib/typescript/connectors/SolflareConnector.d.ts.map +1 -0
  27. package/lib/typescript/index.d.ts +4 -1
  28. package/lib/typescript/index.d.ts.map +1 -1
  29. package/lib/typescript/providers/{PhantomProvider.d.ts → SolanaDeeplinkProvider.d.ts} +9 -8
  30. package/lib/typescript/providers/SolanaDeeplinkProvider.d.ts.map +1 -0
  31. package/lib/typescript/types.d.ts +30 -35
  32. package/lib/typescript/types.d.ts.map +1 -1
  33. package/package.json +2 -2
  34. package/src/connectors/PhantomConnector.ts +17 -314
  35. package/src/connectors/SolanaDeeplinkConnector.ts +336 -0
  36. package/src/connectors/SolflareConnector.ts +32 -0
  37. package/src/index.ts +23 -3
  38. package/src/providers/{PhantomProvider.ts → SolanaDeeplinkProvider.ts} +109 -82
  39. package/src/types.ts +44 -45
  40. package/lib/commonjs/providers/PhantomProvider.js.map +0 -1
  41. package/lib/module/providers/PhantomProvider.js.map +0 -1
  42. package/lib/typescript/providers/PhantomProvider.d.ts.map +0 -1
@@ -3,15 +3,13 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SOLANA_SIGNING_METHODS = exports.PhantomProvider = void 0;
6
+ exports.SolanaDeeplinkProvider = exports.SOLANA_SIGNING_METHODS = void 0;
7
7
  var _reactNative = require("react-native");
8
8
  var _tweetnacl = _interopRequireDefault(require("tweetnacl"));
9
9
  var _bs = _interopRequireDefault(require("bs58"));
10
10
  var _buffer = require("buffer");
11
11
  var _events = _interopRequireDefault(require("events"));
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- const PHANTOM_BASE_URL = 'https://phantom.app/ul/v1';
14
- const PHANTOM_PROVIDER_STORAGE_KEY = '@appkit/phantom-provider-session';
15
13
  const SOLANA_SIGNING_METHODS = exports.SOLANA_SIGNING_METHODS = {
16
14
  SOLANA_SIGN_TRANSACTION: 'solana_signTransaction',
17
15
  SOLANA_SIGN_MESSAGE: 'solana_signMessage',
@@ -21,17 +19,20 @@ const SOLANA_SIGNING_METHODS = exports.SOLANA_SIGNING_METHODS = {
21
19
  function isValidSolanaSigningMethod(method) {
22
20
  return Object.values(SOLANA_SIGNING_METHODS).includes(method);
23
21
  }
24
- class PhantomProvider extends _events.default {
22
+ class SolanaDeeplinkProvider extends _events.default {
25
23
  currentCluster = 'mainnet-beta';
26
24
  sessionToken = null;
27
25
  userPublicKey = null;
28
- phantomEncryptionPublicKeyBs58 = null;
26
+ walletEncryptionPublicKeyBs58 = null;
29
27
  constructor(config) {
30
28
  super();
31
29
  this.config = config;
32
30
  this.dappEncryptionKeyPair = config.dappEncryptionKeyPair;
33
31
  this.storage = config.storage;
34
32
  }
33
+ getStorageKey() {
34
+ return `@appkit/${this.config.walletType}-provider-session`;
35
+ }
35
36
  getUserPublicKey() {
36
37
  return this.userPublicKey;
37
38
  }
@@ -40,7 +41,7 @@ class PhantomProvider extends _events.default {
40
41
  }
41
42
  buildUrl(rpcMethod, params) {
42
43
  const query = new URLSearchParams(params).toString();
43
- return `${PHANTOM_BASE_URL}/${rpcMethod}?${query}`;
44
+ return `${this.config.baseUrl}/${rpcMethod}?${query}`;
44
45
  }
45
46
  getRpcMethodName(method) {
46
47
  switch (method) {
@@ -57,15 +58,15 @@ class PhantomProvider extends _events.default {
57
58
  throw new Error(`Unsupported Solana signing method: ${method}`);
58
59
  }
59
60
  }
60
- encryptPayload(payload, phantomPublicKeyBs58ToEncryptFor) {
61
- if (!phantomPublicKeyBs58ToEncryptFor) {
61
+ encryptPayload(payload, walletPublicKeyBs58ToEncryptFor) {
62
+ if (!walletPublicKeyBs58ToEncryptFor) {
62
63
  return null;
63
64
  }
64
65
  try {
65
- const phantomPublicKeyBytes = _bs.default.decode(phantomPublicKeyBs58ToEncryptFor);
66
+ const walletPublicKeyBytes = _bs.default.decode(walletPublicKeyBs58ToEncryptFor);
66
67
  const nonce = _tweetnacl.default.randomBytes(_tweetnacl.default.box.nonceLength);
67
68
  const payloadBytes = _buffer.Buffer.from(JSON.stringify(payload), 'utf8');
68
- const encryptedPayload = _tweetnacl.default.box(payloadBytes, nonce, phantomPublicKeyBytes, this.dappEncryptionKeyPair.secretKey);
69
+ const encryptedPayload = _tweetnacl.default.box(payloadBytes, nonce, walletPublicKeyBytes, this.dappEncryptionKeyPair.secretKey);
69
70
  return {
70
71
  nonce: _bs.default.encode(nonce),
71
72
  encryptedPayload: _bs.default.encode(encryptedPayload)
@@ -74,12 +75,12 @@ class PhantomProvider extends _events.default {
74
75
  return null;
75
76
  }
76
77
  }
77
- decryptPayload(encryptedDataBs58, nonceBs58, phantomSenderPublicKeyBs58) {
78
+ decryptPayload(encryptedDataBs58, nonceBs58, walletSenderPublicKeyBs58) {
78
79
  try {
79
80
  const encryptedDataBytes = _bs.default.decode(encryptedDataBs58);
80
81
  const nonceBytes = _bs.default.decode(nonceBs58);
81
- const phantomSenderPublicKeyBytes = _bs.default.decode(phantomSenderPublicKeyBs58);
82
- const decryptedPayloadBytes = _tweetnacl.default.box.open(encryptedDataBytes, nonceBytes, phantomSenderPublicKeyBytes, this.dappEncryptionKeyPair.secretKey);
82
+ const walletSenderPublicKeyBytes = _bs.default.decode(walletSenderPublicKeyBs58);
83
+ const decryptedPayloadBytes = _tweetnacl.default.box.open(encryptedDataBytes, nonceBytes, walletSenderPublicKeyBytes, this.dappEncryptionKeyPair.secretKey);
83
84
  if (!decryptedPayloadBytes) {
84
85
  return null;
85
86
  }
@@ -90,40 +91,40 @@ class PhantomProvider extends _events.default {
90
91
  }
91
92
  async restoreSession() {
92
93
  try {
93
- const session = await this.storage.getItem(PHANTOM_PROVIDER_STORAGE_KEY);
94
+ const session = await this.storage.getItem(this.getStorageKey());
94
95
  if (session) {
95
96
  this.setSession(session);
96
97
  return true;
97
98
  }
98
99
  return false;
99
100
  } catch (error) {
100
- // console.error('PhantomProvider: Failed to restore session.', error);
101
+ // console.error(`${this.config.walletType}Provider: Failed to restore session.`, error);
101
102
  await this.clearSessionStorage(); // Clear potentially corrupt data
102
103
 
103
104
  return false;
104
105
  }
105
106
  }
106
107
  async saveSession() {
107
- if (!this.sessionToken || !this.userPublicKey || !this.phantomEncryptionPublicKeyBs58) {
108
+ if (!this.sessionToken || !this.userPublicKey || !this.walletEncryptionPublicKeyBs58) {
108
109
  return; // Cannot save incomplete session
109
110
  }
110
111
  const session = {
111
112
  sessionToken: this.sessionToken,
112
113
  userPublicKey: this.userPublicKey,
113
- phantomEncryptionPublicKeyBs58: this.phantomEncryptionPublicKeyBs58,
114
+ walletEncryptionPublicKeyBs58: this.walletEncryptionPublicKeyBs58,
114
115
  cluster: this.currentCluster
115
116
  };
116
117
  try {
117
- await this.storage.setItem(PHANTOM_PROVIDER_STORAGE_KEY, session);
118
+ await this.storage.setItem(this.getStorageKey(), session);
118
119
  } catch (error) {
119
- // console.error('PhantomProvider: Failed to save session.', error);
120
+ // console.error(`${this.config.walletType}Provider: Failed to save session.`, error);
120
121
  }
121
122
  }
122
123
  async clearSessionStorage() {
123
124
  try {
124
- await this.storage.removeItem(PHANTOM_PROVIDER_STORAGE_KEY);
125
+ await this.storage.removeItem(this.getStorageKey());
125
126
  } catch (error) {
126
- // console.error('PhantomProvider: Failed to clear session storage.', error);
127
+ // console.error(`${this.config.walletType}Provider: Failed to clear session storage.`, error);
127
128
  }
128
129
  }
129
130
  async connect(params) {
@@ -148,34 +149,35 @@ class PhantomProvider extends _events.default {
148
149
  const errorCode = responseUrlParams.get('errorCode');
149
150
  const errorMessage = responseUrlParams.get('errorMessage');
150
151
  if (errorCode) {
151
- return reject(new Error(`Phantom Connection Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
152
+ return reject(new Error(`${this.config.walletType} Connection Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
152
153
  }
154
+ const walletEncryptionPublicKey = responseUrlParams.get(this.config.encryptionKeyFieldName);
153
155
  const responsePayload = {
154
- phantom_encryption_public_key: responseUrlParams.get('phantom_encryption_public_key'),
156
+ wallet_encryption_public_key: walletEncryptionPublicKey,
155
157
  nonce: responseUrlParams.get('nonce'),
156
158
  data: responseUrlParams.get('data')
157
159
  };
158
- if (!responsePayload.phantom_encryption_public_key || !responsePayload.nonce || !responsePayload.data) {
159
- return reject(new Error('Phantom Connect: Invalid response - missing parameters.'));
160
+ if (!responsePayload.wallet_encryption_public_key || !responsePayload.nonce || !responsePayload.data) {
161
+ return reject(new Error(`${this.config.walletType} Connect: Invalid response - missing parameters.`));
160
162
  }
161
- const decryptedData = this.decryptPayload(responsePayload.data, responsePayload.nonce, responsePayload.phantom_encryption_public_key);
163
+ const decryptedData = this.decryptPayload(responsePayload.data, responsePayload.nonce, responsePayload.wallet_encryption_public_key);
162
164
  if (!decryptedData || !decryptedData.public_key || !decryptedData.session) {
163
- return reject(new Error('Phantom Connect: Failed to decrypt or invalid decrypted data.'));
165
+ return reject(new Error(`${this.config.walletType} Connect: Failed to decrypt or invalid decrypted data.`));
164
166
  }
165
167
  this.userPublicKey = decryptedData.public_key;
166
168
  this.sessionToken = decryptedData.session;
167
- this.phantomEncryptionPublicKeyBs58 = responsePayload.phantom_encryption_public_key;
169
+ this.walletEncryptionPublicKeyBs58 = responsePayload.wallet_encryption_public_key;
168
170
 
169
171
  // Save session on successful connect
170
172
  this.saveSession();
171
173
  resolve({
172
174
  userPublicKey: this.userPublicKey,
173
175
  sessionToken: this.sessionToken,
174
- phantomEncryptionPublicKeyBs58: this.phantomEncryptionPublicKeyBs58,
176
+ walletEncryptionPublicKeyBs58: this.walletEncryptionPublicKeyBs58,
175
177
  cluster
176
178
  });
177
179
  } else {
178
- reject(new Error('Phantom Connect: Unexpected redirect URI.'));
180
+ reject(new Error(`${this.config.walletType} Connect: Unexpected redirect URI.`));
179
181
  }
180
182
  };
181
183
  subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
@@ -183,12 +185,12 @@ class PhantomProvider extends _events.default {
183
185
  if (subscription) {
184
186
  subscription.remove();
185
187
  }
186
- reject(new Error(`Failed to open Phantom wallet: ${err.message}. Is it installed?`));
188
+ reject(new Error(`Failed to open ${this.config.walletType} wallet: ${err.message}. Is it installed?`));
187
189
  });
188
190
  });
189
191
  }
190
192
  async disconnect() {
191
- if (!this.sessionToken || !this.phantomEncryptionPublicKeyBs58) {
193
+ if (!this.sessionToken || !this.walletEncryptionPublicKeyBs58) {
192
194
  await this.clearSession();
193
195
  this.emit('disconnect');
194
196
  return Promise.resolve();
@@ -196,9 +198,9 @@ class PhantomProvider extends _events.default {
196
198
  const payloadToEncrypt = {
197
199
  session: this.sessionToken
198
200
  };
199
- const encryptedDisconnectPayload = this.encryptPayload(payloadToEncrypt, this.phantomEncryptionPublicKeyBs58);
201
+ const encryptedDisconnectPayload = this.encryptPayload(payloadToEncrypt, this.walletEncryptionPublicKeyBs58);
200
202
  if (!encryptedDisconnectPayload) {
201
- // console.warn('PhantomProvider: Failed to encrypt disconnect payload. Clearing session locally.');
203
+ // console.warn(`${this.config.walletType}Provider: Failed to encrypt disconnect payload. Clearing session locally.`);
202
204
  await this.clearSession();
203
205
  this.emit('disconnect');
204
206
  return Promise.resolve(); // Or reject, depending on desired strictness
@@ -221,7 +223,7 @@ class PhantomProvider extends _events.default {
221
223
  resolve();
222
224
  } else {
223
225
  this.clearSession();
224
- reject(new Error('Phantom Disconnect: Unexpected redirect URI.'));
226
+ reject(new Error(`${this.config.walletType} Disconnect: Unexpected redirect URI.`));
225
227
  }
226
228
  };
227
229
  subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
@@ -230,30 +232,30 @@ class PhantomProvider extends _events.default {
230
232
  subscription.remove();
231
233
  }
232
234
  this.clearSession();
233
- reject(new Error(`Failed to open Phantom for disconnection: ${err.message}.`));
235
+ reject(new Error(`Failed to open ${this.config.walletType} for disconnection: ${err.message}.`));
234
236
  });
235
237
  });
236
238
  }
237
239
  async clearSession() {
238
240
  this.sessionToken = null;
239
241
  this.userPublicKey = null;
240
- this.phantomEncryptionPublicKeyBs58 = null;
242
+ this.walletEncryptionPublicKeyBs58 = null;
241
243
  await this.clearSessionStorage();
242
244
  }
243
245
  setSession(session) {
244
246
  this.sessionToken = session.sessionToken;
245
247
  this.userPublicKey = session.userPublicKey;
246
- this.phantomEncryptionPublicKeyBs58 = session.phantomEncryptionPublicKeyBs58;
248
+ this.walletEncryptionPublicKeyBs58 = session.walletEncryptionPublicKeyBs58;
247
249
  this.currentCluster = session.cluster;
248
250
  }
249
251
  async request(args, _chainId) {
250
252
  if (!isValidSolanaSigningMethod(args.method)) {
251
- throw new Error(`PhantomProvider: Unsupported method: ${args.method}. Only Solana signing methods are supported.`);
253
+ throw new Error(`${this.config.walletType}Provider: Unsupported method: ${args.method}. Only Solana signing methods are supported.`);
252
254
  }
253
255
  const signingMethod = args.method;
254
256
  const requestParams = args.params;
255
- if (!this.isConnected() || !this.sessionToken || !this.phantomEncryptionPublicKeyBs58) {
256
- throw new Error('PhantomProvider: Not connected or session details missing. Cannot process request.');
257
+ if (!this.isConnected() || !this.sessionToken || !this.walletEncryptionPublicKeyBs58) {
258
+ throw new Error(`${this.config.walletType}Provider: Not connected or session details missing. Cannot process request.`);
257
259
  }
258
260
  const rpcMethodName = this.getRpcMethodName(signingMethod);
259
261
  let deeplinkUrl = '';
@@ -269,9 +271,9 @@ class PhantomProvider extends _events.default {
269
271
  session: this.sessionToken,
270
272
  transaction: typedParams.transaction
271
273
  };
272
- const encryptedData = this.encryptPayload(dataToEncrypt, this.phantomEncryptionPublicKeyBs58);
274
+ const encryptedData = this.encryptPayload(dataToEncrypt, this.walletEncryptionPublicKeyBs58);
273
275
  if (!encryptedData) {
274
- throw new Error(`PhantomProvider: Failed to encrypt payload for ${signingMethod}.`);
276
+ throw new Error(`${this.config.walletType}Provider: Failed to encrypt payload for ${signingMethod}.`);
275
277
  }
276
278
  const signTxDeeplinkParams = {
277
279
  dapp_encryption_public_key: _bs.default.encode(this.dappEncryptionKeyPair.publicKey),
@@ -307,9 +309,9 @@ class PhantomProvider extends _events.default {
307
309
  session: this.sessionToken,
308
310
  display: typedParams.display || 'utf8'
309
311
  };
310
- const encryptedPayloadData = this.encryptPayload(dataToEncrypt, this.phantomEncryptionPublicKeyBs58);
312
+ const encryptedPayloadData = this.encryptPayload(dataToEncrypt, this.walletEncryptionPublicKeyBs58);
311
313
  if (!encryptedPayloadData) {
312
- throw new Error('PhantomProvider: Failed to encrypt payload for signMessage.');
314
+ throw new Error(`${this.config.walletType}Provider: Failed to encrypt payload for signMessage.`);
313
315
  }
314
316
  const signMsgDeeplinkQueryPayload = {
315
317
  dapp_encryption_public_key: _bs.default.encode(this.dappEncryptionKeyPair.publicKey),
@@ -330,9 +332,9 @@ class PhantomProvider extends _events.default {
330
332
  session: this.sessionToken,
331
333
  transactions: typedParams.transactions
332
334
  };
333
- const encryptedData = this.encryptPayload(dataToEncrypt, this.phantomEncryptionPublicKeyBs58);
335
+ const encryptedData = this.encryptPayload(dataToEncrypt, this.walletEncryptionPublicKeyBs58);
334
336
  if (!encryptedData) {
335
- throw new Error(`PhantomProvider: Failed to encrypt payload for ${signingMethod}.`);
337
+ throw new Error(`${this.config.walletType}Provider: Failed to encrypt payload for ${signingMethod}.`);
336
338
  }
337
339
  const signAllTxDeeplinkParams = {
338
340
  dapp_encryption_public_key: _bs.default.encode(this.dappEncryptionKeyPair.publicKey),
@@ -346,7 +348,7 @@ class PhantomProvider extends _events.default {
346
348
  }
347
349
  default:
348
350
  {
349
- throw new Error(`PhantomProvider: Unhandled signing method: ${signingMethod}`);
351
+ throw new Error(`${this.config.walletType}Provider: Unhandled signing method: ${signingMethod}`);
350
352
  }
351
353
  }
352
354
  return new Promise((resolve, reject) => {
@@ -361,20 +363,20 @@ class PhantomProvider extends _events.default {
361
363
  const errorCode = responseUrlParams.get('errorCode');
362
364
  const errorMessage = responseUrlParams.get('errorMessage');
363
365
  if (errorCode) {
364
- return reject(new Error(`Phantom ${signingMethod} Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
366
+ return reject(new Error(`${this.config.walletType} ${signingMethod} Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
365
367
  }
366
368
  const responseNonce = responseUrlParams.get('nonce');
367
369
  const responseData = responseUrlParams.get('data');
368
370
  if (!responseNonce || !responseData) {
369
- return reject(new Error(`Phantom ${signingMethod}: Invalid response - missing nonce or data.`));
371
+ return reject(new Error(`${this.config.walletType} ${signingMethod}: Invalid response - missing nonce or data.`));
370
372
  }
371
- const decryptedResult = this.decryptPayload(responseData, responseNonce, this.phantomEncryptionPublicKeyBs58);
373
+ const decryptedResult = this.decryptPayload(responseData, responseNonce, this.walletEncryptionPublicKeyBs58);
372
374
  if (!decryptedResult) {
373
- return reject(new Error(`Phantom ${signingMethod}: Failed to decrypt response or invalid decrypted data.`));
375
+ return reject(new Error(`${this.config.walletType} ${signingMethod}: Failed to decrypt response or invalid decrypted data.`));
374
376
  }
375
377
  resolve(decryptedResult);
376
378
  } else {
377
- reject(new Error(`Phantom ${signingMethod}: Unexpected redirect URI.`));
379
+ reject(new Error(`${this.config.walletType} ${signingMethod}: Unexpected redirect URI.`));
378
380
  }
379
381
  };
380
382
  subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
@@ -382,10 +384,10 @@ class PhantomProvider extends _events.default {
382
384
  if (subscription) {
383
385
  subscription.remove();
384
386
  }
385
- reject(new Error(`Failed to open Phantom for ${signingMethod}: ${err.message}. Is it installed?`));
387
+ reject(new Error(`Failed to open ${this.config.walletType} for ${signingMethod}: ${err.message}. Is it installed?`));
386
388
  });
387
389
  });
388
390
  }
389
391
  }
390
- exports.PhantomProvider = PhantomProvider;
391
- //# sourceMappingURL=PhantomProvider.js.map
392
+ exports.SolanaDeeplinkProvider = SolanaDeeplinkProvider;
393
+ //# sourceMappingURL=SolanaDeeplinkProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_tweetnacl","_interopRequireDefault","_bs","_buffer","_events","e","__esModule","default","SOLANA_SIGNING_METHODS","exports","SOLANA_SIGN_TRANSACTION","SOLANA_SIGN_MESSAGE","SOLANA_SIGN_AND_SEND_TRANSACTION","SOLANA_SIGN_ALL_TRANSACTIONS","isValidSolanaSigningMethod","method","Object","values","includes","SolanaDeeplinkProvider","EventEmitter","currentCluster","sessionToken","userPublicKey","walletEncryptionPublicKeyBs58","constructor","config","dappEncryptionKeyPair","storage","getStorageKey","walletType","getUserPublicKey","isConnected","buildUrl","rpcMethod","params","query","URLSearchParams","toString","baseUrl","getRpcMethodName","Error","encryptPayload","payload","walletPublicKeyBs58ToEncryptFor","walletPublicKeyBytes","bs58","decode","nonce","nacl","randomBytes","box","nonceLength","payloadBytes","Buffer","from","JSON","stringify","encryptedPayload","secretKey","encode","error","decryptPayload","encryptedDataBs58","nonceBs58","walletSenderPublicKeyBs58","encryptedDataBytes","nonceBytes","walletSenderPublicKeyBytes","decryptedPayloadBytes","open","parse","restoreSession","session","getItem","setSession","clearSessionStorage","saveSession","cluster","setItem","removeItem","connect","connectDeeplinkParams","app_url","dappUrl","dapp_encryption_public_key","publicKey","redirect_link","appScheme","url","Promise","resolve","reject","subscription","handleDeepLink","event","remove","fullUrl","startsWith","responseUrlParams","substring","indexOf","errorCode","get","errorMessage","walletEncryptionPublicKey","encryptionKeyFieldName","responsePayload","wallet_encryption_public_key","data","decryptedData","public_key","Linking","addEventListener","openURL","catch","err","message","disconnect","clearSession","emit","payloadToEncrypt","encryptedDisconnectPayload","disconnectDeeplinkParams","request","args","_chainId","signingMethod","requestParams","rpcMethodName","deeplinkUrl","typedParams","transaction","dataToEncrypt","encryptedData","signTxDeeplinkParams","messageBs58","Uint8Array","display","encryptedPayloadData","signMsgDeeplinkQueryPayload","Array","isArray","transactions","every","t","signAllTxDeeplinkParams","responseNonce","responseData","decryptedResult"],"sourceRoot":"../../../src","sources":["providers/SolanaDeeplinkProvider.ts"],"mappings":"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","ignoreList":[]}
@@ -1,238 +1,30 @@
1
1
  "use strict";
2
2
 
3
- import { WalletConnector, solana, solanaDevnet, solanaTestnet, ConstantsUtil } from '@reown/appkit-common-react-native';
4
- import nacl from 'tweetnacl';
5
- import bs58 from 'bs58';
6
- import { PhantomProvider, SOLANA_SIGNING_METHODS } from '../providers/PhantomProvider';
7
- const SOLANA_CLUSTER_TO_CHAIN_ID_PART = {
8
- 'mainnet-beta': solana.id,
9
- 'testnet': solanaTestnet.id,
10
- 'devnet': solanaDevnet.id
11
- };
3
+ import { ConstantsUtil } from '@reown/appkit-common-react-native';
4
+ import { SolanaDeeplinkConnector } from './SolanaDeeplinkConnector';
5
+ const PHANTOM_BASE_URL = 'https://phantom.app/ul/v1';
12
6
  const PHANTOM_CONNECTOR_STORAGE_KEY = '@appkit/phantom-connector-data';
13
- const DAPP_KEYPAIR_STORAGE_KEY = '@appkit/phantom-dapp-secret-key';
14
- export class PhantomConnector extends WalletConnector {
15
- currentCaipNetworkId = null;
16
- static SUPPORTED_NAMESPACE = 'solana';
17
- constructor(config) {
7
+ const PHANTOM_DAPP_KEYPAIR_STORAGE_KEY = '@appkit/phantom-dapp-secret-key';
8
+ export class PhantomConnector extends SolanaDeeplinkConnector {
9
+ constructor() {
18
10
  super({
19
- type: 'phantom'
11
+ walletType: 'phantom'
20
12
  });
21
- this.config = config ?? {
22
- cluster: 'mainnet-beta'
23
- };
24
- }
25
- async init(ops) {
26
- super.init(ops);
27
- this.storage = ops.storage;
28
- await this.initializeKeyPair();
29
- const appScheme = ops.metadata.redirect?.universal ?? ops.metadata.redirect?.native;
30
- if (!appScheme) {
31
- throw new Error('Phantom Connector: No redirect link found in metadata. Please add redirect.universal or redirect.native to the metadata.');
32
- }
33
- const providerConfig = {
34
- appScheme,
35
- dappUrl: ops.metadata.url,
36
- storage: ops.storage,
37
- dappEncryptionKeyPair: this.dappEncryptionKeyPair
38
- };
39
- this.provider = new PhantomProvider(providerConfig);
40
- await this.restoreSession();
41
- }
42
- async initializeKeyPair() {
43
- try {
44
- const secretKeyB58 = await this.getStorage().getItem(DAPP_KEYPAIR_STORAGE_KEY);
45
- if (secretKeyB58) {
46
- const secretKey = bs58.decode(secretKeyB58);
47
- this.dappEncryptionKeyPair = nacl.box.keyPair.fromSecretKey(secretKey);
48
- } else {
49
- const newKeyPair = nacl.box.keyPair();
50
- this.dappEncryptionKeyPair = newKeyPair;
51
- await this.getStorage().setItem(DAPP_KEYPAIR_STORAGE_KEY, bs58.encode(newKeyPair.secretKey));
52
- }
53
- } catch (error) {
54
- // disconnect and clear session
55
- await this.disconnect();
56
- throw error;
57
- }
58
- }
59
- async connect(opts) {
60
- if (this.isConnected()) {
61
- return this.namespaces;
62
- }
63
- const defaultChain = opts?.defaultChain?.split(':')?.[0] === 'solana' ? opts?.defaultChain?.split(':')[1] : opts?.namespaces?.['solana']?.chains?.[0]?.split(':')[1];
64
- const requestedCluster = this.config.cluster ?? Object.keys(SOLANA_CLUSTER_TO_CHAIN_ID_PART).find(key => SOLANA_CLUSTER_TO_CHAIN_ID_PART[key] === defaultChain);
65
- try {
66
- const connectResult = await this.getProvider().connect({
67
- cluster: requestedCluster
68
- });
69
- const solanaChainIdPart = SOLANA_CLUSTER_TO_CHAIN_ID_PART[connectResult.cluster];
70
- if (!solanaChainIdPart) {
71
- throw new Error(`Phantom Connect: Internal - Unknown cluster mapping for ${connectResult.cluster}`);
72
- }
73
- this.currentCaipNetworkId = `solana:${solanaChainIdPart}`;
74
- this.wallet = ConstantsUtil.PHANTOM_CUSTOM_WALLET;
75
- const userPublicKey = this.getProvider().getUserPublicKey();
76
- if (!userPublicKey) {
77
- throw new Error('Phantom Connect: Provider failed to return a user public key.');
78
- }
79
- const caipAddress = `${this.currentCaipNetworkId}:${userPublicKey}`;
80
- this.namespaces = {
81
- [PhantomConnector.SUPPORTED_NAMESPACE]: {
82
- accounts: [caipAddress],
83
- methods: Object.values(SOLANA_SIGNING_METHODS),
84
- events: [],
85
- chains: [this.currentCaipNetworkId]
86
- }
87
- };
88
- await this.saveSession(); // Save connector-specific session on successful connect
89
-
90
- return this.namespaces;
91
- } catch (error) {
92
- this.clearSession();
93
- throw error;
94
- }
95
- }
96
- async disconnect() {
97
- try {
98
- if (this.isConnected()) {
99
- await super.disconnect();
100
- }
101
- } catch (error) {
102
- // console.warn(`PhantomConnector: Error during provider disconnect: ${error.message}. Proceeding with local clear.`);
103
- }
104
- await this.clearSession();
105
- }
106
- async clearSession() {
107
- this.namespaces = undefined;
108
- this.wallet = undefined;
109
- this.currentCaipNetworkId = null;
110
- await this.clearSessionStorage();
111
- }
112
- getProvider() {
113
- if (!this.provider) {
114
- throw new Error('Phantom Connector: Provider not initialized. Call init() first.');
115
- }
116
- return this.provider;
117
- }
118
- getStorage() {
119
- if (!this.storage) {
120
- throw new Error('Phantom Connector: Storage not initialized. Call init() first.');
121
- }
122
- return this.storage;
123
- }
124
- getNamespaces() {
125
- if (!this.namespaces) {
126
- throw new Error('Phantom Connector: Not connected. Call connect() first.');
127
- }
128
- return this.namespaces;
129
- }
130
- getChainId(namespace) {
131
- if (namespace === PhantomConnector.SUPPORTED_NAMESPACE) {
132
- return this.currentCaipNetworkId ?? undefined;
133
- }
134
- return undefined;
135
- }
136
- getProperties() {
137
- return this.properties;
138
13
  }
139
14
  getWalletInfo() {
140
- if (!this.isConnected()) {
141
- return undefined;
142
- }
143
- return this.wallet;
15
+ return ConstantsUtil.PHANTOM_CUSTOM_WALLET;
144
16
  }
145
- isConnected() {
146
- // Rely solely on the provider as the source of truth for connection status.
147
- return this.getProvider().isConnected() && !!this.getProvider().getUserPublicKey();
17
+ getBaseUrl() {
18
+ return PHANTOM_BASE_URL;
148
19
  }
149
- async switchNetwork(network) {
150
- const targetClusterName = Object.keys(SOLANA_CLUSTER_TO_CHAIN_ID_PART).find(key => SOLANA_CLUSTER_TO_CHAIN_ID_PART[key] === network.id);
151
- if (!targetClusterName) {
152
- throw new Error(`Cannot switch to unsupported network ID: ${network.id}`);
153
- }
154
- const currentClusterName = Object.keys(SOLANA_CLUSTER_TO_CHAIN_ID_PART).find(key => `solana:${SOLANA_CLUSTER_TO_CHAIN_ID_PART[key]}` === this.currentCaipNetworkId);
155
- if (targetClusterName === currentClusterName && this.isConnected()) {
156
- return Promise.resolve();
157
- }
158
-
159
- // Phantom doesn't provide a way to switch network, so we need to disconnect and reconnect.
160
- await this.disconnect(); // Clear current session
161
-
162
- // Create a temporary options object to guide the new connection
163
- const tempConnectOpts = {
164
- defaultChain: `solana:${SOLANA_CLUSTER_TO_CHAIN_ID_PART[targetClusterName]}`
165
- };
166
-
167
- // Attempt to connect to the new cluster
168
- // The connect method will use the defaultChain from opts to determine the cluster.
169
- await this.connect(tempConnectOpts);
170
- this.getProvider().emit('chainChanged', network.id);
171
-
172
- // Verify if the connection was successful and to the correct new network
173
- if (!this.isConnected() || this.getChainId(PhantomConnector.SUPPORTED_NAMESPACE) !== tempConnectOpts.defaultChain) {
174
- throw new Error(`Failed to switch network to ${targetClusterName}. Please try connecting manually.`);
175
- }
20
+ getStorageKey() {
21
+ return PHANTOM_CONNECTOR_STORAGE_KEY;
176
22
  }
177
-
178
- // Orchestrates session restoration
179
- async restoreSession() {
180
- try {
181
- const providerSession = await this.getProvider().restoreSession();
182
- if (!providerSession) {
183
- return false;
184
- }
185
-
186
- // If provider session is restored, try to restore connector data
187
- const connectorData = await this.getStorage().getItem(PHANTOM_CONNECTOR_STORAGE_KEY);
188
- if (!connectorData) {
189
- return false; // Provider session exists but connector data is missing
190
- }
191
- this.namespaces = connectorData.namespaces;
192
- this.wallet = connectorData.wallet;
193
- this.currentCaipNetworkId = connectorData.currentCaipNetworkId;
194
-
195
- // await this.initializeKeyPair();
196
-
197
- // Final validation
198
- if (this.isConnected()) {
199
- return true;
200
- }
201
-
202
- // If validation fails, something is out of sync. Clear everything.
203
- await this.disconnect();
204
- return false;
205
- } catch (error) {
206
- // On any error, disconnect to ensure a clean state
207
- await this.disconnect();
208
- return false;
209
- }
23
+ getDappKeypairStorageKey() {
24
+ return PHANTOM_DAPP_KEYPAIR_STORAGE_KEY;
210
25
  }
211
-
212
- // Saves only connector-specific data
213
- async saveSession() {
214
- if (!this.namespaces || !this.wallet || !this.currentCaipNetworkId) {
215
- return;
216
- }
217
- const connectorData = {
218
- namespaces: this.namespaces,
219
- wallet: this.wallet,
220
- currentCaipNetworkId: this.currentCaipNetworkId
221
- };
222
- try {
223
- await this.getStorage().setItem(PHANTOM_CONNECTOR_STORAGE_KEY, connectorData);
224
- } catch (error) {
225
- // console.error('PhantomConnector: Failed to save session.', error);
226
- }
227
- }
228
-
229
- // Clears only connector-specific data from storage
230
- async clearSessionStorage() {
231
- try {
232
- await this.getStorage().removeItem(PHANTOM_CONNECTOR_STORAGE_KEY);
233
- } catch (error) {
234
- // console.error('PhantomConnector: Failed to clear session from storage.', error);
235
- }
26
+ getEncryptionKeyFieldName() {
27
+ return 'phantom_encryption_public_key';
236
28
  }
237
29
  }
238
30
  //# sourceMappingURL=PhantomConnector.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WalletConnector","solana","solanaDevnet","solanaTestnet","ConstantsUtil","nacl","bs58","PhantomProvider","SOLANA_SIGNING_METHODS","SOLANA_CLUSTER_TO_CHAIN_ID_PART","id","PHANTOM_CONNECTOR_STORAGE_KEY","DAPP_KEYPAIR_STORAGE_KEY","PhantomConnector","currentCaipNetworkId","SUPPORTED_NAMESPACE","constructor","config","type","cluster","init","ops","storage","initializeKeyPair","appScheme","metadata","redirect","universal","native","Error","providerConfig","dappUrl","url","dappEncryptionKeyPair","provider","restoreSession","secretKeyB58","getStorage","getItem","secretKey","decode","box","keyPair","fromSecretKey","newKeyPair","setItem","encode","error","disconnect","connect","opts","isConnected","namespaces","defaultChain","split","chains","requestedCluster","Object","keys","find","key","connectResult","getProvider","solanaChainIdPart","wallet","PHANTOM_CUSTOM_WALLET","userPublicKey","getUserPublicKey","caipAddress","accounts","methods","values","events","saveSession","clearSession","undefined","clearSessionStorage","getNamespaces","getChainId","namespace","getProperties","properties","getWalletInfo","switchNetwork","network","targetClusterName","currentClusterName","Promise","resolve","tempConnectOpts","emit","providerSession","connectorData","removeItem"],"sourceRoot":"../../../src","sources":["connectors/PhantomConnector.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ConstantsUtil","SolanaDeeplinkConnector","PHANTOM_BASE_URL","PHANTOM_CONNECTOR_STORAGE_KEY","PHANTOM_DAPP_KEYPAIR_STORAGE_KEY","PhantomConnector","constructor","walletType","getWalletInfo","PHANTOM_CUSTOM_WALLET","getBaseUrl","getStorageKey","getDappKeypairStorageKey","getEncryptionKeyFieldName"],"sourceRoot":"../../../src","sources":["connectors/PhantomConnector.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAyB,mCAAmC;AAClF,SAASC,uBAAuB,QAAQ,2BAA2B;AAEnE,MAAMC,gBAAgB,GAAG,2BAA2B;AACpD,MAAMC,6BAA6B,GAAG,gCAAgC;AACtE,MAAMC,gCAAgC,GAAG,iCAAiC;AAE1E,OAAO,MAAMC,gBAAgB,SAASJ,uBAAuB,CAAC;EAC5DK,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC;MAAEC,UAAU,EAAE;IAAU,CAAC,CAAC;EAClC;EAESC,aAAaA,CAAA,EAAe;IACnC,OAAOR,aAAa,CAACS,qBAAqB;EAC5C;EAEUC,UAAUA,CAAA,EAAW;IAC7B,OAAOR,gBAAgB;EACzB;EAEUS,aAAaA,CAAA,EAAW;IAChC,OAAOR,6BAA6B;EACtC;EAEUS,wBAAwBA,CAAA,EAAW;IAC3C,OAAOR,gCAAgC;EACzC;EAEUS,yBAAyBA,CAAA,EAAW;IAC5C,OAAO,+BAA+B;EACxC;AACF","ignoreList":[]}