@gearbox-protocol/sdk 3.0.0-next.20 → 3.0.0-next.201

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