@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.
- package/lib/commonjs/adapter.js +121 -3
- package/lib/commonjs/adapter.js.map +1 -1
- package/lib/commonjs/connectors/PhantomConnector.js +28 -24
- package/lib/commonjs/connectors/PhantomConnector.js.map +1 -1
- package/lib/commonjs/helpers.js +0 -1
- package/lib/commonjs/helpers.js.map +1 -1
- package/lib/commonjs/index.js +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/providers/PhantomProvider.js +124 -84
- package/lib/commonjs/providers/PhantomProvider.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/createSendTransaction.js +44 -0
- package/lib/commonjs/utils/createSendTransaction.js.map +1 -0
- package/lib/module/adapter.js +122 -3
- package/lib/module/adapter.js.map +1 -1
- package/lib/module/connectors/PhantomConnector.js +31 -25
- package/lib/module/connectors/PhantomConnector.js.map +1 -1
- package/lib/module/helpers.js +2 -1
- package/lib/module/helpers.js.map +1 -1
- package/lib/module/index.js +6 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/providers/PhantomProvider.js +126 -84
- package/lib/module/providers/PhantomProvider.js.map +1 -1
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/createSendTransaction.js +41 -0
- package/lib/module/utils/createSendTransaction.js.map +1 -0
- package/lib/typescript/adapter.d.ts +11 -3
- package/lib/typescript/adapter.d.ts.map +1 -1
- package/lib/typescript/connectors/PhantomConnector.d.ts +2 -1
- package/lib/typescript/connectors/PhantomConnector.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/providers/PhantomProvider.d.ts +14 -0
- package/lib/typescript/providers/PhantomProvider.d.ts.map +1 -1
- package/lib/typescript/utils/createSendTransaction.d.ts +10 -0
- package/lib/typescript/utils/createSendTransaction.d.ts.map +1 -0
- package/package.json +9 -3
- package/src/adapter.ts +152 -3
- package/src/connectors/PhantomConnector.ts +39 -38
- package/src/index.ts +4 -4
- package/src/providers/PhantomProvider.ts +165 -113
- 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,
|
|
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
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
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
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
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
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
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
|
-
|
|
376
|
-
|
|
377
|
-
reject(
|
|
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
|
-
|
|
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":[]}
|
package/lib/module/adapter.js
CHANGED
|
@@ -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(
|
|
10
|
+
constructor() {
|
|
6
11
|
super({
|
|
7
|
-
|
|
8
|
-
|
|
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","
|
|
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":[]}
|