@gearbox-protocol/sdk 3.0.0-next.23 → 3.0.0-next.230

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 (693) 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 +10 -4
  14. package/lib/apy/index.js +56 -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 +39 -29
  29. package/lib/core/creditManager.js +159 -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 +24 -0
  33. package/lib/core/endpoint.js +124 -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} +117 -81
  44. package/lib/core/priceOracle.d.ts +1 -1
  45. package/lib/core/protocols.d.ts +9 -0
  46. package/lib/core/protocols.js +141 -0
  47. package/lib/core/rewardClaimer.d.ts +8 -6
  48. package/lib/core/rewardConvex.d.ts +32 -14
  49. package/lib/core/rewardConvex.js +215 -64
  50. package/lib/core/rewardConvex.spec.js +39 -70
  51. package/lib/core/strategy.d.ts +24 -24
  52. package/lib/core/strategy.js +26 -36
  53. package/lib/core/trade.d.ts +13 -13
  54. package/lib/core/trade.js +36 -28
  55. package/lib/core/transactions.d.ts +214 -73
  56. package/lib/core/transactions.js +298 -119
  57. package/lib/gearboxRewards/api.d.ts +89 -0
  58. package/lib/gearboxRewards/api.js +319 -0
  59. package/lib/gearboxRewards/apy.d.ts +38 -0
  60. package/lib/gearboxRewards/apy.js +65 -0
  61. package/lib/gearboxRewards/extraAPY.d.ts +33 -0
  62. package/lib/gearboxRewards/extraAPY.js +111 -0
  63. package/lib/gearboxRewards/index.d.ts +3 -0
  64. package/lib/gearboxRewards/index.js +19 -0
  65. package/lib/gearboxRewards/merklAPI.d.ts +43 -0
  66. package/lib/gearboxRewards/merklAPI.js +11 -0
  67. package/lib/index.d.ts +11 -6
  68. package/lib/index.js +11 -8
  69. package/lib/parsers/ERC20Parser.d.ts +2 -1
  70. package/lib/parsers/ERC20Parser.js +7 -7
  71. package/lib/parsers/aaveV2LendingPoolAdapterParser.d.ts +8 -0
  72. package/lib/parsers/aaveV2LendingPoolAdapterParser.js +21 -0
  73. package/lib/parsers/aaveV2WrappedATokenAdapterParser.d.ts +8 -0
  74. package/lib/parsers/aaveV2WrappedATokenAdapterParser.js +21 -0
  75. package/lib/parsers/abstractParser.d.ts +22 -16
  76. package/lib/parsers/abstractParser.js +31 -14
  77. package/lib/parsers/balancerV2VaultParser.d.ts +8 -0
  78. package/lib/parsers/balancerV2VaultParser.js +32 -0
  79. package/lib/parsers/compoundV2CTokenAdapterParser.d.ts +8 -0
  80. package/lib/parsers/compoundV2CTokenAdapterParser.js +21 -0
  81. package/lib/parsers/convexBaseRewardPoolAdapterParser.d.ts +3 -2
  82. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +18 -14
  83. package/lib/parsers/convexBoosterAdapterParser.d.ts +3 -3
  84. package/lib/parsers/convexBoosterAdapterParser.js +12 -12
  85. package/lib/parsers/convextRewardPoolParser.d.ts +2 -1
  86. package/lib/parsers/convextRewardPoolParser.js +4 -4
  87. package/lib/parsers/creditFacadeParser.d.ts +3 -2
  88. package/lib/parsers/creditFacadeParser.js +40 -14
  89. package/lib/parsers/creditManagerParser.d.ts +2 -1
  90. package/lib/parsers/creditManagerParser.js +4 -7
  91. package/lib/parsers/curveAdapterParser.d.ts +3 -2
  92. package/lib/parsers/curveAdapterParser.js +27 -27
  93. package/lib/parsers/erc626AdapterParser.d.ts +8 -0
  94. package/lib/parsers/erc626AdapterParser.js +21 -0
  95. package/lib/parsers/iParser.d.ts +4 -7
  96. package/lib/parsers/lidoAdapterParser.d.ts +2 -1
  97. package/lib/parsers/lidoAdapterParser.js +8 -7
  98. package/lib/parsers/lidoSTETHParser.d.ts +2 -1
  99. package/lib/parsers/lidoSTETHParser.js +7 -7
  100. package/lib/parsers/priceOracleParser.d.ts +2 -1
  101. package/lib/parsers/priceOracleParser.js +5 -5
  102. package/lib/parsers/txParser.d.ts +21 -24
  103. package/lib/parsers/txParser.js +43 -14
  104. package/lib/parsers/uniV2AdapterParser.d.ts +2 -2
  105. package/lib/parsers/uniV2AdapterParser.js +10 -12
  106. package/lib/parsers/uniV2AdapterParser.spec.js +43 -30
  107. package/lib/parsers/uniV3AdapterParser.d.ts +4 -3
  108. package/lib/parsers/uniV3AdapterParser.js +22 -14
  109. package/lib/parsers/uniV3AdapterParser.spec.js +53 -76
  110. package/lib/parsers/wstETHAdapterParser.d.ts +2 -1
  111. package/lib/parsers/wstETHAdapterParser.js +15 -15
  112. package/lib/parsers/wstETHAdapterParser.spec.js +23 -7
  113. package/lib/parsers/yearnAdapterParser.spec.js +39 -21
  114. package/lib/parsers/yearnV2AdapterParser.d.ts +2 -1
  115. package/lib/parsers/yearnV2AdapterParser.js +19 -9
  116. package/lib/pathfinder/balancerVault.d.ts +33 -0
  117. package/lib/pathfinder/balancerVault.js +59 -0
  118. package/lib/pathfinder/core.d.ts +20 -10
  119. package/lib/pathfinder/index.d.ts +4 -0
  120. package/lib/pathfinder/index.js +20 -0
  121. package/lib/pathfinder/pathOptions.d.ts +6 -5
  122. package/lib/pathfinder/pathOptions.js +34 -18
  123. package/lib/pathfinder/pathOptions.spec.js +3 -6
  124. package/lib/pathfinder/pathfinder.d.ts +49 -22
  125. package/lib/pathfinder/pathfinder.js +101 -80
  126. package/lib/pathfinder/pathfinder.spec.js +24 -11
  127. package/lib/pathfinder/utils.d.ts +34 -0
  128. package/lib/pathfinder/utils.js +186 -0
  129. package/lib/payload/bot.d.ts +13 -0
  130. package/lib/payload/creditAccount.d.ts +48 -6
  131. package/lib/payload/creditManager.d.ts +58 -16
  132. package/lib/payload/creditSession.d.ts +31 -16
  133. package/lib/payload/gauge.d.ts +40 -0
  134. package/lib/payload/graphPayload.d.ts +3 -2
  135. package/lib/payload/pool.d.ts +110 -33
  136. package/lib/payload/token.d.ts +5 -2
  137. package/lib/redstone/api.d.ts +45 -0
  138. package/lib/redstone/api.js +365 -0
  139. package/lib/redstone/index.d.ts +1 -0
  140. package/lib/{core/pool → redstone}/index.js +1 -1
  141. package/lib/tokens/tokenData.d.ts +7 -5
  142. package/lib/tokens/tokenData.js +13 -6
  143. package/lib/types/CompositePriceFeed.d.ts +182 -0
  144. package/lib/types/CompositePriceFeed.js +123 -0
  145. package/lib/types/IAaveV2_LendingPoolAdapter.d.ts +151 -0
  146. package/lib/types/IAaveV2_LendingPoolAdapter.js +98 -0
  147. package/lib/types/IAaveV2_WrappedATokenAdapter.d.ts +245 -0
  148. package/lib/types/IAaveV2_WrappedATokenAdapter.js +166 -0
  149. package/lib/types/IAddressProviderV3.d.ts +85 -0
  150. package/lib/types/IAddressProviderV3.js +66 -0
  151. package/lib/types/IAirdropDistributor.d.ts +112 -0
  152. package/lib/types/{factories/IAirdropDistributor.sol/IAirdropDistributor__factory.js → IAirdropDistributor.js} +56 -112
  153. package/lib/types/IBalancerV2VaultAdapter.d.ts +507 -0
  154. package/lib/types/IBalancerV2VaultAdapter.js +322 -0
  155. package/lib/types/IBaseRewardPool.d.ts +391 -378
  156. package/lib/types/IBaseRewardPool.js +249 -0
  157. package/lib/types/ICompoundV2_CTokenAdapter.d.ts +189 -0
  158. package/lib/types/ICompoundV2_CTokenAdapter.js +130 -0
  159. package/lib/types/IConvexToken.d.ts +201 -182
  160. package/lib/types/IConvexToken.js +143 -0
  161. package/lib/types/IConvexV1BaseRewardPoolAdapter.d.ts +299 -284
  162. package/lib/types/IConvexV1BaseRewardPoolAdapter.js +202 -0
  163. package/lib/types/IConvexV1BoosterAdapter.d.ts +182 -0
  164. package/lib/types/IConvexV1BoosterAdapter.js +125 -0
  165. package/lib/types/ICreditConfiguratorV3.d.ts +598 -0
  166. package/lib/types/{factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.js → ICreditConfiguratorV3.js} +348 -532
  167. package/lib/types/ICreditFacadeV2Extended.d.ts +74 -0
  168. package/lib/types/ICreditFacadeV2Extended.js +63 -0
  169. package/lib/types/ICreditFacadeV3.d.ts +543 -0
  170. package/lib/types/{factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.js → ICreditFacadeV3.js} +281 -590
  171. package/lib/types/ICreditFacadeV3Multicall.d.ts +197 -269
  172. package/lib/types/ICreditFacadeV3Multicall.js +142 -0
  173. package/lib/types/ICreditManagerV2.d.ts +700 -0
  174. package/lib/types/ICreditManagerV2.js +443 -0
  175. package/lib/types/ICreditManagerV3.d.ts +1016 -0
  176. package/lib/types/ICreditManagerV3.js +672 -0
  177. package/lib/types/ICurvePool.d.ts +559 -438
  178. package/lib/types/ICurvePool.js +332 -0
  179. package/lib/types/ICurveV1_2AssetsAdapter.d.ts +665 -698
  180. package/lib/types/ICurveV1_2AssetsAdapter.js +404 -0
  181. package/lib/types/ICurveV1_3AssetsAdapter.d.ts +665 -761
  182. package/lib/types/ICurveV1_3AssetsAdapter.js +404 -0
  183. package/lib/types/ICurveV1_4AssetsAdapter.d.ts +665 -779
  184. package/lib/types/ICurveV1_4AssetsAdapter.js +404 -0
  185. package/lib/types/IDataCompressorV2_1.d.ts +1165 -0
  186. package/lib/types/IDataCompressorV2_1.js +720 -0
  187. package/lib/types/IDataCompressorV3.d.ts +1573 -0
  188. package/lib/types/IDataCompressorV3.js +959 -0
  189. package/lib/types/IDegenDistributor.d.ts +77 -0
  190. package/lib/types/IDegenDistributor.js +72 -0
  191. package/lib/types/IERC20.d.ts +141 -142
  192. package/lib/types/IERC20.js +101 -0
  193. package/lib/types/IERC20Permit.d.ts +59 -74
  194. package/lib/types/IERC20Permit.js +35 -0
  195. package/lib/types/IERC20ZapperDeposits.d.ts +113 -0
  196. package/lib/types/IERC20ZapperDeposits.js +66 -0
  197. package/lib/types/IERC4626Adapter.d.ts +213 -0
  198. package/lib/types/IERC4626Adapter.js +142 -0
  199. package/lib/types/IETHZapperDeposits.d.ts +33 -0
  200. package/lib/types/IETHZapperDeposits.js +29 -0
  201. package/lib/types/IFarmingPool.d.ts +292 -0
  202. package/lib/types/IFarmingPool.js +231 -0
  203. package/lib/types/IGearStakingV3.d.ts +497 -0
  204. package/lib/types/IGearStakingV3.js +368 -0
  205. package/lib/types/IInterestRateModel.d.ts +29 -50
  206. package/lib/types/IInterestRateModel.js +23 -0
  207. package/lib/types/ILidoV1Adapter.d.ts +137 -158
  208. package/lib/types/ILidoV1Adapter.js +98 -0
  209. package/lib/types/IMulticall3.d.ts +332 -0
  210. package/lib/types/IMulticall3.js +244 -0
  211. package/lib/types/IOffchainOracle.d.ts +41 -58
  212. package/lib/types/IOffchainOracle.js +31 -0
  213. package/lib/types/IPartialLiquidationBotV3.d.ts +210 -0
  214. package/lib/types/IPartialLiquidationBotV3.js +143 -0
  215. package/lib/types/IPoolV3.d.ts +1061 -0
  216. package/lib/types/IPoolV3.js +806 -0
  217. package/lib/types/IPriceFeed.d.ts +77 -0
  218. package/lib/types/IPriceFeed.js +56 -0
  219. package/lib/types/IPriceOracleBase.d.ts +97 -88
  220. package/lib/types/IPriceOracleBase.js +58 -0
  221. package/lib/types/IPriceOracleV3.d.ts +319 -0
  222. package/lib/types/IPriceOracleV3.js +210 -0
  223. package/lib/types/IRouterV3.d.ts +505 -0
  224. package/lib/types/IRouterV3.js +328 -0
  225. package/lib/types/IUniswapV2Adapter.d.ts +214 -0
  226. package/lib/types/IUniswapV2Adapter.js +139 -0
  227. package/lib/types/IUniswapV3Adapter.d.ts +391 -0
  228. package/lib/types/IUniswapV3Adapter.js +260 -0
  229. package/lib/types/IUpdatablePriceFeed.d.ts +97 -0
  230. package/lib/types/IUpdatablePriceFeed.js +70 -0
  231. package/lib/types/IYearnV2Adapter.d.ts +223 -256
  232. package/lib/types/IYearnV2Adapter.js +146 -0
  233. package/lib/types/IZapper.d.ts +121 -130
  234. package/lib/types/IZapper.js +84 -0
  235. package/lib/types/IstETH.d.ts +257 -0
  236. package/lib/types/IstETH.js +175 -0
  237. package/lib/types/IwstETH.d.ts +257 -0
  238. package/lib/types/IwstETH.js +181 -0
  239. package/lib/types/IwstETHV1Adapter.d.ts +153 -186
  240. package/lib/types/IwstETHV1Adapter.js +106 -0
  241. package/lib/types/RedstonePriceFeed.d.ts +423 -0
  242. package/lib/types/RedstonePriceFeed.js +287 -0
  243. package/lib/types/SignUpRepository.d.ts +161 -0
  244. package/lib/types/SignUpRepository.js +137 -0
  245. package/lib/types/index.d.ts +51 -221
  246. package/lib/types/index.js +53 -186
  247. package/lib/utils/calls.d.ts +31 -0
  248. package/lib/utils/calls.js +73 -0
  249. package/lib/utils/formatter.d.ts +2 -2
  250. package/lib/utils/formatter.js +2 -2
  251. package/lib/utils/math.d.ts +1 -1
  252. package/lib/utils/math.js +1 -2
  253. package/lib/utils/types.d.ts +0 -4
  254. package/package.json +18 -15
  255. package/contracts/IRouter.sol +0 -100
  256. package/lib/config.d.ts +0 -1
  257. package/lib/config.js +0 -4
  258. package/lib/core/errors.d.ts +0 -5
  259. package/lib/core/pool/index.d.ts +0 -1
  260. package/lib/core/strategy.spec.js +0 -62
  261. package/lib/parsers/addressProviderParser.d.ts +0 -6
  262. package/lib/parsers/addressProviderParser.js +0 -27
  263. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.d.ts +0 -1
  264. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +0 -24
  265. package/lib/parsers/convexBoosterAdapterParser.spec.d.ts +0 -1
  266. package/lib/parsers/convexBoosterAdapterParser.spec.js +0 -20
  267. package/lib/parsers/creditFacadeParser.spec.d.ts +0 -1
  268. package/lib/parsers/creditFacadeParser.spec.js +0 -25
  269. package/lib/parsers/curveAdapterParser.spec.d.ts +0 -1
  270. package/lib/parsers/curveAdapterParser.spec.js +0 -42
  271. package/lib/parsers/lidoAdapterParser.spec.d.ts +0 -1
  272. package/lib/parsers/lidoAdapterParser.spec.js +0 -17
  273. package/lib/parsers/poolParser.d.ts +0 -6
  274. package/lib/parsers/poolParser.js +0 -19
  275. package/lib/types/AddressProvider.d.ts +0 -382
  276. package/lib/types/Balances.sol/BalanceOps.d.ts +0 -27
  277. package/lib/types/Balances.sol/BalanceOps.js +0 -2
  278. package/lib/types/Balances.sol/index.d.ts +0 -1
  279. package/lib/types/Balances.sol/index.js +0 -2
  280. package/lib/types/Claimable.d.ts +0 -113
  281. package/lib/types/Claimable.js +0 -2
  282. package/lib/types/Errors.d.ts +0 -298
  283. package/lib/types/Errors.js +0 -2
  284. package/lib/types/IAdapter.d.ts +0 -74
  285. package/lib/types/IAdapter.js +0 -2
  286. package/lib/types/IAddressProvider.sol/IAddressProvider.d.ts +0 -137
  287. package/lib/types/IAddressProvider.sol/IAddressProvider.js +0 -2
  288. package/lib/types/IAddressProvider.sol/IAddressProviderEvents.d.ts +0 -43
  289. package/lib/types/IAddressProvider.sol/IAddressProviderEvents.js +0 -2
  290. package/lib/types/IAddressProvider.sol/index.d.ts +0 -2
  291. package/lib/types/IAddressProvider.sol/index.js +0 -2
  292. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3.d.ts +0 -97
  293. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3.js +0 -2
  294. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3Events.d.ts +0 -45
  295. package/lib/types/IAddressProviderV3.sol/IAddressProviderV3Events.js +0 -2
  296. package/lib/types/IAddressProviderV3.sol/index.d.ts +0 -2
  297. package/lib/types/IAddressProviderV3.sol/index.js +0 -2
  298. package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.d.ts +0 -124
  299. package/lib/types/IAirdropDistributor.sol/IAirdropDistributor.js +0 -2
  300. package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.d.ts +0 -73
  301. package/lib/types/IAirdropDistributor.sol/IAirdropDistributorEvents.js +0 -2
  302. package/lib/types/IAirdropDistributor.sol/index.d.ts +0 -2
  303. package/lib/types/IAirdropDistributor.sol/index.js +0 -2
  304. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.d.ts +0 -205
  305. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter.js +0 -2
  306. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.d.ts +0 -43
  307. package/lib/types/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents.js +0 -2
  308. package/lib/types/IConvexV1BoosterAdapter.sol/index.d.ts +0 -2
  309. package/lib/types/IConvexV1BoosterAdapter.sol/index.js +0 -2
  310. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2.d.ts +0 -641
  311. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2.js +0 -2
  312. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events.d.ts +0 -293
  313. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events.js +0 -2
  314. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions.d.ts +0 -27
  315. package/lib/types/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions.js +0 -2
  316. package/lib/types/ICreditConfiguratorV2.sol/index.d.ts +0 -3
  317. package/lib/types/ICreditConfiguratorV2.sol/index.js +0 -2
  318. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.d.ts +0 -716
  319. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3.js +0 -2
  320. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.d.ts +0 -275
  321. package/lib/types/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events.js +0 -2
  322. package/lib/types/ICreditConfiguratorV3.sol/index.d.ts +0 -2
  323. package/lib/types/ICreditConfiguratorV3.sol/index.js +0 -2
  324. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2.d.ts +0 -710
  325. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2.js +0 -2
  326. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Events.d.ts +0 -244
  327. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Events.js +0 -2
  328. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions.d.ts +0 -27
  329. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions.js +0 -2
  330. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.d.ts +0 -138
  331. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2Extended.js +0 -2
  332. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2V2.d.ts +0 -66
  333. package/lib/types/ICreditFacadeV2.sol/ICreditFacadeV2V2.js +0 -2
  334. package/lib/types/ICreditFacadeV2.sol/index.d.ts +0 -5
  335. package/lib/types/ICreditFacadeV2.sol/index.js +0 -2
  336. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.d.ts +0 -572
  337. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3.js +0 -2
  338. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.d.ts +0 -168
  339. package/lib/types/ICreditFacadeV3.sol/ICreditFacadeV3Events.js +0 -2
  340. package/lib/types/ICreditFacadeV3.sol/index.d.ts +0 -2
  341. package/lib/types/ICreditFacadeV3.sol/index.js +0 -2
  342. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2.d.ts +0 -639
  343. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2.js +0 -2
  344. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Events.d.ts +0 -54
  345. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Events.js +0 -2
  346. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Exceptions.d.ts +0 -27
  347. package/lib/types/ICreditManagerV2.sol/ICreditManagerV2Exceptions.js +0 -2
  348. package/lib/types/ICreditManagerV2.sol/index.d.ts +0 -3
  349. package/lib/types/ICreditManagerV2.sol/index.js +0 -2
  350. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.d.ts +0 -947
  351. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3.js +0 -2
  352. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3Events.d.ts +0 -41
  353. package/lib/types/ICreditManagerV3.sol/ICreditManagerV3Events.js +0 -2
  354. package/lib/types/ICreditManagerV3.sol/index.d.ts +0 -2
  355. package/lib/types/ICreditManagerV3.sol/index.js +0 -2
  356. package/lib/types/ICurvePool_2.sol/ICurvePool2Assets.d.ts +0 -590
  357. package/lib/types/ICurvePool_2.sol/ICurvePool2Assets.js +0 -2
  358. package/lib/types/ICurvePool_2.sol/index.d.ts +0 -1
  359. package/lib/types/ICurvePool_2.sol/index.js +0 -2
  360. package/lib/types/ICurvePool_3.sol/ICurvePool3Assets.d.ts +0 -686
  361. package/lib/types/ICurvePool_3.sol/ICurvePool3Assets.js +0 -2
  362. package/lib/types/ICurvePool_3.sol/index.d.ts +0 -1
  363. package/lib/types/ICurvePool_3.sol/index.js +0 -2
  364. package/lib/types/ICurvePool_4.sol/ICurvePool4Assets.d.ts +0 -722
  365. package/lib/types/ICurvePool_4.sol/ICurvePool4Assets.js +0 -2
  366. package/lib/types/ICurvePool_4.sol/index.d.ts +0 -1
  367. package/lib/types/ICurvePool_4.sol/index.js +0 -2
  368. package/lib/types/ICurveV1Adapter.d.ts +0 -614
  369. package/lib/types/ICurveV1Adapter.js +0 -2
  370. package/lib/types/IDaiLikePermit.d.ts +0 -59
  371. package/lib/types/IDaiLikePermit.js +0 -2
  372. package/lib/types/IDataCompressorV2_10.d.ts +0 -511
  373. package/lib/types/IDataCompressorV2_10.js +0 -2
  374. package/lib/types/IDataCompressorV3_00.d.ts +0 -610
  375. package/lib/types/IDataCompressorV3_00.js +0 -2
  376. package/lib/types/IDegenDistributor.sol/IDegenDistributor.d.ts +0 -96
  377. package/lib/types/IDegenDistributor.sol/IDegenDistributor.js +0 -2
  378. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.d.ts +0 -53
  379. package/lib/types/IDegenDistributor.sol/IDegenDistributorEvents.js +0 -2
  380. package/lib/types/IDegenDistributor.sol/index.d.ts +0 -2
  381. package/lib/types/IDegenDistributor.sol/index.js +0 -2
  382. package/lib/types/IERC20Metadata.d.ts +0 -166
  383. package/lib/types/IERC20Metadata.js +0 -2
  384. package/lib/types/IERC4626.d.ts +0 -394
  385. package/lib/types/IERC4626.js +0 -2
  386. package/lib/types/IPermit2.d.ts +0 -130
  387. package/lib/types/IPermit2.js +0 -2
  388. package/lib/types/IPoolService.sol/IPoolService.d.ts +0 -392
  389. package/lib/types/IPoolService.sol/IPoolService.js +0 -2
  390. package/lib/types/IPoolService.sol/IPoolServiceEvents.d.ts +0 -162
  391. package/lib/types/IPoolService.sol/IPoolServiceEvents.js +0 -2
  392. package/lib/types/IPoolService.sol/index.d.ts +0 -2
  393. package/lib/types/IPoolService.sol/index.js +0 -2
  394. package/lib/types/IPoolV3.sol/IPoolV3.d.ts +0 -936
  395. package/lib/types/IPoolV3.sol/IPoolV3.js +0 -2
  396. package/lib/types/IPoolV3.sol/IPoolV3Events.d.ts +0 -158
  397. package/lib/types/IPoolV3.sol/IPoolV3Events.js +0 -2
  398. package/lib/types/IPoolV3.sol/index.d.ts +0 -2
  399. package/lib/types/IPoolV3.sol/index.js +0 -2
  400. package/lib/types/IRouter.d.ts +0 -268
  401. package/lib/types/IRouter.js +0 -2
  402. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.d.ts +0 -207
  403. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2Adapter.js +0 -2
  404. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents.d.ts +0 -45
  405. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents.js +0 -2
  406. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions.d.ts +0 -27
  407. package/lib/types/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions.js +0 -2
  408. package/lib/types/IUniswapV2Adapter.sol/index.d.ts +0 -3
  409. package/lib/types/IUniswapV2Adapter.sol/index.js +0 -2
  410. package/lib/types/IUniswapV3.sol/ISwapRouter.d.ts +0 -198
  411. package/lib/types/IUniswapV3.sol/ISwapRouter.js +0 -2
  412. package/lib/types/IUniswapV3.sol/index.d.ts +0 -1
  413. package/lib/types/IUniswapV3.sol/index.js +0 -2
  414. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.d.ts +0 -409
  415. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3Adapter.js +0 -2
  416. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents.d.ts +0 -47
  417. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents.js +0 -2
  418. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions.d.ts +0 -27
  419. package/lib/types/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions.js +0 -2
  420. package/lib/types/IUniswapV3Adapter.sol/index.d.ts +0 -3
  421. package/lib/types/IUniswapV3Adapter.sol/index.js +0 -2
  422. package/lib/types/IVersion.d.ts +0 -42
  423. package/lib/types/IVersion.js +0 -2
  424. package/lib/types/IWERC20Zapper.d.ts +0 -166
  425. package/lib/types/IWERC20Zapper.js +0 -2
  426. package/lib/types/IWETH.d.ts +0 -197
  427. package/lib/types/IWETH.js +0 -2
  428. package/lib/types/IWETHGateway.d.ts +0 -90
  429. package/lib/types/IWETHGateway.js +0 -2
  430. package/lib/types/IWETHZapper.d.ts +0 -162
  431. package/lib/types/IWETHZapper.js +0 -2
  432. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.d.ts +0 -370
  433. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3.js +0 -2
  434. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.d.ts +0 -133
  435. package/lib/types/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events.js +0 -2
  436. package/lib/types/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  437. package/lib/types/IWithdrawalManagerV3.sol/index.js +0 -2
  438. package/lib/types/IYVault.d.ts +0 -298
  439. package/lib/types/IYVault.js +0 -2
  440. package/lib/types/IstETH.sol/IstETH.d.ts +0 -230
  441. package/lib/types/IstETH.sol/IstETH.js +0 -2
  442. package/lib/types/IstETH.sol/IstETHGetters.d.ts +0 -214
  443. package/lib/types/IstETH.sol/IstETHGetters.js +0 -2
  444. package/lib/types/IstETH.sol/index.d.ts +0 -2
  445. package/lib/types/IstETH.sol/index.js +0 -2
  446. package/lib/types/IwstETH.sol/IwstETH.d.ts +0 -238
  447. package/lib/types/IwstETH.sol/IwstETH.js +0 -2
  448. package/lib/types/IwstETH.sol/IwstETHGetters.d.ts +0 -206
  449. package/lib/types/IwstETH.sol/IwstETHGetters.js +0 -2
  450. package/lib/types/IwstETH.sol/index.d.ts +0 -2
  451. package/lib/types/IwstETH.sol/index.js +0 -2
  452. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.d.ts +0 -70
  453. package/lib/types/IwstETHGateway.sol/IwstETHGateWay.js +0 -2
  454. package/lib/types/IwstETHGateway.sol/index.d.ts +0 -1
  455. package/lib/types/IwstETHGateway.sol/index.js +0 -2
  456. package/lib/types/Ownable.d.ts +0 -89
  457. package/lib/types/Ownable.js +0 -2
  458. package/lib/types/SafeERC20.d.ts +0 -27
  459. package/lib/types/SafeERC20.js +0 -2
  460. package/lib/types/common.d.ts +0 -22
  461. package/lib/types/common.js +0 -2
  462. package/lib/types/factories/AddressProvider__factory.d.ts +0 -321
  463. package/lib/types/factories/AddressProvider__factory.js +0 -430
  464. package/lib/types/factories/Balances.sol/BalanceOps__factory.d.ts +0 -29
  465. package/lib/types/factories/Balances.sol/BalanceOps__factory.js +0 -53
  466. package/lib/types/factories/Balances.sol/index.d.ts +0 -1
  467. package/lib/types/factories/Balances.sol/index.js +0 -8
  468. package/lib/types/factories/Claimable__factory.d.ts +0 -78
  469. package/lib/types/factories/Claimable__factory.js +0 -114
  470. package/lib/types/factories/Errors__factory.d.ts +0 -351
  471. package/lib/types/factories/Errors__factory.js +0 -471
  472. package/lib/types/factories/IAdapter__factory.d.ts +0 -58
  473. package/lib/types/factories/IAdapter__factory.js +0 -84
  474. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.d.ts +0 -23
  475. package/lib/types/factories/IAddressProvider.sol/IAddressProviderEvents__factory.js +0 -38
  476. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.d.ts +0 -133
  477. package/lib/types/factories/IAddressProvider.sol/IAddressProvider__factory.js +0 -181
  478. package/lib/types/factories/IAddressProvider.sol/index.d.ts +0 -2
  479. package/lib/types/factories/IAddressProvider.sol/index.js +0 -10
  480. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.d.ts +0 -28
  481. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3Events__factory.js +0 -44
  482. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.d.ts +0 -92
  483. package/lib/types/factories/IAddressProviderV3.sol/IAddressProviderV3__factory.js +0 -128
  484. package/lib/types/factories/IAddressProviderV3.sol/index.d.ts +0 -2
  485. package/lib/types/factories/IAddressProviderV3.sol/index.js +0 -10
  486. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.d.ts +0 -63
  487. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +0 -88
  488. package/lib/types/factories/IAirdropDistributor.sol/IAirdropDistributor__factory.d.ts +0 -119
  489. package/lib/types/factories/IAirdropDistributor.sol/index.d.ts +0 -2
  490. package/lib/types/factories/IAirdropDistributor.sol/index.js +0 -10
  491. package/lib/types/factories/IBaseRewardPool__factory.d.ts +0 -398
  492. package/lib/types/factories/IBaseRewardPool__factory.js +0 -534
  493. package/lib/types/factories/IConvexToken__factory.d.ts +0 -198
  494. package/lib/types/factories/IConvexToken__factory.js +0 -267
  495. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.d.ts +0 -254
  496. package/lib/types/factories/IConvexV1BaseRewardPoolAdapter__factory.js +0 -341
  497. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.d.ts +0 -23
  498. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapterEvents__factory.js +0 -38
  499. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.d.ts +0 -181
  500. package/lib/types/factories/IConvexV1BoosterAdapter.sol/IConvexV1BoosterAdapter__factory.js +0 -245
  501. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.d.ts +0 -2
  502. package/lib/types/factories/IConvexV1BoosterAdapter.sol/index.js +0 -10
  503. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.d.ts +0 -268
  504. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Events__factory.js +0 -353
  505. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.d.ts +0 -44
  506. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2Exceptions__factory.js +0 -64
  507. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.d.ts +0 -576
  508. package/lib/types/factories/ICreditConfiguratorV2.sol/ICreditConfiguratorV2__factory.js +0 -749
  509. package/lib/types/factories/ICreditConfiguratorV2.sol/index.d.ts +0 -3
  510. package/lib/types/factories/ICreditConfiguratorV2.sol/index.js +0 -12
  511. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.d.ts +0 -273
  512. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3Events__factory.js +0 -357
  513. package/lib/types/factories/ICreditConfiguratorV3.sol/ICreditConfiguratorV3__factory.d.ts +0 -605
  514. package/lib/types/factories/ICreditConfiguratorV3.sol/index.d.ts +0 -2
  515. package/lib/types/factories/ICreditConfiguratorV3.sol/index.js +0 -10
  516. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.d.ts +0 -263
  517. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Events__factory.js +0 -340
  518. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.d.ts +0 -140
  519. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Exceptions__factory.js +0 -185
  520. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.d.ts +0 -81
  521. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2Extended__factory.js +0 -114
  522. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.d.ts +0 -26
  523. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2V2__factory.js +0 -42
  524. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.d.ts +0 -901
  525. package/lib/types/factories/ICreditFacadeV2.sol/ICreditFacadeV2__factory.js +0 -1163
  526. package/lib/types/factories/ICreditFacadeV2.sol/index.d.ts +0 -5
  527. package/lib/types/factories/ICreditFacadeV2.sol/index.js +0 -16
  528. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.d.ts +0 -188
  529. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3Events__factory.js +0 -244
  530. package/lib/types/factories/ICreditFacadeV3.sol/ICreditFacadeV3__factory.d.ts +0 -617
  531. package/lib/types/factories/ICreditFacadeV3.sol/index.d.ts +0 -2
  532. package/lib/types/factories/ICreditFacadeV3.sol/index.js +0 -10
  533. package/lib/types/factories/ICreditFacadeV3Multicall__factory.d.ts +0 -200
  534. package/lib/types/factories/ICreditFacadeV3Multicall__factory.js +0 -267
  535. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.d.ts +0 -33
  536. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Events__factory.js +0 -51
  537. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.d.ts +0 -60
  538. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.js +0 -84
  539. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.d.ts +0 -707
  540. package/lib/types/factories/ICreditManagerV2.sol/ICreditManagerV2__factory.js +0 -932
  541. package/lib/types/factories/ICreditManagerV2.sol/index.d.ts +0 -3
  542. package/lib/types/factories/ICreditManagerV2.sol/index.js +0 -12
  543. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.d.ts +0 -18
  544. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3Events__factory.js +0 -32
  545. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.d.ts +0 -1015
  546. package/lib/types/factories/ICreditManagerV3.sol/ICreditManagerV3__factory.js +0 -1331
  547. package/lib/types/factories/ICreditManagerV3.sol/index.d.ts +0 -2
  548. package/lib/types/factories/ICreditManagerV3.sol/index.js +0 -10
  549. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.d.ts +0 -678
  550. package/lib/types/factories/ICurvePool_2.sol/ICurvePool2Assets__factory.js +0 -897
  551. package/lib/types/factories/ICurvePool_2.sol/index.d.ts +0 -1
  552. package/lib/types/factories/ICurvePool_2.sol/index.js +0 -8
  553. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.d.ts +0 -678
  554. package/lib/types/factories/ICurvePool_3.sol/ICurvePool3Assets__factory.js +0 -897
  555. package/lib/types/factories/ICurvePool_3.sol/index.d.ts +0 -1
  556. package/lib/types/factories/ICurvePool_3.sol/index.js +0 -8
  557. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.d.ts +0 -678
  558. package/lib/types/factories/ICurvePool_4.sol/ICurvePool4Assets__factory.js +0 -897
  559. package/lib/types/factories/ICurvePool_4.sol/index.d.ts +0 -1
  560. package/lib/types/factories/ICurvePool_4.sol/index.js +0 -8
  561. package/lib/types/factories/ICurvePool__factory.d.ts +0 -566
  562. package/lib/types/factories/ICurvePool__factory.js +0 -751
  563. package/lib/types/factories/ICurveV1Adapter__factory.d.ts +0 -664
  564. package/lib/types/factories/ICurveV1Adapter__factory.js +0 -875
  565. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.d.ts +0 -730
  566. package/lib/types/factories/ICurveV1_2AssetsAdapter__factory.js +0 -962
  567. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.d.ts +0 -730
  568. package/lib/types/factories/ICurveV1_3AssetsAdapter__factory.js +0 -962
  569. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.d.ts +0 -730
  570. package/lib/types/factories/ICurveV1_4AssetsAdapter__factory.js +0 -962
  571. package/lib/types/factories/IDaiLikePermit__factory.d.ts +0 -46
  572. package/lib/types/factories/IDaiLikePermit__factory.js +0 -67
  573. package/lib/types/factories/IDataCompressorV2_10__factory.d.ts +0 -1222
  574. package/lib/types/factories/IDataCompressorV2_10__factory.js +0 -1565
  575. package/lib/types/factories/IDataCompressorV3_00__factory.d.ts +0 -1490
  576. package/lib/types/factories/IDataCompressorV3_00__factory.js +0 -1906
  577. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.d.ts +0 -38
  578. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributorEvents__factory.js +0 -57
  579. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.d.ts +0 -84
  580. package/lib/types/factories/IDegenDistributor.sol/IDegenDistributor__factory.js +0 -117
  581. package/lib/types/factories/IDegenDistributor.sol/index.d.ts +0 -2
  582. package/lib/types/factories/IDegenDistributor.sol/index.js +0 -10
  583. package/lib/types/factories/IERC20Metadata__factory.d.ts +0 -178
  584. package/lib/types/factories/IERC20Metadata__factory.js +0 -241
  585. package/lib/types/factories/IERC20Permit__factory.d.ts +0 -66
  586. package/lib/types/factories/IERC20Permit__factory.js +0 -94
  587. package/lib/types/factories/IERC20__factory.d.ts +0 -148
  588. package/lib/types/factories/IERC20__factory.js +0 -202
  589. package/lib/types/factories/IERC4626__factory.d.ts +0 -473
  590. package/lib/types/factories/IERC4626__factory.js +0 -631
  591. package/lib/types/factories/IInterestRateModel__factory.d.ts +0 -36
  592. package/lib/types/factories/IInterestRateModel__factory.js +0 -56
  593. package/lib/types/factories/ILidoV1Adapter__factory.d.ts +0 -140
  594. package/lib/types/factories/ILidoV1Adapter__factory.js +0 -191
  595. package/lib/types/factories/IOffchainOracle__factory.d.ts +0 -48
  596. package/lib/types/factories/IOffchainOracle__factory.js +0 -72
  597. package/lib/types/factories/IPermit2__factory.d.ts +0 -113
  598. package/lib/types/factories/IPermit2__factory.js +0 -155
  599. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.d.ts +0 -163
  600. package/lib/types/factories/IPoolService.sol/IPoolServiceEvents__factory.js +0 -215
  601. package/lib/types/factories/IPoolService.sol/IPoolService__factory.d.ts +0 -437
  602. package/lib/types/factories/IPoolService.sol/IPoolService__factory.js +0 -574
  603. package/lib/types/factories/IPoolService.sol/index.d.ts +0 -2
  604. package/lib/types/factories/IPoolService.sol/index.js +0 -10
  605. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.d.ts +0 -153
  606. package/lib/types/factories/IPoolV3.sol/IPoolV3Events__factory.js +0 -203
  607. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.d.ts +0 -1068
  608. package/lib/types/factories/IPoolV3.sol/IPoolV3__factory.js +0 -1402
  609. package/lib/types/factories/IPoolV3.sol/index.d.ts +0 -2
  610. package/lib/types/factories/IPoolV3.sol/index.js +0 -10
  611. package/lib/types/factories/IPriceOracleBase__factory.d.ts +0 -104
  612. package/lib/types/factories/IPriceOracleBase__factory.js +0 -147
  613. package/lib/types/factories/IRouter__factory.d.ts +0 -382
  614. package/lib/types/factories/IRouter__factory.js +0 -507
  615. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.d.ts +0 -28
  616. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterEvents__factory.js +0 -44
  617. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.d.ts +0 -12
  618. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.js +0 -24
  619. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.d.ts +0 -217
  620. package/lib/types/factories/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +0 -290
  621. package/lib/types/factories/IUniswapV2Adapter.sol/index.d.ts +0 -3
  622. package/lib/types/factories/IUniswapV2Adapter.sol/index.js +0 -12
  623. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.d.ts +0 -172
  624. package/lib/types/factories/IUniswapV3.sol/ISwapRouter__factory.js +0 -233
  625. package/lib/types/factories/IUniswapV3.sol/index.d.ts +0 -1
  626. package/lib/types/factories/IUniswapV3.sol/index.js +0 -8
  627. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.d.ts +0 -33
  628. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterEvents__factory.js +0 -50
  629. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.d.ts +0 -12
  630. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.js +0 -24
  631. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.d.ts +0 -390
  632. package/lib/types/factories/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +0 -515
  633. package/lib/types/factories/IUniswapV3Adapter.sol/index.d.ts +0 -3
  634. package/lib/types/factories/IUniswapV3Adapter.sol/index.js +0 -12
  635. package/lib/types/factories/IVersion__factory.d.ts +0 -18
  636. package/lib/types/factories/IVersion__factory.js +0 -32
  637. package/lib/types/factories/IWERC20Zapper__factory.d.ts +0 -176
  638. package/lib/types/factories/IWERC20Zapper__factory.js +0 -240
  639. package/lib/types/factories/IWETHGateway__factory.d.ts +0 -58
  640. package/lib/types/factories/IWETHGateway__factory.js +0 -83
  641. package/lib/types/factories/IWETHZapper__factory.d.ts +0 -168
  642. package/lib/types/factories/IWETHZapper__factory.js +0 -230
  643. package/lib/types/factories/IWETH__factory.d.ts +0 -194
  644. package/lib/types/factories/IWETH__factory.js +0 -260
  645. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.d.ts +0 -143
  646. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3Events__factory.js +0 -188
  647. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.d.ts +0 -366
  648. package/lib/types/factories/IWithdrawalManagerV3.sol/IWithdrawalManagerV3__factory.js +0 -479
  649. package/lib/types/factories/IWithdrawalManagerV3.sol/index.d.ts +0 -2
  650. package/lib/types/factories/IWithdrawalManagerV3.sol/index.js +0 -10
  651. package/lib/types/factories/IYVault__factory.d.ts +0 -304
  652. package/lib/types/factories/IYVault__factory.js +0 -408
  653. package/lib/types/factories/IYearnV2Adapter__factory.d.ts +0 -222
  654. package/lib/types/factories/IYearnV2Adapter__factory.js +0 -299
  655. package/lib/types/factories/IZapper__factory.d.ts +0 -136
  656. package/lib/types/factories/IZapper__factory.js +0 -187
  657. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.d.ts +0 -250
  658. package/lib/types/factories/IstETH.sol/IstETHGetters__factory.js +0 -337
  659. package/lib/types/factories/IstETH.sol/IstETH__factory.d.ts +0 -264
  660. package/lib/types/factories/IstETH.sol/IstETH__factory.js +0 -356
  661. package/lib/types/factories/IstETH.sol/index.d.ts +0 -2
  662. package/lib/types/factories/IstETH.sol/index.js +0 -10
  663. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.d.ts +0 -236
  664. package/lib/types/factories/IwstETH.sol/IwstETHGetters__factory.js +0 -318
  665. package/lib/types/factories/IwstETH.sol/IwstETH__factory.d.ts +0 -264
  666. package/lib/types/factories/IwstETH.sol/IwstETH__factory.js +0 -356
  667. package/lib/types/factories/IwstETH.sol/index.d.ts +0 -2
  668. package/lib/types/factories/IwstETH.sol/index.js +0 -10
  669. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.d.ts +0 -48
  670. package/lib/types/factories/IwstETHGateway.sol/IwstETHGateWay__factory.js +0 -71
  671. package/lib/types/factories/IwstETHGateway.sol/index.d.ts +0 -1
  672. package/lib/types/factories/IwstETHGateway.sol/index.js +0 -8
  673. package/lib/types/factories/IwstETHV1Adapter__factory.d.ts +0 -152
  674. package/lib/types/factories/IwstETHV1Adapter__factory.js +0 -207
  675. package/lib/types/factories/Ownable__factory.d.ts +0 -49
  676. package/lib/types/factories/Ownable__factory.js +0 -71
  677. package/lib/types/factories/SafeERC20__factory.d.ts +0 -49
  678. package/lib/types/factories/SafeERC20__factory.js +0 -77
  679. package/lib/types/factories/index.d.ts +0 -61
  680. package/lib/types/factories/index.js +0 -128
  681. package/lib/utils/repeater.d.ts +0 -1
  682. package/lib/utils/repeater.js +0 -19
  683. package/lib/watchers/creditAccountWatcher.d.ts +0 -36
  684. package/lib/watchers/creditAccountWatcher.js +0 -238
  685. package/lib/watchers/creditAccountWatcher.spec.d.ts +0 -1
  686. package/lib/watchers/creditAccountWatcher.spec.js +0 -208
  687. package/lib/watchers/creditManagerWatcher.d.ts +0 -8
  688. package/lib/watchers/creditManagerWatcher.js +0 -37
  689. package/lib/watchers/creditManagerWatcher.spec.d.ts +0 -1
  690. package/lib/watchers/creditManagerWatcher.spec.js +0 -107
  691. /package/lib/core/{strategy.spec.d.ts → gaugeMath.spec.d.ts} +0 -0
  692. /package/lib/{core/errors.js → payload/bot.js} +0 -0
  693. /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(null);
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(null);
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
  });