hermes-swap 0.6.11 → 0.7.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/dist/cjs/aggregator.cjs +122 -50
- package/dist/cjs/types.cjs +54 -0
- package/dist/cjs/types.d.ts +55 -1
- package/dist/esm/aggregator.mjs +405 -316
- package/dist/esm/types.d.ts +55 -1
- package/dist/esm/types.mjs +54 -0
- package/package.json +2 -2
package/dist/cjs/aggregator.cjs
CHANGED
|
@@ -1153,31 +1153,66 @@ var _Aggregator = class {
|
|
|
1153
1153
|
);
|
|
1154
1154
|
});
|
|
1155
1155
|
}
|
|
1156
|
-
async sendSignedTxToChannels(chain, signedTx, txHash, channels, traceReq) {
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1156
|
+
async sendSignedTxToChannels(chain, signedTx, txHash, channels, traceReq, abortSignal) {
|
|
1157
|
+
return await new Promise((resolve, reject) => {
|
|
1158
|
+
let settled = false;
|
|
1159
|
+
let finishedCount = 0;
|
|
1160
|
+
const failures = [];
|
|
1161
|
+
const cleanup = () => {
|
|
1162
|
+
abortSignal == null ? void 0 : abortSignal.removeEventListener("abort", onAbort);
|
|
1163
|
+
};
|
|
1164
|
+
const finishResolve = () => {
|
|
1165
|
+
if (settled)
|
|
1166
|
+
return;
|
|
1167
|
+
settled = true;
|
|
1168
|
+
cleanup();
|
|
1169
|
+
resolve();
|
|
1170
|
+
};
|
|
1171
|
+
const finishReject = () => {
|
|
1172
|
+
if (settled)
|
|
1173
|
+
return;
|
|
1174
|
+
settled = true;
|
|
1175
|
+
cleanup();
|
|
1176
|
+
const detail = failures.map((result) => `${result.label}: ${result.msg ?? "unknown error"}`).join("; ");
|
|
1177
|
+
reject(new Error(`All broadcast channels failed for ${txHash}: ${detail}`));
|
|
1178
|
+
};
|
|
1179
|
+
const onAbort = () => {
|
|
1180
|
+
finishResolve();
|
|
1181
|
+
};
|
|
1182
|
+
if (abortSignal == null ? void 0 : abortSignal.aborted) {
|
|
1183
|
+
finishResolve();
|
|
1184
|
+
return;
|
|
1185
|
+
}
|
|
1186
|
+
abortSignal == null ? void 0 : abortSignal.addEventListener("abort", onAbort, { once: true });
|
|
1187
|
+
for (const { label, send } of channels) {
|
|
1160
1188
|
const sendTs = Date.now();
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1189
|
+
send(abortSignal).then(
|
|
1190
|
+
() => {
|
|
1191
|
+
if (settled || (abortSignal == null ? void 0 : abortSignal.aborted))
|
|
1192
|
+
return;
|
|
1193
|
+
this.trace(chain, traceReq, "log", "hermes-broadcast-channel-成功", `广播${label} OK, txHash=${txHash}, 耗时=${Date.now() - sendTs}ms`);
|
|
1194
|
+
finishResolve();
|
|
1195
|
+
},
|
|
1196
|
+
(err) => {
|
|
1197
|
+
var _a, _b, _c, _d, _e;
|
|
1198
|
+
if (settled || (abortSignal == null ? void 0 : abortSignal.aborted))
|
|
1199
|
+
return;
|
|
1200
|
+
const msg = ((_c = (_b = (_a = err == null ? void 0 : err.response) == null ? void 0 : _a.data) == null ? void 0 : _b.error) == null ? void 0 : _c.message) ?? ((_e = (_d = err == null ? void 0 : err.response) == null ? void 0 : _d.data) == null ? void 0 : _e.message) ?? (err == null ? void 0 : err.message) ?? String(err);
|
|
1201
|
+
if (_Aggregator.isBenignBroadcastError(msg)) {
|
|
1202
|
+
this.trace(chain, traceReq, "log", "hermes-broadcast-channel-已存在", `广播${label} already-known, txHash=${txHash}, 耗时=${Date.now() - sendTs}ms`);
|
|
1203
|
+
finishResolve();
|
|
1204
|
+
return;
|
|
1205
|
+
}
|
|
1206
|
+
this.trace(chain, traceReq, "warn", "hermes-broadcast-channel-失败", `广播${label} 失败: ${msg}, txHash=${txHash}, 耗时=${Date.now() - sendTs}ms`);
|
|
1207
|
+
failures.push({ label, msg });
|
|
1208
|
+
finishedCount += 1;
|
|
1209
|
+
if (finishedCount === channels.length) {
|
|
1210
|
+
finishReject();
|
|
1211
|
+
}
|
|
1170
1212
|
}
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
})
|
|
1175
|
-
);
|
|
1176
|
-
if (results.some((result) => result.ok)) {
|
|
1177
|
-
return;
|
|
1178
|
-
}
|
|
1179
|
-
const detail = results.map((result) => `${result.label}: ${result.msg ?? "unknown error"}`).join("; ");
|
|
1180
|
-
throw new Error(`All broadcast channels failed for ${txHash}: ${detail}`);
|
|
1213
|
+
);
|
|
1214
|
+
}
|
|
1215
|
+
});
|
|
1181
1216
|
}
|
|
1182
1217
|
raceForReceipt(chain, txHash, providers, ownedProviders = [], timeoutMs = _Aggregator.TX_CONFIRM_TIMEOUT_MS, traceReq) {
|
|
1183
1218
|
return new Promise((resolve, reject) => {
|
|
@@ -1237,9 +1272,9 @@ var _Aggregator = class {
|
|
|
1237
1272
|
return null;
|
|
1238
1273
|
return {
|
|
1239
1274
|
label: `Sequencer[${new URL(sequencerUrl).hostname}]`,
|
|
1240
|
-
send: async () => {
|
|
1275
|
+
send: async (signal) => {
|
|
1241
1276
|
var _a;
|
|
1242
|
-
const resp = await import_axios.default.post(sequencerUrl, { jsonrpc: "2.0", id: 1, method: "eth_sendRawTransaction", params: [signedTx] }, { timeout: 5e3 });
|
|
1277
|
+
const resp = await import_axios.default.post(sequencerUrl, { jsonrpc: "2.0", id: 1, method: "eth_sendRawTransaction", params: [signedTx] }, { timeout: 5e3, signal });
|
|
1243
1278
|
if ((_a = resp.data) == null ? void 0 : _a.error) {
|
|
1244
1279
|
throw new Error(resp.data.error.message ?? JSON.stringify(resp.data.error));
|
|
1245
1280
|
}
|
|
@@ -1288,10 +1323,17 @@ var _Aggregator = class {
|
|
|
1288
1323
|
const providers = [{ provider: mainProvider2, label: "RPC[0/主]" }];
|
|
1289
1324
|
const sequencerChannel2 = this.buildSequencerChannel(chain, signedTx2);
|
|
1290
1325
|
const channels2 = [...providers.map(({ provider, label }) => ({ label, send: () => provider.broadcastTransaction(signedTx2) })), ...sequencerChannel2 ? [sequencerChannel2] : []];
|
|
1291
|
-
const
|
|
1292
|
-
|
|
1326
|
+
const broadcastAbortController2 = new AbortController();
|
|
1327
|
+
const receiptPromise2 = this.raceForReceipt(chain, txHash2, providers, [], _Aggregator.TX_CONFIRM_TIMEOUT_MS, traceReq).finally(() => {
|
|
1328
|
+
broadcastAbortController2.abort();
|
|
1329
|
+
});
|
|
1330
|
+
const broadcastPromise2 = this.sendSignedTxToChannels(chain, signedTx2, txHash2, channels2, traceReq, broadcastAbortController2.signal);
|
|
1293
1331
|
this.trace(chain, traceReq, "log", "hermes-sendContractTx-等待确认", `并行广播后开始等待确认, txHash=${txHash2}`);
|
|
1294
|
-
const receipt2 = await
|
|
1332
|
+
const receipt2 = await Promise.race([
|
|
1333
|
+
receiptPromise2,
|
|
1334
|
+
broadcastPromise2.then(() => new Promise(() => {
|
|
1335
|
+
}))
|
|
1336
|
+
]);
|
|
1295
1337
|
const blockTs2 = await this.getBlockTimestampStr(mainProvider2, receipt2.blockNumber);
|
|
1296
1338
|
this.trace(
|
|
1297
1339
|
chain,
|
|
@@ -1330,11 +1372,18 @@ var _Aggregator = class {
|
|
|
1330
1372
|
const broadcastTs = Date.now();
|
|
1331
1373
|
const sequencerChannel = this.buildSequencerChannel(chain, signedTx);
|
|
1332
1374
|
const channels = [...allProviders.map(({ provider, label }) => ({ label, send: () => provider.broadcastTransaction(signedTx) })), ...sequencerChannel ? [sequencerChannel] : []];
|
|
1333
|
-
const
|
|
1375
|
+
const broadcastAbortController = new AbortController();
|
|
1376
|
+
const receiptPromise = this.raceForReceipt(chain, txHash, allProviders, ownedProviders, _Aggregator.TX_CONFIRM_TIMEOUT_MS, traceReq).finally(() => {
|
|
1377
|
+
broadcastAbortController.abort();
|
|
1378
|
+
});
|
|
1379
|
+
const broadcastPromise = this.sendSignedTxToChannels(chain, signedTx, txHash, channels, traceReq, broadcastAbortController.signal);
|
|
1334
1380
|
this.trace(chain, traceReq, "log", "hermes-sendContractTx-RPC发送前", `多RPC广播准备发送, txHash=${txHash}`);
|
|
1335
|
-
await this.sendSignedTxToChannels(chain, signedTx, txHash, channels, traceReq);
|
|
1336
1381
|
this.trace(chain, traceReq, "log", "hermes-sendContractTx-等待确认", `多RPC广播后开始等待确认, txHash=${txHash}`);
|
|
1337
|
-
const receipt = await
|
|
1382
|
+
const receipt = await Promise.race([
|
|
1383
|
+
receiptPromise,
|
|
1384
|
+
broadcastPromise.then(() => new Promise(() => {
|
|
1385
|
+
}))
|
|
1386
|
+
]);
|
|
1338
1387
|
const blockTs = await this.getBlockTimestampStr(mainProvider, receipt.blockNumber);
|
|
1339
1388
|
this.trace(
|
|
1340
1389
|
chain,
|
|
@@ -1393,6 +1442,7 @@ var _Aggregator = class {
|
|
|
1393
1442
|
let totalSent = 0;
|
|
1394
1443
|
let totalFailed = 0;
|
|
1395
1444
|
const signer = builderCfg.authType === "flashbots" ? this.flashbotSigner : void 0;
|
|
1445
|
+
const builderAbortController = new AbortController();
|
|
1396
1446
|
const fireAndForget = builderEntries.flatMap(([name, url]) => {
|
|
1397
1447
|
if (name === "flashbots" && builderCfg.authType === "flashbots" && signer) {
|
|
1398
1448
|
return [
|
|
@@ -1404,7 +1454,9 @@ var _Aggregator = class {
|
|
|
1404
1454
|
};
|
|
1405
1455
|
const ts = Date.now();
|
|
1406
1456
|
try {
|
|
1407
|
-
const response = await import_axios.default.post(url, body, { headers, timeout: 3e3 });
|
|
1457
|
+
const response = await import_axios.default.post(url, body, { headers, timeout: 3e3, signal: builderAbortController.signal });
|
|
1458
|
+
if (builderAbortController.signal.aborted)
|
|
1459
|
+
return;
|
|
1408
1460
|
const rpcErrorMessage = _Aggregator.getJsonRpcErrorMessage(response.data);
|
|
1409
1461
|
if (rpcErrorMessage) {
|
|
1410
1462
|
totalFailed++;
|
|
@@ -1418,6 +1470,8 @@ var _Aggregator = class {
|
|
|
1418
1470
|
return;
|
|
1419
1471
|
}
|
|
1420
1472
|
totalSent++;
|
|
1473
|
+
if (builderAbortController.signal.aborted)
|
|
1474
|
+
return;
|
|
1421
1475
|
this.trace(
|
|
1422
1476
|
chain,
|
|
1423
1477
|
traceReq,
|
|
@@ -1426,6 +1480,8 @@ var _Aggregator = class {
|
|
|
1426
1480
|
`Builder[${name}] mev_sendBundle 发送成功, targetBlocks=[${targetBlocks.join(",")}], 耗时=${Date.now() - ts}ms, resp=${JSON.stringify(response.data)}`
|
|
1427
1481
|
);
|
|
1428
1482
|
} catch (error) {
|
|
1483
|
+
if (builderAbortController.signal.aborted)
|
|
1484
|
+
return;
|
|
1429
1485
|
totalFailed++;
|
|
1430
1486
|
const msg = (error == null ? void 0 : error.response) ? JSON.stringify(error.response.data) : (error == null ? void 0 : error.message) ?? String(error);
|
|
1431
1487
|
this.trace(
|
|
@@ -1447,7 +1503,9 @@ var _Aggregator = class {
|
|
|
1447
1503
|
}
|
|
1448
1504
|
const ts = Date.now();
|
|
1449
1505
|
try {
|
|
1450
|
-
const response = await import_axios.default.post(url, body, { headers, timeout: 3e3 });
|
|
1506
|
+
const response = await import_axios.default.post(url, body, { headers, timeout: 3e3, signal: builderAbortController.signal });
|
|
1507
|
+
if (builderAbortController.signal.aborted)
|
|
1508
|
+
return;
|
|
1451
1509
|
const rpcErrorMessage = _Aggregator.getJsonRpcErrorMessage(response.data);
|
|
1452
1510
|
if (rpcErrorMessage) {
|
|
1453
1511
|
totalFailed++;
|
|
@@ -1461,32 +1519,47 @@ var _Aggregator = class {
|
|
|
1461
1519
|
return;
|
|
1462
1520
|
}
|
|
1463
1521
|
totalSent++;
|
|
1522
|
+
if (builderAbortController.signal.aborted)
|
|
1523
|
+
return;
|
|
1464
1524
|
this.trace(chain, traceReq, "log", "hermes-submitBundleTx-builder-成功", `Builder[${name}] 发送成功, targetBlock=${block}, 耗时=${Date.now() - ts}ms, resp=${JSON.stringify(response.data)}`);
|
|
1465
1525
|
} catch (error) {
|
|
1526
|
+
if (builderAbortController.signal.aborted)
|
|
1527
|
+
return;
|
|
1466
1528
|
totalFailed++;
|
|
1467
1529
|
const msg = (error == null ? void 0 : error.response) ? JSON.stringify(error.response.data) : (error == null ? void 0 : error.message) ?? String(error);
|
|
1468
1530
|
this.trace(chain, traceReq, "error", "hermes-submitBundleTx-builder-失败", `Builder[${name}] 发送失败, targetBlock=${block}, 耗时=${Date.now() - ts}ms, error=${msg}`);
|
|
1469
1531
|
}
|
|
1470
1532
|
});
|
|
1471
1533
|
});
|
|
1472
|
-
const
|
|
1473
|
-
const inclusionPromise = this.waitForBundleInclusion(provider, txHash, targetBlocks,
|
|
1534
|
+
const inclusionAbortController = new AbortController();
|
|
1535
|
+
const inclusionPromise = this.waitForBundleInclusion(provider, txHash, targetBlocks, inclusionAbortController.signal).finally(() => {
|
|
1536
|
+
builderAbortController.abort();
|
|
1537
|
+
});
|
|
1474
1538
|
const waitTs = Date.now();
|
|
1475
1539
|
this.trace(chain, traceReq, "log", "hermes-submitBundleTx-RPC发送前", `Bundle 请求开始发送, txHash=${txHash}, targetBlocks=[${targetBlocks.join(",")}]`);
|
|
1476
|
-
const
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
})
|
|
1540
|
+
const sendPromise = Promise.all(fireAndForget).then(() => {
|
|
1541
|
+
this.trace(
|
|
1542
|
+
chain,
|
|
1543
|
+
traceReq,
|
|
1544
|
+
"log",
|
|
1545
|
+
"hermes-submitBundleTx-RPC已发送",
|
|
1546
|
+
`Bundle发送完成, 成功=${totalSent}, 失败=${totalFailed}, 总请求=${fireAndForget.length}, 耗时=${Date.now() - sendBundleTs}ms, txHash=${txHash}`
|
|
1547
|
+
);
|
|
1548
|
+
return { totalSent, totalFailed };
|
|
1549
|
+
});
|
|
1550
|
+
const firstResult = await Promise.race([
|
|
1551
|
+
inclusionPromise.then((receipt2) => ({ kind: "receipt", receipt: receipt2 })),
|
|
1552
|
+
sendPromise.then((summary) => ({ kind: "sendDone", summary }))
|
|
1489
1553
|
]);
|
|
1554
|
+
let receipt;
|
|
1555
|
+
if (firstResult.kind === "receipt") {
|
|
1556
|
+
receipt = firstResult.receipt;
|
|
1557
|
+
} else {
|
|
1558
|
+
if (firstResult.summary.totalSent === 0) {
|
|
1559
|
+
inclusionAbortController.abort();
|
|
1560
|
+
}
|
|
1561
|
+
receipt = await inclusionPromise;
|
|
1562
|
+
}
|
|
1490
1563
|
if (receipt) {
|
|
1491
1564
|
const blockTs = await this.getBlockTimestampStr(provider, receipt.blockNumber);
|
|
1492
1565
|
this.trace(
|
|
@@ -1638,8 +1711,7 @@ Aggregator.DEFAULT_ETH_BUILDERS = {
|
|
|
1638
1711
|
// bloXroute: 'https://mev.api.blxrbdn.com', // 旧 api.blxrbdn.com 也行,需配置 Authorization 头
|
|
1639
1712
|
"Builder+": "https://rpc.btcs.com",
|
|
1640
1713
|
// BTCS 官方文档支持 eth_sendBundle
|
|
1641
|
-
turbobuilder:
|
|
1642
|
-
// 官方文档支持 eth_sendBundle
|
|
1714
|
+
// turbobuilder: 'https://rpc.turbobuilder.xyz', // 官方文档支持 eth_sendBundle
|
|
1643
1715
|
lightspeedbuilder: "https://rpc.lightspeedbuilder.info",
|
|
1644
1716
|
// 新增,实测直接可用
|
|
1645
1717
|
buildernet: "https://rpc.buildernet.org",
|
package/dist/cjs/types.cjs
CHANGED
|
@@ -36,7 +36,9 @@ var import_lz_definitions = require("@layerzerolabs/lz-definitions");
|
|
|
36
36
|
var DexType = /* @__PURE__ */ ((DexType2) => {
|
|
37
37
|
DexType2["FX"] = "f(x)";
|
|
38
38
|
DexType2["UNISWAPV2"] = "uniswapv2";
|
|
39
|
+
DexType2["SUSHIV2"] = "sushiv2";
|
|
39
40
|
DexType2["UNISWAPV3"] = "uniswapv3";
|
|
41
|
+
DexType2["SUSHIV3"] = "sushiv3";
|
|
40
42
|
DexType2["UNISWAPV4"] = "uniswapv4";
|
|
41
43
|
DexType2["CURVE128"] = "curve128";
|
|
42
44
|
DexType2["CURVE256"] = "curve256";
|
|
@@ -58,6 +60,58 @@ var DexType = /* @__PURE__ */ ((DexType2) => {
|
|
|
58
60
|
DexType2["BLACKHOLEV3"] = "blackholev3";
|
|
59
61
|
DexType2["BLACKHOLEV2"] = "blackholev2";
|
|
60
62
|
DexType2["FLUID"] = "fluid";
|
|
63
|
+
DexType2["BANCOR"] = "bancor";
|
|
64
|
+
DexType2["ERC4626"] = "erc4626";
|
|
65
|
+
DexType2["DODOV2"] = "dodo-v2";
|
|
66
|
+
DexType2["AERODROMEV3"] = "aerodrome_v3";
|
|
67
|
+
DexType2["ALGEBRAINTEGRAL"] = "algebra_integral";
|
|
68
|
+
DexType2["AMBIENT"] = "ambient";
|
|
69
|
+
DexType2["ANGSTROM"] = "angstrom";
|
|
70
|
+
DexType2["APESWAP"] = "apeswap";
|
|
71
|
+
DexType2["ARCHLYV2"] = "archly_v2";
|
|
72
|
+
DexType2["BALANCER"] = "balancer";
|
|
73
|
+
DexType2["BALANCERV2"] = "balancer_v2";
|
|
74
|
+
DexType2["BALANCERV3"] = "balancer_v3";
|
|
75
|
+
DexType2["BANCORV2"] = "bancor_v2";
|
|
76
|
+
DexType2["BANCORV3"] = "bancor_v3";
|
|
77
|
+
DexType2["BASIN"] = "basin";
|
|
78
|
+
DexType2["BUNNIV2"] = "bunni_v2";
|
|
79
|
+
DexType2["CURVELENDINGPOOLS"] = "curve_lending_pools";
|
|
80
|
+
DexType2["CURVEMETAPOOL"] = "curve_metapool";
|
|
81
|
+
DexType2["CURVESTABLESWAP"] = "curve_stable_swap";
|
|
82
|
+
DexType2["CURVESTABLESWAPNG"] = "curve_stable_swap_ng";
|
|
83
|
+
DexType2["CURVETRICRYPTO"] = "curve_tricrypto";
|
|
84
|
+
DexType2["CURVETRICRYPTONG"] = "curve_tricrypto_ng";
|
|
85
|
+
DexType2["CURVETWOCRYPTO"] = "curve_twocrypto";
|
|
86
|
+
DexType2["CYPHERV2"] = "cypher_v2";
|
|
87
|
+
DexType2["DEFIPLAZA"] = "defiplaza";
|
|
88
|
+
DexType2["DFXV2"] = "dfx_v2";
|
|
89
|
+
DexType2["DODOV1"] = "dodo_v1";
|
|
90
|
+
DexType2["EKUBO"] = "ekubo";
|
|
91
|
+
DexType2["EMPIREDEX"] = "empiredex";
|
|
92
|
+
DexType2["EULERSWAP"] = "eulerswap";
|
|
93
|
+
DexType2["FLUIDDEXLITE"] = "fluid_dex_lite";
|
|
94
|
+
DexType2["FLUIDDEXT1"] = "fluid_dex_t1";
|
|
95
|
+
DexType2["INTEGRAL"] = "integral";
|
|
96
|
+
DexType2["JOEV2"] = "joe_v2";
|
|
97
|
+
DexType2["KYBERSWAPCLASSIC"] = "kyberswap_classic";
|
|
98
|
+
DexType2["KYBERSWAPELASTIC"] = "kyberswap_elastic";
|
|
99
|
+
DexType2["LISTADEX"] = "lista_dex";
|
|
100
|
+
DexType2["LUASWAP"] = "luaswap";
|
|
101
|
+
DexType2["MAVERICKV2"] = "maverick_v2";
|
|
102
|
+
DexType2["MOONISWAP"] = "mooniswap";
|
|
103
|
+
DexType2["PENDLEV2"] = "pendle_v2";
|
|
104
|
+
DexType2["RINGSWAP"] = "ring_swap";
|
|
105
|
+
DexType2["SADDLEFINANCE"] = "saddle_finance";
|
|
106
|
+
DexType2["SHIBASWAPV1"] = "shibaswap_v1";
|
|
107
|
+
DexType2["SMARDEX"] = "smardex";
|
|
108
|
+
DexType2["SOLIDLYV3"] = "solidly_v3";
|
|
109
|
+
DexType2["STABULL"] = "stabull";
|
|
110
|
+
DexType2["SUPERNOVABASIC"] = "supernova_basic";
|
|
111
|
+
DexType2["SWAPR"] = "swapr";
|
|
112
|
+
DexType2["UNISWAPV1"] = "uniswap_v1";
|
|
113
|
+
DexType2["WOMBAT"] = "wombat";
|
|
114
|
+
DexType2["YIELDBASIS"] = "yield_basis";
|
|
61
115
|
return DexType2;
|
|
62
116
|
})(DexType || {});
|
|
63
117
|
var IEstimateType = /* @__PURE__ */ ((IEstimateType2) => {
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -172,7 +172,9 @@ export interface IHermesSignalQuoteBestData {
|
|
|
172
172
|
export declare enum DexType {
|
|
173
173
|
FX = "f(x)",
|
|
174
174
|
UNISWAPV2 = "uniswapv2",
|
|
175
|
+
SUSHIV2 = "sushiv2",
|
|
175
176
|
UNISWAPV3 = "uniswapv3",
|
|
177
|
+
SUSHIV3 = "sushiv3",
|
|
176
178
|
UNISWAPV4 = "uniswapv4",
|
|
177
179
|
CURVE128 = "curve128",
|
|
178
180
|
CURVE256 = "curve256",
|
|
@@ -193,7 +195,59 @@ export declare enum DexType {
|
|
|
193
195
|
SHADOWV2 = "shadowv2",
|
|
194
196
|
BLACKHOLEV3 = "blackholev3",
|
|
195
197
|
BLACKHOLEV2 = "blackholev2",
|
|
196
|
-
FLUID = "fluid"
|
|
198
|
+
FLUID = "fluid",
|
|
199
|
+
BANCOR = "bancor",
|
|
200
|
+
ERC4626 = "erc4626",
|
|
201
|
+
DODOV2 = "dodo-v2",
|
|
202
|
+
AERODROMEV3 = "aerodrome_v3",
|
|
203
|
+
ALGEBRAINTEGRAL = "algebra_integral",
|
|
204
|
+
AMBIENT = "ambient",
|
|
205
|
+
ANGSTROM = "angstrom",
|
|
206
|
+
APESWAP = "apeswap",
|
|
207
|
+
ARCHLYV2 = "archly_v2",
|
|
208
|
+
BALANCER = "balancer",
|
|
209
|
+
BALANCERV2 = "balancer_v2",
|
|
210
|
+
BALANCERV3 = "balancer_v3",
|
|
211
|
+
BANCORV2 = "bancor_v2",
|
|
212
|
+
BANCORV3 = "bancor_v3",
|
|
213
|
+
BASIN = "basin",
|
|
214
|
+
BUNNIV2 = "bunni_v2",
|
|
215
|
+
CURVELENDINGPOOLS = "curve_lending_pools",
|
|
216
|
+
CURVEMETAPOOL = "curve_metapool",
|
|
217
|
+
CURVESTABLESWAP = "curve_stable_swap",
|
|
218
|
+
CURVESTABLESWAPNG = "curve_stable_swap_ng",
|
|
219
|
+
CURVETRICRYPTO = "curve_tricrypto",
|
|
220
|
+
CURVETRICRYPTONG = "curve_tricrypto_ng",
|
|
221
|
+
CURVETWOCRYPTO = "curve_twocrypto",
|
|
222
|
+
CYPHERV2 = "cypher_v2",
|
|
223
|
+
DEFIPLAZA = "defiplaza",
|
|
224
|
+
DFXV2 = "dfx_v2",
|
|
225
|
+
DODOV1 = "dodo_v1",
|
|
226
|
+
EKUBO = "ekubo",
|
|
227
|
+
EMPIREDEX = "empiredex",
|
|
228
|
+
EULERSWAP = "eulerswap",
|
|
229
|
+
FLUIDDEXLITE = "fluid_dex_lite",
|
|
230
|
+
FLUIDDEXT1 = "fluid_dex_t1",
|
|
231
|
+
INTEGRAL = "integral",
|
|
232
|
+
JOEV2 = "joe_v2",
|
|
233
|
+
KYBERSWAPCLASSIC = "kyberswap_classic",
|
|
234
|
+
KYBERSWAPELASTIC = "kyberswap_elastic",
|
|
235
|
+
LISTADEX = "lista_dex",
|
|
236
|
+
LUASWAP = "luaswap",
|
|
237
|
+
MAVERICKV2 = "maverick_v2",
|
|
238
|
+
MOONISWAP = "mooniswap",
|
|
239
|
+
PENDLEV2 = "pendle_v2",
|
|
240
|
+
RINGSWAP = "ring_swap",
|
|
241
|
+
SADDLEFINANCE = "saddle_finance",
|
|
242
|
+
SHIBASWAPV1 = "shibaswap_v1",
|
|
243
|
+
SMARDEX = "smardex",
|
|
244
|
+
SOLIDLYV3 = "solidly_v3",
|
|
245
|
+
STABULL = "stabull",
|
|
246
|
+
SUPERNOVABASIC = "supernova_basic",
|
|
247
|
+
SWAPR = "swapr",
|
|
248
|
+
UNISWAPV1 = "uniswap_v1",
|
|
249
|
+
WOMBAT = "wombat",
|
|
250
|
+
YIELDBASIS = "yield_basis"
|
|
197
251
|
}
|
|
198
252
|
export declare enum IEstimateType {
|
|
199
253
|
BRIDGE = "bridge",
|