@meshconnect/web-link-sdk 3.2.0 → 3.2.2

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 CHANGED
@@ -159,7 +159,7 @@ function handleLinkEvent(event) {
159
159
  }
160
160
  function handleWalletBrowserEvent(event) {
161
161
  return __awaiter(this, void 0, void 0, function () {
162
- 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, responseType, networkType, strategy, result, error_6, payload, networkType, strategy, error_7;
162
+ 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, responseType, networkType, strategy, result, error_6, payload, responseType, networkType, strategy, result, error_7, payload, networkType, strategy, error_8;
163
163
  var _b;
164
164
  return __generator(this, function (_c) {
165
165
  switch (_c.label) {
@@ -175,9 +175,10 @@ function handleWalletBrowserEvent(event) {
175
175
  case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 21];
176
176
  case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/, 21];
177
177
  case 'walletBrowserTransactionBatchRequest': return [3 /*break*/, 26];
178
- case 'walletBrowserDisconnect': return [3 /*break*/, 31];
178
+ case 'walletBrowserWalletCapabilities': return [3 /*break*/, 31];
179
+ case 'walletBrowserDisconnect': return [3 /*break*/, 36];
179
180
  }
180
- return [3 /*break*/, 39];
181
+ return [3 /*break*/, 44];
181
182
  case 1:
182
183
  payload = event.data.payload;
183
184
  _c.label = 2;
@@ -202,7 +203,7 @@ function handleWalletBrowserEvent(event) {
202
203
  console.error('Connection error:', error_1);
203
204
  handleErrorAndSendMessage(error_1, 'SDKinjectedConnectionCompleted');
204
205
  return [3 /*break*/, 5];
205
- case 5: return [3 /*break*/, 39];
206
+ case 5: return [3 /*break*/, 44];
206
207
  case 6:
207
208
  payload = event.data.payload;
208
209
  _c.label = 7;
@@ -222,7 +223,7 @@ function handleWalletBrowserEvent(event) {
222
223
  error_2 = _c.sent();
223
224
  handleErrorAndSendMessage(error_2, 'SDKsignRequestCompleted');
224
225
  return [3 /*break*/, 10];
225
- case 10: return [3 /*break*/, 39];
226
+ case 10: return [3 /*break*/, 44];
226
227
  case 11:
227
228
  payload = event.data.payload;
228
229
  _c.label = 12;
@@ -247,7 +248,7 @@ function handleWalletBrowserEvent(event) {
247
248
  console.error('Chain switch failed:', error_3);
248
249
  handleErrorAndSendMessage(error_3, 'SDKswitchChainCompleted');
249
250
  return [3 /*break*/, 15];
250
- case 15: return [3 /*break*/, 39];
251
+ case 15: return [3 /*break*/, 44];
251
252
  case 16:
252
253
  payload = event.data.payload;
253
254
  _c.label = 17;
@@ -267,7 +268,7 @@ function handleWalletBrowserEvent(event) {
267
268
  error_4 = _c.sent();
268
269
  handleErrorAndSendMessage(error_4, 'SDKnativeTransferCompleted');
269
270
  return [3 /*break*/, 20];
270
- case 20: return [3 /*break*/, 39];
271
+ case 20: return [3 /*break*/, 44];
271
272
  case 21:
272
273
  payload = event.data.payload;
273
274
  getResponseType = function (type) {
@@ -303,7 +304,7 @@ function handleWalletBrowserEvent(event) {
303
304
  errorType = getResponseType(event.data.type);
304
305
  handleErrorAndSendMessage(error_5, errorType);
305
306
  return [3 /*break*/, 25];
306
- case 25: return [3 /*break*/, 39];
307
+ case 25: return [3 /*break*/, 44];
307
308
  case 26:
308
309
  payload = event.data.payload;
309
310
  responseType = 'SDKtransactionBatchCompleted';
@@ -326,41 +327,62 @@ function handleWalletBrowserEvent(event) {
326
327
  error_6 = _c.sent();
327
328
  handleErrorAndSendMessage(error_6, responseType);
328
329
  return [3 /*break*/, 30];
329
- case 30: return [3 /*break*/, 39];
330
+ case 30: return [3 /*break*/, 44];
330
331
  case 31:
331
332
  payload = event.data.payload;
333
+ responseType = 'SDKwalletCapabilitiesCompleted';
332
334
  _c.label = 32;
333
335
  case 32:
334
- _c.trys.push([32, 37, , 38]);
335
- if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 34];
336
+ _c.trys.push([32, 34, , 35]);
337
+ networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
338
+ strategy = walletFactory.getStrategy(networkType);
339
+ return [4 /*yield*/, strategy.getWalletCapabilities(payload)];
340
+ case 33:
341
+ result = _c.sent();
342
+ sendMessageToIframe({
343
+ type: responseType,
344
+ payload: result
345
+ });
346
+ return [3 /*break*/, 35];
347
+ case 34:
348
+ error_7 = _c.sent();
349
+ handleErrorAndSendMessage(error_7, responseType);
350
+ return [3 /*break*/, 35];
351
+ case 35: return [3 /*break*/, 44];
352
+ case 36:
353
+ payload = event.data.payload;
354
+ _c.label = 37;
355
+ case 37:
356
+ _c.trys.push([37, 42, , 43]);
357
+ if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 39];
336
358
  networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
337
359
  strategy = walletFactory.getStrategy(networkType);
338
360
  return [4 /*yield*/, strategy.disconnect(payload)];
339
- case 33:
361
+ case 38:
340
362
  _c.sent();
341
- return [3 /*break*/, 36];
342
- case 34:
363
+ return [3 /*break*/, 41];
364
+ case 39:
343
365
  // Disconnect from all if no specific network type
344
366
  return [4 /*yield*/, Promise.all([
345
367
  walletFactory.getStrategy('solana').disconnect(payload),
346
368
  walletFactory.getStrategy('evm').disconnect(payload)
347
369
  ])];
348
- case 35:
370
+ case 40:
349
371
  // Disconnect from all if no specific network type
350
372
  _c.sent();
351
- _c.label = 36;
352
- case 36:
373
+ _c.label = 41;
374
+ case 41:
353
375
  sendMessageToIframe({
354
376
  type: 'SDKdisconnectSuccess'
355
377
  });
356
- return [3 /*break*/, 38];
357
- case 37:
358
- error_7 = _c.sent();
359
- console.error('Error during disconnect:', error_7);
360
- handleErrorAndSendMessage(error_7, 'SDKdisconnectSuccess');
361
- return [3 /*break*/, 38];
362
- case 38: return [3 /*break*/, 39];
363
- case 39: return [2 /*return*/];
378
+ return [3 /*break*/, 43];
379
+ case 42:
380
+ error_8 = _c.sent();
381
+ console.error('Error during disconnect:', error_8);
382
+ handleErrorAndSendMessage(error_8, 'SDKdisconnectSuccess');
383
+ return [3 /*break*/, 43];
384
+ case 43: return [3 /*break*/, 44];
385
+ case 44: return [2 /*return*/];
364
386
  }
365
387
  });
366
388
  });
@@ -438,5 +460,11 @@ export var createLink = function (options) {
438
460
  };
439
461
  };
440
462
  function addLanguage(linkUrl, language) {
463
+ if (language === 'system') {
464
+ language =
465
+ typeof navigator !== 'undefined' && navigator.language
466
+ ? encodeURIComponent(navigator.language)
467
+ : undefined;
468
+ }
441
469
  return "".concat(linkUrl).concat(linkUrl.includes('?') ? '&' : '?', "lng=").concat(language || 'en');
442
470
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/web-link-sdk",
3
- "version": "3.2.0",
3
+ "version": "3.2.2",
4
4
  "description": "A client-side JS library for integrating with Mesh Connect",
5
5
  "exports": "./index.js",
6
6
  "license": "MIT",
@@ -21,3 +21,4 @@ export declare const sendEVMTransactionBatch: (params: {
21
21
  data?: string;
22
22
  }[];
23
23
  }) => Promise<string | Error>;
24
+ export declare const getWalletCapabilities: (from: string, chainId: string) => Promise<any>;
@@ -274,3 +274,23 @@ export var sendEVMTransactionBatch = function (params) { return __awaiter(void 0
274
274
  }
275
275
  });
276
276
  }); };
277
+ export var getWalletCapabilities = function (from, chainId) { return __awaiter(void 0, void 0, void 0, function () {
278
+ var activeRawProvider, provider, capabilities;
279
+ return __generator(this, function (_a) {
280
+ switch (_a.label) {
281
+ case 0:
282
+ activeRawProvider = getActiveRawProvider();
283
+ if (!activeRawProvider) {
284
+ throw new Error('No active EVM provider');
285
+ }
286
+ provider = new ethers.BrowserProvider(activeRawProvider);
287
+ return [4 /*yield*/, provider.send('wallet_getCapabilities', [
288
+ from,
289
+ [chainId]
290
+ ])];
291
+ case 1:
292
+ capabilities = _a.sent();
293
+ return [2 /*return*/, capabilities[chainId]];
294
+ }
295
+ });
296
+ }); };
package/utils/types.d.ts CHANGED
@@ -149,6 +149,10 @@ export interface TransactionBatchPayload {
149
149
  data?: string;
150
150
  }[];
151
151
  }
152
+ export interface WalletCapabilitiesPayload {
153
+ from: string;
154
+ chainId: string;
155
+ }
152
156
  export interface DisconnectPayload {
153
157
  networkType?: string;
154
158
  walletName?: string;
@@ -1 +1 @@
1
- export declare const sdkVersion = "3.2.0";
1
+ export declare const sdkVersion = "3.2.2";
package/utils/version.js CHANGED
@@ -1 +1 @@
1
- export var sdkVersion = '3.2.0';
1
+ export var sdkVersion = '3.2.2';
@@ -1,5 +1,5 @@
1
1
  import { BaseWalletStrategy } from './WalletStrategy';
2
- import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload } from '../types';
2
+ import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload, WalletCapabilitiesPayload } from '../types';
3
3
  export declare class EVMWalletStrategy extends BaseWalletStrategy {
4
4
  connect(payload: WalletBrowserPayload): Promise<{
5
5
  accounts: string[];
@@ -15,6 +15,11 @@ export declare class EVMWalletStrategy extends BaseWalletStrategy {
15
15
  sendNativeTransfer(payload: TransferPayload): Promise<string>;
16
16
  sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
17
17
  sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
18
+ getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
19
+ atomic: {
20
+ status: string;
21
+ };
22
+ }>;
18
23
  getProviders(): {
19
24
  icon: string | undefined;
20
25
  id: string;
@@ -50,7 +50,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
50
50
  }
51
51
  };
52
52
  import { BaseWalletStrategy } from './WalletStrategy';
53
- import { connectToEVMWallet, disconnectFromEVMWallet, signEVMMessage, sendEVMTransaction, sendEVMTokenTransaction, switchEVMChain, findAvailableProviders, sendEVMTransactionBatch } from '../connectors/evm';
53
+ import { connectToEVMWallet, disconnectFromEVMWallet, signEVMMessage, sendEVMTransaction, sendEVMTokenTransaction, switchEVMChain, findAvailableProviders, sendEVMTransactionBatch, getWalletCapabilities } from '../connectors/evm';
54
54
  var EVMWalletStrategy = /** @class */ (function (_super) {
55
55
  __extends(EVMWalletStrategy, _super);
56
56
  function EVMWalletStrategy() {
@@ -214,6 +214,19 @@ var EVMWalletStrategy = /** @class */ (function (_super) {
214
214
  });
215
215
  });
216
216
  };
217
+ EVMWalletStrategy.prototype.getWalletCapabilities = function (payload) {
218
+ return __awaiter(this, void 0, void 0, function () {
219
+ var result;
220
+ return __generator(this, function (_a) {
221
+ switch (_a.label) {
222
+ case 0: return [4 /*yield*/, getWalletCapabilities(payload.from, payload.chainId)];
223
+ case 1:
224
+ result = _a.sent();
225
+ return [2 /*return*/, result];
226
+ }
227
+ });
228
+ });
229
+ };
217
230
  EVMWalletStrategy.prototype.getProviders = function () {
218
231
  return findAvailableProviders().map(function (provider) { return ({
219
232
  icon: provider.icon,
@@ -19,6 +19,11 @@ export declare class SolanaWalletStrategy extends BaseWalletStrategy {
19
19
  sendNativeTransfer(payload: TransferPayload): Promise<string>;
20
20
  sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
21
21
  sendTransactionBatch(): Promise<string>;
22
+ getWalletCapabilities(): Promise<{
23
+ atomic: {
24
+ status: string;
25
+ };
26
+ }>;
22
27
  getProviders(): {
23
28
  id: string;
24
29
  type: string;
@@ -212,6 +212,9 @@ var SolanaWalletStrategy = /** @class */ (function (_super) {
212
212
  SolanaWalletStrategy.prototype.sendTransactionBatch = function () {
213
213
  throw new Error('Method not implemented.');
214
214
  };
215
+ SolanaWalletStrategy.prototype.getWalletCapabilities = function () {
216
+ throw new Error('Method not implemented.');
217
+ };
215
218
  SolanaWalletStrategy.prototype.getProviders = function () {
216
219
  var solanaProviderMap = findAvailableSolanaProviders();
217
220
  return Object.keys(solanaProviderMap).map(function (id) { return ({
@@ -1,4 +1,4 @@
1
- import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload } from '../types';
1
+ import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload, WalletCapabilitiesPayload } from '../types';
2
2
  export interface WalletStrategy {
3
3
  connect(payload: WalletBrowserPayload): Promise<{
4
4
  accounts: string[];
@@ -14,6 +14,11 @@ export interface WalletStrategy {
14
14
  sendNativeTransfer(payload: TransferPayload): Promise<string>;
15
15
  sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
16
16
  sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
17
+ getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
18
+ atomic: {
19
+ status: string;
20
+ };
21
+ }>;
17
22
  getProviders(): {
18
23
  id: string;
19
24
  type: string;
@@ -36,6 +41,11 @@ export declare abstract class BaseWalletStrategy implements WalletStrategy {
36
41
  abstract sendNativeTransfer(payload: TransferPayload): Promise<string>;
37
42
  abstract sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
38
43
  abstract sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
44
+ abstract getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
45
+ atomic: {
46
+ status: string;
47
+ };
48
+ }>;
39
49
  abstract getProviders(): {
40
50
  id: string;
41
51
  type: string;
@@ -1,5 +1,5 @@
1
- export type WalletBrowserEventType = WalletBrowserInjectedWalletSelected | WalletBrowserSignRequest | WalletBrowserChainSwitchRequest | WalletBrowserTransferBalanceRequest | WalletBrowserNativeTransferRequest | WalletBrowserNonNativeTransferRequest | WalletBrowserNativeSmartDeposit | WalletBrowserNonNativeSmartDeposit | WalletBrowserDisconnect | WalletBrowserTransactionBatch;
2
- declare const WALLET_BROWSER_EVENT_TYPE_KEYS: readonly ["walletBrowserInjectedWalletSelected", "walletBrowserSignRequest", "walletBrowserChainSwitchRequest", "walletBrowserTransferBalanceRequest", "walletBrowserNativeTransferRequest", "walletBrowserNonNativeTransferRequest", "walletBrowserNativeSmartDeposit", "walletBrowserNonNativeSmartDeposit", "walletBrowserDisconnect", "walletBrowserTransactionBatchRequest"];
1
+ export type WalletBrowserEventType = WalletBrowserInjectedWalletSelected | WalletBrowserSignRequest | WalletBrowserChainSwitchRequest | WalletBrowserTransferBalanceRequest | WalletBrowserNativeTransferRequest | WalletBrowserNonNativeTransferRequest | WalletBrowserNativeSmartDeposit | WalletBrowserNonNativeSmartDeposit | WalletBrowserDisconnect | WalletBrowserTransactionBatch | WalletBrowserWalletCapabilities;
2
+ declare const WALLET_BROWSER_EVENT_TYPE_KEYS: readonly ["walletBrowserInjectedWalletSelected", "walletBrowserSignRequest", "walletBrowserChainSwitchRequest", "walletBrowserTransferBalanceRequest", "walletBrowserNativeTransferRequest", "walletBrowserNonNativeTransferRequest", "walletBrowserNativeSmartDeposit", "walletBrowserNonNativeSmartDeposit", "walletBrowserDisconnect", "walletBrowserTransactionBatchRequest", "walletBrowserWalletCapabilities"];
3
3
  export type NetworkType = 'unknown' | 'evm' | 'solana' | 'bitcoin' | 'cardano' | 'tron' | 'avalancheX' | 'tezos' | 'dogecoin' | 'ripple' | 'stellar' | 'litecoin' | 'sui' | 'aptos' | 'tvm';
4
4
  export type WalletBrowserEventTypeKeys = (typeof WALLET_BROWSER_EVENT_TYPE_KEYS)[number];
5
5
  export declare function isWalletBrowserEventTypeKey(key: string): key is WalletBrowserEventTypeKeys;
@@ -91,4 +91,11 @@ export interface WalletBrowserTransactionBatch extends WalletBrowserEventBase {
91
91
  }[];
92
92
  };
93
93
  }
94
+ export interface WalletBrowserWalletCapabilities extends WalletBrowserEventBase {
95
+ type: 'walletBrowserWalletCapabilities';
96
+ payload: {
97
+ from: string;
98
+ chainId: string;
99
+ };
100
+ }
94
101
  export {};
@@ -8,7 +8,8 @@ var WALLET_BROWSER_EVENT_TYPE_KEYS = [
8
8
  'walletBrowserNativeSmartDeposit',
9
9
  'walletBrowserNonNativeSmartDeposit',
10
10
  'walletBrowserDisconnect',
11
- 'walletBrowserTransactionBatchRequest'
11
+ 'walletBrowserTransactionBatchRequest',
12
+ 'walletBrowserWalletCapabilities'
12
13
  ];
13
14
  export function isWalletBrowserEventTypeKey(key) {
14
15
  return WALLET_BROWSER_EVENT_TYPE_KEYS.includes(key);