hermes-swap 0.0.26 → 0.0.28
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/dist/cjs/index.d.ts +4 -2
- package/dist/cjs/index.js +47 -1
- package/dist/cjs/types.d.ts +38 -2
- package/dist/cjs/types.js +34 -2
- package/dist/esm/index.d.ts +4 -2
- package/dist/esm/index.js +152 -14
- package/dist/esm/types.d.ts +38 -2
- package/dist/esm/types.js +34 -2
- package/package.json +1 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IExpectParams, ISwapParams, IBridgeParams, ISwapAndBridgeParams, IReceipt, IConfig, IExpectPayload, IRouterPath } from './types.js';
|
|
2
|
-
import { ChainNameEnum, AddressConst, DexType, BridgeType } from './types.js';
|
|
2
|
+
import { ChainNameEnum, AddressConst, DexType, BridgeType, SupportContracts } from './types.js';
|
|
3
3
|
export type { IExpectParams, ISwapParams, IBridgeParams, ISwapAndBridgeParams, IReceipt, IConfig, IExpectPayload, IRouterPath };
|
|
4
|
-
export { ChainNameEnum, AddressConst, DexType, BridgeType };
|
|
4
|
+
export { ChainNameEnum, AddressConst, DexType, BridgeType, SupportContracts };
|
|
5
5
|
declare class Hermes {
|
|
6
6
|
private config;
|
|
7
7
|
private providerMap;
|
|
@@ -21,6 +21,8 @@ declare class Hermes {
|
|
|
21
21
|
bridge(params: IBridgeParams): Promise<IReceipt>;
|
|
22
22
|
estimateBridgeFee(params: IBridgeParams): Promise<bigint>;
|
|
23
23
|
swapAndBridge(params: ISwapAndBridgeParams): Promise<IReceipt>;
|
|
24
|
+
getAggregatorSupportContracts(chain: ChainNameEnum): Promise<SupportContracts[]>;
|
|
25
|
+
getQuoterSupportContracts(chain: ChainNameEnum): Promise<SupportContracts[]>;
|
|
24
26
|
/**
|
|
25
27
|
* 生成 swapAndBridge 的 calldata
|
|
26
28
|
*/
|
package/dist/cjs/index.js
CHANGED
|
@@ -34,6 +34,7 @@ __export(src_exports, {
|
|
|
34
34
|
ChainNameEnum: () => import_types.ChainNameEnum,
|
|
35
35
|
DexType: () => import_types.DexType,
|
|
36
36
|
Hermes: () => Hermes,
|
|
37
|
+
SupportContracts: () => import_types.SupportContracts,
|
|
37
38
|
default: () => src_default
|
|
38
39
|
});
|
|
39
40
|
module.exports = __toCommonJS(src_exports);
|
|
@@ -314,6 +315,50 @@ var Hermes = class {
|
|
|
314
315
|
};
|
|
315
316
|
return Promise.resolve(receipt);
|
|
316
317
|
}
|
|
318
|
+
async getAggregatorSupportContracts(chain) {
|
|
319
|
+
const aggregatorAddress = this.getAggregatorAddress(chain);
|
|
320
|
+
const provider = this.providerMap.get(chain);
|
|
321
|
+
if (!provider) {
|
|
322
|
+
throw new Error(`Provider not configured for chain: ${chain}`);
|
|
323
|
+
}
|
|
324
|
+
const aggregator = new import_ethers2.Contract(aggregatorAddress, import_aggregator.default, provider);
|
|
325
|
+
const addressList = await aggregator.getAddressList();
|
|
326
|
+
if (!addressList.length) {
|
|
327
|
+
return [];
|
|
328
|
+
}
|
|
329
|
+
const supportContracts = await Promise.all(
|
|
330
|
+
addressList.map(async (contractAddress, index) => {
|
|
331
|
+
const { contractType } = await aggregator.contractList(index);
|
|
332
|
+
return {
|
|
333
|
+
contractType,
|
|
334
|
+
contractAddress
|
|
335
|
+
};
|
|
336
|
+
})
|
|
337
|
+
);
|
|
338
|
+
return supportContracts;
|
|
339
|
+
}
|
|
340
|
+
async getQuoterSupportContracts(chain) {
|
|
341
|
+
const quoterAddress = this.getQuoterAddress(chain);
|
|
342
|
+
const provider = this.providerMap.get(chain);
|
|
343
|
+
if (!provider) {
|
|
344
|
+
throw new Error(`Provider not configured for chain: ${chain}`);
|
|
345
|
+
}
|
|
346
|
+
const quoter = new import_ethers2.Contract(quoterAddress, import_quoter.default, provider);
|
|
347
|
+
const addressList = await quoter.getAddressList();
|
|
348
|
+
if (!addressList.length) {
|
|
349
|
+
return [];
|
|
350
|
+
}
|
|
351
|
+
const supportContracts = await Promise.all(
|
|
352
|
+
addressList.map(async (contractAddress, index) => {
|
|
353
|
+
const { contractType } = await quoter.contractList(index);
|
|
354
|
+
return {
|
|
355
|
+
contractType,
|
|
356
|
+
contractAddress
|
|
357
|
+
};
|
|
358
|
+
})
|
|
359
|
+
);
|
|
360
|
+
return supportContracts;
|
|
361
|
+
}
|
|
317
362
|
/**
|
|
318
363
|
* 生成 swapAndBridge 的 calldata
|
|
319
364
|
*/
|
|
@@ -390,5 +435,6 @@ var src_default = Hermes;
|
|
|
390
435
|
BridgeType,
|
|
391
436
|
ChainNameEnum,
|
|
392
437
|
DexType,
|
|
393
|
-
Hermes
|
|
438
|
+
Hermes,
|
|
439
|
+
SupportContracts
|
|
394
440
|
});
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -89,15 +89,32 @@ export interface ILog {
|
|
|
89
89
|
transactionIndex: number;
|
|
90
90
|
args: any[];
|
|
91
91
|
}
|
|
92
|
+
export interface SupportContracts {
|
|
93
|
+
contractAddress: string;
|
|
94
|
+
contractType: string;
|
|
95
|
+
}
|
|
92
96
|
export declare enum DexType {
|
|
93
97
|
FX = "f(x)",
|
|
94
98
|
UNISWAPV2 = "uniswapv2",
|
|
99
|
+
UNISWAPV3 = "uniswapv3",
|
|
100
|
+
UNISWAPV4 = "uniswapv4",
|
|
95
101
|
CURVE128 = "curve128",
|
|
96
|
-
CURVE256 = "curve256"
|
|
102
|
+
CURVE256 = "curve256",
|
|
103
|
+
CAMELOTV2 = "camelotv2",
|
|
104
|
+
PANCAKEV2 = "pancakev2",
|
|
105
|
+
PANCAKEV3 = "pancakev3",
|
|
106
|
+
CURVE128PAYABLE = "curve128_payable",
|
|
107
|
+
CURVE256PAYABLE = "curve256_payable",
|
|
108
|
+
VSDCRVWITHDRAW = "vsdCRV_withdraw",
|
|
109
|
+
VSDCRVDEPOSIT = "vsdCRV_deposit"
|
|
97
110
|
}
|
|
98
111
|
export declare enum BridgeType {
|
|
99
112
|
LAYERZEROV1 = "layerzero_v1",
|
|
100
|
-
LAYERZEROV2 = "layerzero_v2"
|
|
113
|
+
LAYERZEROV2 = "layerzero_v2",
|
|
114
|
+
LAYERZEROV1ADADEQEMPTY = "layerzero_v1_adapter_eq_empty",
|
|
115
|
+
LAYERZEROV1PKG = "layerzero_v1_pkg",
|
|
116
|
+
LAYERZEROV1PKGNOMIN = "layerzero_v1_pkg_no_min",
|
|
117
|
+
LAYERZEROV1OHM = "layerzero_v1_ohm"
|
|
101
118
|
}
|
|
102
119
|
export declare enum ChainNameEnum {
|
|
103
120
|
ETH = "ETH",// Ethereum Mainnet
|
|
@@ -263,6 +280,12 @@ export declare const AddressConst: {
|
|
|
263
280
|
eth: string;
|
|
264
281
|
arb: string;
|
|
265
282
|
};
|
|
283
|
+
seth: {
|
|
284
|
+
eth: string;
|
|
285
|
+
};
|
|
286
|
+
wbtc: {
|
|
287
|
+
eth: string;
|
|
288
|
+
};
|
|
266
289
|
usdt: {
|
|
267
290
|
eth: string;
|
|
268
291
|
};
|
|
@@ -270,15 +293,28 @@ export declare const AddressConst: {
|
|
|
270
293
|
eth: string;
|
|
271
294
|
arb: string;
|
|
272
295
|
};
|
|
296
|
+
sdcrv: {
|
|
297
|
+
eth: string;
|
|
298
|
+
};
|
|
299
|
+
crv: {
|
|
300
|
+
eth: string;
|
|
301
|
+
};
|
|
273
302
|
xeth: {
|
|
274
303
|
eth: string;
|
|
275
304
|
arb: string;
|
|
276
305
|
};
|
|
306
|
+
vsdcrv: {
|
|
307
|
+
eth: string;
|
|
308
|
+
};
|
|
277
309
|
arb: {
|
|
278
310
|
arb: string;
|
|
279
311
|
};
|
|
280
312
|
usdc: {
|
|
281
313
|
arb: string;
|
|
314
|
+
eth: string;
|
|
315
|
+
};
|
|
316
|
+
ohm: {
|
|
317
|
+
arb: string;
|
|
282
318
|
};
|
|
283
319
|
};
|
|
284
320
|
export interface IExpectPayload {
|
package/dist/cjs/types.js
CHANGED
|
@@ -28,13 +28,26 @@ module.exports = __toCommonJS(types_exports);
|
|
|
28
28
|
var DexType = /* @__PURE__ */ ((DexType2) => {
|
|
29
29
|
DexType2["FX"] = "f(x)";
|
|
30
30
|
DexType2["UNISWAPV2"] = "uniswapv2";
|
|
31
|
+
DexType2["UNISWAPV3"] = "uniswapv3";
|
|
32
|
+
DexType2["UNISWAPV4"] = "uniswapv4";
|
|
31
33
|
DexType2["CURVE128"] = "curve128";
|
|
32
34
|
DexType2["CURVE256"] = "curve256";
|
|
35
|
+
DexType2["CAMELOTV2"] = "camelotv2";
|
|
36
|
+
DexType2["PANCAKEV2"] = "pancakev2";
|
|
37
|
+
DexType2["PANCAKEV3"] = "pancakev3";
|
|
38
|
+
DexType2["CURVE128PAYABLE"] = "curve128_payable";
|
|
39
|
+
DexType2["CURVE256PAYABLE"] = "curve256_payable";
|
|
40
|
+
DexType2["VSDCRVWITHDRAW"] = "vsdCRV_withdraw";
|
|
41
|
+
DexType2["VSDCRVDEPOSIT"] = "vsdCRV_deposit";
|
|
33
42
|
return DexType2;
|
|
34
43
|
})(DexType || {});
|
|
35
44
|
var BridgeType = /* @__PURE__ */ ((BridgeType2) => {
|
|
36
45
|
BridgeType2["LAYERZEROV1"] = "layerzero_v1";
|
|
37
46
|
BridgeType2["LAYERZEROV2"] = "layerzero_v2";
|
|
47
|
+
BridgeType2["LAYERZEROV1ADADEQEMPTY"] = "layerzero_v1_adapter_eq_empty";
|
|
48
|
+
BridgeType2["LAYERZEROV1PKG"] = "layerzero_v1_pkg";
|
|
49
|
+
BridgeType2["LAYERZEROV1PKGNOMIN"] = "layerzero_v1_pkg_no_min";
|
|
50
|
+
BridgeType2["LAYERZEROV1OHM"] = "layerzero_v1_ohm";
|
|
38
51
|
return BridgeType2;
|
|
39
52
|
})(BridgeType || {});
|
|
40
53
|
var ChainNameEnum = /* @__PURE__ */ ((ChainNameEnum2) => {
|
|
@@ -198,23 +211,42 @@ var AddressConst = {
|
|
|
198
211
|
eth: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
|
|
199
212
|
arb: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1"
|
|
200
213
|
},
|
|
214
|
+
seth: {
|
|
215
|
+
eth: "0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb"
|
|
216
|
+
},
|
|
217
|
+
wbtc: {
|
|
218
|
+
eth: "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599"
|
|
219
|
+
},
|
|
201
220
|
usdt: {
|
|
202
|
-
eth: ""
|
|
221
|
+
eth: "0xdAC17F958D2ee523a2206206994597C13D831ec7"
|
|
203
222
|
},
|
|
204
223
|
// fx
|
|
205
224
|
feth: {
|
|
206
225
|
eth: "0x53805A76E1f5ebbFE7115F16f9c87C2f7e633726",
|
|
207
226
|
arb: "0xc608Dfb90A430Df79a8a1eDBC8be7f1A0Eb4E763"
|
|
208
227
|
},
|
|
228
|
+
sdcrv: {
|
|
229
|
+
eth: "0xD1b5651E55D4CeeD36251c61c50C889B36F6abB5"
|
|
230
|
+
},
|
|
231
|
+
crv: {
|
|
232
|
+
eth: "0xD533a949740bb3306d119CC777fa900bA034cd52"
|
|
233
|
+
},
|
|
209
234
|
xeth: {
|
|
210
235
|
eth: "0xe063F04f280c60aECa68b38341C2eEcBeC703ae2",
|
|
211
236
|
arb: "0x55380fe7A1910dFf29A47B622057ab4139DA42C5"
|
|
212
237
|
},
|
|
238
|
+
vsdcrv: {
|
|
239
|
+
eth: "0xE079ac07463ff375Ce48E8A9D76211C10696F3B8"
|
|
240
|
+
},
|
|
213
241
|
arb: {
|
|
214
242
|
arb: "0x912CE59144191C1204E64559FE8253a0e49E6548"
|
|
215
243
|
},
|
|
216
244
|
usdc: {
|
|
217
|
-
arb: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831"
|
|
245
|
+
arb: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
|
|
246
|
+
eth: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
|
247
|
+
},
|
|
248
|
+
ohm: {
|
|
249
|
+
arb: "0xf0cb2dc0db5e6c66B9a70Ac27B06b878da017028"
|
|
218
250
|
}
|
|
219
251
|
};
|
|
220
252
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IExpectParams, ISwapParams, IBridgeParams, ISwapAndBridgeParams, IReceipt, IConfig, IExpectPayload, IRouterPath } from './types.js';
|
|
2
|
-
import { ChainNameEnum, AddressConst, DexType, BridgeType } from './types.js';
|
|
2
|
+
import { ChainNameEnum, AddressConst, DexType, BridgeType, SupportContracts } from './types.js';
|
|
3
3
|
export type { IExpectParams, ISwapParams, IBridgeParams, ISwapAndBridgeParams, IReceipt, IConfig, IExpectPayload, IRouterPath };
|
|
4
|
-
export { ChainNameEnum, AddressConst, DexType, BridgeType };
|
|
4
|
+
export { ChainNameEnum, AddressConst, DexType, BridgeType, SupportContracts };
|
|
5
5
|
declare class Hermes {
|
|
6
6
|
private config;
|
|
7
7
|
private providerMap;
|
|
@@ -21,6 +21,8 @@ declare class Hermes {
|
|
|
21
21
|
bridge(params: IBridgeParams): Promise<IReceipt>;
|
|
22
22
|
estimateBridgeFee(params: IBridgeParams): Promise<bigint>;
|
|
23
23
|
swapAndBridge(params: ISwapAndBridgeParams): Promise<IReceipt>;
|
|
24
|
+
getAggregatorSupportContracts(chain: ChainNameEnum): Promise<SupportContracts[]>;
|
|
25
|
+
getQuoterSupportContracts(chain: ChainNameEnum): Promise<SupportContracts[]>;
|
|
24
26
|
/**
|
|
25
27
|
* 生成 swapAndBridge 的 calldata
|
|
26
28
|
*/
|
package/dist/esm/index.js
CHANGED
|
@@ -15,7 +15,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
15
15
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
16
16
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
17
17
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
-
import { ChainNameEnum, AddressConst, DexType, BridgeType } from "./types.js";
|
|
18
|
+
import { ChainNameEnum, AddressConst, DexType, BridgeType, SupportContracts } from "./types.js";
|
|
19
19
|
import { ethers } from 'ethers';
|
|
20
20
|
import { Contract } from 'ethers';
|
|
21
21
|
import QuoterAbi from "./abis/quoter.js";
|
|
@@ -23,7 +23,7 @@ import AggregatorAbi from "./abis/aggregator.js";
|
|
|
23
23
|
|
|
24
24
|
// 导出所有类型定义,方便用户使用
|
|
25
25
|
|
|
26
|
-
export { ChainNameEnum, AddressConst, DexType, BridgeType };
|
|
26
|
+
export { ChainNameEnum, AddressConst, DexType, BridgeType, SupportContracts };
|
|
27
27
|
var Hermes = /*#__PURE__*/function () {
|
|
28
28
|
function Hermes(config) {
|
|
29
29
|
_classCallCheck(this, Hermes);
|
|
@@ -561,6 +561,144 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
561
561
|
}
|
|
562
562
|
return swapAndBridge;
|
|
563
563
|
}()
|
|
564
|
+
}, {
|
|
565
|
+
key: "getAggregatorSupportContracts",
|
|
566
|
+
value: function () {
|
|
567
|
+
var _getAggregatorSupportContracts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(chain) {
|
|
568
|
+
var aggregatorAddress, provider, aggregator, addressList, supportContracts;
|
|
569
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
570
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
571
|
+
case 0:
|
|
572
|
+
// 返回传入链支持的dex和桥
|
|
573
|
+
// 返回dex type数组
|
|
574
|
+
aggregatorAddress = this.getAggregatorAddress(chain);
|
|
575
|
+
provider = this.providerMap.get(chain);
|
|
576
|
+
if (provider) {
|
|
577
|
+
_context7.next = 4;
|
|
578
|
+
break;
|
|
579
|
+
}
|
|
580
|
+
throw new Error("Provider not configured for chain: ".concat(chain));
|
|
581
|
+
case 4:
|
|
582
|
+
aggregator = new Contract(aggregatorAddress, AggregatorAbi, provider);
|
|
583
|
+
_context7.next = 7;
|
|
584
|
+
return aggregator.getAddressList();
|
|
585
|
+
case 7:
|
|
586
|
+
addressList = _context7.sent;
|
|
587
|
+
if (addressList.length) {
|
|
588
|
+
_context7.next = 10;
|
|
589
|
+
break;
|
|
590
|
+
}
|
|
591
|
+
return _context7.abrupt("return", []);
|
|
592
|
+
case 10:
|
|
593
|
+
_context7.next = 12;
|
|
594
|
+
return Promise.all(addressList.map( /*#__PURE__*/function () {
|
|
595
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(contractAddress, index) {
|
|
596
|
+
var _yield$aggregator$con, contractType;
|
|
597
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
598
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
599
|
+
case 0:
|
|
600
|
+
_context6.next = 2;
|
|
601
|
+
return aggregator.contractList(index);
|
|
602
|
+
case 2:
|
|
603
|
+
_yield$aggregator$con = _context6.sent;
|
|
604
|
+
contractType = _yield$aggregator$con.contractType;
|
|
605
|
+
return _context6.abrupt("return", {
|
|
606
|
+
contractType: contractType,
|
|
607
|
+
contractAddress: contractAddress
|
|
608
|
+
});
|
|
609
|
+
case 5:
|
|
610
|
+
case "end":
|
|
611
|
+
return _context6.stop();
|
|
612
|
+
}
|
|
613
|
+
}, _callee6);
|
|
614
|
+
}));
|
|
615
|
+
return function (_x7, _x8) {
|
|
616
|
+
return _ref.apply(this, arguments);
|
|
617
|
+
};
|
|
618
|
+
}()));
|
|
619
|
+
case 12:
|
|
620
|
+
supportContracts = _context7.sent;
|
|
621
|
+
return _context7.abrupt("return", supportContracts);
|
|
622
|
+
case 14:
|
|
623
|
+
case "end":
|
|
624
|
+
return _context7.stop();
|
|
625
|
+
}
|
|
626
|
+
}, _callee7, this);
|
|
627
|
+
}));
|
|
628
|
+
function getAggregatorSupportContracts(_x6) {
|
|
629
|
+
return _getAggregatorSupportContracts.apply(this, arguments);
|
|
630
|
+
}
|
|
631
|
+
return getAggregatorSupportContracts;
|
|
632
|
+
}()
|
|
633
|
+
}, {
|
|
634
|
+
key: "getQuoterSupportContracts",
|
|
635
|
+
value: function () {
|
|
636
|
+
var _getQuoterSupportContracts = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee9(chain) {
|
|
637
|
+
var quoterAddress, provider, quoter, addressList, supportContracts;
|
|
638
|
+
return _regeneratorRuntime().wrap(function _callee9$(_context9) {
|
|
639
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
640
|
+
case 0:
|
|
641
|
+
// 返回传入链支持的dex和桥
|
|
642
|
+
// 返回dex type数组
|
|
643
|
+
quoterAddress = this.getQuoterAddress(chain);
|
|
644
|
+
provider = this.providerMap.get(chain);
|
|
645
|
+
if (provider) {
|
|
646
|
+
_context9.next = 4;
|
|
647
|
+
break;
|
|
648
|
+
}
|
|
649
|
+
throw new Error("Provider not configured for chain: ".concat(chain));
|
|
650
|
+
case 4:
|
|
651
|
+
quoter = new Contract(quoterAddress, QuoterAbi, provider);
|
|
652
|
+
_context9.next = 7;
|
|
653
|
+
return quoter.getAddressList();
|
|
654
|
+
case 7:
|
|
655
|
+
addressList = _context9.sent;
|
|
656
|
+
if (addressList.length) {
|
|
657
|
+
_context9.next = 10;
|
|
658
|
+
break;
|
|
659
|
+
}
|
|
660
|
+
return _context9.abrupt("return", []);
|
|
661
|
+
case 10:
|
|
662
|
+
_context9.next = 12;
|
|
663
|
+
return Promise.all(addressList.map( /*#__PURE__*/function () {
|
|
664
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee8(contractAddress, index) {
|
|
665
|
+
var _yield$quoter$contrac, contractType;
|
|
666
|
+
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
667
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
668
|
+
case 0:
|
|
669
|
+
_context8.next = 2;
|
|
670
|
+
return quoter.contractList(index);
|
|
671
|
+
case 2:
|
|
672
|
+
_yield$quoter$contrac = _context8.sent;
|
|
673
|
+
contractType = _yield$quoter$contrac.contractType;
|
|
674
|
+
return _context8.abrupt("return", {
|
|
675
|
+
contractType: contractType,
|
|
676
|
+
contractAddress: contractAddress
|
|
677
|
+
});
|
|
678
|
+
case 5:
|
|
679
|
+
case "end":
|
|
680
|
+
return _context8.stop();
|
|
681
|
+
}
|
|
682
|
+
}, _callee8);
|
|
683
|
+
}));
|
|
684
|
+
return function (_x10, _x11) {
|
|
685
|
+
return _ref2.apply(this, arguments);
|
|
686
|
+
};
|
|
687
|
+
}()));
|
|
688
|
+
case 12:
|
|
689
|
+
supportContracts = _context9.sent;
|
|
690
|
+
return _context9.abrupt("return", supportContracts);
|
|
691
|
+
case 14:
|
|
692
|
+
case "end":
|
|
693
|
+
return _context9.stop();
|
|
694
|
+
}
|
|
695
|
+
}, _callee9, this);
|
|
696
|
+
}));
|
|
697
|
+
function getQuoterSupportContracts(_x9) {
|
|
698
|
+
return _getQuoterSupportContracts.apply(this, arguments);
|
|
699
|
+
}
|
|
700
|
+
return getQuoterSupportContracts;
|
|
701
|
+
}()
|
|
564
702
|
/**
|
|
565
703
|
* 生成 swapAndBridge 的 calldata
|
|
566
704
|
*/
|
|
@@ -612,39 +750,39 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
612
750
|
}, {
|
|
613
751
|
key: "checkIsEnoughToken",
|
|
614
752
|
value: function () {
|
|
615
|
-
var _checkIsEnoughToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
753
|
+
var _checkIsEnoughToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee10(fromTokenAddress, userAddress, amountInWei, aggregatorAddress, wallet) {
|
|
616
754
|
var erc20, userBalance, currentAllowance;
|
|
617
|
-
return _regeneratorRuntime().wrap(function
|
|
618
|
-
while (1) switch (
|
|
755
|
+
return _regeneratorRuntime().wrap(function _callee10$(_context10) {
|
|
756
|
+
while (1) switch (_context10.prev = _context10.next) {
|
|
619
757
|
case 0:
|
|
620
758
|
erc20 = new Contract(fromTokenAddress, ['function balanceOf(address) view returns (uint256)', 'function allowance(address, address) view returns (uint256)'], wallet);
|
|
621
|
-
|
|
759
|
+
_context10.next = 3;
|
|
622
760
|
return erc20.balanceOf(userAddress);
|
|
623
761
|
case 3:
|
|
624
|
-
userBalance =
|
|
762
|
+
userBalance = _context10.sent;
|
|
625
763
|
if (!(userBalance < amountInWei)) {
|
|
626
|
-
|
|
764
|
+
_context10.next = 6;
|
|
627
765
|
break;
|
|
628
766
|
}
|
|
629
767
|
throw new Error('Insufficient balance token amount');
|
|
630
768
|
case 6:
|
|
631
|
-
|
|
769
|
+
_context10.next = 8;
|
|
632
770
|
return erc20.allowance(userAddress, aggregatorAddress);
|
|
633
771
|
case 8:
|
|
634
|
-
currentAllowance =
|
|
772
|
+
currentAllowance = _context10.sent;
|
|
635
773
|
console.log(currentAllowance);
|
|
636
774
|
if (!(currentAllowance < amountInWei)) {
|
|
637
|
-
|
|
775
|
+
_context10.next = 12;
|
|
638
776
|
break;
|
|
639
777
|
}
|
|
640
778
|
throw new Error('Insufficient allowance token amount');
|
|
641
779
|
case 12:
|
|
642
780
|
case "end":
|
|
643
|
-
return
|
|
781
|
+
return _context10.stop();
|
|
644
782
|
}
|
|
645
|
-
},
|
|
783
|
+
}, _callee10);
|
|
646
784
|
}));
|
|
647
|
-
function checkIsEnoughToken(
|
|
785
|
+
function checkIsEnoughToken(_x12, _x13, _x14, _x15, _x16) {
|
|
648
786
|
return _checkIsEnoughToken.apply(this, arguments);
|
|
649
787
|
}
|
|
650
788
|
return checkIsEnoughToken;
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -89,15 +89,32 @@ export interface ILog {
|
|
|
89
89
|
transactionIndex: number;
|
|
90
90
|
args: any[];
|
|
91
91
|
}
|
|
92
|
+
export interface SupportContracts {
|
|
93
|
+
contractAddress: string;
|
|
94
|
+
contractType: string;
|
|
95
|
+
}
|
|
92
96
|
export declare enum DexType {
|
|
93
97
|
FX = "f(x)",
|
|
94
98
|
UNISWAPV2 = "uniswapv2",
|
|
99
|
+
UNISWAPV3 = "uniswapv3",
|
|
100
|
+
UNISWAPV4 = "uniswapv4",
|
|
95
101
|
CURVE128 = "curve128",
|
|
96
|
-
CURVE256 = "curve256"
|
|
102
|
+
CURVE256 = "curve256",
|
|
103
|
+
CAMELOTV2 = "camelotv2",
|
|
104
|
+
PANCAKEV2 = "pancakev2",
|
|
105
|
+
PANCAKEV3 = "pancakev3",
|
|
106
|
+
CURVE128PAYABLE = "curve128_payable",
|
|
107
|
+
CURVE256PAYABLE = "curve256_payable",
|
|
108
|
+
VSDCRVWITHDRAW = "vsdCRV_withdraw",
|
|
109
|
+
VSDCRVDEPOSIT = "vsdCRV_deposit"
|
|
97
110
|
}
|
|
98
111
|
export declare enum BridgeType {
|
|
99
112
|
LAYERZEROV1 = "layerzero_v1",
|
|
100
|
-
LAYERZEROV2 = "layerzero_v2"
|
|
113
|
+
LAYERZEROV2 = "layerzero_v2",
|
|
114
|
+
LAYERZEROV1ADADEQEMPTY = "layerzero_v1_adapter_eq_empty",
|
|
115
|
+
LAYERZEROV1PKG = "layerzero_v1_pkg",
|
|
116
|
+
LAYERZEROV1PKGNOMIN = "layerzero_v1_pkg_no_min",
|
|
117
|
+
LAYERZEROV1OHM = "layerzero_v1_ohm"
|
|
101
118
|
}
|
|
102
119
|
export declare enum ChainNameEnum {
|
|
103
120
|
ETH = "ETH",// Ethereum Mainnet
|
|
@@ -263,6 +280,12 @@ export declare const AddressConst: {
|
|
|
263
280
|
eth: string;
|
|
264
281
|
arb: string;
|
|
265
282
|
};
|
|
283
|
+
seth: {
|
|
284
|
+
eth: string;
|
|
285
|
+
};
|
|
286
|
+
wbtc: {
|
|
287
|
+
eth: string;
|
|
288
|
+
};
|
|
266
289
|
usdt: {
|
|
267
290
|
eth: string;
|
|
268
291
|
};
|
|
@@ -270,15 +293,28 @@ export declare const AddressConst: {
|
|
|
270
293
|
eth: string;
|
|
271
294
|
arb: string;
|
|
272
295
|
};
|
|
296
|
+
sdcrv: {
|
|
297
|
+
eth: string;
|
|
298
|
+
};
|
|
299
|
+
crv: {
|
|
300
|
+
eth: string;
|
|
301
|
+
};
|
|
273
302
|
xeth: {
|
|
274
303
|
eth: string;
|
|
275
304
|
arb: string;
|
|
276
305
|
};
|
|
306
|
+
vsdcrv: {
|
|
307
|
+
eth: string;
|
|
308
|
+
};
|
|
277
309
|
arb: {
|
|
278
310
|
arb: string;
|
|
279
311
|
};
|
|
280
312
|
usdc: {
|
|
281
313
|
arb: string;
|
|
314
|
+
eth: string;
|
|
315
|
+
};
|
|
316
|
+
ohm: {
|
|
317
|
+
arb: string;
|
|
282
318
|
};
|
|
283
319
|
};
|
|
284
320
|
export interface IExpectPayload {
|
package/dist/esm/types.js
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
export var DexType = /*#__PURE__*/function (DexType) {
|
|
2
2
|
DexType["FX"] = "f(x)";
|
|
3
3
|
DexType["UNISWAPV2"] = "uniswapv2";
|
|
4
|
+
DexType["UNISWAPV3"] = "uniswapv3";
|
|
5
|
+
DexType["UNISWAPV4"] = "uniswapv4";
|
|
4
6
|
DexType["CURVE128"] = "curve128";
|
|
5
7
|
DexType["CURVE256"] = "curve256";
|
|
8
|
+
DexType["CAMELOTV2"] = "camelotv2";
|
|
9
|
+
DexType["PANCAKEV2"] = "pancakev2";
|
|
10
|
+
DexType["PANCAKEV3"] = "pancakev3";
|
|
11
|
+
DexType["CURVE128PAYABLE"] = "curve128_payable";
|
|
12
|
+
DexType["CURVE256PAYABLE"] = "curve256_payable";
|
|
13
|
+
DexType["VSDCRVWITHDRAW"] = "vsdCRV_withdraw";
|
|
14
|
+
DexType["VSDCRVDEPOSIT"] = "vsdCRV_deposit";
|
|
6
15
|
return DexType;
|
|
7
16
|
}({});
|
|
8
17
|
export var BridgeType = /*#__PURE__*/function (BridgeType) {
|
|
9
18
|
BridgeType["LAYERZEROV1"] = "layerzero_v1";
|
|
10
19
|
BridgeType["LAYERZEROV2"] = "layerzero_v2";
|
|
20
|
+
BridgeType["LAYERZEROV1ADADEQEMPTY"] = "layerzero_v1_adapter_eq_empty";
|
|
21
|
+
BridgeType["LAYERZEROV1PKG"] = "layerzero_v1_pkg";
|
|
22
|
+
BridgeType["LAYERZEROV1PKGNOMIN"] = "layerzero_v1_pkg_no_min";
|
|
23
|
+
BridgeType["LAYERZEROV1OHM"] = "layerzero_v1_ohm";
|
|
11
24
|
return BridgeType;
|
|
12
25
|
}({});
|
|
13
26
|
export var ChainNameEnum = /*#__PURE__*/function (ChainNameEnum) {
|
|
@@ -171,22 +184,41 @@ export var AddressConst = {
|
|
|
171
184
|
eth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
|
|
172
185
|
arb: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1'
|
|
173
186
|
},
|
|
187
|
+
seth: {
|
|
188
|
+
eth: '0x5e74C9036fb86BD7eCdcb084a0673EFc32eA31cb'
|
|
189
|
+
},
|
|
190
|
+
wbtc: {
|
|
191
|
+
eth: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
|
|
192
|
+
},
|
|
174
193
|
usdt: {
|
|
175
|
-
eth: ''
|
|
194
|
+
eth: '0xdAC17F958D2ee523a2206206994597C13D831ec7'
|
|
176
195
|
},
|
|
177
196
|
// fx
|
|
178
197
|
feth: {
|
|
179
198
|
eth: '0x53805A76E1f5ebbFE7115F16f9c87C2f7e633726',
|
|
180
199
|
arb: '0xc608Dfb90A430Df79a8a1eDBC8be7f1A0Eb4E763'
|
|
181
200
|
},
|
|
201
|
+
sdcrv: {
|
|
202
|
+
eth: '0xD1b5651E55D4CeeD36251c61c50C889B36F6abB5'
|
|
203
|
+
},
|
|
204
|
+
crv: {
|
|
205
|
+
eth: '0xD533a949740bb3306d119CC777fa900bA034cd52'
|
|
206
|
+
},
|
|
182
207
|
xeth: {
|
|
183
208
|
eth: '0xe063F04f280c60aECa68b38341C2eEcBeC703ae2',
|
|
184
209
|
arb: '0x55380fe7A1910dFf29A47B622057ab4139DA42C5'
|
|
185
210
|
},
|
|
211
|
+
vsdcrv: {
|
|
212
|
+
eth: '0xE079ac07463ff375Ce48E8A9D76211C10696F3B8'
|
|
213
|
+
},
|
|
186
214
|
arb: {
|
|
187
215
|
arb: '0x912CE59144191C1204E64559FE8253a0e49E6548'
|
|
188
216
|
},
|
|
189
217
|
usdc: {
|
|
190
|
-
arb: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
|
|
218
|
+
arb: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
219
|
+
eth: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
|
|
220
|
+
},
|
|
221
|
+
ohm: {
|
|
222
|
+
arb: '0xf0cb2dc0db5e6c66B9a70Ac27B06b878da017028'
|
|
191
223
|
}
|
|
192
224
|
};
|