@gearbox-protocol/sdk 3.0.0-next.30 → 3.0.0-next.300

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 (730) hide show
  1. package/contracts/SignUpRepository.sol +85 -0
  2. package/contracts/index.sol +48 -5
  3. package/lib/apy/index.d.ts +10 -8
  4. package/lib/apy/index.js +100 -23
  5. package/lib/contracts/contractsRegister.d.ts +17 -9
  6. package/lib/contracts/contractsRegister.js +56 -3
  7. package/lib/core/assets.d.ts +16 -10
  8. package/lib/core/assets.js +16 -3
  9. package/lib/core/bot.d.ts +12 -0
  10. package/lib/core/bot.js +23 -0
  11. package/lib/core/creditAccount.d.ts +112 -54
  12. package/lib/core/creditAccount.js +250 -114
  13. package/lib/core/creditAccount.spec.js +1078 -131
  14. package/lib/core/creditManager.d.ts +43 -33
  15. package/lib/core/creditManager.js +192 -90
  16. package/lib/core/creditSession.d.ts +35 -17
  17. package/lib/core/creditSession.js +32 -19
  18. package/lib/core/endpoint.d.ts +23 -0
  19. package/lib/core/endpoint.js +90 -0
  20. package/lib/core/eventOrTx.d.ts +5 -5
  21. package/lib/core/gauge.d.ts +34 -5
  22. package/lib/core/gauge.js +43 -18
  23. package/lib/core/gaugeMath.d.ts +41 -0
  24. package/lib/core/gaugeMath.js +105 -0
  25. package/lib/core/gaugeMath.spec.js +388 -0
  26. package/lib/core/pool.d.ts +60 -29
  27. package/lib/core/pool.js +113 -79
  28. package/lib/core/priceOracle.d.ts +1 -1
  29. package/lib/core/protocols.d.ts +9 -0
  30. package/lib/core/protocols.js +181 -0
  31. package/lib/core/rewardClaimer/aura.d.ts +1 -0
  32. package/lib/core/rewardClaimer/aura.js +23 -0
  33. package/lib/core/rewardClaimer/auraAbi.d.ts +15 -0
  34. package/lib/core/rewardClaimer/auraAbi.js +24 -0
  35. package/lib/core/rewardClaimer/convex.d.ts +1 -0
  36. package/lib/core/rewardClaimer/convex.js +18 -0
  37. package/lib/core/rewardClaimer/index.d.ts +25 -0
  38. package/lib/core/rewardClaimer/index.js +34 -0
  39. package/lib/core/rewardClaimer/rewardConvex.d.ts +42 -0
  40. package/lib/core/rewardClaimer/rewardConvex.js +250 -0
  41. package/lib/core/{rewardConvex.spec.js → rewardClaimer/rewardConvex.spec.js} +38 -70
  42. package/lib/core/rewardClaimer/stakingRewards.d.ts +34 -0
  43. package/lib/core/rewardClaimer/stakingRewards.js +133 -0
  44. package/lib/core/strategy.d.ts +13 -29
  45. package/lib/core/strategy.js +20 -44
  46. package/lib/core/trade.d.ts +13 -13
  47. package/lib/core/trade.js +36 -28
  48. package/lib/core/transactions.d.ts +214 -73
  49. package/lib/core/transactions.js +298 -119
  50. package/lib/gearboxRewards/api.d.ts +104 -0
  51. package/lib/gearboxRewards/api.js +359 -0
  52. package/lib/gearboxRewards/apy.d.ts +53 -0
  53. package/lib/gearboxRewards/apy.js +116 -0
  54. package/lib/gearboxRewards/extraAPY.d.ts +32 -0
  55. package/lib/gearboxRewards/extraAPY.js +71 -0
  56. package/lib/gearboxRewards/index.d.ts +3 -0
  57. package/lib/gearboxRewards/index.js +19 -0
  58. package/lib/gearboxRewards/merklAPI.d.ts +138 -0
  59. package/lib/gearboxRewards/merklAPI.js +10 -0
  60. package/lib/index.d.ts +9 -7
  61. package/lib/index.js +9 -9
  62. package/lib/parsers/ERC20Parser.d.ts +2 -1
  63. package/lib/parsers/ERC20Parser.js +11 -11
  64. package/lib/parsers/aaveV2LendingPoolAdapterParser.d.ts +8 -0
  65. package/lib/parsers/aaveV2LendingPoolAdapterParser.js +21 -0
  66. package/lib/parsers/aaveV2WrappedATokenAdapterParser.d.ts +8 -0
  67. package/lib/parsers/aaveV2WrappedATokenAdapterParser.js +21 -0
  68. package/lib/parsers/abstractParser.d.ts +22 -16
  69. package/lib/parsers/abstractParser.js +31 -14
  70. package/lib/parsers/balancerV2VaultParser.d.ts +8 -0
  71. package/lib/parsers/balancerV2VaultParser.js +32 -0
  72. package/lib/parsers/compoundV2CTokenAdapterParser.d.ts +8 -0
  73. package/lib/parsers/compoundV2CTokenAdapterParser.js +21 -0
  74. package/lib/parsers/convexBaseRewardPoolAdapterParser.d.ts +3 -2
  75. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +21 -17
  76. package/lib/parsers/convexBoosterAdapterParser.d.ts +3 -3
  77. package/lib/parsers/convexBoosterAdapterParser.js +14 -14
  78. package/lib/parsers/convextRewardPoolParser.d.ts +2 -1
  79. package/lib/parsers/convextRewardPoolParser.js +5 -5
  80. package/lib/parsers/creditFacadeParser.d.ts +3 -2
  81. package/lib/parsers/creditFacadeParser.js +44 -18
  82. package/lib/parsers/creditManagerParser.d.ts +2 -1
  83. package/lib/parsers/creditManagerParser.js +5 -8
  84. package/lib/parsers/curveAdapterParser.d.ts +3 -2
  85. package/lib/parsers/curveAdapterParser.js +39 -39
  86. package/lib/parsers/erc626AdapterParser.d.ts +8 -0
  87. package/lib/parsers/erc626AdapterParser.js +21 -0
  88. package/lib/parsers/iParser.d.ts +4 -7
  89. package/lib/parsers/lidoAdapterParser.d.ts +2 -1
  90. package/lib/parsers/lidoAdapterParser.js +9 -8
  91. package/lib/parsers/lidoSTETHParser.d.ts +2 -1
  92. package/lib/parsers/lidoSTETHParser.js +11 -11
  93. package/lib/parsers/priceOracleParser.d.ts +2 -1
  94. package/lib/parsers/priceOracleParser.js +6 -6
  95. package/lib/parsers/stakingRewardsAdapterParser.d.ts +10 -0
  96. package/lib/parsers/stakingRewardsAdapterParser.js +35 -0
  97. package/lib/parsers/txParser.d.ts +21 -24
  98. package/lib/parsers/txParser.js +47 -14
  99. package/lib/parsers/uniV2AdapterParser.d.ts +2 -2
  100. package/lib/parsers/uniV2AdapterParser.js +12 -14
  101. package/lib/parsers/uniV2AdapterParser.spec.js +43 -30
  102. package/lib/parsers/uniV3AdapterParser.d.ts +4 -3
  103. package/lib/parsers/uniV3AdapterParser.js +26 -18
  104. package/lib/parsers/uniV3AdapterParser.spec.js +53 -76
  105. package/lib/parsers/wstETHAdapterParser.d.ts +2 -1
  106. package/lib/parsers/wstETHAdapterParser.js +20 -20
  107. package/lib/parsers/wstETHAdapterParser.spec.js +23 -7
  108. package/lib/parsers/yearnAdapterParser.spec.js +39 -21
  109. package/lib/parsers/yearnV2AdapterParser.d.ts +2 -1
  110. package/lib/parsers/yearnV2AdapterParser.js +23 -13
  111. package/lib/pathfinder/balancerVault.d.ts +33 -0
  112. package/lib/pathfinder/balancerVault.js +59 -0
  113. package/lib/pathfinder/core.d.ts +20 -10
  114. package/lib/pathfinder/index.d.ts +4 -0
  115. package/lib/pathfinder/index.js +20 -0
  116. package/lib/pathfinder/pathOptions.d.ts +6 -5
  117. package/lib/pathfinder/pathOptions.js +34 -18
  118. package/lib/pathfinder/pathOptions.spec.js +26 -24
  119. package/lib/pathfinder/pathfinder.d.ts +61 -22
  120. package/lib/pathfinder/pathfinder.js +166 -81
  121. package/lib/pathfinder/pathfinder.spec.js +24 -11
  122. package/lib/pathfinder/utils.d.ts +34 -0
  123. package/lib/pathfinder/utils.js +186 -0
  124. package/lib/payload/bot.d.ts +13 -0
  125. package/lib/payload/creditAccount.d.ts +41 -6
  126. package/lib/payload/creditManager.d.ts +58 -16
  127. package/lib/payload/creditSession.d.ts +31 -16
  128. package/lib/payload/gauge.d.ts +40 -5
  129. package/lib/payload/graphPayload.d.ts +3 -2
  130. package/lib/payload/pool.d.ts +110 -34
  131. package/lib/payload/token.d.ts +5 -2
  132. package/lib/redstone/api.d.ts +42 -0
  133. package/lib/redstone/api.js +384 -0
  134. package/lib/redstone/index.d.ts +1 -0
  135. package/lib/redstone/index.js +17 -0
  136. package/lib/tokens/tokenData.d.ts +7 -5
  137. package/lib/tokens/tokenData.js +25 -6
  138. package/lib/types/CompositePriceFeed.d.ts +182 -0
  139. package/lib/types/CompositePriceFeed.js +123 -0
  140. package/lib/types/IAaveV2_LendingPoolAdapter.d.ts +151 -0
  141. package/lib/types/IAaveV2_LendingPoolAdapter.js +98 -0
  142. package/lib/types/IAaveV2_WrappedATokenAdapter.d.ts +245 -0
  143. package/lib/types/IAaveV2_WrappedATokenAdapter.js +166 -0
  144. package/lib/types/IAddressProviderV3.d.ts +85 -0
  145. package/lib/types/IAddressProviderV3.js +66 -0
  146. package/lib/types/IAirdropDistributor.d.ts +112 -0
  147. package/lib/types/{factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js → IAirdropDistributor.js} +56 -112
  148. package/lib/types/IBalancerV2VaultAdapter.d.ts +507 -0
  149. package/lib/types/IBalancerV2VaultAdapter.js +322 -0
  150. package/lib/types/IBaseRewardPool.d.ts +391 -378
  151. package/lib/types/IBaseRewardPool.js +249 -0
  152. package/lib/types/ICompoundV2_CTokenAdapter.d.ts +189 -0
  153. package/lib/types/ICompoundV2_CTokenAdapter.js +130 -0
  154. package/lib/types/IConvexToken.d.ts +201 -190
  155. package/lib/types/IConvexToken.js +143 -0
  156. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +299 -300
  157. package/lib/types/IConvexV1BaseRewardPoolAdapter.js +202 -0
  158. package/lib/types/IConvexV1BoosterAdapter.d.ts +182 -0
  159. package/lib/types/IConvexV1BoosterAdapter.js +125 -0
  160. package/lib/types/ICreditConfiguratorV3.d.ts +598 -0
  161. package/lib/types/{factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js → ICreditConfiguratorV3.js} +348 -532
  162. package/lib/types/ICreditFacadeV2Extended.d.ts +74 -0
  163. package/lib/types/ICreditFacadeV2Extended.js +63 -0
  164. package/lib/types/ICreditFacadeV3.d.ts +543 -0
  165. package/lib/types/{factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js → ICreditFacadeV3.js} +281 -590
  166. package/lib/types/ICreditFacadeV3Multicall.d.ts +197 -269
  167. package/lib/types/ICreditFacadeV3Multicall.js +142 -0
  168. package/lib/types/ICreditManagerV2.d.ts +700 -0
  169. package/lib/types/ICreditManagerV2.js +443 -0
  170. package/lib/types/ICreditManagerV3.d.ts +1016 -0
  171. package/lib/types/ICreditManagerV3.js +672 -0
  172. package/lib/types/ICurvePool.d.ts +559 -438
  173. package/lib/types/ICurvePool.js +332 -0
  174. package/lib/types/ICurveV1_2AssetsAdapter.d.ts +665 -698
  175. package/lib/types/ICurveV1_2AssetsAdapter.js +404 -0
  176. package/lib/types/ICurveV1_3AssetsAdapter.d.ts +665 -761
  177. package/lib/types/ICurveV1_3AssetsAdapter.js +404 -0
  178. package/lib/types/ICurveV1_4AssetsAdapter.d.ts +665 -779
  179. package/lib/types/ICurveV1_4AssetsAdapter.js +404 -0
  180. package/lib/types/IDataCompressorV2_1.d.ts +1165 -0
  181. package/lib/types/IDataCompressorV2_1.js +720 -0
  182. package/lib/types/IDataCompressorV3.d.ts +1573 -0
  183. package/lib/types/IDataCompressorV3.js +959 -0
  184. package/lib/types/IDegenDistributor.d.ts +77 -0
  185. package/lib/types/IDegenDistributor.js +72 -0
  186. package/lib/types/IERC20.d.ts +141 -142
  187. package/lib/types/IERC20.js +101 -0
  188. package/lib/types/IERC20Permit.d.ts +59 -74
  189. package/lib/types/IERC20Permit.js +35 -0
  190. package/lib/types/IERC20ZapperDeposits.d.ts +193 -0
  191. package/lib/types/IERC20ZapperDeposits.js +101 -0
  192. package/lib/types/IERC4626Adapter.d.ts +213 -0
  193. package/lib/types/IERC4626Adapter.js +142 -0
  194. package/lib/types/IETHZapperDeposits.d.ts +33 -0
  195. package/lib/types/IETHZapperDeposits.js +29 -0
  196. package/lib/types/IFarmingPool.d.ts +292 -0
  197. package/lib/types/IFarmingPool.js +231 -0
  198. package/lib/types/IGearStakingV3.d.ts +497 -0
  199. package/lib/types/IGearStakingV3.js +368 -0
  200. package/lib/types/IInterestRateModel.d.ts +29 -50
  201. package/lib/types/IInterestRateModel.js +23 -0
  202. package/lib/types/ILidoV1Adapter.d.ts +137 -158
  203. package/lib/types/ILidoV1Adapter.js +98 -0
  204. package/lib/types/IMulticall3.d.ts +332 -0
  205. package/lib/types/IMulticall3.js +244 -0
  206. package/lib/types/IOffchainOracle.d.ts +41 -58
  207. package/lib/types/IOffchainOracle.js +31 -0
  208. package/lib/types/IPToken.d.ts +21 -0
  209. package/lib/types/IPToken.js +22 -0
  210. package/lib/types/IPartialLiquidationBotV3.d.ts +210 -0
  211. package/lib/types/IPartialLiquidationBotV3.js +143 -0
  212. package/lib/types/IPendleMarket.d.ts +19 -0
  213. package/lib/types/IPendleMarket.js +19 -0
  214. package/lib/types/IPendleRouter.d.ts +536 -0
  215. package/lib/types/IPendleRouter.js +370 -0
  216. package/lib/types/IPendleRouterAdapter.d.ts +831 -0
  217. package/lib/types/IPendleRouterAdapter.js +572 -0
  218. package/lib/types/IPendleRouterAdapterEvents.d.ts +26 -0
  219. package/lib/types/IPendleRouterAdapterEvents.js +39 -0
  220. package/lib/types/IPendleRouterAdapterExceptions.d.ts +9 -0
  221. package/lib/types/IPendleRouterAdapterExceptions.js +10 -0
  222. package/lib/types/IPoolV3.d.ts +1061 -0
  223. package/lib/types/IPoolV3.js +806 -0
  224. package/lib/types/IPriceFeed.d.ts +77 -0
  225. package/lib/types/IPriceFeed.js +56 -0
  226. package/lib/types/IPriceOracleBase.d.ts +97 -88
  227. package/lib/types/IPriceOracleBase.js +58 -0
  228. package/lib/types/IPriceOracleV3.d.ts +319 -0
  229. package/lib/types/IPriceOracleV3.js +210 -0
  230. package/lib/types/IRouterComponent.d.ts +31 -0
  231. package/lib/types/IRouterComponent.js +29 -0
  232. package/lib/types/IRouterStatic.d.ts +128 -0
  233. package/lib/types/IRouterStatic.js +68 -0
  234. package/lib/types/IRouterV3.d.ts +505 -0
  235. package/lib/types/IRouterV3.js +328 -0
  236. package/lib/types/IStakingRewardsAdapter.d.ts +197 -0
  237. package/lib/types/IStakingRewardsAdapter.js +139 -0
  238. package/lib/types/ISwapper.d.ts +100 -0
  239. package/lib/types/ISwapper.js +75 -0
  240. package/lib/types/IUniswapV2Adapter.d.ts +214 -0
  241. package/lib/types/IUniswapV2Adapter.js +139 -0
  242. package/lib/types/IUniswapV3Adapter.d.ts +391 -0
  243. package/lib/types/IUniswapV3Adapter.js +260 -0
  244. package/lib/types/IUpdatablePriceFeed.d.ts +97 -0
  245. package/lib/types/IUpdatablePriceFeed.js +70 -0
  246. package/lib/types/IYToken.d.ts +21 -0
  247. package/lib/types/IYToken.js +22 -0
  248. package/lib/types/IYearnV2Adapter.d.ts +223 -256
  249. package/lib/types/IYearnV2Adapter.js +146 -0
  250. package/lib/types/IZapper.d.ts +159 -130
  251. package/lib/types/IZapper.js +101 -0
  252. package/lib/types/IstETH.d.ts +257 -0
  253. package/lib/types/IstETH.js +175 -0
  254. package/lib/types/IwstETH.d.ts +257 -0
  255. package/lib/types/IwstETH.js +181 -0
  256. package/lib/types/IwstETHV1Adapter.d.ts +153 -186
  257. package/lib/types/IwstETHV1Adapter.js +106 -0
  258. package/lib/types/PendleSwapper.d.ts +182 -0
  259. package/lib/types/PendleSwapper.js +130 -0
  260. package/lib/types/PendleTWAPPTPriceFeed.d.ts +201 -0
  261. package/lib/types/PendleTWAPPTPriceFeed.js +131 -0
  262. package/lib/types/RedstonePriceFeed.d.ts +423 -0
  263. package/lib/types/RedstonePriceFeed.js +287 -0
  264. package/lib/types/RouterComponentConfigurator.d.ts +61 -0
  265. package/lib/types/RouterComponentConfigurator.js +48 -0
  266. package/lib/types/SignUpRepository.d.ts +161 -0
  267. package/lib/types/SignUpRepository.js +137 -0
  268. package/lib/types/index.d.ts +65 -221
  269. package/lib/types/index.js +67 -186
  270. package/lib/utils/calls.d.ts +31 -0
  271. package/lib/utils/calls.js +73 -0
  272. package/lib/utils/formatter.d.ts +2 -3
  273. package/lib/utils/formatter.js +3 -8
  274. package/lib/utils/math.d.ts +1 -1
  275. package/lib/utils/math.js +1 -2
  276. package/lib/utils/types.d.ts +0 -4
  277. package/package.json +30 -25
  278. package/contracts/IRouter.sol +0 -100
  279. package/lib/apy/convexAPY.d.ts +0 -48
  280. package/lib/apy/convexAPY.js +0 -187
  281. package/lib/apy/curveAPY.d.ts +0 -11
  282. package/lib/apy/curveAPY.js +0 -87
  283. package/lib/apy/lidoAPY.d.ts +0 -1
  284. package/lib/apy/lidoAPY.js +0 -22
  285. package/lib/apy/yearnAPY.d.ts +0 -3
  286. package/lib/apy/yearnAPY.js +0 -32
  287. package/lib/config.d.ts +0 -1
  288. package/lib/config.js +0 -4
  289. package/lib/core/errors.d.ts +0 -5
  290. package/lib/core/events.d.ts +0 -561
  291. package/lib/core/events.js +0 -896
  292. package/lib/core/rewardClaimer.d.ts +0 -18
  293. package/lib/core/rewardClaimer.js +0 -10
  294. package/lib/core/rewardConvex.d.ts +0 -24
  295. package/lib/core/rewardConvex.js +0 -100
  296. package/lib/core/strategy.spec.js +0 -62
  297. package/lib/parsers/addressProviderParser.d.ts +0 -6
  298. package/lib/parsers/addressProviderParser.js +0 -27
  299. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.d.ts +0 -1
  300. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +0 -24
  301. package/lib/parsers/convexBoosterAdapterParser.spec.d.ts +0 -1
  302. package/lib/parsers/convexBoosterAdapterParser.spec.js +0 -20
  303. package/lib/parsers/creditFacadeParser.spec.d.ts +0 -1
  304. package/lib/parsers/creditFacadeParser.spec.js +0 -25
  305. package/lib/parsers/curveAdapterParser.spec.d.ts +0 -1
  306. package/lib/parsers/curveAdapterParser.spec.js +0 -42
  307. package/lib/parsers/lidoAdapterParser.spec.d.ts +0 -1
  308. package/lib/parsers/lidoAdapterParser.spec.js +0 -17
  309. package/lib/parsers/poolParser.d.ts +0 -6
  310. package/lib/parsers/poolParser.js +0 -19
  311. package/lib/types/AddressProvider.d.ts +0 -382
  312. package/lib/types/AddressProvider.js +0 -2
  313. package/lib/types/Balances.sol/BalanceOps.d.ts +0 -27
  314. package/lib/types/Balances.sol/BalanceOps.js +0 -2
  315. package/lib/types/Balances.sol/index.d.ts +0 -1
  316. package/lib/types/Balances.sol/index.js +0 -2
  317. package/lib/types/Claimable.d.ts +0 -113
  318. package/lib/types/Claimable.js +0 -2
  319. package/lib/types/Errors.d.ts +0 -298
  320. package/lib/types/Errors.js +0 -2
  321. package/lib/types/IAdapter.d.ts +0 -74
  322. package/lib/types/IAdapter.js +0 -2
  323. package/lib/types/IAddressProvider.sol/IAddressProvider.d.ts +0 -137
  324. package/lib/types/IAddressProvider.sol/IAddressProvider.js +0 -2
  325. package/lib/types/IAddressProvider.sol/IAddressProviderEvents.d.ts +0 -43
  326. package/lib/types/IAddressProvider.sol/IAddressProviderEvents.js +0 -2
  327. package/lib/types/IAddressProvider.sol/index.d.ts +0 -2
  328. package/lib/types/IAddressProvider.sol/index.js +0 -2
  329. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3.d.ts +0 -97
  330. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3.js +0 -2
  331. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3Events.d.ts +0 -45
  332. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3Events.js +0 -2
  333. package/lib/types/IAddressProviderV3.sol/index.d.ts +0 -2
  334. package/lib/types/IAddressProviderV3.sol/index.js +0 -2
  335. package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.d.ts +0 -124
  336. package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.js +0 -2
  337. package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.d.ts +0 -73
  338. package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.js +0 -2
  339. package/lib/types/IAirdropDistributor.sol/index.d.ts +0 -2
  340. package/lib/types/IAirdropDistributor.sol/index.js +0 -2
  341. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts +0 -205
  342. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js +0 -2
  343. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +0 -43
  344. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js +0 -2
  345. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +0 -2
  346. package/lib/types/IConvexV1BoosterAdapter.sol/index.js +0 -2
  347. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2.d.ts +0 -641
  348. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2.js +0 -2
  349. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events.d.ts +0 -293
  350. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events.js +0 -2
  351. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions.d.ts +0 -27
  352. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions.js +0 -2
  353. package/lib/types/ICreditConfiguratorV2.sol/index.d.ts +0 -3
  354. package/lib/types/ICreditConfiguratorV2.sol/index.js +0 -2
  355. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.d.ts +0 -716
  356. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.js +0 -2
  357. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.d.ts +0 -275
  358. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.js +0 -2
  359. package/lib/types/ICreditConfiguratorV3.sol/index.d.ts +0 -2
  360. package/lib/types/ICreditConfiguratorV3.sol/index.js +0 -2
  361. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2.d.ts +0 -710
  362. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2.js +0 -2
  363. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Events.d.ts +0 -244
  364. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Events.js +0 -2
  365. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions.d.ts +0 -27
  366. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions.js +0 -2
  367. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +0 -138
  368. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.js +0 -2
  369. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2V2.d.ts +0 -66
  370. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2V2.js +0 -2
  371. package/lib/types/ICreditFacadeV2.sol/index.d.ts +0 -5
  372. package/lib/types/ICreditFacadeV2.sol/index.js +0 -2
  373. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +0 -572
  374. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.js +0 -2
  375. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +0 -168
  376. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.js +0 -2
  377. package/lib/types/ICreditFacadeV3.sol/index.d.ts +0 -2
  378. package/lib/types/ICreditFacadeV3.sol/index.js +0 -2
  379. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2.d.ts +0 -639
  380. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2.js +0 -2
  381. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Events.d.ts +0 -54
  382. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Events.js +0 -2
  383. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Exceptions.d.ts +0 -27
  384. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Exceptions.js +0 -2
  385. package/lib/types/ICreditManagerV2.sol/index.d.ts +0 -3
  386. package/lib/types/ICreditManagerV2.sol/index.js +0 -2
  387. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +0 -947
  388. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.js +0 -2
  389. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3Events.d.ts +0 -41
  390. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3Events.js +0 -2
  391. package/lib/types/ICreditManagerV3.sol/index.d.ts +0 -2
  392. package/lib/types/ICreditManagerV3.sol/index.js +0 -2
  393. package/lib/types/ICurvePool_2.sol/ICurvePool2Assets.d.ts +0 -590
  394. package/lib/types/ICurvePool_2.sol/ICurvePool2Assets.js +0 -2
  395. package/lib/types/ICurvePool_2.sol/index.d.ts +0 -1
  396. package/lib/types/ICurvePool_2.sol/index.js +0 -2
  397. package/lib/types/ICurvePool_3.sol/ICurvePool3Assets.d.ts +0 -686
  398. package/lib/types/ICurvePool_3.sol/ICurvePool3Assets.js +0 -2
  399. package/lib/types/ICurvePool_3.sol/index.d.ts +0 -1
  400. package/lib/types/ICurvePool_3.sol/index.js +0 -2
  401. package/lib/types/ICurvePool_4.sol/ICurvePool4Assets.d.ts +0 -722
  402. package/lib/types/ICurvePool_4.sol/ICurvePool4Assets.js +0 -2
  403. package/lib/types/ICurvePool_4.sol/index.d.ts +0 -1
  404. package/lib/types/ICurvePool_4.sol/index.js +0 -2
  405. package/lib/types/ICurveV1Adapter.d.ts +0 -614
  406. package/lib/types/ICurveV1Adapter.js +0 -2
  407. package/lib/types/IDaiLikePermit.d.ts +0 -59
  408. package/lib/types/IDaiLikePermit.js +0 -2
  409. package/lib/types/IDataCompressorV2_10.d.ts +0 -514
  410. package/lib/types/IDataCompressorV2_10.js +0 -2
  411. package/lib/types/IDataCompressorV3_00.d.ts +0 -629
  412. package/lib/types/IDataCompressorV3_00.js +0 -2
  413. package/lib/types/IDegenDistributor.sol/IDegenDistributor.d.ts +0 -96
  414. package/lib/types/IDegenDistributor.sol/IDegenDistributor.js +0 -2
  415. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.d.ts +0 -53
  416. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.js +0 -2
  417. package/lib/types/IDegenDistributor.sol/index.d.ts +0 -2
  418. package/lib/types/IDegenDistributor.sol/index.js +0 -2
  419. package/lib/types/IERC20Metadata.d.ts +0 -166
  420. package/lib/types/IERC20Metadata.js +0 -2
  421. package/lib/types/IERC4626.d.ts +0 -394
  422. package/lib/types/IERC4626.js +0 -2
  423. package/lib/types/IPermit2.d.ts +0 -130
  424. package/lib/types/IPermit2.js +0 -2
  425. package/lib/types/IPoolService.sol/IPoolService.d.ts +0 -392
  426. package/lib/types/IPoolService.sol/IPoolService.js +0 -2
  427. package/lib/types/IPoolService.sol/IPoolServiceEvents.d.ts +0 -162
  428. package/lib/types/IPoolService.sol/IPoolServiceEvents.js +0 -2
  429. package/lib/types/IPoolService.sol/index.d.ts +0 -2
  430. package/lib/types/IPoolService.sol/index.js +0 -2
  431. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +0 -936
  432. package/lib/types/IPoolV3.sol/IPoolV3.js +0 -2
  433. package/lib/types/IPoolV3.sol/IPoolV3Events.d.ts +0 -158
  434. package/lib/types/IPoolV3.sol/IPoolV3Events.js +0 -2
  435. package/lib/types/IPoolV3.sol/index.d.ts +0 -2
  436. package/lib/types/IPoolV3.sol/index.js +0 -2
  437. package/lib/types/IRouter.d.ts +0 -268
  438. package/lib/types/IRouter.js +0 -2
  439. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.d.ts +0 -207
  440. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.js +0 -2
  441. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents.d.ts +0 -45
  442. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents.js +0 -2
  443. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions.d.ts +0 -27
  444. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions.js +0 -2
  445. package/lib/types/IUniswapV2Adapter.sol/index.d.ts +0 -3
  446. package/lib/types/IUniswapV2Adapter.sol/index.js +0 -2
  447. package/lib/types/IUniswapV3.sol/ISwapRouter.d.ts +0 -198
  448. package/lib/types/IUniswapV3.sol/ISwapRouter.js +0 -2
  449. package/lib/types/IUniswapV3.sol/index.d.ts +0 -1
  450. package/lib/types/IUniswapV3.sol/index.js +0 -2
  451. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.d.ts +0 -409
  452. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.js +0 -2
  453. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents.d.ts +0 -47
  454. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents.js +0 -2
  455. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions.d.ts +0 -27
  456. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions.js +0 -2
  457. package/lib/types/IUniswapV3Adapter.sol/index.d.ts +0 -3
  458. package/lib/types/IUniswapV3Adapter.sol/index.js +0 -2
  459. package/lib/types/IVersion.d.ts +0 -42
  460. package/lib/types/IVersion.js +0 -2
  461. package/lib/types/IWERC20Zapper.d.ts +0 -166
  462. package/lib/types/IWERC20Zapper.js +0 -2
  463. package/lib/types/IWETH.d.ts +0 -197
  464. package/lib/types/IWETH.js +0 -2
  465. package/lib/types/IWETHGateway.d.ts +0 -90
  466. package/lib/types/IWETHGateway.js +0 -2
  467. package/lib/types/IWETHZapper.d.ts +0 -162
  468. package/lib/types/IWETHZapper.js +0 -2
  469. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.d.ts +0 -370
  470. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.js +0 -2
  471. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.d.ts +0 -133
  472. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.js +0 -2
  473. package/lib/types/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  474. package/lib/types/IWithdrawalManagerV3.sol/index.js +0 -2
  475. package/lib/types/IYVault.d.ts +0 -298
  476. package/lib/types/IYVault.js +0 -2
  477. package/lib/types/IstETH.sol/IstETH.d.ts +0 -230
  478. package/lib/types/IstETH.sol/IstETH.js +0 -2
  479. package/lib/types/IstETH.sol/IstETHGetters.d.ts +0 -214
  480. package/lib/types/IstETH.sol/IstETHGetters.js +0 -2
  481. package/lib/types/IstETH.sol/index.d.ts +0 -2
  482. package/lib/types/IstETH.sol/index.js +0 -2
  483. package/lib/types/IwstETH.sol/IwstETH.d.ts +0 -238
  484. package/lib/types/IwstETH.sol/IwstETH.js +0 -2
  485. package/lib/types/IwstETH.sol/IwstETHGetters.d.ts +0 -206
  486. package/lib/types/IwstETH.sol/IwstETHGetters.js +0 -2
  487. package/lib/types/IwstETH.sol/index.d.ts +0 -2
  488. package/lib/types/IwstETH.sol/index.js +0 -2
  489. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.d.ts +0 -70
  490. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.js +0 -2
  491. package/lib/types/IwstETHGateway.sol/index.d.ts +0 -1
  492. package/lib/types/IwstETHGateway.sol/index.js +0 -2
  493. package/lib/types/Ownable.d.ts +0 -89
  494. package/lib/types/Ownable.js +0 -2
  495. package/lib/types/SafeERC20.d.ts +0 -27
  496. package/lib/types/SafeERC20.js +0 -2
  497. package/lib/types/common.d.ts +0 -22
  498. package/lib/types/common.js +0 -2
  499. package/lib/types/factories/AddressProvider__factory.d.ts +0 -321
  500. package/lib/types/factories/AddressProvider__factory.js +0 -430
  501. package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +0 -29
  502. package/lib/types/factories/Balances.sol/BalanceOps__factory.js +0 -53
  503. package/lib/types/factories/Balances.sol/index.d.ts +0 -1
  504. package/lib/types/factories/Balances.sol/index.js +0 -8
  505. package/lib/types/factories/Claimable__factory.d.ts +0 -78
  506. package/lib/types/factories/Claimable__factory.js +0 -114
  507. package/lib/types/factories/Errors__factory.d.ts +0 -351
  508. package/lib/types/factories/Errors__factory.js +0 -471
  509. package/lib/types/factories/IAdapter__factory.d.ts +0 -58
  510. package/lib/types/factories/IAdapter__factory.js +0 -84
  511. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.d.ts +0 -23
  512. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.js +0 -38
  513. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.d.ts +0 -133
  514. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.js +0 -181
  515. package/lib/types/factories/IAddressProvider.sol/index.d.ts +0 -2
  516. package/lib/types/factories/IAddressProvider.sol/index.js +0 -10
  517. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.d.ts +0 -28
  518. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.js +0 -44
  519. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.d.ts +0 -92
  520. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.js +0 -128
  521. package/lib/types/factories/IAddressProviderV3.sol/index.d.ts +0 -2
  522. package/lib/types/factories/IAddressProviderV3.sol/index.js +0 -10
  523. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +0 -63
  524. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +0 -88
  525. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +0 -119
  526. package/lib/types/factories/IAirdropDistributor.sol/index.d.ts +0 -2
  527. package/lib/types/factories/IAirdropDistributor.sol/index.js +0 -10
  528. package/lib/types/factories/IBaseRewardPool__factory.d.ts +0 -398
  529. package/lib/types/factories/IBaseRewardPool__factory.js +0 -534
  530. package/lib/types/factories/IConvexToken__factory.d.ts +0 -208
  531. package/lib/types/factories/IConvexToken__factory.js +0 -280
  532. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +0 -274
  533. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +0 -367
  534. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +0 -23
  535. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +0 -38
  536. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts +0 -181
  537. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js +0 -245
  538. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +0 -2
  539. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +0 -10
  540. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.d.ts +0 -268
  541. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.js +0 -353
  542. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.d.ts +0 -44
  543. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.js +0 -64
  544. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.d.ts +0 -576
  545. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.js +0 -749
  546. package/lib/types/factories/ICreditConfiguratorV2.sol/index.d.ts +0 -3
  547. package/lib/types/factories/ICreditConfiguratorV2.sol/index.js +0 -12
  548. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +0 -273
  549. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +0 -357
  550. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +0 -605
  551. package/lib/types/factories/ICreditConfiguratorV3.sol/index.d.ts +0 -2
  552. package/lib/types/factories/ICreditConfiguratorV3.sol/index.js +0 -10
  553. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.d.ts +0 -263
  554. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.js +0 -340
  555. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.d.ts +0 -140
  556. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.js +0 -185
  557. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +0 -81
  558. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +0 -114
  559. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.d.ts +0 -26
  560. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.js +0 -42
  561. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.d.ts +0 -901
  562. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.js +0 -1163
  563. package/lib/types/factories/ICreditFacadeV2.sol/index.d.ts +0 -5
  564. package/lib/types/factories/ICreditFacadeV2.sol/index.js +0 -16
  565. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +0 -188
  566. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +0 -244
  567. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +0 -617
  568. package/lib/types/factories/ICreditFacadeV3.sol/index.d.ts +0 -2
  569. package/lib/types/factories/ICreditFacadeV3.sol/index.js +0 -10
  570. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +0 -200
  571. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +0 -267
  572. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.d.ts +0 -33
  573. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.js +0 -51
  574. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.d.ts +0 -60
  575. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.js +0 -84
  576. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.d.ts +0 -707
  577. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.js +0 -932
  578. package/lib/types/factories/ICreditManagerV2.sol/index.d.ts +0 -3
  579. package/lib/types/factories/ICreditManagerV2.sol/index.js +0 -12
  580. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.d.ts +0 -18
  581. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.js +0 -32
  582. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +0 -1015
  583. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +0 -1331
  584. package/lib/types/factories/ICreditManagerV3.sol/index.d.ts +0 -2
  585. package/lib/types/factories/ICreditManagerV3.sol/index.js +0 -10
  586. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.d.ts +0 -678
  587. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.js +0 -897
  588. package/lib/types/factories/ICurvePool_2.sol/index.d.ts +0 -1
  589. package/lib/types/factories/ICurvePool_2.sol/index.js +0 -8
  590. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.d.ts +0 -678
  591. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.js +0 -897
  592. package/lib/types/factories/ICurvePool_3.sol/index.d.ts +0 -1
  593. package/lib/types/factories/ICurvePool_3.sol/index.js +0 -8
  594. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.d.ts +0 -678
  595. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.js +0 -897
  596. package/lib/types/factories/ICurvePool_4.sol/index.d.ts +0 -1
  597. package/lib/types/factories/ICurvePool_4.sol/index.js +0 -8
  598. package/lib/types/factories/ICurvePool__factory.d.ts +0 -566
  599. package/lib/types/factories/ICurvePool__factory.js +0 -751
  600. package/lib/types/factories/ICurveV1Adapter__factory.d.ts +0 -664
  601. package/lib/types/factories/ICurveV1Adapter__factory.js +0 -875
  602. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.d.ts +0 -730
  603. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.js +0 -962
  604. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.d.ts +0 -730
  605. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.js +0 -962
  606. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.d.ts +0 -730
  607. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.js +0 -962
  608. package/lib/types/factories/IDaiLikePermit__factory.d.ts +0 -46
  609. package/lib/types/factories/IDaiLikePermit__factory.js +0 -67
  610. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +0 -1230
  611. package/lib/types/factories/IDataCompressorV2_10__factory.js +0 -1575
  612. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +0 -1692
  613. package/lib/types/factories/IDataCompressorV3_00__factory.js +0 -2163
  614. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +0 -38
  615. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.js +0 -57
  616. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +0 -84
  617. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.js +0 -117
  618. package/lib/types/factories/IDegenDistributor.sol/index.d.ts +0 -2
  619. package/lib/types/factories/IDegenDistributor.sol/index.js +0 -10
  620. package/lib/types/factories/IERC20Metadata__factory.d.ts +0 -178
  621. package/lib/types/factories/IERC20Metadata__factory.js +0 -241
  622. package/lib/types/factories/IERC20Permit__factory.d.ts +0 -66
  623. package/lib/types/factories/IERC20Permit__factory.js +0 -94
  624. package/lib/types/factories/IERC20__factory.d.ts +0 -148
  625. package/lib/types/factories/IERC20__factory.js +0 -202
  626. package/lib/types/factories/IERC4626__factory.d.ts +0 -473
  627. package/lib/types/factories/IERC4626__factory.js +0 -631
  628. package/lib/types/factories/IInterestRateModel__factory.d.ts +0 -36
  629. package/lib/types/factories/IInterestRateModel__factory.js +0 -56
  630. package/lib/types/factories/ILidoV1Adapter__factory.d.ts +0 -140
  631. package/lib/types/factories/ILidoV1Adapter__factory.js +0 -191
  632. package/lib/types/factories/IOffchainOracle__factory.d.ts +0 -48
  633. package/lib/types/factories/IOffchainOracle__factory.js +0 -72
  634. package/lib/types/factories/IPermit2__factory.d.ts +0 -113
  635. package/lib/types/factories/IPermit2__factory.js +0 -155
  636. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.d.ts +0 -163
  637. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.js +0 -215
  638. package/lib/types/factories/IPoolService.sol/IPoolService__factory.d.ts +0 -437
  639. package/lib/types/factories/IPoolService.sol/IPoolService__factory.js +0 -574
  640. package/lib/types/factories/IPoolService.sol/index.d.ts +0 -2
  641. package/lib/types/factories/IPoolService.sol/index.js +0 -10
  642. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.d.ts +0 -153
  643. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.js +0 -203
  644. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +0 -1068
  645. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +0 -1402
  646. package/lib/types/factories/IPoolV3.sol/index.d.ts +0 -2
  647. package/lib/types/factories/IPoolV3.sol/index.js +0 -10
  648. package/lib/types/factories/IPriceOracleBase__factory.d.ts +0 -104
  649. package/lib/types/factories/IPriceOracleBase__factory.js +0 -147
  650. package/lib/types/factories/IRouter__factory.d.ts +0 -382
  651. package/lib/types/factories/IRouter__factory.js +0 -507
  652. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.d.ts +0 -28
  653. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.js +0 -44
  654. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.d.ts +0 -12
  655. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.js +0 -24
  656. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.d.ts +0 -217
  657. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +0 -290
  658. package/lib/types/factories/IUniswapV2Adapter.sol/index.d.ts +0 -3
  659. package/lib/types/factories/IUniswapV2Adapter.sol/index.js +0 -12
  660. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.d.ts +0 -172
  661. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.js +0 -233
  662. package/lib/types/factories/IUniswapV3.sol/index.d.ts +0 -1
  663. package/lib/types/factories/IUniswapV3.sol/index.js +0 -8
  664. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.d.ts +0 -33
  665. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.js +0 -50
  666. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.d.ts +0 -12
  667. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.js +0 -24
  668. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.d.ts +0 -390
  669. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +0 -515
  670. package/lib/types/factories/IUniswapV3Adapter.sol/index.d.ts +0 -3
  671. package/lib/types/factories/IUniswapV3Adapter.sol/index.js +0 -12
  672. package/lib/types/factories/IVersion__factory.d.ts +0 -18
  673. package/lib/types/factories/IVersion__factory.js +0 -32
  674. package/lib/types/factories/IWERC20Zapper__factory.d.ts +0 -176
  675. package/lib/types/factories/IWERC20Zapper__factory.js +0 -240
  676. package/lib/types/factories/IWETHGateway__factory.d.ts +0 -58
  677. package/lib/types/factories/IWETHGateway__factory.js +0 -83
  678. package/lib/types/factories/IWETHZapper__factory.d.ts +0 -168
  679. package/lib/types/factories/IWETHZapper__factory.js +0 -230
  680. package/lib/types/factories/IWETH__factory.d.ts +0 -194
  681. package/lib/types/factories/IWETH__factory.js +0 -260
  682. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.d.ts +0 -143
  683. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.js +0 -188
  684. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.d.ts +0 -366
  685. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.js +0 -479
  686. package/lib/types/factories/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  687. package/lib/types/factories/IWithdrawalManagerV3.sol/index.js +0 -10
  688. package/lib/types/factories/IYVault__factory.d.ts +0 -304
  689. package/lib/types/factories/IYVault__factory.js +0 -408
  690. package/lib/types/factories/IYearnV2Adapter__factory.d.ts +0 -222
  691. package/lib/types/factories/IYearnV2Adapter__factory.js +0 -299
  692. package/lib/types/factories/IZapper__factory.d.ts +0 -136
  693. package/lib/types/factories/IZapper__factory.js +0 -187
  694. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.d.ts +0 -250
  695. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.js +0 -337
  696. package/lib/types/factories/IstETH.sol/IstETH__factory.d.ts +0 -264
  697. package/lib/types/factories/IstETH.sol/IstETH__factory.js +0 -356
  698. package/lib/types/factories/IstETH.sol/index.d.ts +0 -2
  699. package/lib/types/factories/IstETH.sol/index.js +0 -10
  700. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.d.ts +0 -236
  701. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.js +0 -318
  702. package/lib/types/factories/IwstETH.sol/IwstETH__factory.d.ts +0 -264
  703. package/lib/types/factories/IwstETH.sol/IwstETH__factory.js +0 -356
  704. package/lib/types/factories/IwstETH.sol/index.d.ts +0 -2
  705. package/lib/types/factories/IwstETH.sol/index.js +0 -10
  706. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.d.ts +0 -48
  707. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.js +0 -71
  708. package/lib/types/factories/IwstETHGateway.sol/index.d.ts +0 -1
  709. package/lib/types/factories/IwstETHGateway.sol/index.js +0 -8
  710. package/lib/types/factories/IwstETHV1Adapter__factory.d.ts +0 -152
  711. package/lib/types/factories/IwstETHV1Adapter__factory.js +0 -207
  712. package/lib/types/factories/Ownable__factory.d.ts +0 -49
  713. package/lib/types/factories/Ownable__factory.js +0 -71
  714. package/lib/types/factories/SafeERC20__factory.d.ts +0 -49
  715. package/lib/types/factories/SafeERC20__factory.js +0 -77
  716. package/lib/types/factories/index.d.ts +0 -61
  717. package/lib/types/factories/index.js +0 -128
  718. package/lib/utils/repeater.d.ts +0 -1
  719. package/lib/utils/repeater.js +0 -19
  720. package/lib/watchers/creditAccountWatcher.d.ts +0 -37
  721. package/lib/watchers/creditAccountWatcher.js +0 -244
  722. package/lib/watchers/creditAccountWatcher.spec.d.ts +0 -1
  723. package/lib/watchers/creditAccountWatcher.spec.js +0 -208
  724. package/lib/watchers/creditManagerWatcher.d.ts +0 -10
  725. package/lib/watchers/creditManagerWatcher.js +0 -59
  726. package/lib/watchers/creditManagerWatcher.spec.d.ts +0 -1
  727. package/lib/watchers/creditManagerWatcher.spec.js +0 -115
  728. /package/lib/core/{rewardConvex.spec.d.ts → gaugeMath.spec.d.ts} +0 -0
  729. /package/lib/core/{strategy.spec.d.ts → rewardClaimer/rewardConvex.spec.d.ts} +0 -0
  730. /package/lib/{core/errors.js → payload/bot.js} +0 -0
@@ -2,13 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const sdk_gov_1 = require("@gearbox-protocol/sdk-gov");
4
4
  const chai_1 = require("chai");
5
+ const tokenData_1 = require("../tokens/tokenData");
5
6
  const formatter_1 = require("../utils/formatter");
6
7
  const price_1 = require("../utils/price");
7
8
  const assets_1 = require("./assets");
8
9
  const creditAccount_1 = require("./creditAccount");
10
+ const tokensFiltered = sdk_gov_1.TypedObjectUtils.fromEntries(sdk_gov_1.TypedObjectUtils.entries(sdk_gov_1.tokenDataByNetwork.Mainnet).filter(([_, address]) => !!address && address !== sdk_gov_1.NOT_DEPLOYED));
11
+ const tokenDataList = sdk_gov_1.TypedObjectUtils.fromEntries(sdk_gov_1.TypedObjectUtils.entries(tokensFiltered).map(([tokenSymbol, addr]) => {
12
+ const data = sdk_gov_1.supportedTokens[tokenSymbol];
13
+ return [
14
+ addr.toLowerCase(),
15
+ new tokenData_1.TokenData({
16
+ ...data,
17
+ addr,
18
+ decimals: sdk_gov_1.decimals[tokenSymbol],
19
+ }),
20
+ ];
21
+ }));
9
22
  const prices = {
10
23
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: (0, formatter_1.toBN)("1738.11830000", sdk_gov_1.PRICE_DECIMALS_POW),
11
24
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: (0, formatter_1.toBN)("0.99941103", sdk_gov_1.PRICE_DECIMALS_POW),
25
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: (0, formatter_1.toBN)("0.999", sdk_gov_1.PRICE_DECIMALS_POW),
12
26
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH.toLowerCase()]: (0, formatter_1.toBN)("1703.87588096", sdk_gov_1.PRICE_DECIMALS_POW),
13
27
  };
14
28
  const lpAPY = { STETH: 38434 };
@@ -35,7 +49,8 @@ const caWithoutLP = {
35
49
  },
36
50
  rates: {
37
51
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: {
38
- rate: 38434,
52
+ rate: 38434n,
53
+ isActive: true,
39
54
  },
40
55
  },
41
56
  };
@@ -62,7 +77,8 @@ const caWithLP = {
62
77
  },
63
78
  rates: {
64
79
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH.toLowerCase()]: {
65
- rate: 38434,
80
+ rate: 38434n,
81
+ isActive: true,
66
82
  },
67
83
  },
68
84
  };
@@ -72,12 +88,14 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
72
88
  caAssets: caWithoutLP.assets,
73
89
  totalValue: caWithoutLP.totalValue,
74
90
  debt: caWithoutLP.debt,
75
- baseBorrowRate: caWithoutLP.borrowRate,
91
+ baseRateWithFee: caWithoutLP.borrowRate,
76
92
  underlyingToken: caWithoutLP.underlyingToken,
77
93
  quotaRates: {},
78
94
  quotas: {},
95
+ feeInterest: 0,
79
96
  lpAPY,
80
97
  prices,
98
+ tokensList: tokenDataList,
81
99
  });
82
100
  (0, chai_1.expect)(result).to.be.eq(-69484n);
83
101
  });
@@ -86,12 +104,14 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
86
104
  caAssets: caWithLP.assets,
87
105
  totalValue: caWithLP.totalValue,
88
106
  debt: caWithLP.debt,
89
- baseBorrowRate: caWithLP.borrowRate,
107
+ baseRateWithFee: caWithLP.borrowRate,
90
108
  underlyingToken: caWithLP.underlyingToken,
91
109
  quotaRates: {},
92
110
  quotas: {},
111
+ feeInterest: 0,
93
112
  lpAPY,
94
113
  prices,
114
+ tokensList: tokenDataList,
95
115
  });
96
116
  (0, chai_1.expect)(result).to.be.eq(144919n);
97
117
  });
@@ -100,12 +120,14 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
100
120
  caAssets: caWithLP.assets,
101
121
  totalValue: caWithLP.totalValue,
102
122
  debt: caWithLP.debt,
103
- baseBorrowRate: caWithLP.borrowRate,
123
+ baseRateWithFee: caWithLP.borrowRate,
104
124
  underlyingToken: caWithLP.underlyingToken,
105
125
  quotaRates: {},
106
126
  quotas: {},
127
+ feeInterest: 0,
107
128
  lpAPY: undefined,
108
129
  prices,
130
+ tokensList: tokenDataList,
109
131
  });
110
132
  (0, chai_1.expect)(result).to.be.eq(undefined);
111
133
  });
@@ -114,12 +136,14 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
114
136
  caAssets: caWithLP.assets,
115
137
  totalValue: undefined,
116
138
  debt: caWithLP.debt,
117
- baseBorrowRate: caWithLP.borrowRate,
139
+ baseRateWithFee: caWithLP.borrowRate,
118
140
  underlyingToken: caWithLP.underlyingToken,
119
141
  quotaRates: {},
120
142
  quotas: {},
143
+ feeInterest: 0,
121
144
  lpAPY,
122
145
  prices,
146
+ tokensList: tokenDataList,
123
147
  });
124
148
  (0, chai_1.expect)(result).to.be.eq(undefined);
125
149
  });
@@ -128,12 +152,14 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
128
152
  caAssets: caWithLP.assets,
129
153
  totalValue: caWithLP.totalValue,
130
154
  debt: undefined,
131
- baseBorrowRate: caWithLP.borrowRate,
155
+ baseRateWithFee: caWithLP.borrowRate,
132
156
  underlyingToken: caWithLP.underlyingToken,
133
157
  quotaRates: {},
134
158
  quotas: {},
159
+ feeInterest: 0,
135
160
  lpAPY,
136
161
  prices,
162
+ tokensList: tokenDataList,
137
163
  });
138
164
  (0, chai_1.expect)(result).to.be.eq(undefined);
139
165
  });
@@ -142,12 +168,14 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
142
168
  caAssets: caWithLP.assets,
143
169
  totalValue: 0n,
144
170
  debt: undefined,
145
- baseBorrowRate: caWithLP.borrowRate,
171
+ baseRateWithFee: caWithLP.borrowRate,
146
172
  underlyingToken: caWithLP.underlyingToken,
147
173
  quotaRates: {},
148
174
  quotas: {},
175
+ feeInterest: 0,
149
176
  lpAPY,
150
177
  prices,
178
+ tokensList: tokenDataList,
151
179
  });
152
180
  (0, chai_1.expect)(result).to.be.eq(undefined);
153
181
  });
@@ -156,12 +184,14 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
156
184
  caAssets: caWithLP.assets,
157
185
  totalValue: caWithLP.totalValue,
158
186
  debt: caWithLP.debt,
159
- baseBorrowRate: caWithLP.borrowRate,
187
+ baseRateWithFee: caWithLP.borrowRate,
160
188
  underlyingToken: caWithLP.underlyingToken,
161
189
  quotaRates: caWithLP.rates,
162
190
  quotas: caWithLP.quotas,
191
+ feeInterest: 0,
163
192
  lpAPY,
164
193
  prices,
194
+ tokensList: tokenDataList,
165
195
  });
166
196
  (0, chai_1.expect)(result).to.be.eq(-18680n);
167
197
  });
@@ -170,7 +200,7 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
170
200
  caAssets: caWithLP.assets,
171
201
  totalValue: caWithLP.totalValue,
172
202
  debt: caWithLP.debt,
173
- baseBorrowRate: caWithLP.borrowRate,
203
+ baseRateWithFee: caWithLP.borrowRate,
174
204
  underlyingToken: caWithLP.underlyingToken,
175
205
  quotaRates: caWithLP.rates,
176
206
  quotas: {
@@ -179,13 +209,15 @@ describe("CreditAccount CreditAccountData.calcOverallAPY test", () => {
179
209
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH.toLowerCase(),
180
210
  },
181
211
  },
212
+ feeInterest: 0,
182
213
  lpAPY,
183
214
  prices,
215
+ tokensList: tokenDataList,
184
216
  });
185
217
  (0, chai_1.expect)(result).to.be.eq(144919n);
186
218
  });
187
219
  });
188
- describe("CreditAccount calcMaxIncreaseBorrow test", () => {
220
+ describe("CreditAccount calcMaxDebtIncrease test", () => {
189
221
  it("health max increase borrow is zero if hf < 1", () => {
190
222
  const result = creditAccount_1.CreditAccountData.calcMaxDebtIncrease(9999, BigInt("156522834253690396032546"), 9300);
191
223
  (0, chai_1.expect)(result.toString()).to.be.eq("0");
@@ -201,9 +233,126 @@ describe("CreditAccount calcMaxIncreaseBorrow test", () => {
201
233
  });
202
234
  });
203
235
  const liquidationThresholds = {
236
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: 9800n,
204
237
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 9300n,
205
238
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: 8500n,
239
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH.toLowerCase()]: 8000n,
206
240
  };
241
+ describe("CreditAccount calcMaxLendingDebt test", () => {
242
+ it("calcMaxLendingDebt for several collaterals with zero lt", () => {
243
+ const result = creditAccount_1.CreditAccountData.calcMaxLendingDebt({
244
+ assets: [
245
+ {
246
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
247
+ balance: (0, formatter_1.toBN)("1000", sdk_gov_1.decimals.DAI),
248
+ },
249
+ {
250
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
251
+ balance: (0, formatter_1.toBN)("1", sdk_gov_1.decimals.WETH),
252
+ },
253
+ ],
254
+ liquidationThresholds: {
255
+ ...liquidationThresholds,
256
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 0n,
257
+ },
258
+ underlyingToken: sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase(),
259
+ prices: {
260
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 1n,
261
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: 1n,
262
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: 1000n,
263
+ },
264
+ tokensList: tokenDataList,
265
+ });
266
+ (0, chai_1.expect)(result).to.be.eq((0, formatter_1.toBN)("850", sdk_gov_1.decimals.USDC));
267
+ });
268
+ it("calcMaxLendingDebt for several collaterals with zero underlying price", () => {
269
+ const result = creditAccount_1.CreditAccountData.calcMaxLendingDebt({
270
+ assets: [
271
+ {
272
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
273
+ balance: (0, formatter_1.toBN)("1000", sdk_gov_1.decimals.DAI),
274
+ },
275
+ {
276
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
277
+ balance: (0, formatter_1.toBN)("1", sdk_gov_1.decimals.WETH),
278
+ },
279
+ ],
280
+ liquidationThresholds: liquidationThresholds,
281
+ underlyingToken: sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase(),
282
+ prices: {
283
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 1n,
284
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: 1000n,
285
+ },
286
+ tokensList: tokenDataList,
287
+ });
288
+ (0, chai_1.expect)(result).to.be.eq(0n);
289
+ });
290
+ it("calcMaxLendingDebt for simplest case", () => {
291
+ const result = creditAccount_1.CreditAccountData.calcMaxLendingDebt({
292
+ assets: [
293
+ {
294
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
295
+ balance: (0, formatter_1.toBN)("1000", sdk_gov_1.decimals.DAI),
296
+ },
297
+ ],
298
+ liquidationThresholds,
299
+ underlyingToken: sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase(),
300
+ prices: {
301
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 1n,
302
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: 1n,
303
+ },
304
+ tokensList: tokenDataList,
305
+ });
306
+ (0, chai_1.expect)(result).to.be.eq((0, formatter_1.toBN)("930", sdk_gov_1.decimals.USDC));
307
+ });
308
+ it("calcMaxLendingDebt for several collaterals", () => {
309
+ const result = creditAccount_1.CreditAccountData.calcMaxLendingDebt({
310
+ assets: [
311
+ {
312
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
313
+ balance: (0, formatter_1.toBN)("1000", sdk_gov_1.decimals.DAI),
314
+ },
315
+ {
316
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
317
+ balance: (0, formatter_1.toBN)("1", sdk_gov_1.decimals.WETH),
318
+ },
319
+ ],
320
+ liquidationThresholds,
321
+ underlyingToken: sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase(),
322
+ prices: {
323
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 1n,
324
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: 1n,
325
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: 1000n,
326
+ },
327
+ tokensList: tokenDataList,
328
+ });
329
+ (0, chai_1.expect)(result).to.be.eq((0, formatter_1.toBN)("1780", sdk_gov_1.decimals.USDC));
330
+ });
331
+ it("calcMaxLendingDebt for several collaterals with target HF", () => {
332
+ const result = creditAccount_1.CreditAccountData.calcMaxLendingDebt({
333
+ assets: [
334
+ {
335
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
336
+ balance: (0, formatter_1.toBN)("1000", sdk_gov_1.decimals.DAI),
337
+ },
338
+ {
339
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
340
+ balance: (0, formatter_1.toBN)("1", sdk_gov_1.decimals.WETH),
341
+ },
342
+ ],
343
+ liquidationThresholds,
344
+ underlyingToken: sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase(),
345
+ prices: {
346
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 1n,
347
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.USDC.toLowerCase()]: 1n,
348
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: 1000n,
349
+ },
350
+ targetHF: 12500n,
351
+ tokensList: tokenDataList,
352
+ });
353
+ (0, chai_1.expect)(result).to.be.eq((0, formatter_1.toBN)("1424", sdk_gov_1.decimals.USDC));
354
+ });
355
+ });
207
356
  const defaultCA = {
208
357
  assets: [
209
358
  {
@@ -225,29 +374,38 @@ const defaultCA = {
225
374
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
226
375
  },
227
376
  },
377
+ quotasInfo: {
378
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: {
379
+ isActive: true,
380
+ },
381
+ },
228
382
  };
229
383
  describe("CreditAccount calcHealthFactor test", () => {
230
384
  it("health factor is calculated correctly", () => {
231
385
  const result = creditAccount_1.CreditAccountData.calcHealthFactor({
232
386
  quotas: {},
387
+ quotasInfo: {},
233
388
  assets: defaultCA.assets,
234
389
  prices,
235
390
  liquidationThresholds,
236
391
  underlyingToken: defaultCA.underlyingToken,
237
- borrowed: defaultCA.debt,
392
+ debt: defaultCA.debt,
393
+ tokensList: tokenDataList,
238
394
  });
239
395
  (0, chai_1.expect)(result).to.be.eq(defaultCA.healthFactor);
240
396
  });
241
397
  it("health factor calculation has no division by zero error", () => {
242
398
  const result = creditAccount_1.CreditAccountData.calcHealthFactor({
243
399
  quotas: {},
400
+ quotasInfo: {},
244
401
  assets: [],
245
402
  prices: {},
246
403
  liquidationThresholds: {},
247
404
  underlyingToken: "",
248
- borrowed: 0n,
405
+ debt: 0n,
406
+ tokensList: tokenDataList,
249
407
  });
250
- (0, chai_1.expect)(result).to.be.eq(0);
408
+ (0, chai_1.expect)(result).to.be.eq(65535);
251
409
  });
252
410
  it("health factor after add collateral is calculated correctly", () => {
253
411
  const collateral = {
@@ -257,11 +415,13 @@ describe("CreditAccount calcHealthFactor test", () => {
257
415
  const afterAdd = assets_1.AssetUtils.sumAssets(defaultCA.assets, [collateral]);
258
416
  const result = creditAccount_1.CreditAccountData.calcHealthFactor({
259
417
  quotas: {},
418
+ quotasInfo: {},
260
419
  assets: afterAdd,
261
420
  prices,
262
421
  liquidationThresholds,
263
422
  underlyingToken: defaultCA.underlyingToken,
264
- borrowed: defaultCA.debt,
423
+ debt: defaultCA.debt,
424
+ tokensList: tokenDataList,
265
425
  });
266
426
  (0, chai_1.expect)(result).to.be.eq(11188);
267
427
  });
@@ -276,11 +436,13 @@ describe("CreditAccount calcHealthFactor test", () => {
276
436
  ]);
277
437
  const result = creditAccount_1.CreditAccountData.calcHealthFactor({
278
438
  quotas: {},
439
+ quotasInfo: {},
279
440
  assets: afterDecrease,
280
441
  prices,
281
442
  liquidationThresholds,
282
443
  underlyingToken: defaultCA.underlyingToken,
283
- borrowed: defaultCA.debt - amountDecrease,
444
+ debt: defaultCA.debt - amountDecrease,
445
+ tokensList: tokenDataList,
284
446
  });
285
447
  (0, chai_1.expect)(result).to.be.eq(10308);
286
448
  });
@@ -295,11 +457,13 @@ describe("CreditAccount calcHealthFactor test", () => {
295
457
  ]);
296
458
  const result = creditAccount_1.CreditAccountData.calcHealthFactor({
297
459
  quotas: {},
460
+ quotasInfo: {},
298
461
  assets: afterIncrease,
299
462
  prices,
300
463
  liquidationThresholds,
301
464
  underlyingToken: defaultCA.underlyingToken,
302
- borrowed: defaultCA.debt + amountIncrease,
465
+ debt: defaultCA.debt + amountIncrease,
466
+ tokensList: tokenDataList,
303
467
  });
304
468
  (0, chai_1.expect)(result).to.be.eq(10137);
305
469
  });
@@ -319,22 +483,26 @@ describe("CreditAccount calcHealthFactor test", () => {
319
483
  const afterSwap = assets_1.AssetUtils.sumAssets(afterSub, [getAsset]);
320
484
  const result = creditAccount_1.CreditAccountData.calcHealthFactor({
321
485
  quotas: {},
486
+ quotasInfo: {},
322
487
  assets: afterSwap,
323
488
  prices,
324
489
  liquidationThresholds,
325
490
  underlyingToken: defaultCA.underlyingToken,
326
- borrowed: defaultCA.debt,
491
+ debt: defaultCA.debt,
492
+ tokensList: tokenDataList,
327
493
  });
328
494
  (0, chai_1.expect)(result).to.be.eq(9444);
329
495
  });
330
496
  it("health factor with sufficient quotas is calculated correctly", () => {
331
497
  const result = creditAccount_1.CreditAccountData.calcHealthFactor({
332
498
  quotas: defaultCA.quotas,
499
+ quotasInfo: defaultCA.quotasInfo,
333
500
  assets: defaultCA.assets,
334
501
  prices,
335
502
  liquidationThresholds,
336
503
  underlyingToken: defaultCA.underlyingToken,
337
- borrowed: defaultCA.debt,
504
+ debt: defaultCA.debt,
505
+ tokensList: tokenDataList,
338
506
  });
339
507
  (0, chai_1.expect)(result).to.be.eq(defaultCA.healthFactor);
340
508
  });
@@ -346,11 +514,30 @@ describe("CreditAccount calcHealthFactor test", () => {
346
514
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
347
515
  },
348
516
  },
517
+ quotasInfo: defaultCA.quotasInfo,
518
+ assets: defaultCA.assets,
519
+ prices,
520
+ liquidationThresholds,
521
+ underlyingToken: defaultCA.underlyingToken,
522
+ debt: defaultCA.debt,
523
+ tokensList: tokenDataList,
524
+ });
525
+ (0, chai_1.expect)(result).to.be.eq(9300);
526
+ });
527
+ it("health factor with disabled quota is calculated correctly", () => {
528
+ const result = creditAccount_1.CreditAccountData.calcHealthFactor({
529
+ quotas: defaultCA.quotas,
530
+ quotasInfo: {
531
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: {
532
+ isActive: false,
533
+ },
534
+ },
349
535
  assets: defaultCA.assets,
350
536
  prices,
351
537
  liquidationThresholds,
352
538
  underlyingToken: defaultCA.underlyingToken,
353
- borrowed: defaultCA.debt,
539
+ debt: defaultCA.debt,
540
+ tokensList: tokenDataList,
354
541
  });
355
542
  (0, chai_1.expect)(result).to.be.eq(9300);
356
543
  });
@@ -371,25 +558,34 @@ const cmQuotas = {
371
558
  };
372
559
  const caQuota = {
373
560
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
374
- quota: 5n,
561
+ quota: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
375
562
  },
376
563
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
377
- quota: 10n,
564
+ quota: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
378
565
  },
379
566
  };
567
+ const QUOTA_RESERVE = 100n;
568
+ const DEFAULT_LT = {
569
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: sdk_gov_1.PERCENTAGE_FACTOR,
570
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: sdk_gov_1.PERCENTAGE_FACTOR,
571
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: sdk_gov_1.PERCENTAGE_FACTOR,
572
+ };
573
+ const HUGE_MAX_DEBT = 20n * sdk_gov_1.PERCENTAGE_FACTOR;
380
574
  describe("CreditAccount calcQuotaUpdate test", () => {
381
575
  it("open account should buy quota", () => {
382
576
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
577
+ maxDebt: HUGE_MAX_DEBT,
578
+ quotaReserve: QUOTA_RESERVE,
383
579
  quotas: cmQuotas,
384
580
  initialQuotas: {},
385
581
  assetsAfterUpdate: {
386
582
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
387
- amountInTarget: 10n,
583
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
388
584
  balance: 0n,
389
585
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
390
586
  },
391
587
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
392
- amountInTarget: 20n,
588
+ amountInTarget: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
393
589
  balance: 0n,
394
590
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
395
591
  },
@@ -399,40 +595,43 @@ describe("CreditAccount calcQuotaUpdate test", () => {
399
595
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
400
596
  },
401
597
  allowedToSpend: {},
598
+ liquidationThresholds: DEFAULT_LT,
402
599
  });
403
600
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
404
601
  {
405
- balance: 10n,
602
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
406
603
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
407
604
  },
408
605
  {
409
- balance: 20n,
606
+ balance: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
410
607
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
411
608
  },
412
609
  ]);
413
610
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([]);
414
611
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
415
612
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
416
- balance: 10n,
613
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
417
614
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
418
615
  },
419
616
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
420
- balance: 20n,
617
+ balance: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
421
618
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
422
619
  },
423
620
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
424
- balance: 0n,
621
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
425
622
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
426
623
  },
427
624
  });
428
625
  });
429
626
  it("add collateral should buy quota", () => {
430
627
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
628
+ maxDebt: HUGE_MAX_DEBT,
629
+ quotaReserve: QUOTA_RESERVE,
431
630
  quotas: cmQuotas,
432
631
  initialQuotas: caQuota,
433
632
  assetsAfterUpdate: {
434
633
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
435
- amountInTarget: 10n,
634
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
436
635
  balance: 0n,
437
636
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
438
637
  },
@@ -441,36 +640,39 @@ describe("CreditAccount calcQuotaUpdate test", () => {
441
640
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
442
641
  },
443
642
  allowedToSpend: {},
643
+ liquidationThresholds: DEFAULT_LT,
444
644
  });
445
645
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
446
646
  {
447
- balance: 10n,
647
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
448
648
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
449
649
  },
450
650
  ]);
451
651
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([]);
452
652
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
453
653
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
454
- balance: 5n,
654
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
455
655
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
456
656
  },
457
657
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
458
- balance: 10n,
658
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
459
659
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
460
660
  },
461
661
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
462
- balance: 10n,
662
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
463
663
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
464
664
  },
465
665
  });
466
666
  });
467
667
  it("add collateral should add additional quota", () => {
468
668
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
669
+ maxDebt: HUGE_MAX_DEBT,
670
+ quotaReserve: QUOTA_RESERVE,
469
671
  quotas: cmQuotas,
470
672
  initialQuotas: caQuota,
471
673
  assetsAfterUpdate: {
472
674
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
473
- amountInTarget: 10n,
675
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
474
676
  balance: 0n,
475
677
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
476
678
  },
@@ -479,36 +681,39 @@ describe("CreditAccount calcQuotaUpdate test", () => {
479
681
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
480
682
  },
481
683
  allowedToSpend: {},
684
+ liquidationThresholds: DEFAULT_LT,
482
685
  });
483
686
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
484
687
  {
485
- balance: 5n,
688
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
486
689
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
487
690
  },
488
691
  ]);
489
692
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([]);
490
693
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
491
694
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
492
- balance: 10n,
695
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
493
696
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
494
697
  },
495
698
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
496
- balance: 10n,
699
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
497
700
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
498
701
  },
499
702
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
500
- balance: 0n,
703
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
501
704
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
502
705
  },
503
706
  });
504
707
  });
505
708
  it("add collateral shouldn't add additional quota", () => {
506
709
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
710
+ maxDebt: HUGE_MAX_DEBT,
711
+ quotaReserve: QUOTA_RESERVE,
507
712
  quotas: cmQuotas,
508
713
  initialQuotas: caQuota,
509
714
  assetsAfterUpdate: {
510
715
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
511
- amountInTarget: 10n,
716
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
512
717
  balance: 0n,
513
718
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
514
719
  },
@@ -517,36 +722,39 @@ describe("CreditAccount calcQuotaUpdate test", () => {
517
722
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
518
723
  },
519
724
  allowedToSpend: {},
725
+ liquidationThresholds: DEFAULT_LT,
520
726
  });
521
727
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([]);
522
728
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([]);
523
729
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
524
730
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
525
- balance: 5n,
731
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
526
732
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
527
733
  },
528
734
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
529
- balance: 10n,
735
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
530
736
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
531
737
  },
532
738
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
533
- balance: 0n,
739
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
534
740
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
535
741
  },
536
742
  });
537
743
  });
538
744
  it("swap should buy quota", () => {
539
745
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
746
+ maxDebt: HUGE_MAX_DEBT,
747
+ quotaReserve: QUOTA_RESERVE,
540
748
  quotas: cmQuotas,
541
749
  initialQuotas: caQuota,
542
750
  assetsAfterUpdate: {
543
751
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
544
- amountInTarget: 10n,
752
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
545
753
  balance: 0n,
546
754
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
547
755
  },
548
756
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
549
- amountInTarget: 0n,
757
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
550
758
  balance: 0n,
551
759
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
552
760
  },
@@ -555,43 +763,106 @@ describe("CreditAccount calcQuotaUpdate test", () => {
555
763
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
556
764
  },
557
765
  allowedToSpend: { [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {} },
766
+ liquidationThresholds: DEFAULT_LT,
558
767
  });
559
768
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
560
769
  {
561
- balance: 10n,
770
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
771
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
772
+ },
773
+ ]);
774
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
775
+ {
776
+ balance: creditAccount_1.MIN_INT96,
777
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
778
+ },
779
+ ]);
780
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
781
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
782
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
783
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
784
+ },
785
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
786
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
787
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
788
+ },
789
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
790
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
562
791
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
563
792
  },
793
+ });
794
+ });
795
+ it("swap should buy additional quota", () => {
796
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
797
+ maxDebt: HUGE_MAX_DEBT,
798
+ quotaReserve: QUOTA_RESERVE,
799
+ quotas: cmQuotas,
800
+ initialQuotas: caQuota,
801
+ assetsAfterUpdate: {
802
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
803
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
804
+ balance: 0n,
805
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
806
+ },
807
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
808
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
809
+ balance: 0n,
810
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
811
+ },
812
+ },
813
+ allowedToObtain: {
814
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
815
+ },
816
+ allowedToSpend: {
817
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
818
+ },
819
+ liquidationThresholds: DEFAULT_LT,
820
+ });
821
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
822
+ {
823
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
824
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
825
+ },
564
826
  ]);
565
827
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
566
- { balance: -10n, token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH },
828
+ {
829
+ balance: creditAccount_1.MIN_INT96,
830
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
831
+ },
567
832
  ]);
568
833
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
569
834
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
570
- balance: 5n,
835
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
571
836
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
572
837
  },
573
838
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
574
- balance: 0n,
839
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
575
840
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
576
841
  },
577
842
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
578
- balance: 10n,
843
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
579
844
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
580
845
  },
581
846
  });
582
847
  });
583
- it("swap should add additional quota", () => {
848
+ it("swap should buy additional quota with respect to debt", () => {
584
849
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
850
+ maxDebt: HUGE_MAX_DEBT,
851
+ quotaReserve: QUOTA_RESERVE,
585
852
  quotas: cmQuotas,
586
853
  initialQuotas: caQuota,
854
+ calcModification: {
855
+ debt: 7n * sdk_gov_1.PERCENTAGE_FACTOR,
856
+ type: "recommendedQuota",
857
+ },
587
858
  assetsAfterUpdate: {
588
859
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
589
- amountInTarget: 10n,
860
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
590
861
  balance: 0n,
591
862
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
592
863
  },
593
864
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
594
- amountInTarget: 0n,
865
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
595
866
  balance: 0n,
596
867
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
597
868
  },
@@ -602,46 +873,49 @@ describe("CreditAccount calcQuotaUpdate test", () => {
602
873
  allowedToSpend: {
603
874
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
604
875
  },
876
+ liquidationThresholds: DEFAULT_LT,
605
877
  });
606
878
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
607
879
  {
608
- balance: 5n,
880
+ balance: 2n * sdk_gov_1.PERCENTAGE_FACTOR,
609
881
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
610
882
  },
611
883
  ]);
612
884
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
613
885
  {
614
- balance: -10n,
886
+ balance: creditAccount_1.MIN_INT96,
615
887
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
616
888
  },
617
889
  ]);
618
890
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
619
891
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
620
- balance: 10n,
892
+ balance: 7n * sdk_gov_1.PERCENTAGE_FACTOR,
621
893
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
622
894
  },
623
895
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
624
- balance: 0n,
896
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
625
897
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
626
898
  },
627
899
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
628
- balance: 0n,
900
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
629
901
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
630
902
  },
631
903
  });
632
904
  });
633
- it("swap shouldn't add additional quota", () => {
905
+ it("swap shouldn't buy additional quota", () => {
634
906
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
907
+ maxDebt: HUGE_MAX_DEBT,
908
+ quotaReserve: QUOTA_RESERVE,
635
909
  quotas: cmQuotas,
636
910
  initialQuotas: caQuota,
637
911
  assetsAfterUpdate: {
638
912
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
639
- amountInTarget: 10n,
913
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
640
914
  balance: 0n,
641
915
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
642
916
  },
643
917
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
644
- amountInTarget: 0n,
918
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
645
919
  balance: 0n,
646
920
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
647
921
  },
@@ -650,158 +924,831 @@ describe("CreditAccount calcQuotaUpdate test", () => {
650
924
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
651
925
  },
652
926
  allowedToSpend: { [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {} },
927
+ liquidationThresholds: DEFAULT_LT,
653
928
  });
654
929
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([]);
655
930
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
656
931
  {
657
- balance: -5n,
932
+ balance: creditAccount_1.MIN_INT96,
658
933
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
659
934
  },
660
935
  ]);
661
936
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
662
937
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
663
- balance: 0n,
938
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
664
939
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
665
940
  },
666
941
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
667
- balance: 10n,
942
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
668
943
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
669
944
  },
670
945
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
671
- balance: 0n,
946
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
672
947
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
673
948
  },
674
949
  });
675
950
  });
676
951
  it("shouldn't change quota if disallowed", () => {
677
952
  const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
953
+ maxDebt: HUGE_MAX_DEBT,
954
+ quotaReserve: QUOTA_RESERVE,
678
955
  quotas: cmQuotas,
679
956
  initialQuotas: caQuota,
680
957
  assetsAfterUpdate: {
681
- [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
682
- amountInTarget: 10n,
683
- balance: 0n,
684
- token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
685
- },
686
958
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
687
- amountInTarget: 0n,
959
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
688
960
  balance: 0n,
689
961
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
690
962
  },
963
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
964
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
965
+ balance: 0n,
966
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
967
+ },
691
968
  },
692
969
  allowedToObtain: {},
693
970
  allowedToSpend: {},
971
+ liquidationThresholds: DEFAULT_LT,
694
972
  });
695
973
  (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([]);
696
974
  (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([]);
697
975
  (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
698
976
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
699
- balance: 5n,
977
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
700
978
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
701
979
  },
702
980
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
703
- balance: 10n,
981
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
704
982
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
705
983
  },
706
984
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
707
- balance: 0n,
985
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
708
986
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
709
987
  },
710
988
  });
711
989
  });
712
- });
713
- describe("CreditAccount calcQuotaBorrowRate test", () => {
714
- it("should calculate quota rate (same amounts, different rates)", () => {
715
- const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
990
+ it("shouldn't change quota if it is disabled", () => {
991
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
992
+ maxDebt: HUGE_MAX_DEBT,
993
+ quotaReserve: QUOTA_RESERVE,
716
994
  quotas: {
717
995
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
718
996
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
719
- balance: 10n,
997
+ isActive: false,
720
998
  },
721
999
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
722
1000
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
723
- balance: 10n,
1001
+ isActive: false,
724
1002
  },
725
1003
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
726
1004
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
727
- balance: 10n,
1005
+ isActive: false,
728
1006
  },
729
1007
  },
730
- quotaRates: {
1008
+ initialQuotas: caQuota,
1009
+ assetsAfterUpdate: {
731
1010
  [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
732
- rate: 5,
1011
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1012
+ balance: 0n,
1013
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
733
1014
  },
734
1015
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
735
- rate: 10,
736
- },
737
- [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
738
- rate: 15,
1016
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1017
+ balance: 0n,
1018
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
739
1019
  },
740
1020
  },
741
- borrowAmount: 30n,
1021
+ allowedToObtain: {
1022
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
1023
+ },
1024
+ allowedToSpend: {
1025
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
1026
+ },
1027
+ liquidationThresholds: DEFAULT_LT,
1028
+ });
1029
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([]);
1030
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([]);
1031
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1032
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1033
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1034
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1035
+ },
1036
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1037
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1038
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1039
+ },
1040
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1041
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1042
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1043
+ },
742
1044
  });
743
- (0, chai_1.expect)(result).to.be.eq(10);
744
1045
  });
745
- it("should calculate quota rate (same rates, different amounts)", () => {
746
- const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
747
- quotas: {
748
- [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
749
- token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
750
- balance: 5n,
751
- },
752
- [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
753
- token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
754
- balance: 10n,
755
- },
1046
+ it("swap shouldn't buy quota if no lt", () => {
1047
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1048
+ maxDebt: HUGE_MAX_DEBT,
1049
+ quotaReserve: QUOTA_RESERVE,
1050
+ quotas: cmQuotas,
1051
+ initialQuotas: {
1052
+ ...caQuota,
756
1053
  [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
757
- token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
758
- balance: 15n,
1054
+ quota: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
759
1055
  },
760
1056
  },
761
- quotaRates: {
762
- [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
763
- rate: 10,
1057
+ assetsAfterUpdate: {
1058
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1059
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1060
+ balance: 0n,
1061
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
764
1062
  },
765
1063
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
766
- rate: 10,
767
- },
768
- [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
769
- rate: 10,
1064
+ amountInTarget: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1065
+ balance: 0n,
1066
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
770
1067
  },
771
1068
  },
772
- borrowAmount: 30n,
1069
+ allowedToObtain: {
1070
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
1071
+ },
1072
+ allowedToSpend: { [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {} },
1073
+ liquidationThresholds: {},
1074
+ });
1075
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([]);
1076
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1077
+ {
1078
+ balance: creditAccount_1.MIN_INT96,
1079
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1080
+ },
1081
+ ]);
1082
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1083
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1084
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1085
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1086
+ },
1087
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1088
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1089
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1090
+ },
1091
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1092
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1093
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1094
+ },
773
1095
  });
774
- (0, chai_1.expect)(result).to.be.eq(10);
775
1096
  });
776
- it("should calculate quota rate (borrow amount)", () => {
777
- const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
778
- quotas: {
779
- [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1097
+ it("swap should buy quota with respect to lt", () => {
1098
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1099
+ maxDebt: HUGE_MAX_DEBT,
1100
+ quotaReserve: QUOTA_RESERVE,
1101
+ quotas: cmQuotas,
1102
+ initialQuotas: {
1103
+ ...caQuota,
1104
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: { quota: 5n * sdk_gov_1.PERCENTAGE_FACTOR },
1105
+ },
1106
+ assetsAfterUpdate: {
1107
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1108
+ amountInTarget: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
1109
+ balance: 0n,
780
1110
  token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
781
- balance: 5n,
782
1111
  },
783
1112
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
784
- token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
785
- balance: 10n,
786
- },
787
- [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
788
- token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
789
- balance: 15n,
1113
+ amountInTarget: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1114
+ balance: 0n,
1115
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
790
1116
  },
791
1117
  },
792
- quotaRates: {
793
- [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
794
- rate: 10,
1118
+ allowedToObtain: {
1119
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
1120
+ },
1121
+ allowedToSpend: { [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {} },
1122
+ liquidationThresholds: {
1123
+ ...DEFAULT_LT,
1124
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: 5000n,
1125
+ },
1126
+ });
1127
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
1128
+ {
1129
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1130
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1131
+ },
1132
+ ]);
1133
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1134
+ {
1135
+ balance: -5n * sdk_gov_1.PERCENTAGE_FACTOR,
1136
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1137
+ },
1138
+ ]);
1139
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1140
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1141
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1142
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1143
+ },
1144
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1145
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1146
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1147
+ },
1148
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1149
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1150
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1151
+ },
1152
+ });
1153
+ });
1154
+ it("swap shouldn't buy quota with respect to lt", () => {
1155
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1156
+ maxDebt: HUGE_MAX_DEBT,
1157
+ quotaReserve: QUOTA_RESERVE,
1158
+ quotas: cmQuotas,
1159
+ initialQuotas: {
1160
+ ...caQuota,
1161
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: { quota: 5n * sdk_gov_1.PERCENTAGE_FACTOR },
1162
+ },
1163
+ assetsAfterUpdate: {
1164
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1165
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1166
+ balance: 0n,
1167
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
795
1168
  },
796
1169
  [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
797
- rate: 10,
798
- },
799
- [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
800
- rate: 10,
1170
+ amountInTarget: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1171
+ balance: 0n,
1172
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
801
1173
  },
802
1174
  },
803
- borrowAmount: 60n,
1175
+ allowedToObtain: {
1176
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
1177
+ },
1178
+ allowedToSpend: { [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {} },
1179
+ liquidationThresholds: {
1180
+ ...DEFAULT_LT,
1181
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: 5000n,
1182
+ },
1183
+ });
1184
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([]);
1185
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1186
+ {
1187
+ balance: -5n * sdk_gov_1.PERCENTAGE_FACTOR,
1188
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1189
+ },
1190
+ ]);
1191
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1192
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1193
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1194
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1195
+ },
1196
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1197
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1198
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1199
+ },
1200
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1201
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1202
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1203
+ },
1204
+ });
1205
+ });
1206
+ it("swap should buy additional quota after limit was increased", () => {
1207
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1208
+ maxDebt: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1209
+ quotaReserve: QUOTA_RESERVE,
1210
+ quotas: cmQuotas,
1211
+ initialQuotas: {
1212
+ ...caQuota,
1213
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1214
+ quota: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1215
+ },
1216
+ },
1217
+ assetsAfterUpdate: {
1218
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1219
+ amountInTarget: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
1220
+ balance: 0n,
1221
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1222
+ },
1223
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1224
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1225
+ balance: 0n,
1226
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1227
+ },
1228
+ },
1229
+ allowedToObtain: {
1230
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
1231
+ },
1232
+ allowedToSpend: {
1233
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
1234
+ },
1235
+ liquidationThresholds: DEFAULT_LT,
1236
+ });
1237
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
1238
+ {
1239
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1240
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1241
+ },
1242
+ ]);
1243
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1244
+ {
1245
+ balance: creditAccount_1.MIN_INT96,
1246
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1247
+ },
1248
+ ]);
1249
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1250
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1251
+ balance: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
1252
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1253
+ },
1254
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1255
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1256
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1257
+ },
1258
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1259
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1260
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1261
+ },
1262
+ });
1263
+ });
1264
+ it("swap should buy additional quota with respect to debt limit", () => {
1265
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1266
+ maxDebt: 9n * sdk_gov_1.PERCENTAGE_FACTOR,
1267
+ quotaReserve: QUOTA_RESERVE,
1268
+ quotas: cmQuotas,
1269
+ initialQuotas: {
1270
+ ...caQuota,
1271
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1272
+ quota: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1273
+ },
1274
+ },
1275
+ assetsAfterUpdate: {
1276
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1277
+ amountInTarget: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
1278
+ balance: 0n,
1279
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1280
+ },
1281
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1282
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1283
+ balance: 0n,
1284
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1285
+ },
1286
+ },
1287
+ allowedToObtain: {
1288
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
1289
+ },
1290
+ allowedToSpend: {
1291
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
1292
+ },
1293
+ liquidationThresholds: DEFAULT_LT,
1294
+ });
1295
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
1296
+ {
1297
+ balance: 8n * sdk_gov_1.PERCENTAGE_FACTOR,
1298
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1299
+ },
1300
+ ]);
1301
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1302
+ {
1303
+ balance: creditAccount_1.MIN_INT96,
1304
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1305
+ },
1306
+ ]);
1307
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1308
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1309
+ balance: 18n * sdk_gov_1.PERCENTAGE_FACTOR,
1310
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1311
+ },
1312
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1313
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1314
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1315
+ },
1316
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1317
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1318
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1319
+ },
1320
+ });
1321
+ });
1322
+ it("swap shouldn't buy additional quota if debt limit more then current quota", () => {
1323
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1324
+ maxDebt: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1325
+ quotaReserve: QUOTA_RESERVE,
1326
+ quotas: cmQuotas,
1327
+ initialQuotas: {
1328
+ ...caQuota,
1329
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1330
+ quota: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1331
+ },
1332
+ },
1333
+ assetsAfterUpdate: {
1334
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1335
+ amountInTarget: 20n * sdk_gov_1.PERCENTAGE_FACTOR,
1336
+ balance: 0n,
1337
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1338
+ },
1339
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1340
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1341
+ balance: 0n,
1342
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1343
+ },
1344
+ },
1345
+ allowedToObtain: {
1346
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
1347
+ },
1348
+ allowedToSpend: {
1349
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
1350
+ },
1351
+ liquidationThresholds: DEFAULT_LT,
1352
+ });
1353
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([]);
1354
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1355
+ {
1356
+ balance: creditAccount_1.MIN_INT96,
1357
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1358
+ },
1359
+ ]);
1360
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1361
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1362
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1363
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1364
+ },
1365
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1366
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1367
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1368
+ },
1369
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1370
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1371
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1372
+ },
1373
+ });
1374
+ });
1375
+ it("swap on old accounts should work correctly", () => {
1376
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1377
+ maxDebt: HUGE_MAX_DEBT,
1378
+ quotaReserve: QUOTA_RESERVE,
1379
+ quotas: cmQuotas,
1380
+ initialQuotas: {
1381
+ ...caQuota,
1382
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1383
+ quota: 52345n,
1384
+ },
1385
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1386
+ quota: 107458n * sdk_gov_1.PERCENTAGE_FACTOR,
1387
+ },
1388
+ },
1389
+ assetsAfterUpdate: {
1390
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1391
+ amountInTarget: 101345n,
1392
+ balance: 0n,
1393
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1394
+ },
1395
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1396
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1397
+ balance: 0n,
1398
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1399
+ },
1400
+ },
1401
+ allowedToObtain: {
1402
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
1403
+ },
1404
+ allowedToSpend: { [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {} },
1405
+ liquidationThresholds: DEFAULT_LT,
1406
+ });
1407
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
1408
+ {
1409
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1410
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1411
+ },
1412
+ ]);
1413
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1414
+ {
1415
+ balance: creditAccount_1.MIN_INT96,
1416
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1417
+ },
1418
+ ]);
1419
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1420
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1421
+ balance: 52345n,
1422
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1423
+ },
1424
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1425
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1426
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1427
+ },
1428
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1429
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1430
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1431
+ },
1432
+ });
1433
+ });
1434
+ it("swap on old accounts should work correctly and respect maxQuotaIncrease", () => {
1435
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1436
+ maxDebt: 6n * sdk_gov_1.PERCENTAGE_FACTOR,
1437
+ quotaReserve: QUOTA_RESERVE,
1438
+ quotas: cmQuotas,
1439
+ initialQuotas: {
1440
+ ...caQuota,
1441
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1442
+ quota: 52345n,
1443
+ },
1444
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1445
+ quota: 107458n * sdk_gov_1.PERCENTAGE_FACTOR,
1446
+ },
1447
+ },
1448
+ assetsAfterUpdate: {
1449
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1450
+ amountInTarget: 101345n,
1451
+ balance: 0n,
1452
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1453
+ },
1454
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1455
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1456
+ balance: 0n,
1457
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1458
+ },
1459
+ },
1460
+ allowedToObtain: {
1461
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
1462
+ },
1463
+ allowedToSpend: { [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {} },
1464
+ liquidationThresholds: DEFAULT_LT,
1465
+ });
1466
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
1467
+ {
1468
+ balance: 7n * sdk_gov_1.PERCENTAGE_FACTOR,
1469
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1470
+ },
1471
+ ]);
1472
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1473
+ {
1474
+ balance: creditAccount_1.MIN_INT96,
1475
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1476
+ },
1477
+ ]);
1478
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1479
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1480
+ balance: 52345n,
1481
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1482
+ },
1483
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1484
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1485
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1486
+ },
1487
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1488
+ balance: 7n * sdk_gov_1.PERCENTAGE_FACTOR,
1489
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1490
+ },
1491
+ });
1492
+ });
1493
+ it("should buy quota correctly when all assets listed in both buy and spend", () => {
1494
+ const result = creditAccount_1.CreditAccountData.calcQuotaUpdate({
1495
+ maxDebt: HUGE_MAX_DEBT,
1496
+ quotaReserve: QUOTA_RESERVE,
1497
+ quotas: cmQuotas,
1498
+ initialQuotas: {
1499
+ ...caQuota,
1500
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1501
+ quota: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1502
+ },
1503
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1504
+ quota: 15n * sdk_gov_1.PERCENTAGE_FACTOR,
1505
+ },
1506
+ },
1507
+ assetsAfterUpdate: {
1508
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1509
+ amountInTarget: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1510
+ balance: 0n,
1511
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1512
+ },
1513
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1514
+ amountInTarget: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1515
+ balance: 0n,
1516
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1517
+ },
1518
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1519
+ amountInTarget: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1520
+ balance: 0n,
1521
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1522
+ },
1523
+ },
1524
+ allowedToObtain: {
1525
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
1526
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
1527
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
1528
+ },
1529
+ allowedToSpend: {
1530
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {},
1531
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {},
1532
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {},
1533
+ },
1534
+ liquidationThresholds: DEFAULT_LT,
1535
+ });
1536
+ (0, chai_1.expect)(result.quotaIncrease).to.be.deep.eq([
1537
+ {
1538
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1539
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1540
+ },
1541
+ ]);
1542
+ (0, chai_1.expect)(result.quotaDecrease).to.be.deep.eq([
1543
+ {
1544
+ balance: creditAccount_1.MIN_INT96,
1545
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1546
+ },
1547
+ {
1548
+ balance: -5n * sdk_gov_1.PERCENTAGE_FACTOR,
1549
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1550
+ },
1551
+ ]);
1552
+ (0, chai_1.expect)(result.desiredQuota).to.be.deep.eq({
1553
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1554
+ balance: 10n * sdk_gov_1.PERCENTAGE_FACTOR,
1555
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1556
+ },
1557
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1558
+ balance: 5n * sdk_gov_1.PERCENTAGE_FACTOR,
1559
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1560
+ },
1561
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1562
+ balance: 0n * sdk_gov_1.PERCENTAGE_FACTOR,
1563
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1564
+ },
1565
+ });
1566
+ });
1567
+ });
1568
+ describe("CreditAccount calcAvgQuotaBorrowRate test", () => {
1569
+ it("should calculate quota rate (same amounts, different rates)", () => {
1570
+ const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
1571
+ quotas: {
1572
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1573
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1574
+ balance: 10n,
1575
+ },
1576
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1577
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1578
+ balance: 10n,
1579
+ },
1580
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1581
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1582
+ balance: 10n,
1583
+ },
1584
+ },
1585
+ quotaRates: {
1586
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1587
+ rate: 5n,
1588
+ isActive: true,
1589
+ },
1590
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1591
+ rate: 10n,
1592
+ isActive: true,
1593
+ },
1594
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1595
+ rate: 15n,
1596
+ isActive: true,
1597
+ },
1598
+ },
1599
+ });
1600
+ (0, chai_1.expect)(result).to.be.eq(300n);
1601
+ });
1602
+ it("should calculate quota rate (same rates, different amounts)", () => {
1603
+ const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
1604
+ quotas: {
1605
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1606
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1607
+ balance: 5n,
1608
+ },
1609
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1610
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1611
+ balance: 10n,
1612
+ },
1613
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1614
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1615
+ balance: 15n,
1616
+ },
1617
+ },
1618
+ quotaRates: {
1619
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1620
+ rate: 10n,
1621
+ isActive: true,
1622
+ },
1623
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1624
+ rate: 10n,
1625
+ isActive: true,
1626
+ },
1627
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1628
+ rate: 10n,
1629
+ isActive: true,
1630
+ },
1631
+ },
1632
+ });
1633
+ (0, chai_1.expect)(result).to.be.eq(300n);
1634
+ });
1635
+ it("should calculate quota rate (disabled quota)", () => {
1636
+ const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
1637
+ quotas: {
1638
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1639
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1640
+ balance: 5n,
1641
+ },
1642
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1643
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.WETH,
1644
+ balance: 10n,
1645
+ },
1646
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1647
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.STETH,
1648
+ balance: 15n,
1649
+ },
1650
+ },
1651
+ quotaRates: {
1652
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1653
+ rate: 10n,
1654
+ isActive: true,
1655
+ },
1656
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.WETH]: {
1657
+ rate: 10n,
1658
+ isActive: false,
1659
+ },
1660
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.STETH]: {
1661
+ rate: 10n,
1662
+ isActive: true,
1663
+ },
1664
+ },
1665
+ });
1666
+ (0, chai_1.expect)(result).to.be.eq(200n);
1667
+ });
1668
+ });
1669
+ describe("CreditAccount calcQuotaBorrowRate test", () => {
1670
+ it("should calculate quota borrow rate", () => {
1671
+ const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
1672
+ quotas: {
1673
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1674
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1675
+ balance: 10n,
1676
+ },
1677
+ },
1678
+ quotaRates: {
1679
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1680
+ rate: 5n,
1681
+ isActive: true,
1682
+ },
1683
+ },
1684
+ });
1685
+ (0, chai_1.expect)(result).to.be.eq(50n);
1686
+ });
1687
+ it("should calculate quota borrow rate when no balance", () => {
1688
+ const result = creditAccount_1.CreditAccountData.calcQuotaBorrowRate({
1689
+ quotas: {
1690
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1691
+ token: sdk_gov_1.tokenDataByNetwork.Mainnet.DAI,
1692
+ balance: 1n,
1693
+ },
1694
+ },
1695
+ quotaRates: {
1696
+ [sdk_gov_1.tokenDataByNetwork.Mainnet.DAI]: {
1697
+ rate: 5n,
1698
+ isActive: true,
1699
+ },
1700
+ },
1701
+ });
1702
+ (0, chai_1.expect)(result).to.be.eq(5n);
1703
+ });
1704
+ });
1705
+ describe("CreditAccount calcRelativeBaseBorrowRate test", () => {
1706
+ it("should calculate relative borrow rate", () => {
1707
+ const result = creditAccount_1.CreditAccountData.calcRelativeBaseBorrowRate({
1708
+ debt: 200n,
1709
+ baseRateWithFee: 250,
1710
+ assetAmountInUnderlying: 200n,
1711
+ });
1712
+ (0, chai_1.expect)(result).to.be.eq(10000000n);
1713
+ });
1714
+ it("should calculate relative borrow rate if position asset === 0", () => {
1715
+ const result = creditAccount_1.CreditAccountData.calcRelativeBaseBorrowRate({
1716
+ debt: 200n,
1717
+ baseRateWithFee: 250,
1718
+ assetAmountInUnderlying: 1n,
1719
+ });
1720
+ (0, chai_1.expect)(result).to.be.eq(50000n);
1721
+ });
1722
+ it("should calculate relative borrow rate if position === 0", () => {
1723
+ const result = creditAccount_1.CreditAccountData.calcRelativeBaseBorrowRate({
1724
+ debt: 1n,
1725
+ baseRateWithFee: 250,
1726
+ assetAmountInUnderlying: 1n,
1727
+ });
1728
+ (0, chai_1.expect)(result).to.be.eq(250n);
1729
+ });
1730
+ });
1731
+ describe("CreditAccount getTimeToLiquidation test", () => {
1732
+ it("should return 0 when HF < 1", () => {
1733
+ const result = creditAccount_1.CreditAccountData.getTimeToLiquidation({
1734
+ healthFactor: 9000,
1735
+ totalBorrowRate_debt: 250n,
1736
+ });
1737
+ (0, chai_1.expect)(result).to.be.eq(null);
1738
+ });
1739
+ it("should return 0 when br_debt === 0", () => {
1740
+ const result = creditAccount_1.CreditAccountData.getTimeToLiquidation({
1741
+ healthFactor: 9000,
1742
+ totalBorrowRate_debt: 0n,
1743
+ });
1744
+ (0, chai_1.expect)(result).to.be.eq(null);
1745
+ });
1746
+ it("should calculate time to liquidation correctly", () => {
1747
+ const result = creditAccount_1.CreditAccountData.getTimeToLiquidation({
1748
+ healthFactor: 13750,
1749
+ totalBorrowRate_debt: 20n * 10000n,
804
1750
  });
805
- (0, chai_1.expect)(result).to.be.eq(5);
1751
+ // 59_130_000
1752
+ (0, chai_1.expect)(result).to.be.eq(59130000n * 1000n);
806
1753
  });
807
1754
  });