@paraswap/dex-lib 2.47.2 → 2.47.3
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/Redstone.json +739 -0
- package/build/abi/angle/stagToken.json +963 -0
- package/build/abi/angle-transmuter/Pyth.json +1534 -0
- package/build/abi/angle-transmuter/Transmuter.json +1719 -0
- package/build/abi/smardex/smardex-factory.json +185 -0
- package/build/abi/smardex/smardex-pool.json +578 -0
- package/build/abi/smardex/smardex-router.json +648 -0
- package/build/abi/trader-joe-v2_1/FactoryABI.json +1208 -0
- package/build/abi/trader-joe-v2_1/PairABI.json +1493 -0
- package/build/abi/trader-joe-v2_1/RouterABI.json +1489 -0
- package/build/abi/trader-joe-v2_1/StateMulticall.json +193 -0
- package/build/config.js +2 -1
- package/build/config.js.map +1 -1
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.d.ts +53 -0
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js +175 -0
- package/build/dex/angle-staked-stable/angle-staked-stable-pool.js.map +1 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.d.ts +42 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.js +232 -0
- package/build/dex/angle-staked-stable/angle-staked-stable.js.map +1 -0
- package/build/dex/angle-staked-stable/config.d.ts +4 -0
- package/build/dex/angle-staked-stable/config.js +26 -0
- package/build/dex/angle-staked-stable/config.js.map +1 -0
- package/build/dex/angle-staked-stable/types.d.ts +15 -0
- package/build/dex/angle-staked-stable/types.js +3 -0
- package/build/dex/angle-staked-stable/types.js.map +1 -0
- package/build/dex/angle-transmuter/angle-transmuter-pool.d.ts +43 -0
- package/build/dex/angle-transmuter/angle-transmuter-pool.js +309 -0
- package/build/dex/angle-transmuter/angle-transmuter-pool.js.map +1 -0
- package/build/dex/angle-transmuter/angle-transmuter.d.ts +46 -0
- package/build/dex/angle-transmuter/angle-transmuter.js +233 -0
- package/build/dex/angle-transmuter/angle-transmuter.js.map +1 -0
- package/build/dex/angle-transmuter/backedOracle.d.ts +19 -0
- package/build/dex/angle-transmuter/backedOracle.js +56 -0
- package/build/dex/angle-transmuter/backedOracle.js.map +1 -0
- package/build/dex/angle-transmuter/config.d.ts +4 -0
- package/build/dex/angle-transmuter/config.js +20 -0
- package/build/dex/angle-transmuter/config.js.map +1 -0
- package/build/dex/angle-transmuter/constants.d.ts +4 -0
- package/build/dex/angle-transmuter/constants.js +8 -0
- package/build/dex/angle-transmuter/constants.js.map +1 -0
- package/build/dex/angle-transmuter/pyth.d.ts +19 -0
- package/build/dex/angle-transmuter/pyth.js +71 -0
- package/build/dex/angle-transmuter/pyth.js.map +1 -0
- package/build/dex/angle-transmuter/redstone.d.ts +20 -0
- package/build/dex/angle-transmuter/redstone.js +73 -0
- package/build/dex/angle-transmuter/redstone.js.map +1 -0
- package/build/dex/angle-transmuter/transmuter.d.ts +50 -0
- package/build/dex/angle-transmuter/transmuter.js +314 -0
- package/build/dex/angle-transmuter/transmuter.js.map +1 -0
- package/build/dex/angle-transmuter/types.d.ts +144 -0
- package/build/dex/angle-transmuter/types.js +31 -0
- package/build/dex/angle-transmuter/types.js.map +1 -0
- package/build/dex/angle-transmuter/utils.d.ts +9 -0
- package/build/dex/angle-transmuter/utils.js +264 -0
- package/build/dex/angle-transmuter/utils.js.map +1 -0
- package/build/dex/smardex/subgraph-queries.d.ts +1 -0
- package/build/dex/smardex/subgraph-queries.js +17 -0
- package/build/dex/smardex/subgraph-queries.js.map +1 -0
- package/build/dex/smardex/usd-reserves.d.ts +23 -0
- package/build/dex/smardex/usd-reserves.js +86 -0
- package/build/dex/smardex/usd-reserves.js.map +1 -0
- package/build/dex/solidly-v3/config.js +13 -1
- package/build/dex/solidly-v3/config.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3.d.ts +1 -2
- package/build/dex/solidly-v3/solidly-v3.js +1 -4
- package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
- package/build/dex/solidly-v3/types.d.ts +0 -1
- package/build/dex/solidly-v3/types.js.map +1 -1
- package/build/dex/trader-joe-v2-1-2/config.d.ts +4 -0
- package/build/dex/trader-joe-v2-1-2/config.js +47 -0
- package/build/dex/trader-joe-v2-1-2/config.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/constants.d.ts +20 -0
- package/build/dex/trader-joe-v2-1-2/constants.js +22 -0
- package/build/dex/trader-joe-v2-1-2/constants.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/math/index.d.ts +37 -0
- package/build/dex/trader-joe-v2-1-2/math/index.js +291 -0
- package/build/dex/trader-joe-v2-1-2/math/index.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.d.ts +60 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js +248 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2-pool.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.d.ts +53 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js +307 -0
- package/build/dex/trader-joe-v2-1-2/trader-joe-v2-1-2.js.map +1 -0
- package/build/dex/trader-joe-v2-1-2/types.d.ts +82 -0
- package/build/dex/trader-joe-v2-1-2/types.js +9 -0
- package/build/dex/trader-joe-v2-1-2/types.js.map +1 -0
- package/build/dex/trader-joe-v2_1/config.d.ts +4 -0
- package/build/dex/trader-joe-v2_1/config.js +47 -0
- package/build/dex/trader-joe-v2_1/config.js.map +1 -0
- package/build/dex/trader-joe-v2_1/constants.d.ts +20 -0
- package/build/dex/trader-joe-v2_1/constants.js +22 -0
- package/build/dex/trader-joe-v2_1/constants.js.map +1 -0
- package/build/dex/trader-joe-v2_1/math/index.d.ts +37 -0
- package/build/dex/trader-joe-v2_1/math/index.js +291 -0
- package/build/dex/trader-joe-v2_1/math/index.js.map +1 -0
- 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 +384 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2.1.js.map +1 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.d.ts +60 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js +247 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1-pool.js.map +1 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.d.ts +53 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js +307 -0
- package/build/dex/trader-joe-v2_1/trader-joe-v2_1.js.map +1 -0
- package/build/dex/trader-joe-v2_1/types.d.ts +82 -0
- package/build/dex/trader-joe-v2_1/types.js +9 -0
- package/build/dex/trader-joe-v2_1/types.js.map +1 -0
- package/build/dex/wombat/wombat-pool-poller.d.ts +22 -0
- package/build/dex/wombat/wombat-pool-poller.js +164 -0
- package/build/dex/wombat/wombat-pool-poller.js.map +1 -0
- package/package.json +1 -1
- package/src/config.ts +2 -1
- package/src/dex/solidly-v3/config.ts +15 -1
- package/src/dex/solidly-v3/solidly-v3-e2e.test.ts +33 -0
- package/src/dex/solidly-v3/solidly-v3.ts +0 -3
- package/src/dex/solidly-v3/types.ts +0 -1
- package/tests/constants-e2e.ts +7 -2
- package/tests/utils-e2e.ts +2 -1
- package/build/abi/algebra/AlgebraPool.abi.json +0 -727
- package/build/abi/balancer-v2/gyro-e.abi.json +0 -1595
- package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
- package/build/dex/algebra/algebra-pool.d.ts +0 -46
- package/build/dex/algebra/algebra-pool.js +0 -336
- package/build/dex/algebra/algebra-pool.js.map +0 -1
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.d.ts +0 -32
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js +0 -151
- package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js.map +0 -1
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.d.ts +0 -37
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.js +0 -222
- package/build/dex/balancer-v2/pools/gyro/GyroEPool.js.map +0 -1
- package/build/dex/balancer-v2/queryOnChain.d.ts +0 -1
- package/build/dex/balancer-v2/queryOnChain.js +0 -40
- package/build/dex/balancer-v2/queryOnChain.js.map +0 -1
- package/build/dex/quickswap/camelot-v3.d.ts +0 -6
- package/build/dex/quickswap/camelot-v3.js +0 -19
- package/build/dex/quickswap/camelot-v3.js.map +0 -1
- package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
- package/build/dex/quickswap/zyberswap-v3.js +0 -19
- package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
- package/build/dex/uniswap-v2/rebase-tokens.json +0 -7
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Gyro3Pool = void 0;
|
|
4
|
-
/* eslint-disable no-console */
|
|
5
|
-
const abi_1 = require("@ethersproject/abi");
|
|
6
|
-
const bignumber_1 = require("@ethersproject/bignumber");
|
|
7
|
-
const balancer_v2_pool_1 = require("../balancer-v2-pool");
|
|
8
|
-
const constants_1 = require("../../../../constants");
|
|
9
|
-
const utils_1 = require("../../utils");
|
|
10
|
-
const balancer_v2_math_1 = require("../../balancer-v2-math");
|
|
11
|
-
const sor_1 = require("@balancer-labs/sor");
|
|
12
|
-
// Swap Limit factor
|
|
13
|
-
const SWAP_LIMIT_FACTOR = BigInt('999999000000000000');
|
|
14
|
-
class Gyro3Pool extends balancer_v2_pool_1.BasePool {
|
|
15
|
-
constructor(vaultAddress, vaultInterface) {
|
|
16
|
-
super();
|
|
17
|
-
this.poolInterface = new abi_1.Interface([
|
|
18
|
-
'function getSwapFeePercentage() view returns (uint256)',
|
|
19
|
-
]);
|
|
20
|
-
this.vaultAddress = vaultAddress;
|
|
21
|
-
this.vaultInterface = vaultInterface;
|
|
22
|
-
}
|
|
23
|
-
parsePoolPairData(pool, poolState, tokenIn, tokenOut) {
|
|
24
|
-
// All values should be normalised to 18 decimals. e.g. 1USDC = 1e18 not 1e6
|
|
25
|
-
let indexIn = 0, indexOut = 0, indexTertiary = 0;
|
|
26
|
-
const scalingFactors = [];
|
|
27
|
-
const balances = pool.tokens.map((t, i) => {
|
|
28
|
-
if (t.address.toLowerCase() === tokenIn.toLowerCase()) {
|
|
29
|
-
indexIn = i;
|
|
30
|
-
}
|
|
31
|
-
else if (t.address.toLowerCase() === tokenOut.toLowerCase()) {
|
|
32
|
-
indexOut = i;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
indexTertiary = i;
|
|
36
|
-
}
|
|
37
|
-
const scalingFactor = (0, utils_1.getTokenScalingFactor)(t.decimals);
|
|
38
|
-
scalingFactors.push(scalingFactor);
|
|
39
|
-
return bignumber_1.BigNumber.from(this._upscale(BigInt(poolState.tokens[t.address.toLowerCase()].balance), scalingFactor));
|
|
40
|
-
});
|
|
41
|
-
const balanceTertiary = balances[indexTertiary];
|
|
42
|
-
const decimalsTertiary = pool.tokens[indexTertiary].decimals;
|
|
43
|
-
const poolPairData = {
|
|
44
|
-
balances,
|
|
45
|
-
indexIn,
|
|
46
|
-
indexOut,
|
|
47
|
-
scalingFactors,
|
|
48
|
-
swapFee: poolState.swapFee,
|
|
49
|
-
balanceTertiary,
|
|
50
|
-
decimalsTertiary,
|
|
51
|
-
root3Alpha: (0, utils_1.safeParseFixed)(pool.root3Alpha, 18),
|
|
52
|
-
};
|
|
53
|
-
return poolPairData;
|
|
54
|
-
}
|
|
55
|
-
getSwapMaxAmount(poolPairData, side) {
|
|
56
|
-
if (side === constants_1.SwapSide.SELL) {
|
|
57
|
-
// Approximation - similar to traditional stable pools
|
|
58
|
-
return this._downscaleDown(balancer_v2_math_1.MathSol.mulDownFixed(poolPairData.balances[poolPairData.indexOut].toBigInt(), SWAP_LIMIT_FACTOR), poolPairData.scalingFactors[poolPairData.indexIn]);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
return this._downscaleDown(balancer_v2_math_1.MathSol.mulDownFixed(poolPairData.balances[poolPairData.indexIn].toBigInt(), SWAP_LIMIT_FACTOR), poolPairData.scalingFactors[poolPairData.indexOut]);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/*
|
|
65
|
-
Helper function to construct onchain multicall data for Pool.
|
|
66
|
-
*/
|
|
67
|
-
getOnChainCalls(pool) {
|
|
68
|
-
const poolCallData = [
|
|
69
|
-
{
|
|
70
|
-
target: this.vaultAddress,
|
|
71
|
-
callData: this.vaultInterface.encodeFunctionData('getPoolTokens', [
|
|
72
|
-
pool.id,
|
|
73
|
-
]),
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
target: pool.address,
|
|
77
|
-
callData: this.poolInterface.encodeFunctionData('getSwapFeePercentage'),
|
|
78
|
-
},
|
|
79
|
-
];
|
|
80
|
-
return poolCallData;
|
|
81
|
-
}
|
|
82
|
-
/*
|
|
83
|
-
Helper function to decode multicall data for Pool.
|
|
84
|
-
data must contain returnData
|
|
85
|
-
startIndex is where to start in returnData. Allows this decode function to be called along with other pool types.
|
|
86
|
-
*/
|
|
87
|
-
decodeOnChainCalls(pool, data, startIndex) {
|
|
88
|
-
const pools = {};
|
|
89
|
-
const poolTokens = (0, utils_1.decodeThrowError)(this.vaultInterface, 'getPoolTokens', data[startIndex++], pool.address);
|
|
90
|
-
const swapFee = (0, utils_1.decodeThrowError)(this.poolInterface, 'getSwapFeePercentage', data[startIndex++], pool.address)[0];
|
|
91
|
-
const poolState = {
|
|
92
|
-
swapFee: BigInt(swapFee.toString()),
|
|
93
|
-
orderedTokens: poolTokens.tokens,
|
|
94
|
-
tokens: poolTokens.tokens.reduce((ptAcc, pt, j) => {
|
|
95
|
-
const tokenState = {
|
|
96
|
-
balance: BigInt(poolTokens.balances[j].toString()),
|
|
97
|
-
};
|
|
98
|
-
ptAcc[pt.toLowerCase()] = tokenState;
|
|
99
|
-
return ptAcc;
|
|
100
|
-
}, {}),
|
|
101
|
-
};
|
|
102
|
-
pools[pool.address] = poolState;
|
|
103
|
-
return [pools, startIndex];
|
|
104
|
-
}
|
|
105
|
-
onSell(amounts, poolPairData) {
|
|
106
|
-
try {
|
|
107
|
-
const invariant = sor_1.Gyro3Maths._calculateInvariant(poolPairData.balances, poolPairData.root3Alpha);
|
|
108
|
-
const virtualOffsetInOut = balancer_v2_math_1.MathSol.mulDownFixed(invariant.toBigInt(), poolPairData.root3Alpha.toBigInt());
|
|
109
|
-
const tokenAmountsInScaled = amounts.map(a => this._upscale(a, poolPairData.scalingFactors[poolPairData.indexIn]));
|
|
110
|
-
const tokenAmountsInWithFee = tokenAmountsInScaled.map(a => this._subtractSwapFeeAmount(a, poolPairData.swapFee));
|
|
111
|
-
return tokenAmountsInWithFee.map(amount => {
|
|
112
|
-
try {
|
|
113
|
-
const amountOut = sor_1.Gyro3Maths._calcOutGivenIn(poolPairData.balances[poolPairData.indexIn], poolPairData.balances[poolPairData.indexOut], bignumber_1.BigNumber.from(amount), bignumber_1.BigNumber.from(virtualOffsetInOut)).toBigInt();
|
|
114
|
-
return this._downscaleDown(amountOut, poolPairData.scalingFactors[poolPairData.indexOut]);
|
|
115
|
-
}
|
|
116
|
-
catch (error) {
|
|
117
|
-
return BigInt(0);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
return [];
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
onBuy(amounts, poolPairData) {
|
|
126
|
-
try {
|
|
127
|
-
const invariant = sor_1.Gyro3Maths._calculateInvariant(poolPairData.balances, poolPairData.root3Alpha);
|
|
128
|
-
const virtualOffsetInOut = balancer_v2_math_1.MathSol.mulDownFixed(invariant.toBigInt(), poolPairData.root3Alpha.toBigInt());
|
|
129
|
-
const scalingFactor = poolPairData.scalingFactors[poolPairData.indexOut];
|
|
130
|
-
console.log('scalingFactor', scalingFactor);
|
|
131
|
-
const tokenAmountsWithFee = amounts.map(a => this._upscale(a, poolPairData.scalingFactors[poolPairData.indexOut]));
|
|
132
|
-
const tokenAmountsInWithFee = tokenAmountsWithFee.map(a => this._addFeeAmount(a, poolPairData.swapFee));
|
|
133
|
-
console.log('tokenAmountsOutWithFee', tokenAmountsInWithFee);
|
|
134
|
-
return tokenAmountsInWithFee.map(amount => {
|
|
135
|
-
try {
|
|
136
|
-
const amountIn = sor_1.Gyro3Maths._calcInGivenOut(poolPairData.balances[poolPairData.indexIn], poolPairData.balances[poolPairData.indexOut], bignumber_1.BigNumber.from(amount), bignumber_1.BigNumber.from(virtualOffsetInOut)).toBigInt();
|
|
137
|
-
console.log('amountInBeforeScaling', amountIn);
|
|
138
|
-
return this._downscaleDown(amountIn, poolPairData.scalingFactors[poolPairData.indexIn]);
|
|
139
|
-
}
|
|
140
|
-
catch (error) {
|
|
141
|
-
return BigInt(0);
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
return [];
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
exports.Gyro3Pool = Gyro3Pool;
|
|
151
|
-
//# sourceMappingURL=Gyro3Pool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Gyro3Pool.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/gyro/Gyro3Pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { BigNumber } from '@ethersproject/bignumber';
|
|
3
|
-
import { BasePool } from '../balancer-v2-pool';
|
|
4
|
-
import { SwapSide } from '../../../../constants';
|
|
5
|
-
import { callData, SubgraphPoolBase, PoolState } from '../../types';
|
|
6
|
-
import { DerivedGyroEParams, GyroEParams } from '@balancer-labs/sor';
|
|
7
|
-
export declare type GyroEPoolPairData = {
|
|
8
|
-
balances: BigNumber[];
|
|
9
|
-
tokenRates: bigint[];
|
|
10
|
-
gyroParams: GyroEParams;
|
|
11
|
-
gyroDerivedParams: DerivedGyroEParams;
|
|
12
|
-
rateProviders: string[];
|
|
13
|
-
indexIn: number;
|
|
14
|
-
indexOut: number;
|
|
15
|
-
swapFee: bigint;
|
|
16
|
-
scalingFactors: bigint[];
|
|
17
|
-
tokenInIsToken0: boolean;
|
|
18
|
-
};
|
|
19
|
-
export declare class GyroEPool extends BasePool {
|
|
20
|
-
vaultAddress: string;
|
|
21
|
-
vaultInterface: Interface;
|
|
22
|
-
poolInterface: Interface;
|
|
23
|
-
constructor(vaultAddress: string, vaultInterface: Interface);
|
|
24
|
-
parsePoolPairData(pool: SubgraphPoolBase, poolState: PoolState, tokenIn: string, tokenOut: string): GyroEPoolPairData;
|
|
25
|
-
getSwapMaxAmount(poolPairData: GyroEPoolPairData, side: SwapSide): bigint;
|
|
26
|
-
getOnChainCalls(pool: SubgraphPoolBase): callData[];
|
|
27
|
-
decodeOnChainCalls(pool: SubgraphPoolBase, data: {
|
|
28
|
-
success: boolean;
|
|
29
|
-
returnData: any;
|
|
30
|
-
}[], startIndex: number): [{
|
|
31
|
-
[address: string]: PoolState;
|
|
32
|
-
}, number];
|
|
33
|
-
onSell(amounts: bigint[], poolPairData: GyroEPoolPairData): bigint[];
|
|
34
|
-
onBuy(amounts: bigint[], poolPairData: GyroEPoolPairData): bigint[];
|
|
35
|
-
private _scalingFactor;
|
|
36
|
-
private _normalizeBalances;
|
|
37
|
-
}
|
|
@@ -1,222 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"GyroEPool.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/gyro/GyroEPool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function queryOnChain(rpcUrl: string, blockNumber: number, poolId: string, kind: 0 | 1, assetIn: string, assetOut: string, amount: BigInt): Promise<bigint[]>;
|
|
@@ -1,40 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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,19 +0,0 @@
|
|
|
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.CamelotV3 = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const config_1 = require("./config");
|
|
9
|
-
const quickswap_v3_1 = require("./quickswap-v3");
|
|
10
|
-
const config = lodash_1.default.pick(config_1.QuickSwapConfig, ['CamelotV3']).CamelotV3;
|
|
11
|
-
class CamelotV3 extends quickswap_v3_1.QuickSwapV3 {
|
|
12
|
-
// public static dexKeysWithNetwork
|
|
13
|
-
constructor(dexHelper) {
|
|
14
|
-
super(dexHelper, 'camelotv3', config[dexHelper.config.data.network].router);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.CamelotV3 = CamelotV3;
|
|
18
|
-
CamelotV3.dexKeys = ['camelotv3'];
|
|
19
|
-
//# sourceMappingURL=camelot-v3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"camelot-v3.js","sourceRoot":"","sources":["../../../src/dex/quickswap/camelot-v3.ts"],"names":[],"mappings":";;;;;;AACA,oDAAuB;AACvB,qCAA2C;AAC3C,iDAA6C;AAE7C,MAAM,MAAM,GAAG,gBAAC,CAAC,IAAI,CAAC,wBAAe,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAEhE,MAAa,SAAU,SAAQ,0BAAW;IAGxC,mCAAmC;IACnC,YAAY,SAAqB;QAC/B,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9E,CAAC;;AANH,8BAOC;AANQ,iBAAO,GAAG,CAAC,WAAW,CAAC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
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.ZyberSwapV3 = void 0;
|
|
7
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
-
const config_1 = require("./config");
|
|
9
|
-
const quickswap_v3_1 = require("./quickswap-v3");
|
|
10
|
-
const config = lodash_1.default.pick(config_1.QuickSwapConfig, ['ZyberSwapV3']).ZyberSwapV3;
|
|
11
|
-
class ZyberSwapV3 extends quickswap_v3_1.QuickSwapV3 {
|
|
12
|
-
// public static dexKeysWithNetwork
|
|
13
|
-
constructor(dexHelper) {
|
|
14
|
-
super(dexHelper, 'zyberswapv3', config[dexHelper.config.data.network].router);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.ZyberSwapV3 = ZyberSwapV3;
|
|
18
|
-
ZyberSwapV3.dexKeys = ['zyberswapv3'];
|
|
19
|
-
//# sourceMappingURL=zyberswap-v3.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zyberswap-v3.js","sourceRoot":"","sources":["../../../src/dex/quickswap/zyberswap-v3.ts"],"names":[],"mappings":";;;;;;AACA,oDAAuB;AACvB,qCAA2C;AAC3C,iDAA6C;AAE7C,MAAM,MAAM,GAAG,gBAAC,CAAC,IAAI,CAAC,wBAAe,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;AAEpE,MAAa,WAAY,SAAQ,0BAAW;IAG1C,mCAAmC;IACnC,YAAY,SAAqB;QAC/B,KAAK,CACH,SAAS,EACT,aAAa,EACb,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAC7C,CAAC;IACJ,CAAC;;AAVH,kCAWC;AAVQ,mBAAO,GAAG,CAAC,aAAa,CAAC,CAAC"}
|