@meshconnect/web-link-sdk 3.1.12 → 3.2.1

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
@@ -53,8 +53,9 @@ import { WalletStrategyFactory } from './utils/wallet';
53
53
  var currentOptions;
54
54
  var targetOrigin;
55
55
  var linkTokenOrigin;
56
+ var currentIframeId = iframeId;
56
57
  var iframeElement = function () {
57
- return document.getElementById(iframeId);
58
+ return document.getElementById(currentIframeId);
58
59
  };
59
60
  function sendMessageToIframe(message) {
60
61
  var _a;
@@ -158,7 +159,7 @@ function handleLinkEvent(event) {
158
159
  }
159
160
  function handleWalletBrowserEvent(event) {
160
161
  return __awaiter(this, void 0, void 0, function () {
161
- 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, networkType, strategy, error_6;
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
163
  var _b;
163
164
  return __generator(this, function (_c) {
164
165
  switch (_c.label) {
@@ -173,9 +174,10 @@ function handleWalletBrowserEvent(event) {
173
174
  case 'walletBrowserNonNativeTransferRequest': return [3 /*break*/, 21];
174
175
  case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 21];
175
176
  case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/, 21];
176
- case 'walletBrowserDisconnect': return [3 /*break*/, 26];
177
+ case 'walletBrowserTransactionBatchRequest': return [3 /*break*/, 26];
178
+ case 'walletBrowserDisconnect': return [3 /*break*/, 31];
177
179
  }
178
- return [3 /*break*/, 34];
180
+ return [3 /*break*/, 39];
179
181
  case 1:
180
182
  payload = event.data.payload;
181
183
  _c.label = 2;
@@ -200,7 +202,7 @@ function handleWalletBrowserEvent(event) {
200
202
  console.error('Connection error:', error_1);
201
203
  handleErrorAndSendMessage(error_1, 'SDKinjectedConnectionCompleted');
202
204
  return [3 /*break*/, 5];
203
- case 5: return [3 /*break*/, 34];
205
+ case 5: return [3 /*break*/, 39];
204
206
  case 6:
205
207
  payload = event.data.payload;
206
208
  _c.label = 7;
@@ -220,7 +222,7 @@ function handleWalletBrowserEvent(event) {
220
222
  error_2 = _c.sent();
221
223
  handleErrorAndSendMessage(error_2, 'SDKsignRequestCompleted');
222
224
  return [3 /*break*/, 10];
223
- case 10: return [3 /*break*/, 34];
225
+ case 10: return [3 /*break*/, 39];
224
226
  case 11:
225
227
  payload = event.data.payload;
226
228
  _c.label = 12;
@@ -245,7 +247,7 @@ function handleWalletBrowserEvent(event) {
245
247
  console.error('Chain switch failed:', error_3);
246
248
  handleErrorAndSendMessage(error_3, 'SDKswitchChainCompleted');
247
249
  return [3 /*break*/, 15];
248
- case 15: return [3 /*break*/, 34];
250
+ case 15: return [3 /*break*/, 39];
249
251
  case 16:
250
252
  payload = event.data.payload;
251
253
  _c.label = 17;
@@ -265,7 +267,7 @@ function handleWalletBrowserEvent(event) {
265
267
  error_4 = _c.sent();
266
268
  handleErrorAndSendMessage(error_4, 'SDKnativeTransferCompleted');
267
269
  return [3 /*break*/, 20];
268
- case 20: return [3 /*break*/, 34];
270
+ case 20: return [3 /*break*/, 39];
269
271
  case 21:
270
272
  payload = event.data.payload;
271
273
  getResponseType = function (type) {
@@ -301,41 +303,64 @@ function handleWalletBrowserEvent(event) {
301
303
  errorType = getResponseType(event.data.type);
302
304
  handleErrorAndSendMessage(error_5, errorType);
303
305
  return [3 /*break*/, 25];
304
- case 25: return [3 /*break*/, 34];
306
+ case 25: return [3 /*break*/, 39];
305
307
  case 26:
306
308
  payload = event.data.payload;
309
+ responseType = 'SDKtransactionBatchCompleted';
307
310
  _c.label = 27;
308
311
  case 27:
309
- _c.trys.push([27, 32, , 33]);
310
- if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 29];
312
+ _c.trys.push([27, 29, , 30]);
313
+ networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
314
+ strategy = walletFactory.getStrategy(networkType);
315
+ return [4 /*yield*/, strategy.sendTransactionBatch(payload)];
316
+ case 28:
317
+ result = _c.sent();
318
+ sendMessageToIframe({
319
+ type: responseType,
320
+ payload: {
321
+ txHash: result
322
+ }
323
+ });
324
+ return [3 /*break*/, 30];
325
+ case 29:
326
+ error_6 = _c.sent();
327
+ handleErrorAndSendMessage(error_6, responseType);
328
+ return [3 /*break*/, 30];
329
+ case 30: return [3 /*break*/, 39];
330
+ case 31:
331
+ payload = event.data.payload;
332
+ _c.label = 32;
333
+ case 32:
334
+ _c.trys.push([32, 37, , 38]);
335
+ if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 34];
311
336
  networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
312
337
  strategy = walletFactory.getStrategy(networkType);
313
338
  return [4 /*yield*/, strategy.disconnect(payload)];
314
- case 28:
339
+ case 33:
315
340
  _c.sent();
316
- return [3 /*break*/, 31];
317
- case 29:
341
+ return [3 /*break*/, 36];
342
+ case 34:
318
343
  // Disconnect from all if no specific network type
319
344
  return [4 /*yield*/, Promise.all([
320
345
  walletFactory.getStrategy('solana').disconnect(payload),
321
346
  walletFactory.getStrategy('evm').disconnect(payload)
322
347
  ])];
323
- case 30:
348
+ case 35:
324
349
  // Disconnect from all if no specific network type
325
350
  _c.sent();
326
- _c.label = 31;
327
- case 31:
351
+ _c.label = 36;
352
+ case 36:
328
353
  sendMessageToIframe({
329
354
  type: 'SDKdisconnectSuccess'
330
355
  });
331
- return [3 /*break*/, 33];
332
- case 32:
333
- error_6 = _c.sent();
334
- console.error('Error during disconnect:', error_6);
335
- handleErrorAndSendMessage(error_6, 'SDKdisconnectSuccess');
336
- return [3 /*break*/, 33];
337
- case 33: return [3 /*break*/, 34];
338
- case 34: return [2 /*return*/];
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*/];
339
364
  }
340
365
  });
341
366
  });
@@ -372,24 +397,35 @@ function handleErrorAndSendMessage(error, messageType) {
372
397
  });
373
398
  }
374
399
  export var createLink = function (options) {
375
- var openLink = function (linkToken) { return __awaiter(void 0, void 0, void 0, function () {
376
- var linkUrl;
400
+ var openLink = function (linkToken, customIframeId) {
377
401
  var _a;
378
- return __generator(this, function (_b) {
379
- if (!linkToken) {
380
- (_a = options === null || options === void 0 ? void 0 : options.onExit) === null || _a === void 0 ? void 0 : _a.call(options, 'Invalid link token!');
381
- return [2 /*return*/];
402
+ if (!linkToken) {
403
+ (_a = options === null || options === void 0 ? void 0 : options.onExit) === null || _a === void 0 ? void 0 : _a.call(options, 'Invalid link token!');
404
+ return;
405
+ }
406
+ currentOptions = options;
407
+ var linkUrl = window.atob(linkToken);
408
+ linkUrl = addLanguage(linkUrl, currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.language);
409
+ linkTokenOrigin = new URL(linkUrl).origin;
410
+ window.removeEventListener('message', eventsListener);
411
+ if (customIframeId) {
412
+ var iframe = document.getElementById(customIframeId);
413
+ if (iframe) {
414
+ iframe.allow = 'clipboard-read *; clipboard-write *';
415
+ iframe.src = linkUrl;
416
+ currentIframeId = customIframeId;
382
417
  }
383
- currentOptions = options;
384
- linkUrl = window.atob(linkToken);
385
- linkTokenOrigin = new URL(linkUrl).origin;
386
- window.removeEventListener('message', eventsListener);
387
- addPopup(linkUrl, currentOptions === null || currentOptions === void 0 ? void 0 : currentOptions.language);
388
- window.addEventListener('message', eventsListener);
389
- targetOrigin = window.location.origin;
390
- return [2 /*return*/];
391
- });
392
- }); };
418
+ else {
419
+ console.warn("Mesh SDK: No iframe found with id ".concat(customIframeId));
420
+ }
421
+ }
422
+ else {
423
+ currentIframeId = iframeId;
424
+ addPopup(linkUrl);
425
+ }
426
+ window.addEventListener('message', eventsListener);
427
+ targetOrigin = window.location.origin;
428
+ };
393
429
  var closeLink = function () {
394
430
  var _a;
395
431
  removePopup();
@@ -401,3 +437,12 @@ export var createLink = function (options) {
401
437
  closeLink: closeLink
402
438
  };
403
439
  };
440
+ function addLanguage(linkUrl, language) {
441
+ if (language === 'system') {
442
+ language =
443
+ typeof navigator !== 'undefined' && navigator.language
444
+ ? encodeURIComponent(navigator.language)
445
+ : undefined;
446
+ }
447
+ return "".concat(linkUrl).concat(linkUrl.includes('?') ? '&' : '?', "lng=").concat(language || 'en');
448
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshconnect/web-link-sdk",
3
- "version": "3.1.12",
3
+ "version": "3.2.1",
4
4
  "description": "A client-side JS library for integrating with Mesh Connect",
5
5
  "exports": "./index.js",
6
6
  "license": "MIT",
@@ -7,3 +7,17 @@ export declare const sendEVMTransaction: (toAddress: string, amount: bigint, fro
7
7
  * Sends an EVM token transaction
8
8
  */
9
9
  export declare const sendEVMTokenTransaction: (contractAddress: string, abi: ethers.InterfaceAbi, functionName: string, args: unknown[], fromAddress: string) => Promise<string | Error>;
10
+ /**
11
+ * Sends a batch of EVM transactions
12
+ */
13
+ export declare const sendEVMTransactionBatch: (params: {
14
+ version: string;
15
+ from: string;
16
+ chainId: string;
17
+ atomicRequired: boolean;
18
+ calls: {
19
+ to: string;
20
+ value: string;
21
+ data?: string;
22
+ }[];
23
+ }) => Promise<string | Error>;
@@ -210,3 +210,67 @@ function toSafeNumber(value, name) {
210
210
  }
211
211
  return value;
212
212
  }
213
+ /**
214
+ * Sends a batch of EVM transactions
215
+ */
216
+ export var sendEVMTransactionBatch = function (params) { return __awaiter(void 0, void 0, void 0, function () {
217
+ var activeRawProvider, provider, response, result, txError_3, error_3;
218
+ var _a, _b;
219
+ return __generator(this, function (_c) {
220
+ switch (_c.label) {
221
+ case 0:
222
+ _c.trys.push([0, 10, , 11]);
223
+ activeRawProvider = getActiveRawProvider();
224
+ if (!activeRawProvider) {
225
+ throw new Error('No active EVM provider');
226
+ }
227
+ provider = new ethers.BrowserProvider(activeRawProvider);
228
+ _c.label = 1;
229
+ case 1:
230
+ _c.trys.push([1, 8, , 9]);
231
+ return [4 /*yield*/, provider.send('wallet_sendCalls', [params])
232
+ // Wait for transaction confirmation
233
+ ];
234
+ case 2:
235
+ response = _c.sent();
236
+ result = void 0;
237
+ _c.label = 3;
238
+ case 3: return [4 /*yield*/, provider.send('wallet_getCallsStatus', [response.id])
239
+ // wait 1 second if receipt is not yet available
240
+ ];
241
+ case 4:
242
+ result = _c.sent();
243
+ if (!(result.status == 100)) return [3 /*break*/, 6];
244
+ return [4 /*yield*/, new Promise(function (resolve) { return setTimeout(resolve, 1000); })];
245
+ case 5:
246
+ _c.sent();
247
+ _c.label = 6;
248
+ case 6:
249
+ if (result.status == 100) return [3 /*break*/, 3];
250
+ _c.label = 7;
251
+ case 7: return [2 /*return*/, (result === null || result === void 0 ? void 0 : result.status) != 200
252
+ ? new Error('Failed to send batched transactions')
253
+ : (_b = (_a = result.receipts.find(function (x) { return x; })) === null || _a === void 0 ? void 0 : _a.transactionHash) !== null && _b !== void 0 ? _b : new Error('Failed to get batched transactions receipt')];
254
+ case 8:
255
+ txError_3 = _c.sent();
256
+ if (isUserRejection(txError_3)) {
257
+ return [2 /*return*/, new Error('Transaction was rejected by user')];
258
+ }
259
+ throw txError_3;
260
+ case 9: return [3 /*break*/, 11];
261
+ case 10:
262
+ error_3 = _c.sent();
263
+ console.error('Token transaction error:', error_3);
264
+ if (isUserRejection(error_3)) {
265
+ return [2 /*return*/, new Error('Transaction was rejected by user')];
266
+ }
267
+ if (error_3.code === 'NETWORK_ERROR') {
268
+ return [2 /*return*/, new Error('Network changed during transaction. Please try again.')];
269
+ }
270
+ return [2 /*return*/, error_3 instanceof Error
271
+ ? error_3
272
+ : new Error('Failed to send token transaction')];
273
+ case 11: return [2 /*return*/];
274
+ }
275
+ });
276
+ }); };
package/utils/popup.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export declare const iframeId = "mesh-link-popup__iframe";
2
2
  export declare function removePopup(): void;
3
- export declare function addPopup(iframeLink: string, language: string | undefined): void;
3
+ export declare function addPopup(iframeLink: string): void;
package/utils/popup.js CHANGED
@@ -12,14 +12,13 @@ export function removePopup() {
12
12
  var existingStyles = window.document.getElementById(stylesId);
13
13
  (_b = existingStyles === null || existingStyles === void 0 ? void 0 : existingStyles.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(existingStyles);
14
14
  }
15
- export function addPopup(iframeLink, language) {
15
+ export function addPopup(iframeLink) {
16
16
  removePopup();
17
17
  var styleElement = document.createElement('style');
18
18
  styleElement.id = stylesId;
19
19
  var style = getLinkStyle(iframeLink);
20
20
  styleElement.textContent = getStylesContent(style);
21
21
  window.document.head.appendChild(styleElement);
22
- iframeLink = "".concat(iframeLink).concat(iframeLink.includes('?') ? '&' : '?', "lng=").concat(language || 'en');
23
22
  var popupRootElement = document.createElement('div');
24
23
  popupRootElement.id = popupId;
25
24
  var popupBackdropElement = document.createElement('div');
package/utils/types.d.ts CHANGED
@@ -4,8 +4,10 @@ export type EventType = 'brokerageAccountAccessToken' | 'delayedAuthentication'
4
4
  export interface Link {
5
5
  /**
6
6
  * A function that takes linkToken parameter from `/api/v1/linktoken` endpoint as an input, and opens the Link UI popup
7
+ * @param linkToken - Base64 encoded link token from the `/api/v1/linktoken` endpoint
8
+ * @param customIframeId - Optional custom ID for the existing iframe element. If not provided, a new iframe element will be created
7
9
  */
8
- openLink: (linkToken: string) => Promise<void>;
10
+ openLink: (linkToken: string, customIframeId?: string) => void;
9
11
  /**
10
12
  * A function to close Link UI popup
11
13
  */
@@ -136,6 +138,17 @@ export interface SmartContractPayload {
136
138
  maxFeePerGas?: number | null;
137
139
  maxPriorityFeePerGas?: number | null;
138
140
  }
141
+ export interface TransactionBatchPayload {
142
+ version: string;
143
+ from: string;
144
+ chainId: string;
145
+ atomicRequired: boolean;
146
+ calls: {
147
+ to: string;
148
+ value: string;
149
+ data?: string;
150
+ }[];
151
+ }
139
152
  export interface DisconnectPayload {
140
153
  networkType?: string;
141
154
  walletName?: string;
@@ -1 +1 @@
1
- export declare const sdkVersion = "3.1.12";
1
+ export declare const sdkVersion = "3.2.1";
package/utils/version.js CHANGED
@@ -1 +1 @@
1
- export var sdkVersion = '3.1.12';
1
+ export var sdkVersion = '3.2.1';
@@ -1,5 +1,5 @@
1
1
  import { BaseWalletStrategy } from './WalletStrategy';
2
- import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload } from '../types';
2
+ import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload } from '../types';
3
3
  export declare class EVMWalletStrategy extends BaseWalletStrategy {
4
4
  connect(payload: WalletBrowserPayload): Promise<{
5
5
  accounts: string[];
@@ -14,6 +14,7 @@ export declare class EVMWalletStrategy extends BaseWalletStrategy {
14
14
  }>;
15
15
  sendNativeTransfer(payload: TransferPayload): Promise<string>;
16
16
  sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
17
+ sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
17
18
  getProviders(): {
18
19
  icon: string | undefined;
19
20
  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 } from '../connectors/evm';
53
+ import { connectToEVMWallet, disconnectFromEVMWallet, signEVMMessage, sendEVMTransaction, sendEVMTokenTransaction, switchEVMChain, findAvailableProviders, sendEVMTransactionBatch } from '../connectors/evm';
54
54
  var EVMWalletStrategy = /** @class */ (function (_super) {
55
55
  __extends(EVMWalletStrategy, _super);
56
56
  function EVMWalletStrategy() {
@@ -192,6 +192,28 @@ var EVMWalletStrategy = /** @class */ (function (_super) {
192
192
  });
193
193
  });
194
194
  };
195
+ EVMWalletStrategy.prototype.sendTransactionBatch = function (payload) {
196
+ return __awaiter(this, void 0, void 0, function () {
197
+ var result, error_7;
198
+ return __generator(this, function (_a) {
199
+ switch (_a.label) {
200
+ case 0:
201
+ _a.trys.push([0, 2, , 3]);
202
+ return [4 /*yield*/, sendEVMTransactionBatch(payload)];
203
+ case 1:
204
+ result = _a.sent();
205
+ if (result instanceof Error) {
206
+ throw result;
207
+ }
208
+ return [2 /*return*/, result];
209
+ case 2:
210
+ error_7 = _a.sent();
211
+ throw this.handleError(error_7, 'send EVM smart contract interaction');
212
+ case 3: return [2 /*return*/];
213
+ }
214
+ });
215
+ });
216
+ };
195
217
  EVMWalletStrategy.prototype.getProviders = function () {
196
218
  return findAvailableProviders().map(function (provider) { return ({
197
219
  icon: provider.icon,
@@ -18,6 +18,7 @@ export declare class SolanaWalletStrategy extends BaseWalletStrategy {
18
18
  }>;
19
19
  sendNativeTransfer(payload: TransferPayload): Promise<string>;
20
20
  sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
21
+ sendTransactionBatch(): Promise<string>;
21
22
  getProviders(): {
22
23
  id: string;
23
24
  type: string;
@@ -209,6 +209,9 @@ var SolanaWalletStrategy = /** @class */ (function (_super) {
209
209
  });
210
210
  });
211
211
  };
212
+ SolanaWalletStrategy.prototype.sendTransactionBatch = function () {
213
+ throw new Error('Method not implemented.');
214
+ };
212
215
  SolanaWalletStrategy.prototype.getProviders = function () {
213
216
  var solanaProviderMap = findAvailableSolanaProviders();
214
217
  return Object.keys(solanaProviderMap).map(function (id) { return ({
@@ -1,4 +1,4 @@
1
- import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload } from '../types';
1
+ import { WalletBrowserPayload, SignRequestPayload, ChainSwitchPayload, TransferPayload, SmartContractPayload, DisconnectPayload, TransactionBatchPayload } from '../types';
2
2
  export interface WalletStrategy {
3
3
  connect(payload: WalletBrowserPayload): Promise<{
4
4
  accounts: string[];
@@ -13,6 +13,7 @@ export interface WalletStrategy {
13
13
  }>;
14
14
  sendNativeTransfer(payload: TransferPayload): Promise<string>;
15
15
  sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
16
+ sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
16
17
  getProviders(): {
17
18
  id: string;
18
19
  type: string;
@@ -34,6 +35,7 @@ export declare abstract class BaseWalletStrategy implements WalletStrategy {
34
35
  }>;
35
36
  abstract sendNativeTransfer(payload: TransferPayload): Promise<string>;
36
37
  abstract sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
38
+ abstract sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
37
39
  abstract getProviders(): {
38
40
  id: string;
39
41
  type: string;
@@ -1,5 +1,5 @@
1
- export type WalletBrowserEventType = WalletBrowserInjectedWalletSelected | WalletBrowserSignRequest | WalletBrowserChainSwitchRequest | WalletBrowserTransferBalanceRequest | WalletBrowserNativeTransferRequest | WalletBrowserNonNativeTransferRequest | WalletBrowserNativeSmartDeposit | WalletBrowserNonNativeSmartDeposit | WalletBrowserDisconnect;
2
- declare const WALLET_BROWSER_EVENT_TYPE_KEYS: readonly ["walletBrowserInjectedWalletSelected", "walletBrowserSignRequest", "walletBrowserChainSwitchRequest", "walletBrowserTransferBalanceRequest", "walletBrowserNativeTransferRequest", "walletBrowserNonNativeTransferRequest", "walletBrowserNativeSmartDeposit", "walletBrowserNonNativeSmartDeposit", "walletBrowserDisconnect"];
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"];
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;
@@ -77,4 +77,18 @@ export interface WalletBrowserDisconnect extends WalletBrowserEventBase {
77
77
  walletName?: string;
78
78
  };
79
79
  }
80
+ export interface WalletBrowserTransactionBatch extends WalletBrowserEventBase {
81
+ type: 'walletBrowserTransactionBatchRequest';
82
+ payload: {
83
+ version: string;
84
+ from: string;
85
+ chainId: string;
86
+ atomicRequired: boolean;
87
+ calls: {
88
+ to: string;
89
+ value: string;
90
+ data?: string;
91
+ }[];
92
+ };
93
+ }
80
94
  export {};
@@ -7,7 +7,8 @@ var WALLET_BROWSER_EVENT_TYPE_KEYS = [
7
7
  'walletBrowserNonNativeTransferRequest',
8
8
  'walletBrowserNativeSmartDeposit',
9
9
  'walletBrowserNonNativeSmartDeposit',
10
- 'walletBrowserDisconnect'
10
+ 'walletBrowserDisconnect',
11
+ 'walletBrowserTransactionBatchRequest'
11
12
  ];
12
13
  export function isWalletBrowserEventTypeKey(key) {
13
14
  return WALLET_BROWSER_EVENT_TYPE_KEYS.includes(key);