@gearbox-protocol/sdk 3.0.0-next.17 → 3.0.0-next.170

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