@meshconnect/web-link-sdk 3.2.2 → 3.2.4
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 +72 -36
- package/package.json +1 -1
- package/utils/connectors/evm/transactions.d.ts +4 -0
- package/utils/connectors/evm/transactions.js +95 -10
- package/utils/connectors/evm/walletConnection.js +34 -21
- package/utils/version.d.ts +1 -1
- package/utils/version.js +1 -1
- package/utils/wallet/EVMWalletStrategy.d.ts +1 -0
- package/utils/wallet/EVMWalletStrategy.js +25 -3
- package/utils/wallet/SolanaWalletStrategy.d.ts +1 -0
- package/utils/wallet/SolanaWalletStrategy.js +3 -0
- package/utils/wallet/WalletStrategy.d.ts +2 -0
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,
|
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, 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;
|
163
163
|
var _b;
|
164
164
|
return __generator(this, function (_c) {
|
165
165
|
switch (_c.label) {
|
@@ -172,13 +172,13 @@ function handleWalletBrowserEvent(event) {
|
|
172
172
|
case 'walletBrowserChainSwitchRequest': return [3 /*break*/, 11];
|
173
173
|
case 'walletBrowserNativeTransferRequest': return [3 /*break*/, 16];
|
174
174
|
case 'walletBrowserNonNativeTransferRequest': return [3 /*break*/, 21];
|
175
|
-
case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 21];
|
176
175
|
case 'walletBrowserNonNativeSmartDeposit': return [3 /*break*/, 21];
|
177
|
-
case '
|
178
|
-
case '
|
179
|
-
case '
|
176
|
+
case 'walletBrowserNativeSmartDeposit': return [3 /*break*/, 26];
|
177
|
+
case 'walletBrowserTransactionBatchRequest': return [3 /*break*/, 31];
|
178
|
+
case 'walletBrowserWalletCapabilities': return [3 /*break*/, 36];
|
179
|
+
case 'walletBrowserDisconnect': return [3 /*break*/, 41];
|
180
180
|
}
|
181
|
-
return [3 /*break*/,
|
181
|
+
return [3 /*break*/, 49];
|
182
182
|
case 1:
|
183
183
|
payload = event.data.payload;
|
184
184
|
_c.label = 2;
|
@@ -203,7 +203,7 @@ function handleWalletBrowserEvent(event) {
|
|
203
203
|
console.error('Connection error:', error_1);
|
204
204
|
handleErrorAndSendMessage(error_1, 'SDKinjectedConnectionCompleted');
|
205
205
|
return [3 /*break*/, 5];
|
206
|
-
case 5: return [3 /*break*/,
|
206
|
+
case 5: return [3 /*break*/, 49];
|
207
207
|
case 6:
|
208
208
|
payload = event.data.payload;
|
209
209
|
_c.label = 7;
|
@@ -223,7 +223,7 @@ function handleWalletBrowserEvent(event) {
|
|
223
223
|
error_2 = _c.sent();
|
224
224
|
handleErrorAndSendMessage(error_2, 'SDKsignRequestCompleted');
|
225
225
|
return [3 /*break*/, 10];
|
226
|
-
case 10: return [3 /*break*/,
|
226
|
+
case 10: return [3 /*break*/, 49];
|
227
227
|
case 11:
|
228
228
|
payload = event.data.payload;
|
229
229
|
_c.label = 12;
|
@@ -248,7 +248,7 @@ function handleWalletBrowserEvent(event) {
|
|
248
248
|
console.error('Chain switch failed:', error_3);
|
249
249
|
handleErrorAndSendMessage(error_3, 'SDKswitchChainCompleted');
|
250
250
|
return [3 /*break*/, 15];
|
251
|
-
case 15: return [3 /*break*/,
|
251
|
+
case 15: return [3 /*break*/, 49];
|
252
252
|
case 16:
|
253
253
|
payload = event.data.payload;
|
254
254
|
_c.label = 17;
|
@@ -268,7 +268,7 @@ function handleWalletBrowserEvent(event) {
|
|
268
268
|
error_4 = _c.sent();
|
269
269
|
handleErrorAndSendMessage(error_4, 'SDKnativeTransferCompleted');
|
270
270
|
return [3 /*break*/, 20];
|
271
|
-
case 20: return [3 /*break*/,
|
271
|
+
case 20: return [3 /*break*/, 49];
|
272
272
|
case 21:
|
273
273
|
payload = event.data.payload;
|
274
274
|
getResponseType = function (type) {
|
@@ -304,18 +304,30 @@ function handleWalletBrowserEvent(event) {
|
|
304
304
|
errorType = getResponseType(event.data.type);
|
305
305
|
handleErrorAndSendMessage(error_5, errorType);
|
306
306
|
return [3 /*break*/, 25];
|
307
|
-
case 25: return [3 /*break*/,
|
307
|
+
case 25: return [3 /*break*/, 49];
|
308
308
|
case 26:
|
309
309
|
payload = event.data.payload;
|
310
|
-
|
310
|
+
getResponseType = function (type) {
|
311
|
+
switch (type) {
|
312
|
+
case 'walletBrowserNonNativeTransferRequest':
|
313
|
+
return 'SDKnonNativeTransferCompleted';
|
314
|
+
case 'walletBrowserNativeSmartDeposit':
|
315
|
+
return 'SDKnativeSmartDepositCompleted';
|
316
|
+
case 'walletBrowserNonNativeSmartDeposit':
|
317
|
+
return 'SDKnonNativeSmartDepositCompleted';
|
318
|
+
default:
|
319
|
+
return 'SDKnonNativeTransferCompleted';
|
320
|
+
}
|
321
|
+
};
|
311
322
|
_c.label = 27;
|
312
323
|
case 27:
|
313
324
|
_c.trys.push([27, 29, , 30]);
|
314
|
-
networkType = (payload.
|
325
|
+
networkType = (payload.address.startsWith('0x') ? 'evm' : 'solana');
|
315
326
|
strategy = walletFactory.getStrategy(networkType);
|
316
|
-
return [4 /*yield*/, strategy.
|
327
|
+
return [4 /*yield*/, strategy.sendNativeSmartContractInteraction(payload)];
|
317
328
|
case 28:
|
318
329
|
result = _c.sent();
|
330
|
+
responseType = getResponseType(event.data.type);
|
319
331
|
sendMessageToIframe({
|
320
332
|
type: responseType,
|
321
333
|
payload: {
|
@@ -325,64 +337,88 @@ function handleWalletBrowserEvent(event) {
|
|
325
337
|
return [3 /*break*/, 30];
|
326
338
|
case 29:
|
327
339
|
error_6 = _c.sent();
|
328
|
-
|
340
|
+
errorType = getResponseType(event.data.type);
|
341
|
+
handleErrorAndSendMessage(error_6, errorType);
|
329
342
|
return [3 /*break*/, 30];
|
330
|
-
case 30: return [3 /*break*/,
|
343
|
+
case 30: return [3 /*break*/, 49];
|
331
344
|
case 31:
|
332
345
|
payload = event.data.payload;
|
333
|
-
responseType = '
|
346
|
+
responseType = 'SDKtransactionBatchCompleted';
|
334
347
|
_c.label = 32;
|
335
348
|
case 32:
|
336
349
|
_c.trys.push([32, 34, , 35]);
|
337
350
|
networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
|
338
351
|
strategy = walletFactory.getStrategy(networkType);
|
339
|
-
return [4 /*yield*/, strategy.
|
352
|
+
return [4 /*yield*/, strategy.sendTransactionBatch(payload)];
|
340
353
|
case 33:
|
341
354
|
result = _c.sent();
|
342
355
|
sendMessageToIframe({
|
343
356
|
type: responseType,
|
344
|
-
payload:
|
357
|
+
payload: {
|
358
|
+
txHash: result
|
359
|
+
}
|
345
360
|
});
|
346
361
|
return [3 /*break*/, 35];
|
347
362
|
case 34:
|
348
363
|
error_7 = _c.sent();
|
349
364
|
handleErrorAndSendMessage(error_7, responseType);
|
350
365
|
return [3 /*break*/, 35];
|
351
|
-
case 35: return [3 /*break*/,
|
366
|
+
case 35: return [3 /*break*/, 49];
|
352
367
|
case 36:
|
353
368
|
payload = event.data.payload;
|
369
|
+
responseType = 'SDKwalletCapabilitiesCompleted';
|
354
370
|
_c.label = 37;
|
355
371
|
case 37:
|
356
|
-
_c.trys.push([37,
|
357
|
-
|
372
|
+
_c.trys.push([37, 39, , 40]);
|
373
|
+
networkType = (payload.from.startsWith('0x') ? 'evm' : 'solana');
|
374
|
+
strategy = walletFactory.getStrategy(networkType);
|
375
|
+
return [4 /*yield*/, strategy.getWalletCapabilities(payload)];
|
376
|
+
case 38:
|
377
|
+
result = _c.sent();
|
378
|
+
sendMessageToIframe({
|
379
|
+
type: responseType,
|
380
|
+
payload: result
|
381
|
+
});
|
382
|
+
return [3 /*break*/, 40];
|
383
|
+
case 39:
|
384
|
+
error_8 = _c.sent();
|
385
|
+
handleErrorAndSendMessage(error_8, responseType);
|
386
|
+
return [3 /*break*/, 40];
|
387
|
+
case 40: return [3 /*break*/, 49];
|
388
|
+
case 41:
|
389
|
+
payload = event.data.payload;
|
390
|
+
_c.label = 42;
|
391
|
+
case 42:
|
392
|
+
_c.trys.push([42, 47, , 48]);
|
393
|
+
if (!(payload === null || payload === void 0 ? void 0 : payload.networkType)) return [3 /*break*/, 44];
|
358
394
|
networkType = (payload.networkType === 'solana' ? 'solana' : 'evm');
|
359
395
|
strategy = walletFactory.getStrategy(networkType);
|
360
396
|
return [4 /*yield*/, strategy.disconnect(payload)];
|
361
|
-
case
|
397
|
+
case 43:
|
362
398
|
_c.sent();
|
363
|
-
return [3 /*break*/,
|
364
|
-
case
|
399
|
+
return [3 /*break*/, 46];
|
400
|
+
case 44:
|
365
401
|
// Disconnect from all if no specific network type
|
366
402
|
return [4 /*yield*/, Promise.all([
|
367
403
|
walletFactory.getStrategy('solana').disconnect(payload),
|
368
404
|
walletFactory.getStrategy('evm').disconnect(payload)
|
369
405
|
])];
|
370
|
-
case
|
406
|
+
case 45:
|
371
407
|
// Disconnect from all if no specific network type
|
372
408
|
_c.sent();
|
373
|
-
_c.label =
|
374
|
-
case
|
409
|
+
_c.label = 46;
|
410
|
+
case 46:
|
375
411
|
sendMessageToIframe({
|
376
412
|
type: 'SDKdisconnectSuccess'
|
377
413
|
});
|
378
|
-
return [3 /*break*/,
|
379
|
-
case
|
380
|
-
|
381
|
-
console.error('Error during disconnect:',
|
382
|
-
handleErrorAndSendMessage(
|
383
|
-
return [3 /*break*/,
|
384
|
-
case
|
385
|
-
case
|
414
|
+
return [3 /*break*/, 48];
|
415
|
+
case 47:
|
416
|
+
error_9 = _c.sent();
|
417
|
+
console.error('Error during disconnect:', error_9);
|
418
|
+
handleErrorAndSendMessage(error_9, 'SDKdisconnectSuccess');
|
419
|
+
return [3 /*break*/, 48];
|
420
|
+
case 48: return [3 /*break*/, 49];
|
421
|
+
case 49: return [2 /*return*/];
|
386
422
|
}
|
387
423
|
});
|
388
424
|
});
|
package/package.json
CHANGED
@@ -7,6 +7,10 @@ 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 an native smart contract transaction
|
12
|
+
*/
|
13
|
+
export declare const sendNativeSmartContractTransaction: (contractAddress: string, abi: ethers.InterfaceAbi, functionName: string, args: unknown[], fromAddress: string, value?: string) => Promise<string | Error>;
|
10
14
|
/**
|
11
15
|
* Sends a batch of EVM transactions
|
12
16
|
*/
|
@@ -204,6 +204,91 @@ export var sendEVMTokenTransaction = function (contractAddress, abi, functionNam
|
|
204
204
|
}
|
205
205
|
});
|
206
206
|
}); };
|
207
|
+
/**
|
208
|
+
* Sends an native smart contract transaction
|
209
|
+
*/
|
210
|
+
export var sendNativeSmartContractTransaction = function (contractAddress, abi, functionName, args, fromAddress, value) { return __awaiter(void 0, void 0, void 0, function () {
|
211
|
+
var activeRawProvider, chainIdHex, chainId, provider, signer, network, contract, txOptions, gasLimit, maxFeePerGas, maxPriorityFeePerGas, tx, receipt, txError_3, error_3;
|
212
|
+
return __generator(this, function (_a) {
|
213
|
+
switch (_a.label) {
|
214
|
+
case 0:
|
215
|
+
_a.trys.push([0, 9, , 10]);
|
216
|
+
activeRawProvider = getActiveRawProvider();
|
217
|
+
if (!activeRawProvider) {
|
218
|
+
throw new Error('No active EVM provider');
|
219
|
+
}
|
220
|
+
return [4 /*yield*/, activeRawProvider.request({
|
221
|
+
method: 'eth_chainId'
|
222
|
+
})];
|
223
|
+
case 1:
|
224
|
+
chainIdHex = _a.sent();
|
225
|
+
chainId = parseInt(chainIdHex, 16);
|
226
|
+
provider = new ethers.BrowserProvider(activeRawProvider);
|
227
|
+
return [4 /*yield*/, provider.getSigner(fromAddress)
|
228
|
+
// Verify we're still on the same network before proceeding
|
229
|
+
];
|
230
|
+
case 2:
|
231
|
+
signer = _a.sent();
|
232
|
+
return [4 /*yield*/, provider.getNetwork()];
|
233
|
+
case 3:
|
234
|
+
network = _a.sent();
|
235
|
+
if (Number(network.chainId) !== chainId) {
|
236
|
+
throw new Error('Network changed during transaction setup');
|
237
|
+
}
|
238
|
+
contract = new ethers.Contract(contractAddress, abi, signer);
|
239
|
+
txOptions = {};
|
240
|
+
gasLimit = (args === null || args === void 0 ? void 0 : args[1]) !== undefined ? toSafeNumber(args[1], 'gasLimit') : undefined;
|
241
|
+
maxFeePerGas = (args === null || args === void 0 ? void 0 : args[2]) !== undefined
|
242
|
+
? toSafeNumber(args[2], 'maxFeePerGas')
|
243
|
+
: undefined;
|
244
|
+
maxPriorityFeePerGas = (args === null || args === void 0 ? void 0 : args[3]) !== undefined
|
245
|
+
? toSafeNumber(args[3], 'maxPriorityFeePerGas')
|
246
|
+
: undefined;
|
247
|
+
txOptions.gasLimit = gasLimit ? BigInt(Math.floor(gasLimit)) : undefined;
|
248
|
+
txOptions.maxFeePerGas = maxFeePerGas
|
249
|
+
? BigInt(Math.floor(maxFeePerGas))
|
250
|
+
: undefined;
|
251
|
+
txOptions.maxPriorityFeePerGas = maxPriorityFeePerGas
|
252
|
+
? BigInt(Math.floor(maxPriorityFeePerGas))
|
253
|
+
: undefined;
|
254
|
+
if (value) {
|
255
|
+
txOptions.value = value;
|
256
|
+
}
|
257
|
+
_a.label = 4;
|
258
|
+
case 4:
|
259
|
+
_a.trys.push([4, 7, , 8]);
|
260
|
+
return [4 /*yield*/, contract[functionName](args[0], txOptions)
|
261
|
+
// Wait for transaction confirmation
|
262
|
+
];
|
263
|
+
case 5:
|
264
|
+
tx = _a.sent();
|
265
|
+
return [4 /*yield*/, tx.wait()];
|
266
|
+
case 6:
|
267
|
+
receipt = _a.sent();
|
268
|
+
return [2 /*return*/, receipt ? receipt.hash : ''];
|
269
|
+
case 7:
|
270
|
+
txError_3 = _a.sent();
|
271
|
+
if (isUserRejection(txError_3)) {
|
272
|
+
return [2 /*return*/, new Error('Transaction was rejected by user')];
|
273
|
+
}
|
274
|
+
throw txError_3;
|
275
|
+
case 8: return [3 /*break*/, 10];
|
276
|
+
case 9:
|
277
|
+
error_3 = _a.sent();
|
278
|
+
console.error('Token transaction error:', error_3);
|
279
|
+
if (isUserRejection(error_3)) {
|
280
|
+
return [2 /*return*/, new Error('Transaction was rejected by user')];
|
281
|
+
}
|
282
|
+
if (error_3.code === 'NETWORK_ERROR') {
|
283
|
+
return [2 /*return*/, new Error('Network changed during transaction. Please try again.')];
|
284
|
+
}
|
285
|
+
return [2 /*return*/, error_3 instanceof Error
|
286
|
+
? error_3
|
287
|
+
: new Error('Failed to send token transaction')];
|
288
|
+
case 10: return [2 /*return*/];
|
289
|
+
}
|
290
|
+
});
|
291
|
+
}); };
|
207
292
|
function toSafeNumber(value, name) {
|
208
293
|
if (typeof value !== 'number' || Number.isNaN(value)) {
|
209
294
|
throw new TypeError("Invalid ".concat(name, ": expected a number, got ").concat(typeof value, " (").concat(value, ")"));
|
@@ -214,7 +299,7 @@ function toSafeNumber(value, name) {
|
|
214
299
|
* Sends a batch of EVM transactions
|
215
300
|
*/
|
216
301
|
export var sendEVMTransactionBatch = function (params) { return __awaiter(void 0, void 0, void 0, function () {
|
217
|
-
var activeRawProvider, provider, response, result,
|
302
|
+
var activeRawProvider, provider, response, result, txError_4, error_4;
|
218
303
|
var _a, _b;
|
219
304
|
return __generator(this, function (_c) {
|
220
305
|
switch (_c.label) {
|
@@ -252,23 +337,23 @@ export var sendEVMTransactionBatch = function (params) { return __awaiter(void 0
|
|
252
337
|
? new Error('Failed to send batched transactions')
|
253
338
|
: (_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
339
|
case 8:
|
255
|
-
|
256
|
-
if (isUserRejection(
|
340
|
+
txError_4 = _c.sent();
|
341
|
+
if (isUserRejection(txError_4)) {
|
257
342
|
return [2 /*return*/, new Error('Transaction was rejected by user')];
|
258
343
|
}
|
259
|
-
throw
|
344
|
+
throw txError_4;
|
260
345
|
case 9: return [3 /*break*/, 11];
|
261
346
|
case 10:
|
262
|
-
|
263
|
-
console.error('Token transaction error:',
|
264
|
-
if (isUserRejection(
|
347
|
+
error_4 = _c.sent();
|
348
|
+
console.error('Token transaction error:', error_4);
|
349
|
+
if (isUserRejection(error_4)) {
|
265
350
|
return [2 /*return*/, new Error('Transaction was rejected by user')];
|
266
351
|
}
|
267
|
-
if (
|
352
|
+
if (error_4.code === 'NETWORK_ERROR') {
|
268
353
|
return [2 /*return*/, new Error('Network changed during transaction. Please try again.')];
|
269
354
|
}
|
270
|
-
return [2 /*return*/,
|
271
|
-
?
|
355
|
+
return [2 /*return*/, error_4 instanceof Error
|
356
|
+
? error_4
|
272
357
|
: new Error('Failed to send token transaction')];
|
273
358
|
case 11: return [2 /*return*/];
|
274
359
|
}
|
@@ -50,7 +50,10 @@ export var getEVMProvider = function (walletName, walletDetail) {
|
|
50
50
|
throw new Error('Wallet name is required');
|
51
51
|
}
|
52
52
|
var providers = findAvailableProviders();
|
53
|
-
var matchingProvider = providers.find(function (p) {
|
53
|
+
var matchingProvider = providers.find(function (p) {
|
54
|
+
return p.name.toLowerCase() === walletName.toLowerCase() ||
|
55
|
+
p.name.toLowerCase().includes(walletName.toLowerCase());
|
56
|
+
});
|
54
57
|
if (matchingProvider) {
|
55
58
|
return matchingProvider.injectedData.provider;
|
56
59
|
}
|
@@ -63,11 +66,11 @@ export var getEVMProvider = function (walletName, walletDetail) {
|
|
63
66
|
* Connects to an EVM wallet
|
64
67
|
*/
|
65
68
|
export var connectToEVMWallet = function (walletName, targetChainId, walletDetail) { return __awaiter(void 0, void 0, void 0, function () {
|
66
|
-
var provider, browserProvider, existingAccounts, signer, address, chainId, switchResult,
|
69
|
+
var provider, browserProvider, existingAccounts, error_1, signer, address, chainId, switchResult, error_2;
|
67
70
|
return __generator(this, function (_a) {
|
68
71
|
switch (_a.label) {
|
69
72
|
case 0:
|
70
|
-
_a.trys.push([0,
|
73
|
+
_a.trys.push([0, 12, , 13]);
|
71
74
|
provider = void 0;
|
72
75
|
try {
|
73
76
|
provider = getEVMProvider(walletName, walletDetail);
|
@@ -77,46 +80,56 @@ export var connectToEVMWallet = function (walletName, targetChainId, walletDetai
|
|
77
80
|
}
|
78
81
|
browserProvider = new ethers.BrowserProvider(provider);
|
79
82
|
setActiveEVMProvider(browserProvider, provider);
|
80
|
-
|
83
|
+
existingAccounts = void 0;
|
84
|
+
_a.label = 1;
|
81
85
|
case 1:
|
86
|
+
_a.trys.push([1, 3, , 4]);
|
87
|
+
return [4 /*yield*/, provider.request({ method: 'eth_accounts' })];
|
88
|
+
case 2:
|
82
89
|
existingAccounts = _a.sent();
|
83
|
-
|
90
|
+
return [3 /*break*/, 4];
|
91
|
+
case 3:
|
92
|
+
error_1 = _a.sent();
|
93
|
+
existingAccounts = [];
|
94
|
+
return [3 /*break*/, 4];
|
95
|
+
case 4:
|
96
|
+
if (!(!existingAccounts || existingAccounts.length === 0)) return [3 /*break*/, 6];
|
84
97
|
return [4 /*yield*/, browserProvider.send('eth_requestAccounts', [])];
|
85
|
-
case
|
98
|
+
case 5:
|
86
99
|
_a.sent();
|
87
|
-
_a.label =
|
88
|
-
case
|
89
|
-
case
|
100
|
+
_a.label = 6;
|
101
|
+
case 6: return [4 /*yield*/, browserProvider.getSigner()];
|
102
|
+
case 7:
|
90
103
|
signer = _a.sent();
|
91
104
|
return [4 /*yield*/, signer.getAddress()];
|
92
|
-
case
|
105
|
+
case 8:
|
93
106
|
address = _a.sent();
|
94
107
|
return [4 /*yield*/, browserProvider
|
95
108
|
.getNetwork()
|
96
109
|
.then(function (network) { return Number(network.chainId); })];
|
97
|
-
case
|
110
|
+
case 9:
|
98
111
|
chainId = _a.sent();
|
99
|
-
if (!(targetChainId && chainId !== targetChainId)) return [3 /*break*/,
|
112
|
+
if (!(targetChainId && chainId !== targetChainId)) return [3 /*break*/, 11];
|
100
113
|
return [4 /*yield*/, switchEVMChain(targetChainId, provider)];
|
101
|
-
case
|
114
|
+
case 10:
|
102
115
|
switchResult = _a.sent();
|
103
116
|
if (switchResult instanceof Error) {
|
104
117
|
throw switchResult;
|
105
118
|
}
|
106
119
|
chainId = switchResult.chainId;
|
107
|
-
_a.label =
|
108
|
-
case
|
120
|
+
_a.label = 11;
|
121
|
+
case 11: return [2 /*return*/, {
|
109
122
|
accounts: [address],
|
110
123
|
chainId: chainId,
|
111
124
|
isConnected: true
|
112
125
|
}];
|
113
|
-
case
|
114
|
-
|
115
|
-
console.error('EVM wallet connection error:',
|
116
|
-
return [2 /*return*/,
|
117
|
-
?
|
126
|
+
case 12:
|
127
|
+
error_2 = _a.sent();
|
128
|
+
console.error('EVM wallet connection error:', error_2);
|
129
|
+
return [2 /*return*/, error_2 instanceof Error
|
130
|
+
? error_2
|
118
131
|
: new Error("Failed to connect to ".concat(walletName, " wallet"))];
|
119
|
-
case
|
132
|
+
case 13: return [2 /*return*/];
|
120
133
|
}
|
121
134
|
});
|
122
135
|
}); };
|
package/utils/version.d.ts
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export declare const sdkVersion = "3.2.
|
1
|
+
export declare const sdkVersion = "3.2.4";
|
package/utils/version.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export var sdkVersion = '3.2.
|
1
|
+
export var sdkVersion = '3.2.4';
|
@@ -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
|
+
sendNativeSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
17
18
|
sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
|
18
19
|
getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
|
19
20
|
atomic: {
|
@@ -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, getWalletCapabilities } from '../connectors/evm';
|
53
|
+
import { connectToEVMWallet, disconnectFromEVMWallet, signEVMMessage, sendEVMTransaction, sendEVMTokenTransaction, sendNativeSmartContractTransaction, switchEVMChain, findAvailableProviders, sendEVMTransactionBatch, getWalletCapabilities } from '../connectors/evm';
|
54
54
|
var EVMWalletStrategy = /** @class */ (function (_super) {
|
55
55
|
__extends(EVMWalletStrategy, _super);
|
56
56
|
function EVMWalletStrategy() {
|
@@ -192,14 +192,14 @@ var EVMWalletStrategy = /** @class */ (function (_super) {
|
|
192
192
|
});
|
193
193
|
});
|
194
194
|
};
|
195
|
-
EVMWalletStrategy.prototype.
|
195
|
+
EVMWalletStrategy.prototype.sendNativeSmartContractInteraction = function (payload) {
|
196
196
|
return __awaiter(this, void 0, void 0, function () {
|
197
197
|
var result, error_7;
|
198
198
|
return __generator(this, function (_a) {
|
199
199
|
switch (_a.label) {
|
200
200
|
case 0:
|
201
201
|
_a.trys.push([0, 2, , 3]);
|
202
|
-
return [4 /*yield*/,
|
202
|
+
return [4 /*yield*/, sendNativeSmartContractTransaction(payload.address, JSON.parse(payload.abi), payload.functionName, payload.args, payload.account, payload.value)];
|
203
203
|
case 1:
|
204
204
|
result = _a.sent();
|
205
205
|
if (result instanceof Error) {
|
@@ -214,6 +214,28 @@ var EVMWalletStrategy = /** @class */ (function (_super) {
|
|
214
214
|
});
|
215
215
|
});
|
216
216
|
};
|
217
|
+
EVMWalletStrategy.prototype.sendTransactionBatch = function (payload) {
|
218
|
+
return __awaiter(this, void 0, void 0, function () {
|
219
|
+
var result, error_8;
|
220
|
+
return __generator(this, function (_a) {
|
221
|
+
switch (_a.label) {
|
222
|
+
case 0:
|
223
|
+
_a.trys.push([0, 2, , 3]);
|
224
|
+
return [4 /*yield*/, sendEVMTransactionBatch(payload)];
|
225
|
+
case 1:
|
226
|
+
result = _a.sent();
|
227
|
+
if (result instanceof Error) {
|
228
|
+
throw result;
|
229
|
+
}
|
230
|
+
return [2 /*return*/, result];
|
231
|
+
case 2:
|
232
|
+
error_8 = _a.sent();
|
233
|
+
throw this.handleError(error_8, 'send EVM smart contract interaction');
|
234
|
+
case 3: return [2 /*return*/];
|
235
|
+
}
|
236
|
+
});
|
237
|
+
});
|
238
|
+
};
|
217
239
|
EVMWalletStrategy.prototype.getWalletCapabilities = function (payload) {
|
218
240
|
return __awaiter(this, void 0, void 0, function () {
|
219
241
|
var result;
|
@@ -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
|
+
sendNativeSmartContractInteraction(): Promise<string>;
|
21
22
|
sendTransactionBatch(): Promise<string>;
|
22
23
|
getWalletCapabilities(): Promise<{
|
23
24
|
atomic: {
|
@@ -209,6 +209,9 @@ var SolanaWalletStrategy = /** @class */ (function (_super) {
|
|
209
209
|
});
|
210
210
|
});
|
211
211
|
};
|
212
|
+
SolanaWalletStrategy.prototype.sendNativeSmartContractInteraction = function () {
|
213
|
+
throw new Error('Method not implemented.');
|
214
|
+
};
|
212
215
|
SolanaWalletStrategy.prototype.sendTransactionBatch = function () {
|
213
216
|
throw new Error('Method not implemented.');
|
214
217
|
};
|
@@ -13,6 +13,7 @@ export interface WalletStrategy {
|
|
13
13
|
}>;
|
14
14
|
sendNativeTransfer(payload: TransferPayload): Promise<string>;
|
15
15
|
sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
16
|
+
sendNativeSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
16
17
|
sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
|
17
18
|
getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
|
18
19
|
atomic: {
|
@@ -40,6 +41,7 @@ export declare abstract class BaseWalletStrategy implements WalletStrategy {
|
|
40
41
|
}>;
|
41
42
|
abstract sendNativeTransfer(payload: TransferPayload): Promise<string>;
|
42
43
|
abstract sendSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
44
|
+
abstract sendNativeSmartContractInteraction(payload: SmartContractPayload): Promise<string>;
|
43
45
|
abstract sendTransactionBatch(payload: TransactionBatchPayload): Promise<string>;
|
44
46
|
abstract getWalletCapabilities(payload: WalletCapabilitiesPayload): Promise<{
|
45
47
|
atomic: {
|