@openocean.finance/openocean-sdk 0.1.67 → 0.1.68
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/lib/swapSdk/ConnectWallet.js +57 -28
- package/package.json +1 -1
|
@@ -215,64 +215,93 @@ var ConnectWallet = /** @class */ (function () {
|
|
|
215
215
|
};
|
|
216
216
|
ConnectWallet.linkAddOrSwitch = function (reqConnectWalletVo, wallet, chain) {
|
|
217
217
|
return __awaiter(this, void 0, void 0, function () {
|
|
218
|
-
var _a, currentProvider, utilsEht, chainId, params, address, address, address, address;
|
|
218
|
+
var _a, currentProvider, utilsEht, chainId, params, address, address, switchError_1, address, address, address, address;
|
|
219
219
|
return __generator(this, function (_b) {
|
|
220
220
|
switch (_b.label) {
|
|
221
221
|
case 0:
|
|
222
222
|
_a = wallet.sdk || {}, currentProvider = _a.currentProvider, utilsEht = _a.utils;
|
|
223
223
|
chainId = chain.chainId;
|
|
224
224
|
params = Chains_1.chains.ethereumChainParams[reqConnectWalletVo.chain];
|
|
225
|
-
if (!params) return [3 /*break*/,
|
|
225
|
+
if (!params) return [3 /*break*/, 18];
|
|
226
|
+
_b.label = 1;
|
|
227
|
+
case 1:
|
|
228
|
+
_b.trys.push([1, 9, , 17]);
|
|
229
|
+
return [4 /*yield*/, currentProvider.request({
|
|
230
|
+
method: 'wallet_switchEthereumChain',
|
|
231
|
+
params: [{ chainId: params[0].chainId }],
|
|
232
|
+
})];
|
|
233
|
+
case 2:
|
|
234
|
+
_b.sent();
|
|
235
|
+
return [4 /*yield*/, this.isChainIdEq(wallet, chainId, utilsEht)];
|
|
236
|
+
case 3:
|
|
237
|
+
if (!_b.sent()) return [3 /*break*/, 8];
|
|
238
|
+
if (!(wallet.type === 'WalletConnect')) return [3 /*break*/, 5];
|
|
239
|
+
return [4 /*yield*/, wallet.sdk.eth.getAccounts()];
|
|
240
|
+
case 4:
|
|
241
|
+
address = (_b.sent())[0];
|
|
242
|
+
wallet.address = address;
|
|
243
|
+
return [3 /*break*/, 7];
|
|
244
|
+
case 5: return [4 /*yield*/, wallet.sdk.eth.requestAccounts()];
|
|
245
|
+
case 6:
|
|
246
|
+
address = (_b.sent())[0];
|
|
247
|
+
wallet.address = address;
|
|
248
|
+
_b.label = 7;
|
|
249
|
+
case 7: return [2 /*return*/, { chain: chain, wallet: wallet }];
|
|
250
|
+
case 8: return [3 /*break*/, 17];
|
|
251
|
+
case 9:
|
|
252
|
+
switchError_1 = _b.sent();
|
|
253
|
+
if (!(switchError_1.code === 4902)) return [3 /*break*/, 16];
|
|
226
254
|
return [4 /*yield*/, currentProvider.request({
|
|
227
255
|
method: "wallet_addEthereumChain",
|
|
228
256
|
params: params
|
|
229
257
|
})];
|
|
230
|
-
case
|
|
258
|
+
case 10:
|
|
231
259
|
_b.sent();
|
|
232
260
|
return [4 /*yield*/, this.isChainIdEq(wallet, chainId, utilsEht)];
|
|
233
|
-
case
|
|
234
|
-
if (!_b.sent()) return [3 /*break*/,
|
|
235
|
-
if (!(wallet.type === 'WalletConnect')) return [3 /*break*/,
|
|
261
|
+
case 11:
|
|
262
|
+
if (!_b.sent()) return [3 /*break*/, 16];
|
|
263
|
+
if (!(wallet.type === 'WalletConnect')) return [3 /*break*/, 13];
|
|
236
264
|
return [4 /*yield*/, wallet.sdk.eth.getAccounts()];
|
|
237
|
-
case
|
|
265
|
+
case 12:
|
|
238
266
|
address = (_b.sent())[0];
|
|
239
267
|
wallet.address = address;
|
|
240
|
-
return [3 /*break*/,
|
|
241
|
-
case
|
|
242
|
-
case
|
|
268
|
+
return [3 /*break*/, 15];
|
|
269
|
+
case 13: return [4 /*yield*/, wallet.sdk.eth.requestAccounts()];
|
|
270
|
+
case 14:
|
|
243
271
|
address = (_b.sent())[0];
|
|
244
272
|
wallet.address = address;
|
|
245
|
-
_b.label =
|
|
246
|
-
case
|
|
247
|
-
case
|
|
248
|
-
case
|
|
249
|
-
|
|
273
|
+
_b.label = 15;
|
|
274
|
+
case 15: return [2 /*return*/, { chain: chain, wallet: wallet }];
|
|
275
|
+
case 16: return [3 /*break*/, 17];
|
|
276
|
+
case 17: return [3 /*break*/, 27];
|
|
277
|
+
case 18:
|
|
278
|
+
if (!(chainId == '1' || chainId == '3' || chainId == '4')) return [3 /*break*/, 26];
|
|
250
279
|
return [4 /*yield*/, currentProvider.request({
|
|
251
280
|
method: 'wallet_switchEthereumChain',
|
|
252
281
|
params: [{
|
|
253
282
|
chainId: utilsEht.toHex(chainId)
|
|
254
283
|
}],
|
|
255
284
|
})];
|
|
256
|
-
case
|
|
285
|
+
case 19:
|
|
257
286
|
_b.sent();
|
|
258
287
|
return [4 /*yield*/, this.isChainIdEq(wallet, chainId, utilsEht)];
|
|
259
|
-
case
|
|
260
|
-
if (!_b.sent()) return [3 /*break*/,
|
|
261
|
-
if (!(wallet.type === 'WalletConnect')) return [3 /*break*/,
|
|
288
|
+
case 20:
|
|
289
|
+
if (!_b.sent()) return [3 /*break*/, 25];
|
|
290
|
+
if (!(wallet.type === 'WalletConnect')) return [3 /*break*/, 22];
|
|
262
291
|
return [4 /*yield*/, wallet.sdk.eth.getAccounts()];
|
|
263
|
-
case
|
|
292
|
+
case 21:
|
|
264
293
|
address = (_b.sent())[0];
|
|
265
294
|
wallet.address = address;
|
|
266
|
-
return [3 /*break*/,
|
|
267
|
-
case
|
|
268
|
-
case
|
|
295
|
+
return [3 /*break*/, 24];
|
|
296
|
+
case 22: return [4 /*yield*/, wallet.sdk.eth.requestAccounts()];
|
|
297
|
+
case 23:
|
|
269
298
|
address = (_b.sent())[0];
|
|
270
299
|
wallet.address = address;
|
|
271
|
-
_b.label =
|
|
272
|
-
case
|
|
273
|
-
case
|
|
274
|
-
case
|
|
275
|
-
case
|
|
300
|
+
_b.label = 24;
|
|
301
|
+
case 24: return [2 /*return*/, { chain: chain, wallet: wallet }];
|
|
302
|
+
case 25: return [3 /*break*/, 27];
|
|
303
|
+
case 26: throw new Error('Network error');
|
|
304
|
+
case 27: return [2 /*return*/];
|
|
276
305
|
}
|
|
277
306
|
});
|
|
278
307
|
});
|