@reown/appkit-solana-react-native 2.0.0-alpha.2 → 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 +1 -2
- package/lib/commonjs/adapter.js.map +1 -1
- package/lib/commonjs/connectors/PhantomConnector.js +20 -13
- package/lib/commonjs/connectors/PhantomConnector.js.map +1 -1
- package/lib/commonjs/providers/PhantomProvider.js +121 -81
- package/lib/commonjs/providers/PhantomProvider.js.map +1 -1
- package/lib/module/adapter.js +1 -2
- package/lib/module/adapter.js.map +1 -1
- package/lib/module/connectors/PhantomConnector.js +20 -13
- package/lib/module/connectors/PhantomConnector.js.map +1 -1
- package/lib/module/providers/PhantomProvider.js +121 -81
- package/lib/module/providers/PhantomProvider.js.map +1 -1
- package/lib/typescript/adapter.d.ts +1 -3
- package/lib/typescript/adapter.d.ts.map +1 -1
- package/lib/typescript/connectors/PhantomConnector.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/package.json +2 -2
- package/src/adapter.ts +1 -2
- package/src/connectors/PhantomConnector.ts +26 -26
- package/src/providers/PhantomProvider.ts +162 -112
|
@@ -4,10 +4,10 @@ import { WalletConnector, solana, solanaDevnet, solanaTestnet, ConstantsUtil } f
|
|
|
4
4
|
import nacl from 'tweetnacl';
|
|
5
5
|
import bs58 from 'bs58';
|
|
6
6
|
import { PhantomProvider, SOLANA_SIGNING_METHODS } from '../providers/PhantomProvider';
|
|
7
|
-
const
|
|
8
|
-
'mainnet-beta': solana.
|
|
9
|
-
'testnet': solanaTestnet.
|
|
10
|
-
'devnet': solanaDevnet.
|
|
7
|
+
const SOLANA_CLUSTER_TO_CHAIN_ID = {
|
|
8
|
+
'mainnet-beta': solana.caipNetworkId,
|
|
9
|
+
'testnet': solanaTestnet.caipNetworkId,
|
|
10
|
+
'devnet': solanaDevnet.caipNetworkId
|
|
11
11
|
};
|
|
12
12
|
const PHANTOM_CONNECTOR_STORAGE_KEY = '@appkit/phantom-connector-data';
|
|
13
13
|
const DAPP_KEYPAIR_STORAGE_KEY = '@appkit/phantom-dapp-secret-key';
|
|
@@ -60,18 +60,20 @@ export class PhantomConnector extends WalletConnector {
|
|
|
60
60
|
if (this.isConnected()) {
|
|
61
61
|
return this.namespaces;
|
|
62
62
|
}
|
|
63
|
-
const defaultChain = opts?.defaultChain?.split(':')?.[0] === 'solana' ? opts?.defaultChain
|
|
64
|
-
const requestedCluster = this.config.cluster ?? Object.keys(
|
|
63
|
+
const defaultChain = opts?.defaultChain?.split(':')?.[0] === 'solana' ? opts?.defaultChain : opts?.namespaces?.['solana']?.chains?.[0];
|
|
64
|
+
const requestedCluster = this.config.cluster ?? Object.keys(SOLANA_CLUSTER_TO_CHAIN_ID).find(key => SOLANA_CLUSTER_TO_CHAIN_ID[key] === defaultChain);
|
|
65
65
|
try {
|
|
66
66
|
const connectResult = await this.getProvider().connect({
|
|
67
67
|
cluster: requestedCluster
|
|
68
68
|
});
|
|
69
|
-
const
|
|
70
|
-
if (!
|
|
69
|
+
const solanaChainId = SOLANA_CLUSTER_TO_CHAIN_ID[connectResult.cluster];
|
|
70
|
+
if (!solanaChainId) {
|
|
71
71
|
throw new Error(`Phantom Connect: Internal - Unknown cluster mapping for ${connectResult.cluster}`);
|
|
72
72
|
}
|
|
73
|
-
this.currentCaipNetworkId =
|
|
74
|
-
this.wallet =
|
|
73
|
+
this.currentCaipNetworkId = solanaChainId;
|
|
74
|
+
this.wallet = {
|
|
75
|
+
name: ConstantsUtil.PHANTOM_CUSTOM_WALLET.name
|
|
76
|
+
};
|
|
75
77
|
const userPublicKey = this.getProvider().getUserPublicKey();
|
|
76
78
|
if (!userPublicKey) {
|
|
77
79
|
throw new Error('Phantom Connect: Provider failed to return a user public key.');
|
|
@@ -101,6 +103,11 @@ export class PhantomConnector extends WalletConnector {
|
|
|
101
103
|
} catch (error) {
|
|
102
104
|
// console.warn(`PhantomConnector: Error during provider disconnect: ${error.message}. Proceeding with local clear.`);
|
|
103
105
|
}
|
|
106
|
+
|
|
107
|
+
// Cleanup provider resources
|
|
108
|
+
if (this.provider) {
|
|
109
|
+
this.provider.destroy();
|
|
110
|
+
}
|
|
104
111
|
await this.clearSession();
|
|
105
112
|
}
|
|
106
113
|
async clearSession() {
|
|
@@ -147,11 +154,11 @@ export class PhantomConnector extends WalletConnector {
|
|
|
147
154
|
return this.getProvider().isConnected() && !!this.getProvider().getUserPublicKey();
|
|
148
155
|
}
|
|
149
156
|
async switchNetwork(network) {
|
|
150
|
-
const targetClusterName = Object.keys(
|
|
157
|
+
const targetClusterName = Object.keys(SOLANA_CLUSTER_TO_CHAIN_ID).find(key => SOLANA_CLUSTER_TO_CHAIN_ID[key] === network.caipNetworkId);
|
|
151
158
|
if (!targetClusterName) {
|
|
152
159
|
throw new Error(`Cannot switch to unsupported network ID: ${network.id}`);
|
|
153
160
|
}
|
|
154
|
-
const currentClusterName = Object.keys(
|
|
161
|
+
const currentClusterName = Object.keys(SOLANA_CLUSTER_TO_CHAIN_ID).find(key => SOLANA_CLUSTER_TO_CHAIN_ID[key] === this.currentCaipNetworkId);
|
|
155
162
|
if (targetClusterName === currentClusterName && this.isConnected()) {
|
|
156
163
|
return Promise.resolve();
|
|
157
164
|
}
|
|
@@ -161,7 +168,7 @@ export class PhantomConnector extends WalletConnector {
|
|
|
161
168
|
|
|
162
169
|
// Create a temporary options object to guide the new connection
|
|
163
170
|
const tempConnectOpts = {
|
|
164
|
-
defaultChain:
|
|
171
|
+
defaultChain: SOLANA_CLUSTER_TO_CHAIN_ID[targetClusterName]
|
|
165
172
|
};
|
|
166
173
|
|
|
167
174
|
// Attempt to connect to the new cluster
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WalletConnector","solana","solanaDevnet","solanaTestnet","ConstantsUtil","nacl","bs58","PhantomProvider","SOLANA_SIGNING_METHODS","
|
|
1
|
+
{"version":3,"names":["WalletConnector","solana","solanaDevnet","solanaTestnet","ConstantsUtil","nacl","bs58","PhantomProvider","SOLANA_SIGNING_METHODS","SOLANA_CLUSTER_TO_CHAIN_ID","caipNetworkId","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","solanaChainId","wallet","name","PHANTOM_CUSTOM_WALLET","userPublicKey","getUserPublicKey","caipAddress","accounts","methods","values","events","saveSession","clearSession","destroy","undefined","clearSessionStorage","getNamespaces","getChainId","namespace","getProperties","properties","getWalletInfo","switchNetwork","network","targetClusterName","id","currentClusterName","Promise","resolve","tempConnectOpts","emit","providerSession","connectorData","removeItem"],"sourceRoot":"../../../src","sources":["connectors/PhantomConnector.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -21,12 +21,47 @@ export class PhantomProvider extends EventEmitter {
|
|
|
21
21
|
sessionToken = null;
|
|
22
22
|
userPublicKey = null;
|
|
23
23
|
phantomEncryptionPublicKeyBs58 = null;
|
|
24
|
+
|
|
25
|
+
// Single subscription management - deep links are sequential by nature
|
|
26
|
+
activeSubscription = null;
|
|
27
|
+
isOperationPending = false;
|
|
24
28
|
constructor(config) {
|
|
25
29
|
super();
|
|
26
30
|
this.config = config;
|
|
27
31
|
this.dappEncryptionKeyPair = config.dappEncryptionKeyPair;
|
|
28
32
|
this.storage = config.storage;
|
|
29
33
|
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Cleanup method to be called when the provider is destroyed
|
|
37
|
+
*/
|
|
38
|
+
destroy() {
|
|
39
|
+
this.cleanupActiveSubscription();
|
|
40
|
+
this.removeAllListeners();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Safely cleanup the active subscription
|
|
45
|
+
*/
|
|
46
|
+
cleanupActiveSubscription() {
|
|
47
|
+
if (this.activeSubscription) {
|
|
48
|
+
this.activeSubscription.remove();
|
|
49
|
+
this.activeSubscription = null;
|
|
50
|
+
}
|
|
51
|
+
this.isOperationPending = false;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Safely set a new subscription, ensuring no operation is pending
|
|
56
|
+
*/
|
|
57
|
+
setActiveSubscription(subscription) {
|
|
58
|
+
// If there's already a pending operation, reject it
|
|
59
|
+
if (this.isOperationPending) {
|
|
60
|
+
this.cleanupActiveSubscription();
|
|
61
|
+
}
|
|
62
|
+
this.activeSubscription = subscription;
|
|
63
|
+
this.isOperationPending = true;
|
|
64
|
+
}
|
|
30
65
|
getUserPublicKey() {
|
|
31
66
|
return this.userPublicKey;
|
|
32
67
|
}
|
|
@@ -132,52 +167,53 @@ export class PhantomProvider extends EventEmitter {
|
|
|
132
167
|
};
|
|
133
168
|
const url = this.buildUrl('connect', connectDeeplinkParams);
|
|
134
169
|
return new Promise((resolve, reject) => {
|
|
135
|
-
let subscription = null;
|
|
136
170
|
const handleDeepLink = async event => {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
this.phantomEncryptionPublicKeyBs58 = responsePayload.phantom_encryption_public_key;
|
|
171
|
+
try {
|
|
172
|
+
this.cleanupActiveSubscription();
|
|
173
|
+
const fullUrl = event.url;
|
|
174
|
+
if (fullUrl.startsWith(this.config.appScheme)) {
|
|
175
|
+
const responseUrlParams = new URLSearchParams(fullUrl.substring(fullUrl.indexOf('?') + 1));
|
|
176
|
+
const errorCode = responseUrlParams.get('errorCode');
|
|
177
|
+
const errorMessage = responseUrlParams.get('errorMessage');
|
|
178
|
+
if (errorCode) {
|
|
179
|
+
return reject(new Error(`Phantom Connection Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
|
|
180
|
+
}
|
|
181
|
+
const responsePayload = {
|
|
182
|
+
phantom_encryption_public_key: responseUrlParams.get('phantom_encryption_public_key'),
|
|
183
|
+
nonce: responseUrlParams.get('nonce'),
|
|
184
|
+
data: responseUrlParams.get('data')
|
|
185
|
+
};
|
|
186
|
+
if (!responsePayload.phantom_encryption_public_key || !responsePayload.nonce || !responsePayload.data) {
|
|
187
|
+
return reject(new Error('Phantom Connect: Invalid response - missing parameters.'));
|
|
188
|
+
}
|
|
189
|
+
const decryptedData = this.decryptPayload(responsePayload.data, responsePayload.nonce, responsePayload.phantom_encryption_public_key);
|
|
190
|
+
if (!decryptedData || !decryptedData.public_key || !decryptedData.session) {
|
|
191
|
+
return reject(new Error('Phantom Connect: Failed to decrypt or invalid decrypted data.'));
|
|
192
|
+
}
|
|
193
|
+
this.userPublicKey = decryptedData.public_key;
|
|
194
|
+
this.sessionToken = decryptedData.session;
|
|
195
|
+
this.phantomEncryptionPublicKeyBs58 = responsePayload.phantom_encryption_public_key;
|
|
163
196
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
197
|
+
// Save session on successful connect
|
|
198
|
+
this.saveSession();
|
|
199
|
+
resolve({
|
|
200
|
+
userPublicKey: this.userPublicKey,
|
|
201
|
+
sessionToken: this.sessionToken,
|
|
202
|
+
phantomEncryptionPublicKeyBs58: this.phantomEncryptionPublicKeyBs58,
|
|
203
|
+
cluster
|
|
204
|
+
});
|
|
205
|
+
} else {
|
|
206
|
+
reject(new Error('Phantom Connect: Unexpected redirect URI.'));
|
|
207
|
+
}
|
|
208
|
+
} catch (error) {
|
|
209
|
+
this.cleanupActiveSubscription();
|
|
210
|
+
reject(error);
|
|
174
211
|
}
|
|
175
212
|
};
|
|
176
|
-
subscription = Linking.addEventListener('url', handleDeepLink);
|
|
213
|
+
const subscription = Linking.addEventListener('url', handleDeepLink);
|
|
214
|
+
this.setActiveSubscription(subscription);
|
|
177
215
|
Linking.openURL(url).catch(err => {
|
|
178
|
-
|
|
179
|
-
subscription.remove();
|
|
180
|
-
}
|
|
216
|
+
this.cleanupActiveSubscription();
|
|
181
217
|
reject(new Error(`Failed to open Phantom wallet: ${err.message}. Is it installed?`));
|
|
182
218
|
});
|
|
183
219
|
});
|
|
@@ -206,24 +242,26 @@ export class PhantomProvider extends EventEmitter {
|
|
|
206
242
|
};
|
|
207
243
|
const url = this.buildUrl('disconnect', disconnectDeeplinkParams);
|
|
208
244
|
return new Promise((resolve, reject) => {
|
|
209
|
-
let subscription = null;
|
|
210
245
|
const handleDeepLink = event => {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
246
|
+
try {
|
|
247
|
+
this.cleanupActiveSubscription();
|
|
248
|
+
if (event.url.startsWith(this.config.appScheme)) {
|
|
249
|
+
this.clearSession();
|
|
250
|
+
resolve();
|
|
251
|
+
} else {
|
|
252
|
+
this.clearSession();
|
|
253
|
+
reject(new Error('Phantom Disconnect: Unexpected redirect URI.'));
|
|
254
|
+
}
|
|
255
|
+
} catch (error) {
|
|
256
|
+
this.cleanupActiveSubscription();
|
|
218
257
|
this.clearSession();
|
|
219
|
-
reject(
|
|
258
|
+
reject(error);
|
|
220
259
|
}
|
|
221
260
|
};
|
|
222
|
-
subscription = Linking.addEventListener('url', handleDeepLink);
|
|
261
|
+
const subscription = Linking.addEventListener('url', handleDeepLink);
|
|
262
|
+
this.setActiveSubscription(subscription);
|
|
223
263
|
Linking.openURL(url).catch(err => {
|
|
224
|
-
|
|
225
|
-
subscription.remove();
|
|
226
|
-
}
|
|
264
|
+
this.cleanupActiveSubscription();
|
|
227
265
|
this.clearSession();
|
|
228
266
|
reject(new Error(`Failed to open Phantom for disconnection: ${err.message}.`));
|
|
229
267
|
});
|
|
@@ -233,6 +271,7 @@ export class PhantomProvider extends EventEmitter {
|
|
|
233
271
|
this.sessionToken = null;
|
|
234
272
|
this.userPublicKey = null;
|
|
235
273
|
this.phantomEncryptionPublicKeyBs58 = null;
|
|
274
|
+
this.cleanupActiveSubscription();
|
|
236
275
|
await this.clearSessionStorage();
|
|
237
276
|
}
|
|
238
277
|
setSession(session) {
|
|
@@ -345,38 +384,39 @@ export class PhantomProvider extends EventEmitter {
|
|
|
345
384
|
}
|
|
346
385
|
}
|
|
347
386
|
return new Promise((resolve, reject) => {
|
|
348
|
-
let subscription = null;
|
|
349
387
|
const handleDeepLink = async event => {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
388
|
+
try {
|
|
389
|
+
this.cleanupActiveSubscription();
|
|
390
|
+
const fullUrl = event.url;
|
|
391
|
+
if (fullUrl.startsWith(this.config.appScheme)) {
|
|
392
|
+
const responseUrlParams = new URLSearchParams(fullUrl.substring(fullUrl.indexOf('?') + 1));
|
|
393
|
+
const errorCode = responseUrlParams.get('errorCode');
|
|
394
|
+
const errorMessage = responseUrlParams.get('errorMessage');
|
|
395
|
+
if (errorCode) {
|
|
396
|
+
return reject(new Error(`Phantom ${signingMethod} Failed: ${errorMessage || 'Unknown error'} (Code: ${errorCode})`));
|
|
397
|
+
}
|
|
398
|
+
const responseNonce = responseUrlParams.get('nonce');
|
|
399
|
+
const responseData = responseUrlParams.get('data');
|
|
400
|
+
if (!responseNonce || !responseData) {
|
|
401
|
+
return reject(new Error(`Phantom ${signingMethod}: Invalid response - missing nonce or data.`));
|
|
402
|
+
}
|
|
403
|
+
const decryptedResult = this.decryptPayload(responseData, responseNonce, this.phantomEncryptionPublicKeyBs58);
|
|
404
|
+
if (!decryptedResult) {
|
|
405
|
+
return reject(new Error(`Phantom ${signingMethod}: Failed to decrypt response or invalid decrypted data.`));
|
|
406
|
+
}
|
|
407
|
+
resolve(decryptedResult);
|
|
408
|
+
} else {
|
|
409
|
+
reject(new Error(`Phantom ${signingMethod}: Unexpected redirect URI.`));
|
|
369
410
|
}
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
reject(
|
|
411
|
+
} catch (error) {
|
|
412
|
+
this.cleanupActiveSubscription();
|
|
413
|
+
reject(error);
|
|
373
414
|
}
|
|
374
415
|
};
|
|
375
|
-
subscription = Linking.addEventListener('url', handleDeepLink);
|
|
416
|
+
const subscription = Linking.addEventListener('url', handleDeepLink);
|
|
417
|
+
this.setActiveSubscription(subscription);
|
|
376
418
|
Linking.openURL(deeplinkUrl).catch(err => {
|
|
377
|
-
|
|
378
|
-
subscription.remove();
|
|
379
|
-
}
|
|
419
|
+
this.cleanupActiveSubscription();
|
|
380
420
|
reject(new Error(`Failed to open Phantom for ${signingMethod}: ${err.message}. Is it installed?`));
|
|
381
421
|
});
|
|
382
422
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Linking","nacl","bs58","Buffer","EventEmitter","PHANTOM_BASE_URL","PHANTOM_PROVIDER_STORAGE_KEY","SOLANA_SIGNING_METHODS","SOLANA_SIGN_TRANSACTION","SOLANA_SIGN_MESSAGE","SOLANA_SIGN_AND_SEND_TRANSACTION","SOLANA_SIGN_ALL_TRANSACTIONS","isValidSolanaSigningMethod","method","Object","values","includes","PhantomProvider","currentCluster","sessionToken","userPublicKey","phantomEncryptionPublicKeyBs58","constructor","config","dappEncryptionKeyPair","storage","getUserPublicKey","isConnected","buildUrl","rpcMethod","params","query","URLSearchParams","toString","getRpcMethodName","Error","encryptPayload","payload","phantomPublicKeyBs58ToEncryptFor","phantomPublicKeyBytes","decode","nonce","randomBytes","box","nonceLength","payloadBytes","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","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","e","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
|
+
{"version":3,"names":["Linking","nacl","bs58","Buffer","EventEmitter","PHANTOM_BASE_URL","PHANTOM_PROVIDER_STORAGE_KEY","SOLANA_SIGNING_METHODS","SOLANA_SIGN_TRANSACTION","SOLANA_SIGN_MESSAGE","SOLANA_SIGN_AND_SEND_TRANSACTION","SOLANA_SIGN_ALL_TRANSACTIONS","isValidSolanaSigningMethod","method","Object","values","includes","PhantomProvider","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","decode","nonce","randomBytes","box","nonceLength","payloadBytes","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","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","e","display","encryptedPayloadData","signMsgDeeplinkQueryPayload","Array","isArray","transactions","every","t","signAllTxDeeplinkParams","responseNonce","responseData","decryptedResult"],"sourceRoot":"../../../src","sources":["providers/PhantomProvider.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,9 +9,7 @@ export interface SolanaTransactionData {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class SolanaAdapter extends SolanaBaseAdapter {
|
|
11
11
|
private static supportedNamespace;
|
|
12
|
-
constructor(
|
|
13
|
-
projectId: string;
|
|
14
|
-
});
|
|
12
|
+
constructor();
|
|
15
13
|
getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
|
|
16
14
|
signTransaction<T extends Transaction | VersionedTransaction>(transaction: T, network?: AppKitNetwork): Promise<T>;
|
|
17
15
|
sendTransaction(data: SolanaTransactionData): Promise<string | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAc,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,SAAQ,iBAAiB;IAClD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA4B
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAc,WAAW,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,SAAQ,iBAAiB;IAClD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAA4B;;IASvD,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8CjE,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAChE,WAAW,EAAE,CAAC,EACd,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,CAAC,CAAC;IAiEP,eAAe,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAsEpE,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1D,WAAW,IAAI,WAAW,EAAE,GAAG,SAAS;IAOxC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,qBAAqB,IAAI,cAAc;CAGxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhantomConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/PhantomConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,KAAK,oBAAoB,EAKzB,KAAK,oBAAoB,EAE1B,MAAM,mCAAmC,CAAC;AAI3C,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAEV,sBAAsB,EAGvB,MAAM,UAAU,CAAC;AAWlB,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;
|
|
1
|
+
{"version":3,"file":"PhantomConnector.d.ts","sourceRoot":"","sources":["../../../src/connectors/PhantomConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EAEf,KAAK,oBAAoB,EAKzB,KAAK,oBAAoB,EAE1B,MAAM,mCAAmC,CAAC;AAI3C,OAAO,EAAE,eAAe,EAA0B,MAAM,8BAA8B,CAAC;AACvF,OAAO,KAAK,EAEV,sBAAsB,EAGvB,MAAM,UAAU,CAAC;AAWlB,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,oBAAoB,CAA8B;IAC1D,OAAO,CAAC,qBAAqB,CAAC,CAAkB;IAEhD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAA4B;gBAE3D,MAAM,CAAC,EAAE,sBAAsB;IAK5B,IAAI,CAAC,GAAG,EAAE,oBAAoB;YAuB/B,iBAAiB;IAqBhB,OAAO,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAuD/D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAiB5B,YAAY;IAOjB,WAAW,IAAI,eAAe;IAQvC,OAAO,CAAC,UAAU;IAQT,aAAa,IAAI,UAAU;IAQ3B,UAAU,CAAC,SAAS,EAAE,cAAc,GAAG,aAAa,GAAG,SAAS;IAQhE,aAAa,IAAI,oBAAoB,GAAG,SAAS;IAIjD,aAAa,IAAI,UAAU,GAAG,SAAS;IAQhD,WAAW,IAAI,OAAO;IAKP,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CpD,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;YAuCnC,WAAW;YAmBX,mBAAmB;CAOlC"}
|
|
@@ -16,7 +16,21 @@ export declare class PhantomProvider extends EventEmitter implements Provider {
|
|
|
16
16
|
private sessionToken;
|
|
17
17
|
private userPublicKey;
|
|
18
18
|
private phantomEncryptionPublicKeyBs58;
|
|
19
|
+
private activeSubscription;
|
|
20
|
+
private isOperationPending;
|
|
19
21
|
constructor(config: PhantomProviderConfig);
|
|
22
|
+
/**
|
|
23
|
+
* Cleanup method to be called when the provider is destroyed
|
|
24
|
+
*/
|
|
25
|
+
destroy(): void;
|
|
26
|
+
/**
|
|
27
|
+
* Safely cleanup the active subscription
|
|
28
|
+
*/
|
|
29
|
+
private cleanupActiveSubscription;
|
|
30
|
+
/**
|
|
31
|
+
* Safely set a new subscription, ensuring no operation is pending
|
|
32
|
+
*/
|
|
33
|
+
private setActiveSubscription;
|
|
20
34
|
getUserPublicKey(): string | null;
|
|
21
35
|
isConnected(): boolean;
|
|
22
36
|
private buildUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhantomProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/PhantomProvider.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EAEd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EAYd,cAAc,EACf,MAAM,UAAU,CAAC;AAClB,OAAO,YAAY,MAAM,QAAQ,CAAC;AAKlC,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAQX,qBAAa,eAAgB,SAAQ,YAAa,YAAW,QAAQ;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,cAAc,CAAkC;IAExD,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,8BAA8B,CAAuB;
|
|
1
|
+
{"version":3,"file":"PhantomProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/PhantomProvider.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,aAAa,EAEd,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EAYd,cAAc,EACf,MAAM,UAAU,CAAC;AAClB,OAAO,YAAY,MAAM,QAAQ,CAAC;AAKlC,eAAO,MAAM,sBAAsB;;;;;CAKzB,CAAC;AAQX,qBAAa,eAAgB,SAAQ,YAAa,YAAW,QAAQ;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,cAAc,CAAkC;IAExD,OAAO,CAAC,OAAO,CAAU;IAEzB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,8BAA8B,CAAuB;IAG7D,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,EAAE,qBAAqB;IAOzC;;OAEG;IACI,OAAO,IAAI,IAAI;IAKtB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAS7B,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAIjC,WAAW,IAAI,OAAO;IAItB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;IA2BtB,OAAO,CAAC,cAAc;IAyBT,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;YAkBjC,WAAW;YAiBX,mBAAmB;IAQpB,OAAO,CAAC,CAAC,GAAG,oBAAoB,EAAE,MAAM,CAAC,EAAE;QACtD,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,GAAG,OAAO,CAAC,CAAC,CAAC;IAuFD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA2D3B,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAOnC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC;CAiMtF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reown/appkit-solana-react-native",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.3",
|
|
4
4
|
"main": "lib/commonjs/index.js",
|
|
5
5
|
"types": "lib/typescript/index.d.ts",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@reown/appkit-common-react-native": "2.0.0-alpha.
|
|
42
|
+
"@reown/appkit-common-react-native": "2.0.0-alpha.3",
|
|
43
43
|
"@solana/web3.js": "1.98.2",
|
|
44
44
|
"bs58": "6.0.0",
|
|
45
45
|
"tweetnacl": "1.0.3"
|
package/src/adapter.ts
CHANGED
|
@@ -22,9 +22,8 @@ export interface SolanaTransactionData {
|
|
|
22
22
|
export class SolanaAdapter extends SolanaBaseAdapter {
|
|
23
23
|
private static supportedNamespace: ChainNamespace = 'solana';
|
|
24
24
|
|
|
25
|
-
constructor(
|
|
25
|
+
constructor() {
|
|
26
26
|
super({
|
|
27
|
-
projectId: configParams.projectId,
|
|
28
27
|
supportedNamespace: SolanaAdapter.supportedNamespace,
|
|
29
28
|
adapterType: 'solana'
|
|
30
29
|
});
|