@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 +86 -41
- package/package.json +1 -1
- package/utils/connectors/evm/transactions.d.ts +14 -0
- package/utils/connectors/evm/transactions.js +64 -0
- package/utils/popup.d.ts +1 -1
- package/utils/popup.js +1 -2
- package/utils/types.d.ts +14 -1
- package/utils/version.d.ts +1 -1
- package/utils/version.js +1 -1
- package/utils/wallet/EVMWalletStrategy.d.ts +2 -1
- package/utils/wallet/EVMWalletStrategy.js +23 -1
- package/utils/wallet/SolanaWalletStrategy.d.ts +1 -0
- package/utils/wallet/SolanaWalletStrategy.js +3 -0
- package/utils/wallet/WalletStrategy.d.ts +3 -1
- package/utils/wallet-browser-event-types.d.ts +16 -2
- package/utils/wallet-browser-event-types.js +2 -1
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(
|
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 '
|
177
|
+
case 'walletBrowserTransactionBatchRequest': return [3 /*break*/, 26];
|
178
|
+
case 'walletBrowserDisconnect': return [3 /*break*/, 31];
|
177
179
|
}
|
178
|
-
return [3 /*break*/,
|
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*/,
|
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*/,
|
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*/,
|
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*/,
|
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*/,
|
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,
|
310
|
-
|
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
|
339
|
+
case 33:
|
315
340
|
_c.sent();
|
316
|
-
return [3 /*break*/,
|
317
|
-
case
|
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
|
348
|
+
case 35:
|
324
349
|
// Disconnect from all if no specific network type
|
325
350
|
_c.sent();
|
326
|
-
_c.label =
|
327
|
-
case
|
351
|
+
_c.label = 36;
|
352
|
+
case 36:
|
328
353
|
sendMessageToIframe({
|
329
354
|
type: 'SDKdisconnectSuccess'
|
330
355
|
});
|
331
|
-
return [3 /*break*/,
|
332
|
-
case
|
333
|
-
|
334
|
-
console.error('Error during disconnect:',
|
335
|
-
handleErrorAndSendMessage(
|
336
|
-
return [3 /*break*/,
|
337
|
-
case
|
338
|
-
case
|
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
|
376
|
-
var linkUrl;
|
400
|
+
var openLink = function (linkToken, customIframeId) {
|
377
401
|
var _a;
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
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
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
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
@@ -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
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
|
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) =>
|
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;
|
package/utils/version.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export declare const sdkVersion = "3.1
|
1
|
+
export declare const sdkVersion = "3.2.1";
|
package/utils/version.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export var sdkVersion = '3.1
|
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);
|