@openocean.finance/openocean-sdk 0.1.87 → 0.1.89

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.
Files changed (61) hide show
  1. package/lib/config/Wallets.d.ts +1 -2
  2. package/lib/index.js +2 -20
  3. package/lib/index.js.LICENSE.txt +145 -0
  4. package/package.json +3 -2
  5. package/lib/api/index.js +0 -136
  6. package/lib/api/vo/RequestVo.js +0 -401
  7. package/lib/asset/abi/ERC20_abi.js +0 -119
  8. package/lib/asset/abi/aggregator.js +0 -391
  9. package/lib/config/Chains.js +0 -508
  10. package/lib/config/Wallets.js +0 -89
  11. package/lib/config/index.js +0 -11
  12. package/lib/swapSdk/Approve.js +0 -227
  13. package/lib/swapSdk/ConnectWallet.js +0 -312
  14. package/lib/swapSdk/NotoMobile.js +0 -141
  15. package/lib/swapSdk/RequestVo.js +0 -94
  16. package/lib/swapSdk/Swap.js +0 -739
  17. package/lib/swapSdk/getAllowance.js +0 -97
  18. package/lib/swapSdk/getBalance.js +0 -220
  19. package/lib/swapSdk/index.js +0 -277
  20. package/lib/swapSdk/limitOrder.js +0 -225
  21. package/lib/swapSdk/qrcode.d.ts +0 -6
  22. package/lib/swapSdk/qrcode.js +0 -969
  23. package/lib/utils/ajx.js +0 -150
  24. package/lib/utils/index.js +0 -91
  25. package/lib/utils/limit-order-sdk/abi/ERC20ABI.json +0 -222
  26. package/lib/utils/limit-order-sdk/abi/LimitOrderProtocol.json +0 -1506
  27. package/lib/utils/limit-order-sdk/connector/private-key-provider.connector.d.ts +0 -10
  28. package/lib/utils/limit-order-sdk/connector/private-key-provider.connector.js +0 -36
  29. package/lib/utils/limit-order-sdk/connector/provider.connector.d.ts +0 -1
  30. package/lib/utils/limit-order-sdk/connector/provider.connector.js +0 -2
  31. package/lib/utils/limit-order-sdk/connector/web3-provider.connector.d.ts +0 -9
  32. package/lib/utils/limit-order-sdk/connector/web3-provider.connector.js +0 -38
  33. package/lib/utils/limit-order-sdk/erc20.facade.d.ts +0 -7
  34. package/lib/utils/limit-order-sdk/erc20.facade.js +0 -19
  35. package/lib/utils/limit-order-sdk/index.d.ts +0 -1
  36. package/lib/utils/limit-order-sdk/index.js +0 -14
  37. package/lib/utils/limit-order-sdk/limit-order-predicate.builder.d.ts +0 -12
  38. package/lib/utils/limit-order-sdk/limit-order-predicate.builder.js +0 -60
  39. package/lib/utils/limit-order-sdk/limit-order-protocol.const.d.ts +0 -18
  40. package/lib/utils/limit-order-sdk/limit-order-protocol.const.js +0 -45
  41. package/lib/utils/limit-order-sdk/limit-order-protocol.facade.d.ts +0 -26
  42. package/lib/utils/limit-order-sdk/limit-order-protocol.facade.js +0 -180
  43. package/lib/utils/limit-order-sdk/limit-order.builder.d.ts +0 -101
  44. package/lib/utils/limit-order-sdk/limit-order.builder.js +0 -120
  45. package/lib/utils/limit-order-sdk/model/abi.model.d.ts +0 -1
  46. package/lib/utils/limit-order-sdk/model/abi.model.js +0 -2
  47. package/lib/utils/limit-order-sdk/model/eip712.model.d.ts +0 -1
  48. package/lib/utils/limit-order-sdk/model/eip712.model.js +0 -2
  49. package/lib/utils/limit-order-sdk/model/limit-order-protocol.model.d.ts +0 -3
  50. package/lib/utils/limit-order-sdk/model/limit-order-protocol.model.js +0 -38
  51. package/lib/utils/limit-order-sdk/utils/get-rpc-code.d.ts +0 -2
  52. package/lib/utils/limit-order-sdk/utils/get-rpc-code.js +0 -28
  53. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.const.d.ts +0 -89
  54. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.const.js +0 -140
  55. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.helpers.d.ts +0 -10
  56. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.helpers.js +0 -254
  57. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.model.d.ts +0 -1
  58. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.model.js +0 -2
  59. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.utils.d.ts +0 -2
  60. package/lib/utils/limit-order-sdk/utils/limit-order-rfq.utils.js +0 -82
  61. package/lib/utils/web3.js +0 -9
@@ -1,227 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __importDefault = (this && this.__importDefault) || function (mod) {
39
- return (mod && mod.__esModule) ? mod : { "default": mod };
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.Approve = void 0;
43
- var web3_1 = __importDefault(require("web3"));
44
- var Approve = /** @class */ (function () {
45
- function Approve(contract, wallet) {
46
- this.errorCallback = function () { };
47
- this.transactionHashCallback = function () { };
48
- this.receiptCallback = function () { };
49
- this.successCallback = function () { };
50
- this.contract = contract;
51
- this.wallet = wallet;
52
- }
53
- Approve.prototype.send = function (reqApproveVo, address) {
54
- return __awaiter(this, void 0, void 0, function () {
55
- var web3, data, safeTxHash, e_1, _a, _b, gasAmount, error_1, json;
56
- var _this = this;
57
- return __generator(this, function (_c) {
58
- switch (_c.label) {
59
- case 0:
60
- this.account = address;
61
- this.key = 0;
62
- this.contractAddress = reqApproveVo.contractAddress;
63
- this.tokenAddress = reqApproveVo.tokenAddress;
64
- if (!(this.wallet.key === "GnosisSafeWallet")) return [3 /*break*/, 5];
65
- web3 = new web3_1.default();
66
- data = web3.eth.abi.encodeFunctionCall({
67
- "inputs": [
68
- {
69
- "name": "spender",
70
- "type": "address"
71
- },
72
- {
73
- "name": "value",
74
- "type": "uint256"
75
- }
76
- ],
77
- "name": "approve",
78
- "type": "function"
79
- }, [this.contractAddress, reqApproveVo.amount]);
80
- console.log('data', this.contractAddress, reqApproveVo.amount, data);
81
- _c.label = 1;
82
- case 1:
83
- _c.trys.push([1, 3, , 4]);
84
- return [4 /*yield*/, this.wallet.sdk.txs.send({
85
- txs: [
86
- {
87
- to: this.tokenAddress,
88
- value: 0,
89
- data: data
90
- },
91
- ],
92
- })];
93
- case 2:
94
- safeTxHash = (_c.sent()).safeTxHash;
95
- console.log('safeTxHash', safeTxHash);
96
- setTimeout(function () {
97
- console.log('successCallback');
98
- _this.successCallback(1);
99
- }, 3000);
100
- return [3 /*break*/, 4];
101
- case 3:
102
- e_1 = _c.sent();
103
- setTimeout(function () {
104
- _this.errorCallback(e_1);
105
- }, 500);
106
- return [3 /*break*/, 4];
107
- case 4: return [3 /*break*/, 14];
108
- case 5:
109
- if (!!reqApproveVo.amount) return [3 /*break*/, 7];
110
- _a = reqApproveVo;
111
- return [4 /*yield*/, this.contract.methods.totalSupply().call()];
112
- case 6:
113
- _a.amount = _c.sent();
114
- _c.label = 7;
115
- case 7:
116
- if (!(this.tokenAddress === "0xfa17b330bcc4e7f3e2456996d89a5a54ab044831")) return [3 /*break*/, 9];
117
- _b = reqApproveVo;
118
- return [4 /*yield*/, this.contract.methods.balanceOf(this.account).call()];
119
- case 8:
120
- _b.amount = _c.sent();
121
- if (Number(reqApproveVo.amount) == 0) {
122
- this.errorCallback('Insufficient Balance.');
123
- return [2 /*return*/];
124
- }
125
- _c.label = 9;
126
- case 9:
127
- this.amount = reqApproveVo.amount + '';
128
- gasAmount = '80000';
129
- _c.label = 10;
130
- case 10:
131
- _c.trys.push([10, 12, , 13]);
132
- return [4 /*yield*/, this.contract.methods
133
- .approve(this.contractAddress, this.amount)
134
- .estimateGas({
135
- from: this.account,
136
- })];
137
- case 11:
138
- gasAmount = _c.sent();
139
- return [3 /*break*/, 13];
140
- case 12:
141
- error_1 = _c.sent();
142
- setTimeout(function () {
143
- _this.errorCallback(error_1);
144
- }, 500);
145
- return [2 /*return*/];
146
- case 13:
147
- json = {
148
- from: address,
149
- };
150
- if (reqApproveVo.gasPrice) {
151
- json.gasPrice = reqApproveVo.gasPrice;
152
- }
153
- try {
154
- this.contract.methods.approve(this.contractAddress, this.amount)
155
- .send(json, function (err, data) {
156
- if (err) {
157
- }
158
- else {
159
- }
160
- })
161
- .on('error', function (error) {
162
- _this.errorCallback(error);
163
- })
164
- .on('transactionHash', function (transactionHash) {
165
- _this.transactionHashCallback(transactionHash);
166
- })
167
- .on('receipt', function (receipt) {
168
- _this.receiptCallback(receipt);
169
- _this.getSuccess();
170
- })
171
- .then(function (receipt) {
172
- })
173
- .catch(function (err) {
174
- });
175
- }
176
- catch (error) {
177
- this.errorCallback(error);
178
- }
179
- _c.label = 14;
180
- case 14: return [2 /*return*/];
181
- }
182
- });
183
- });
184
- };
185
- Approve.prototype.on = function (events, callback) {
186
- if (events === 'error') {
187
- this.errorCallback = callback;
188
- }
189
- else if (events === 'transactionHash') {
190
- this.transactionHashCallback = callback;
191
- }
192
- else if (events === 'receipt') {
193
- this.receiptCallback = callback;
194
- }
195
- else if (events === 'success') {
196
- this.successCallback = callback;
197
- }
198
- return this;
199
- };
200
- Approve.prototype.getSuccess = function () {
201
- return __awaiter(this, void 0, void 0, function () {
202
- var balance;
203
- var _this = this;
204
- return __generator(this, function (_a) {
205
- switch (_a.label) {
206
- case 0: return [4 /*yield*/, this.contract.methods.allowance(this.account, this.contractAddress).call()];
207
- case 1:
208
- balance = _a.sent();
209
- this.key++;
210
- if (this.key > 20)
211
- return [2 /*return*/];
212
- if (balance >= Number(this.amount)) {
213
- this.successCallback(balance);
214
- }
215
- else {
216
- setTimeout(function () {
217
- _this.getSuccess();
218
- }, 2000);
219
- }
220
- return [2 /*return*/];
221
- }
222
- });
223
- });
224
- };
225
- return Approve;
226
- }());
227
- exports.Approve = Approve;
@@ -1,312 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.ConnectWallet = void 0;
40
- var Wallets_1 = require("../config/Wallets");
41
- var utils_1 = require("../utils");
42
- var web3_js_1 = require("@solana/web3.js");
43
- var Chains_1 = require("../config/Chains");
44
- var NotoMobile_1 = require("./NotoMobile");
45
- var axios = require('axios');
46
- var ConnectWallet = /** @class */ (function () {
47
- function ConnectWallet() {
48
- }
49
- ConnectWallet.isChainIdEq = function (wallet, chainId, utilsEht, k) {
50
- return __awaiter(this, void 0, void 0, function () {
51
- var key, chainIdNow;
52
- return __generator(this, function (_a) {
53
- switch (_a.label) {
54
- case 0:
55
- key = k || 0;
56
- return [4 /*yield*/, utils_1.utils.sleep(1000)];
57
- case 1:
58
- _a.sent();
59
- chainIdNow = utilsEht.hexToNumber(wallet.sdk.currentProvider.chainId);
60
- if (!(chainId == chainIdNow)) return [3 /*break*/, 2];
61
- wallet.chainId = chainId;
62
- return [2 /*return*/, true];
63
- case 2:
64
- if (!(key < 3)) return [3 /*break*/, 4];
65
- return [4 /*yield*/, this.isChainIdEq(wallet, chainId, utilsEht, key + 1)];
66
- case 3: return [2 /*return*/, _a.sent()];
67
- case 4: throw new Error('User rejected the request.');
68
- }
69
- });
70
- });
71
- };
72
- ConnectWallet.link = function (reqConnectWalletVo) {
73
- return __awaiter(this, void 0, void 0, function () {
74
- var wallet, chain, chainId, selectedChain, qrData, instance_1, account, res, res, res, res, res, _a, e_1, message, _b, currentProvider, utilsEht;
75
- return __generator(this, function (_c) {
76
- switch (_c.label) {
77
- case 0:
78
- wallet = Wallets_1.wallets.walletObj[reqConnectWalletVo.walletName];
79
- if (!wallet)
80
- wallet = Wallets_1.wallets.walletList.find(function (item) { return item.name == reqConnectWalletVo.walletName; });
81
- chain = Chains_1.chains.chainObj[reqConnectWalletVo.chain];
82
- if (!chain)
83
- throw new Error('Chain error.');
84
- chainId = chain.chainId;
85
- selectedChain = chain.key;
86
- _c.label = 1;
87
- case 1:
88
- _c.trys.push([1, 22, , 26]);
89
- if (!(wallet.type === 'WalletConnect')) return [3 /*break*/, 3];
90
- wallet.infuraId = '2c7c4d86c2c746c89de722551b606119';
91
- return [4 /*yield*/, wallet.requestConnect(chainId)];
92
- case 2:
93
- _c.sent();
94
- return [3 /*break*/, 21];
95
- case 3:
96
- if (!(wallet.key === 'OntoMobile')) return [3 /*break*/, 6];
97
- return [4 /*yield*/, axios.get('https://ethapi.openocean.finance/v1/ont/login')];
98
- case 4:
99
- qrData = _c.sent();
100
- wallet.qrData = qrData.data;
101
- instance_1 = new NotoMobile_1.NotoMobile(qrData.data);
102
- return [4 /*yield*/, new Promise(function (r, q) {
103
- instance_1.$on('close', function (result, action, account) {
104
- if (action === 'login' && result === 'success') {
105
- r(account);
106
- }
107
- else {
108
- q(action);
109
- }
110
- });
111
- })];
112
- case 5:
113
- account = _c.sent();
114
- wallet.address = account;
115
- return [3 /*break*/, 21];
116
- case 6:
117
- if (!(selectedChain === 'terra')) return [3 /*break*/, 9];
118
- if (!!wallet.sdk) return [3 /*break*/, 8];
119
- return [4 /*yield*/, wallet.requestTerraConnect()];
120
- case 7:
121
- res = _c.sent();
122
- if (res) {
123
- // this.connect(wallet);
124
- }
125
- else {
126
- // const message = {
127
- // 'XDEFI Wallet': 'wallet_message_40018',
128
- // 'Terra Station': 'wallet_message_40015'
129
- // }[wallet.name];
130
- // showToast(this.$t(message));
131
- }
132
- _c.label = 8;
133
- case 8: return [3 /*break*/, 21];
134
- case 9:
135
- if (!(selectedChain === "solana")) return [3 /*break*/, 11];
136
- return [4 /*yield*/, wallet.requestSolanaConnect()];
137
- case 10:
138
- res = _c.sent();
139
- wallet.customPublicKey = new web3_js_1.PublicKey(res);
140
- // "https://api.mainnet-beta.solana.com"
141
- // "https://solana-mainnet.phantom.tech"
142
- // "https://rpc.ankr.com/solana"
143
- // https://solana-api.projectserum.com
144
- // https://mercuria-fronten-1cd8.mainnet.rpcpool.com/
145
- wallet.connection = new web3_js_1.Connection("https://solana-api.projectserum.com");
146
- if (res) {
147
- // this.connect(wallet);
148
- }
149
- else {
150
- // const message = {
151
- // 'Sollet': 'wallet_message_40010',
152
- // 'Coin98 Wallet': 'wallet_message_40011',
153
- // 'Phantom': 'wallet_message_40013',
154
- // 'Clover Wallet': 'wallet_message_40017',
155
- // 'Slope Wallet': 'wallet_message_40019',
156
- // 'Solflare Wallet': 'wallet_message_40020',
157
- // };
158
- // return {
159
- // code: 401,
160
- // message: message
161
- // }
162
- }
163
- return [3 /*break*/, 21];
164
- case 11:
165
- if (!(selectedChain === 'tron')) return [3 /*break*/, 13];
166
- return [4 /*yield*/, wallet.requestTronConnect()];
167
- case 12:
168
- res = _c.sent();
169
- console.log('wallet.requestConnect', res, wallet);
170
- return [3 /*break*/, 21];
171
- case 13:
172
- if (!(selectedChain === 'aptos')) return [3 /*break*/, 15];
173
- return [4 /*yield*/, wallet.requestAptosConnect()];
174
- case 14:
175
- res = _c.sent();
176
- // wallet.customPublicKey = new PublicKey(res);
177
- console.log('wallet.requestConnect', res, wallet);
178
- return [3 /*break*/, 21];
179
- case 15:
180
- if (!chainId) return [3 /*break*/, 17];
181
- return [4 /*yield*/, wallet.requestConnect(chainId)];
182
- case 16:
183
- _a = _c.sent();
184
- return [3 /*break*/, 19];
185
- case 17: return [4 /*yield*/, wallet.requestConnect()];
186
- case 18:
187
- _a = _c.sent();
188
- _c.label = 19;
189
- case 19:
190
- res = _a;
191
- console.log('wallet.requestConnect', res, wallet);
192
- return [4 /*yield*/, utils_1.utils.sleep(200)];
193
- case 20:
194
- _c.sent();
195
- if (res) {
196
- // this.connect(wallet);
197
- }
198
- _c.label = 21;
199
- case 21: return [2 /*return*/, { chain: chain, wallet: wallet }];
200
- case 22:
201
- e_1 = _c.sent();
202
- message = e_1.message;
203
- _b = wallet.sdk || {}, currentProvider = _b.currentProvider, utilsEht = _b.utils;
204
- if (reqConnectWalletVo.noSwitch) {
205
- throw new Error('No Switch');
206
- }
207
- if (!(message === "40006" && currentProvider)) return [3 /*break*/, 24];
208
- return [4 /*yield*/, this.linkAddOrSwitch(reqConnectWalletVo, wallet, chain)];
209
- case 23: return [2 /*return*/, _c.sent()];
210
- case 24: throw new Error(message);
211
- case 25: return [3 /*break*/, 26];
212
- case 26: return [2 /*return*/];
213
- }
214
- });
215
- });
216
- };
217
- ConnectWallet.linkAddOrSwitch = function (reqConnectWalletVo, wallet, chain) {
218
- return __awaiter(this, void 0, void 0, function () {
219
- var _a, currentProvider, utilsEht, chainId, params, address, address, switchError_1, address, address, address, address;
220
- return __generator(this, function (_b) {
221
- switch (_b.label) {
222
- case 0:
223
- _a = wallet.sdk || {}, currentProvider = _a.currentProvider, utilsEht = _a.utils;
224
- chainId = chain.chainId;
225
- params = Chains_1.chains.ethereumChainParams[reqConnectWalletVo.chain];
226
- if (!params) return [3 /*break*/, 18];
227
- _b.label = 1;
228
- case 1:
229
- _b.trys.push([1, 9, , 17]);
230
- return [4 /*yield*/, currentProvider.request({
231
- method: 'wallet_switchEthereumChain',
232
- params: [{ chainId: params[0].chainId }],
233
- })];
234
- case 2:
235
- _b.sent();
236
- return [4 /*yield*/, this.isChainIdEq(wallet, chainId, utilsEht)];
237
- case 3:
238
- if (!_b.sent()) return [3 /*break*/, 8];
239
- if (!(wallet.type === 'WalletConnect')) return [3 /*break*/, 5];
240
- return [4 /*yield*/, wallet.sdk.eth.getAccounts()];
241
- case 4:
242
- address = (_b.sent())[0];
243
- wallet.address = address;
244
- return [3 /*break*/, 7];
245
- case 5: return [4 /*yield*/, wallet.sdk.eth.requestAccounts()];
246
- case 6:
247
- address = (_b.sent())[0];
248
- wallet.address = address;
249
- _b.label = 7;
250
- case 7: return [2 /*return*/, { chain: chain, wallet: wallet }];
251
- case 8: return [3 /*break*/, 17];
252
- case 9:
253
- switchError_1 = _b.sent();
254
- if (!(switchError_1.code === 4902)) return [3 /*break*/, 16];
255
- return [4 /*yield*/, currentProvider.request({
256
- method: "wallet_addEthereumChain",
257
- params: params
258
- })];
259
- case 10:
260
- _b.sent();
261
- return [4 /*yield*/, this.isChainIdEq(wallet, chainId, utilsEht)];
262
- case 11:
263
- if (!_b.sent()) return [3 /*break*/, 16];
264
- if (!(wallet.type === 'WalletConnect')) return [3 /*break*/, 13];
265
- return [4 /*yield*/, wallet.sdk.eth.getAccounts()];
266
- case 12:
267
- address = (_b.sent())[0];
268
- wallet.address = address;
269
- return [3 /*break*/, 15];
270
- case 13: return [4 /*yield*/, wallet.sdk.eth.requestAccounts()];
271
- case 14:
272
- address = (_b.sent())[0];
273
- wallet.address = address;
274
- _b.label = 15;
275
- case 15: return [2 /*return*/, { chain: chain, wallet: wallet }];
276
- case 16: return [3 /*break*/, 17];
277
- case 17: return [3 /*break*/, 27];
278
- case 18:
279
- if (!(chainId == '1' || chainId == '3' || chainId == '4')) return [3 /*break*/, 26];
280
- return [4 /*yield*/, currentProvider.request({
281
- method: 'wallet_switchEthereumChain',
282
- params: [{
283
- chainId: utilsEht.toHex(chainId)
284
- }],
285
- })];
286
- case 19:
287
- _b.sent();
288
- return [4 /*yield*/, this.isChainIdEq(wallet, chainId, utilsEht)];
289
- case 20:
290
- if (!_b.sent()) return [3 /*break*/, 25];
291
- if (!(wallet.type === 'WalletConnect')) return [3 /*break*/, 22];
292
- return [4 /*yield*/, wallet.sdk.eth.getAccounts()];
293
- case 21:
294
- address = (_b.sent())[0];
295
- wallet.address = address;
296
- return [3 /*break*/, 24];
297
- case 22: return [4 /*yield*/, wallet.sdk.eth.requestAccounts()];
298
- case 23:
299
- address = (_b.sent())[0];
300
- wallet.address = address;
301
- _b.label = 24;
302
- case 24: return [2 /*return*/, { chain: chain, wallet: wallet }];
303
- case 25: return [3 /*break*/, 27];
304
- case 26: throw new Error('Network error');
305
- case 27: return [2 /*return*/];
306
- }
307
- });
308
- });
309
- };
310
- return ConnectWallet;
311
- }());
312
- exports.ConnectWallet = ConnectWallet;