@meshconnect/web-link-sdk 3.3.3 → 3.4.0
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/Link.js +12 -317
- package/README.md +1 -0
- package/package.json +3 -7
- package/utils/types.d.ts +5 -93
- package/utils/version.d.ts +1 -1
- package/utils/version.js +1 -1
- package/utils/connectors/evm/chainConfigs.d.ts +0 -2
- package/utils/connectors/evm/chainConfigs.js +0 -115
- package/utils/connectors/evm/chainSwitching.d.ts +0 -15
- package/utils/connectors/evm/chainSwitching.js +0 -242
- package/utils/connectors/evm/index.d.ts +0 -8
- package/utils/connectors/evm/index.js +0 -8
- package/utils/connectors/evm/provider.d.ts +0 -6
- package/utils/connectors/evm/provider.js +0 -13
- package/utils/connectors/evm/signing.d.ts +0 -1
- package/utils/connectors/evm/signing.js +0 -78
- package/utils/connectors/evm/transactions.d.ts +0 -28
- package/utils/connectors/evm/transactions.js +0 -381
- package/utils/connectors/evm/types.d.ts +0 -57
- package/utils/connectors/evm/types.js +0 -1
- package/utils/connectors/evm/walletConnection.d.ts +0 -20
- package/utils/connectors/evm/walletConnection.js +0 -160
- package/utils/connectors/evm/walletDiscovery.d.ts +0 -10
- package/utils/connectors/evm/walletDiscovery.js +0 -55
- package/utils/connectors/solana/connection.d.ts +0 -4
- package/utils/connectors/solana/connection.js +0 -108
- package/utils/connectors/solana/index.d.ts +0 -5
- package/utils/connectors/solana/index.js +0 -5
- package/utils/connectors/solana/providerDiscovery.d.ts +0 -3
- package/utils/connectors/solana/providerDiscovery.js +0 -127
- package/utils/connectors/solana/signing.d.ts +0 -1
- package/utils/connectors/solana/signing.js +0 -59
- package/utils/connectors/solana/transaction.d.ts +0 -17
- package/utils/connectors/solana/transaction.js +0 -362
- package/utils/connectors/solana/types.d.ts +0 -71
- package/utils/connectors/solana/types.js +0 -8
- package/utils/wallet/EVMWalletStrategy.d.ts +0 -31
- package/utils/wallet/EVMWalletStrategy.js +0 -265
- package/utils/wallet/SolanaWalletStrategy.d.ts +0 -33
- package/utils/wallet/SolanaWalletStrategy.js +0 -300
- package/utils/wallet/WalletStrategy.d.ts +0 -61
- package/utils/wallet/WalletStrategy.js +0 -25
- package/utils/wallet/WalletStrategyFactory.d.ts +0 -15
- package/utils/wallet/WalletStrategyFactory.js +0 -31
- package/utils/wallet/index.d.ts +0 -4
- package/utils/wallet/index.js +0 -4
- package/utils/wallet-browser-event-types.d.ts +0 -116
- package/utils/wallet-browser-event-types.js +0 -17
package/Link.js
CHANGED
|
@@ -47,9 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
};
|
|
48
48
|
import { addPopup, iframeId, removePopup } from './utils/popup';
|
|
49
49
|
import { isLinkEventTypeKey } from './utils/event-types';
|
|
50
|
-
import { isWalletBrowserEventTypeKey } from './utils/wallet-browser-event-types';
|
|
51
50
|
import { sdkSpecs } from './utils/sdk-specs';
|
|
52
|
-
import { WalletStrategyFactory } from './utils/wallet';
|
|
53
51
|
import { BridgeParent } from '@meshconnect/uwc-bridge-parent';
|
|
54
52
|
var currentOptions;
|
|
55
53
|
var targetOrigin;
|
|
@@ -80,7 +78,7 @@ function sendMessageToIframe(message) {
|
|
|
80
78
|
}
|
|
81
79
|
function handleLinkEvent(event) {
|
|
82
80
|
return __awaiter(this, void 0, void 0, function () {
|
|
83
|
-
var payload, payload, payload, payload
|
|
81
|
+
var payload, payload, payload, payload;
|
|
84
82
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
85
83
|
return __generator(this, function (_l) {
|
|
86
84
|
switch (event.data.type) {
|
|
@@ -128,12 +126,6 @@ function handleLinkEvent(event) {
|
|
|
128
126
|
type: 'meshSDKSpecs',
|
|
129
127
|
payload: __assign({}, sdkSpecs)
|
|
130
128
|
});
|
|
131
|
-
walletFactory = WalletStrategyFactory.getInstance();
|
|
132
|
-
allProviders = walletFactory.getAllProviders();
|
|
133
|
-
sendMessageToIframe({
|
|
134
|
-
type: 'SDKinjectedWalletProviders',
|
|
135
|
-
payload: allProviders
|
|
136
|
-
});
|
|
137
129
|
if (currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.accessTokens) {
|
|
138
130
|
sendMessageToIframe({
|
|
139
131
|
type: 'frontAccessTokens',
|
|
@@ -160,296 +152,6 @@ function handleLinkEvent(event) {
|
|
|
160
152
|
});
|
|
161
153
|
});
|
|
162
154
|
}
|
|
163
|
-
function handleWalletBrowserEvent(event) {
|
|
164
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
165
|
-
var walletFactory, _a, payload, networkType, strategy, result, error_1, payload, networkType, strategy, result, error_2, payload, networkType, strategy, result, error_3, payload, networkType, strategy, result, error_4, payload, getResponseType, networkType, strategy, result, responseType, error_5, errorType, payload, getResponseType, networkType, strategy, result, responseType, error_6, errorType, payload, responseType, networkType, strategy, result, error_7, payload, responseType, networkType, strategy, result, error_8, payload, networkType, strategy, error_9, payload, networkType, strategy, result, error_10;
|
|
166
|
-
var _b;
|
|
167
|
-
return __generator(this, function (_c) {
|
|
168
|
-
switch (_c.label) {
|
|
169
|
-
case 0:
|
|
170
|
-
walletFactory = WalletStrategyFactory.getInstance();
|
|
171
|
-
_a = event.data.type;
|
|
172
|
-
switch (_a) {
|
|
173
|
-
case 'walletBrowserInjectedWalletSelected': return [3 /*break*/, 1];
|
|
174
|
-
case 'walletBrowserSignRequest': return [3 /*break*/, 6];
|
|
175
|
-
case 'walletBrowserChainSwitchRequest': return [3 /*break*/, 11];
|
|
176
|
-
case 'walletBrowserNativeTransferRequest': return [3 /*break*/, 16];
|
|
177
|
-
case 'walletBrowserNonNativeTransferRequest': return [3 /*break*/, 21];
|
|
178
|
-
case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/, 21];
|
|
179
|
-
case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 26];
|
|
180
|
-
case 'walletBrowserTransactionBatchRequest': return [3 /*break*/, 31];
|
|
181
|
-
case 'walletBrowserWalletCapabilities': return [3 /*break*/, 36];
|
|
182
|
-
case 'walletBrowserDisconnect': return [3 /*break*/, 41];
|
|
183
|
-
case 'walletBrowserSolanaTransferWithInstructionsRequest': return [3 /*break*/, 49];
|
|
184
|
-
}
|
|
185
|
-
return [3 /*break*/, 54];
|
|
186
|
-
case 1:
|
|
187
|
-
payload = event.data.payload;
|
|
188
|
-
_c.label = 2;
|
|
189
|
-
case 2:
|
|
190
|
-
_c.trys.push([2, 4, , 5]);
|
|
191
|
-
networkType = (((_b = payload.networkType) === null || _b === void 0 ? void 0 : _b.includes('solana')) ? 'solana' : 'evm');
|
|
192
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
193
|
-
return [4 /*yield*/, strategy.connect(payload)];
|
|
194
|
-
case 3:
|
|
195
|
-
result = _c.sent();
|
|
196
|
-
sendMessageToIframe({
|
|
197
|
-
type: 'SDKinjectedConnectionCompleted',
|
|
198
|
-
payload: {
|
|
199
|
-
accounts: result.accounts,
|
|
200
|
-
chainId: result.chainId,
|
|
201
|
-
networkType: networkType
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
return [3 /*break*/, 5];
|
|
205
|
-
case 4:
|
|
206
|
-
error_1 = _c.sent();
|
|
207
|
-
console.error('Connection error:', error_1);
|
|
208
|
-
handleErrorAndSendMessage(error_1, 'SDKinjectedConnectionCompleted');
|
|
209
|
-
return [3 /*break*/, 5];
|
|
210
|
-
case 5: return [3 /*break*/, 54];
|
|
211
|
-
case 6:
|
|
212
|
-
payload = event.data.payload;
|
|
213
|
-
_c.label = 7;
|
|
214
|
-
case 7:
|
|
215
|
-
_c.trys.push([7, 9, , 10]);
|
|
216
|
-
networkType = (!payload.address.startsWith('0x') ? 'solana' : 'evm');
|
|
217
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
218
|
-
return [4 /*yield*/, strategy.signMessage(payload)];
|
|
219
|
-
case 8:
|
|
220
|
-
result = _c.sent();
|
|
221
|
-
sendMessageToIframe({
|
|
222
|
-
type: 'SDKsignRequestCompleted',
|
|
223
|
-
payload: result
|
|
224
|
-
});
|
|
225
|
-
return [3 /*break*/, 10];
|
|
226
|
-
case 9:
|
|
227
|
-
error_2 = _c.sent();
|
|
228
|
-
handleErrorAndSendMessage(error_2, 'SDKsignRequestCompleted');
|
|
229
|
-
return [3 /*break*/, 10];
|
|
230
|
-
case 10: return [3 /*break*/, 54];
|
|
231
|
-
case 11:
|
|
232
|
-
payload = event.data.payload;
|
|
233
|
-
_c.label = 12;
|
|
234
|
-
case 12:
|
|
235
|
-
_c.trys.push([12, 14, , 15]);
|
|
236
|
-
networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
|
|
237
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
238
|
-
return [4 /*yield*/, strategy.switchChain(payload)];
|
|
239
|
-
case 13:
|
|
240
|
-
result = _c.sent();
|
|
241
|
-
sendMessageToIframe({
|
|
242
|
-
type: 'SDKswitchChainCompleted',
|
|
243
|
-
payload: {
|
|
244
|
-
chainId: result.chainId,
|
|
245
|
-
accounts: result.accounts,
|
|
246
|
-
networkType: networkType
|
|
247
|
-
}
|
|
248
|
-
});
|
|
249
|
-
return [3 /*break*/, 15];
|
|
250
|
-
case 14:
|
|
251
|
-
error_3 = _c.sent();
|
|
252
|
-
console.error('Chain switch failed:', error_3);
|
|
253
|
-
handleErrorAndSendMessage(error_3, 'SDKswitchChainCompleted');
|
|
254
|
-
return [3 /*break*/, 15];
|
|
255
|
-
case 15: return [3 /*break*/, 54];
|
|
256
|
-
case 16:
|
|
257
|
-
payload = event.data.payload;
|
|
258
|
-
_c.label = 17;
|
|
259
|
-
case 17:
|
|
260
|
-
_c.trys.push([17, 19, , 20]);
|
|
261
|
-
networkType = (payload.network === 'solana' ? 'solana' : 'evm');
|
|
262
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
263
|
-
return [4 /*yield*/, strategy.sendNativeTransfer(payload)];
|
|
264
|
-
case 18:
|
|
265
|
-
result = _c.sent();
|
|
266
|
-
sendMessageToIframe({
|
|
267
|
-
type: 'SDKnativeTransferCompleted',
|
|
268
|
-
payload: result
|
|
269
|
-
});
|
|
270
|
-
return [3 /*break*/, 20];
|
|
271
|
-
case 19:
|
|
272
|
-
error_4 = _c.sent();
|
|
273
|
-
handleErrorAndSendMessage(error_4, 'SDKnativeTransferCompleted');
|
|
274
|
-
return [3 /*break*/, 20];
|
|
275
|
-
case 20: return [3 /*break*/, 54];
|
|
276
|
-
case 21:
|
|
277
|
-
payload = event.data.payload;
|
|
278
|
-
getResponseType = function (type) {
|
|
279
|
-
switch (type) {
|
|
280
|
-
case 'walletBrowserNonNativeTransferRequest':
|
|
281
|
-
return 'SDKnonNativeTransferCompleted';
|
|
282
|
-
case 'walletBrowserNativeSmartDeposit':
|
|
283
|
-
return 'SDKnativeSmartDepositCompleted';
|
|
284
|
-
case 'walletBrowserNonNativeSmartDeposit':
|
|
285
|
-
return 'SDKnonNativeSmartDepositCompleted';
|
|
286
|
-
default:
|
|
287
|
-
return 'SDKnonNativeTransferCompleted';
|
|
288
|
-
}
|
|
289
|
-
};
|
|
290
|
-
_c.label = 22;
|
|
291
|
-
case 22:
|
|
292
|
-
_c.trys.push([22, 24, , 25]);
|
|
293
|
-
networkType = (payload.address.startsWith('0x') ? 'evm' : 'solana');
|
|
294
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
295
|
-
return [4 /*yield*/, strategy.sendSmartContractInteraction(payload)];
|
|
296
|
-
case 23:
|
|
297
|
-
result = _c.sent();
|
|
298
|
-
responseType = getResponseType(event.data.type);
|
|
299
|
-
sendMessageToIframe({
|
|
300
|
-
type: responseType,
|
|
301
|
-
payload: {
|
|
302
|
-
txHash: result
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
return [3 /*break*/, 25];
|
|
306
|
-
case 24:
|
|
307
|
-
error_5 = _c.sent();
|
|
308
|
-
errorType = getResponseType(event.data.type);
|
|
309
|
-
handleErrorAndSendMessage(error_5, errorType);
|
|
310
|
-
return [3 /*break*/, 25];
|
|
311
|
-
case 25: return [3 /*break*/, 54];
|
|
312
|
-
case 26:
|
|
313
|
-
payload = event.data.payload;
|
|
314
|
-
getResponseType = function (type) {
|
|
315
|
-
switch (type) {
|
|
316
|
-
case 'walletBrowserNonNativeTransferRequest':
|
|
317
|
-
return 'SDKnonNativeTransferCompleted';
|
|
318
|
-
case 'walletBrowserNativeSmartDeposit':
|
|
319
|
-
return 'SDKnativeSmartDepositCompleted';
|
|
320
|
-
case 'walletBrowserNonNativeSmartDeposit':
|
|
321
|
-
return 'SDKnonNativeSmartDepositCompleted';
|
|
322
|
-
default:
|
|
323
|
-
return 'SDKnonNativeTransferCompleted';
|
|
324
|
-
}
|
|
325
|
-
};
|
|
326
|
-
_c.label = 27;
|
|
327
|
-
case 27:
|
|
328
|
-
_c.trys.push([27, 29, , 30]);
|
|
329
|
-
networkType = (payload.address.startsWith('0x') ? 'evm' : 'solana');
|
|
330
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
331
|
-
return [4 /*yield*/, strategy.sendNativeSmartContractInteraction(payload)];
|
|
332
|
-
case 28:
|
|
333
|
-
result = _c.sent();
|
|
334
|
-
responseType = getResponseType(event.data.type);
|
|
335
|
-
sendMessageToIframe({
|
|
336
|
-
type: responseType,
|
|
337
|
-
payload: {
|
|
338
|
-
txHash: result
|
|
339
|
-
}
|
|
340
|
-
});
|
|
341
|
-
return [3 /*break*/, 30];
|
|
342
|
-
case 29:
|
|
343
|
-
error_6 = _c.sent();
|
|
344
|
-
errorType = getResponseType(event.data.type);
|
|
345
|
-
handleErrorAndSendMessage(error_6, errorType);
|
|
346
|
-
return [3 /*break*/, 30];
|
|
347
|
-
case 30: return [3 /*break*/, 54];
|
|
348
|
-
case 31:
|
|
349
|
-
payload = event.data.payload;
|
|
350
|
-
responseType = 'SDKtransactionBatchCompleted';
|
|
351
|
-
_c.label = 32;
|
|
352
|
-
case 32:
|
|
353
|
-
_c.trys.push([32, 34, , 35]);
|
|
354
|
-
networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
|
|
355
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
356
|
-
return [4 /*yield*/, strategy.sendTransactionBatch(payload)];
|
|
357
|
-
case 33:
|
|
358
|
-
result = _c.sent();
|
|
359
|
-
sendMessageToIframe({
|
|
360
|
-
type: responseType,
|
|
361
|
-
payload: {
|
|
362
|
-
txHash: result
|
|
363
|
-
}
|
|
364
|
-
});
|
|
365
|
-
return [3 /*break*/, 35];
|
|
366
|
-
case 34:
|
|
367
|
-
error_7 = _c.sent();
|
|
368
|
-
handleErrorAndSendMessage(error_7, responseType);
|
|
369
|
-
return [3 /*break*/, 35];
|
|
370
|
-
case 35: return [3 /*break*/, 54];
|
|
371
|
-
case 36:
|
|
372
|
-
payload = event.data.payload;
|
|
373
|
-
responseType = 'SDKwalletCapabilitiesCompleted';
|
|
374
|
-
_c.label = 37;
|
|
375
|
-
case 37:
|
|
376
|
-
_c.trys.push([37, 39, , 40]);
|
|
377
|
-
networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
|
|
378
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
379
|
-
return [4 /*yield*/, strategy.getWalletCapabilities(payload)];
|
|
380
|
-
case 38:
|
|
381
|
-
result = _c.sent();
|
|
382
|
-
sendMessageToIframe({
|
|
383
|
-
type: responseType,
|
|
384
|
-
payload: result
|
|
385
|
-
});
|
|
386
|
-
return [3 /*break*/, 40];
|
|
387
|
-
case 39:
|
|
388
|
-
error_8 = _c.sent();
|
|
389
|
-
handleErrorAndSendMessage(error_8, responseType);
|
|
390
|
-
return [3 /*break*/, 40];
|
|
391
|
-
case 40: return [3 /*break*/, 54];
|
|
392
|
-
case 41:
|
|
393
|
-
payload = event.data.payload;
|
|
394
|
-
_c.label = 42;
|
|
395
|
-
case 42:
|
|
396
|
-
_c.trys.push([42, 47, , 48]);
|
|
397
|
-
if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 44];
|
|
398
|
-
networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
|
|
399
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
400
|
-
return [4 /*yield*/, strategy.disconnect(payload)];
|
|
401
|
-
case 43:
|
|
402
|
-
_c.sent();
|
|
403
|
-
return [3 /*break*/, 46];
|
|
404
|
-
case 44:
|
|
405
|
-
// Disconnect from all if no specific network type
|
|
406
|
-
return [4 /*yield*/, Promise.all([
|
|
407
|
-
walletFactory.getStrategy('solana').disconnect(payload),
|
|
408
|
-
walletFactory.getStrategy('evm').disconnect(payload)
|
|
409
|
-
])];
|
|
410
|
-
case 45:
|
|
411
|
-
// Disconnect from all if no specific network type
|
|
412
|
-
_c.sent();
|
|
413
|
-
_c.label = 46;
|
|
414
|
-
case 46:
|
|
415
|
-
sendMessageToIframe({
|
|
416
|
-
type: 'SDKdisconnectSuccess'
|
|
417
|
-
});
|
|
418
|
-
return [3 /*break*/, 48];
|
|
419
|
-
case 47:
|
|
420
|
-
error_9 = _c.sent();
|
|
421
|
-
console.error('Error during disconnect:', error_9);
|
|
422
|
-
handleErrorAndSendMessage(error_9, 'SDKdisconnectSuccess');
|
|
423
|
-
return [3 /*break*/, 48];
|
|
424
|
-
case 48: return [3 /*break*/, 54];
|
|
425
|
-
case 49:
|
|
426
|
-
payload = event.data
|
|
427
|
-
.payload;
|
|
428
|
-
_c.label = 50;
|
|
429
|
-
case 50:
|
|
430
|
-
_c.trys.push([50, 52, , 53]);
|
|
431
|
-
networkType = 'solana';
|
|
432
|
-
strategy = walletFactory.getStrategy(networkType);
|
|
433
|
-
return [4 /*yield*/, strategy.sendTransactionWithInstructions(payload)];
|
|
434
|
-
case 51:
|
|
435
|
-
result = _c.sent();
|
|
436
|
-
sendMessageToIframe({
|
|
437
|
-
type: 'SDKnonNativeTransferCompleted',
|
|
438
|
-
payload: {
|
|
439
|
-
txHash: result
|
|
440
|
-
}
|
|
441
|
-
});
|
|
442
|
-
return [3 /*break*/, 53];
|
|
443
|
-
case 52:
|
|
444
|
-
error_10 = _c.sent();
|
|
445
|
-
handleErrorAndSendMessage(error_10, 'SDKdisconnectSuccess');
|
|
446
|
-
return [3 /*break*/, 53];
|
|
447
|
-
case 53: return [3 /*break*/, 54];
|
|
448
|
-
case 54: return [2 /*return*/];
|
|
449
|
-
}
|
|
450
|
-
});
|
|
451
|
-
});
|
|
452
|
-
}
|
|
453
155
|
function eventsListener(event) {
|
|
454
156
|
return __awaiter(this, void 0, void 0, function () {
|
|
455
157
|
return __generator(this, function (_a) {
|
|
@@ -457,30 +159,16 @@ function eventsListener(event) {
|
|
|
457
159
|
case 0:
|
|
458
160
|
if (!(event.origin !== targetOrigin && event.origin !== linkTokenOrigin)) return [3 /*break*/, 1];
|
|
459
161
|
console.warn('Received message from untrusted origin:', event.origin);
|
|
460
|
-
return [3 /*break*/,
|
|
461
|
-
case 1:
|
|
462
|
-
if (!isWalletBrowserEventTypeKey(event.data.type)) return [3 /*break*/, 3];
|
|
463
|
-
return [4 /*yield*/, handleWalletBrowserEvent(event)];
|
|
162
|
+
return [3 /*break*/, 3];
|
|
163
|
+
case 1: return [4 /*yield*/, handleLinkEvent(event)];
|
|
464
164
|
case 2:
|
|
465
165
|
_a.sent();
|
|
466
|
-
|
|
467
|
-
case 3: return [
|
|
468
|
-
case 4:
|
|
469
|
-
_a.sent();
|
|
470
|
-
_a.label = 5;
|
|
471
|
-
case 5: return [2 /*return*/];
|
|
166
|
+
_a.label = 3;
|
|
167
|
+
case 3: return [2 /*return*/];
|
|
472
168
|
}
|
|
473
169
|
});
|
|
474
170
|
});
|
|
475
171
|
}
|
|
476
|
-
function handleErrorAndSendMessage(error, messageType) {
|
|
477
|
-
sendMessageToIframe({
|
|
478
|
-
type: messageType,
|
|
479
|
-
payload: {
|
|
480
|
-
error: error
|
|
481
|
-
}
|
|
482
|
-
});
|
|
483
|
-
}
|
|
484
172
|
export var createLink = function (options) {
|
|
485
173
|
var openLink = function (linkToken, customIframeId) {
|
|
486
174
|
var _a, _b;
|
|
@@ -496,6 +184,7 @@ export var createLink = function (options) {
|
|
|
496
184
|
return;
|
|
497
185
|
}
|
|
498
186
|
linkUrl = addLanguage(linkUrl, currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.language);
|
|
187
|
+
linkUrl = addDisplayFiatCurrency(linkUrl, currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.displayFiatCurrency);
|
|
499
188
|
linkTokenOrigin = new URL(linkUrl).origin;
|
|
500
189
|
window.removeEventListener('message', eventsListener);
|
|
501
190
|
if (customIframeId) {
|
|
@@ -541,3 +230,9 @@ function addLanguage(linkUrl, language) {
|
|
|
541
230
|
}
|
|
542
231
|
return "".concat(linkUrl).concat(linkUrl.includes('?') ? '&' : '?', "lng=").concat(language || 'en');
|
|
543
232
|
}
|
|
233
|
+
function addDisplayFiatCurrency(linkUrl, displayFiatCurrency) {
|
|
234
|
+
if (displayFiatCurrency) {
|
|
235
|
+
return "".concat(linkUrl).concat(linkUrl.includes('?') ? '&' : '?', "fiatCur=").concat(displayFiatCurrency);
|
|
236
|
+
}
|
|
237
|
+
return linkUrl;
|
|
238
|
+
}
|
package/README.md
CHANGED
|
@@ -104,6 +104,7 @@ After successfull authentication on the Link session, the popup will be closed a
|
|
|
104
104
|
| `onEvent` | `(payload: LinkEventType) => void` | A callback function that is called when various events occur within the Front iframe |
|
|
105
105
|
| `accessTokens` | `IntegrationAccessToken[]` | An array of integration access tokens |
|
|
106
106
|
| `language` | `'en' \| undefined` | Link UI language |
|
|
107
|
+
| `displayFiatCurrency` | `'USD' \| undefined` | A fiat currency to display fiat equivalent of a crypto amount |
|
|
107
108
|
|
|
108
109
|
#### `createLink` return value
|
|
109
110
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meshconnect/web-link-sdk",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "A client-side JS library for integrating with Mesh Connect",
|
|
5
5
|
"exports": "./index.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -22,12 +22,8 @@
|
|
|
22
22
|
"util": "^0.12.4"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@meshconnect/node-api": "^2.0.
|
|
26
|
-
"@meshconnect/
|
|
27
|
-
"@meshconnect/uwc-bridge-parent": "1.0.0",
|
|
28
|
-
"bs58": "^5.0.0",
|
|
29
|
-
"buffer": "^6.0.3",
|
|
30
|
-
"ethers": "^6.11.1"
|
|
25
|
+
"@meshconnect/node-api": "^2.0.24",
|
|
26
|
+
"@meshconnect/uwc-bridge-parent": "1.0.1"
|
|
31
27
|
},
|
|
32
28
|
"jest": {
|
|
33
29
|
"preset": "ts-jest",
|
package/utils/types.d.ts
CHANGED
|
@@ -96,99 +96,6 @@ export interface IntegrationAccessToken {
|
|
|
96
96
|
brokerType: BrokerType;
|
|
97
97
|
brokerName: string;
|
|
98
98
|
}
|
|
99
|
-
export interface WalletBrowserPayload {
|
|
100
|
-
networkType?: string;
|
|
101
|
-
integrationName: string;
|
|
102
|
-
targetChainId?: string;
|
|
103
|
-
walletName?: string;
|
|
104
|
-
}
|
|
105
|
-
export interface SignRequestPayload {
|
|
106
|
-
address: string;
|
|
107
|
-
message: string;
|
|
108
|
-
walletName?: string;
|
|
109
|
-
}
|
|
110
|
-
export interface ChainSwitchPayload {
|
|
111
|
-
chainId: number;
|
|
112
|
-
networkType?: string;
|
|
113
|
-
walletName?: string;
|
|
114
|
-
}
|
|
115
|
-
export interface TransferPayload {
|
|
116
|
-
toAddress: string;
|
|
117
|
-
amount: number;
|
|
118
|
-
decimalPlaces: number;
|
|
119
|
-
chainId: number;
|
|
120
|
-
account: string;
|
|
121
|
-
network: string;
|
|
122
|
-
blockhash?: string;
|
|
123
|
-
walletName?: string;
|
|
124
|
-
gasLimit?: number | null;
|
|
125
|
-
maxFeePerGas?: number | null;
|
|
126
|
-
maxPriorityFeePerGas?: number | null;
|
|
127
|
-
}
|
|
128
|
-
export interface SmartContractPayload {
|
|
129
|
-
address: string;
|
|
130
|
-
abi: string;
|
|
131
|
-
functionName: string;
|
|
132
|
-
args: unknown[];
|
|
133
|
-
account: string;
|
|
134
|
-
value?: string;
|
|
135
|
-
walletName?: string;
|
|
136
|
-
tokenProgram?: string;
|
|
137
|
-
blockhash?: string;
|
|
138
|
-
createATA?: boolean;
|
|
139
|
-
gasLimit?: number | null;
|
|
140
|
-
maxFeePerGas?: number | null;
|
|
141
|
-
maxPriorityFeePerGas?: number | null;
|
|
142
|
-
}
|
|
143
|
-
export interface TransactionBatchPayload {
|
|
144
|
-
version: string;
|
|
145
|
-
from: string;
|
|
146
|
-
chainId: string;
|
|
147
|
-
atomicRequired: boolean;
|
|
148
|
-
calls: {
|
|
149
|
-
to: string;
|
|
150
|
-
value: string;
|
|
151
|
-
data?: string;
|
|
152
|
-
}[];
|
|
153
|
-
}
|
|
154
|
-
export interface WalletCapabilitiesPayload {
|
|
155
|
-
from: string;
|
|
156
|
-
chainId: string;
|
|
157
|
-
}
|
|
158
|
-
export interface DisconnectPayload {
|
|
159
|
-
networkType?: string;
|
|
160
|
-
walletName?: string;
|
|
161
|
-
}
|
|
162
|
-
export interface AddressLookupTableStateDto {
|
|
163
|
-
deactivationSlot: bigint;
|
|
164
|
-
lastExtendedSlot: number;
|
|
165
|
-
lastExtendedStartIndex: number;
|
|
166
|
-
key: string;
|
|
167
|
-
authority?: string;
|
|
168
|
-
addresses: string[];
|
|
169
|
-
}
|
|
170
|
-
export interface SolanaTransferWithInstructionsPayload {
|
|
171
|
-
transactionInstructions: {
|
|
172
|
-
states: AddressLookupTableStateDto[];
|
|
173
|
-
instructions: TransactionInstructionDto[];
|
|
174
|
-
account: string;
|
|
175
|
-
blockhash: string;
|
|
176
|
-
walletName?: string;
|
|
177
|
-
network?: string;
|
|
178
|
-
};
|
|
179
|
-
transferConfig: SmartContractPayload;
|
|
180
|
-
}
|
|
181
|
-
export interface SolanaAccountMeta {
|
|
182
|
-
shouldFillPubkey: boolean;
|
|
183
|
-
pubKey: string | null;
|
|
184
|
-
isWritable: boolean;
|
|
185
|
-
isSigner: boolean;
|
|
186
|
-
}
|
|
187
|
-
export interface TransactionInstructionDto {
|
|
188
|
-
programId: string;
|
|
189
|
-
accounts: SolanaAccountMeta[];
|
|
190
|
-
data: string;
|
|
191
|
-
}
|
|
192
99
|
export interface LinkOptions {
|
|
193
100
|
/**
|
|
194
101
|
* Client ID that can be obtained at https://dashboard.meshconnect.com/company/keys
|
|
@@ -227,6 +134,11 @@ export interface LinkOptions {
|
|
|
227
134
|
* Link UI language. Supported: 'en', 'ru'. Can be set as 'en-US', 'ru-RU', etc.
|
|
228
135
|
*/
|
|
229
136
|
language?: string;
|
|
137
|
+
/**
|
|
138
|
+
* The currency to display a fiat equivalent of the crypto amount in Link UI.
|
|
139
|
+
* Default: 'USD'
|
|
140
|
+
*/
|
|
141
|
+
displayFiatCurrency?: string;
|
|
230
142
|
}
|
|
231
143
|
export interface LinkStyle {
|
|
232
144
|
ir: number;
|
package/utils/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const sdkVersion = "3.
|
|
1
|
+
export declare const sdkVersion = "3.4.0";
|
package/utils/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export var sdkVersion = '3.
|
|
1
|
+
export var sdkVersion = '3.4.0';
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
// Chain configurations
|
|
2
|
-
var chainConfigs = {
|
|
3
|
-
43114: {
|
|
4
|
-
// Avalanche
|
|
5
|
-
name: 'Avalanche',
|
|
6
|
-
nativeCurrency: {
|
|
7
|
-
decimals: 18,
|
|
8
|
-
name: 'Avalanche',
|
|
9
|
-
symbol: 'AVAX'
|
|
10
|
-
},
|
|
11
|
-
rpcUrls: {
|
|
12
|
-
default: { http: ['https://avalanche-mainnet.infura.io'] }
|
|
13
|
-
},
|
|
14
|
-
blockExplorers: {
|
|
15
|
-
default: {
|
|
16
|
-
name: 'SnowTrace',
|
|
17
|
-
url: 'https://snowtrace.io'
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
42161: {
|
|
22
|
-
// Arbitrum
|
|
23
|
-
name: 'Arbitrum One',
|
|
24
|
-
nativeCurrency: {
|
|
25
|
-
decimals: 18,
|
|
26
|
-
name: 'Ether',
|
|
27
|
-
symbol: 'ETH'
|
|
28
|
-
},
|
|
29
|
-
rpcUrls: {
|
|
30
|
-
default: { http: ['https://arb1.arbitrum.io/rpc'] }
|
|
31
|
-
},
|
|
32
|
-
blockExplorers: {
|
|
33
|
-
default: {
|
|
34
|
-
name: 'Arbiscan',
|
|
35
|
-
url: 'https://arbiscan.io'
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
},
|
|
39
|
-
10: {
|
|
40
|
-
// Optimism
|
|
41
|
-
name: 'OP Mainnet',
|
|
42
|
-
nativeCurrency: {
|
|
43
|
-
decimals: 18,
|
|
44
|
-
name: 'Ether',
|
|
45
|
-
symbol: 'ETH'
|
|
46
|
-
},
|
|
47
|
-
rpcUrls: {
|
|
48
|
-
default: { http: ['https://mainnet.optimism.io'] }
|
|
49
|
-
},
|
|
50
|
-
blockExplorers: {
|
|
51
|
-
default: {
|
|
52
|
-
name: 'Optimism Explorer',
|
|
53
|
-
url: 'https://optimistic.etherscan.io'
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
8453: {
|
|
58
|
-
// Base
|
|
59
|
-
name: 'Base',
|
|
60
|
-
nativeCurrency: {
|
|
61
|
-
decimals: 18,
|
|
62
|
-
name: 'Ether',
|
|
63
|
-
symbol: 'ETH'
|
|
64
|
-
},
|
|
65
|
-
rpcUrls: {
|
|
66
|
-
default: { http: ['https://mainnet.base.org'] }
|
|
67
|
-
},
|
|
68
|
-
blockExplorers: {
|
|
69
|
-
default: {
|
|
70
|
-
name: 'Basescan',
|
|
71
|
-
url: 'https://basescan.org'
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
137: {
|
|
76
|
-
// Polygon
|
|
77
|
-
name: 'Polygon',
|
|
78
|
-
nativeCurrency: {
|
|
79
|
-
decimals: 18,
|
|
80
|
-
name: 'MATIC',
|
|
81
|
-
symbol: 'MATIC'
|
|
82
|
-
},
|
|
83
|
-
rpcUrls: {
|
|
84
|
-
default: { http: ['https://polygon-rpc.com'] }
|
|
85
|
-
},
|
|
86
|
-
blockExplorers: {
|
|
87
|
-
default: {
|
|
88
|
-
name: 'PolygonScan',
|
|
89
|
-
url: 'https://polygonscan.com'
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
},
|
|
93
|
-
56: {
|
|
94
|
-
// BSC
|
|
95
|
-
name: 'BNB Smart Chain',
|
|
96
|
-
nativeCurrency: {
|
|
97
|
-
decimals: 18,
|
|
98
|
-
name: 'BNB',
|
|
99
|
-
symbol: 'BNB'
|
|
100
|
-
},
|
|
101
|
-
rpcUrls: {
|
|
102
|
-
default: { http: ['https://rpc.ankr.com/bsc'] }
|
|
103
|
-
},
|
|
104
|
-
blockExplorers: {
|
|
105
|
-
default: {
|
|
106
|
-
name: 'BscScan',
|
|
107
|
-
url: 'https://bscscan.com'
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
// Helper function to get chain configuration
|
|
113
|
-
export var getChainConfiguration = function (chainId) {
|
|
114
|
-
return chainConfigs[chainId];
|
|
115
|
-
};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { EVMProvider } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Switches the current EVM chain
|
|
4
|
-
*/
|
|
5
|
-
export declare const switchEVMChain: (chainId: number, provider?: EVMProvider) => Promise<{
|
|
6
|
-
chainId: number;
|
|
7
|
-
accounts: string[];
|
|
8
|
-
} | Error>;
|
|
9
|
-
/**
|
|
10
|
-
* Gets the current chain switch status
|
|
11
|
-
*/
|
|
12
|
-
export declare const getChainSwitchStatus: () => {
|
|
13
|
-
isChainSwitching: boolean;
|
|
14
|
-
chainSwitchError: null;
|
|
15
|
-
};
|