@reown/appkit-solana-react-native 2.0.0-alpha.1 → 2.0.0-alpha.3

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 (44) hide show
  1. package/lib/commonjs/adapter.js +121 -3
  2. package/lib/commonjs/adapter.js.map +1 -1
  3. package/lib/commonjs/connectors/PhantomConnector.js +28 -24
  4. package/lib/commonjs/connectors/PhantomConnector.js.map +1 -1
  5. package/lib/commonjs/helpers.js +0 -1
  6. package/lib/commonjs/helpers.js.map +1 -1
  7. package/lib/commonjs/index.js +1 -1
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/package.json +1 -0
  10. package/lib/commonjs/providers/PhantomProvider.js +124 -84
  11. package/lib/commonjs/providers/PhantomProvider.js.map +1 -1
  12. package/lib/commonjs/types.js.map +1 -1
  13. package/lib/commonjs/utils/createSendTransaction.js +44 -0
  14. package/lib/commonjs/utils/createSendTransaction.js.map +1 -0
  15. package/lib/module/adapter.js +122 -3
  16. package/lib/module/adapter.js.map +1 -1
  17. package/lib/module/connectors/PhantomConnector.js +31 -25
  18. package/lib/module/connectors/PhantomConnector.js.map +1 -1
  19. package/lib/module/helpers.js +2 -1
  20. package/lib/module/helpers.js.map +1 -1
  21. package/lib/module/index.js +6 -4
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/providers/PhantomProvider.js +126 -84
  24. package/lib/module/providers/PhantomProvider.js.map +1 -1
  25. package/lib/module/types.js +2 -0
  26. package/lib/module/types.js.map +1 -1
  27. package/lib/module/utils/createSendTransaction.js +41 -0
  28. package/lib/module/utils/createSendTransaction.js.map +1 -0
  29. package/lib/typescript/adapter.d.ts +11 -3
  30. package/lib/typescript/adapter.d.ts.map +1 -1
  31. package/lib/typescript/connectors/PhantomConnector.d.ts +2 -1
  32. package/lib/typescript/connectors/PhantomConnector.d.ts.map +1 -1
  33. package/lib/typescript/index.d.ts +2 -2
  34. package/lib/typescript/index.d.ts.map +1 -1
  35. package/lib/typescript/providers/PhantomProvider.d.ts +14 -0
  36. package/lib/typescript/providers/PhantomProvider.d.ts.map +1 -1
  37. package/lib/typescript/utils/createSendTransaction.d.ts +10 -0
  38. package/lib/typescript/utils/createSendTransaction.d.ts.map +1 -0
  39. package/package.json +9 -3
  40. package/src/adapter.ts +152 -3
  41. package/src/connectors/PhantomConnector.ts +39 -38
  42. package/src/index.ts +4 -4
  43. package/src/providers/PhantomProvider.ts +165 -113
  44. package/src/utils/createSendTransaction.ts +57 -0
@@ -26,12 +26,47 @@ class PhantomProvider extends _events.default {
26
26
  sessionToken = null;
27
27
  userPublicKey = null;
28
28
  phantomEncryptionPublicKeyBs58 = null;
29
+
30
+ // Single subscription management - deep links are sequential by nature
31
+ activeSubscription = null;
32
+ isOperationPending = false;
29
33
  constructor(config) {
30
34
  super();
31
35
  this.config = config;
32
36
  this.dappEncryptionKeyPair = config.dappEncryptionKeyPair;
33
37
  this.storage = config.storage;
34
38
  }
39
+
40
+ /**
41
+ * Cleanup method to be called when the provider is destroyed
42
+ */
43
+ destroy() {
44
+ this.cleanupActiveSubscription();
45
+ this.removeAllListeners();
46
+ }
47
+
48
+ /**
49
+ * Safely cleanup the active subscription
50
+ */
51
+ cleanupActiveSubscription() {
52
+ if (this.activeSubscription) {
53
+ this.activeSubscription.remove();
54
+ this.activeSubscription = null;
55
+ }
56
+ this.isOperationPending = false;
57
+ }
58
+
59
+ /**
60
+ * Safely set a new subscription, ensuring no operation is pending
61
+ */
62
+ setActiveSubscription(subscription) {
63
+ // If there's already a pending operation, reject it
64
+ if (this.isOperationPending) {
65
+ this.cleanupActiveSubscription();
66
+ }
67
+ this.activeSubscription = subscription;
68
+ this.isOperationPending = true;
69
+ }
35
70
  getUserPublicKey() {
36
71
  return this.userPublicKey;
37
72
  }
@@ -107,7 +142,6 @@ class PhantomProvider extends _events.default {
107
142
  if (!this.sessionToken || !this.userPublicKey || !this.phantomEncryptionPublicKeyBs58) {
108
143
  return; // Cannot save incomplete session
109
144
  }
110
-
111
145
  const session = {
112
146
  sessionToken: this.sessionToken,
113
147
  userPublicKey: this.userPublicKey,
@@ -115,7 +149,7 @@ class PhantomProvider extends _events.default {
115
149
  cluster: this.currentCluster
116
150
  };
117
151
  try {
118
- await this.storage.setItem(PHANTOM_PROVIDER_STORAGE_KEY, JSON.stringify(session));
152
+ await this.storage.setItem(PHANTOM_PROVIDER_STORAGE_KEY, session);
119
153
  } catch (error) {
120
154
  // console.error('PhantomProvider: Failed to save session.', error);
121
155
  }
@@ -138,52 +172,53 @@ class PhantomProvider extends _events.default {
138
172
  };
139
173
  const url = this.buildUrl('connect', connectDeeplinkParams);
140
174
  return new Promise((resolve, reject) => {
141
- let subscription = null;
142
175
  const handleDeepLink = async event => {
143
- if (subscription) {
144
- subscription.remove();
145
- }
146
- const fullUrl = event.url;
147
- if (fullUrl.startsWith(this.config.appScheme)) {
148
- const responseUrlParams = new URLSearchParams(fullUrl.substring(fullUrl.indexOf('?') + 1));
149
- const errorCode = responseUrlParams.get('errorCode');
150
- const errorMessage = responseUrlParams.get('errorMessage');
151
- if (errorCode) {
152
- return reject(new Error(`Phantom Connection Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
153
- }
154
- const responsePayload = {
155
- phantom_encryption_public_key: responseUrlParams.get('phantom_encryption_public_key'),
156
- nonce: responseUrlParams.get('nonce'),
157
- data: responseUrlParams.get('data')
158
- };
159
- if (!responsePayload.phantom_encryption_public_key || !responsePayload.nonce || !responsePayload.data) {
160
- return reject(new Error('Phantom Connect: Invalid response - missing parameters.'));
161
- }
162
- const decryptedData = this.decryptPayload(responsePayload.data, responsePayload.nonce, responsePayload.phantom_encryption_public_key);
163
- if (!decryptedData || !decryptedData.public_key || !decryptedData.session) {
164
- return reject(new Error('Phantom Connect: Failed to decrypt or invalid decrypted data.'));
165
- }
166
- this.userPublicKey = decryptedData.public_key;
167
- this.sessionToken = decryptedData.session;
168
- this.phantomEncryptionPublicKeyBs58 = responsePayload.phantom_encryption_public_key;
176
+ try {
177
+ this.cleanupActiveSubscription();
178
+ const fullUrl = event.url;
179
+ if (fullUrl.startsWith(this.config.appScheme)) {
180
+ const responseUrlParams = new URLSearchParams(fullUrl.substring(fullUrl.indexOf('?') + 1));
181
+ const errorCode = responseUrlParams.get('errorCode');
182
+ const errorMessage = responseUrlParams.get('errorMessage');
183
+ if (errorCode) {
184
+ return reject(new Error(`Phantom Connection Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
185
+ }
186
+ const responsePayload = {
187
+ phantom_encryption_public_key: responseUrlParams.get('phantom_encryption_public_key'),
188
+ nonce: responseUrlParams.get('nonce'),
189
+ data: responseUrlParams.get('data')
190
+ };
191
+ if (!responsePayload.phantom_encryption_public_key || !responsePayload.nonce || !responsePayload.data) {
192
+ return reject(new Error('Phantom Connect: Invalid response - missing parameters.'));
193
+ }
194
+ const decryptedData = this.decryptPayload(responsePayload.data, responsePayload.nonce, responsePayload.phantom_encryption_public_key);
195
+ if (!decryptedData || !decryptedData.public_key || !decryptedData.session) {
196
+ return reject(new Error('Phantom Connect: Failed to decrypt or invalid decrypted data.'));
197
+ }
198
+ this.userPublicKey = decryptedData.public_key;
199
+ this.sessionToken = decryptedData.session;
200
+ this.phantomEncryptionPublicKeyBs58 = responsePayload.phantom_encryption_public_key;
169
201
 
170
- // Save session on successful connect
171
- this.saveSession();
172
- resolve({
173
- userPublicKey: this.userPublicKey,
174
- sessionToken: this.sessionToken,
175
- phantomEncryptionPublicKeyBs58: this.phantomEncryptionPublicKeyBs58,
176
- cluster
177
- });
178
- } else {
179
- reject(new Error('Phantom Connect: Unexpected redirect URI.'));
202
+ // Save session on successful connect
203
+ this.saveSession();
204
+ resolve({
205
+ userPublicKey: this.userPublicKey,
206
+ sessionToken: this.sessionToken,
207
+ phantomEncryptionPublicKeyBs58: this.phantomEncryptionPublicKeyBs58,
208
+ cluster
209
+ });
210
+ } else {
211
+ reject(new Error('Phantom Connect: Unexpected redirect URI.'));
212
+ }
213
+ } catch (error) {
214
+ this.cleanupActiveSubscription();
215
+ reject(error);
180
216
  }
181
217
  };
182
- subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
218
+ const subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
219
+ this.setActiveSubscription(subscription);
183
220
  _reactNative.Linking.openURL(url).catch(err => {
184
- if (subscription) {
185
- subscription.remove();
186
- }
221
+ this.cleanupActiveSubscription();
187
222
  reject(new Error(`Failed to open Phantom wallet: ${err.message}. Is it installed?`));
188
223
  });
189
224
  });
@@ -191,6 +226,7 @@ class PhantomProvider extends _events.default {
191
226
  async disconnect() {
192
227
  if (!this.sessionToken || !this.phantomEncryptionPublicKeyBs58) {
193
228
  await this.clearSession();
229
+ this.emit('disconnect');
194
230
  return Promise.resolve();
195
231
  }
196
232
  const payloadToEncrypt = {
@@ -200,9 +236,9 @@ class PhantomProvider extends _events.default {
200
236
  if (!encryptedDisconnectPayload) {
201
237
  // console.warn('PhantomProvider: Failed to encrypt disconnect payload. Clearing session locally.');
202
238
  await this.clearSession();
239
+ this.emit('disconnect');
203
240
  return Promise.resolve(); // Or reject, depending on desired strictness
204
241
  }
205
-
206
242
  const disconnectDeeplinkParams = {
207
243
  dapp_encryption_public_key: _bs.default.encode(this.dappEncryptionKeyPair.publicKey),
208
244
  redirect_link: this.config.appScheme,
@@ -211,24 +247,26 @@ class PhantomProvider extends _events.default {
211
247
  };
212
248
  const url = this.buildUrl('disconnect', disconnectDeeplinkParams);
213
249
  return new Promise((resolve, reject) => {
214
- let subscription = null;
215
250
  const handleDeepLink = event => {
216
- if (subscription) {
217
- subscription.remove();
218
- }
219
- if (event.url.startsWith(this.config.appScheme)) {
220
- this.clearSession();
221
- resolve();
222
- } else {
251
+ try {
252
+ this.cleanupActiveSubscription();
253
+ if (event.url.startsWith(this.config.appScheme)) {
254
+ this.clearSession();
255
+ resolve();
256
+ } else {
257
+ this.clearSession();
258
+ reject(new Error('Phantom Disconnect: Unexpected redirect URI.'));
259
+ }
260
+ } catch (error) {
261
+ this.cleanupActiveSubscription();
223
262
  this.clearSession();
224
- reject(new Error('Phantom Disconnect: Unexpected redirect URI.'));
263
+ reject(error);
225
264
  }
226
265
  };
227
- subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
266
+ const subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
267
+ this.setActiveSubscription(subscription);
228
268
  _reactNative.Linking.openURL(url).catch(err => {
229
- if (subscription) {
230
- subscription.remove();
231
- }
269
+ this.cleanupActiveSubscription();
232
270
  this.clearSession();
233
271
  reject(new Error(`Failed to open Phantom for disconnection: ${err.message}.`));
234
272
  });
@@ -238,6 +276,7 @@ class PhantomProvider extends _events.default {
238
276
  this.sessionToken = null;
239
277
  this.userPublicKey = null;
240
278
  this.phantomEncryptionPublicKeyBs58 = null;
279
+ this.cleanupActiveSubscription();
241
280
  await this.clearSessionStorage();
242
281
  }
243
282
  setSession(session) {
@@ -350,38 +389,39 @@ class PhantomProvider extends _events.default {
350
389
  }
351
390
  }
352
391
  return new Promise((resolve, reject) => {
353
- let subscription = null;
354
392
  const handleDeepLink = async event => {
355
- if (subscription) {
356
- subscription.remove();
357
- }
358
- const fullUrl = event.url;
359
- if (fullUrl.startsWith(this.config.appScheme)) {
360
- const responseUrlParams = new URLSearchParams(fullUrl.substring(fullUrl.indexOf('?') + 1));
361
- const errorCode = responseUrlParams.get('errorCode');
362
- const errorMessage = responseUrlParams.get('errorMessage');
363
- if (errorCode) {
364
- return reject(new Error(`Phantom ${signingMethod} Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
365
- }
366
- const responseNonce = responseUrlParams.get('nonce');
367
- const responseData = responseUrlParams.get('data');
368
- if (!responseNonce || !responseData) {
369
- return reject(new Error(`Phantom ${signingMethod}: Invalid response - missing nonce or data.`));
370
- }
371
- const decryptedResult = this.decryptPayload(responseData, responseNonce, this.phantomEncryptionPublicKeyBs58);
372
- if (!decryptedResult) {
373
- return reject(new Error(`Phantom ${signingMethod}: Failed to decrypt response or invalid decrypted data.`));
393
+ try {
394
+ this.cleanupActiveSubscription();
395
+ const fullUrl = event.url;
396
+ if (fullUrl.startsWith(this.config.appScheme)) {
397
+ const responseUrlParams = new URLSearchParams(fullUrl.substring(fullUrl.indexOf('?') + 1));
398
+ const errorCode = responseUrlParams.get('errorCode');
399
+ const errorMessage = responseUrlParams.get('errorMessage');
400
+ if (errorCode) {
401
+ return reject(new Error(`Phantom ${signingMethod} Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
402
+ }
403
+ const responseNonce = responseUrlParams.get('nonce');
404
+ const responseData = responseUrlParams.get('data');
405
+ if (!responseNonce || !responseData) {
406
+ return reject(new Error(`Phantom ${signingMethod}: Invalid response - missing nonce or data.`));
407
+ }
408
+ const decryptedResult = this.decryptPayload(responseData, responseNonce, this.phantomEncryptionPublicKeyBs58);
409
+ if (!decryptedResult) {
410
+ return reject(new Error(`Phantom ${signingMethod}: Failed to decrypt response or invalid decrypted data.`));
411
+ }
412
+ resolve(decryptedResult);
413
+ } else {
414
+ reject(new Error(`Phantom ${signingMethod}: Unexpected redirect URI.`));
374
415
  }
375
- resolve(decryptedResult);
376
- } else {
377
- reject(new Error(`Phantom ${signingMethod}: Unexpected redirect URI.`));
416
+ } catch (error) {
417
+ this.cleanupActiveSubscription();
418
+ reject(error);
378
419
  }
379
420
  };
380
- subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
421
+ const subscription = _reactNative.Linking.addEventListener('url', handleDeepLink);
422
+ this.setActiveSubscription(subscription);
381
423
  _reactNative.Linking.openURL(deeplinkUrl).catch(err => {
382
- if (subscription) {
383
- subscription.remove();
384
- }
424
+ this.cleanupActiveSubscription();
385
425
  reject(new Error(`Failed to open Phantom for ${signingMethod}: ${err.message}. Is it installed?`));
386
426
  });
387
427
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_tweetnacl","_interopRequireDefault","_bs","_buffer","_events","e","__esModule","default","PHANTOM_BASE_URL","PHANTOM_PROVIDER_STORAGE_KEY","SOLANA_SIGNING_METHODS","exports","SOLANA_SIGN_TRANSACTION","SOLANA_SIGN_MESSAGE","SOLANA_SIGN_AND_SEND_TRANSACTION","SOLANA_SIGN_ALL_TRANSACTIONS","isValidSolanaSigningMethod","method","Object","values","includes","PhantomProvider","EventEmitter","currentCluster","sessionToken","userPublicKey","phantomEncryptionPublicKeyBs58","constructor","config","dappEncryptionKeyPair","storage","getUserPublicKey","isConnected","buildUrl","rpcMethod","params","query","URLSearchParams","toString","getRpcMethodName","Error","encryptPayload","payload","phantomPublicKeyBs58ToEncryptFor","phantomPublicKeyBytes","bs58","decode","nonce","nacl","randomBytes","box","nonceLength","payloadBytes","Buffer","from","JSON","stringify","encryptedPayload","secretKey","encode","error","decryptPayload","encryptedDataBs58","nonceBs58","phantomSenderPublicKeyBs58","encryptedDataBytes","nonceBytes","phantomSenderPublicKeyBytes","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","responsePayload","phantom_encryption_public_key","data","decryptedData","public_key","Linking","addEventListener","openURL","catch","err","message","disconnect","clearSession","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/PhantomProvider.ts"],"mappings":"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"}
1
+ {"version":3,"names":["_reactNative","require","_tweetnacl","_interopRequireDefault","_bs","_buffer","_events","e","__esModule","default","PHANTOM_BASE_URL","PHANTOM_PROVIDER_STORAGE_KEY","SOLANA_SIGNING_METHODS","exports","SOLANA_SIGN_TRANSACTION","SOLANA_SIGN_MESSAGE","SOLANA_SIGN_AND_SEND_TRANSACTION","SOLANA_SIGN_ALL_TRANSACTIONS","isValidSolanaSigningMethod","method","Object","values","includes","PhantomProvider","EventEmitter","currentCluster","sessionToken","userPublicKey","phantomEncryptionPublicKeyBs58","activeSubscription","isOperationPending","constructor","config","dappEncryptionKeyPair","storage","destroy","cleanupActiveSubscription","removeAllListeners","remove","setActiveSubscription","subscription","getUserPublicKey","isConnected","buildUrl","rpcMethod","params","query","URLSearchParams","toString","getRpcMethodName","Error","encryptPayload","payload","phantomPublicKeyBs58ToEncryptFor","phantomPublicKeyBytes","bs58","decode","nonce","nacl","randomBytes","box","nonceLength","payloadBytes","Buffer","from","JSON","stringify","encryptedPayload","secretKey","encode","error","decryptPayload","encryptedDataBs58","nonceBs58","phantomSenderPublicKeyBs58","encryptedDataBytes","nonceBytes","phantomSenderPublicKeyBytes","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","handleDeepLink","event","fullUrl","startsWith","responseUrlParams","substring","indexOf","errorCode","get","errorMessage","responsePayload","phantom_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/PhantomProvider.ts"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":""}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createSendTransaction = createSendTransaction;
7
+ var _web = require("@solana/web3.js");
8
+ // import type { Provider } from '@reown/appkit-utils/solana'
9
+
10
+ /**
11
+ * These constants defines the cost of running the program, allowing to calculate the maximum
12
+ * amount of SOL that can be sent in case of cleaning the account and remove the rent exemption error.
13
+ */
14
+ const COMPUTE_BUDGET_CONSTANTS = {
15
+ UNIT_PRICE_MICRO_LAMPORTS: 20000000,
16
+ UNIT_LIMIT: 500
17
+ };
18
+ async function createSendTransaction({
19
+ fromAddress,
20
+ toAddress,
21
+ value,
22
+ connection
23
+ }) {
24
+ const fromPubkey = new _web.PublicKey(fromAddress);
25
+ const toPubkey = new _web.PublicKey(toAddress);
26
+ const lamports = Math.floor(value * _web.LAMPORTS_PER_SOL);
27
+ const {
28
+ blockhash
29
+ } = await connection.getLatestBlockhash();
30
+ const instructions = [_web.ComputeBudgetProgram.setComputeUnitPrice({
31
+ microLamports: COMPUTE_BUDGET_CONSTANTS.UNIT_PRICE_MICRO_LAMPORTS
32
+ }), _web.ComputeBudgetProgram.setComputeUnitLimit({
33
+ units: COMPUTE_BUDGET_CONSTANTS.UNIT_LIMIT
34
+ }), _web.SystemProgram.transfer({
35
+ fromPubkey,
36
+ toPubkey,
37
+ lamports
38
+ })];
39
+ const transaction = new _web.Transaction().add(...instructions);
40
+ transaction.feePayer = fromPubkey;
41
+ transaction.recentBlockhash = blockhash;
42
+ return transaction;
43
+ }
44
+ //# sourceMappingURL=createSendTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_web","require","COMPUTE_BUDGET_CONSTANTS","UNIT_PRICE_MICRO_LAMPORTS","UNIT_LIMIT","createSendTransaction","fromAddress","toAddress","value","connection","fromPubkey","PublicKey","toPubkey","lamports","Math","floor","LAMPORTS_PER_SOL","blockhash","getLatestBlockhash","instructions","ComputeBudgetProgram","setComputeUnitPrice","microLamports","setComputeUnitLimit","units","SystemProgram","transfer","transaction","Transaction","add","feePayer","recentBlockhash"],"sourceRoot":"../../../src","sources":["utils/createSendTransaction.ts"],"mappings":";;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AASA;;AASA;AACA;AACA;AACA;AACA,MAAMC,wBAAwB,GAAG;EAC/BC,yBAAyB,EAAE,QAAQ;EACnCC,UAAU,EAAE;AACd,CAAC;AAEM,eAAeC,qBAAqBA,CAAC;EAC1CC,WAAW;EACXC,SAAS;EACTC,KAAK;EACLC;AACmB,CAAC,EAAwB;EAC5C,MAAMC,UAAU,GAAG,IAAIC,cAAS,CAACL,WAAW,CAAC;EAC7C,MAAMM,QAAQ,GAAG,IAAID,cAAS,CAACJ,SAAS,CAAC;EACzC,MAAMM,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAACP,KAAK,GAAGQ,qBAAgB,CAAC;EAErD,MAAM;IAAEC;EAAU,CAAC,GAAG,MAAMR,UAAU,CAACS,kBAAkB,CAAC,CAAC;EAE3D,MAAMC,YAAY,GAAG,CACnBC,yBAAoB,CAACC,mBAAmB,CAAC;IACvCC,aAAa,EAAEpB,wBAAwB,CAACC;EAC1C,CAAC,CAAC,EACFiB,yBAAoB,CAACG,mBAAmB,CAAC;IAAEC,KAAK,EAAEtB,wBAAwB,CAACE;EAAW,CAAC,CAAC,EACxFqB,kBAAa,CAACC,QAAQ,CAAC;IACrBhB,UAAU;IACVE,QAAQ;IACRC;EACF,CAAC,CAAC,CACH;EAED,MAAMc,WAAW,GAAG,IAAIC,gBAAW,CAAC,CAAC,CAACC,GAAG,CAAC,GAAGV,YAAY,CAAC;EAC1DQ,WAAW,CAACG,QAAQ,GAAGpB,UAAU;EACjCiB,WAAW,CAACI,eAAe,GAAGd,SAAS;EAEvC,OAAOU,WAAW;AACpB","ignoreList":[]}
@@ -1,11 +1,16 @@
1
+ "use strict";
2
+
1
3
  import { SolanaBaseAdapter } from '@reown/appkit-common-react-native';
2
4
  import { getSolanaNativeBalance, getSolanaTokenBalance } from './helpers';
5
+ import { Connection, Transaction, VersionedTransaction } from '@solana/web3.js';
6
+ import base58 from 'bs58';
7
+ import { createSendTransaction } from './utils/createSendTransaction';
3
8
  export class SolanaAdapter extends SolanaBaseAdapter {
4
9
  static supportedNamespace = 'solana';
5
- constructor(configParams) {
10
+ constructor() {
6
11
  super({
7
- projectId: configParams.projectId,
8
- supportedNamespace: SolanaAdapter.supportedNamespace
12
+ supportedNamespace: SolanaAdapter.supportedNamespace,
13
+ adapterType: 'solana'
9
14
  });
10
15
  }
11
16
  async getBalance(params) {
@@ -58,6 +63,120 @@ export class SolanaAdapter extends SolanaBaseAdapter {
58
63
  };
59
64
  }
60
65
  }
66
+ async signTransaction(transaction, network) {
67
+ if (!this.connector) {
68
+ throw new Error('SolanaAdapter:signTransaction - no active connector');
69
+ }
70
+ if (!network) {
71
+ throw new Error('SolanaAdapter:signTransaction - network is undefined');
72
+ }
73
+ const provider = this.connector.getProvider();
74
+ if (!provider) {
75
+ throw new Error('SolanaAdapter:signTransaction - provider is undefined');
76
+ }
77
+ try {
78
+ // Serialize transaction to base64 (following WalletConnect standard)
79
+ const serializedTransaction = Buffer.from(new Uint8Array(transaction.serialize({
80
+ verifySignatures: false
81
+ }))).toString('base64');
82
+ const result = await provider.request({
83
+ method: 'solana_signTransaction',
84
+ params: {
85
+ transaction: serializedTransaction,
86
+ pubkey: this.getAccounts()?.[0]?.split(':')[2] || ''
87
+ }
88
+ }, network.caipNetworkId);
89
+
90
+ // Handle different response formats
91
+ if ('signature' in result && result.signature) {
92
+ // Old RPC response format - add signature to transaction
93
+ const decoded = base58.decode(result.signature);
94
+ if (transaction instanceof Transaction && transaction.feePayer) {
95
+ transaction.addSignature(transaction.feePayer, Buffer.from(decoded));
96
+ }
97
+ return transaction;
98
+ }
99
+ if ('transaction' in result && result.transaction) {
100
+ // New response format - deserialize the signed transaction
101
+ const decodedTransaction = Buffer.from(result.transaction, 'base64');
102
+ if (transaction instanceof VersionedTransaction) {
103
+ return VersionedTransaction.deserialize(new Uint8Array(decodedTransaction));
104
+ }
105
+ return Transaction.from(decodedTransaction);
106
+ }
107
+ throw new Error('SolanaAdapter:signTransaction - invalid response format');
108
+ } catch (error) {
109
+ if (error instanceof Error) {
110
+ throw new Error(`SolanaAdapter:signTransaction - ${error.message}`);
111
+ }
112
+ throw new Error('SolanaAdapter:signTransaction - unknown error occurred');
113
+ }
114
+ }
115
+ async sendTransaction(data) {
116
+ const {
117
+ fromAddress,
118
+ toAddress,
119
+ amount,
120
+ network,
121
+ rpcUrl
122
+ } = data;
123
+ if (!this.connector) {
124
+ throw new Error('SolanaAdapter:sendTransaction - no active connector');
125
+ }
126
+ const provider = this.connector.getProvider();
127
+ if (!provider) {
128
+ throw new Error('SolanaAdapter:sendTransaction - provider is undefined');
129
+ }
130
+ if (!network) {
131
+ throw new Error('SolanaAdapter:sendTransaction - network is undefined');
132
+ }
133
+ if (!fromAddress) {
134
+ throw new Error('SolanaAdapter:sendTransaction - fromAddress is undefined');
135
+ }
136
+ if (!toAddress) {
137
+ throw new Error('SolanaAdapter:sendTransaction - toAddress is undefined');
138
+ }
139
+ if (!amount || amount <= 0) {
140
+ throw new Error('SolanaAdapter:sendTransaction - amount must be greater than 0');
141
+ }
142
+ try {
143
+ // Determine RPC URL
144
+ let connectionRpcUrl = rpcUrl;
145
+ if (!connectionRpcUrl && network) {
146
+ connectionRpcUrl = network.rpcUrls?.default?.http?.[0];
147
+ }
148
+ if (!connectionRpcUrl) {
149
+ throw new Error('SolanaAdapter:sendTransaction - no RPC URL available');
150
+ }
151
+
152
+ // Create connection
153
+ const connection = new Connection(connectionRpcUrl, 'confirmed');
154
+ const transaction = await createSendTransaction({
155
+ connection,
156
+ fromAddress,
157
+ toAddress,
158
+ value: amount
159
+ });
160
+
161
+ // Sign the transaction
162
+ const signedTransaction = await this.signTransaction(transaction, network);
163
+
164
+ // Send the signed transaction
165
+ const signature = await connection.sendRawTransaction(signedTransaction.serialize(), {
166
+ skipPreflight: false,
167
+ preflightCommitment: 'confirmed'
168
+ });
169
+ if (!signature) {
170
+ throw new Error('SolanaAdapter:sendTransaction - no signature returned');
171
+ }
172
+ return signature;
173
+ } catch (error) {
174
+ if (error instanceof Error) {
175
+ throw new Error(`SolanaAdapter:sendTransaction - ${error.message}`);
176
+ }
177
+ throw new Error('SolanaAdapter:sendTransaction - unknown error occurred');
178
+ }
179
+ }
61
180
  async switchNetwork(network) {
62
181
  if (!this.connector) throw new Error('No active connector');
63
182
  const provider = this.connector.getProvider();
@@ -1 +1 @@
1
- {"version":3,"names":["SolanaBaseAdapter","getSolanaNativeBalance","getSolanaTokenBalance","SolanaAdapter","supportedNamespace","constructor","configParams","projectId","getBalance","params","network","address","tokens","connector","Error","balanceAddress","getAccounts","find","account","includes","id","toString","amount","symbol","rpcUrl","rpcUrls","default","http","base58Address","split","token","caipNetworkId","balance","emit","error","switchNetwork","provider","getProvider","switchError","namespaces","getNamespaces","getSupportedNamespace","accounts","disconnect"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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"}
1
+ {"version":3,"names":["SolanaBaseAdapter","getSolanaNativeBalance","getSolanaTokenBalance","Connection","Transaction","VersionedTransaction","base58","createSendTransaction","SolanaAdapter","supportedNamespace","constructor","adapterType","getBalance","params","network","address","tokens","connector","Error","balanceAddress","getAccounts","find","account","includes","id","toString","amount","symbol","rpcUrl","rpcUrls","default","http","base58Address","split","token","caipNetworkId","balance","emit","error","signTransaction","transaction","provider","getProvider","serializedTransaction","Buffer","from","Uint8Array","serialize","verifySignatures","result","request","method","pubkey","signature","decoded","decode","feePayer","addSignature","decodedTransaction","deserialize","message","sendTransaction","data","fromAddress","toAddress","connectionRpcUrl","connection","value","signedTransaction","sendRawTransaction","skipPreflight","preflightCommitment","switchNetwork","switchError","namespaces","getNamespaces","getSupportedNamespace","accounts","disconnect"],"sourceRoot":"../../src","sources":["adapter.ts"],"mappings":"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","ignoreList":[]}