@paraswap/dex-lib 3.11.8 → 3.11.10-stader.0
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/.idea/aws.xml +17 -0
- package/.idea/codeStyles/Project.xml +19 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/paraswap-dex-lib.iml +9 -0
- package/.idea/prettier.xml +7 -0
- package/.idea/vcs.xml +6 -0
- package/build/abi/SSPM.json +829 -0
- package/build/abi/StaderOracle.json +2170 -0
- package/build/abi/{inception/inception-ineth-pool.json → cables/CablesMainnetRFQ.json} +511 -490
- package/build/abi/integral/factory.json +333 -0
- package/build/abi/integral/oracle.json +501 -0
- package/build/abi/integral/pool.json +1041 -0
- package/build/abi/{wombat/pool.json → integral/relayer.json} +720 -473
- package/build/dex/aave-v1/aave-v1.d.ts +1 -2
- package/build/dex/aave-v1/aave-v1.js +0 -23
- package/build/dex/aave-v1/aave-v1.js.map +1 -1
- package/build/dex/cables/cables.d.ts +59 -0
- package/build/dex/cables/cables.js +614 -0
- package/build/dex/cables/cables.js.map +1 -0
- package/build/dex/cables/config.d.ts +4 -0
- package/build/dex/cables/config.js +15 -0
- package/build/dex/cables/config.js.map +1 -0
- package/build/dex/cables/constants.d.ts +20 -0
- package/build/dex/cables/constants.js +24 -0
- package/build/dex/cables/constants.js.map +1 -0
- package/build/dex/cables/rate-fetcher.d.ts +34 -0
- package/build/dex/cables/rate-fetcher.js +106 -0
- package/build/dex/cables/rate-fetcher.js.map +1 -0
- package/build/dex/cables/types.d.ts +113 -0
- package/build/dex/cables/types.js +19 -0
- package/build/dex/cables/types.js.map +1 -0
- package/build/dex/cables/validators.d.ts +5 -0
- package/build/dex/cables/validators.js +49 -0
- package/build/dex/cables/validators.js.map +1 -0
- package/build/dex/fluid-dex/fluid-dex-generate-pool.d.ts +49 -0
- package/build/dex/fluid-dex/fluid-dex-generate-pool.js +104 -0
- package/build/dex/fluid-dex/fluid-dex-generate-pool.js.map +1 -0
- package/build/dex/index.js +2 -0
- package/build/dex/index.js.map +1 -1
- package/build/dex/integral/config.d.ts +4 -0
- package/build/dex/integral/config.js +20 -0
- package/build/dex/integral/config.js.map +1 -0
- package/build/dex/integral/context.d.ts +40 -0
- package/build/dex/integral/context.js +158 -0
- package/build/dex/integral/context.js.map +1 -0
- package/build/dex/integral/integral-factory.d.ts +24 -0
- package/build/dex/integral/integral-factory.js +95 -0
- package/build/dex/integral/integral-factory.js.map +1 -0
- package/build/dex/integral/integral-pool.d.ts +50 -0
- package/build/dex/integral/integral-pool.js +149 -0
- package/build/dex/integral/integral-pool.js.map +1 -0
- package/build/dex/integral/integral-pricing.d.ts +18 -0
- package/build/dex/integral/integral-pricing.js +114 -0
- package/build/dex/integral/integral-pricing.js.map +1 -0
- package/build/dex/integral/integral-relayer.d.ts +42 -0
- package/build/dex/integral/integral-relayer.js +192 -0
- package/build/dex/integral/integral-relayer.js.map +1 -0
- package/build/dex/integral/integral-token.d.ts +27 -0
- package/build/dex/integral/integral-token.js +59 -0
- package/build/dex/integral/integral-token.js.map +1 -0
- package/build/dex/integral/integral.d.ts +41 -0
- package/build/dex/integral/integral.js +376 -0
- package/build/dex/integral/integral.js.map +1 -0
- package/build/dex/integral/types.d.ts +85 -0
- package/build/dex/integral/types.js +9 -0
- package/build/dex/integral/types.js.map +1 -0
- package/build/dex/integral/utils-e2e.d.ts +9 -0
- package/build/dex/integral/utils-e2e.js +131 -0
- package/build/dex/integral/utils-e2e.js.map +1 -0
- package/build/dex/integral/utils.d.ts +17 -0
- package/build/dex/integral/utils.js +94 -0
- package/build/dex/integral/utils.js.map +1 -0
- package/build/dex/jarvis.d.ts +1 -2
- package/build/dex/jarvis.js +0 -58
- package/build/dex/jarvis.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.d.ts +0 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +0 -20
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js +0 -4
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
- package/build/dex/platypus/platypus.d.ts +1 -2
- package/build/dex/platypus/platypus.js +0 -45
- package/build/dex/platypus/platypus.js.map +1 -1
- package/build/dex/stable-pool.js +8 -1
- package/build/dex/stable-pool.js.map +1 -1
- package/build/dex/{usual-m-usd0 → stader}/config.d.ts +1 -1
- package/build/dex/stader/config.js +14 -0
- package/build/dex/stader/config.js.map +1 -0
- package/build/dex/stader/stader-pool.d.ts +18 -0
- package/build/dex/stader/stader-pool.js +47 -0
- package/build/dex/stader/stader-pool.js.map +1 -0
- package/build/dex/stader/stader.d.ts +42 -0
- package/build/dex/stader/stader.js +171 -0
- package/build/dex/stader/stader.js.map +1 -0
- package/build/dex/stader/types.d.ts +13 -0
- package/build/dex/stader/types.js +8 -0
- package/build/dex/stader/types.js.map +1 -0
- package/build/dex/stader/utils.d.ts +4 -0
- package/build/dex/stader/utils.js +24 -0
- package/build/dex/stader/utils.js.map +1 -0
- package/build/dex/swaap-v1/swaap-v1.d.ts +1 -2
- package/build/dex/swaap-v1/swaap-v1.js +0 -14
- package/build/dex/swaap-v1/swaap-v1.js.map +1 -1
- package/build/dex/trader-joe-v2.1/optimizer.d.ts +2 -0
- package/build/dex/{balancer-v3 → trader-joe-v2.1}/optimizer.js +16 -17
- package/build/dex/trader-joe-v2.1/optimizer.js.map +1 -0
- package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +0 -1
- package/build/dex/uniswap-v3/uniswap-v3-pool.js +0 -20
- package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.js +0 -5
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/build/dex/zerox/index.d.ts +26 -4
- package/build/dex/zerox/index.js +42 -50
- package/build/dex/zerox/index.js.map +1 -1
- package/build/dex/zerox/types.d.ts +0 -29
- package/build/dex/zerox/types.js +1 -8
- package/build/dex/zerox/types.js.map +1 -1
- package/package.json +1 -1
- package/src/abi/SSPM.json +829 -0
- package/src/abi/StaderOracle.json +2170 -0
- package/src/dex/index.ts +2 -0
- package/src/dex/pancakeswap-v3/pancakeswap-v3-pool.ts +0 -30
- package/src/dex/pancakeswap-v3/pancakeswap-v3.ts +0 -10
- package/src/dex/stader/config.ts +13 -0
- package/src/dex/stader/stader-e2e.test.ts +74 -0
- package/src/dex/stader/stader-events.test.ts +64 -0
- package/src/dex/stader/stader-integration.test.ts +240 -0
- package/src/dex/stader/stader-pool.ts +68 -0
- package/src/dex/stader/stader.ts +240 -0
- package/src/dex/stader/types.ts +16 -0
- package/src/dex/stader/utils.ts +34 -0
- package/src/dex/uniswap-v3/uniswap-v3-pool.ts +0 -30
- package/src/dex/uniswap-v3/uniswap-v3.ts +0 -11
- package/tests/constants-e2e.ts +5 -0
- package/.vscode/launch.json +0 -53
- package/.vscode/settings.json +0 -2
- package/.vscode/tasks.json +0 -15
- package/build/abi/balancer-v3/batch-router.json +0 -989
- package/build/abi/balancer-v3/router.json +0 -1792
- package/build/abi/balancer-v3/vault-extension.json +0 -2834
- package/build/abi/inception/inception-ratio-feed.json +0 -329
- package/build/abi/inception/inception-vault.json +0 -991
- package/build/abi/permit2.json +0 -581
- package/build/abi/uniswap-v3/AlienBaseV3Router.abi.json +0 -52
- package/build/abi/usual-m-smart-m/usualM.abi.json +0 -483
- package/build/abi/usual-m-usd0/usualCollateralDao.abi.json +0 -681
- package/build/dex/aave-v2/tokens-avalanche.json +0 -44
- package/build/dex/aave-v2/tokens-mainnet.json +0 -188
- package/build/dex/aave-v2/tokens-polygon.json +0 -44
- package/build/dex/balancer-v3/abi/balancerBatchRouter.d.ts +0 -729
- package/build/dex/balancer-v3/abi/balancerBatchRouter.js +0 -732
- package/build/dex/balancer-v3/abi/balancerBatchRouter.js.map +0 -1
- package/build/dex/balancer-v3/abi/balancerRouter.d.ts +0 -1406
- package/build/dex/balancer-v3/abi/balancerRouter.js +0 -1175
- package/build/dex/balancer-v3/abi/balancerRouter.js.map +0 -1
- package/build/dex/balancer-v3/abi/vaultExtension.V3.d.ts +0 -2081
- package/build/dex/balancer-v3/abi/vaultExtension.V3.js +0 -1851
- package/build/dex/balancer-v3/abi/vaultExtension.V3.js.map +0 -1
- package/build/dex/balancer-v3/balancer-v3-pool.d.ts +0 -80
- package/build/dex/balancer-v3/balancer-v3-pool.js +0 -461
- package/build/dex/balancer-v3/balancer-v3-pool.js.map +0 -1
- package/build/dex/balancer-v3/balancer-v3-sepolia-pools.d.ts +0 -34
- package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js +0 -406
- package/build/dex/balancer-v3/balancer-v3-sepolia-pools.js.map +0 -1
- package/build/dex/balancer-v3/balancer-v3.d.ts +0 -57
- package/build/dex/balancer-v3/balancer-v3.js +0 -383
- package/build/dex/balancer-v3/balancer-v3.js.map +0 -1
- package/build/dex/balancer-v3/config.d.ts +0 -8
- package/build/dex/balancer-v3/config.js +0 -24
- package/build/dex/balancer-v3/config.js.map +0 -1
- package/build/dex/balancer-v3/getGasCost.d.ts +0 -2
- package/build/dex/balancer-v3/getGasCost.js +0 -41
- package/build/dex/balancer-v3/getGasCost.js.map +0 -1
- package/build/dex/balancer-v3/getOnChainState.d.ts +0 -10
- package/build/dex/balancer-v3/getOnChainState.js +0 -164
- package/build/dex/balancer-v3/getOnChainState.js.map +0 -1
- package/build/dex/balancer-v3/getPoolsApi.d.ts +0 -2
- package/build/dex/balancer-v3/getPoolsApi.js +0 -81
- package/build/dex/balancer-v3/getPoolsApi.js.map +0 -1
- package/build/dex/balancer-v3/getTopPoolsApi.d.ts +0 -13
- package/build/dex/balancer-v3/getTopPoolsApi.js +0 -62
- package/build/dex/balancer-v3/getTopPoolsApi.js.map +0 -1
- package/build/dex/balancer-v3/optimizer.d.ts +0 -2
- package/build/dex/balancer-v3/optimizer.js.map +0 -1
- package/build/dex/balancer-v3/stablePool.d.ts +0 -7
- package/build/dex/balancer-v3/stablePool.js +0 -73
- package/build/dex/balancer-v3/stablePool.js.map +0 -1
- package/build/dex/balancer-v3/types.d.ts +0 -62
- package/build/dex/balancer-v3/types.js +0 -3
- package/build/dex/balancer-v3/types.js.map +0 -1
- package/build/dex/balancer-v3/weightedPool.d.ts +0 -1
- package/build/dex/balancer-v3/weightedPool.js +0 -6
- package/build/dex/balancer-v3/weightedPool.js.map +0 -1
- package/build/dex/inception/config.d.ts +0 -4
- package/build/dex/inception/config.js +0 -109
- package/build/dex/inception/config.js.map +0 -1
- package/build/dex/inception/inception-event-pool.d.ts +0 -16
- package/build/dex/inception/inception-event-pool.js +0 -49
- package/build/dex/inception/inception-event-pool.js.map +0 -1
- package/build/dex/inception/inception.d.ts +0 -43
- package/build/dex/inception/inception.js +0 -180
- package/build/dex/inception/inception.js.map +0 -1
- package/build/dex/inception/tokens.d.ts +0 -9
- package/build/dex/inception/tokens.js +0 -28
- package/build/dex/inception/tokens.js.map +0 -1
- package/build/dex/inception/types.d.ts +0 -22
- package/build/dex/inception/types.js +0 -3
- package/build/dex/inception/types.js.map +0 -1
- package/build/dex/inception/utils.d.ts +0 -7
- package/build/dex/inception/utils.js +0 -58
- package/build/dex/inception/utils.js.map +0 -1
- package/build/dex/maker-psm/scripts/gem.abi.json +0 -136
- package/build/dex/maker-psm/scripts/validate-state.d.ts +0 -0
- package/build/dex/maker-psm/scripts/validate-state.js +0 -185
- package/build/dex/maker-psm/scripts/validate-state.js.map +0 -1
- package/build/dex/maker-psm/scripts/vat.abi.json +0 -243
- package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +0 -1
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js +0 -53
- package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +0 -1
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.d.ts +0 -17
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js +0 -64
- package/build/dex/uniswap-v3/forks/alien-base-v3/alien-base-v3.js.map +0 -1
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.d.ts +0 -17
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js +0 -79
- package/build/dex/uniswap-v3/forks/alien-v3/alien-v3.js.map +0 -1
- package/build/dex/uniswap-v3/uniswap-v3-pricing.d.ts +0 -4
- package/build/dex/uniswap-v3/uniswap-v3-pricing.js +0 -43
- package/build/dex/uniswap-v3/uniswap-v3-pricing.js.map +0 -1
- package/build/dex/uniswap-v3/uniswap-v3-worker.d.ts +0 -1
- package/build/dex/uniswap-v3/uniswap-v3-worker.js +0 -10
- package/build/dex/uniswap-v3/uniswap-v3-worker.js.map +0 -1
- package/build/dex/usual/types.d.ts +0 -13
- package/build/dex/usual/types.js +0 -3
- package/build/dex/usual/types.js.map +0 -1
- package/build/dex/usual/usual-bond.d.ts +0 -18
- package/build/dex/usual/usual-bond.js +0 -52
- package/build/dex/usual/usual-bond.js.map +0 -1
- package/build/dex/usual/usual-m-smart-m.d.ts +0 -17
- package/build/dex/usual/usual-m-smart-m.js +0 -50
- package/build/dex/usual/usual-m-smart-m.js.map +0 -1
- package/build/dex/usual/usual-m-usd0.d.ts +0 -17
- package/build/dex/usual/usual-m-usd0.js +0 -51
- package/build/dex/usual/usual-m-usd0.js.map +0 -1
- package/build/dex/usual/usual.d.ts +0 -27
- package/build/dex/usual/usual.js +0 -125
- package/build/dex/usual/usual.js.map +0 -1
- package/build/dex/usual-m-smart-m/config.d.ts +0 -3
- package/build/dex/usual-m-smart-m/config.js +0 -13
- package/build/dex/usual-m-smart-m/config.js.map +0 -1
- package/build/dex/usual-m-smart-m/types.d.ts +0 -7
- package/build/dex/usual-m-smart-m/types.js +0 -3
- package/build/dex/usual-m-smart-m/types.js.map +0 -1
- package/build/dex/usual-m-smart-m/usual-m-smart-m.d.ts +0 -35
- package/build/dex/usual-m-smart-m/usual-m-smart-m.js +0 -161
- package/build/dex/usual-m-smart-m/usual-m-smart-m.js.map +0 -1
- package/build/dex/usual-m-usd0/config.js +0 -14
- package/build/dex/usual-m-usd0/config.js.map +0 -1
- package/build/dex/usual-m-usd0/types.d.ts +0 -8
- package/build/dex/usual-m-usd0/types.js +0 -3
- package/build/dex/usual-m-usd0/types.js.map +0 -1
- package/build/dex/usual-m-usd0/usual-m-usd0.d.ts +0 -35
- package/build/dex/usual-m-usd0/usual-m-usd0.js +0 -159
- package/build/dex/usual-m-usd0/usual-m-usd0.js.map +0 -1
- package/src/dex/balancer-v3/balancer-v3-sepolia-pools.ts +0 -404
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.BalancerV3 = void 0;
|
|
30
|
-
const constants_1 = require("../../constants");
|
|
31
|
-
const CALLDATA_GAS_COST = __importStar(require("../../calldata-gas-cost"));
|
|
32
|
-
const utils_1 = require("../../utils");
|
|
33
|
-
const simple_exchange_1 = require("../simple-exchange");
|
|
34
|
-
const config_1 = require("./config");
|
|
35
|
-
const balancer_v3_pool_1 = require("./balancer-v3-pool");
|
|
36
|
-
const balancer_maths_1 = require("@balancer-labs/balancer-maths");
|
|
37
|
-
const abi_1 = require("@ethersproject/abi");
|
|
38
|
-
const utils_2 = require("../../executor/utils");
|
|
39
|
-
const getTopPoolsApi_1 = require("./getTopPoolsApi");
|
|
40
|
-
const router_json_1 = __importDefault(require("../../abi/balancer-v3/router.json"));
|
|
41
|
-
const batch_router_json_1 = __importDefault(require("../../abi/balancer-v3/batch-router.json"));
|
|
42
|
-
const getGasCost_1 = require("./getGasCost");
|
|
43
|
-
const MAX_UINT256 = '115792089237316195423570985008687907853269984665640564039457584007913129639935';
|
|
44
|
-
const POOL_UPDATE_TTL = 5 * 60; // 5mins
|
|
45
|
-
const RATE_UPDATE_TTL = 30 * 60; // 30mins
|
|
46
|
-
class BalancerV3 extends simple_exchange_1.SimpleExchange {
|
|
47
|
-
constructor(network, dexKey, dexHelper) {
|
|
48
|
-
super(dexHelper, dexKey);
|
|
49
|
-
this.network = network;
|
|
50
|
-
this.dexKey = dexKey;
|
|
51
|
-
this.dexHelper = dexHelper;
|
|
52
|
-
this.hasConstantPriceLargeAmounts = false;
|
|
53
|
-
// Vault can handle native
|
|
54
|
-
this.needWrapNative = false;
|
|
55
|
-
this.isFeeOnTransferSupported = false;
|
|
56
|
-
this.logger = dexHelper.getLogger(dexKey);
|
|
57
|
-
this.eventPools = new balancer_v3_pool_1.BalancerV3EventPool(dexKey, network, dexHelper, this.logger);
|
|
58
|
-
this.balancerRouter = new abi_1.Interface(router_json_1.default);
|
|
59
|
-
this.balancerBatchRouter = new abi_1.Interface(batch_router_json_1.default);
|
|
60
|
-
}
|
|
61
|
-
// Initialize pricing is called once in the start of
|
|
62
|
-
// pricing service. It is intended to setup the integration
|
|
63
|
-
// for pricing requests. It is optional for a DEX to
|
|
64
|
-
// implement this function
|
|
65
|
-
async initializePricing(blockNumber) {
|
|
66
|
-
await this.eventPools.initialize(blockNumber);
|
|
67
|
-
// This will periodically query API and add any new pools to pool state
|
|
68
|
-
if (!this.updateNewPoolsTimer) {
|
|
69
|
-
this.updateNewPoolsTimer = setInterval(async () => {
|
|
70
|
-
try {
|
|
71
|
-
await this.updatePoolState();
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
this.logger.error(`${this.dexKey}: Failed to update pool state:`, e);
|
|
75
|
-
}
|
|
76
|
-
}, POOL_UPDATE_TTL * 1000);
|
|
77
|
-
}
|
|
78
|
-
// This will periodically refresh tokenRates with onchain state
|
|
79
|
-
if (!this.updateRatesTimer) {
|
|
80
|
-
this.updateRatesTimer = setInterval(async () => {
|
|
81
|
-
try {
|
|
82
|
-
await this.updateStatePoolRates();
|
|
83
|
-
}
|
|
84
|
-
catch (e) {
|
|
85
|
-
this.logger.error(`${this.dexKey}: Failed to update pool rates:`, e);
|
|
86
|
-
}
|
|
87
|
-
}, RATE_UPDATE_TTL * 1000);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
getAdapters(side) {
|
|
91
|
-
return null;
|
|
92
|
-
}
|
|
93
|
-
// Returns list of pool identifiers that can be used
|
|
94
|
-
// for a given swap. poolIdentifiers must be unique
|
|
95
|
-
// across DEXes. It is recommended to use
|
|
96
|
-
// ${dexKey}_${poolAddress} as a poolIdentifier
|
|
97
|
-
async getPoolIdentifiers(srcToken, destToken, side, blockNumber) {
|
|
98
|
-
const _from = this.dexHelper.config.wrapETH(srcToken);
|
|
99
|
-
const _to = this.dexHelper.config.wrapETH(destToken);
|
|
100
|
-
const poolState = this.eventPools.getState(blockNumber);
|
|
101
|
-
if (poolState === null)
|
|
102
|
-
return [];
|
|
103
|
-
return this.findPoolAddressesWithTokens(poolState, _from.address.toLowerCase(), _to.address.toLowerCase());
|
|
104
|
-
}
|
|
105
|
-
findPoolAddressesWithTokens(pools, tokenA, tokenB) {
|
|
106
|
-
return Object.entries(pools)
|
|
107
|
-
.filter(([, poolState]) => {
|
|
108
|
-
return this.hasTokens(poolState, [tokenA, tokenB]);
|
|
109
|
-
})
|
|
110
|
-
.map(([address]) => address);
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Filter pools that have tokens from/to and are in limitPool list
|
|
114
|
-
* @param pools
|
|
115
|
-
* @param from
|
|
116
|
-
* @param to
|
|
117
|
-
* @param limitPools
|
|
118
|
-
* @returns Array of PoolState
|
|
119
|
-
*/
|
|
120
|
-
filterPools(pools, from, to, limitPools) {
|
|
121
|
-
return Object.entries(pools)
|
|
122
|
-
.filter(([address, poolState]) => {
|
|
123
|
-
const hasRequiredTokens = this.hasTokens(poolState, [from, to]);
|
|
124
|
-
const isAllowedPool = !limitPools || limitPools.includes(address);
|
|
125
|
-
return hasRequiredTokens && isAllowedPool;
|
|
126
|
-
})
|
|
127
|
-
.map(([_, poolState]) => poolState);
|
|
128
|
-
}
|
|
129
|
-
hasTokens(pool, tokens) {
|
|
130
|
-
return tokens.every(token => pool.tokens.includes(token) || pool.tokensUnderlying.includes(token));
|
|
131
|
-
}
|
|
132
|
-
// Returns pool prices for amounts.
|
|
133
|
-
// If limitPools is defined only pools in limitPools
|
|
134
|
-
// should be used. If limitPools is undefined then
|
|
135
|
-
// any pools can be used.
|
|
136
|
-
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
137
|
-
try {
|
|
138
|
-
const _from = this.dexHelper.config.wrapETH(srcToken);
|
|
139
|
-
const _to = this.dexHelper.config.wrapETH(destToken);
|
|
140
|
-
if (_from.address === _to.address) {
|
|
141
|
-
return null;
|
|
142
|
-
}
|
|
143
|
-
// This is used to get block timestamp which is needed to calculate Amp if it is updating
|
|
144
|
-
const block = await this.dexHelper.provider.getBlock(blockNumber);
|
|
145
|
-
// get up to date pools and state
|
|
146
|
-
const allPoolState = this.eventPools.getState(blockNumber);
|
|
147
|
-
if (allPoolState === null) {
|
|
148
|
-
this.logger.error(`getState returned null`);
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
// filter for pools with tokens and to only use limit pools
|
|
152
|
-
const allowedPools = this.filterPools(allPoolState, _from.address.toLowerCase(), _to.address.toLowerCase(), limitPools);
|
|
153
|
-
if (!allowedPools.length)
|
|
154
|
-
return null;
|
|
155
|
-
const swapKind = side === constants_1.SwapSide.SELL ? balancer_maths_1.SwapKind.GivenIn : balancer_maths_1.SwapKind.GivenOut;
|
|
156
|
-
const tokenIn = _from.address;
|
|
157
|
-
const tokenOut = _to.address;
|
|
158
|
-
// Gets the single unit amount based off token decimals, e.g. for USDC its 1e6
|
|
159
|
-
const unitAmount = (0, utils_1.getBigIntPow)((side === constants_1.SwapSide.SELL ? _from : _to).decimals);
|
|
160
|
-
const poolPrices = [];
|
|
161
|
-
// For each pool we calculate swap result using balancer maths
|
|
162
|
-
for (let i = 0; i < allowedPools.length; i++) {
|
|
163
|
-
const pool = {
|
|
164
|
-
...allowedPools[i],
|
|
165
|
-
};
|
|
166
|
-
const tokenInInfo = this.eventPools.getTokenInfo(pool, tokenIn);
|
|
167
|
-
const tokenOutInfo = this.eventPools.getTokenInfo(pool, tokenOut);
|
|
168
|
-
if (!tokenInInfo || !tokenOutInfo) {
|
|
169
|
-
continue;
|
|
170
|
-
}
|
|
171
|
-
const steps = this.eventPools.getSteps(pool, tokenInInfo, tokenOutInfo);
|
|
172
|
-
try {
|
|
173
|
-
// This is the max amount the pool can swap
|
|
174
|
-
const maxSwapAmount = this.eventPools.getMaxSwapAmount(pool, tokenInInfo, tokenOutInfo, swapKind);
|
|
175
|
-
let unit = 0n;
|
|
176
|
-
if (unitAmount < maxSwapAmount)
|
|
177
|
-
unit = this.eventPools.getSwapResult(steps, unitAmount, swapKind, block.timestamp);
|
|
178
|
-
const poolExchangePrice = {
|
|
179
|
-
prices: new Array(amounts.length).fill(0n),
|
|
180
|
-
unit,
|
|
181
|
-
data: {
|
|
182
|
-
steps: steps,
|
|
183
|
-
},
|
|
184
|
-
exchange: this.dexKey,
|
|
185
|
-
gasCost: (0, getGasCost_1.getGasCost)(steps),
|
|
186
|
-
poolAddresses: [pool.poolAddress],
|
|
187
|
-
poolIdentifier: `${this.dexKey}_${pool.poolAddress}`,
|
|
188
|
-
};
|
|
189
|
-
for (let j = 0; j < amounts.length; j++) {
|
|
190
|
-
if (amounts[j] < maxSwapAmount) {
|
|
191
|
-
// Uses balancer maths to calculate swap
|
|
192
|
-
poolExchangePrice.prices[j] = this.eventPools.getSwapResult(steps, amounts[j], swapKind, block.timestamp);
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
poolPrices.push(poolExchangePrice);
|
|
196
|
-
}
|
|
197
|
-
catch (err) {
|
|
198
|
-
this.logger.error(`error fetching prices for pool: ${pool.poolAddress}`);
|
|
199
|
-
this.logger.error(err);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
return poolPrices;
|
|
203
|
-
}
|
|
204
|
-
catch (err) { }
|
|
205
|
-
return null;
|
|
206
|
-
}
|
|
207
|
-
// Returns estimated gas cost of calldata for this DEX in multiSwap
|
|
208
|
-
getCalldataGasCost(poolPrices) {
|
|
209
|
-
// TODO: update if there is any payload in getAdapterParam
|
|
210
|
-
return CALLDATA_GAS_COST.DEX_NO_PAYLOAD;
|
|
211
|
-
}
|
|
212
|
-
// Not used for V6
|
|
213
|
-
getAdapterParam() {
|
|
214
|
-
return {
|
|
215
|
-
targetExchange: '0x',
|
|
216
|
-
payload: '0x',
|
|
217
|
-
networkFee: '0',
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
getDexParam(srcToken, destToken, srcAmount, destAmount, recipient, data, side) {
|
|
221
|
-
if (side === constants_1.SwapSide.SELL) {
|
|
222
|
-
return this.getExactInParam(srcToken, destToken, srcAmount, data);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
return this.getExactOutParam(srcToken, destToken, destAmount, data);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
getExactInParam(srcToken, destToken, srcAmount, data) {
|
|
229
|
-
if (data.steps.length === 1) {
|
|
230
|
-
const exchangeData = this.balancerRouter.encodeFunctionData('swapSingleTokenExactIn', [
|
|
231
|
-
data.steps[0].pool,
|
|
232
|
-
this.dexHelper.config.wrapETH(srcToken),
|
|
233
|
-
this.dexHelper.config.wrapETH(destToken),
|
|
234
|
-
srcAmount,
|
|
235
|
-
'0',
|
|
236
|
-
MAX_UINT256,
|
|
237
|
-
(0, utils_1.isETHAddress)(srcToken) || (0, utils_1.isETHAddress)(destToken),
|
|
238
|
-
'0x',
|
|
239
|
-
]);
|
|
240
|
-
return {
|
|
241
|
-
permit2Approval: true,
|
|
242
|
-
needWrapNative: this.needWrapNative,
|
|
243
|
-
dexFuncHasRecipient: false,
|
|
244
|
-
exchangeData,
|
|
245
|
-
// This router handles single swaps
|
|
246
|
-
targetExchange: config_1.BalancerV3Config.BalancerV3[this.network].balancerRouterAddress,
|
|
247
|
-
returnAmountPos: (0, utils_2.extractReturnAmountPosition)(this.balancerRouter, 'swapSingleTokenExactIn'),
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
// for each step:
|
|
252
|
-
// if tokenIn == pool router uses removeLiquidity SINGLE_TOKEN_EXACT_IN
|
|
253
|
-
// if tokenOut == pool router uses addLiquidity UNBALANCED
|
|
254
|
-
const exchangeData = this.balancerBatchRouter.encodeFunctionData('swapExactIn', [
|
|
255
|
-
[
|
|
256
|
-
{
|
|
257
|
-
tokenIn: srcToken,
|
|
258
|
-
steps: data.steps.map(step => ({
|
|
259
|
-
pool: step.pool,
|
|
260
|
-
tokenOut: step.swapInput.tokenOut,
|
|
261
|
-
isBuffer: step.isBuffer,
|
|
262
|
-
})),
|
|
263
|
-
exactAmountIn: srcAmount,
|
|
264
|
-
minAmountOut: '0', // This should be limit for min amount out. Assume this is set elsewhere via Paraswap contract.
|
|
265
|
-
},
|
|
266
|
-
],
|
|
267
|
-
MAX_UINT256,
|
|
268
|
-
(0, utils_1.isETHAddress)(srcToken) || (0, utils_1.isETHAddress)(destToken),
|
|
269
|
-
'0x',
|
|
270
|
-
]);
|
|
271
|
-
return {
|
|
272
|
-
permit2Approval: true,
|
|
273
|
-
needWrapNative: this.needWrapNative,
|
|
274
|
-
dexFuncHasRecipient: false,
|
|
275
|
-
exchangeData,
|
|
276
|
-
// This router handles batch swaps
|
|
277
|
-
targetExchange: config_1.BalancerV3Config.BalancerV3[this.network].balancerBatchRouterAddress,
|
|
278
|
-
returnAmountPos: undefined,
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
getExactOutParam(srcToken, destToken, destAmount, data) {
|
|
283
|
-
if (data.steps.length === 1) {
|
|
284
|
-
const exchangeData = this.balancerRouter.encodeFunctionData('swapSingleTokenExactOut', [
|
|
285
|
-
data.steps[0].pool,
|
|
286
|
-
this.dexHelper.config.wrapETH(srcToken),
|
|
287
|
-
this.dexHelper.config.wrapETH(destToken),
|
|
288
|
-
destAmount,
|
|
289
|
-
MAX_UINT256,
|
|
290
|
-
MAX_UINT256,
|
|
291
|
-
(0, utils_1.isETHAddress)(srcToken) || (0, utils_1.isETHAddress)(destToken),
|
|
292
|
-
'0x',
|
|
293
|
-
]);
|
|
294
|
-
return {
|
|
295
|
-
permit2Approval: true,
|
|
296
|
-
needWrapNative: this.needWrapNative,
|
|
297
|
-
dexFuncHasRecipient: false,
|
|
298
|
-
exchangeData,
|
|
299
|
-
// Single swaps are submitted via Balancer Router
|
|
300
|
-
targetExchange: config_1.BalancerV3Config.BalancerV3[this.network].balancerRouterAddress,
|
|
301
|
-
returnAmountPos: undefined,
|
|
302
|
-
};
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
// for each step:
|
|
306
|
-
// if tokenIn == pool use removeLiquidity SINGLE_TOKEN_EXACT_OUT
|
|
307
|
-
// if tokenOut == pool use addLiquidity SINGLE_TOKEN_EXACT_OUT
|
|
308
|
-
const exchangeData = this.balancerBatchRouter.encodeFunctionData('swapExactOut', [
|
|
309
|
-
[
|
|
310
|
-
{
|
|
311
|
-
tokenIn: srcToken,
|
|
312
|
-
steps: data.steps.map(step => ({
|
|
313
|
-
pool: step.pool,
|
|
314
|
-
tokenOut: step.swapInput.tokenOut,
|
|
315
|
-
isBuffer: step.isBuffer,
|
|
316
|
-
})),
|
|
317
|
-
exactAmountOut: destAmount,
|
|
318
|
-
maxAmountIn: MAX_UINT256, // This should be limit for min amount out. Assume this is set elsewhere via Paraswap contract.
|
|
319
|
-
},
|
|
320
|
-
],
|
|
321
|
-
MAX_UINT256,
|
|
322
|
-
(0, utils_1.isETHAddress)(srcToken) || (0, utils_1.isETHAddress)(destToken),
|
|
323
|
-
'0x',
|
|
324
|
-
]);
|
|
325
|
-
return {
|
|
326
|
-
permit2Approval: true,
|
|
327
|
-
needWrapNative: this.needWrapNative,
|
|
328
|
-
dexFuncHasRecipient: false,
|
|
329
|
-
exchangeData,
|
|
330
|
-
// This router handles batch swaps
|
|
331
|
-
targetExchange: config_1.BalancerV3Config.BalancerV3[this.network].balancerBatchRouterAddress,
|
|
332
|
-
returnAmountPos: undefined,
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* Uses multicall to get onchain token rate for each pool then updates pool state
|
|
338
|
-
*/
|
|
339
|
-
async updateStatePoolRates() {
|
|
340
|
-
await this.eventPools.updateStatePoolRates();
|
|
341
|
-
}
|
|
342
|
-
// This is called once before getTopPoolsForToken is
|
|
343
|
-
// called for multiple tokens. This can be helpful to
|
|
344
|
-
// update common state required for calculating
|
|
345
|
-
// getTopPoolsForToken. It is optional for a DEX
|
|
346
|
-
// to implement this
|
|
347
|
-
async updatePoolState() {
|
|
348
|
-
await this.eventPools.updateStatePools();
|
|
349
|
-
}
|
|
350
|
-
// Returns list of top pools based on liquidity. Max
|
|
351
|
-
// limit number pools should be returned.
|
|
352
|
-
async getTopPoolsForToken(tokenAddress, count) {
|
|
353
|
-
const poolsWithToken = Object.entries(this.eventPools.getStaleState() || {})
|
|
354
|
-
.filter(([, poolState]) => {
|
|
355
|
-
return this.hasTokens(poolState, [tokenAddress]);
|
|
356
|
-
})
|
|
357
|
-
.map(([address]) => address);
|
|
358
|
-
const topPools = await (0, getTopPoolsApi_1.getTopPoolsApi)(this.network, poolsWithToken, count);
|
|
359
|
-
return topPools.map(pool => {
|
|
360
|
-
return {
|
|
361
|
-
exchange: this.dexKey,
|
|
362
|
-
address: pool.address,
|
|
363
|
-
liquidityUSD: parseFloat(pool.dynamicData.totalLiquidity),
|
|
364
|
-
connectorTokens: pool.poolTokens.filter(t => t.address !== tokenAddress),
|
|
365
|
-
};
|
|
366
|
-
});
|
|
367
|
-
}
|
|
368
|
-
releaseResources() {
|
|
369
|
-
if (this.updateNewPoolsTimer) {
|
|
370
|
-
clearInterval(this.updateNewPoolsTimer);
|
|
371
|
-
this.updateNewPoolsTimer = undefined;
|
|
372
|
-
this.logger.info(`${this.dexKey}: cleared updateNewPoolsTimer before shutting down`);
|
|
373
|
-
}
|
|
374
|
-
if (this.updateRatesTimer) {
|
|
375
|
-
clearInterval(this.updateRatesTimer);
|
|
376
|
-
this.updateRatesTimer = undefined;
|
|
377
|
-
this.logger.info(`${this.dexKey}: cleared updateRatesTimer before shutting down`);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
exports.BalancerV3 = BalancerV3;
|
|
382
|
-
BalancerV3.dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(config_1.BalancerV3Config);
|
|
383
|
-
//# sourceMappingURL=balancer-v3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"balancer-v3.js","sourceRoot":"","sources":["../../../src/dex/balancer-v3/balancer-v3.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,+CAAoD;AACpD,2EAA6D;AAC7D,uCAAgF;AAIhF,wDAAoD;AACpD,qCAA4C;AAC5C,yDAAyD;AAEzD,kEAAyD;AACzD,4CAA+C;AAC/C,gDAAmE;AACnE,qDAAkD;AAClD,oFAAkE;AAClE,gGAA6E;AAC7E,6CAA0C;AAE1C,MAAM,WAAW,GACf,gFAAgF,CAAC;AACnF,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ;AACxC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS;AAM1C,MAAa,UAAW,SAAQ,gCAAc;IAkB5C,YACW,OAAgB,EAChB,MAAc,EACd,SAAqB;QAE9B,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAJhB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAY;QAlBvB,iCAA4B,GAAG,KAAK,CAAC;QAC9C,0BAA0B;QACjB,mBAAc,GAAG,KAAK,CAAC;QAEvB,6BAAwB,GAAG,KAAK,CAAC;QAiBxC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,sCAAmB,CACvC,MAAM,EACN,OAAO,EACP,SAAS,EACT,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,eAAS,CAAC,qBAAiB,CAAC,CAAC;QACvD,IAAI,CAAC,mBAAmB,GAAG,IAAI,eAAS,CAAC,2BAAsB,CAAC,CAAC;IACnE,CAAC;IAED,oDAAoD;IACpD,2DAA2D;IAC3D,oDAAoD;IACpD,0BAA0B;IAC1B,KAAK,CAAC,iBAAiB,CAAC,WAAmB;QACzC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAE9C,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC7B,IAAI,CAAC,mBAAmB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBAChD,IAAI;oBACF,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,gCAAgC,EAAE,CAAC,CAAC,CAAC;iBACtE;YACH,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC;SAC5B;QAED,+DAA+D;QAC/D,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC1B,IAAI,CAAC,gBAAgB,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;gBAC7C,IAAI;oBACF,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;iBACnC;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,gCAAgC,EAAE,CAAC,CAAC,CAAC;iBACtE;YACH,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,WAAW,CAAC,IAAc;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oDAAoD;IACpD,mDAAmD;IACnD,yCAAyC;IACzC,+CAA+C;IAC/C,KAAK,CAAC,kBAAkB,CACtB,QAAe,EACf,SAAgB,EAChB,IAAc,EACd,WAAmB;QAEnB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,2BAA2B,CACrC,SAAS,EACT,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAC3B,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAC1B,CAAC;IACJ,CAAC;IAED,2BAA2B,CACzB,KAAiC,EACjC,MAAc,EACd,MAAc;QAEd,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;OAOG;IACH,WAAW,CACT,KAAiC,EACjC,IAAY,EACZ,EAAU,EACV,UAAqB;QAErB,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE;YAC/B,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,iBAAiB,IAAI,aAAa,CAAC;QAC5C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,SAA0C,CAAC,CAAC;IACzE,CAAC;IAED,SAAS,CAAC,IAA6B,EAAE,MAAgB;QACvD,OAAO,MAAM,CAAC,KAAK,CACjB,KAAK,CAAC,EAAE,CACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CACvE,CAAC;IACJ,CAAC;IAED,mCAAmC;IACnC,oDAAoD;IACpD,kDAAkD;IAClD,yBAAyB;IACzB,KAAK,CAAC,eAAe,CACnB,QAAe,EACf,SAAgB,EAChB,OAAiB,EACjB,IAAc,EACd,WAAmB,EACnB,UAAqB;QAErB,IAAI;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE;gBACjC,OAAO,IAAI,CAAC;aACb;YAED,yFAAyF;YACzF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAElE,iCAAiC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,YAAY,KAAK,IAAI,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC;aACb;YAED,2DAA2D;YAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CACnC,YAAY,EACZ,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAC3B,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EACzB,UAAU,CACX,CAAC;YAEF,IAAI,CAAC,YAAY,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YAEtC,MAAM,QAAQ,GACZ,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,yBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAQ,CAAC,QAAQ,CAAC;YAChE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;YAE7B,8EAA8E;YAC9E,MAAM,UAAU,GAAG,IAAA,oBAAY,EAC7B,CAAC,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAChD,CAAC;YAEF,MAAM,UAAU,GAAmC,EAAE,CAAC;YACtD,8DAA8D;YAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC5C,MAAM,IAAI,GAAG;oBACX,GAAG,YAAY,CAAC,CAAC,CAAC;iBACnB,CAAC;gBAEF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChE,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;oBACjC,SAAS;iBACV;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAExE,IAAI;oBACF,2CAA2C;oBAC3C,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CACpD,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,QAAQ,CACT,CAAC;oBAEF,IAAI,IAAI,GAAG,EAAE,CAAC;oBACd,IAAI,UAAU,GAAG,aAAa;wBAC5B,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAClC,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,CAAC,SAAS,CAChB,CAAC;oBAEJ,MAAM,iBAAiB,GAA+B;wBACpD,MAAM,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1C,IAAI;wBACJ,IAAI,EAAE;4BACJ,KAAK,EAAE,KAAK;yBACb;wBACD,QAAQ,EAAE,IAAI,CAAC,MAAM;wBACrB,OAAO,EAAE,IAAA,uBAAU,EAAC,KAAK,CAAC;wBAC1B,aAAa,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC;wBACjC,cAAc,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;qBACrD,CAAC;oBAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBACvC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,EAAE;4BAC9B,wCAAwC;4BACxC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CACzD,KAAK,EACL,OAAO,CAAC,CAAC,CAAC,EACV,QAAQ,EACR,KAAK,CAAC,SAAS,CAChB,CAAC;yBACH;qBACF;oBACD,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;iBACpC;gBAAC,OAAO,GAAG,EAAE;oBACZ,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mCAAmC,IAAI,CAAC,WAAW,EAAE,CACtD,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACxB;aACF;YAED,OAAO,UAAU,CAAC;SACnB;QAAC,OAAO,GAAG,EAAE,GAAE;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mEAAmE;IACnE,kBAAkB,CAChB,UAAsC;QAEtC,0DAA0D;QAC1D,OAAO,iBAAiB,CAAC,cAAc,CAAC;IAC1C,CAAC;IAED,kBAAkB;IAClB,eAAe;QACb,OAAO;YACL,cAAc,EAAE,IAAI;YACpB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,GAAG;SAChB,CAAC;IACJ,CAAC;IAED,WAAW,CACT,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,UAA0B,EAC1B,SAAkB,EAClB,IAAoB,EACpB,IAAc;QAEd,IAAI,IAAI,KAAK,oBAAQ,CAAC,IAAI,EAAE;YAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;SACnE;aAAM;YACL,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;SACrE;IACH,CAAC;IAED,eAAe,CACb,QAAiB,EACjB,SAAkB,EAClB,SAAyB,EACzB,IAAoB;QAEpB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACzD,wBAAwB,EACxB;gBACE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBAClB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxC,SAAS;gBACT,GAAG;gBACH,WAAW;gBACX,IAAA,oBAAY,EAAC,QAAQ,CAAC,IAAI,IAAA,oBAAY,EAAC,SAAS,CAAC;gBACjD,IAAI;aACL,CACF,CAAC;YACF,OAAO;gBACL,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,KAAK;gBAC1B,YAAY;gBACZ,mCAAmC;gBACnC,cAAc,EACZ,yBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,qBAAqB;gBACjE,eAAe,EAAE,IAAA,mCAA2B,EAC1C,IAAI,CAAC,cAAc,EACnB,wBAAwB,CACzB;aACF,CAAC;SACH;aAAM;YACL,iBAAiB;YACjB,uEAAuE;YACvE,0DAA0D;YAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAC9D,aAAa,EACb;gBACE;oBACE;wBACE,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;4BACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC,CAAC;wBACH,aAAa,EAAE,SAAS;wBACxB,YAAY,EAAE,GAAG,EAAE,+FAA+F;qBACnH;iBACF;gBACD,WAAW;gBACX,IAAA,oBAAY,EAAC,QAAQ,CAAC,IAAI,IAAA,oBAAY,EAAC,SAAS,CAAC;gBACjD,IAAI;aACL,CACF,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,KAAK;gBAC1B,YAAY;gBACZ,kCAAkC;gBAClC,cAAc,EACZ,yBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,0BAA0B;gBACtE,eAAe,EAAE,SAAS;aAC3B,CAAC;SACH;IACH,CAAC;IAED,gBAAgB,CACd,QAAiB,EACjB,SAAkB,EAClB,UAA0B,EAC1B,IAAoB;QAEpB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,kBAAkB,CACzD,yBAAyB,EACzB;gBACE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;gBAClB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxC,UAAU;gBACV,WAAW;gBACX,WAAW;gBACX,IAAA,oBAAY,EAAC,QAAQ,CAAC,IAAI,IAAA,oBAAY,EAAC,SAAS,CAAC;gBACjD,IAAI;aACL,CACF,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,KAAK;gBAC1B,YAAY;gBACZ,iDAAiD;gBACjD,cAAc,EACZ,yBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,qBAAqB;gBACjE,eAAe,EAAE,SAAS;aAC3B,CAAC;SACH;aAAM;YACL,iBAAiB;YACjB,gEAAgE;YAChE,8DAA8D;YAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAC9D,cAAc,EACd;gBACE;oBACE;wBACE,OAAO,EAAE,QAAQ;wBACjB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4BAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;4BACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;yBACxB,CAAC,CAAC;wBACH,cAAc,EAAE,UAAU;wBAC1B,WAAW,EAAE,WAAW,EAAE,+FAA+F;qBAC1H;iBACF;gBACD,WAAW;gBACX,IAAA,oBAAY,EAAC,QAAQ,CAAC,IAAI,IAAA,oBAAY,EAAC,SAAS,CAAC;gBACjD,IAAI;aACL,CACF,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,KAAK;gBAC1B,YAAY;gBACZ,kCAAkC;gBAClC,cAAc,EACZ,yBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,0BAA0B;gBACtE,eAAe,EAAE,SAAS;aAC3B,CAAC;SACH;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;IAC/C,CAAC;IAED,oDAAoD;IACpD,qDAAqD;IACrD,+CAA+C;IAC/C,gDAAgD;IAChD,oBAAoB;IACpB,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;IAC3C,CAAC;IAED,oDAAoD;IACpD,yCAAyC;IACzC,KAAK,CAAC,mBAAmB,CACvB,YAAqB,EACrB,KAAa;QAEb,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;aACzE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE;YACxB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QACnD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAc,EAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAE3E,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,MAAM;gBACrB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;gBACzD,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CACrC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,YAAY,CAChC;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACxC,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,oDAAoD,CACnE,CAAC;SACH;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,IAAI,CAAC,MAAM,iDAAiD,CAChE,CAAC;SACH;IACH,CAAC;;AAjeH,gCAkeC;AAzde,6BAAkB,GAC9B,IAAA,6BAAqB,EAAC,yBAAgB,CAAC,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { DexParams } from './types';
|
|
2
|
-
import { DexConfigMap } from '../../types';
|
|
3
|
-
export declare enum SUPPORTED_POOLS {
|
|
4
|
-
WEIGHTED = "WEIGHTED",
|
|
5
|
-
STABLE = "STABLE"
|
|
6
|
-
}
|
|
7
|
-
export declare const apiUrl = "https://test-api-v3.balancer.fi/";
|
|
8
|
-
export declare const BalancerV3Config: DexConfigMap<DexParams>;
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BalancerV3Config = exports.apiUrl = exports.SUPPORTED_POOLS = void 0;
|
|
4
|
-
const constants_1 = require("../../constants");
|
|
5
|
-
// These map to the Balancer API poolType. Only Balancer supported pools will be added
|
|
6
|
-
var SUPPORTED_POOLS;
|
|
7
|
-
(function (SUPPORTED_POOLS) {
|
|
8
|
-
SUPPORTED_POOLS["WEIGHTED"] = "WEIGHTED";
|
|
9
|
-
SUPPORTED_POOLS["STABLE"] = "STABLE";
|
|
10
|
-
})(SUPPORTED_POOLS = exports.SUPPORTED_POOLS || (exports.SUPPORTED_POOLS = {}));
|
|
11
|
-
// Balancer API - aggregatorSpecific query serves all useful static pool data
|
|
12
|
-
exports.apiUrl = 'https://test-api-v3.balancer.fi/';
|
|
13
|
-
// TODO Full config added after V3 release
|
|
14
|
-
exports.BalancerV3Config = {
|
|
15
|
-
BalancerV3: {
|
|
16
|
-
[constants_1.Network.SEPOLIA]: {
|
|
17
|
-
vaultAddress: '0xBC582d2628FcD404254a1e12CB714967Ce428915',
|
|
18
|
-
apiNetworkName: 'SEPOLIA',
|
|
19
|
-
balancerRouterAddress: '0x4D2aA7a3CD7F8dA6feF37578A1881cD63Fd3715E',
|
|
20
|
-
balancerBatchRouterAddress: '0x4232e5EEaA16Bcf483d93BEA469296B4EeF22503',
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/balancer-v3/config.ts"],"names":[],"mappings":";;;AAEA,+CAAoD;AAEpD,sFAAsF;AACtF,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,oCAAiB,CAAA;AACnB,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAED,6EAA6E;AAChE,QAAA,MAAM,GAAG,kCAAkC,CAAC;AAEzD,0CAA0C;AAC7B,QAAA,gBAAgB,GAA4B;IACvD,UAAU,EAAE;QACV,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE;YACjB,YAAY,EAAE,4CAA4C;YAC1D,cAAc,EAAE,SAAS;YACzB,qBAAqB,EAAE,4CAA4C;YACnE,0BAA0B,EAAE,4CAA4C;SACzE;KACF;CACF,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getGasCost = void 0;
|
|
4
|
-
const stablePool_1 = require("./stablePool");
|
|
5
|
-
const weightedPool_1 = require("./weightedPool");
|
|
6
|
-
// https://sepolia.etherscan.io/tx/0x8c2c5ec7fc2855ed2ffab3467ee434f4e374e0ecf791e8d2b93c8d74e3f5b1fe
|
|
7
|
-
// 0x7ec61d6dcf0ea412327c30f013e60578c0ff4d83c334a95fb3a68739860e6f59
|
|
8
|
-
// 0xb45331fe60091bdf4ba4c201b7fdfefc1ca8087fa1b6bc28877ef84d167809f4
|
|
9
|
-
const FULL_BOOSTED_SWAP_GAS_COST = 283070;
|
|
10
|
-
// 0xb47bcae19ba4693d18f2148073d0d469ff59223e90d6f75eb25e06b0063f1556
|
|
11
|
-
// 0x4730b0c1dce820f14747698446865364b98d96d3ed926e8e74bbead6482b8f8b
|
|
12
|
-
const PARTIAL_BOOSTED_SWAP_GAS_COST = 259815;
|
|
13
|
-
// 0xef9037f992645a9ecf26ddbdf65690a71acbffce2cc68445c869bb9707cb706a
|
|
14
|
-
// 0x77aa06350df079a077147f1051b10e0612542eb3aff3ae1b3d4004341cb64690
|
|
15
|
-
const BUFFER_WRAP_UNWRAP_GAS_COST = 155921;
|
|
16
|
-
function getGasCost(steps) {
|
|
17
|
-
if (steps.length === 2) {
|
|
18
|
-
// Partial boosted/buffer swap:
|
|
19
|
-
// token[wrap]wrappedToken[swap]wrappedToken or
|
|
20
|
-
// wrappedToken[swap]wrappedToken[unwrap]token
|
|
21
|
-
return PARTIAL_BOOSTED_SWAP_GAS_COST;
|
|
22
|
-
}
|
|
23
|
-
else if (steps.length === 3) {
|
|
24
|
-
// Full boosted/buffer swap: token[wrap]wrappedToken[swap]wrappedToken[unwrap]token
|
|
25
|
-
return FULL_BOOSTED_SWAP_GAS_COST;
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
switch (steps[0].poolState.poolType) {
|
|
29
|
-
case 'WEIGHTED':
|
|
30
|
-
return weightedPool_1.WEIGHTED_GAS_COST;
|
|
31
|
-
case 'STABLE':
|
|
32
|
-
return stablePool_1.STABLE_GAS_COST;
|
|
33
|
-
case 'BUFFER':
|
|
34
|
-
return BUFFER_WRAP_UNWRAP_GAS_COST;
|
|
35
|
-
default:
|
|
36
|
-
return weightedPool_1.WEIGHTED_GAS_COST;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.getGasCost = getGasCost;
|
|
41
|
-
//# sourceMappingURL=getGasCost.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getGasCost.js","sourceRoot":"","sources":["../../../src/dex/balancer-v3/getGasCost.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAE/C,iDAAmD;AAEnD,qGAAqG;AACrG,qEAAqE;AACrE,qEAAqE;AACrE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAC1C,qEAAqE;AACrE,qEAAqE;AACrE,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAC7C,qEAAqE;AACrE,qEAAqE;AACrE,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAE3C,SAAgB,UAAU,CAAC,KAAa;IACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,+BAA+B;QAC/B,+CAA+C;QAC/C,8CAA8C;QAC9C,OAAO,6BAA6B,CAAC;KACtC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,mFAAmF;QACnF,OAAO,0BAA0B,CAAC;KACnC;SAAM;QACL,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;YACnC,KAAK,UAAU;gBACb,OAAO,gCAAiB,CAAC;YAC3B,KAAK,QAAQ;gBACX,OAAO,4BAAe,CAAC;YACzB,KAAK,QAAQ;gBACX,OAAO,2BAA2B,CAAC;YACrC;gBACE,OAAO,gCAAiB,CAAC;SAC5B;KACF;AACH,CAAC;AArBD,gCAqBC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ImmutablePoolStateMap, PoolStateMap } from './types';
|
|
2
|
-
import { Interface, Result } from '@ethersproject/abi';
|
|
3
|
-
import { IDexHelper } from '../../dex-helper';
|
|
4
|
-
export declare function decodeThrowError(contractInterface: Interface, functionName: string, resultEntry: {
|
|
5
|
-
success: boolean;
|
|
6
|
-
returnData: any;
|
|
7
|
-
}, poolAddress: string): Result;
|
|
8
|
-
export declare function getOnChainState(network: number, immutablePoolStateMap: ImmutablePoolStateMap, dexHelper: IDexHelper, interfaces: {
|
|
9
|
-
[name: string]: Interface;
|
|
10
|
-
}, blockNumber?: number): Promise<PoolStateMap>;
|