@gearbox-protocol/sdk 3.0.0-next.21 → 3.0.0-next.211

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