@gearbox-protocol/sdk 3.0.0-next.19 → 3.0.0-next.191

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