@gearbox-protocol/sdk 3.0.0-next.26 → 3.0.0-next.260

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