@gearbox-protocol/sdk 1.22.3 → 1.23.0

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 (283) hide show
  1. package/lib/apy/convexAPY.d.ts +10 -10
  2. package/lib/apy/convexAPY.js +100 -121
  3. package/lib/apy/curveAPY.d.ts +3 -4
  4. package/lib/apy/curveAPY.js +57 -111
  5. package/lib/apy/index.js +4 -6
  6. package/lib/apy/lidoAPY.d.ts +1 -2
  7. package/lib/apy/lidoAPY.js +14 -62
  8. package/lib/apy/yearnAPY.d.ts +2 -3
  9. package/lib/apy/yearnAPY.js +26 -82
  10. package/lib/contracts/contracts.js +9 -22
  11. package/lib/contracts/contractsRegister.js +39 -51
  12. package/lib/contracts/protocols.js +10 -11
  13. package/lib/core/adapter.js +9 -4
  14. package/lib/core/assets.d.ts +6 -7
  15. package/lib/core/assets.js +60 -70
  16. package/lib/core/chains.js +30 -80
  17. package/lib/core/constants.d.ts +9 -10
  18. package/lib/core/constants.js +9 -12
  19. package/lib/core/creditAccount.d.ts +20 -20
  20. package/lib/core/creditAccount.js +123 -134
  21. package/lib/core/creditAccount.spec.js +50 -52
  22. package/lib/core/creditManager.d.ts +26 -26
  23. package/lib/core/creditManager.js +172 -136
  24. package/lib/core/creditManager.spec.js +59 -61
  25. package/lib/core/creditSession.d.ts +12 -13
  26. package/lib/core/creditSession.js +120 -77
  27. package/lib/core/errors.d.ts +2 -3
  28. package/lib/core/errors.js +11 -27
  29. package/lib/core/eventOrTx.js +35 -73
  30. package/lib/core/events.d.ts +31 -24
  31. package/lib/core/events.js +702 -702
  32. package/lib/core/operations.js +11 -5
  33. package/lib/core/pool/data.d.ts +29 -29
  34. package/lib/core/pool/data.js +153 -112
  35. package/lib/core/pool/operation.d.ts +1 -2
  36. package/lib/core/pool/operation.js +23 -35
  37. package/lib/core/priceOracle.d.ts +6 -6
  38. package/lib/core/priceOracle.js +23 -29
  39. package/lib/core/rewardClaimer.d.ts +2 -2
  40. package/lib/core/rewardClaimer.js +5 -48
  41. package/lib/core/rewardConvex.js +54 -114
  42. package/lib/core/rewardConvex.spec.js +41 -43
  43. package/lib/core/strategy.d.ts +5 -6
  44. package/lib/core/strategy.js +67 -69
  45. package/lib/core/strategy.spec.js +32 -34
  46. package/lib/core/tokenDistributor.d.ts +1 -2
  47. package/lib/core/trade.d.ts +6 -6
  48. package/lib/core/trade.js +70 -115
  49. package/lib/core/transactions.d.ts +21 -22
  50. package/lib/core/transactions.js +285 -308
  51. package/lib/index.d.ts +0 -2
  52. package/lib/index.js +0 -2
  53. package/lib/oracles/oracles.d.ts +1 -2
  54. package/lib/oracles/priceFeeds.js +2 -3
  55. package/lib/parsers/ERC20Parser.js +20 -38
  56. package/lib/parsers/abstractParser.js +33 -31
  57. package/lib/parsers/addressProviderParser.js +12 -30
  58. package/lib/parsers/airdropDistributorParser.js +12 -30
  59. package/lib/parsers/convexBaseRewardPoolAdapterParser.js +24 -42
  60. package/lib/parsers/convexBaseRewardPoolAdapterParser.spec.js +11 -11
  61. package/lib/parsers/convexBoosterAdapterParser.js +26 -44
  62. package/lib/parsers/convexBoosterAdapterParser.spec.js +10 -10
  63. package/lib/parsers/convextRewardPoolParser.js +12 -30
  64. package/lib/parsers/creditFacadeParser.js +26 -45
  65. package/lib/parsers/creditFacadeParser.spec.js +13 -13
  66. package/lib/parsers/creditManagerParser.js +12 -30
  67. package/lib/parsers/curveAdapterParser.js +60 -78
  68. package/lib/parsers/curveAdapterParser.spec.js +20 -27
  69. package/lib/parsers/dataCompressorParser.js +12 -30
  70. package/lib/parsers/lidoAdapterParser.js +15 -33
  71. package/lib/parsers/lidoAdapterParser.spec.js +9 -9
  72. package/lib/parsers/lidoOracleParser.js +12 -30
  73. package/lib/parsers/lidoSTETHParser.js +19 -37
  74. package/lib/parsers/multicallParser.js +16 -34
  75. package/lib/parsers/offchainOracleParser.js +13 -31
  76. package/lib/parsers/poolParser.js +11 -29
  77. package/lib/parsers/priceOracleParser.js +13 -31
  78. package/lib/parsers/txParser.js +86 -96
  79. package/lib/parsers/uniV2AdapterParser.js +35 -55
  80. package/lib/parsers/uniV2AdapterParser.spec.js +15 -16
  81. package/lib/parsers/uniV3AdapterParser.js +56 -74
  82. package/lib/parsers/uniV3AdapterParser.spec.js +23 -24
  83. package/lib/parsers/wstETHAdapterParser.js +25 -43
  84. package/lib/parsers/wstETHAdapterParser.spec.js +11 -11
  85. package/lib/parsers/yearnAdapterParser.spec.js +17 -17
  86. package/lib/parsers/yearnV2AdapterParser.js +25 -43
  87. package/lib/pathfinder/core.d.ts +3 -4
  88. package/lib/pathfinder/pathOptions.js +52 -101
  89. package/lib/pathfinder/pathOptions.spec.js +55 -57
  90. package/lib/pathfinder/pathfinder.d.ts +3 -3
  91. package/lib/pathfinder/pathfinder.js +109 -202
  92. package/lib/pathfinder/pathfinder.spec.js +13 -13
  93. package/lib/strategies/convex.js +111 -123
  94. package/lib/strategies/creditFacade.js +34 -37
  95. package/lib/strategies/curve.js +74 -80
  96. package/lib/strategies/lido.js +26 -32
  97. package/lib/strategies/uniswapV2.js +21 -24
  98. package/lib/strategies/uniswapV3.js +33 -36
  99. package/lib/strategies/yearn.js +47 -59
  100. package/lib/tokens/balancer.js +3 -5
  101. package/lib/tokens/convex.js +14 -29
  102. package/lib/tokens/curveLP.js +22 -28
  103. package/lib/tokens/gear.js +1 -1
  104. package/lib/tokens/normal.js +3 -5
  105. package/lib/tokens/token.js +29 -35
  106. package/lib/tokens/tokenData.d.ts +0 -9
  107. package/lib/tokens/tokenData.js +17 -15
  108. package/lib/tokens/yearn.js +3 -5
  109. package/lib/types/factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface__factory.js +9 -12
  110. package/lib/types/factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface__factory.js +9 -12
  111. package/lib/types/factories/@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface__factory.js +9 -12
  112. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IACL.sol/IACLEvents__factory.js +9 -12
  113. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IACL.sol/IACLExceptions__factory.js +9 -12
  114. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IACL.sol/IACL__factory.js +9 -12
  115. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IAccountFactory.sol/IAccountFactoryEvents__factory.js +9 -12
  116. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IAccountFactory.sol/IAccountFactoryGetters__factory.js +9 -12
  117. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IAccountFactory.sol/IAccountFactory__factory.js +9 -12
  118. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IAddressProvider.sol/IAddressProviderEvents__factory.js +9 -12
  119. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IAddressProvider.sol/IAddressProvider__factory.js +9 -12
  120. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IAirdropDistributor.sol/IAirdropDistributorEvents__factory.js +9 -12
  121. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IAirdropDistributor.sol/IAirdropDistributor__factory.js +9 -12
  122. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IContractsRegister.sol/IContractsRegisterEvents__factory.js +9 -12
  123. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IContractsRegister.sol/IContractsRegister__factory.js +9 -12
  124. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditAccount.sol/ICrediAccountExceptions__factory.js +9 -12
  125. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditAccount.sol/ICreditAccount__factory.js +9 -12
  126. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditConfigurator.sol/ICreditConfiguratorEvents__factory.js +9 -12
  127. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditConfigurator.sol/ICreditConfiguratorExceptions__factory.js +9 -12
  128. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditConfigurator.sol/ICreditConfigurator__factory.js +9 -12
  129. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditFacade.sol/ICreditFacadeEvents__factory.js +9 -12
  130. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditFacade.sol/ICreditFacadeExceptions__factory.js +9 -12
  131. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditFacade.sol/ICreditFacadeExtended__factory.js +9 -12
  132. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditFacade.sol/ICreditFacade__factory.js +9 -12
  133. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2Events__factory.js +9 -12
  134. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2Exceptions__factory.js +9 -12
  135. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ICreditManagerV2.sol/ICreditManagerV2__factory.js +9 -12
  136. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDataCompressor.sol/IDataCompressorExceptions__factory.js +9 -12
  137. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDataCompressor.sol/IDataCompressor__factory.js +9 -12
  138. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDegenDistributor.sol/IDegenDistributorEvents__factory.js +9 -12
  139. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDegenDistributor.sol/IDegenDistributor__factory.js +9 -12
  140. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDegenNFT.sol/IDegenNFTEvents__factory.js +9 -12
  141. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDegenNFT.sol/IDegenNFTExceptions__factory.js +9 -12
  142. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDegenNFT.sol/IDegenNFT__factory.js +9 -12
  143. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDieselToken.sol/IDieselTokenExceptions__factory.js +9 -12
  144. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IDieselToken.sol/IDieselToken__factory.js +9 -12
  145. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IInterestRateModel__factory.js +9 -12
  146. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeedEvents__factory.js +9 -12
  147. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeedExceptions__factory.js +9 -12
  148. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/ILPPriceFeed.sol/ILPPriceFeed__factory.js +9 -12
  149. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPhantomERC20__factory.js +9 -12
  150. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPoolService.sol/IPoolServiceEvents__factory.js +9 -12
  151. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPoolService.sol/IPoolService__factory.js +9 -12
  152. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPriceFeedType__factory.js +9 -12
  153. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Events__factory.js +9 -12
  154. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Exceptions__factory.js +9 -12
  155. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2Ext__factory.js +9 -12
  156. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IPriceOracle.sol/IPriceOracleV2__factory.js +9 -12
  157. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IVersion__factory.js +9 -12
  158. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/IWETHGateway__factory.js +9 -12
  159. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/V1/ICreditFilter__factory.js +9 -12
  160. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/V1/ICreditManager__factory.js +9 -12
  161. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/adapters/IAdapter.sol/IAdapterExceptions__factory.js +9 -12
  162. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/adapters/IAdapter.sol/IAdapter__factory.js +9 -12
  163. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/adapters/IUniversalAdapter.sol/IUniversalAdapterExceptions__factory.js +9 -12
  164. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/adapters/IUniversalAdapter.sol/IUniversalAdapter__factory.js +9 -12
  165. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/interfaces/external/IWETH__factory.js +9 -12
  166. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/pool/PoolService__factory.js +27 -50
  167. package/lib/types/factories/@gearbox-protocol/core-v2/contracts/test/interfaces/ITokenTestSuite__factory.js +9 -12
  168. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/IBaseRewardPool__factory.js +9 -12
  169. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/IBooster__factory.js +9 -12
  170. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/IClaimZap__factory.js +9 -12
  171. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/IConvexToken__factory.js +9 -12
  172. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/IRewards.sol/IBasicRewards__factory.js +9 -12
  173. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/IRewards.sol/IRewards__factory.js +9 -12
  174. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/ICrvDeposit__factory.js +9 -12
  175. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/ICurveGauge__factory.js +9 -12
  176. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/ICurveVoteEscrow__factory.js +9 -12
  177. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IDeposit__factory.js +9 -12
  178. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IFeeDistro__factory.js +9 -12
  179. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IMinter__factory.js +9 -12
  180. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IPools__factory.js +9 -12
  181. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IRegistry__factory.js +9 -12
  182. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IRewardFactory__factory.js +9 -12
  183. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IRewards__factory.js +9 -12
  184. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IStaker__factory.js +9 -12
  185. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IStashFactory__factory.js +9 -12
  186. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IStash__factory.js +9 -12
  187. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/ITokenFactory__factory.js +9 -12
  188. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/ITokenMinter__factory.js +9 -12
  189. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IVestedEscrow__factory.js +9 -12
  190. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IVoting__factory.js +9 -12
  191. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/convex/Interfaces.sol/IWalletChecker__factory.js +9 -12
  192. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/curve/ICurvePoolStETH__factory.js +9 -12
  193. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/curve/ICurvePool_2.sol/ICurvePool2Assets__factory.js +9 -12
  194. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/curve/ICurvePool_3.sol/ICurvePool3Assets__factory.js +9 -12
  195. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/curve/ICurvePool_4.sol/ICurvePool4Assets__factory.js +9 -12
  196. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/curve/ICurvePool__factory.js +9 -12
  197. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/curve/ICurveRegistry__factory.js +9 -12
  198. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/lido/ILidoOracle__factory.js +9 -12
  199. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/lido/IstETH.sol/IstETHGetters__factory.js +9 -12
  200. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/lido/IstETH.sol/IstETH__factory.js +9 -12
  201. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/lido/IwstETH.sol/IwstETHGetters__factory.js +9 -12
  202. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/lido/IwstETH.sol/IwstETH__factory.js +9 -12
  203. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/lido/IwstETHGateway.sol/IwstETHGateWay__factory.js +9 -12
  204. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/uniswap/IQuoter__factory.js +9 -12
  205. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/uniswap/IUniswapV2Router01__factory.js +9 -12
  206. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/uniswap/IUniswapV2Router02__factory.js +9 -12
  207. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/uniswap/IUniswapV3.sol/ISwapRouter__factory.js +9 -12
  208. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/integrations/yearn/IYVault__factory.js +9 -12
  209. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/convex/IConvexV1BaseRewardPoolAdapter.sol/IConvexV1BaseRewardPoolAdapterErrors__factory.js +9 -12
  210. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/convex/IConvexV1BaseRewardPoolAdapter.sol/IConvexV1BaseRewardPoolAdapter__factory.js +9 -12
  211. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/convex/IConvexV1BoosterAdapter__factory.js +9 -12
  212. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/curve/ICurveV1Adapter.sol/ICurveV1AdapterExceptions__factory.js +9 -12
  213. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/curve/ICurveV1Adapter.sol/ICurveV1Adapter__factory.js +9 -12
  214. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/curve/ICurveV1_2AssetsAdapter__factory.js +9 -12
  215. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/curve/ICurveV1_3AssetsAdapter__factory.js +9 -12
  216. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/curve/ICurveV1_4AssetsAdapter__factory.js +9 -12
  217. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/lido/ILidoV1Adapter.sol/ILidoV1AdapterEvents__factory.js +9 -12
  218. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/lido/ILidoV1Adapter.sol/ILidoV1AdapterExceptions__factory.js +9 -12
  219. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/lido/ILidoV1Adapter.sol/ILidoV1Adapter__factory.js +9 -12
  220. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/lido/IwstETHV1Adapter__factory.js +9 -12
  221. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/uniswap/IUniswapPathChecker__factory.js +9 -12
  222. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/uniswap/IUniswapV2Adapter.sol/IUniswapV2AdapterExceptions__factory.js +9 -12
  223. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/uniswap/IUniswapV2Adapter.sol/IUniswapV2Adapter__factory.js +9 -12
  224. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/uniswap/IUniswapV3Adapter.sol/IUniswapV3AdapterExceptions__factory.js +9 -12
  225. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/uniswap/IUniswapV3Adapter.sol/IUniswapV3Adapter__factory.js +9 -12
  226. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/interfaces/yearn/IYearnV2Adapter__factory.js +9 -12
  227. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/test/config/SupportedContracts.sol/ISupportedContracts__factory.js +9 -12
  228. package/lib/types/factories/@gearbox-protocol/integrations-v2/contracts/test/mocks/integrations/LidoMock.sol/ILidoMockEvents__factory.js +9 -12
  229. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IClosePathResolver__factory.js +9 -12
  230. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IDepositor.sol/IDepositorOptions__factory.js +9 -12
  231. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IDepositor.sol/IDepositor__factory.js +9 -12
  232. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IGasPricer__factory.js +9 -12
  233. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/ILPWorker.sol/ILPWorkerOptions__factory.js +9 -12
  234. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/ILPWorker.sol/ILPWorker__factory.js +9 -12
  235. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IPathResolver__factory.js +9 -12
  236. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IRouterComponent__factory.js +9 -12
  237. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IRouter__factory.js +9 -12
  238. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/ISwapAggregator__factory.js +9 -12
  239. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/ISwapper__factory.js +9 -12
  240. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IWithdrawer.sol/IWithdrawerOptions__factory.js +9 -12
  241. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IWithdrawer.sol/IWithdrawer__factory.js +9 -12
  242. package/lib/types/factories/@gearbox-protocol/router/contracts/interfaces/IWrapper__factory.js +9 -12
  243. package/lib/types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.js +9 -12
  244. package/lib/types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.js +9 -12
  245. package/lib/types/factories/@openzeppelin/contracts/token/ERC721/IERC721Receiver__factory.js +9 -12
  246. package/lib/types/factories/@openzeppelin/contracts/token/ERC721/IERC721__factory.js +9 -12
  247. package/lib/types/factories/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata__factory.js +9 -12
  248. package/lib/types/factories/@openzeppelin/contracts/utils/introspection/IERC165__factory.js +9 -12
  249. package/lib/types/factories/contracts/IGas__factory.js +9 -12
  250. package/lib/types/factories/contracts/IGnosisSafeSignatureValidator__factory.js +9 -12
  251. package/lib/types/factories/contracts/ITokenDistributor.sol/ITokenDistributorEvents__factory.js +9 -12
  252. package/lib/types/factories/contracts/ITokenDistributor.sol/ITokenDistributorExceptions__factory.js +9 -12
  253. package/lib/types/factories/contracts/ITokenDistributor.sol/ITokenDistributor__factory.js +9 -12
  254. package/lib/types/factories/contracts/support/IOffchainOracle__factory.js +9 -12
  255. package/lib/types/factories/contracts/support/MultiCall.sol/Multicall2__factory.js +27 -50
  256. package/lib/utils/errors.js +1 -1
  257. package/lib/utils/extracter.js +4 -4
  258. package/lib/utils/formatter.d.ts +8 -8
  259. package/lib/utils/formatter.js +73 -87
  260. package/lib/utils/loading.js +3 -3
  261. package/lib/utils/mappers.js +7 -34
  262. package/lib/utils/math.d.ts +10 -7
  263. package/lib/utils/math.js +22 -25
  264. package/lib/utils/multicall.js +32 -98
  265. package/lib/utils/price.d.ts +3 -4
  266. package/lib/utils/price.js +8 -20
  267. package/lib/utils/repeater.js +12 -53
  268. package/lib/utils/validate.js +2 -2
  269. package/lib/watchers/creditAccountWatcher.js +136 -237
  270. package/lib/watchers/creditAccountWatcher.spec.js +51 -68
  271. package/lib/watchers/creditManagerWatcher.js +21 -71
  272. package/lib/watchers/creditManagerWatcher.spec.js +20 -23
  273. package/package.json +2 -2
  274. package/lib/core/history.d.ts +0 -42
  275. package/lib/core/history.js +0 -2
  276. package/lib/core/wcOperation/abstractOperations.d.ts +0 -23
  277. package/lib/core/wcOperation/abstractOperations.js +0 -39
  278. package/lib/core/wcOperation/index.d.ts +0 -11
  279. package/lib/core/wcOperation/index.js +0 -30
  280. package/lib/core/wcOperation/operations.d.ts +0 -88
  281. package/lib/core/wcOperation/operations.js +0 -146
  282. package/lib/core/wcOperation/types.d.ts +0 -15
  283. package/lib/core/wcOperation/types.js +0 -2
@@ -1,53 +1,66 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.calcHealthFactor = exports.ChartsCreditManagerData = exports.CreditManagerData = void 0;
15
- var ethers_1 = require("ethers");
16
- var txParser_1 = require("../parsers/txParser");
17
- var decimals_1 = require("../tokens/decimals");
18
- var token_1 = require("../tokens/token");
19
- var types_1 = require("../types");
20
- var price_1 = require("../utils/price");
21
- var constants_1 = require("./constants");
22
- var errors_1 = require("./errors");
23
- var CreditManagerData = /** @class */ (function () {
24
- function CreditManagerData(payload) {
25
- this.isPaused = false;
4
+ const txParser_1 = require("../parsers/txParser");
5
+ const decimals_1 = require("../tokens/decimals");
6
+ const token_1 = require("../tokens/token");
7
+ const types_1 = require("../types");
8
+ const formatter_1 = require("../utils/formatter");
9
+ const price_1 = require("../utils/price");
10
+ const constants_1 = require("./constants");
11
+ const errors_1 = require("./errors");
12
+ class CreditManagerData {
13
+ address;
14
+ underlyingToken;
15
+ pool;
16
+ isWETH;
17
+ canBorrow;
18
+ borrowRate;
19
+ minAmount;
20
+ maxAmount;
21
+ maxLeverageFactor; // for V1 only
22
+ availableLiquidity;
23
+ collateralTokens;
24
+ adapters;
25
+ liquidationThresholds;
26
+ version;
27
+ creditFacade; // V2 only: address of creditFacade
28
+ creditConfigurator; // V2 only: address of creditFacade
29
+ isDegenMode; // V2 only: true if contract is in Degen mode
30
+ degenNFT; // V2 only: degenNFT, address(0) if not in degen mode
31
+ isIncreaseDebtForbidden; // V2 only: true if increasing debt is forbidden
32
+ forbiddenTokenMask; // V2 only: mask which forbids some particular tokens
33
+ maxEnabledTokensLength;
34
+ feeInterest;
35
+ feeLiquidation;
36
+ liquidationDiscount;
37
+ feeLiquidationExpired;
38
+ liquidationDiscountExpired;
39
+ isPaused = false;
40
+ constructor(payload) {
26
41
  this.address = payload.addr.toLowerCase();
27
42
  this.underlyingToken = payload.underlying.toLowerCase();
28
43
  this.pool = payload.pool.toLowerCase();
29
44
  this.isWETH = payload.isWETH;
30
45
  this.canBorrow = payload.canBorrow;
31
46
  this.maxEnabledTokensLength = payload.maxEnabledTokensLength;
32
- this.borrowRate = payload.borrowRate
33
- .mul(payload.feeInterest + constants_1.PERCENTAGE_FACTOR)
34
- .mul(constants_1.PERCENTAGE_DECIMALS)
35
- .div(constants_1.RAY)
36
- .toNumber();
37
- this.minAmount = payload.minAmount;
38
- this.maxAmount = payload.maxAmount;
39
- this.maxLeverageFactor = ethers_1.BigNumber.from(payload.maxLeverageFactor).toNumber();
40
- this.availableLiquidity = payload.availableLiquidity;
41
- this.collateralTokens = payload.collateralTokens.map(function (t) { return t.toLowerCase(); });
42
- this.adapters = payload.adapters.reduce(function (acc, _a) {
43
- var _b;
44
- var allowedContract = _a.allowedContract, adapter = _a.adapter;
45
- return (__assign(__assign({}, acc), (_b = {}, _b[allowedContract.toLowerCase()] = adapter.toLowerCase(), _b)));
46
- }, {});
47
- this.liquidationThresholds = payload.liquidationThresholds.reduce(function (acc, threshold, index) {
48
- var address = payload.collateralTokens[index];
47
+ this.borrowRate = Number(((0, formatter_1.toBigInt)(payload.borrowRate || 0) *
48
+ ((0, formatter_1.toBigInt)(payload.feeInterest || 0) + constants_1.PERCENTAGE_FACTOR) *
49
+ constants_1.PERCENTAGE_DECIMALS) /
50
+ constants_1.RAY);
51
+ this.minAmount = (0, formatter_1.toBigInt)(payload.minAmount || 0);
52
+ this.maxAmount = (0, formatter_1.toBigInt)(payload.maxAmount || 0);
53
+ this.maxLeverageFactor = Number((0, formatter_1.toBigInt)(payload.maxLeverageFactor || 0));
54
+ this.availableLiquidity = (0, formatter_1.toBigInt)(payload.availableLiquidity || 0);
55
+ this.collateralTokens = payload.collateralTokens.map(t => t.toLowerCase());
56
+ this.adapters = payload.adapters.reduce((acc, { allowedContract, adapter }) => ({
57
+ ...acc,
58
+ [allowedContract.toLowerCase()]: adapter.toLowerCase(),
59
+ }), {});
60
+ this.liquidationThresholds = payload.liquidationThresholds.reduce((acc, threshold, index) => {
61
+ const address = payload.collateralTokens[index];
49
62
  if (address)
50
- acc[address.toLowerCase()] = threshold;
63
+ acc[address.toLowerCase()] = (0, formatter_1.toBigInt)(threshold || 0);
51
64
  return acc;
52
65
  }, {});
53
66
  this.version = payload.version;
@@ -56,7 +69,7 @@ var CreditManagerData = /** @class */ (function () {
56
69
  this.isDegenMode = payload.isDegenMode;
57
70
  this.degenNFT = payload.degenNFT.toLowerCase();
58
71
  this.isIncreaseDebtForbidden = payload.isIncreaseDebtForbidden;
59
- this.forbiddenTokenMask = payload.forbiddenTokenMask;
72
+ this.forbiddenTokenMask = (0, formatter_1.toBigInt)(payload.forbiddenTokenMask || 0);
60
73
  this.feeInterest = payload.feeInterest;
61
74
  this.feeLiquidation = payload.feeLiquidation;
62
75
  this.liquidationDiscount = payload.liquidationDiscount;
@@ -65,129 +78,157 @@ var CreditManagerData = /** @class */ (function () {
65
78
  txParser_1.TxParser.addCreditManager(this.address, this.version);
66
79
  if (this.creditFacade !== "" && this.creditFacade !== constants_1.ADDRESS_0X0) {
67
80
  txParser_1.TxParser.addCreditFacade(this.creditFacade, token_1.tokenSymbolByAddress[this.underlyingToken]);
68
- txParser_1.TxParser.addAdapters(payload.adapters.map(function (a) { return ({
81
+ txParser_1.TxParser.addAdapters(payload.adapters.map(a => ({
69
82
  adapter: a.adapter,
70
83
  contract: a.allowedContract,
71
- }); }));
84
+ })));
72
85
  }
73
86
  }
74
- CreditManagerData.prototype.getContractETH = function (signer) {
87
+ getContractETH(signer) {
75
88
  return types_1.ICreditManager__factory.connect(this.address, signer);
76
- };
77
- CreditManagerData.prototype.contractToAdapter = function (contractAddress) {
89
+ }
90
+ contractToAdapter(contractAddress) {
78
91
  return this.adapters[contractAddress];
79
- };
80
- CreditManagerData.prototype.encodeAddCollateral = function (accountAddress, tokenAddress, amount) {
92
+ }
93
+ encodeAddCollateral(accountAddress, tokenAddress, amount) {
81
94
  if (this.version !== 2)
82
95
  throw new Error("Multicall is eligible only for version 2");
83
96
  return {
84
97
  target: this.creditFacade,
85
98
  callData: types_1.ICreditFacade__factory.createInterface().encodeFunctionData("addCollateral", [accountAddress, tokenAddress, amount]),
86
99
  };
87
- };
88
- CreditManagerData.prototype.encodeIncreaseDebt = function (amount) {
100
+ }
101
+ encodeIncreaseDebt(amount) {
89
102
  if (this.version !== 2)
90
103
  throw new Error("Multicall is eligible only for version 2");
91
104
  return {
92
105
  target: this.creditFacade,
93
106
  callData: types_1.ICreditFacade__factory.createInterface().encodeFunctionData("increaseDebt", [amount]),
94
107
  };
95
- };
96
- CreditManagerData.prototype.encodeDecreaseDebt = function (amount) {
108
+ }
109
+ encodeDecreaseDebt(amount) {
97
110
  if (this.version !== 2)
98
111
  throw new Error("Multicall is eligible only for version 2");
99
112
  return {
100
113
  target: this.creditFacade,
101
114
  callData: types_1.ICreditFacade__factory.createInterface().encodeFunctionData("decreaseDebt", [amount]),
102
115
  };
103
- };
104
- CreditManagerData.prototype.validateOpenAccount = function (collateral, debt) {
116
+ }
117
+ validateOpenAccount(collateral, debt) {
105
118
  return this.version === 2
106
119
  ? this.validateOpenAccountV2(debt)
107
120
  : this.validateOpenAccountV1(collateral, debt);
108
- };
109
- CreditManagerData.prototype.validateOpenAccountV1 = function (collateral, debt) {
110
- if (collateral.lt(this.minAmount))
121
+ }
122
+ validateOpenAccountV1(collateral, debt) {
123
+ if (collateral < this.minAmount)
111
124
  throw new errors_1.OpenAccountError("amountLessMin", this.minAmount);
112
- if (collateral.gt(this.maxAmount))
125
+ if (collateral > this.maxAmount)
113
126
  throw new errors_1.OpenAccountError("amountGreaterMax", this.maxAmount);
114
- var leverage = debt.mul(constants_1.LEVERAGE_DECIMALS).div(collateral).toNumber();
127
+ const leverage = Number((debt * constants_1.LEVERAGE_DECIMALS) / collateral);
115
128
  if (!leverage || leverage < 0)
116
- throw new errors_1.OpenAccountError("wrongLeverage", ethers_1.BigNumber.from(0));
129
+ throw new errors_1.OpenAccountError("wrongLeverage", 0n);
117
130
  if (leverage > this.maxLeverageFactor)
118
- throw new errors_1.OpenAccountError("leverageGreaterMax", ethers_1.BigNumber.from(this.maxLeverageFactor));
119
- if (debt.gt(this.availableLiquidity))
120
- throw new errors_1.OpenAccountError("insufficientPoolLiquidity", ethers_1.BigNumber.from(this.availableLiquidity));
131
+ throw new errors_1.OpenAccountError("leverageGreaterMax", (0, formatter_1.toBigInt)(this.maxLeverageFactor || 0));
132
+ if (debt > this.availableLiquidity)
133
+ throw new errors_1.OpenAccountError("insufficientPoolLiquidity", (0, formatter_1.toBigInt)(this.availableLiquidity || 0));
121
134
  return true;
122
- };
123
- CreditManagerData.prototype.validateOpenAccountV2 = function (debt) {
124
- if (debt.lt(this.minAmount))
135
+ }
136
+ validateOpenAccountV2(debt) {
137
+ if (debt < this.minAmount)
125
138
  throw new errors_1.OpenAccountError("amountLessMin", this.minAmount);
126
- if (debt.gt(this.maxAmount))
139
+ if (debt > this.maxAmount)
127
140
  throw new errors_1.OpenAccountError("amountGreaterMax", this.maxAmount);
128
- if (debt.gt(this.availableLiquidity))
129
- throw new errors_1.OpenAccountError("insufficientPoolLiquidity", ethers_1.BigNumber.from(this.availableLiquidity));
141
+ if (debt > this.availableLiquidity)
142
+ throw new errors_1.OpenAccountError("insufficientPoolLiquidity", this.availableLiquidity);
130
143
  return true;
131
- };
132
- Object.defineProperty(CreditManagerData.prototype, "id", {
133
- get: function () {
134
- return this.address;
135
- },
136
- enumerable: false,
137
- configurable: true
138
- });
139
- return CreditManagerData;
140
- }());
144
+ }
145
+ get id() {
146
+ return this.address;
147
+ }
148
+ }
141
149
  exports.CreditManagerData = CreditManagerData;
142
- var ChartsCreditManagerData = /** @class */ (function () {
143
- function ChartsCreditManagerData(payload) {
150
+ class ChartsCreditManagerData {
151
+ id;
152
+ address;
153
+ underlyingToken;
154
+ pool;
155
+ isWETH;
156
+ borrowRate;
157
+ borrowRateOld;
158
+ borrowRateChange;
159
+ minAmount;
160
+ maxAmount;
161
+ maxLeverageFactor; // for V1 only
162
+ availableLiquidity;
163
+ version;
164
+ feeInterest;
165
+ feeLiquidation;
166
+ feeLiquidationExpired;
167
+ openedAccountsCount;
168
+ totalOpenedAccounts;
169
+ totalClosedAccounts;
170
+ totalRepaidAccounts;
171
+ totalLiquidatedAccounts;
172
+ totalBorrowed;
173
+ totalBorrowedOld;
174
+ totalBorrowedChange;
175
+ totalRepaid;
176
+ totalProfit;
177
+ totalProfitOld;
178
+ pnlChange;
179
+ totalLosses;
180
+ totalLossesOld;
181
+ totalBorrowedInUSD;
182
+ totalLossesInUSD;
183
+ totalProfitInUSD;
184
+ totalRepaidInUSD;
185
+ availableLiquidityInUSD;
186
+ openedAccountsCountChange;
187
+ totalOpenedAccountsChange;
188
+ totalClosedAccountsChange;
189
+ totalLiquidatedAccountsChange;
190
+ liquidationThresholds;
191
+ constructor(payload) {
144
192
  this.id = (payload.addr || "").toLowerCase();
145
193
  this.address = (payload.addr || "").toLowerCase();
146
194
  this.underlyingToken = (payload.underlyingToken || "").toLowerCase();
147
195
  this.pool = (payload.poolAddress || "").toLowerCase();
148
196
  this.version = payload.version || 2;
149
197
  this.isWETH = payload.isWeth || false;
150
- this.borrowRate = ethers_1.BigNumber.from(payload.borrowRate || 0)
151
- .mul(payload.feeInterest + constants_1.PERCENTAGE_FACTOR)
152
- .mul(constants_1.PERCENTAGE_DECIMALS)
153
- .div(constants_1.RAY)
154
- .toNumber();
155
- this.borrowRateOld = ethers_1.BigNumber.from(payload.borrowRateOld || 0)
156
- .mul(payload.feeInterest + constants_1.PERCENTAGE_FACTOR)
157
- .mul(constants_1.PERCENTAGE_DECIMALS)
158
- .div(constants_1.RAY)
159
- .toNumber();
160
- this.borrowRateChange =
161
- (payload.borrowRate10kBasis || 0) * constants_1.PERCENTAGE_DECIMALS;
162
- this.maxLeverageFactor = ethers_1.BigNumber.from(payload.maxLeverageFactor || 0).toNumber();
198
+ this.borrowRate = Number(((0, formatter_1.toBigInt)(payload.borrowRate || 0) *
199
+ ((0, formatter_1.toBigInt)(payload.feeInterest || 0) + constants_1.PERCENTAGE_FACTOR) *
200
+ constants_1.PERCENTAGE_DECIMALS) /
201
+ constants_1.RAY);
202
+ this.borrowRateOld = Number(((0, formatter_1.toBigInt)(payload.borrowRateOld || 0) *
203
+ ((0, formatter_1.toBigInt)(payload.feeInterest || 0) + constants_1.PERCENTAGE_FACTOR) *
204
+ constants_1.PERCENTAGE_DECIMALS) /
205
+ constants_1.RAY);
206
+ this.borrowRateChange = Number((0, formatter_1.toBigInt)(payload.borrowRate10kBasis || 0) * constants_1.PERCENTAGE_DECIMALS);
207
+ this.maxLeverageFactor = payload.maxLeverageFactor || 0;
163
208
  this.feeInterest = payload.feeInterest || 0;
164
209
  this.feeLiquidation = payload.feeLiquidation || 0;
165
210
  this.feeLiquidationExpired = payload.feeLiquidationExpired || 0;
166
- this.minAmount = ethers_1.BigNumber.from(payload.minAmount || 0);
167
- this.maxAmount = ethers_1.BigNumber.from(payload.maxAmount || 0);
168
- this.availableLiquidity = ethers_1.BigNumber.from(payload.availableLiquidity || 0);
211
+ this.minAmount = (0, formatter_1.toBigInt)(payload.minAmount || 0);
212
+ this.maxAmount = (0, formatter_1.toBigInt)(payload.maxAmount || 0);
213
+ this.availableLiquidity = (0, formatter_1.toBigInt)(payload.availableLiquidity || 0);
169
214
  this.availableLiquidityInUSD = payload.availableLiquidityInUSD || 0;
170
- this.liquidationThresholds = Object.fromEntries(Object.entries(payload.liquidityThresholds || {}).map(function (_a) {
171
- var t = _a[0], tr = _a[1];
172
- return [
173
- t.toLowerCase(),
174
- ethers_1.BigNumber.from(tr),
175
- ];
176
- }));
177
- this.totalBorrowed = ethers_1.BigNumber.from(payload.totalBorrowed || 0);
178
- this.totalBorrowedOld = ethers_1.BigNumber.from(payload.totalBorrowedBIOld || 0);
215
+ this.liquidationThresholds = Object.fromEntries(Object.entries(payload.liquidityThresholds || {}).map(([t, tr]) => [
216
+ t.toLowerCase(),
217
+ BigInt(tr),
218
+ ]));
219
+ this.totalBorrowed = (0, formatter_1.toBigInt)(payload.totalBorrowed || 0);
220
+ this.totalBorrowedOld = (0, formatter_1.toBigInt)(payload.totalBorrowedBIOld || 0);
179
221
  this.totalBorrowedInUSD = payload.totalBorrowedInUSD || 0;
180
- this.totalBorrowedChange =
181
- (payload.totalBorrowedBI10kBasis || 0) * constants_1.PERCENTAGE_DECIMALS;
182
- this.totalLosses = ethers_1.BigNumber.from(payload.totalLosses || 0);
183
- this.totalLossesOld = ethers_1.BigNumber.from(payload.totalLossesOld || 0);
222
+ this.totalBorrowedChange = Number((0, formatter_1.toBigInt)(payload.totalBorrowedBI10kBasis || 0) * constants_1.PERCENTAGE_DECIMALS);
223
+ this.totalLosses = (0, formatter_1.toBigInt)(payload.totalLosses || 0);
224
+ this.totalLossesOld = (0, formatter_1.toBigInt)(payload.totalLossesOld || 0);
184
225
  this.totalLossesInUSD = payload.totalLossesInUSD || 0;
185
- this.totalRepaid = ethers_1.BigNumber.from(payload.totalRepaid || 0);
226
+ this.totalRepaid = (0, formatter_1.toBigInt)(payload.totalRepaid || 0);
186
227
  this.totalRepaidInUSD = payload.totalRepaidInUSD || 0;
187
- this.totalProfit = ethers_1.BigNumber.from(payload.totalProfit || 0);
188
- this.totalProfitOld = ethers_1.BigNumber.from(payload.totalProfitOld || 0);
228
+ this.totalProfit = (0, formatter_1.toBigInt)(payload.totalProfit || 0);
229
+ this.totalProfitOld = (0, formatter_1.toBigInt)(payload.totalProfitOld || 0);
189
230
  this.totalProfitInUSD = payload.totalProfitInUSD || 0;
190
- this.pnlChange = (payload.pnl10kBasis || 0) * constants_1.PERCENTAGE_DECIMALS;
231
+ this.pnlChange = Number((0, formatter_1.toBigInt)(payload.pnl10kBasis || 0) * constants_1.PERCENTAGE_DECIMALS);
191
232
  this.openedAccountsCount = payload.openedAccountsCount || 0;
192
233
  this.openedAccountsCountChange = payload.openedAccountsCountChange || 0;
193
234
  this.totalOpenedAccounts = payload.totalOpenedAccounts || 0;
@@ -199,28 +240,23 @@ var ChartsCreditManagerData = /** @class */ (function () {
199
240
  this.totalLiquidatedAccountsChange =
200
241
  payload.totalLiquidatedAccountsChange || 0;
201
242
  }
202
- return ChartsCreditManagerData;
203
- }());
243
+ }
204
244
  exports.ChartsCreditManagerData = ChartsCreditManagerData;
205
- function calcHealthFactor(_a) {
206
- var assets = _a.assets, prices = _a.prices, liquidationThresholds = _a.liquidationThresholds, underlyingToken = _a.underlyingToken, borrowed = _a.borrowed;
207
- var assetLTMoney = assets.reduce(function (acc, _a) {
208
- var tokenAddress = _a.token, amount = _a.balance;
209
- var tokenSymbol = token_1.tokenSymbolByAddress[tokenAddress.toLowerCase()];
210
- var tokenDecimals = decimals_1.decimals[tokenSymbol];
211
- var lt = liquidationThresholds[tokenAddress.toLowerCase()] || ethers_1.BigNumber.from(0);
212
- var price = prices[tokenAddress.toLowerCase()] || ethers_1.BigNumber.from(0);
213
- var money = (0, price_1.calcTotalPrice)(price, amount, tokenDecimals);
214
- var ltMoney = money.mul(lt);
215
- return acc.add(ltMoney);
216
- }, ethers_1.BigNumber.from(0));
217
- var underlyingSymbol = token_1.tokenSymbolByAddress[underlyingToken.toLowerCase()];
218
- var underlyingDecimals = decimals_1.decimals[underlyingSymbol];
219
- var underlyingPrice = prices[underlyingToken.toLowerCase()] || constants_1.PRICE_DECIMALS;
220
- var borrowedMoney = (0, price_1.calcTotalPrice)(underlyingPrice, borrowed, underlyingDecimals);
221
- var hfInPercent = borrowedMoney.gt(0)
222
- ? assetLTMoney.div(borrowedMoney)
223
- : ethers_1.BigNumber.from(0);
224
- return hfInPercent.toNumber();
245
+ function calcHealthFactor({ assets, prices, liquidationThresholds, underlyingToken, borrowed, }) {
246
+ const assetLTMoney = assets.reduce((acc, { token: tokenAddress, balance: amount }) => {
247
+ const tokenSymbol = token_1.tokenSymbolByAddress[tokenAddress.toLowerCase()];
248
+ const tokenDecimals = decimals_1.decimals[tokenSymbol];
249
+ const lt = liquidationThresholds[tokenAddress.toLowerCase()] || 0n;
250
+ const price = prices[tokenAddress.toLowerCase()] || 0n;
251
+ const money = (0, price_1.calcTotalPrice)(price, amount, tokenDecimals);
252
+ const ltMoney = money * lt;
253
+ return acc + ltMoney;
254
+ }, 0n);
255
+ const underlyingSymbol = token_1.tokenSymbolByAddress[underlyingToken.toLowerCase()];
256
+ const underlyingDecimals = decimals_1.decimals[underlyingSymbol];
257
+ const underlyingPrice = prices[underlyingToken.toLowerCase()] || constants_1.PRICE_DECIMALS;
258
+ const borrowedMoney = (0, price_1.calcTotalPrice)(underlyingPrice, borrowed, underlyingDecimals);
259
+ const hfInPercent = borrowedMoney > 0n ? assetLTMoney / borrowedMoney : 0n;
260
+ return Number(hfInPercent);
225
261
  }
226
262
  exports.calcHealthFactor = calcHealthFactor;
@@ -1,25 +1,23 @@
1
1
  "use strict";
2
- var _a, _b;
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
- var chai_1 = require("chai");
5
- var ethers_1 = require("ethers");
6
- var decimals_1 = require("../tokens/decimals");
7
- var token_1 = require("../tokens/token");
8
- var formatter_1 = require("../utils/formatter");
9
- var price_1 = require("../utils/price");
10
- var assets_1 = require("./assets");
11
- var constants_1 = require("./constants");
12
- var creditManager_1 = require("./creditManager");
13
- var liquidationThresholds = (_a = {},
14
- _a[token_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()] = ethers_1.BigNumber.from("9300"),
15
- _a[token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()] = ethers_1.BigNumber.from("8500"),
16
- _a);
17
- var prices = (_b = {},
18
- _b[token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()] = (0, formatter_1.toBN)("1738.11830000", constants_1.PRICE_DECIMALS_POW),
19
- _b[token_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()] = (0, formatter_1.toBN)("0.99941103", constants_1.PRICE_DECIMALS_POW),
20
- _b[token_1.tokenDataByNetwork.Mainnet.STETH.toLowerCase()] = (0, formatter_1.toBN)("1703.87588096", constants_1.PRICE_DECIMALS_POW),
21
- _b);
22
- var defaultCA = {
3
+ const chai_1 = require("chai");
4
+ const decimals_1 = require("../tokens/decimals");
5
+ const token_1 = require("../tokens/token");
6
+ const formatter_1 = require("../utils/formatter");
7
+ const price_1 = require("../utils/price");
8
+ const assets_1 = require("./assets");
9
+ const constants_1 = require("./constants");
10
+ const creditManager_1 = require("./creditManager");
11
+ const liquidationThresholds = {
12
+ [token_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: 9300n,
13
+ [token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: 8500n,
14
+ };
15
+ const prices = {
16
+ [token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()]: (0, formatter_1.toBN)("1738.11830000", constants_1.PRICE_DECIMALS_POW),
17
+ [token_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase()]: (0, formatter_1.toBN)("0.99941103", constants_1.PRICE_DECIMALS_POW),
18
+ [token_1.tokenDataByNetwork.Mainnet.STETH.toLowerCase()]: (0, formatter_1.toBN)("1703.87588096", constants_1.PRICE_DECIMALS_POW),
19
+ };
20
+ const defaultCA = {
23
21
  assets: [
24
22
  {
25
23
  balance: (0, formatter_1.toBN)("156552", decimals_1.decimals.DAI),
@@ -35,96 +33,96 @@ var defaultCA = {
35
33
  underlyingToken: token_1.tokenDataByNetwork.Mainnet.DAI.toLowerCase(),
36
34
  underlyingDecimals: decimals_1.decimals.DAI,
37
35
  };
38
- describe("CreditManager calcHealthFactor test", function () {
39
- it("health factor calculation is calculated correctly", function () {
40
- var result = (0, creditManager_1.calcHealthFactor)({
36
+ describe("CreditManager calcHealthFactor test", () => {
37
+ it("health factor calculation is calculated correctly", () => {
38
+ const result = (0, creditManager_1.calcHealthFactor)({
41
39
  assets: defaultCA.assets,
42
- prices: prices,
43
- liquidationThresholds: liquidationThresholds,
40
+ prices,
41
+ liquidationThresholds,
44
42
  underlyingToken: defaultCA.underlyingToken,
45
43
  borrowed: defaultCA.debt,
46
44
  });
47
45
  (0, chai_1.expect)(result).to.be.eq(defaultCA.healthFactor);
48
46
  });
49
- it("health factor calculation has no division by zero error", function () {
50
- var result = (0, creditManager_1.calcHealthFactor)({
47
+ it("health factor calculation has no division by zero error", () => {
48
+ const result = (0, creditManager_1.calcHealthFactor)({
51
49
  assets: [],
52
50
  prices: {},
53
51
  liquidationThresholds: {},
54
52
  underlyingToken: "",
55
- borrowed: ethers_1.BigNumber.from(0),
53
+ borrowed: 0n,
56
54
  });
57
55
  (0, chai_1.expect)(result).to.be.eq(0);
58
56
  });
59
- it("health factor after add collateral is calculated correctly", function () {
60
- var collateral = {
57
+ it("health factor after add collateral is calculated correctly", () => {
58
+ const collateral = {
61
59
  balance: (0, formatter_1.toBN)("10", decimals_1.decimals.WETH),
62
60
  token: token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
63
61
  };
64
- var afterAdd = assets_1.AssetUtils.sumAssets(defaultCA.assets, [collateral]);
65
- var result = (0, creditManager_1.calcHealthFactor)({
62
+ const afterAdd = assets_1.AssetUtils.sumAssets(defaultCA.assets, [collateral]);
63
+ const result = (0, creditManager_1.calcHealthFactor)({
66
64
  assets: afterAdd,
67
- prices: prices,
68
- liquidationThresholds: liquidationThresholds,
65
+ prices,
66
+ liquidationThresholds,
69
67
  underlyingToken: defaultCA.underlyingToken,
70
68
  borrowed: defaultCA.debt,
71
69
  });
72
70
  (0, chai_1.expect)(result).to.be.eq(11188);
73
71
  });
74
- it("health factor after decrease debt is calculated correctly", function () {
75
- var amountDecrease = (0, formatter_1.toBN)("10000", defaultCA.underlyingDecimals);
76
- var debtDecrease = {
72
+ it("health factor after decrease debt is calculated correctly", () => {
73
+ const amountDecrease = (0, formatter_1.toBN)("10000", defaultCA.underlyingDecimals);
74
+ const debtDecrease = {
77
75
  balance: amountDecrease,
78
76
  token: defaultCA.underlyingToken,
79
77
  };
80
- var afterDecrease = assets_1.AssetUtils.subAssets(defaultCA.assets, [
78
+ const afterDecrease = assets_1.AssetUtils.subAssets(defaultCA.assets, [
81
79
  debtDecrease,
82
80
  ]);
83
- var result = (0, creditManager_1.calcHealthFactor)({
81
+ const result = (0, creditManager_1.calcHealthFactor)({
84
82
  assets: afterDecrease,
85
- prices: prices,
86
- liquidationThresholds: liquidationThresholds,
83
+ prices,
84
+ liquidationThresholds,
87
85
  underlyingToken: defaultCA.underlyingToken,
88
- borrowed: defaultCA.debt.sub(amountDecrease),
86
+ borrowed: defaultCA.debt - amountDecrease,
89
87
  });
90
88
  (0, chai_1.expect)(result).to.be.eq(10308);
91
89
  });
92
- it("health factor after increase debt is calculated correctly", function () {
93
- var amountIncrease = (0, formatter_1.toBN)("20000", defaultCA.underlyingDecimals);
94
- var debtIncrease = {
90
+ it("health factor after increase debt is calculated correctly", () => {
91
+ const amountIncrease = (0, formatter_1.toBN)("20000", defaultCA.underlyingDecimals);
92
+ const debtIncrease = {
95
93
  balance: amountIncrease,
96
94
  token: defaultCA.underlyingToken,
97
95
  };
98
- var afterIncrease = assets_1.AssetUtils.sumAssets(defaultCA.assets, [
96
+ const afterIncrease = assets_1.AssetUtils.sumAssets(defaultCA.assets, [
99
97
  debtIncrease,
100
98
  ]);
101
- var result = (0, creditManager_1.calcHealthFactor)({
99
+ const result = (0, creditManager_1.calcHealthFactor)({
102
100
  assets: afterIncrease,
103
- prices: prices,
104
- liquidationThresholds: liquidationThresholds,
101
+ prices,
102
+ liquidationThresholds,
105
103
  underlyingToken: defaultCA.underlyingToken,
106
- borrowed: defaultCA.debt.add(amountIncrease),
104
+ borrowed: defaultCA.debt + amountIncrease,
107
105
  });
108
106
  (0, chai_1.expect)(result).to.be.eq(10137);
109
107
  });
110
- it("health factor after swap is calculated correctly", function () {
111
- var swapAsset = {
108
+ it("health factor after swap is calculated correctly", () => {
109
+ const swapAsset = {
112
110
  balance: defaultCA.debt,
113
111
  token: defaultCA.underlyingToken,
114
112
  };
115
- var underlyingPrice = prices[defaultCA.underlyingToken];
116
- var wethPrice = prices[token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()];
117
- var getAmount = (0, price_1.convertByPrice)((0, price_1.calcTotalPrice)(underlyingPrice, defaultCA.debt, defaultCA.underlyingDecimals), { price: wethPrice, decimals: decimals_1.decimals.WETH });
118
- var getAsset = {
113
+ const underlyingPrice = prices[defaultCA.underlyingToken];
114
+ const wethPrice = prices[token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase()];
115
+ const getAmount = (0, price_1.convertByPrice)((0, price_1.calcTotalPrice)(underlyingPrice, defaultCA.debt, defaultCA.underlyingDecimals), { price: wethPrice, decimals: decimals_1.decimals.WETH });
116
+ const getAsset = {
119
117
  balance: getAmount,
120
118
  token: token_1.tokenDataByNetwork.Mainnet.WETH.toLowerCase(),
121
119
  };
122
- var afterSub = assets_1.AssetUtils.subAssets(defaultCA.assets, [swapAsset]);
123
- var afterSwap = assets_1.AssetUtils.sumAssets(afterSub, [getAsset]);
124
- var result = (0, creditManager_1.calcHealthFactor)({
120
+ const afterSub = assets_1.AssetUtils.subAssets(defaultCA.assets, [swapAsset]);
121
+ const afterSwap = assets_1.AssetUtils.sumAssets(afterSub, [getAsset]);
122
+ const result = (0, creditManager_1.calcHealthFactor)({
125
123
  assets: afterSwap,
126
- prices: prices,
127
- liquidationThresholds: liquidationThresholds,
124
+ prices,
125
+ liquidationThresholds,
128
126
  underlyingToken: defaultCA.underlyingToken,
129
127
  borrowed: defaultCA.debt,
130
128
  });
@@ -1,4 +1,3 @@
1
- import { BigNumber } from "ethers";
2
1
  import { CreditSessionFilteredPayload, CreditSessionPayload, CreditSessionsAggregatedStatsPayload, UserCreditSessionsAggregatedStatsPayload } from "../payload/creditSession";
3
2
  import { AssetWithView } from "./assets";
4
3
  export type CreditSessionStatus = "active" | "closed" | "repaid" | "liquidated" | "liquidateExpired" | "liquidatePaused";
@@ -16,9 +15,9 @@ export declare class CreditSession {
16
15
  readonly sinceDate: string;
17
16
  readonly closedAt: number;
18
17
  readonly closedAtDate: string;
19
- readonly initialAmount: BigNumber;
20
- readonly borrowedAmount: BigNumber;
21
- readonly totalValue: BigNumber;
18
+ readonly initialAmount: bigint;
19
+ readonly borrowedAmount: bigint;
20
+ readonly totalValue: bigint;
22
21
  readonly healthFactor: number;
23
22
  readonly profitInUSD: number;
24
23
  readonly profitInUnderlying: number;
@@ -32,16 +31,16 @@ export declare class CreditSession {
32
31
  readonly closePrice: number;
33
32
  readonly quoteToken: string;
34
33
  readonly tradingToken: string;
35
- readonly borrowAPY_RAY: BigNumber;
34
+ readonly borrowAPY_RAY: bigint;
36
35
  readonly borrowAPY7DAverage: number;
37
36
  readonly totalValueUSD: number;
38
- readonly debt: BigNumber;
37
+ readonly debt: bigint;
39
38
  readonly debtUSD: number;
40
39
  readonly leverage: number;
41
40
  readonly tfIndex: number;
42
- readonly spotDebt: BigNumber;
43
- readonly spotTotalValue: BigNumber;
44
- readonly spotUserFunds: BigNumber;
41
+ readonly spotDebt: bigint;
42
+ readonly spotTotalValue: bigint;
43
+ readonly spotUserFunds: bigint;
45
44
  readonly cvxUnclaimedRewards: Array<AssetWithView>;
46
45
  readonly balances: Array<AssetWithView>;
47
46
  constructor(payload: CreditSessionPayload);
@@ -59,9 +58,9 @@ export declare class CreditSessionFiltered {
59
58
  readonly closedAtDate: string;
60
59
  readonly healthFactor: number;
61
60
  readonly leverage: number;
62
- readonly debt: BigNumber;
61
+ readonly debt: bigint;
63
62
  readonly debtUSD: number;
64
- readonly totalValue: BigNumber;
63
+ readonly totalValue: bigint;
65
64
  readonly totalValueUSD: number;
66
65
  readonly profitInUSD: number;
67
66
  readonly profitInUnderlying: number;
@@ -81,8 +80,8 @@ export type CreditSessionsAggregatedStats = Omit<CreditSessionsAggregatedStatsPa
81
80
  leverageChange: number;
82
81
  activeAccountsChange: number;
83
82
  openedAccountsChange: number;
84
- healthFactor: BigNumber;
85
- healthFactorOld: BigNumber;
83
+ healthFactor: bigint;
84
+ healthFactorOld: bigint;
86
85
  };
87
86
  export declare class UserCreditSessionsBuilder {
88
87
  static buildUserCreditSessions(payload: UserCreditSessionsAggregatedStatsPayload): UserCreditSessions;