@paraswap/dex-lib 2.47.5 → 2.47.7
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/build/abi/balancer-v2/gyro-e.abi.json +1595 -0
- package/build/dex/balancer-v2/balancer-v2.d.ts +6 -3
- package/build/dex/balancer-v2/balancer-v2.js +56 -35
- package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.d.ts +32 -0
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js +149 -0
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js.map +1 -0
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.d.ts +37 -0
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.js +222 -0
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.js.map +1 -0
- package/build/dex/balancer-v2/pools/gyro/gyro-helpers.d.ts +2 -0
- package/build/dex/balancer-v2/pools/gyro/gyro-helpers.js +19 -0
- package/build/dex/balancer-v2/pools/gyro/gyro-helpers.js.map +1 -0
- package/build/dex/balancer-v2/queryOnChain.d.ts +1 -0
- package/build/dex/balancer-v2/queryOnChain.js +40 -0
- package/build/dex/balancer-v2/queryOnChain.js.map +1 -0
- package/build/dex/balancer-v2/types.d.ts +24 -1
- package/build/dex/balancer-v2/types.js +2 -0
- package/build/dex/balancer-v2/types.js.map +1 -1
- package/build/dex/balancer-v2/utils.d.ts +8 -0
- package/build/dex/balancer-v2/utils.js +17 -1
- package/build/dex/balancer-v2/utils.js.map +1 -1
- package/package.json +2 -1
- package/src/abi/balancer-v2/gyro-e.abi.json +1595 -0
- package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +94 -0
- package/src/dex/balancer-v2/balancer-v2-gyro3.test.ts +268 -0
- package/src/dex/balancer-v2/balancer-v2-gyroE.test.ts +401 -0
- package/src/dex/balancer-v2/balancer-v2-integration.test.ts +253 -112
- package/src/dex/balancer-v2/balancer-v2.ts +107 -67
- package/src/dex/balancer-v2/pools/gyro/Gyro3Pool.ts +255 -0
- package/src/dex/balancer-v2/pools/gyro/GyroEPool.ts +403 -0
- package/src/dex/balancer-v2/pools/gyro/gyro-helpers.ts +15 -0
- package/src/dex/balancer-v2/queryOnChain.ts +48 -0
- package/src/dex/balancer-v2/types.ts +26 -0
- package/src/dex/balancer-v2/utils.ts +16 -0
- package/src/dex/synthetix/synthetix-state.ts +2 -2
- package/tests/constants-e2e.ts +26 -0
- package/build/abi/Redstone.json +0 -739
- package/build/abi/angle/stagToken.json +0 -963
- package/build/abi/angle-transmuter/Pyth.json +0 -1534
- package/build/abi/angle-transmuter/Transmuter.json +0 -1719
- package/build/abi/smardex/smardex-factory.json +0 -185
- package/build/abi/smardex/smardex-pool.json +0 -578
- package/build/abi/smardex/smardex-router.json +0 -648
- package/build/abi/trader-joe-v2_1/FactoryABI.json +0 -1208
- package/build/abi/trader-joe-v2_1/PairABI.json +0 -1493
- package/build/abi/trader-joe-v2_1/RouterABI.json +0 -1489
- package/build/abi/trader-joe-v2_1/StateMulticall.json +0 -193
- package/build/abi/wombat/pool.json +0 -1289
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +0 -53
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +0 -175
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +0 -1
- package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +0 -42
- package/build/dex/angle-staked-stable/angle-staked-stable.js +0 -232
- package/build/dex/angle-staked-stable/angle-staked-stable.js.map +0 -1
- package/build/dex/angle-staked-stable/config.d.ts +0 -4
- package/build/dex/angle-staked-stable/config.js +0 -26
- package/build/dex/angle-staked-stable/config.js.map +0 -1
- package/build/dex/angle-staked-stable/types.d.ts +0 -15
- package/build/dex/angle-staked-stable/types.js +0 -3
- package/build/dex/angle-staked-stable/types.js.map +0 -1
- package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +0 -43
- package/build/dex/angle-transmuter/angle-transmuter-pool.js +0 -309
- package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +0 -1
- package/build/dex/angle-transmuter/angle-transmuter.d.ts +0 -46
- package/build/dex/angle-transmuter/angle-transmuter.js +0 -233
- package/build/dex/angle-transmuter/angle-transmuter.js.map +0 -1
- package/build/dex/angle-transmuter/backedOracle.d.ts +0 -19
- package/build/dex/angle-transmuter/backedOracle.js +0 -56
- package/build/dex/angle-transmuter/backedOracle.js.map +0 -1
- package/build/dex/angle-transmuter/config.d.ts +0 -4
- package/build/dex/angle-transmuter/config.js +0 -20
- package/build/dex/angle-transmuter/config.js.map +0 -1
- package/build/dex/angle-transmuter/constants.d.ts +0 -4
- package/build/dex/angle-transmuter/constants.js +0 -8
- package/build/dex/angle-transmuter/constants.js.map +0 -1
- package/build/dex/angle-transmuter/pyth.d.ts +0 -19
- package/build/dex/angle-transmuter/pyth.js +0 -71
- package/build/dex/angle-transmuter/pyth.js.map +0 -1
- package/build/dex/angle-transmuter/redstone.d.ts +0 -20
- package/build/dex/angle-transmuter/redstone.js +0 -73
- package/build/dex/angle-transmuter/redstone.js.map +0 -1
- package/build/dex/angle-transmuter/transmuter.d.ts +0 -50
- package/build/dex/angle-transmuter/transmuter.js +0 -314
- package/build/dex/angle-transmuter/transmuter.js.map +0 -1
- package/build/dex/angle-transmuter/types.d.ts +0 -144
- package/build/dex/angle-transmuter/types.js +0 -31
- package/build/dex/angle-transmuter/types.js.map +0 -1
- package/build/dex/angle-transmuter/utils.d.ts +0 -9
- package/build/dex/angle-transmuter/utils.js +0 -264
- package/build/dex/angle-transmuter/utils.js.map +0 -1
- package/build/dex/smardex/subgraph-queries.d.ts +0 -1
- package/build/dex/smardex/subgraph-queries.js +0 -17
- package/build/dex/smardex/subgraph-queries.js.map +0 -1
- package/build/dex/smardex/usd-reserves.d.ts +0 -23
- package/build/dex/smardex/usd-reserves.js +0 -86
- package/build/dex/smardex/usd-reserves.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/config.d.ts +0 -4
- package/build/dex/trader-joe-v2-1-2/config.js +0 -47
- package/build/dex/trader-joe-v2-1-2/config.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/constants.d.ts +0 -20
- package/build/dex/trader-joe-v2-1-2/constants.js +0 -22
- package/build/dex/trader-joe-v2-1-2/constants.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/math/index.d.ts +0 -37
- package/build/dex/trader-joe-v2-1-2/math/index.js +0 -291
- package/build/dex/trader-joe-v2-1-2/math/index.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +0 -60
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +0 -248
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +0 -53
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +0 -307
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +0 -1
- package/build/dex/trader-joe-v2-1-2/types.d.ts +0 -82
- package/build/dex/trader-joe-v2-1-2/types.js +0 -9
- package/build/dex/trader-joe-v2-1-2/types.js.map +0 -1
- package/build/dex/trader-joe-v2_1/config.d.ts +0 -4
- package/build/dex/trader-joe-v2_1/config.js +0 -47
- package/build/dex/trader-joe-v2_1/config.js.map +0 -1
- package/build/dex/trader-joe-v2_1/constants.d.ts +0 -20
- package/build/dex/trader-joe-v2_1/constants.js +0 -22
- package/build/dex/trader-joe-v2_1/constants.js.map +0 -1
- package/build/dex/trader-joe-v2_1/math/index.d.ts +0 -37
- package/build/dex/trader-joe-v2_1/math/index.js +0 -291
- package/build/dex/trader-joe-v2_1/math/index.js.map +0 -1
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.d.ts +0 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js +0 -384
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +0 -1
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +0 -60
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +0 -247
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +0 -1
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +0 -53
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +0 -307
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +0 -1
- package/build/dex/trader-joe-v2_1/types.d.ts +0 -82
- package/build/dex/trader-joe-v2_1/types.js +0 -9
- package/build/dex/trader-joe-v2_1/types.js.map +0 -1
- package/build/dex/wombat/wombat-pool-poller.d.ts +0 -22
- package/build/dex/wombat/wombat-pool-poller.js +0 -164
- package/build/dex/wombat/wombat-pool-poller.js.map +0 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GyroEPool = void 0;
|
|
7
|
+
const abi_1 = require("@ethersproject/abi");
|
|
8
|
+
const bignumber_1 = require("@ethersproject/bignumber");
|
|
9
|
+
const balancer_v2_pool_1 = require("../balancer-v2-pool");
|
|
10
|
+
const constants_1 = require("../../../../constants");
|
|
11
|
+
const utils_1 = require("../../utils");
|
|
12
|
+
const balancer_v2_math_1 = require("../../balancer-v2-math");
|
|
13
|
+
const sor_1 = require("@balancer-labs/sor");
|
|
14
|
+
const gyro_e_abi_json_1 = __importDefault(require("../../../../abi/balancer-v2/gyro-e.abi.json"));
|
|
15
|
+
// Swap Limit factor
|
|
16
|
+
const SWAP_LIMIT_FACTOR = BigInt('999999000000000000');
|
|
17
|
+
class GyroEPool extends balancer_v2_pool_1.BasePool {
|
|
18
|
+
constructor(vaultAddress, vaultInterface) {
|
|
19
|
+
super();
|
|
20
|
+
this.poolInterface = new abi_1.Interface(gyro_e_abi_json_1.default);
|
|
21
|
+
this.vaultAddress = vaultAddress;
|
|
22
|
+
this.vaultInterface = vaultInterface;
|
|
23
|
+
}
|
|
24
|
+
parsePoolPairData(pool, poolState, tokenIn, tokenOut) {
|
|
25
|
+
// All values should be normalised to 18 decimals. e.g. 1USDC = 1e18 not 1e6
|
|
26
|
+
let indexIn = 0, indexOut = 0;
|
|
27
|
+
const scalingFactors = [];
|
|
28
|
+
const balances = pool.tokens.map((t, i) => {
|
|
29
|
+
if (t.address.toLowerCase() === tokenIn.toLowerCase())
|
|
30
|
+
indexIn = i;
|
|
31
|
+
else if (t.address.toLowerCase() === tokenOut.toLowerCase())
|
|
32
|
+
indexOut = i;
|
|
33
|
+
const scalingFactor = (0, utils_1.getTokenScalingFactor)(t.decimals);
|
|
34
|
+
scalingFactors.push(scalingFactor);
|
|
35
|
+
return bignumber_1.BigNumber.from(this._upscale(BigInt(poolState.tokens[t.address.toLowerCase()].balance), scalingFactor));
|
|
36
|
+
});
|
|
37
|
+
const tokenInIsToken0 = indexIn === 0;
|
|
38
|
+
const tokenRates = poolState.tokenRates
|
|
39
|
+
? [poolState.tokenRates[0], poolState.tokenRates[1]]
|
|
40
|
+
: [];
|
|
41
|
+
const rateProviders = poolState.rateProviders ?? [];
|
|
42
|
+
const poolPairData = {
|
|
43
|
+
gyroParams: poolState.gyroParams,
|
|
44
|
+
gyroDerivedParams: poolState.gyroDerivedParams,
|
|
45
|
+
tokenRates,
|
|
46
|
+
rateProviders,
|
|
47
|
+
balances,
|
|
48
|
+
indexIn,
|
|
49
|
+
indexOut,
|
|
50
|
+
scalingFactors,
|
|
51
|
+
swapFee: poolState.swapFee,
|
|
52
|
+
tokenInIsToken0,
|
|
53
|
+
};
|
|
54
|
+
return poolPairData;
|
|
55
|
+
}
|
|
56
|
+
getSwapMaxAmount(poolPairData, side) {
|
|
57
|
+
if (side === constants_1.SwapSide.SELL) {
|
|
58
|
+
// Approximation - similar to traditional stable pools
|
|
59
|
+
return this._downscaleDown(balancer_v2_math_1.MathSol.mulDownFixed(poolPairData.balances[poolPairData.indexOut].toBigInt(), SWAP_LIMIT_FACTOR), poolPairData.scalingFactors[poolPairData.indexIn]);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return this._downscaleDown(balancer_v2_math_1.MathSol.mulDownFixed(poolPairData.balances[poolPairData.indexIn].toBigInt(), SWAP_LIMIT_FACTOR), poolPairData.scalingFactors[poolPairData.indexOut]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/*
|
|
66
|
+
Helper function to construct onchain multicall data for Pool.
|
|
67
|
+
*/
|
|
68
|
+
getOnChainCalls(pool) {
|
|
69
|
+
const poolCallData = [
|
|
70
|
+
{
|
|
71
|
+
target: this.vaultAddress,
|
|
72
|
+
callData: this.vaultInterface.encodeFunctionData('getPoolTokens', [
|
|
73
|
+
pool.id,
|
|
74
|
+
]),
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
target: pool.address,
|
|
78
|
+
callData: this.poolInterface.encodeFunctionData('getSwapFeePercentage'),
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
target: pool.address,
|
|
82
|
+
callData: this.poolInterface.encodeFunctionData('getECLPParams'),
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
// Only version 2 of GyroE uses token rates
|
|
86
|
+
const v2Calls = pool.poolTypeVersion === 2
|
|
87
|
+
? [
|
|
88
|
+
{
|
|
89
|
+
target: pool.address,
|
|
90
|
+
callData: this.poolInterface.encodeFunctionData('getTokenRates'),
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
target: pool.address,
|
|
94
|
+
callData: this.poolInterface.encodeFunctionData('rateProvider0'),
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
target: pool.address,
|
|
98
|
+
callData: this.poolInterface.encodeFunctionData('rateProvider1'),
|
|
99
|
+
},
|
|
100
|
+
]
|
|
101
|
+
: [];
|
|
102
|
+
return [...poolCallData, ...v2Calls];
|
|
103
|
+
}
|
|
104
|
+
/*
|
|
105
|
+
Helper function to decode multicall data for Pool.
|
|
106
|
+
data must contain returnData
|
|
107
|
+
startIndex is where to start in returnData. Allows this decode function to be called along with other pool types.
|
|
108
|
+
*/
|
|
109
|
+
decodeOnChainCalls(pool, data, startIndex) {
|
|
110
|
+
const pools = {};
|
|
111
|
+
const poolTokens = (0, utils_1.decodeThrowError)(this.vaultInterface, 'getPoolTokens', data[startIndex++], pool.address);
|
|
112
|
+
const swapFee = (0, utils_1.decodeThrowError)(this.poolInterface, 'getSwapFeePercentage', data[startIndex++], pool.address)[0];
|
|
113
|
+
const eclParams = (0, utils_1.decodeThrowError)(this.poolInterface, 'getECLPParams', data[startIndex++], pool.address);
|
|
114
|
+
let tokenRates;
|
|
115
|
+
let rateProviders = [];
|
|
116
|
+
if (pool.poolTypeVersion === 2) {
|
|
117
|
+
tokenRates = (0, utils_1.decodeThrowError)(this.poolInterface, 'getTokenRates', data[startIndex++], pool.address);
|
|
118
|
+
tokenRates = tokenRates.map(t => BigInt(t.toString()));
|
|
119
|
+
const rateProvider0 = (0, utils_1.decodeThrowError)(this.poolInterface, 'rateProvider0', data[startIndex++], pool.address)[0];
|
|
120
|
+
const rateProvider1 = (0, utils_1.decodeThrowError)(this.poolInterface, 'rateProvider1', data[startIndex++], pool.address)[0];
|
|
121
|
+
rateProviders = [rateProvider0, rateProvider1];
|
|
122
|
+
}
|
|
123
|
+
const poolState = {
|
|
124
|
+
gyroParams: eclParams.params,
|
|
125
|
+
gyroDerivedParams: eclParams.d,
|
|
126
|
+
swapFee: BigInt(swapFee.toString()),
|
|
127
|
+
tokenRates,
|
|
128
|
+
rateProviders,
|
|
129
|
+
orderedTokens: poolTokens.tokens,
|
|
130
|
+
tokens: poolTokens.tokens.reduce((ptAcc, pt, j) => {
|
|
131
|
+
const tokenState = {
|
|
132
|
+
balance: BigInt(poolTokens.balances[j].toString()),
|
|
133
|
+
};
|
|
134
|
+
ptAcc[pt.toLowerCase()] = tokenState;
|
|
135
|
+
return ptAcc;
|
|
136
|
+
}, {}),
|
|
137
|
+
};
|
|
138
|
+
pools[pool.address] = poolState;
|
|
139
|
+
return [pools, startIndex];
|
|
140
|
+
}
|
|
141
|
+
onSell(amounts, poolPairData) {
|
|
142
|
+
try {
|
|
143
|
+
const scalingFactorTokenIn = this._scalingFactor(poolPairData.tokenInIsToken0, poolPairData);
|
|
144
|
+
const scalingFactorTokenOut = this._scalingFactor(!poolPairData.tokenInIsToken0, poolPairData);
|
|
145
|
+
const normalizedBalances = this._normalizeBalances(poolPairData.balances, poolPairData.tokenRates);
|
|
146
|
+
const orderedNormalizedBalances = (0, sor_1.balancesFromTokenInOut)(normalizedBalances[poolPairData.indexIn], normalizedBalances[poolPairData.indexOut], poolPairData.tokenInIsToken0);
|
|
147
|
+
const [currentInvariant, invErr] = sor_1.GyroEMaths.calculateInvariantWithError(orderedNormalizedBalances, poolPairData.gyroParams, poolPairData.gyroDerivedParams);
|
|
148
|
+
const invariant = {
|
|
149
|
+
x: currentInvariant.add(invErr.mul(2)),
|
|
150
|
+
y: currentInvariant,
|
|
151
|
+
};
|
|
152
|
+
const tokenAmountsInScaled = amounts.map(a => this._upscale(a, scalingFactorTokenIn));
|
|
153
|
+
const tokenAmountsInWithFee = tokenAmountsInScaled.map(a => this._subtractSwapFeeAmount(a, poolPairData.swapFee));
|
|
154
|
+
const amountsOut = tokenAmountsInWithFee.map(amount => {
|
|
155
|
+
try {
|
|
156
|
+
const amountOut = sor_1.GyroEMaths.calcOutGivenIn(orderedNormalizedBalances, bignumber_1.BigNumber.from(amount), poolPairData.tokenInIsToken0, poolPairData.gyroParams, poolPairData.gyroDerivedParams, invariant).toBigInt();
|
|
157
|
+
return this._downscaleDown(amountOut, scalingFactorTokenOut);
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
return BigInt(0);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return amountsOut;
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
return [];
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
onBuy(amounts, poolPairData) {
|
|
170
|
+
try {
|
|
171
|
+
const scalingFactorTokenIn = this._scalingFactor(poolPairData.tokenInIsToken0, poolPairData);
|
|
172
|
+
const scalingFactorTokenOut = this._scalingFactor(!poolPairData.tokenInIsToken0, poolPairData);
|
|
173
|
+
const normalizedBalances = this._normalizeBalances(poolPairData.balances, poolPairData.tokenRates);
|
|
174
|
+
const orderedNormalizedBalances = (0, sor_1.balancesFromTokenInOut)(normalizedBalances[poolPairData.indexIn], normalizedBalances[poolPairData.indexOut], poolPairData.tokenInIsToken0);
|
|
175
|
+
const [currentInvariant, invErr] = sor_1.GyroEMaths.calculateInvariantWithError(orderedNormalizedBalances, poolPairData.gyroParams, poolPairData.gyroDerivedParams);
|
|
176
|
+
const invariant = {
|
|
177
|
+
x: currentInvariant.add(invErr.mul(2)),
|
|
178
|
+
y: currentInvariant,
|
|
179
|
+
};
|
|
180
|
+
const tokenAmountsOutScaled = amounts.map(a => this._upscale(a, scalingFactorTokenOut));
|
|
181
|
+
const amountsIn = tokenAmountsOutScaled.map(amount => {
|
|
182
|
+
try {
|
|
183
|
+
const amountIn = sor_1.GyroEMaths.calcInGivenOut(orderedNormalizedBalances, bignumber_1.BigNumber.from(amount), poolPairData.tokenInIsToken0, poolPairData.gyroParams, poolPairData.gyroDerivedParams, invariant).toBigInt();
|
|
184
|
+
return amountIn;
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
return BigInt(0);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
const downScaled = amountsIn.map(amount => this._downscaleUp(amount, scalingFactorTokenIn));
|
|
191
|
+
return downScaled.map(a => this._addFeeAmount(a, poolPairData.swapFee));
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
return [];
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
_scalingFactor(token0, poolPairData) {
|
|
198
|
+
const tokenIndex = token0 ? 0 : 1;
|
|
199
|
+
const scalingFactor = poolPairData.scalingFactors[tokenIndex];
|
|
200
|
+
if (poolPairData.rateProviders.length === 0 ||
|
|
201
|
+
poolPairData.rateProviders[tokenIndex].toLowerCase() === constants_1.NULL_ADDRESS) {
|
|
202
|
+
return scalingFactor;
|
|
203
|
+
}
|
|
204
|
+
else {
|
|
205
|
+
return balancer_v2_math_1.MathSol.mulDownFixed(scalingFactor, poolPairData.tokenRates[tokenIndex]);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
_normalizeBalances(balances, tokenRates) {
|
|
209
|
+
// If pool is V1, e.g. has no tokenRates return balances
|
|
210
|
+
if (tokenRates.length === 0)
|
|
211
|
+
return balances;
|
|
212
|
+
/*
|
|
213
|
+
Apply tokenRates
|
|
214
|
+
SOR upscales here first using scalingFactors but this is already being done in parse pair data so no need to repeat.
|
|
215
|
+
*/
|
|
216
|
+
return balances.map((bal, i) => {
|
|
217
|
+
return bignumber_1.BigNumber.from(balancer_v2_math_1.MathSol.mulDownFixed(bal.toBigInt(), tokenRates[i]));
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.GyroEPool = GyroEPool;
|
|
222
|
+
//# sourceMappingURL=GyroEPool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GyroEPool.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/gyro/GyroEPool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._addFee = exports._reduceFee = void 0;
|
|
4
|
+
function _reduceFee(amountIn, swapFee) {
|
|
5
|
+
const product = amountIn * swapFee;
|
|
6
|
+
const feeAmount = (product - 1n) / 1000000000000000000n + 1n;
|
|
7
|
+
return amountIn - feeAmount;
|
|
8
|
+
}
|
|
9
|
+
exports._reduceFee = _reduceFee;
|
|
10
|
+
function _addFee(amountIn, swapFee) {
|
|
11
|
+
const fee = 1000000000000000000n - swapFee;
|
|
12
|
+
return divUp(amountIn, fee);
|
|
13
|
+
}
|
|
14
|
+
exports._addFee = _addFee;
|
|
15
|
+
function divUp(a, b) {
|
|
16
|
+
const aInflated = a * 1000000000000000000n;
|
|
17
|
+
return (aInflated - 1n) / b + 1n;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=gyro-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gyro-helpers.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/gyro/gyro-helpers.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,QAAgB,EAAE,OAAe;IAC1D,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,MAAM,SAAS,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,oBAAoB,GAAG,EAAE,CAAC;IAC7D,OAAO,QAAQ,GAAG,SAAS,CAAC;AAC9B,CAAC;AAJD,gCAIC;AAED,SAAgB,OAAO,CAAC,QAAgB,EAAE,OAAe;IACvD,MAAM,GAAG,GAAG,oBAAoB,GAAG,OAAO,CAAC;IAC3C,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC;AAHD,0BAGC;AAED,SAAS,KAAK,CAAC,CAAS,EAAE,CAAS;IACjC,MAAM,SAAS,GAAG,CAAC,GAAG,oBAAoB,CAAC;IAC3C,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function queryOnChain(rpcUrl: string, blockNumber: number, poolId: string, kind: 0 | 1, assetIn: string, assetOut: string, amount: BigInt): Promise<bigint[]>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.queryOnChain = void 0;
|
|
7
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
+
dotenv_1.default.config();
|
|
9
|
+
const contracts_1 = require("@ethersproject/contracts");
|
|
10
|
+
const providers_1 = require("@ethersproject/providers");
|
|
11
|
+
const vault_json_1 = __importDefault(require("../../abi/balancer-v2/vault.json"));
|
|
12
|
+
// Compare retrieve an onchain query result for a single swap
|
|
13
|
+
async function queryOnChain(rpcUrl, blockNumber, poolId, kind, assetIn, assetOut, amount) {
|
|
14
|
+
const provider = new providers_1.JsonRpcProvider(rpcUrl);
|
|
15
|
+
const vaultAddress = '0xBA12222222228d8Ba445958a75a0704d566BF2C8';
|
|
16
|
+
const vaultContract = new contracts_1.Contract(vaultAddress, vault_json_1.default, provider);
|
|
17
|
+
const funds = {
|
|
18
|
+
sender: '0x0000000000000000000000000000000000000000',
|
|
19
|
+
recipient: '0x0000000000000000000000000000000000000000',
|
|
20
|
+
fromInternalBalance: false,
|
|
21
|
+
toInternalBalance: false,
|
|
22
|
+
};
|
|
23
|
+
const swaps = [
|
|
24
|
+
{
|
|
25
|
+
poolId,
|
|
26
|
+
assetInIndex: 0,
|
|
27
|
+
assetOutIndex: 1,
|
|
28
|
+
amount,
|
|
29
|
+
userData: '0x',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
const assets = [assetIn, assetOut];
|
|
33
|
+
const deltas = await vaultContract.callStatic.queryBatchSwap(kind, swaps, assets, funds, {
|
|
34
|
+
blockTag: blockNumber,
|
|
35
|
+
});
|
|
36
|
+
// console.log(deltas.toString());
|
|
37
|
+
return [deltas[0].toBigInt(), deltas[1].toBigInt()];
|
|
38
|
+
}
|
|
39
|
+
exports.queryOnChain = queryOnChain;
|
|
40
|
+
//# sourceMappingURL=queryOnChain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryOnChain.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/queryOnChain.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAChB,wDAAoD;AACpD,wDAA2D;AAC3D,kFAAwD;AAExD,6DAA6D;AACtD,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,WAAmB,EACnB,MAAc,EACd,IAAW,EACX,OAAe,EACf,QAAgB,EAChB,MAAc;IAEd,MAAM,QAAQ,GAAG,IAAI,2BAAe,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,4CAA4C,CAAC;IAClE,MAAM,aAAa,GAAG,IAAI,oBAAQ,CAAC,YAAY,EAAE,oBAAQ,EAAE,QAAQ,CAAC,CAAC;IAErE,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,4CAA4C;QACpD,SAAS,EAAE,4CAA4C;QACvD,mBAAmB,EAAE,KAAK;QAC1B,iBAAiB,EAAE,KAAK;KACzB,CAAC;IACF,MAAM,KAAK,GAAG;QACZ;YACE,MAAM;YACN,YAAY,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;YAChB,MAAM;YACN,QAAQ,EAAE,IAAI;SACf;KACF,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,cAAc,CAC1D,IAAI,EACJ,KAAK,EACL,MAAM,EACN,KAAK,EACL;QACE,QAAQ,EAAE,WAAW;KACtB,CACF,CAAC;IACF,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtD,CAAC;AAxCD,oCAwCC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NumberAsString } from '@paraswap/core';
|
|
2
2
|
import { Address } from '../../types';
|
|
3
|
+
import { DerivedGyroEParams, GyroEParams } from '@balancer-labs/sor';
|
|
3
4
|
export declare enum BalancerPoolTypes {
|
|
4
5
|
Weighted = "Weighted",
|
|
5
6
|
Stable = "Stable",
|
|
@@ -17,7 +18,9 @@ export declare enum BalancerPoolTypes {
|
|
|
17
18
|
ReaperLinear = "ReaperLinear",
|
|
18
19
|
SiloLinear = "SiloLinear",
|
|
19
20
|
TetuLinear = "TetuLinear",
|
|
20
|
-
YearnLinear = "YearnLinear"
|
|
21
|
+
YearnLinear = "YearnLinear",
|
|
22
|
+
Gyro3 = "Gyro3",
|
|
23
|
+
GyroE = "GyroE"
|
|
21
24
|
}
|
|
22
25
|
export declare type TokenState = {
|
|
23
26
|
balance: bigint;
|
|
@@ -28,6 +31,10 @@ export declare type PoolState = {
|
|
|
28
31
|
tokens: {
|
|
29
32
|
[address: string]: TokenState;
|
|
30
33
|
};
|
|
34
|
+
tokenRates?: bigint[];
|
|
35
|
+
rateProviders?: string[];
|
|
36
|
+
gyroParams?: GyroEParams;
|
|
37
|
+
gyroDerivedParams?: DerivedGyroEParams;
|
|
31
38
|
swapFee: bigint;
|
|
32
39
|
orderedTokens: string[];
|
|
33
40
|
rate?: bigint;
|
|
@@ -59,6 +66,7 @@ export interface SubgraphPoolBase {
|
|
|
59
66
|
id: string;
|
|
60
67
|
address: string;
|
|
61
68
|
poolType: BalancerPoolTypes;
|
|
69
|
+
poolTypeVersion: number;
|
|
62
70
|
tokens: SubgraphToken[];
|
|
63
71
|
tokensMap: {
|
|
64
72
|
[tokenAddress: string]: SubgraphToken;
|
|
@@ -66,6 +74,21 @@ export interface SubgraphPoolBase {
|
|
|
66
74
|
mainIndex: number;
|
|
67
75
|
wrappedIndex: number;
|
|
68
76
|
mainTokens: SubgraphMainToken[];
|
|
77
|
+
root3Alpha: string;
|
|
78
|
+
alpha: string;
|
|
79
|
+
beta: string;
|
|
80
|
+
c: string;
|
|
81
|
+
s: string;
|
|
82
|
+
lambda: string;
|
|
83
|
+
tauAlphaX: string;
|
|
84
|
+
tauAlphaY: string;
|
|
85
|
+
tauBetaX: string;
|
|
86
|
+
tauBetaY: string;
|
|
87
|
+
u: string;
|
|
88
|
+
v: string;
|
|
89
|
+
w: string;
|
|
90
|
+
z: string;
|
|
91
|
+
dSq: string;
|
|
69
92
|
}
|
|
70
93
|
export declare type BalancerSwapV2 = {
|
|
71
94
|
poolId: string;
|
|
@@ -21,6 +21,8 @@ var BalancerPoolTypes;
|
|
|
21
21
|
BalancerPoolTypes["SiloLinear"] = "SiloLinear";
|
|
22
22
|
BalancerPoolTypes["TetuLinear"] = "TetuLinear";
|
|
23
23
|
BalancerPoolTypes["YearnLinear"] = "YearnLinear";
|
|
24
|
+
BalancerPoolTypes["Gyro3"] = "Gyro3";
|
|
25
|
+
BalancerPoolTypes["GyroE"] = "GyroE";
|
|
24
26
|
})(BalancerPoolTypes = exports.BalancerPoolTypes || (exports.BalancerPoolTypes = {}));
|
|
25
27
|
var SwapTypes;
|
|
26
28
|
(function (SwapTypes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/types.ts"],"names":[],"mappings":";;;AAIA,mEAAmE;AACnE,IAAY,iBAoBX;AApBD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,sCAAiB,CAAA;IACjB,8CAAyB,CAAA;IACzB,sEAAiD,CAAA;IACjD,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,0DAAqC,CAAA;IACrC,sCAAiB,CAAA;IACjB,8CAAyB,CAAA;IACzB,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,kDAA6B,CAAA;IAC7B,8CAAyB,CAAA;IACzB,8CAAyB,CAAA;IACzB,gDAA2B,CAAA;IAC3B,oCAAe,CAAA;IACf,oCAAe,CAAA;AACjB,CAAC,EApBW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAoB5B;AA4GD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,uDAAW,CAAA;IACX,yDAAY,CAAA;AACd,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Interface, Result } from '@ethersproject/abi';
|
|
2
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
3
|
import { SwapSide } from '../../constants';
|
|
3
4
|
import { SubgraphMainToken, SubgraphPoolAddressDictionary, SubgraphPoolBase, SubgraphToken } from './types';
|
|
4
5
|
interface BalancerPathHop {
|
|
@@ -6,6 +7,13 @@ interface BalancerPathHop {
|
|
|
6
7
|
tokenIn: SubgraphToken;
|
|
7
8
|
tokenOut: SubgraphToken;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Parses a fixed-point decimal string into a BigNumber. If we do not have enough decimals to express the number, we truncate it.
|
|
12
|
+
* @param value
|
|
13
|
+
* @param decimals
|
|
14
|
+
* @returns BigNumber
|
|
15
|
+
*/
|
|
16
|
+
export declare function safeParseFixed(value: string, decimals?: number): BigNumber;
|
|
9
17
|
export declare const isSameAddress: (address1: string, address2: string) => boolean;
|
|
10
18
|
export declare function getTokenScalingFactor(tokenDecimals: number): bigint;
|
|
11
19
|
export declare function decodeThrowError(contractInterface: Interface, functionName: string, resultEntry: {
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.poolGetMainTokens = exports.getAllPoolsUsedInPaths = exports.poolGetPathForTokenInOut = exports.decodeThrowError = exports.getTokenScalingFactor = exports.isSameAddress = void 0;
|
|
3
|
+
exports.poolGetMainTokens = exports.getAllPoolsUsedInPaths = exports.poolGetPathForTokenInOut = exports.decodeThrowError = exports.getTokenScalingFactor = exports.isSameAddress = exports.safeParseFixed = void 0;
|
|
4
4
|
const address_1 = require("@ethersproject/address");
|
|
5
|
+
const bignumber_1 = require("@ethersproject/bignumber");
|
|
5
6
|
const utils_1 = require("../../utils");
|
|
6
7
|
const bigint_constants_1 = require("../../bigint-constants");
|
|
7
8
|
const constants_1 = require("../../constants");
|
|
8
9
|
const types_1 = require("./types");
|
|
9
10
|
const lodash_1 = require("lodash");
|
|
11
|
+
/**
|
|
12
|
+
* Parses a fixed-point decimal string into a BigNumber. If we do not have enough decimals to express the number, we truncate it.
|
|
13
|
+
* @param value
|
|
14
|
+
* @param decimals
|
|
15
|
+
* @returns BigNumber
|
|
16
|
+
*/
|
|
17
|
+
function safeParseFixed(value, decimals = 0) {
|
|
18
|
+
const [integer, fraction] = value.split('.');
|
|
19
|
+
if (!fraction) {
|
|
20
|
+
return (0, bignumber_1.parseFixed)(value, decimals);
|
|
21
|
+
}
|
|
22
|
+
const safeValue = integer + '.' + fraction.slice(0, decimals);
|
|
23
|
+
return (0, bignumber_1.parseFixed)(safeValue, decimals);
|
|
24
|
+
}
|
|
25
|
+
exports.safeParseFixed = safeParseFixed;
|
|
10
26
|
const isSameAddress = (address1, address2) => (0, address_1.getAddress)(address1) === (0, address_1.getAddress)(address2);
|
|
11
27
|
exports.isSameAddress = isSameAddress;
|
|
12
28
|
function getTokenScalingFactor(tokenDecimals) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/utils.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AAEpD,uCAA2C;AAC3C,6DAAiD;AACjD,+CAA2C;AAE3C,mCAMiB;AACjB,mCAAyC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/utils.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AAEpD,wDAAiE;AACjE,uCAA2C;AAC3C,6DAAiD;AACjD,+CAA2C;AAE3C,mCAMiB;AACjB,mCAAyC;AAQzC;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,KAAa,EAAE,QAAQ,GAAG,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAA,sBAAU,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KACpC;IACD,MAAM,SAAS,GAAG,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC9D,OAAO,IAAA,sBAAU,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAPD,wCAOC;AAEM,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,QAAgB,EAAW,EAAE,CAC3E,IAAA,oBAAU,EAAC,QAAQ,CAAC,KAAK,IAAA,oBAAU,EAAC,QAAQ,CAAC,CAAC;AADnC,QAAA,aAAa,iBACsB;AAEhD,SAAgB,qBAAqB,CAAC,aAAqB;IACzD,OAAO,0BAAO,CAAC,EAAE,CAAC,GAAG,IAAA,oBAAY,EAAC,EAAE,GAAG,aAAa,CAAC,CAAC;AACxD,CAAC;AAFD,sDAEC;AAED,SAAgB,gBAAgB,CAC9B,iBAA4B,EAC5B,YAAoB,EACpB,WAAkD,EAClD,WAAmB;IAEnB,IAAI,CAAC,WAAW,CAAC,OAAO;QACtB,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,QAAQ,WAAW,EAAE,CAAC,CAAC;IAC1E,OAAO,iBAAiB,CAAC,oBAAoB,CAC3C,YAAY,EACZ,WAAW,CAAC,UAAU,CACvB,CAAC;AACJ,CAAC;AAZD,4CAYC;AAED,SAAgB,wBAAwB,CACtC,cAAsB,EACtB,eAAuB,EACvB,IAAsB,EACtB,QAAuC,EACvC,IAAc;IAEd,MAAM,OAAO,GAAG,2BAA2B,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,2BAA2B,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAEpE,MAAM,WAAW,GAAsB,IAAA,gBAAO,EAAC,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAC1E,GAAG,CAAC,EAAE,CAAC,CAAC;QACN,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QAC/B,OAAO,EAAE,GAAG,CAAC,KAAK;QAClB,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;KACrD,CAAC,CACH,CAAC;IAEF,MAAM,YAAY,GAAsB,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvE,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;QAC/B,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnD,QAAQ,EAAE,GAAG,CAAC,KAAK;KACpB,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAG;QACb,GAAG,WAAW;QACd,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,SAAS,EAAE;QAClE,GAAG,YAAY;KAChB,CAAC;IAEF,OAAO,IAAI,KAAK,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;AAC5D,CAAC;AA/BD,4DA+BC;AAED,SAAgB,sBAAsB,CACpC,IAAY,EACZ,EAAU,EACV,YAAgC,EAChC,cAA6C,EAC7C,IAAc;IAEd,qCAAqC;IACrC,OAAO,IAAA,eAAM,EACX,YAAY;SACT,GAAG,CAAC,IAAI,CAAC,EAAE,CACV,wBAAwB,CACtB,IAAI,CAAC,WAAW,EAAE,EAClB,EAAE,CAAC,WAAW,EAAE,EAChB,IAAI,EACJ,cAAc,EACd,IAAI,CACL,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CACvB;SACA,IAAI,EAAE,EACT,SAAS,CACV,CAAC;AACJ,CAAC;AAtBD,wDAsBC;AAED,SAAgB,iBAAiB,CAC/B,IAA0C,EAC1C,QAAuC;IAEvC,IAAI,UAAU,GAAwB,EAAE,CAAC;IAEzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;QAC/B,sBAAsB;QACtB,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;YAClC,SAAS;SACV;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,SAAS,IAAI,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACjD,oBAAoB;YACpB,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;gBACxC,cAAc,EAAE,KAAK;gBACrB,SAAS,EAAE,KAAK;gBAChB,WAAW,EAAE;oBACX;wBACE,MAAM,EAAE,SAAS,CAAC,EAAE;wBACpB,WAAW,EAAE,SAAS,CAAC,OAAO;wBAC9B,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;qBAC7C;iBACF;aACF,CAAC,CAAC;SACJ;aAAM,IAAI,SAAS,IAAI,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC/D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChE,uBAAuB;YACvB,UAAU,GAAG;gBACX,GAAG,UAAU;gBACb,2CAA2C;gBAC3C,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;oBACpC,GAAG,SAAS;oBACZ,WAAW,EAAE;wBACX;4BACE,MAAM,EAAE,SAAS,CAAC,EAAE;4BACpB,WAAW,EAAE,SAAS,CAAC,OAAO;4BAC9B,KAAK,EAAE,SAAS,CAAC,SAAS;yBAC3B;wBACD,GAAG,SAAS,CAAC,WAAW;qBACzB;oBACD,SAAS,EAAE,KAAK;oBAChB,cAAc,EAAE,IAAI;iBACrB,CAAC,CAAC;aACJ,CAAC;SACH;aAAM;YACL,UAAU,CAAC,IAAI,CAAC;gBACd,GAAG,KAAK;gBACR,WAAW,EAAE,EAAE;gBACf,SAAS,EAAE,KAAK;gBAChB,cAAc,EAAE,KAAK;aACtB,CAAC,CAAC;SACJ;KACF;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AA3DD,8CA2DC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,OAAO,CACL,QAAQ,KAAK,yBAAiB,CAAC,MAAM;QACrC,QAAQ,KAAK,yBAAiB,CAAC,UAAU;QACzC,QAAQ,KAAK,yBAAiB,CAAC,aAAa;QAC5C,QAAQ,KAAK,yBAAiB,CAAC,WAAW;QAC1C,QAAQ,KAAK,yBAAiB,CAAC,aAAa;QAC5C,QAAQ,KAAK,yBAAiB,CAAC,WAAW;QAC1C,QAAQ,KAAK,yBAAiB,CAAC,YAAY;QAC3C,QAAQ,KAAK,yBAAiB,CAAC,UAAU;QACzC,QAAQ,KAAK,yBAAiB,CAAC,UAAU;QACzC,QAAQ,KAAK,yBAAiB,CAAC,WAAW,CAC3C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,CACL,QAAQ,KAAK,yBAAiB,CAAC,aAAa;QAC5C,QAAQ,KAAK,yBAAiB,CAAC,gBAAgB,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,2BAA2B,CAClC,WAAmB,EACnB,IAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACpC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,WAAW,CAAC,WAAW,EAAE,CACnE,CAAC;IAEF,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,WAAW,EAAE,CAAC,CAAC;KACtE;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paraswap/dex-lib",
|
|
3
|
-
"version": "2.47.
|
|
3
|
+
"version": "2.47.7",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"types": "build/index.d.ts",
|
|
6
6
|
"repository": "https://github.com/paraswap/paraswap-dex-lib",
|
|
@@ -51,6 +51,7 @@
|
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@0x/utils": "^4.5.2",
|
|
54
|
+
"@balancer-labs/sor": "4.1.1-beta.4",
|
|
54
55
|
"@bgd-labs/aave-address-book": "2.21.1",
|
|
55
56
|
"@ethersproject/abi": "^5.7.0",
|
|
56
57
|
"@hashflow/sdk": "1.2.4",
|