@paraswap/dex-lib 2.42.7 → 2.42.8

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.
Files changed (203) hide show
  1. package/.vscode/launch.json +38 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/dex/simple-exchange.d.ts +3 -0
  5. package/build/dex/simple-exchange.js +18 -2
  6. package/build/dex/simple-exchange.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/dex/simple-exchange.ts +37 -3
  9. package/.idea/aws.xml +0 -17
  10. package/.idea/codeStyles/Project.xml +0 -19
  11. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  12. package/.idea/misc.xml +0 -6
  13. package/.idea/modules.xml +0 -8
  14. package/.idea/paraswap-dex-lib.iml +0 -9
  15. package/.idea/prettier.xml +0 -7
  16. package/.idea/vcs.xml +0 -6
  17. package/build/abi/algebra/AlgebraPool.abi.json +0 -727
  18. package/build/abi/curve-v1/StableSwapFRXETH.json +0 -889
  19. package/build/abi/curve-v1/StableSwapWBETH.json +0 -1223
  20. package/build/abi/sushiswap-v3/QuoterV2.json +0 -267
  21. package/build/abi/sushiswap-v3/RouterProcessor3.json +0 -289
  22. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  23. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +0 -285
  24. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +0 -583
  25. package/build/abi/wBETH.json +0 -1527
  26. package/build/abi/woo-fi/WooFeeManager.abi.json +0 -318
  27. package/build/abi/woo-fi/WooPP.abi.json +0 -548
  28. package/build/abi/woo-fi/Wooracle.abi.json +0 -260
  29. package/build/dex/aave-v3/tokens/arbitrum.json +0 -50
  30. package/build/dex/aave-v3/tokens/avalanche.json +0 -74
  31. package/build/dex/aave-v3/tokens/fantom.json +0 -62
  32. package/build/dex/aave-v3/tokens/optimism.json +0 -50
  33. package/build/dex/aave-v3/tokens/polygon.json +0 -116
  34. package/build/dex/algebra/algebra-pool.d.ts +0 -114
  35. package/build/dex/algebra/algebra-pool.js +0 -448
  36. package/build/dex/algebra/algebra-pool.js.map +0 -1
  37. package/build/dex/balancer-v2/Gyro3Pool.d.ts +0 -43
  38. package/build/dex/balancer-v2/Gyro3Pool.js +0 -160
  39. package/build/dex/balancer-v2/Gyro3Pool.js.map +0 -1
  40. package/build/dex/balancer-v2/LinearMath.d.ts +0 -88
  41. package/build/dex/balancer-v2/LinearMath.js +0 -285
  42. package/build/dex/balancer-v2/LinearMath.js.map +0 -1
  43. package/build/dex/balancer-v2/LinearPool.d.ts +0 -81
  44. package/build/dex/balancer-v2/LinearPool.js +0 -444
  45. package/build/dex/balancer-v2/LinearPool.js.map +0 -1
  46. package/build/dex/balancer-v2/PhantomStablePool.d.ts +0 -90
  47. package/build/dex/balancer-v2/PhantomStablePool.js +0 -418
  48. package/build/dex/balancer-v2/PhantomStablePool.js.map +0 -1
  49. package/build/dex/balancer-v2/StableMath.d.ts +0 -9
  50. package/build/dex/balancer-v2/StableMath.js +0 -272
  51. package/build/dex/balancer-v2/StableMath.js.map +0 -1
  52. package/build/dex/balancer-v2/balancer-v2-pool.d.ts +0 -140
  53. package/build/dex/balancer-v2/balancer-v2-pool.js +0 -647
  54. package/build/dex/balancer-v2/balancer-v2-pool.js.map +0 -1
  55. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.d.ts +0 -33
  56. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js +0 -128
  57. package/build/dex/balancer-v2/pools/gyro/Gyro3Pool.js.map +0 -1
  58. package/build/dex/balancer-v2/pools/gyro/GyroEPool.d.ts +0 -34
  59. package/build/dex/balancer-v2/pools/gyro/GyroEPool.js +0 -151
  60. package/build/dex/balancer-v2/pools/gyro/GyroEPool.js.map +0 -1
  61. package/build/dex/curve-v1/pools/frxETHpool.d.ts +0 -7
  62. package/build/dex/curve-v1/pools/frxETHpool.js +0 -27
  63. package/build/dex/curve-v1/pools/frxETHpool.js.map +0 -1
  64. package/build/dex/curve-v1/pools/wbETHpool.d.ts +0 -29
  65. package/build/dex/curve-v1/pools/wbETHpool.js +0 -408
  66. package/build/dex/curve-v1/pools/wbETHpool.js.map +0 -1
  67. package/build/dex/lighter-v1/abi/erc20.json +0 -222
  68. package/build/dex/lighter-v1/abi/factory.json +0 -291
  69. package/build/dex/lighter-v1/abi/order_book.json +0 -594
  70. package/build/dex/lighter-v1/abi/order_book_helper.json +0 -176
  71. package/build/dex/lighter-v1/abi/router.json +0 -488
  72. package/build/dex/lighter-v1/config.d.ts +0 -4
  73. package/build/dex/lighter-v1/config.js +0 -17
  74. package/build/dex/lighter-v1/config.js.map +0 -1
  75. package/build/dex/lighter-v1/constants.d.ts +0 -2
  76. package/build/dex/lighter-v1/constants.js +0 -13
  77. package/build/dex/lighter-v1/constants.js.map +0 -1
  78. package/build/dex/lighter-v1/lighter-v1-pool.d.ts +0 -57
  79. package/build/dex/lighter-v1/lighter-v1-pool.js +0 -310
  80. package/build/dex/lighter-v1/lighter-v1-pool.js.map +0 -1
  81. package/build/dex/lighter-v1/lighter-v1.d.ts +0 -45
  82. package/build/dex/lighter-v1/lighter-v1.js +0 -331
  83. package/build/dex/lighter-v1/lighter-v1.js.map +0 -1
  84. package/build/dex/lighter-v1/types.d.ts +0 -40
  85. package/build/dex/lighter-v1/types.js +0 -3
  86. package/build/dex/lighter-v1/types.js.map +0 -1
  87. package/build/dex/pancakeswap-v3/types.d.ts +0 -14
  88. package/build/dex/pancakeswap-v3/types.js +0 -3
  89. package/build/dex/pancakeswap-v3/types.js.map +0 -1
  90. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  91. package/build/dex/quickswap/camelot-v3.js +0 -19
  92. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  93. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  94. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  95. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  96. package/build/dex/quickswap-v3.d.ts +0 -21
  97. package/build/dex/quickswap-v3.js +0 -40
  98. package/build/dex/quickswap-v3.js.map +0 -1
  99. package/build/dex/ramses-v2/config.d.ts +0 -4
  100. package/build/dex/ramses-v2/config.js +0 -28
  101. package/build/dex/ramses-v2/config.js.map +0 -1
  102. package/build/dex/ramses-v2/constants.d.ts +0 -28
  103. package/build/dex/ramses-v2/constants.js +0 -35
  104. package/build/dex/ramses-v2/constants.js.map +0 -1
  105. package/build/dex/ramses-v2/contract-math/BitMath.d.ts +0 -4
  106. package/build/dex/ramses-v2/contract-math/BitMath.js +0 -93
  107. package/build/dex/ramses-v2/contract-math/BitMath.js.map +0 -1
  108. package/build/dex/ramses-v2/contract-math/FixedPoint128.d.ts +0 -3
  109. package/build/dex/ramses-v2/contract-math/FixedPoint128.js +0 -8
  110. package/build/dex/ramses-v2/contract-math/FixedPoint128.js.map +0 -1
  111. package/build/dex/ramses-v2/contract-math/FixedPoint96.d.ts +0 -4
  112. package/build/dex/ramses-v2/contract-math/FixedPoint96.js +0 -9
  113. package/build/dex/ramses-v2/contract-math/FixedPoint96.js.map +0 -1
  114. package/build/dex/ramses-v2/contract-math/FullMath.d.ts +0 -4
  115. package/build/dex/ramses-v2/contract-math/FullMath.js +0 -19
  116. package/build/dex/ramses-v2/contract-math/FullMath.js.map +0 -1
  117. package/build/dex/ramses-v2/contract-math/LiquidityMath.d.ts +0 -3
  118. package/build/dex/ramses-v2/contract-math/LiquidityMath.js +0 -22
  119. package/build/dex/ramses-v2/contract-math/LiquidityMath.js.map +0 -1
  120. package/build/dex/ramses-v2/contract-math/Oracle.d.ts +0 -10
  121. package/build/dex/ramses-v2/contract-math/Oracle.js +0 -133
  122. package/build/dex/ramses-v2/contract-math/Oracle.js.map +0 -1
  123. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.d.ts +0 -10
  124. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js +0 -91
  125. package/build/dex/ramses-v2/contract-math/SqrtPriceMath.js.map +0 -1
  126. package/build/dex/ramses-v2/contract-math/SwapMath.d.ts +0 -8
  127. package/build/dex/ramses-v2/contract-math/SwapMath.js +0 -70
  128. package/build/dex/ramses-v2/contract-math/SwapMath.js.map +0 -1
  129. package/build/dex/ramses-v2/contract-math/Tick.d.ts +0 -7
  130. package/build/dex/ramses-v2/contract-math/Tick.js +0 -45
  131. package/build/dex/ramses-v2/contract-math/Tick.js.map +0 -1
  132. package/build/dex/ramses-v2/contract-math/TickBitMap.d.ts +0 -8
  133. package/build/dex/ramses-v2/contract-math/TickBitMap.js +0 -87
  134. package/build/dex/ramses-v2/contract-math/TickBitMap.js.map +0 -1
  135. package/build/dex/ramses-v2/contract-math/TickMath.d.ts +0 -8
  136. package/build/dex/ramses-v2/contract-math/TickMath.js +0 -162
  137. package/build/dex/ramses-v2/contract-math/TickMath.js.map +0 -1
  138. package/build/dex/ramses-v2/contract-math/UnsafeMath.d.ts +0 -3
  139. package/build/dex/ramses-v2/contract-math/UnsafeMath.js +0 -10
  140. package/build/dex/ramses-v2/contract-math/UnsafeMath.js.map +0 -1
  141. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.d.ts +0 -18
  142. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js +0 -392
  143. package/build/dex/ramses-v2/contract-math/uniswap-v3-math.js.map +0 -1
  144. package/build/dex/ramses-v2/contract-math/utils.d.ts +0 -3
  145. package/build/dex/ramses-v2/contract-math/utils.js +0 -16
  146. package/build/dex/ramses-v2/contract-math/utils.js.map +0 -1
  147. package/build/dex/ramses-v2/ramses-v2-pool.d.ts +0 -42
  148. package/build/dex/ramses-v2/ramses-v2-pool.js +0 -307
  149. package/build/dex/ramses-v2/ramses-v2-pool.js.map +0 -1
  150. package/build/dex/ramses-v2/ramses-v2.d.ts +0 -61
  151. package/build/dex/ramses-v2/ramses-v2.js +0 -690
  152. package/build/dex/ramses-v2/ramses-v2.js.map +0 -1
  153. package/build/dex/ramses-v2/types.d.ts +0 -154
  154. package/build/dex/ramses-v2/types.js +0 -9
  155. package/build/dex/ramses-v2/types.js.map +0 -1
  156. package/build/dex/ramses-v2/utils.d.ts +0 -6
  157. package/build/dex/ramses-v2/utils.js +0 -71
  158. package/build/dex/ramses-v2/utils.js.map +0 -1
  159. package/build/dex/solidly/forks-override/fvm.d.ts +0 -20
  160. package/build/dex/solidly/forks-override/fvm.js +0 -42
  161. package/build/dex/solidly/forks-override/fvm.js.map +0 -1
  162. package/build/dex/sushiswap-v3/config.d.ts +0 -4
  163. package/build/dex/sushiswap-v3/config.js +0 -132
  164. package/build/dex/sushiswap-v3/config.js.map +0 -1
  165. package/build/dex/sushiswap-v3/constants.d.ts +0 -4
  166. package/build/dex/sushiswap-v3/constants.js +0 -32
  167. package/build/dex/sushiswap-v3/constants.js.map +0 -1
  168. package/build/dex/sushiswap-v3/sushiswap-v3-original.d.ts +0 -56
  169. package/build/dex/sushiswap-v3/sushiswap-v3-original.js +0 -598
  170. package/build/dex/sushiswap-v3/sushiswap-v3-original.js.map +0 -1
  171. package/build/dex/sushiswap-v3/sushiswap-v3-pool.d.ts +0 -1
  172. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js +0 -6
  173. package/build/dex/sushiswap-v3/sushiswap-v3-pool.js.map +0 -1
  174. package/build/dex/sushiswap-v3/sushiswap-v3.d.ts +0 -21
  175. package/build/dex/sushiswap-v3/sushiswap-v3.js +0 -58
  176. package/build/dex/sushiswap-v3/sushiswap-v3.js.map +0 -1
  177. package/build/dex/sushiswap-v3/token.d.ts +0 -6
  178. package/build/dex/sushiswap-v3/token.js +0 -23
  179. package/build/dex/sushiswap-v3/token.js.map +0 -1
  180. package/build/dex/sushiswap-v3/types.d.ts +0 -15
  181. package/build/dex/sushiswap-v3/types.js +0 -18
  182. package/build/dex/sushiswap-v3/types.js.map +0 -1
  183. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +0 -12
  184. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +0 -23
  185. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +0 -1
  186. package/build/dex/woo-fi/config.d.ts +0 -4
  187. package/build/dex/woo-fi/config.js +0 -141
  188. package/build/dex/woo-fi/config.js.map +0 -1
  189. package/build/dex/woo-fi/constants.d.ts +0 -5
  190. package/build/dex/woo-fi/constants.js +0 -20
  191. package/build/dex/woo-fi/constants.js.map +0 -1
  192. package/build/dex/woo-fi/types.d.ts +0 -48
  193. package/build/dex/woo-fi/types.js +0 -3
  194. package/build/dex/woo-fi/types.js.map +0 -1
  195. package/build/dex/woo-fi/woo-fi-decimal-math.d.ts +0 -14
  196. package/build/dex/woo-fi/woo-fi-decimal-math.js +0 -42
  197. package/build/dex/woo-fi/woo-fi-decimal-math.js.map +0 -1
  198. package/build/dex/woo-fi/woo-fi-math.d.ts +0 -31
  199. package/build/dex/woo-fi/woo-fi-math.js +0 -300
  200. package/build/dex/woo-fi/woo-fi-math.js.map +0 -1
  201. package/build/dex/woo-fi/woo-fi.d.ts +0 -65
  202. package/build/dex/woo-fi/woo-fi.js +0 -480
  203. package/build/dex/woo-fi/woo-fi.js.map +0 -1
@@ -1,444 +0,0 @@
1
- 'use strict';
2
- var __createBinding =
3
- (this && this.__createBinding) ||
4
- (Object.create
5
- ? function (o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (
9
- !desc ||
10
- ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)
11
- ) {
12
- desc = {
13
- enumerable: true,
14
- get: function () {
15
- return m[k];
16
- },
17
- };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }
21
- : function (o, m, k, k2) {
22
- if (k2 === undefined) k2 = k;
23
- o[k2] = m[k];
24
- });
25
- var __setModuleDefault =
26
- (this && this.__setModuleDefault) ||
27
- (Object.create
28
- ? function (o, v) {
29
- Object.defineProperty(o, 'default', { enumerable: true, value: v });
30
- }
31
- : function (o, v) {
32
- o['default'] = v;
33
- });
34
- var __importStar =
35
- (this && this.__importStar) ||
36
- function (mod) {
37
- if (mod && mod.__esModule) return mod;
38
- var result = {};
39
- if (mod != null)
40
- for (var k in mod)
41
- if (k !== 'default' && Object.prototype.hasOwnProperty.call(mod, k))
42
- __createBinding(result, mod, k);
43
- __setModuleDefault(result, mod);
44
- return result;
45
- };
46
- var __importDefault =
47
- (this && this.__importDefault) ||
48
- function (mod) {
49
- return mod && mod.__esModule ? mod : { default: mod };
50
- };
51
- Object.defineProperty(exports, '__esModule', { value: true });
52
- exports.LinearPool = exports.PairTypes = void 0;
53
- const abi_1 = require('@ethersproject/abi');
54
- const bignumber_1 = require('@ethersproject/bignumber');
55
- const utils_1 = require('./utils');
56
- const LinearMath = __importStar(require('./LinearMath'));
57
- const balancer_v2_pool_1 = require('./balancer-v2-pool');
58
- const linearPoolAbi_json_1 = __importDefault(
59
- require('../../abi/balancer-v2/linearPoolAbi.json'),
60
- );
61
- const lodash_1 = require('lodash');
62
- var PairTypes;
63
- (function (PairTypes) {
64
- PairTypes[(PairTypes['BptToMainToken'] = 0)] = 'BptToMainToken';
65
- PairTypes[(PairTypes['MainTokenToBpt'] = 1)] = 'MainTokenToBpt';
66
- PairTypes[(PairTypes['MainTokenToWrappedToken'] = 2)] =
67
- 'MainTokenToWrappedToken';
68
- PairTypes[(PairTypes['WrappedTokenToMainToken'] = 3)] =
69
- 'WrappedTokenToMainToken';
70
- PairTypes[(PairTypes['BptToWrappedToken'] = 4)] = 'BptToWrappedToken';
71
- PairTypes[(PairTypes['WrappedTokenToBpt'] = 5)] = 'WrappedTokenToBpt';
72
- })((PairTypes = exports.PairTypes || (exports.PairTypes = {})));
73
- /*
74
- Linear (Boosted) Pools are designed to facilitate trades between stablecoins while simultaneously forwarding much of the pool's
75
- liquidity to external protocols, such as Aave.
76
- One of the key features that makes trades through Boosted Pools so simple is the use of Phantom BPT. Normally when a Liquidity
77
- Provider joins/exits a pool, the pool mints/burns pool tokens as needed. This is gas intensive and requires users to execute a join or exit.
78
- In pools that use Phantom BPT, however, all pool tokens are minted at the time of pool creation and are held by the pool itself.
79
- With Phantom BPT, Liquidity Providers use a swap (or more likely a batchSwap) to trade to or from a pool token to join or exit, respectively.
80
- */
81
- class LinearPool extends balancer_v2_pool_1.BasePool {
82
- constructor(vaultAddress, vaultInterface) {
83
- super();
84
- // This is the maximum token amount the Vault can hold. In regular operation, the total BPT supply remains constant
85
- // and equal to _INITIAL_BPT_SUPPLY, but most of it remains in the Pool, waiting to be exchanged for tokens. The
86
- // actual amount of BPT in circulation is the total supply minus the amount held by the Pool, and is known as the
87
- // 'virtual supply'.
88
- this.MAX_TOKEN_BALANCE = bignumber_1.BigNumber.from('2')
89
- .pow('112')
90
- .sub('1');
91
- this.vaultAddress = vaultAddress;
92
- this.vaultInterface = vaultInterface;
93
- this.poolInterface = new abi_1.Interface(linearPoolAbi_json_1.default);
94
- }
95
- /*
96
- scaling factors should include rate:
97
- The wrapped token's scaling factor is not constant, but increases over time as the wrapped token increases in value.
98
- i.e.
99
- scalingFactors: pool.tokens.map(({ decimals, priceRate }) =>
100
- MathSol.mulDownFixed(getTokenScalingFactor(decimals), priceRate)
101
- )
102
- */
103
- onSell(amounts, poolPairData) {
104
- return this._swapGivenIn(
105
- amounts,
106
- poolPairData.tokens,
107
- poolPairData.balances,
108
- poolPairData.indexIn,
109
- poolPairData.indexOut,
110
- poolPairData.bptIndex,
111
- poolPairData.wrappedIndex,
112
- poolPairData.mainIndex,
113
- poolPairData.scalingFactors,
114
- poolPairData.swapFee,
115
- poolPairData.lowerTarget,
116
- poolPairData.upperTarget,
117
- );
118
- }
119
- _swapGivenIn(
120
- tokenAmountsIn,
121
- tokens,
122
- balances,
123
- indexIn,
124
- indexOut,
125
- bptIndex,
126
- wrappedIndex,
127
- mainIndex,
128
- scalingFactors,
129
- swapFeePercentage,
130
- lowerTarget,
131
- upperTarget,
132
- ) {
133
- /*
134
- Linear pools allow trading between:
135
- wrappedToken <> mainToken
136
- wrappedToken <> BPT
137
- mainToken <> BPT
138
- */
139
- let pairType;
140
- if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[bptIndex])) {
141
- if ((0, utils_1.isSameAddress)(tokens[indexOut], tokens[wrappedIndex]))
142
- pairType = PairTypes.BptToWrappedToken;
143
- else pairType = PairTypes.BptToMainToken;
144
- } else if ((0, utils_1.isSameAddress)(tokens[indexOut], tokens[bptIndex])) {
145
- if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[wrappedIndex]))
146
- pairType = PairTypes.WrappedTokenToBpt;
147
- else pairType = PairTypes.MainTokenToBpt;
148
- } else {
149
- if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[wrappedIndex]))
150
- pairType = PairTypes.WrappedTokenToMainToken;
151
- else pairType = PairTypes.MainTokenToWrappedToken;
152
- }
153
- const balancesUpscaled = this._upscaleArray(balances, scalingFactors);
154
- const tokenAmountsInScaled = tokenAmountsIn.map(a =>
155
- this._upscale(a, scalingFactors[indexIn]),
156
- );
157
- // VirtualBPTSupply must be used for the maths
158
- const virtualBptSupply = this.MAX_TOKEN_BALANCE.sub(
159
- balances[bptIndex],
160
- ).toBigInt();
161
- const amountsOut = this._onSwapGivenIn(
162
- tokenAmountsInScaled,
163
- balancesUpscaled[mainIndex],
164
- balancesUpscaled[wrappedIndex],
165
- swapFeePercentage,
166
- lowerTarget,
167
- upperTarget,
168
- virtualBptSupply,
169
- pairType,
170
- );
171
- // amountOut tokens are exiting the Pool, so we round down.
172
- return amountsOut.map(a =>
173
- this._downscaleDown(a, scalingFactors[indexOut]),
174
- );
175
- }
176
- /*
177
- Called when a swap with the Pool occurs, where the amount of tokens entering the Pool is known.
178
- All amounts are upscaled.
179
- Swap fee is NOT already deducted.
180
- The return value is also considered upscaled, and should be downscaled (rounding down)
181
- */
182
- _onSwapGivenIn(
183
- tokenAmountsIn,
184
- mainBalance,
185
- wrappedBalance,
186
- fee,
187
- lowerTarget,
188
- upperTarget,
189
- virtualBptSupply,
190
- pairType,
191
- ) {
192
- const amountsOut = [];
193
- switch (pairType) {
194
- case PairTypes.BptToMainToken:
195
- tokenAmountsIn.forEach(amountIn => {
196
- let amt;
197
- try {
198
- amt = LinearMath._calcMainOutPerBptIn(
199
- amountIn,
200
- mainBalance,
201
- wrappedBalance,
202
- virtualBptSupply,
203
- {
204
- fee: fee,
205
- lowerTarget: lowerTarget,
206
- upperTarget: upperTarget,
207
- },
208
- );
209
- } catch (err) {
210
- amt = 0n;
211
- }
212
- amountsOut.push(amt);
213
- });
214
- break;
215
- case PairTypes.MainTokenToBpt:
216
- tokenAmountsIn.forEach(amountIn => {
217
- let amt;
218
- try {
219
- amt = LinearMath._calcBptOutPerMainIn(
220
- amountIn,
221
- mainBalance,
222
- wrappedBalance,
223
- virtualBptSupply,
224
- {
225
- fee: fee,
226
- lowerTarget: lowerTarget,
227
- upperTarget: upperTarget,
228
- },
229
- );
230
- } catch (err) {
231
- amt = 0n;
232
- }
233
- amountsOut.push(amt);
234
- });
235
- break;
236
- case PairTypes.MainTokenToWrappedToken:
237
- tokenAmountsIn.forEach(amountIn => {
238
- let amt;
239
- try {
240
- amt = LinearMath._calcWrappedOutPerMainIn(amountIn, mainBalance, {
241
- fee: fee,
242
- lowerTarget: lowerTarget,
243
- upperTarget: upperTarget,
244
- });
245
- } catch (err) {
246
- amt = 0n;
247
- }
248
- amountsOut.push(amt);
249
- });
250
- break;
251
- case PairTypes.WrappedTokenToMainToken:
252
- tokenAmountsIn.forEach(amountIn => {
253
- let amt;
254
- try {
255
- amt = LinearMath._calcMainOutPerWrappedIn(amountIn, mainBalance, {
256
- fee: fee,
257
- lowerTarget: lowerTarget,
258
- upperTarget: upperTarget,
259
- });
260
- } catch (err) {
261
- amt = 0n;
262
- }
263
- amountsOut.push(amt);
264
- });
265
- break;
266
- case PairTypes.BptToWrappedToken:
267
- tokenAmountsIn.forEach(amountIn => {
268
- let amt;
269
- try {
270
- amt = LinearMath._calcWrappedOutPerBptIn(
271
- amountIn,
272
- mainBalance,
273
- wrappedBalance,
274
- virtualBptSupply,
275
- {
276
- fee: fee,
277
- lowerTarget: lowerTarget,
278
- upperTarget: upperTarget,
279
- },
280
- );
281
- } catch (err) {
282
- amt = 0n;
283
- }
284
- amountsOut.push(amt);
285
- });
286
- break;
287
- case PairTypes.WrappedTokenToBpt:
288
- tokenAmountsIn.forEach(amountIn => {
289
- let amt;
290
- try {
291
- amt = LinearMath._calcBptOutPerWrappedIn(
292
- amountIn,
293
- mainBalance,
294
- wrappedBalance,
295
- virtualBptSupply,
296
- {
297
- fee: fee,
298
- lowerTarget: lowerTarget,
299
- upperTarget: upperTarget,
300
- },
301
- );
302
- } catch (err) {
303
- amt = 0n;
304
- }
305
- amountsOut.push(amt);
306
- });
307
- break;
308
- default:
309
- amountsOut.push(0n);
310
- }
311
- return amountsOut;
312
- }
313
- /*
314
- Helper function to parse pool data into params for onSell function.
315
- */
316
- parsePoolPairData(pool, poolState, tokenIn, tokenOut) {
317
- let indexIn = 0,
318
- indexOut = 0,
319
- bptIndex = 0;
320
- const balances = [];
321
- const scalingFactors = [];
322
- const tokens = poolState.orderedTokens.map((tokenAddress, i) => {
323
- const t = pool.tokensMap[tokenAddress.toLowerCase()];
324
- if (t.address.toLowerCase() === tokenIn.toLowerCase()) indexIn = i;
325
- if (t.address.toLowerCase() === tokenOut.toLowerCase()) indexOut = i;
326
- if (t.address.toLowerCase() === pool.address.toLowerCase()) bptIndex = i;
327
- balances.push(poolState.tokens[t.address.toLowerCase()].balance);
328
- scalingFactors.push(
329
- poolState.tokens[t.address.toLowerCase()].scalingFactor || 0n,
330
- );
331
- return t.address;
332
- });
333
- const poolPairData = {
334
- tokens,
335
- balances,
336
- indexIn,
337
- indexOut,
338
- scalingFactors,
339
- bptIndex,
340
- swapFee: poolState.swapFee,
341
- amp: poolState.amp || 0n,
342
- wrappedIndex: poolState.wrappedIndex || 0,
343
- mainIndex: poolState.mainIndex || 0,
344
- lowerTarget: poolState.lowerTarget || 0n,
345
- upperTarget: poolState.upperTarget || 0n,
346
- };
347
- return poolPairData;
348
- }
349
- /*
350
- Helper function to construct onchain multicall data for Linear Pool.
351
- */
352
- getOnChainCalls(pool) {
353
- const poolCallData = [
354
- {
355
- target: this.vaultAddress,
356
- callData: this.vaultInterface.encodeFunctionData('getPoolTokens', [
357
- pool.id,
358
- ]),
359
- },
360
- {
361
- target: pool.address,
362
- callData: this.poolInterface.encodeFunctionData('getSwapFeePercentage'),
363
- },
364
- ];
365
- poolCallData.push({
366
- target: pool.address,
367
- callData: this.poolInterface.encodeFunctionData('getScalingFactors'),
368
- });
369
- // returns lowerTarget, upperTarget
370
- poolCallData.push({
371
- target: pool.address,
372
- callData: this.poolInterface.encodeFunctionData('getTargets'),
373
- });
374
- return poolCallData;
375
- }
376
- /*
377
- Helper function to decodes multicall data for a Linear Pool.
378
- data must contain returnData
379
- startIndex is where to start in returnData. Allows this decode function to be called along with other pool types.
380
- */
381
- decodeOnChainCalls(pool, data, startIndex) {
382
- const pools = {};
383
- const poolTokens = (0, utils_1.decodeThrowError)(
384
- this.vaultInterface,
385
- 'getPoolTokens',
386
- data[startIndex++],
387
- pool.address,
388
- );
389
- const swapFee = (0, utils_1.decodeThrowError)(
390
- this.poolInterface,
391
- 'getSwapFeePercentage',
392
- data[startIndex++],
393
- pool.address,
394
- )[0];
395
- const scalingFactors = (0, utils_1.decodeThrowError)(
396
- this.poolInterface,
397
- 'getScalingFactors',
398
- data[startIndex++],
399
- pool.address,
400
- )[0];
401
- const [lowerTarget, upperTarget] = (0, utils_1.decodeThrowError)(
402
- this.poolInterface,
403
- 'getTargets',
404
- data[startIndex++],
405
- pool.address,
406
- );
407
- const bptIndex = pool.tokens.findIndex(
408
- t => t.address.toLowerCase() === pool.address.toLowerCase(),
409
- );
410
- const tokens = poolTokens.tokens.map((address, idx) => ({
411
- address: address.toLowerCase(),
412
- balance: BigInt(poolTokens.balances[idx].toString()),
413
- scalingFactor: BigInt(scalingFactors[idx].toString()),
414
- }));
415
- const poolState = {
416
- swapFee: BigInt(swapFee.toString()),
417
- mainIndex: Number(pool.mainIndex),
418
- wrappedIndex: Number(pool.wrappedIndex),
419
- bptIndex,
420
- lowerTarget: BigInt(lowerTarget.toString()),
421
- upperTarget: BigInt(upperTarget.toString()),
422
- tokens: (0, lodash_1.keyBy)(tokens, 'address'),
423
- orderedTokens: poolTokens.tokens,
424
- };
425
- pools[pool.address] = poolState;
426
- return [pools, startIndex];
427
- }
428
- /*
429
- Swapping to BPT allows for a very large amount as pre-minted.
430
- Swapping to main token - you can use 99% of the balance of the main token (Dani)
431
- */
432
- getSwapMaxAmount(poolPairData, side) {
433
- return (
434
- (this._upscale(
435
- poolPairData.balances[poolPairData.indexOut],
436
- poolPairData.scalingFactors[poolPairData.indexOut],
437
- ) *
438
- 99n) /
439
- 100n
440
- );
441
- }
442
- }
443
- exports.LinearPool = LinearPool;
444
- //# sourceMappingURL=LinearPool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LinearPool.js","sourceRoot":"","sources":["../../../src/dex/balancer-v2/LinearPool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA+C;AAC/C,wDAAqD;AACrD,mCAA0D;AAC1D,yDAA2C;AAC3C,yDAA8C;AAE9C,kGAAqE;AAErE,mCAA+B;AAE/B,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,6DAAc,CAAA;IACd,6DAAc,CAAA;IACd,+EAAuB,CAAA;IACvB,+EAAuB,CAAA;IACvB,mEAAiB,CAAA;IACjB,mEAAiB,CAAA;AACnB,CAAC,EAPW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAOpB;AAiBD;;;;;;;EAOE;AACF,MAAa,UAAW,SAAQ,2BAAQ;IAUtC,YAAY,YAAoB,EAAE,cAAyB;QACzD,KAAK,EAAE,CAAC;QAVV,mHAAmH;QACnH,gHAAgH;QAChH,iHAAiH;QACjH,oBAAoB;QACpB,sBAAiB,GAAG,qBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAO1D,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,eAAS,CAAC,4BAAa,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;QAOI;IACJ,MAAM,CAAC,OAAiB,EAAE,YAAgC;QACxD,OAAO,IAAI,CAAC,YAAY,CACtB,OAAO,EACP,YAAY,CAAC,MAAM,EACnB,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,QAAQ,EACrB,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,SAAS,EACtB,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,OAAO,EACpB,YAAY,CAAC,WAAW,EACxB,YAAY,CAAC,WAAW,CACzB,CAAC;IACJ,CAAC;IAED,YAAY,CACV,cAAwB,EACxB,MAAgB,EAChB,QAAkB,EAClB,OAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,YAAoB,EACpB,SAAiB,EACjB,cAAwB,EACxB,iBAAyB,EACzB,WAAmB,EACnB,WAAmB;QAEnB;;;;;cAKM;QACN,IAAI,QAAmB,CAAC;QACxB,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;YACpD,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBACvD,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC;;gBACpC,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC;SAC1C;aAAM,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC5D,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBACtD,QAAQ,GAAG,SAAS,CAAC,iBAAiB,CAAC;;gBACpC,QAAQ,GAAG,SAAS,CAAC,cAAc,CAAC;SAC1C;aAAM;YACL,IAAI,IAAA,qBAAa,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;gBACtD,QAAQ,GAAG,SAAS,CAAC,uBAAuB,CAAC;;gBAC1C,QAAQ,GAAG,SAAS,CAAC,uBAAuB,CAAC;SACnD;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtE,MAAM,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAClD,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,CAC1C,CAAC;QAEF,8CAA8C;QAC9C,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CACjD,QAAQ,CAAC,QAAQ,CAAC,CACnB,CAAC,QAAQ,EAAE,CAAC;QAEb,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CACpC,oBAAoB,EACpB,gBAAgB,CAAC,SAAS,CAAC,EAC3B,gBAAgB,CAAC,YAAY,CAAC,EAC9B,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,QAAQ,CACT,CAAC;QAEF,2DAA2D;QAC3D,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACxB,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CACjD,CAAC;IACJ,CAAC;IAED;;;;;SAKK;IACL,cAAc,CACZ,cAAwB,EACxB,WAAmB,EACnB,cAAsB,EACtB,GAAW,EACX,WAAmB,EACnB,WAAmB,EACnB,gBAAwB,EACxB,QAAmB;QAEnB,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,QAAQ,QAAQ,EAAE;YAChB,KAAK,SAAS,CAAC,cAAc;gBAC3B,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,GAAW,CAAC;oBAChB,IAAI;wBACF,GAAG,GAAG,UAAU,CAAC,oBAAoB,CACnC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB;4BACE,GAAG,EAAE,GAAG;4BACR,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,WAAW;yBACzB,CACF,CAAC;qBACH;oBAAC,OAAO,GAAG,EAAE;wBACZ,GAAG,GAAG,EAAE,CAAC;qBACV;oBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,SAAS,CAAC,cAAc;gBAC3B,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,GAAW,CAAC;oBAChB,IAAI;wBACF,GAAG,GAAG,UAAU,CAAC,oBAAoB,CACnC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB;4BACE,GAAG,EAAE,GAAG;4BACR,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,WAAW;yBACzB,CACF,CAAC;qBACH;oBAAC,OAAO,GAAG,EAAE;wBACZ,GAAG,GAAG,EAAE,CAAC;qBACV;oBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,SAAS,CAAC,uBAAuB;gBACpC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,GAAW,CAAC;oBAChB,IAAI;wBACF,GAAG,GAAG,UAAU,CAAC,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE;4BAC/D,GAAG,EAAE,GAAG;4BACR,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,WAAW;yBACzB,CAAC,CAAC;qBACJ;oBAAC,OAAO,GAAG,EAAE;wBACZ,GAAG,GAAG,EAAE,CAAC;qBACV;oBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,SAAS,CAAC,uBAAuB;gBACpC,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,GAAW,CAAC;oBAChB,IAAI;wBACF,GAAG,GAAG,UAAU,CAAC,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE;4BAC/D,GAAG,EAAE,GAAG;4BACR,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,WAAW;yBACzB,CAAC,CAAC;qBACJ;oBAAC,OAAO,GAAG,EAAE;wBACZ,GAAG,GAAG,EAAE,CAAC;qBACV;oBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,SAAS,CAAC,iBAAiB;gBAC9B,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,GAAW,CAAC;oBAChB,IAAI;wBACF,GAAG,GAAG,UAAU,CAAC,uBAAuB,CACtC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB;4BACE,GAAG,EAAE,GAAG;4BACR,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,WAAW;yBACzB,CACF,CAAC;qBACH;oBAAC,OAAO,GAAG,EAAE;wBACZ,GAAG,GAAG,EAAE,CAAC;qBACV;oBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,SAAS,CAAC,iBAAiB;gBAC9B,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAChC,IAAI,GAAW,CAAC;oBAChB,IAAI;wBACF,GAAG,GAAG,UAAU,CAAC,uBAAuB,CACtC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB;4BACE,GAAG,EAAE,GAAG;4BACR,WAAW,EAAE,WAAW;4BACxB,WAAW,EAAE,WAAW;yBACzB,CACF,CAAC;qBACH;oBAAC,OAAO,GAAG,EAAE;wBACZ,GAAG,GAAG,EAAE,CAAC;qBACV;oBACD,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC,CAAC,CAAC;gBACH,MAAM;YACR;gBACE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACvB;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;QAEI;IACJ,iBAAiB,CACf,IAAsB,EACtB,SAAoB,EACpB,OAAe,EACf,QAAgB;QAEhB,IAAI,OAAO,GAAG,CAAC,EACb,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,CAAC,CAAC;QACf,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAa,EAAE,CAAC;QAEpC,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE;YAC7D,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO,GAAG,CAAC,CAAC;YACnE,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE;gBAAE,QAAQ,GAAG,CAAC,CAAC;YACrE,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAAE,QAAQ,GAAG,CAAC,CAAC;YAEzE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACjE,cAAc,CAAC,IAAI,CACjB,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa,IAAI,EAAE,CAC9D,CAAC;YACF,OAAO,CAAC,CAAC,OAAO,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAuB;YACvC,MAAM;YACN,QAAQ;YACR,OAAO;YACP,QAAQ;YACR,cAAc;YACd,QAAQ;YACR,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,EAAE;YACxB,YAAY,EAAE,SAAS,CAAC,YAAY,IAAI,CAAC;YACzC,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,CAAC;YACnC,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;YACxC,WAAW,EAAE,SAAS,CAAC,WAAW,IAAI,EAAE;SACzC,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;MAEE;IACF,eAAe,CAAC,IAAsB;QACpC,MAAM,YAAY,GAAe;YAC/B;gBACE,MAAM,EAAE,IAAI,CAAC,YAAY;gBACzB,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,eAAe,EAAE;oBAChE,IAAI,CAAC,EAAE;iBACR,CAAC;aACH;YACD;gBACE,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,sBAAsB,CAAC;aACxE;SACF,CAAC;QACF,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;SACrE,CAAC,CAAC;QACH,mCAAmC;QACnC,YAAY,CAAC,IAAI,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,YAAY,CAAC;SAC9D,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;QAII;IACJ,kBAAkB,CAChB,IAAsB,EACtB,IAA6C,EAC7C,UAAkB;QAElB,MAAM,KAAK,GAAG,EAAsC,CAAC;QAErD,MAAM,UAAU,GAAG,IAAA,wBAAgB,EACjC,IAAI,CAAC,cAAc,EACnB,eAAe,EACf,IAAI,CAAC,UAAU,EAAE,CAAC,EAClB,IAAI,CAAC,OAAO,CACb,CAAC;QACF,MAAM,OAAO,GAAG,IAAA,wBAAgB,EAC9B,IAAI,CAAC,aAAa,EAClB,sBAAsB,EACtB,IAAI,CAAC,UAAU,EAAE,CAAC,EAClB,IAAI,CAAC,OAAO,CACb,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,cAAc,GAAG,IAAA,wBAAgB,EACrC,IAAI,CAAC,aAAa,EAClB,mBAAmB,EACnB,IAAI,CAAC,UAAU,EAAE,CAAC,EAClB,IAAI,CAAC,OAAO,CACb,CAAC,CAAC,CAAC,CAAC;QACL,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,IAAA,wBAAgB,EACjD,IAAI,CAAC,aAAa,EAClB,YAAY,EACZ,IAAI,CAAC,UAAU,EAAE,CAAC,EAClB,IAAI,CAAC,OAAO,CACb,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CACpC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAC5D,CAAC;QAEF,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAe,EAAE,GAAW,EAAE,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE;YAC9B,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;YACpD,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;SACtD,CAAC,CAAC,CAAC;QAEJ,MAAM,SAAS,GAAc;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;YACjC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YACvC,QAAQ;YACR,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC3C,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC3C,MAAM,EAAE,IAAA,cAAK,EAAC,MAAM,EAAE,SAAS,CAAC;YAChC,aAAa,EAAE,UAAU,CAAC,MAAM;SACjC,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;QAEhC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC7B,CAAC;IAED;;;MAGE;IACF,gBAAgB,CAAC,YAAgC,EAAE,IAAc;QAC/D,OAAO,CACL,CAAC,IAAI,CAAC,QAAQ,CACZ,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAC5C,YAAY,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CACnD;YACC,GAAG,CAAC;YACN,IAAI,CACL,CAAC;IACJ,CAAC;CACF;AAxYD,gCAwYC"}
@@ -1,90 +0,0 @@
1
- import { Interface } from '@ethersproject/abi';
2
- import { BigNumber } from '@ethersproject/bignumber';
3
- import { BasePool } from './balancer-v2-pool';
4
- import { SubgraphPoolBase, PoolState, callData } from './types';
5
- import { SwapSide } from '../../constants';
6
- declare enum PairTypes {
7
- BptToToken = 0,
8
- TokenToBpt = 1,
9
- TokenToToken = 2,
10
- }
11
- declare type PhantomStablePoolPairData = {
12
- tokens: string[];
13
- balances: bigint[];
14
- indexIn: number;
15
- indexOut: number;
16
- scalingFactors: bigint[];
17
- bptIndex: number;
18
- swapFee: bigint;
19
- amp: bigint;
20
- actualSupply: bigint | undefined;
21
- };
22
- export declare class PhantomStablePool extends BasePool {
23
- private isComposable;
24
- MAX_TOKEN_BALANCE: BigNumber;
25
- vaultAddress: string;
26
- vaultInterface: Interface;
27
- poolInterface: Interface;
28
- constructor(
29
- vaultAddress: string,
30
- vaultInterface: Interface,
31
- isComposable?: boolean,
32
- );
33
- onSell(amounts: bigint[], poolPairData: PhantomStablePoolPairData): bigint[];
34
- removeBPT(
35
- balances: bigint[],
36
- tokenIndexIn: number,
37
- tokenIndexOut: number,
38
- bptIndex: number,
39
- ): {
40
- balances: bigint[];
41
- indexIn: number;
42
- indexOut: number;
43
- };
44
- _swapGivenIn(
45
- tokenAmountsIn: bigint[],
46
- tokens: string[],
47
- balances: bigint[],
48
- indexIn: number,
49
- indexOut: number,
50
- bptIndex: number,
51
- scalingFactors: bigint[],
52
- swapFeePercentage: bigint,
53
- amplificationParameter: bigint,
54
- actualSupply: bigint | undefined,
55
- ): bigint[];
56
- _onSwapGivenIn(
57
- tokenAmountsIn: bigint[],
58
- balances: bigint[],
59
- indexIn: number,
60
- indexOut: number,
61
- _amplificationParameter: bigint,
62
- virtualBptSupply: bigint,
63
- pairType: PairTypes,
64
- ): bigint[];
65
- parsePoolPairData(
66
- pool: SubgraphPoolBase,
67
- poolState: PoolState,
68
- tokenIn: string,
69
- tokenOut: string,
70
- ): PhantomStablePoolPairData;
71
- getOnChainCalls(pool: SubgraphPoolBase): callData[];
72
- decodeOnChainCalls(
73
- pool: SubgraphPoolBase,
74
- data: {
75
- success: boolean;
76
- returnData: any;
77
- }[],
78
- startIndex: number,
79
- ): [
80
- {
81
- [address: string]: PoolState;
82
- },
83
- number,
84
- ];
85
- getSwapMaxAmount(
86
- poolPairData: PhantomStablePoolPairData,
87
- side: SwapSide,
88
- ): bigint;
89
- }
90
- export {};