@gearbox-protocol/sdk 13.0.0-next.9 → 13.0.1

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 (744) hide show
  1. package/dist/cjs/abi/310/iLinearInterestRateModelV310.js +92 -0
  2. package/dist/cjs/abi/errors.js +0 -145
  3. package/dist/cjs/abi/iPriceFeed.js +84 -0
  4. package/dist/cjs/{sdk/sdk-gov-legacy/oracles → common-utils}/index.js +4 -4
  5. package/dist/cjs/common-utils/package.json +1 -0
  6. package/dist/cjs/common-utils/utils/assetsMath.js +216 -0
  7. package/dist/cjs/common-utils/utils/bigintMath.js +65 -0
  8. package/dist/cjs/common-utils/utils/creditAccount/calcHealthFactor.js +76 -0
  9. package/dist/cjs/common-utils/utils/creditAccount/calcOverallAPY.js +81 -0
  10. package/dist/cjs/{sdk/accountMigration/MigrateCreditAccountsServiceV310.js → common-utils/utils/creditAccount/calcQuotaBorrowRate.js} +19 -7
  11. package/dist/cjs/{sdk/sdk-legacy/utils/math.js → common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.js} +11 -10
  12. package/dist/cjs/common-utils/utils/creditAccount/debt.js +64 -0
  13. package/dist/cjs/common-utils/utils/creditAccount/getTimeToLiquidation.js +38 -0
  14. package/dist/cjs/common-utils/utils/creditAccount/index.js +40 -0
  15. package/dist/cjs/common-utils/utils/creditAccount/liquidationPrice.js +47 -0
  16. package/dist/cjs/common-utils/utils/creditAccount/quotaUtils.js +149 -0
  17. package/dist/cjs/common-utils/utils/creditAccount/sort.js +95 -0
  18. package/dist/cjs/common-utils/utils/endpoints.js +65 -0
  19. package/dist/cjs/{sdk/sdk-legacy → common-utils}/utils/index.js +10 -6
  20. package/dist/cjs/common-utils/utils/priceMath.js +66 -0
  21. package/dist/cjs/dev/AccountOpener.js +3 -3
  22. package/dist/cjs/dev/ltUtils.js +4 -91
  23. package/dist/cjs/dev/migrateFaucet.js +25 -53
  24. package/dist/cjs/dev/providers.js +12 -0
  25. package/dist/cjs/history/assembleOperations.js +103 -0
  26. package/dist/cjs/history/classifyMulticallOperations.js +157 -0
  27. package/dist/cjs/history/errors.js +91 -0
  28. package/dist/cjs/history/extractProtocolCalls.js +53 -0
  29. package/dist/cjs/history/extractTransfers.js +168 -0
  30. package/dist/cjs/history/findFacadeCalls.js +84 -0
  31. package/dist/cjs/history/index.js +39 -0
  32. package/dist/cjs/history/inner-operations.js +16 -0
  33. package/dist/cjs/history/internal-types.js +16 -0
  34. package/dist/cjs/history/mapOperations.js +79 -0
  35. package/dist/cjs/history/package.json +1 -0
  36. package/dist/cjs/history/parseCreditAccountTransaction.js +86 -0
  37. package/dist/cjs/history/populateContractsRegister.js +68 -0
  38. package/dist/cjs/history/toLegacyOperation.js +182 -0
  39. package/dist/cjs/{plugins/adapters/contracts/YearnV2AdapterContract.js → history/trace-utils.js} +36 -21
  40. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +3 -3
  41. package/dist/cjs/permissionless/bindings/instance-manager.js +3 -3
  42. package/dist/cjs/permissionless/utils/price-update/get-prices.js +2 -6
  43. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +13 -106
  44. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  45. package/dist/cjs/plugins/adapters/abi/targetContractAbi.js +5168 -0
  46. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +123 -3
  47. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  48. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +65 -30
  49. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +27 -11
  50. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +40 -21
  51. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +100 -25
  52. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +74 -25
  53. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +79 -31
  54. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +79 -31
  55. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +84 -31
  56. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +80 -33
  57. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +62 -26
  58. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +92 -34
  59. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +46 -14
  60. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +62 -27
  61. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +46 -14
  62. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +34 -14
  63. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +56 -23
  64. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +31 -14
  65. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +28 -12
  66. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +35 -16
  67. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +47 -17
  68. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +29 -11
  69. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +45 -14
  70. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +42 -17
  71. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +79 -42
  72. package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +34 -14
  73. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +27 -11
  74. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +44 -17
  75. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +49 -21
  76. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +92 -55
  77. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +71 -37
  78. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +55 -25
  79. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +44 -21
  80. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +42 -23
  81. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +53 -27
  82. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +42 -17
  83. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +46 -25
  84. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +37 -11
  85. package/dist/cjs/plugins/adapters/contracts/index.js +7 -15
  86. package/dist/cjs/plugins/adapters/createAdapter.js +125 -0
  87. package/dist/cjs/plugins/adapters/index.js +6 -0
  88. package/dist/cjs/plugins/adapters/legacyAdapterOperations.js +16 -0
  89. package/dist/cjs/plugins/adapters/transferHelpers.js +127 -0
  90. package/dist/cjs/plugins/bots/PartialLiquidationBotV310Contract.js +4 -4
  91. package/dist/cjs/plugins/bots/abi/index.js +0 -2
  92. package/dist/cjs/plugins/degen-distributors/DegenDistributorsPlugin.js +2 -1
  93. package/dist/cjs/plugins/pools-history/Pools7DAgoPlugin.js +1 -1
  94. package/dist/cjs/plugins/zappers/ZappersPlugin.js +144 -0
  95. package/dist/cjs/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +6 -110
  96. package/dist/cjs/{sdk/sdk-gov-legacy/contracts → plugins/zappers}/index.js +8 -6
  97. package/dist/cjs/plugins/zappers/package.json +1 -0
  98. package/dist/cjs/sdk/GearboxSDK.js +6 -14
  99. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +19 -86
  100. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +11 -12
  101. package/dist/cjs/sdk/accounts/createCreditAccountService.js +0 -4
  102. package/dist/cjs/sdk/accounts/index.js +0 -2
  103. package/dist/cjs/sdk/base/BaseContract.js +60 -6
  104. package/dist/cjs/sdk/base/ChainContractsRegister.js +33 -10
  105. package/dist/cjs/sdk/base/Construct.js +29 -15
  106. package/dist/cjs/sdk/base/PlaceholderContract.js +2 -2
  107. package/dist/cjs/sdk/base/SDKConstruct.js +1 -1
  108. package/dist/cjs/sdk/base/TokensMeta.js +32 -112
  109. package/dist/cjs/{abi/iStateSerializer.js → sdk/base/errors.js} +12 -13
  110. package/dist/cjs/sdk/base/index.js +2 -2
  111. package/dist/cjs/sdk/chain/chains.js +13 -31
  112. package/dist/cjs/sdk/constants/addresses.js +2 -88
  113. package/dist/cjs/sdk/constants/index.js +2 -0
  114. package/dist/cjs/sdk/constants/networks.js +0 -32
  115. package/dist/cjs/sdk/{base/token-types.js → constants/phantom-tokens.js} +3 -9
  116. package/dist/cjs/sdk/constants/versions.js +0 -8
  117. package/dist/cjs/sdk/core/{address-provider/AbstractAddressProviderContract.js → AbstractAddressProviderContract.js} +3 -3
  118. package/dist/cjs/sdk/core/{address-provider/AddressProviderV310Contract.js → AddressProviderV310Contract.js} +1 -1
  119. package/dist/cjs/sdk/core/{address-provider/createAddressProvider.js → createAddressProvider.js} +4 -7
  120. package/dist/cjs/sdk/core/index.js +6 -6
  121. package/dist/cjs/sdk/{gauges/utils.js → core/types.js} +2 -2
  122. package/dist/cjs/sdk/index.js +0 -10
  123. package/dist/cjs/sdk/market/MarketConfiguratorContract.js +3 -2
  124. package/dist/cjs/sdk/market/MarketRegister.js +2 -3
  125. package/dist/cjs/sdk/market/MarketSuite.js +1 -4
  126. package/dist/cjs/sdk/market/adapters/PlaceholderAdapterContracts.js +25 -4
  127. package/dist/cjs/sdk/market/adapters/{factory.js → createAdapter.js} +3 -3
  128. package/dist/cjs/sdk/market/adapters/index.js +2 -2
  129. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +108 -0
  130. package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +3 -40
  131. package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +1 -4
  132. package/dist/cjs/sdk/market/credit/createCreditConfigurator.js +1 -4
  133. package/dist/cjs/sdk/market/credit/createCreditFacade.js +1 -4
  134. package/dist/cjs/sdk/market/credit/createCreditManager.js +1 -4
  135. package/dist/cjs/sdk/market/credit/index.js +2 -6
  136. package/dist/cjs/sdk/market/index.js +1 -3
  137. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +9 -57
  138. package/dist/cjs/sdk/market/oracle/createPriceOracle.js +7 -38
  139. package/dist/cjs/sdk/market/oracle/index.js +0 -2
  140. package/dist/cjs/sdk/market/pool/GaugeContract.js +3 -3
  141. package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  142. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +1 -1
  143. package/dist/cjs/sdk/market/pool/createPool.js +0 -4
  144. package/dist/cjs/sdk/market/pool/createPoolQuotaKeeper.js +0 -4
  145. package/dist/cjs/sdk/market/pool/index.js +0 -4
  146. package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +14 -53
  147. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +5 -3
  148. package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +20 -0
  149. package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +19 -46
  150. package/dist/cjs/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
  151. package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +7 -7
  152. package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +6 -6
  153. package/dist/cjs/sdk/market/pricefeeds/updates/fetchPythPayloads.js +7 -7
  154. package/dist/cjs/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +10 -10
  155. package/dist/cjs/sdk/plugins/index.js +1 -3
  156. package/dist/cjs/sdk/pools/AbstractPoolService.js +137 -0
  157. package/dist/cjs/sdk/{sdk-legacy/gearboxRewards/merklAPI.js → pools/PoolServiceV310.js} +7 -7
  158. package/dist/cjs/sdk/{accountMigration/MigrateCreditAccountsServiceV300.js → pools/createPoolService.js} +12 -7
  159. package/dist/cjs/sdk/pools/index.js +4 -2
  160. package/dist/cjs/sdk/router/AbstractRouterContract.js +0 -4
  161. package/dist/cjs/sdk/router/RouterV310Contract.js +3 -32
  162. package/dist/cjs/sdk/router/createRouter.js +0 -4
  163. package/dist/cjs/sdk/router/helpers.js +0 -5
  164. package/dist/cjs/sdk/router/index.js +0 -2
  165. package/dist/cjs/sdk/utils/abi-decode.js +43 -2
  166. package/dist/cjs/sdk/utils/formatter.js +55 -2
  167. package/dist/esm/abi/310/iLinearInterestRateModelV310.js +68 -0
  168. package/dist/esm/abi/errors.js +0 -143
  169. package/dist/esm/abi/iPriceFeed.js +60 -0
  170. package/dist/esm/common-utils/index.js +1 -0
  171. package/dist/esm/common-utils/package.json +1 -0
  172. package/dist/esm/{sdk/sdk-legacy/core/assets.js → common-utils/utils/assetsMath.js} +80 -14
  173. package/dist/esm/common-utils/utils/bigintMath.js +41 -0
  174. package/dist/esm/common-utils/utils/creditAccount/calcHealthFactor.js +55 -0
  175. package/dist/esm/common-utils/utils/creditAccount/calcOverallAPY.js +60 -0
  176. package/dist/esm/common-utils/utils/creditAccount/calcQuotaBorrowRate.js +18 -0
  177. package/dist/esm/common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.js +10 -0
  178. package/dist/esm/common-utils/utils/creditAccount/debt.js +43 -0
  179. package/dist/esm/common-utils/utils/creditAccount/getTimeToLiquidation.js +18 -0
  180. package/dist/esm/common-utils/utils/creditAccount/index.js +10 -0
  181. package/dist/esm/common-utils/utils/creditAccount/liquidationPrice.js +23 -0
  182. package/dist/esm/common-utils/utils/creditAccount/quotaUtils.js +125 -0
  183. package/dist/esm/common-utils/utils/creditAccount/sort.js +67 -0
  184. package/dist/esm/common-utils/utils/endpoints.js +41 -0
  185. package/dist/esm/common-utils/utils/index.js +5 -0
  186. package/dist/esm/common-utils/utils/priceMath.js +42 -0
  187. package/dist/esm/dev/AccountOpener.js +3 -3
  188. package/dist/esm/dev/ltUtils.js +7 -100
  189. package/dist/esm/dev/migrateFaucet.js +24 -51
  190. package/dist/esm/dev/providers.js +12 -0
  191. package/dist/esm/history/assembleOperations.js +79 -0
  192. package/dist/esm/history/classifyMulticallOperations.js +137 -0
  193. package/dist/esm/history/errors.js +62 -0
  194. package/dist/esm/history/extractProtocolCalls.js +32 -0
  195. package/dist/esm/history/extractTransfers.js +148 -0
  196. package/dist/esm/history/findFacadeCalls.js +63 -0
  197. package/dist/esm/history/index.js +9 -0
  198. package/dist/esm/history/mapOperations.js +55 -0
  199. package/dist/esm/history/package.json +1 -0
  200. package/dist/esm/history/parseCreditAccountTransaction.js +62 -0
  201. package/dist/esm/history/populateContractsRegister.js +52 -0
  202. package/dist/esm/history/toLegacyOperation.js +157 -0
  203. package/dist/esm/history/trace-utils.js +36 -0
  204. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +3 -3
  205. package/dist/esm/permissionless/bindings/instance-manager.js +3 -3
  206. package/dist/esm/permissionless/utils/price-update/get-prices.js +2 -6
  207. package/dist/esm/plugins/adapters/AdaptersPlugin.js +14 -148
  208. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  209. package/dist/esm/plugins/adapters/abi/targetContractAbi.js +5113 -0
  210. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +133 -4
  211. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  212. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +64 -30
  213. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +27 -11
  214. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +40 -21
  215. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +109 -26
  216. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +76 -25
  217. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +81 -31
  218. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +81 -31
  219. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +86 -31
  220. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +82 -33
  221. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +64 -26
  222. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +97 -34
  223. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +48 -14
  224. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +64 -27
  225. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +48 -14
  226. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +36 -14
  227. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +58 -23
  228. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +37 -15
  229. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +33 -12
  230. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +40 -16
  231. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +49 -17
  232. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +31 -11
  233. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +47 -14
  234. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +44 -17
  235. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +82 -43
  236. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +36 -14
  237. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +29 -11
  238. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +46 -17
  239. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +55 -22
  240. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +91 -54
  241. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +73 -37
  242. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +54 -25
  243. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +45 -22
  244. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +43 -24
  245. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +57 -28
  246. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +48 -18
  247. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +46 -25
  248. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +39 -11
  249. package/dist/esm/plugins/adapters/contracts/index.js +3 -7
  250. package/dist/esm/plugins/adapters/createAdapter.js +140 -0
  251. package/dist/esm/plugins/adapters/index.js +3 -0
  252. package/dist/esm/plugins/adapters/transferHelpers.js +95 -0
  253. package/dist/esm/plugins/bots/PartialLiquidationBotV310Contract.js +5 -8
  254. package/dist/esm/plugins/bots/abi/index.js +0 -1
  255. package/dist/esm/plugins/degen-distributors/DegenDistributorsPlugin.js +2 -1
  256. package/dist/esm/plugins/pools-history/Pools7DAgoPlugin.js +1 -2
  257. package/dist/esm/plugins/zappers/ZappersPlugin.js +126 -0
  258. package/dist/esm/{sdk/market/ZapperRegister.js → plugins/zappers/extraZappers.js} +2 -109
  259. package/dist/esm/plugins/zappers/index.js +3 -0
  260. package/dist/esm/plugins/zappers/package.json +1 -0
  261. package/dist/esm/sdk/GearboxSDK.js +7 -23
  262. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +23 -91
  263. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +11 -12
  264. package/dist/esm/sdk/accounts/createCreditAccountService.js +1 -5
  265. package/dist/esm/sdk/accounts/index.js +0 -1
  266. package/dist/esm/sdk/base/BaseContract.js +62 -6
  267. package/dist/esm/sdk/base/ChainContractsRegister.js +33 -10
  268. package/dist/esm/sdk/base/Construct.js +29 -15
  269. package/dist/esm/sdk/base/PlaceholderContract.js +2 -2
  270. package/dist/esm/sdk/base/SDKConstruct.js +1 -1
  271. package/dist/esm/sdk/base/TokensMeta.js +36 -117
  272. package/dist/esm/sdk/base/errors.js +11 -0
  273. package/dist/esm/sdk/base/index.js +1 -1
  274. package/dist/esm/sdk/chain/chains.js +14 -31
  275. package/dist/esm/sdk/constants/addresses.js +1 -83
  276. package/dist/esm/sdk/constants/index.js +1 -0
  277. package/dist/esm/sdk/constants/networks.js +0 -31
  278. package/dist/esm/sdk/{base/token-types.js → constants/phantom-tokens.js} +0 -4
  279. package/dist/esm/sdk/constants/versions.js +0 -6
  280. package/dist/esm/sdk/core/{address-provider/AbstractAddressProviderContract.js → AbstractAddressProviderContract.js} +3 -3
  281. package/dist/esm/sdk/core/{address-provider/AddressProviderV310Contract.js → AddressProviderV310Contract.js} +1 -1
  282. package/dist/esm/sdk/core/{address-provider/createAddressProvider.js → createAddressProvider.js} +4 -8
  283. package/dist/esm/sdk/core/index.js +3 -3
  284. package/dist/esm/sdk/index.js +0 -5
  285. package/dist/esm/sdk/market/MarketConfiguratorContract.js +3 -2
  286. package/dist/esm/sdk/market/MarketRegister.js +2 -3
  287. package/dist/esm/sdk/market/MarketSuite.js +2 -5
  288. package/dist/esm/sdk/market/adapters/PlaceholderAdapterContracts.js +29 -5
  289. package/dist/esm/sdk/market/adapters/index.js +1 -1
  290. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +86 -0
  291. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +3 -43
  292. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +1 -4
  293. package/dist/esm/sdk/market/credit/createCreditConfigurator.js +2 -5
  294. package/dist/esm/sdk/market/credit/createCreditFacade.js +2 -5
  295. package/dist/esm/sdk/market/credit/createCreditManager.js +2 -5
  296. package/dist/esm/sdk/market/credit/index.js +1 -3
  297. package/dist/esm/sdk/market/index.js +0 -1
  298. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +10 -59
  299. package/dist/esm/sdk/market/oracle/createPriceOracle.js +7 -38
  300. package/dist/esm/sdk/market/oracle/index.js +0 -1
  301. package/dist/esm/sdk/market/pool/GaugeContract.js +3 -3
  302. package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  303. package/dist/esm/sdk/market/pool/PoolV310Contract.js +1 -1
  304. package/dist/esm/sdk/market/pool/createPool.js +1 -5
  305. package/dist/esm/sdk/market/pool/createPoolQuotaKeeper.js +1 -5
  306. package/dist/esm/sdk/market/pool/index.js +0 -2
  307. package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +14 -53
  308. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +5 -3
  309. package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +21 -1
  310. package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +20 -47
  311. package/dist/esm/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
  312. package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +7 -7
  313. package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +6 -6
  314. package/dist/esm/sdk/market/pricefeeds/updates/fetchPythPayloads.js +7 -7
  315. package/dist/esm/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +10 -10
  316. package/dist/esm/sdk/plugins/index.js +0 -1
  317. package/dist/esm/sdk/pools/AbstractPoolService.js +113 -0
  318. package/dist/esm/sdk/pools/PoolServiceV310.js +6 -0
  319. package/dist/esm/sdk/pools/createPoolService.js +11 -0
  320. package/dist/esm/sdk/pools/index.js +2 -1
  321. package/dist/esm/sdk/router/AbstractRouterContract.js +0 -4
  322. package/dist/esm/sdk/router/RouterV310Contract.js +3 -32
  323. package/dist/esm/sdk/router/createRouter.js +1 -5
  324. package/dist/esm/sdk/router/helpers.js +0 -4
  325. package/dist/esm/sdk/router/index.js +0 -1
  326. package/dist/esm/sdk/utils/abi-decode.js +43 -2
  327. package/dist/esm/sdk/utils/formatter.js +37 -1
  328. package/dist/types/abi/310/iLinearInterestRateModelV310.d.ts +111 -0
  329. package/dist/types/abi/errors.d.ts +186 -996
  330. package/dist/types/abi/iPriceFeed.d.ts +87 -0
  331. package/dist/types/common-utils/index.d.ts +1 -0
  332. package/dist/types/common-utils/utils/assetsMath.d.ts +114 -0
  333. package/dist/types/common-utils/utils/bigintMath.d.ts +43 -0
  334. package/dist/types/common-utils/utils/creditAccount/calcHealthFactor.d.ts +25 -0
  335. package/dist/types/common-utils/utils/creditAccount/calcOverallAPY.d.ts +37 -0
  336. package/dist/types/common-utils/utils/creditAccount/calcQuotaBorrowRate.d.ts +18 -0
  337. package/dist/types/common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.d.ts +15 -0
  338. package/dist/types/common-utils/utils/creditAccount/debt.d.ts +35 -0
  339. package/dist/types/common-utils/utils/creditAccount/getTimeToLiquidation.d.ts +16 -0
  340. package/dist/types/common-utils/utils/creditAccount/index.d.ts +10 -0
  341. package/dist/types/common-utils/utils/creditAccount/liquidationPrice.d.ts +25 -0
  342. package/dist/types/common-utils/utils/creditAccount/quotaUtils.d.ts +81 -0
  343. package/dist/types/common-utils/utils/creditAccount/sort.d.ts +55 -0
  344. package/dist/types/common-utils/utils/creditAccount/types.d.ts +18 -0
  345. package/dist/types/common-utils/utils/endpoints.d.ts +27 -0
  346. package/dist/types/common-utils/utils/index.d.ts +5 -0
  347. package/dist/types/common-utils/utils/priceMath.d.ts +47 -0
  348. package/dist/types/dev/migrateFaucet.d.ts +4 -5
  349. package/dist/types/dev/providers.d.ts +5 -5
  350. package/dist/types/history/assembleOperations.d.ts +22 -0
  351. package/dist/types/history/classifyMulticallOperations.d.ts +35 -0
  352. package/dist/types/history/errors.d.ts +30 -0
  353. package/dist/types/history/extractProtocolCalls.d.ts +8 -0
  354. package/dist/types/history/extractTransfers.d.ts +22 -0
  355. package/dist/types/history/findFacadeCalls.d.ts +9 -0
  356. package/dist/types/history/index.d.ts +6 -0
  357. package/dist/types/history/inner-operations.d.ts +57 -0
  358. package/dist/types/history/internal-types.d.ts +47 -0
  359. package/dist/types/history/mapOperations.d.ts +27 -0
  360. package/dist/types/history/parseCreditAccountTransaction.d.ts +27 -0
  361. package/dist/types/history/populateContractsRegister.d.ts +19 -0
  362. package/dist/types/history/toLegacyOperation.d.ts +18 -0
  363. package/dist/types/history/trace-utils.d.ts +12 -0
  364. package/dist/types/history/types.d.ts +71 -0
  365. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +3 -3
  366. package/dist/types/permissionless/bindings/instance-manager.d.ts +3 -3
  367. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  368. package/dist/types/plugins/adapters/abi/targetContractAbi.d.ts +8262 -0
  369. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +50 -8
  370. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +238 -4
  371. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +135 -8
  372. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +45 -4
  373. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +225 -7
  374. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +418 -8
  375. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +227 -10
  376. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1257 -10
  377. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1257 -10
  378. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1257 -10
  379. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +575 -11
  380. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1244 -10
  381. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1227 -11
  382. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +69 -6
  383. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +492 -6
  384. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +67 -6
  385. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +132 -6
  386. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +144 -8
  387. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +163 -5
  388. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +248 -6
  389. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +367 -6
  390. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +104 -7
  391. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +46 -5
  392. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +488 -6
  393. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +20 -7
  394. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +493 -7
  395. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +18 -6
  396. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +56 -5
  397. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +52 -7
  398. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +199 -7
  399. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +1040 -17
  400. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +82 -8
  401. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +148 -10
  402. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +758 -5
  403. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +183 -4
  404. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +110 -5
  405. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +84 -7
  406. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +122 -4
  407. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +275 -5
  408. package/dist/types/plugins/adapters/contracts/index.d.ts +3 -7
  409. package/dist/types/plugins/adapters/createAdapter.d.ts +5 -0
  410. package/dist/types/plugins/adapters/index.d.ts +3 -0
  411. package/dist/types/plugins/adapters/legacyAdapterOperations.d.ts +200 -0
  412. package/dist/types/plugins/adapters/transferHelpers.d.ts +60 -0
  413. package/dist/types/plugins/adapters/types.d.ts +64 -2
  414. package/dist/types/plugins/bots/abi/index.d.ts +0 -1
  415. package/dist/types/plugins/zappers/ZappersPlugin.d.ts +18 -0
  416. package/dist/types/plugins/zappers/extraZappers.d.ts +6 -0
  417. package/dist/types/plugins/zappers/index.d.ts +3 -0
  418. package/dist/types/plugins/zappers/types.d.ts +12 -0
  419. package/dist/types/sdk/GearboxSDK.d.ts +0 -3
  420. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +3 -13
  421. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  422. package/dist/types/sdk/accounts/createCreditAccountService.d.ts +1 -1
  423. package/dist/types/sdk/accounts/index.d.ts +0 -1
  424. package/dist/types/sdk/accounts/types.d.ts +9 -37
  425. package/dist/types/sdk/base/BaseContract.d.ts +17 -4
  426. package/dist/types/sdk/base/ChainContractsRegister.d.ts +11 -3
  427. package/dist/types/sdk/base/Construct.d.ts +13 -13
  428. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  429. package/dist/types/sdk/base/TokensMeta.d.ts +18 -11
  430. package/dist/types/sdk/base/errors.d.ts +3 -0
  431. package/dist/types/sdk/base/index.d.ts +1 -1
  432. package/dist/types/sdk/base/types.d.ts +37 -0
  433. package/dist/types/sdk/chain/chains.d.ts +1 -1
  434. package/dist/types/sdk/constants/addresses.d.ts +0 -19
  435. package/dist/types/sdk/constants/index.d.ts +1 -0
  436. package/dist/types/sdk/constants/networks.d.ts +0 -5
  437. package/dist/types/sdk/constants/phantom-tokens.d.ts +2 -0
  438. package/dist/types/sdk/constants/versions.d.ts +0 -2
  439. package/dist/types/sdk/core/{address-provider/AbstractAddressProviderContract.d.ts → AbstractAddressProviderContract.d.ts} +4 -4
  440. package/dist/types/sdk/core/{address-provider/AddressProviderV310Contract.d.ts → AddressProviderV310Contract.d.ts} +1 -1
  441. package/dist/types/sdk/core/{address-provider/createAddressProvider.d.ts → createAddressProvider.d.ts} +1 -1
  442. package/dist/types/sdk/core/index.d.ts +3 -3
  443. package/dist/types/sdk/core/{address-provider/types.d.ts → types.d.ts} +3 -3
  444. package/dist/types/sdk/index.d.ts +0 -5
  445. package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +1 -1
  446. package/dist/types/sdk/market/MarketRegister.d.ts +2 -3
  447. package/dist/types/sdk/market/MarketSuite.d.ts +0 -1
  448. package/dist/types/sdk/market/adapters/PlaceholderAdapterContracts.d.ts +10 -5
  449. package/dist/types/sdk/market/adapters/index.d.ts +1 -1
  450. package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +6 -2
  451. package/dist/types/sdk/market/credit/{CreditFacadeV300Contract.d.ts → CreditFacadeV310BaseContract.d.ts} +335 -267
  452. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +6 -848
  453. package/dist/types/sdk/market/credit/index.d.ts +1 -3
  454. package/dist/types/sdk/market/credit/types.d.ts +2 -3
  455. package/dist/types/sdk/market/index.d.ts +0 -1
  456. package/dist/types/sdk/market/loss-policy/createLossPolicy.d.ts +0 -12
  457. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +2 -21
  458. package/dist/types/sdk/market/oracle/PriceOracleV310Contract.d.ts +2 -2
  459. package/dist/types/sdk/market/oracle/createPriceOracle.d.ts +1 -15
  460. package/dist/types/sdk/market/oracle/index.d.ts +0 -1
  461. package/dist/types/sdk/market/oracle/types.d.ts +6 -18
  462. package/dist/types/sdk/market/pool/GaugeContract.d.ts +116 -76
  463. package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +20 -0
  464. package/dist/types/sdk/market/pool/index.d.ts +0 -2
  465. package/dist/types/sdk/market/pool/types.d.ts +2 -4
  466. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +0 -3
  467. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +21 -1
  468. package/dist/types/sdk/market/pricefeeds/types.d.ts +0 -9
  469. package/dist/types/sdk/market/pricefeeds/updates/PriceUpdatesCache.d.ts +1 -8
  470. package/dist/types/sdk/market/pricefeeds/updates/PythUpdater.d.ts +1 -1
  471. package/dist/types/sdk/market/pricefeeds/updates/RedstoneUpdater.d.ts +1 -1
  472. package/dist/types/sdk/market/pricefeeds/updates/fetchPythPayloads.d.ts +2 -2
  473. package/dist/types/sdk/market/pricefeeds/updates/fetchRedstonePayloads.d.ts +2 -2
  474. package/dist/types/sdk/options.d.ts +2 -2
  475. package/dist/types/sdk/plugins/index.d.ts +0 -1
  476. package/dist/types/sdk/pools/AbstractPoolService.d.ts +9 -0
  477. package/dist/types/sdk/pools/PoolServiceV310.d.ts +4 -0
  478. package/dist/types/sdk/pools/createPoolService.d.ts +3 -0
  479. package/dist/types/sdk/pools/index.d.ts +2 -1
  480. package/dist/types/sdk/pools/types.d.ts +62 -64
  481. package/dist/types/sdk/router/AbstractRouterContract.d.ts +2 -7
  482. package/dist/types/sdk/router/RouterV310Contract.d.ts +1 -16
  483. package/dist/types/sdk/router/helpers.d.ts +2 -2
  484. package/dist/types/sdk/router/index.d.ts +0 -1
  485. package/dist/types/sdk/router/types.d.ts +2 -55
  486. package/dist/types/sdk/types/state-human.d.ts +1 -4
  487. package/dist/types/sdk/utils/abi-decode.d.ts +14 -1
  488. package/dist/types/sdk/utils/formatter.d.ts +9 -0
  489. package/package.json +26 -12
  490. package/dist/cjs/abi/iDegenDistributorV300.js +0 -100
  491. package/dist/cjs/abi/routerV300.js +0 -406
  492. package/dist/cjs/abi/v300.js +0 -4189
  493. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -51
  494. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -58
  495. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -49
  496. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -56
  497. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -46
  498. package/dist/cjs/plugins/adapters/contracts/types.js +0 -77
  499. package/dist/cjs/plugins/bots/abi/iPartialLiquidationBotV300.js +0 -164
  500. package/dist/cjs/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +0 -192
  501. package/dist/cjs/sdk/accountMigration/createMigrateCreditAccountsService.js +0 -41
  502. package/dist/cjs/sdk/accountMigration/index.js +0 -26
  503. package/dist/cjs/sdk/accounts/CreditAccountsServiceV300.js +0 -454
  504. package/dist/cjs/sdk/core/BotListV3Contract.js +0 -101
  505. package/dist/cjs/sdk/core/GearStakingV3Contract.js +0 -83
  506. package/dist/cjs/sdk/core/address-provider/AddressProviderV300Contract.js +0 -116
  507. package/dist/cjs/sdk/core/address-provider/index.js +0 -28
  508. package/dist/cjs/sdk/gauges/GaugeStakingService.js +0 -118
  509. package/dist/cjs/sdk/gauges/index.js +0 -24
  510. package/dist/cjs/sdk/market/credit/CreditConfiguratorV300Contract.js +0 -139
  511. package/dist/cjs/sdk/market/credit/CreditFacadeV300Contract.js +0 -160
  512. package/dist/cjs/sdk/market/credit/CreditManagerV300Contract.js +0 -114
  513. package/dist/cjs/sdk/market/oracle/PriceOracleV300Contract.js +0 -129
  514. package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV300Contract.js +0 -85
  515. package/dist/cjs/sdk/market/pool/PoolV300Contract.js +0 -135
  516. package/dist/cjs/sdk/plugins/V300StalenessPeriodPlugin.js +0 -131
  517. package/dist/cjs/sdk/poolMigration/index.js +0 -84
  518. package/dist/cjs/sdk/pools/PoolService.js +0 -260
  519. package/dist/cjs/sdk/router/PathOptionFactory.js +0 -105
  520. package/dist/cjs/sdk/router/RouterV300Contract.js +0 -390
  521. package/dist/cjs/sdk/sdk-gov-legacy/contracts/adapters.js +0 -67
  522. package/dist/cjs/sdk/sdk-gov-legacy/contracts/contracts.js +0 -2576
  523. package/dist/cjs/sdk/sdk-gov-legacy/contracts/protocols.js +0 -58
  524. package/dist/cjs/sdk/sdk-gov-legacy/index.js +0 -26
  525. package/dist/cjs/sdk/sdk-gov-legacy/oracles/PriceFeedType.js +0 -52
  526. package/dist/cjs/sdk/sdk-gov-legacy/tokens/aave.js +0 -16
  527. package/dist/cjs/sdk/sdk-gov-legacy/tokens/aura.js +0 -239
  528. package/dist/cjs/sdk/sdk-gov-legacy/tokens/balancer.js +0 -339
  529. package/dist/cjs/sdk/sdk-gov-legacy/tokens/compound.js +0 -16
  530. package/dist/cjs/sdk/sdk-gov-legacy/tokens/convex.js +0 -450
  531. package/dist/cjs/sdk/sdk-gov-legacy/tokens/curveLP.js +0 -394
  532. package/dist/cjs/sdk/sdk-gov-legacy/tokens/erc4626.js +0 -16
  533. package/dist/cjs/sdk/sdk-gov-legacy/tokens/gear.js +0 -16
  534. package/dist/cjs/sdk/sdk-gov-legacy/tokens/index.js +0 -52
  535. package/dist/cjs/sdk/sdk-gov-legacy/tokens/normal.js +0 -562
  536. package/dist/cjs/sdk/sdk-gov-legacy/tokens/stakingRewards.js +0 -45
  537. package/dist/cjs/sdk/sdk-gov-legacy/tokens/token.js +0 -1002
  538. package/dist/cjs/sdk/sdk-gov-legacy/tokens/tokenData.js +0 -80
  539. package/dist/cjs/sdk/sdk-gov-legacy/tokens/tokenType.js +0 -50
  540. package/dist/cjs/sdk/sdk-gov-legacy/tokens/wrapped.js +0 -16
  541. package/dist/cjs/sdk/sdk-gov-legacy/tokens/yearn.js +0 -95
  542. package/dist/cjs/sdk/sdk-gov-legacy/tokens/zircuit.js +0 -16
  543. package/dist/cjs/sdk/sdk-legacy/core/assets.js +0 -150
  544. package/dist/cjs/sdk/sdk-legacy/core/creditAccount.js +0 -510
  545. package/dist/cjs/sdk/sdk-legacy/core/creditAccount.spec.js +0 -1802
  546. package/dist/cjs/sdk/sdk-legacy/core/creditManager.js +0 -263
  547. package/dist/cjs/sdk/sdk-legacy/core/creditSession.js +0 -256
  548. package/dist/cjs/sdk/sdk-legacy/core/endpoint.js +0 -137
  549. package/dist/cjs/sdk/sdk-legacy/core/eventOrTx.js +0 -87
  550. package/dist/cjs/sdk/sdk-legacy/core/pool.js +0 -334
  551. package/dist/cjs/sdk/sdk-legacy/core/transactions.js +0 -783
  552. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/api.js +0 -366
  553. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/apy.js +0 -176
  554. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/extraAPY.js +0 -137
  555. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/index.js +0 -26
  556. package/dist/cjs/sdk/sdk-legacy/index.js +0 -52
  557. package/dist/cjs/sdk/sdk-legacy/payload/creditAccount.js +0 -16
  558. package/dist/cjs/sdk/sdk-legacy/payload/creditManager.js +0 -16
  559. package/dist/cjs/sdk/sdk-legacy/payload/creditSession.js +0 -16
  560. package/dist/cjs/sdk/sdk-legacy/payload/graphPayload.js +0 -16
  561. package/dist/cjs/sdk/sdk-legacy/payload/pool.js +0 -16
  562. package/dist/cjs/sdk/sdk-legacy/tokens/tokenData.js +0 -92
  563. package/dist/cjs/sdk/sdk-legacy/utils/formatter.js +0 -79
  564. package/dist/cjs/sdk/sdk-legacy/utils/price.js +0 -35
  565. package/dist/esm/abi/iDegenDistributorV300.js +0 -76
  566. package/dist/esm/abi/iStateSerializer.js +0 -12
  567. package/dist/esm/abi/routerV300.js +0 -381
  568. package/dist/esm/abi/v300.js +0 -4154
  569. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -27
  570. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -34
  571. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -25
  572. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -32
  573. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -22
  574. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +0 -22
  575. package/dist/esm/plugins/adapters/contracts/types.js +0 -48
  576. package/dist/esm/plugins/bots/abi/iPartialLiquidationBotV300.js +0 -140
  577. package/dist/esm/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +0 -171
  578. package/dist/esm/sdk/accountMigration/MigrateCreditAccountsServiceV300.js +0 -6
  579. package/dist/esm/sdk/accountMigration/MigrateCreditAccountsServiceV310.js +0 -6
  580. package/dist/esm/sdk/accountMigration/createMigrateCreditAccountsService.js +0 -17
  581. package/dist/esm/sdk/accountMigration/index.js +0 -3
  582. package/dist/esm/sdk/accounts/CreditAccountsServiceV300.js +0 -442
  583. package/dist/esm/sdk/core/BotListV3Contract.js +0 -77
  584. package/dist/esm/sdk/core/GearStakingV3Contract.js +0 -59
  585. package/dist/esm/sdk/core/address-provider/AddressProviderV300Contract.js +0 -82
  586. package/dist/esm/sdk/core/address-provider/index.js +0 -4
  587. package/dist/esm/sdk/gauges/GaugeStakingService.js +0 -94
  588. package/dist/esm/sdk/gauges/index.js +0 -2
  589. package/dist/esm/sdk/market/credit/CreditConfiguratorV300Contract.js +0 -115
  590. package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +0 -143
  591. package/dist/esm/sdk/market/credit/CreditManagerV300Contract.js +0 -90
  592. package/dist/esm/sdk/market/oracle/PriceOracleV300Contract.js +0 -111
  593. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV300Contract.js +0 -61
  594. package/dist/esm/sdk/market/pool/PoolV300Contract.js +0 -116
  595. package/dist/esm/sdk/plugins/V300StalenessPeriodPlugin.js +0 -107
  596. package/dist/esm/sdk/poolMigration/index.js +0 -60
  597. package/dist/esm/sdk/pools/PoolService.js +0 -240
  598. package/dist/esm/sdk/router/PathOptionFactory.js +0 -92
  599. package/dist/esm/sdk/router/RouterV300Contract.js +0 -374
  600. package/dist/esm/sdk/sdk-gov-legacy/contracts/adapters.js +0 -43
  601. package/dist/esm/sdk/sdk-gov-legacy/contracts/contracts.js +0 -2538
  602. package/dist/esm/sdk/sdk-gov-legacy/contracts/index.js +0 -2
  603. package/dist/esm/sdk/sdk-gov-legacy/contracts/protocols.js +0 -34
  604. package/dist/esm/sdk/sdk-gov-legacy/index.js +0 -3
  605. package/dist/esm/sdk/sdk-gov-legacy/oracles/PriceFeedType.js +0 -28
  606. package/dist/esm/sdk/sdk-gov-legacy/oracles/index.js +0 -1
  607. package/dist/esm/sdk/sdk-gov-legacy/tokens/aura.js +0 -213
  608. package/dist/esm/sdk/sdk-gov-legacy/tokens/balancer.js +0 -314
  609. package/dist/esm/sdk/sdk-gov-legacy/tokens/convex.js +0 -424
  610. package/dist/esm/sdk/sdk-gov-legacy/tokens/curveLP.js +0 -369
  611. package/dist/esm/sdk/sdk-gov-legacy/tokens/gear.js +0 -0
  612. package/dist/esm/sdk/sdk-gov-legacy/tokens/index.js +0 -16
  613. package/dist/esm/sdk/sdk-gov-legacy/tokens/normal.js +0 -538
  614. package/dist/esm/sdk/sdk-gov-legacy/tokens/stakingRewards.js +0 -20
  615. package/dist/esm/sdk/sdk-gov-legacy/tokens/token.js +0 -975
  616. package/dist/esm/sdk/sdk-gov-legacy/tokens/tokenData.js +0 -55
  617. package/dist/esm/sdk/sdk-gov-legacy/tokens/tokenType.js +0 -26
  618. package/dist/esm/sdk/sdk-gov-legacy/tokens/wrapped.js +0 -0
  619. package/dist/esm/sdk/sdk-gov-legacy/tokens/yearn.js +0 -71
  620. package/dist/esm/sdk/sdk-gov-legacy/tokens/zircuit.js +0 -0
  621. package/dist/esm/sdk/sdk-legacy/core/creditAccount.js +0 -495
  622. package/dist/esm/sdk/sdk-legacy/core/creditAccount.spec.js +0 -1805
  623. package/dist/esm/sdk/sdk-legacy/core/creditManager.js +0 -242
  624. package/dist/esm/sdk/sdk-legacy/core/creditSession.js +0 -228
  625. package/dist/esm/sdk/sdk-legacy/core/endpoint.js +0 -107
  626. package/dist/esm/sdk/sdk-legacy/core/eventOrTx.js +0 -63
  627. package/dist/esm/sdk/sdk-legacy/core/pool.js +0 -311
  628. package/dist/esm/sdk/sdk-legacy/core/transactions.js +0 -732
  629. package/dist/esm/sdk/sdk-legacy/gearboxRewards/api.js +0 -332
  630. package/dist/esm/sdk/sdk-legacy/gearboxRewards/apy.js +0 -158
  631. package/dist/esm/sdk/sdk-legacy/gearboxRewards/extraAPY.js +0 -102
  632. package/dist/esm/sdk/sdk-legacy/gearboxRewards/index.js +0 -3
  633. package/dist/esm/sdk/sdk-legacy/gearboxRewards/merklAPI.js +0 -6
  634. package/dist/esm/sdk/sdk-legacy/index.js +0 -16
  635. package/dist/esm/sdk/sdk-legacy/payload/creditAccount.js +0 -0
  636. package/dist/esm/sdk/sdk-legacy/payload/creditManager.js +0 -0
  637. package/dist/esm/sdk/sdk-legacy/payload/creditSession.js +0 -0
  638. package/dist/esm/sdk/sdk-legacy/payload/graphPayload.js +0 -0
  639. package/dist/esm/sdk/sdk-legacy/payload/pool.js +0 -0
  640. package/dist/esm/sdk/sdk-legacy/tokens/tokenData.js +0 -68
  641. package/dist/esm/sdk/sdk-legacy/utils/formatter.js +0 -39
  642. package/dist/esm/sdk/sdk-legacy/utils/index.js +0 -3
  643. package/dist/esm/sdk/sdk-legacy/utils/math.js +0 -9
  644. package/dist/esm/sdk/sdk-legacy/utils/price.js +0 -11
  645. package/dist/types/abi/iDegenDistributorV300.d.ts +0 -87
  646. package/dist/types/abi/iStateSerializer.d.ts +0 -11
  647. package/dist/types/abi/routerV300.d.ts +0 -585
  648. package/dist/types/abi/v300.d.ts +0 -5484
  649. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +0 -482
  650. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +0 -225
  651. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +0 -198
  652. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +0 -396
  653. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +0 -203
  654. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +0 -185
  655. package/dist/types/plugins/adapters/contracts/types.d.ts +0 -34
  656. package/dist/types/plugins/bots/abi/iPartialLiquidationBotV300.d.ts +0 -210
  657. package/dist/types/sdk/accountMigration/AbstractMigrateCreditAccountsService.d.ts +0 -32
  658. package/dist/types/sdk/accountMigration/MigrateCreditAccountsServiceV300.d.ts +0 -4
  659. package/dist/types/sdk/accountMigration/MigrateCreditAccountsServiceV310.d.ts +0 -4
  660. package/dist/types/sdk/accountMigration/createMigrateCreditAccountsService.d.ts +0 -8
  661. package/dist/types/sdk/accountMigration/index.d.ts +0 -3
  662. package/dist/types/sdk/accountMigration/types.d.ts +0 -62
  663. package/dist/types/sdk/accounts/CreditAccountsServiceV300.d.ts +0 -32
  664. package/dist/types/sdk/base/token-types.d.ts +0 -25
  665. package/dist/types/sdk/core/BotListV3Contract.d.ts +0 -323
  666. package/dist/types/sdk/core/GearStakingV3Contract.d.ts +0 -520
  667. package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +0 -97
  668. package/dist/types/sdk/core/address-provider/index.d.ts +0 -4
  669. package/dist/types/sdk/gauges/GaugeStakingService.d.ts +0 -14
  670. package/dist/types/sdk/gauges/index.d.ts +0 -2
  671. package/dist/types/sdk/gauges/utils.d.ts +0 -22
  672. package/dist/types/sdk/market/ZapperRegister.d.ts +0 -17
  673. package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +0 -648
  674. package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +0 -1043
  675. package/dist/types/sdk/market/oracle/PriceOracleV300Contract.d.ts +0 -369
  676. package/dist/types/sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts +0 -448
  677. package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +0 -1107
  678. package/dist/types/sdk/market/types.d.ts +0 -10
  679. package/dist/types/sdk/plugins/V300StalenessPeriodPlugin.d.ts +0 -29
  680. package/dist/types/sdk/poolMigration/index.d.ts +0 -11
  681. package/dist/types/sdk/pools/PoolService.d.ts +0 -11
  682. package/dist/types/sdk/router/PathOptionFactory.d.ts +0 -9
  683. package/dist/types/sdk/router/RouterV300Contract.d.ts +0 -39
  684. package/dist/types/sdk/sdk-gov-legacy/contracts/adapters.d.ts +0 -39
  685. package/dist/types/sdk/sdk-gov-legacy/contracts/contracts.d.ts +0 -194
  686. package/dist/types/sdk/sdk-gov-legacy/contracts/index.d.ts +0 -2
  687. package/dist/types/sdk/sdk-gov-legacy/contracts/protocols.d.ts +0 -30
  688. package/dist/types/sdk/sdk-gov-legacy/index.d.ts +0 -3
  689. package/dist/types/sdk/sdk-gov-legacy/oracles/PriceFeedType.d.ts +0 -24
  690. package/dist/types/sdk/sdk-gov-legacy/oracles/index.d.ts +0 -1
  691. package/dist/types/sdk/sdk-gov-legacy/tokens/aave.d.ts +0 -2
  692. package/dist/types/sdk/sdk-gov-legacy/tokens/aura.d.ts +0 -26
  693. package/dist/types/sdk/sdk-gov-legacy/tokens/balancer.d.ts +0 -15
  694. package/dist/types/sdk/sdk-gov-legacy/tokens/compound.d.ts +0 -1
  695. package/dist/types/sdk/sdk-gov-legacy/tokens/convex.d.ts +0 -31
  696. package/dist/types/sdk/sdk-gov-legacy/tokens/curveLP.d.ts +0 -25
  697. package/dist/types/sdk/sdk-gov-legacy/tokens/erc4626.d.ts +0 -1
  698. package/dist/types/sdk/sdk-gov-legacy/tokens/gear.d.ts +0 -5
  699. package/dist/types/sdk/sdk-gov-legacy/tokens/index.d.ts +0 -16
  700. package/dist/types/sdk/sdk-gov-legacy/tokens/normal.d.ts +0 -9
  701. package/dist/types/sdk/sdk-gov-legacy/tokens/stakingRewards.d.ts +0 -13
  702. package/dist/types/sdk/sdk-gov-legacy/tokens/token.d.ts +0 -34
  703. package/dist/types/sdk/sdk-gov-legacy/tokens/tokenData.d.ts +0 -5
  704. package/dist/types/sdk/sdk-gov-legacy/tokens/tokenType.d.ts +0 -24
  705. package/dist/types/sdk/sdk-gov-legacy/tokens/wrapped.d.ts +0 -7
  706. package/dist/types/sdk/sdk-gov-legacy/tokens/yearn.d.ts +0 -26
  707. package/dist/types/sdk/sdk-gov-legacy/tokens/zircuit.d.ts +0 -1
  708. package/dist/types/sdk/sdk-legacy/core/assets.d.ts +0 -39
  709. package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +0 -152
  710. package/dist/types/sdk/sdk-legacy/core/creditAccount.spec.d.ts +0 -1
  711. package/dist/types/sdk/sdk-legacy/core/creditManager.d.ts +0 -92
  712. package/dist/types/sdk/sdk-legacy/core/creditSession.d.ts +0 -110
  713. package/dist/types/sdk/sdk-legacy/core/endpoint.d.ts +0 -24
  714. package/dist/types/sdk/sdk-legacy/core/eventOrTx.d.ts +0 -35
  715. package/dist/types/sdk/sdk-legacy/core/pool.d.ts +0 -144
  716. package/dist/types/sdk/sdk-legacy/core/transactions.d.ts +0 -348
  717. package/dist/types/sdk/sdk-legacy/gearboxRewards/api.d.ts +0 -87
  718. package/dist/types/sdk/sdk-legacy/gearboxRewards/apy.d.ts +0 -46
  719. package/dist/types/sdk/sdk-legacy/gearboxRewards/extraAPY.d.ts +0 -41
  720. package/dist/types/sdk/sdk-legacy/gearboxRewards/index.d.ts +0 -3
  721. package/dist/types/sdk/sdk-legacy/gearboxRewards/merklAPI.d.ts +0 -42
  722. package/dist/types/sdk/sdk-legacy/index.d.ts +0 -16
  723. package/dist/types/sdk/sdk-legacy/payload/creditAccount.d.ts +0 -47
  724. package/dist/types/sdk/sdk-legacy/payload/creditManager.d.ts +0 -109
  725. package/dist/types/sdk/sdk-legacy/payload/creditSession.d.ts +0 -111
  726. package/dist/types/sdk/sdk-legacy/payload/graphPayload.d.ts +0 -10
  727. package/dist/types/sdk/sdk-legacy/payload/pool.d.ts +0 -181
  728. package/dist/types/sdk/sdk-legacy/tokens/tokenData.d.ts +0 -21
  729. package/dist/types/sdk/sdk-legacy/utils/formatter.d.ts +0 -8
  730. package/dist/types/sdk/sdk-legacy/utils/index.d.ts +0 -3
  731. package/dist/types/sdk/sdk-legacy/utils/math.d.ts +0 -6
  732. package/dist/types/sdk/sdk-legacy/utils/price.d.ts +0 -9
  733. /package/dist/cjs/{sdk/accountMigration → common-utils/utils/creditAccount}/types.js +0 -0
  734. /package/dist/cjs/{sdk/core/address-provider → history}/types.js +0 -0
  735. /package/dist/cjs/{sdk/market → plugins/zappers}/types.js +0 -0
  736. /package/dist/esm/{sdk/accountMigration → common-utils/utils/creditAccount}/types.js +0 -0
  737. /package/dist/esm/{sdk/core/address-provider/types.js → history/inner-operations.js} +0 -0
  738. /package/dist/esm/{sdk/gauges/utils.js → history/internal-types.js} +0 -0
  739. /package/dist/esm/{sdk/market → history}/types.js +0 -0
  740. /package/dist/esm/{sdk/sdk-gov-legacy/tokens/aave.js → plugins/adapters/legacyAdapterOperations.js} +0 -0
  741. /package/dist/esm/{sdk/sdk-gov-legacy/tokens/compound.js → plugins/zappers/types.js} +0 -0
  742. /package/dist/esm/sdk/{sdk-gov-legacy/tokens/erc4626.js → core/types.js} +0 -0
  743. /package/dist/esm/sdk/market/adapters/{factory.js → createAdapter.js} +0 -0
  744. /package/dist/types/sdk/market/adapters/{factory.d.ts → createAdapter.d.ts} +0 -0
@@ -1,1805 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import {
3
- MIN_INT96,
4
- PERCENTAGE_FACTOR,
5
- PRICE_DECIMALS_POW
6
- } from "../../constants/index.js";
7
- import { TokenData } from "../tokens/tokenData.js";
8
- import { toBN } from "../utils/formatter.js";
9
- import { PriceUtils } from "../utils/price.js";
10
- import { AssetUtils } from "./assets.js";
11
- import { CreditAccountData_Legacy } from "./creditAccount.js";
12
- const WETH = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2".toLowerCase();
13
- const DAI = "0x6B175474E89094C44Da98b954EedeAC495271d0F".toLowerCase();
14
- const USDC = "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48".toLowerCase();
15
- const STETH = "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84".toLowerCase();
16
- const tokenDataList = {
17
- [WETH]: new TokenData({
18
- addr: WETH,
19
- decimals: 18,
20
- symbol: "WETH",
21
- name: "",
22
- isPhantom: false
23
- }),
24
- [DAI]: new TokenData({
25
- addr: DAI,
26
- decimals: 18,
27
- symbol: "DAI",
28
- name: "",
29
- isPhantom: false
30
- }),
31
- [USDC]: new TokenData({
32
- addr: USDC,
33
- decimals: 6,
34
- symbol: "USDC",
35
- name: "",
36
- isPhantom: false
37
- }),
38
- [STETH]: new TokenData({
39
- addr: STETH,
40
- decimals: 18,
41
- symbol: "STETH",
42
- name: "",
43
- isPhantom: false
44
- })
45
- };
46
- const prices = {
47
- [WETH]: toBN("1738.11830000", PRICE_DECIMALS_POW),
48
- [DAI]: toBN("0.99941103", PRICE_DECIMALS_POW),
49
- [USDC]: toBN("0.999", PRICE_DECIMALS_POW),
50
- [STETH]: toBN("1703.87588096", PRICE_DECIMALS_POW)
51
- };
52
- const lpAPY = {
53
- [STETH]: 38434
54
- };
55
- const DAI_DECIMALS = 18;
56
- const WETH_DECIMALS = 18;
57
- const STETH_DECIMALS = 18;
58
- const USDC_DECIMALS = 6;
59
- const caWithoutLP = {
60
- assets: [
61
- {
62
- balance: toBN("54780", DAI_DECIMALS),
63
- token: DAI
64
- },
65
- {
66
- balance: toBN("3.5", WETH_DECIMALS),
67
- token: WETH
68
- }
69
- ],
70
- totalValue: toBN("60860", DAI_DECIMALS),
71
- debt: toBN("54780", DAI_DECIMALS),
72
- borrowRate: 7712,
73
- underlyingToken: DAI,
74
- quotas: {
75
- [WETH]: {
76
- balance: toBN("173811.830000", WETH_DECIMALS),
77
- token: DAI
78
- }
79
- },
80
- rates: {
81
- [WETH]: {
82
- rate: 38434n,
83
- isActive: true
84
- }
85
- }
86
- };
87
- const caWithLP = {
88
- assets: [
89
- {
90
- balance: toBN("119.999999999999999997", STETH_DECIMALS),
91
- token: STETH
92
- },
93
- {
94
- balance: toBN("3.5", WETH_DECIMALS),
95
- token: WETH
96
- }
97
- ],
98
- totalValue: toBN("117.635897231615362429", WETH_DECIMALS),
99
- debt: toBN("90.000000000000000000", WETH_DECIMALS),
100
- borrowRate: 5736,
101
- underlyingToken: WETH,
102
- quotas: {
103
- [STETH]: {
104
- balance: toBN(
105
- String(1703.87588096 * 119.9999999999999 / 1738.1183),
106
- WETH_DECIMALS
107
- ),
108
- token: STETH
109
- }
110
- },
111
- rates: {
112
- [STETH]: {
113
- rate: 38434n,
114
- isActive: true
115
- }
116
- }
117
- };
118
- describe("CreditAccount CreditAccountData_Legacy.calcOverallAPY test", () => {
119
- it("overall APY calculation for caWithoutLP is correct", () => {
120
- const result = CreditAccountData_Legacy.calcOverallAPY({
121
- caAssets: caWithoutLP.assets,
122
- totalValue: caWithoutLP.totalValue,
123
- debt: caWithoutLP.debt,
124
- baseRateWithFee: caWithoutLP.borrowRate,
125
- underlyingToken: caWithoutLP.underlyingToken,
126
- quotaRates: {},
127
- quotas: {},
128
- feeInterest: 0,
129
- lpAPY,
130
- prices,
131
- tokensList: tokenDataList
132
- });
133
- expect(result).toEqual(-69484n);
134
- });
135
- it("overall APY calculation for caWithLP is correct", () => {
136
- const result = CreditAccountData_Legacy.calcOverallAPY({
137
- caAssets: caWithLP.assets,
138
- totalValue: caWithLP.totalValue,
139
- debt: caWithLP.debt,
140
- baseRateWithFee: caWithLP.borrowRate,
141
- underlyingToken: caWithLP.underlyingToken,
142
- quotaRates: {},
143
- quotas: {},
144
- feeInterest: 0,
145
- lpAPY,
146
- prices,
147
- tokensList: tokenDataList
148
- });
149
- expect(result).toEqual(144919n);
150
- });
151
- it("overall APY is undefined when !lpAPY", () => {
152
- const result = CreditAccountData_Legacy.calcOverallAPY({
153
- caAssets: caWithLP.assets,
154
- totalValue: caWithLP.totalValue,
155
- debt: caWithLP.debt,
156
- baseRateWithFee: caWithLP.borrowRate,
157
- underlyingToken: caWithLP.underlyingToken,
158
- quotaRates: {},
159
- quotas: {},
160
- feeInterest: 0,
161
- lpAPY: void 0,
162
- prices,
163
- tokensList: tokenDataList
164
- });
165
- expect(result).toEqual(void 0);
166
- });
167
- it("overall APY is undefined when !totalValue", () => {
168
- const result = CreditAccountData_Legacy.calcOverallAPY({
169
- caAssets: caWithLP.assets,
170
- totalValue: void 0,
171
- debt: caWithLP.debt,
172
- baseRateWithFee: caWithLP.borrowRate,
173
- underlyingToken: caWithLP.underlyingToken,
174
- quotaRates: {},
175
- quotas: {},
176
- feeInterest: 0,
177
- lpAPY,
178
- prices,
179
- tokensList: tokenDataList
180
- });
181
- expect(result).toEqual(void 0);
182
- });
183
- it("overall APY is undefined when !debt", () => {
184
- const result = CreditAccountData_Legacy.calcOverallAPY({
185
- caAssets: caWithLP.assets,
186
- totalValue: caWithLP.totalValue,
187
- debt: void 0,
188
- baseRateWithFee: caWithLP.borrowRate,
189
- underlyingToken: caWithLP.underlyingToken,
190
- quotaRates: {},
191
- quotas: {},
192
- feeInterest: 0,
193
- lpAPY,
194
- prices,
195
- tokensList: tokenDataList
196
- });
197
- expect(result).toEqual(void 0);
198
- });
199
- it("overall APY is undefined when totalValue lte 0", () => {
200
- const result = CreditAccountData_Legacy.calcOverallAPY({
201
- caAssets: caWithLP.assets,
202
- totalValue: 0n,
203
- debt: void 0,
204
- baseRateWithFee: caWithLP.borrowRate,
205
- underlyingToken: caWithLP.underlyingToken,
206
- quotaRates: {},
207
- quotas: {},
208
- feeInterest: 0,
209
- lpAPY,
210
- prices,
211
- tokensList: tokenDataList
212
- });
213
- expect(result).toEqual(void 0);
214
- });
215
- it("overall APY calculation for caWithLP with sufficient quota is correct", () => {
216
- const result = CreditAccountData_Legacy.calcOverallAPY({
217
- caAssets: caWithLP.assets,
218
- totalValue: caWithLP.totalValue,
219
- debt: caWithLP.debt,
220
- baseRateWithFee: caWithLP.borrowRate,
221
- underlyingToken: caWithLP.underlyingToken,
222
- quotaRates: caWithLP.rates,
223
- quotas: caWithLP.quotas,
224
- feeInterest: 0,
225
- lpAPY,
226
- prices,
227
- tokensList: tokenDataList
228
- });
229
- expect(result).toEqual(-18680n);
230
- });
231
- it("overall APY calculation for caWithLP with insufficient quota is correct", () => {
232
- const result = CreditAccountData_Legacy.calcOverallAPY({
233
- caAssets: caWithLP.assets,
234
- totalValue: caWithLP.totalValue,
235
- debt: caWithLP.debt,
236
- baseRateWithFee: caWithLP.borrowRate,
237
- underlyingToken: caWithLP.underlyingToken,
238
- quotaRates: caWithLP.rates,
239
- quotas: {
240
- [STETH]: {
241
- balance: 0n,
242
- token: STETH
243
- }
244
- },
245
- feeInterest: 0,
246
- lpAPY,
247
- prices,
248
- tokensList: tokenDataList
249
- });
250
- expect(result).toEqual(144919n);
251
- });
252
- });
253
- describe("CreditAccount calcMaxDebtIncrease test", () => {
254
- it("health max increase borrow is zero if hf < 1", () => {
255
- const result = CreditAccountData_Legacy.calcMaxDebtIncrease(
256
- 9999,
257
- BigInt("156522834253690396032546"),
258
- 9300
259
- );
260
- expect(result.toString()).toEqual("0");
261
- });
262
- it("health max increase borrow is calculated correctly", () => {
263
- const result = CreditAccountData_Legacy.calcMaxDebtIncrease(
264
- 10244,
265
- BigInt("156522834253690396032546"),
266
- 9300
267
- );
268
- expect(result.toString()).toEqual("54559387939857795188487");
269
- });
270
- it("health max increase borrow is calculated correctly (low hf, high debt)", () => {
271
- const loweHf = 10244;
272
- const result = CreditAccountData_Legacy.calcMaxDebtIncrease(
273
- loweHf,
274
- BigInt("54782991988791638611392"),
275
- 9300
276
- );
277
- expect(result.toString()).toEqual("19095785778950228315970");
278
- });
279
- });
280
- const liquidationThresholds = {
281
- [USDC]: 9800n,
282
- [DAI]: 9300n,
283
- [WETH]: 8500n,
284
- [STETH]: 8000n
285
- };
286
- describe("CreditAccount calcMaxLendingDebt test", () => {
287
- it("calcMaxLendingDebt for several collaterals with zero lt", () => {
288
- const result = CreditAccountData_Legacy.calcMaxLendingDebt({
289
- assets: [
290
- {
291
- token: DAI,
292
- balance: toBN("1000", DAI_DECIMALS)
293
- },
294
- {
295
- token: WETH,
296
- balance: toBN("1", WETH_DECIMALS)
297
- }
298
- ],
299
- liquidationThresholds: {
300
- ...liquidationThresholds,
301
- [DAI]: 0n
302
- },
303
- underlyingToken: USDC,
304
- prices: {
305
- [DAI]: 1n,
306
- [USDC]: 1n,
307
- [WETH]: 1000n
308
- },
309
- tokensList: tokenDataList
310
- });
311
- expect(result).toEqual(toBN("850", USDC_DECIMALS));
312
- });
313
- it("calcMaxLendingDebt for several collaterals with zero underlying price", () => {
314
- const result = CreditAccountData_Legacy.calcMaxLendingDebt({
315
- assets: [
316
- {
317
- token: DAI,
318
- balance: toBN("1000", DAI_DECIMALS)
319
- },
320
- {
321
- token: WETH,
322
- balance: toBN("1", WETH_DECIMALS)
323
- }
324
- ],
325
- liquidationThresholds,
326
- underlyingToken: USDC,
327
- prices: {
328
- [DAI]: 1n,
329
- [WETH]: 1000n
330
- },
331
- tokensList: tokenDataList
332
- });
333
- expect(result).toEqual(0n);
334
- });
335
- it("calcMaxLendingDebt for simplest case", () => {
336
- const result = CreditAccountData_Legacy.calcMaxLendingDebt({
337
- assets: [
338
- {
339
- token: DAI,
340
- balance: toBN("1000", DAI_DECIMALS)
341
- }
342
- ],
343
- liquidationThresholds,
344
- underlyingToken: USDC,
345
- prices: {
346
- [DAI]: 1n,
347
- [USDC]: 1n
348
- },
349
- tokensList: tokenDataList
350
- });
351
- expect(result).toEqual(toBN("930", USDC_DECIMALS));
352
- });
353
- it("calcMaxLendingDebt for several collaterals", () => {
354
- const result = CreditAccountData_Legacy.calcMaxLendingDebt({
355
- assets: [
356
- {
357
- token: DAI,
358
- balance: toBN("1000", DAI_DECIMALS)
359
- },
360
- {
361
- token: WETH,
362
- balance: toBN("1", WETH_DECIMALS)
363
- }
364
- ],
365
- liquidationThresholds,
366
- underlyingToken: USDC,
367
- prices: {
368
- [DAI]: 1n,
369
- [USDC]: 1n,
370
- [WETH]: 1000n
371
- },
372
- tokensList: tokenDataList
373
- });
374
- expect(result).toEqual(toBN("1780", USDC_DECIMALS));
375
- });
376
- it("calcMaxLendingDebt for several collaterals with target HF", () => {
377
- const result = CreditAccountData_Legacy.calcMaxLendingDebt({
378
- assets: [
379
- {
380
- token: DAI,
381
- balance: toBN("1000", DAI_DECIMALS)
382
- },
383
- {
384
- token: WETH,
385
- balance: toBN("1", WETH_DECIMALS)
386
- }
387
- ],
388
- liquidationThresholds,
389
- underlyingToken: USDC,
390
- prices: {
391
- [DAI]: 1n,
392
- [USDC]: 1n,
393
- [WETH]: 1000n
394
- },
395
- targetHF: 12500n,
396
- tokensList: tokenDataList
397
- });
398
- expect(result).toEqual(toBN("1424", USDC_DECIMALS));
399
- });
400
- });
401
- const defaultCA = {
402
- assets: [
403
- {
404
- balance: toBN("156552", DAI_DECIMALS),
405
- token: DAI
406
- },
407
- {
408
- balance: toBN("10", WETH_DECIMALS),
409
- token: WETH
410
- }
411
- ],
412
- debt: toBN("156552", DAI_DECIMALS),
413
- healthFactor: 10244,
414
- underlyingToken: DAI,
415
- underlyingDecimals: DAI_DECIMALS,
416
- quotas: {
417
- [WETH]: {
418
- balance: toBN(String(1750 * 10), DAI_DECIMALS),
419
- token: WETH
420
- }
421
- },
422
- quotasInfo: {
423
- [WETH]: {
424
- isActive: true
425
- }
426
- }
427
- };
428
- describe("CreditAccount calcHealthFactor test", () => {
429
- it("health factor is calculated correctly", () => {
430
- const result = CreditAccountData_Legacy.calcHealthFactor({
431
- quotas: {},
432
- quotasInfo: {},
433
- assets: defaultCA.assets,
434
- prices,
435
- liquidationThresholds,
436
- underlyingToken: defaultCA.underlyingToken,
437
- debt: defaultCA.debt,
438
- tokensList: tokenDataList
439
- });
440
- expect(result).toEqual(defaultCA.healthFactor);
441
- });
442
- it("health factor calculation has no division by zero error", () => {
443
- const result = CreditAccountData_Legacy.calcHealthFactor({
444
- quotas: {},
445
- quotasInfo: {},
446
- assets: [],
447
- prices: {},
448
- liquidationThresholds: {},
449
- underlyingToken: "",
450
- debt: 0n,
451
- tokensList: tokenDataList
452
- });
453
- expect(result).toEqual(65535);
454
- });
455
- it("health factor after add collateral is calculated correctly", () => {
456
- const collateral = {
457
- balance: toBN("10", WETH_DECIMALS),
458
- token: WETH
459
- };
460
- const afterAdd = AssetUtils.sumAssets(defaultCA.assets, [collateral]);
461
- const result = CreditAccountData_Legacy.calcHealthFactor({
462
- quotas: {},
463
- quotasInfo: {},
464
- assets: afterAdd,
465
- prices,
466
- liquidationThresholds,
467
- underlyingToken: defaultCA.underlyingToken,
468
- debt: defaultCA.debt,
469
- tokensList: tokenDataList
470
- });
471
- expect(result).toEqual(11188);
472
- });
473
- it("health factor after decrease debt is calculated correctly", () => {
474
- const amountDecrease = toBN("10000", defaultCA.underlyingDecimals);
475
- const debtDecrease = {
476
- balance: amountDecrease,
477
- token: defaultCA.underlyingToken
478
- };
479
- const afterDecrease = AssetUtils.subAssets(defaultCA.assets, [
480
- debtDecrease
481
- ]);
482
- const result = CreditAccountData_Legacy.calcHealthFactor({
483
- quotas: {},
484
- quotasInfo: {},
485
- assets: afterDecrease,
486
- prices,
487
- liquidationThresholds,
488
- underlyingToken: defaultCA.underlyingToken,
489
- debt: defaultCA.debt - amountDecrease,
490
- tokensList: tokenDataList
491
- });
492
- expect(result).toEqual(10308);
493
- });
494
- it("health factor after increase debt is calculated correctly", () => {
495
- const amountIncrease = toBN("20000", defaultCA.underlyingDecimals);
496
- const debtIncrease = {
497
- balance: amountIncrease,
498
- token: defaultCA.underlyingToken
499
- };
500
- const afterIncrease = AssetUtils.sumAssets(defaultCA.assets, [
501
- debtIncrease
502
- ]);
503
- const result = CreditAccountData_Legacy.calcHealthFactor({
504
- quotas: {},
505
- quotasInfo: {},
506
- assets: afterIncrease,
507
- prices,
508
- liquidationThresholds,
509
- underlyingToken: defaultCA.underlyingToken,
510
- debt: defaultCA.debt + amountIncrease,
511
- tokensList: tokenDataList
512
- });
513
- expect(result).toEqual(10137);
514
- });
515
- it("health factor after swap is calculated correctly", () => {
516
- const swapAsset = {
517
- balance: defaultCA.debt,
518
- token: defaultCA.underlyingToken
519
- };
520
- const underlyingPrice = prices[defaultCA.underlyingToken];
521
- const wethPrice = prices[WETH];
522
- const getAmount = PriceUtils.convertByPrice(
523
- PriceUtils.calcTotalPrice(
524
- underlyingPrice,
525
- defaultCA.debt,
526
- defaultCA.underlyingDecimals
527
- ),
528
- { price: wethPrice, decimals: WETH_DECIMALS }
529
- );
530
- const getAsset = {
531
- balance: getAmount,
532
- token: WETH
533
- };
534
- const afterSub = AssetUtils.subAssets(defaultCA.assets, [swapAsset]);
535
- const afterSwap = AssetUtils.sumAssets(afterSub, [getAsset]);
536
- const result = CreditAccountData_Legacy.calcHealthFactor({
537
- quotas: {},
538
- quotasInfo: {},
539
- assets: afterSwap,
540
- prices,
541
- liquidationThresholds,
542
- underlyingToken: defaultCA.underlyingToken,
543
- debt: defaultCA.debt,
544
- tokensList: tokenDataList
545
- });
546
- expect(result).toEqual(9444);
547
- });
548
- it("health factor with sufficient quotas is calculated correctly", () => {
549
- const result = CreditAccountData_Legacy.calcHealthFactor({
550
- quotas: defaultCA.quotas,
551
- quotasInfo: defaultCA.quotasInfo,
552
- assets: defaultCA.assets,
553
- prices,
554
- liquidationThresholds,
555
- underlyingToken: defaultCA.underlyingToken,
556
- debt: defaultCA.debt,
557
- tokensList: tokenDataList
558
- });
559
- expect(result).toEqual(defaultCA.healthFactor);
560
- });
561
- it("health factor with insufficient quotas is calculated correctly", () => {
562
- const result = CreditAccountData_Legacy.calcHealthFactor({
563
- quotas: {
564
- [WETH]: {
565
- balance: 0n,
566
- token: WETH
567
- }
568
- },
569
- quotasInfo: defaultCA.quotasInfo,
570
- assets: defaultCA.assets,
571
- prices,
572
- liquidationThresholds,
573
- underlyingToken: defaultCA.underlyingToken,
574
- debt: defaultCA.debt,
575
- tokensList: tokenDataList
576
- });
577
- expect(result).toEqual(9300);
578
- });
579
- it("health factor with disabled quota is calculated correctly", () => {
580
- const result = CreditAccountData_Legacy.calcHealthFactor({
581
- quotas: defaultCA.quotas,
582
- quotasInfo: {
583
- [WETH]: {
584
- isActive: false
585
- }
586
- },
587
- assets: defaultCA.assets,
588
- prices,
589
- liquidationThresholds,
590
- underlyingToken: defaultCA.underlyingToken,
591
- debt: defaultCA.debt,
592
- tokensList: tokenDataList
593
- });
594
- expect(result).toEqual(9300);
595
- });
596
- });
597
- const cmQuotas = {
598
- [DAI]: {
599
- token: DAI,
600
- isActive: true
601
- },
602
- [WETH]: {
603
- token: WETH,
604
- isActive: true
605
- },
606
- [STETH]: {
607
- token: STETH,
608
- isActive: true
609
- }
610
- };
611
- const caQuota = {
612
- [DAI]: {
613
- quota: 5n * PERCENTAGE_FACTOR
614
- },
615
- [WETH]: {
616
- quota: 10n * PERCENTAGE_FACTOR
617
- }
618
- };
619
- const QUOTA_RESERVE = 100n;
620
- const DEFAULT_LT = {
621
- [DAI]: PERCENTAGE_FACTOR,
622
- [WETH]: PERCENTAGE_FACTOR,
623
- [STETH]: PERCENTAGE_FACTOR
624
- };
625
- const HUGE_MAX_DEBT = 20n * PERCENTAGE_FACTOR;
626
- describe("CreditAccount calcQuotaUpdate test", () => {
627
- it("open account should buy quota", () => {
628
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
629
- maxDebt: HUGE_MAX_DEBT,
630
- quotaReserve: QUOTA_RESERVE,
631
- quotas: cmQuotas,
632
- initialQuotas: {},
633
- assetsAfterUpdate: {
634
- [DAI]: {
635
- amountInTarget: 10n * PERCENTAGE_FACTOR,
636
- balance: 0n,
637
- token: DAI
638
- },
639
- [WETH]: {
640
- amountInTarget: 20n * PERCENTAGE_FACTOR,
641
- balance: 0n,
642
- token: WETH
643
- }
644
- },
645
- allowedToObtain: {
646
- [DAI]: {},
647
- [WETH]: {}
648
- },
649
- allowedToSpend: {},
650
- liquidationThresholds: DEFAULT_LT
651
- });
652
- expect(result.quotaIncrease).toEqual([
653
- {
654
- balance: 10n * PERCENTAGE_FACTOR,
655
- token: DAI
656
- },
657
- {
658
- balance: 20n * PERCENTAGE_FACTOR,
659
- token: WETH
660
- }
661
- ]);
662
- expect(result.quotaDecrease).toEqual([]);
663
- expect(result.desiredQuota).toEqual({
664
- [DAI]: {
665
- balance: 10n * PERCENTAGE_FACTOR,
666
- token: DAI
667
- },
668
- [WETH]: {
669
- balance: 20n * PERCENTAGE_FACTOR,
670
- token: WETH
671
- },
672
- [STETH]: {
673
- balance: 0n * PERCENTAGE_FACTOR,
674
- token: STETH
675
- }
676
- });
677
- });
678
- it("add collateral should buy quota", () => {
679
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
680
- maxDebt: HUGE_MAX_DEBT,
681
- quotaReserve: QUOTA_RESERVE,
682
- quotas: cmQuotas,
683
- initialQuotas: caQuota,
684
- assetsAfterUpdate: {
685
- [STETH]: {
686
- amountInTarget: 10n * PERCENTAGE_FACTOR,
687
- balance: 0n,
688
- token: DAI
689
- }
690
- },
691
- allowedToObtain: {
692
- [STETH]: {}
693
- },
694
- allowedToSpend: {},
695
- liquidationThresholds: DEFAULT_LT
696
- });
697
- expect(result.quotaIncrease).toEqual([
698
- {
699
- balance: 10n * PERCENTAGE_FACTOR,
700
- token: STETH
701
- }
702
- ]);
703
- expect(result.quotaDecrease).toEqual([]);
704
- expect(result.desiredQuota).toEqual({
705
- [DAI]: {
706
- balance: 5n * PERCENTAGE_FACTOR,
707
- token: DAI
708
- },
709
- [WETH]: {
710
- balance: 10n * PERCENTAGE_FACTOR,
711
- token: WETH
712
- },
713
- [STETH]: {
714
- balance: 10n * PERCENTAGE_FACTOR,
715
- token: STETH
716
- }
717
- });
718
- });
719
- it("add collateral should add additional quota", () => {
720
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
721
- maxDebt: HUGE_MAX_DEBT,
722
- quotaReserve: QUOTA_RESERVE,
723
- quotas: cmQuotas,
724
- initialQuotas: caQuota,
725
- assetsAfterUpdate: {
726
- [DAI]: {
727
- amountInTarget: 10n * PERCENTAGE_FACTOR,
728
- balance: 0n,
729
- token: DAI
730
- }
731
- },
732
- allowedToObtain: {
733
- [DAI]: {}
734
- },
735
- allowedToSpend: {},
736
- liquidationThresholds: DEFAULT_LT
737
- });
738
- expect(result.quotaIncrease).toEqual([
739
- {
740
- balance: 5n * PERCENTAGE_FACTOR,
741
- token: DAI
742
- }
743
- ]);
744
- expect(result.quotaDecrease).toEqual([]);
745
- expect(result.desiredQuota).toEqual({
746
- [DAI]: {
747
- balance: 10n * PERCENTAGE_FACTOR,
748
- token: DAI
749
- },
750
- [WETH]: {
751
- balance: 10n * PERCENTAGE_FACTOR,
752
- token: WETH
753
- },
754
- [STETH]: {
755
- balance: 0n * PERCENTAGE_FACTOR,
756
- token: STETH
757
- }
758
- });
759
- });
760
- it("add collateral shouldn't add additional quota", () => {
761
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
762
- maxDebt: HUGE_MAX_DEBT,
763
- quotaReserve: QUOTA_RESERVE,
764
- quotas: cmQuotas,
765
- initialQuotas: caQuota,
766
- assetsAfterUpdate: {
767
- [WETH]: {
768
- amountInTarget: 10n * PERCENTAGE_FACTOR,
769
- balance: 0n,
770
- token: WETH
771
- }
772
- },
773
- allowedToObtain: {
774
- [WETH]: {}
775
- },
776
- allowedToSpend: {},
777
- liquidationThresholds: DEFAULT_LT
778
- });
779
- expect(result.quotaIncrease).toEqual([]);
780
- expect(result.quotaDecrease).toEqual([]);
781
- expect(result.desiredQuota).toEqual({
782
- [DAI]: {
783
- balance: 5n * PERCENTAGE_FACTOR,
784
- token: DAI
785
- },
786
- [WETH]: {
787
- balance: 10n * PERCENTAGE_FACTOR,
788
- token: WETH
789
- },
790
- [STETH]: {
791
- balance: 0n * PERCENTAGE_FACTOR,
792
- token: STETH
793
- }
794
- });
795
- });
796
- it("swap should buy quota", () => {
797
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
798
- maxDebt: HUGE_MAX_DEBT,
799
- quotaReserve: QUOTA_RESERVE,
800
- quotas: cmQuotas,
801
- initialQuotas: caQuota,
802
- assetsAfterUpdate: {
803
- [STETH]: {
804
- amountInTarget: 10n * PERCENTAGE_FACTOR,
805
- balance: 0n,
806
- token: DAI
807
- },
808
- [WETH]: {
809
- amountInTarget: 0n * PERCENTAGE_FACTOR,
810
- balance: 0n,
811
- token: DAI
812
- }
813
- },
814
- allowedToObtain: {
815
- [STETH]: {}
816
- },
817
- allowedToSpend: { [WETH]: {} },
818
- liquidationThresholds: DEFAULT_LT
819
- });
820
- expect(result.quotaIncrease).toEqual([
821
- {
822
- balance: 10n * PERCENTAGE_FACTOR,
823
- token: STETH
824
- }
825
- ]);
826
- expect(result.quotaDecrease).toEqual([
827
- {
828
- balance: MIN_INT96,
829
- token: WETH
830
- }
831
- ]);
832
- expect(result.desiredQuota).toEqual({
833
- [DAI]: {
834
- balance: 5n * PERCENTAGE_FACTOR,
835
- token: DAI
836
- },
837
- [WETH]: {
838
- balance: 0n * PERCENTAGE_FACTOR,
839
- token: WETH
840
- },
841
- [STETH]: {
842
- balance: 10n * PERCENTAGE_FACTOR,
843
- token: STETH
844
- }
845
- });
846
- });
847
- it("swap should buy additional quota", () => {
848
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
849
- maxDebt: HUGE_MAX_DEBT,
850
- quotaReserve: QUOTA_RESERVE,
851
- quotas: cmQuotas,
852
- initialQuotas: caQuota,
853
- assetsAfterUpdate: {
854
- [DAI]: {
855
- amountInTarget: 10n * PERCENTAGE_FACTOR,
856
- balance: 0n,
857
- token: DAI
858
- },
859
- [WETH]: {
860
- amountInTarget: 0n * PERCENTAGE_FACTOR,
861
- balance: 0n,
862
- token: WETH
863
- }
864
- },
865
- allowedToObtain: {
866
- [DAI]: {}
867
- },
868
- allowedToSpend: {
869
- [WETH]: {}
870
- },
871
- liquidationThresholds: DEFAULT_LT
872
- });
873
- expect(result.quotaIncrease).toEqual([
874
- {
875
- balance: 5n * PERCENTAGE_FACTOR,
876
- token: DAI
877
- }
878
- ]);
879
- expect(result.quotaDecrease).toEqual([
880
- {
881
- balance: MIN_INT96,
882
- token: WETH
883
- }
884
- ]);
885
- expect(result.desiredQuota).toEqual({
886
- [DAI]: {
887
- balance: 10n * PERCENTAGE_FACTOR,
888
- token: DAI
889
- },
890
- [WETH]: {
891
- balance: 0n * PERCENTAGE_FACTOR,
892
- token: WETH
893
- },
894
- [STETH]: {
895
- balance: 0n * PERCENTAGE_FACTOR,
896
- token: STETH
897
- }
898
- });
899
- });
900
- it("swap should buy additional quota with respect to debt", () => {
901
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
902
- maxDebt: HUGE_MAX_DEBT,
903
- quotaReserve: QUOTA_RESERVE,
904
- quotas: cmQuotas,
905
- initialQuotas: caQuota,
906
- calcModification: {
907
- debt: 7n * PERCENTAGE_FACTOR,
908
- type: "recommendedQuota"
909
- },
910
- assetsAfterUpdate: {
911
- [DAI]: {
912
- amountInTarget: 10n * PERCENTAGE_FACTOR,
913
- balance: 0n,
914
- token: DAI
915
- },
916
- [WETH]: {
917
- amountInTarget: 0n * PERCENTAGE_FACTOR,
918
- balance: 0n,
919
- token: WETH
920
- }
921
- },
922
- allowedToObtain: {
923
- [DAI]: {}
924
- },
925
- allowedToSpend: {
926
- [WETH]: {}
927
- },
928
- liquidationThresholds: DEFAULT_LT
929
- });
930
- expect(result.quotaIncrease).toEqual([
931
- {
932
- balance: 2n * PERCENTAGE_FACTOR,
933
- token: DAI
934
- }
935
- ]);
936
- expect(result.quotaDecrease).toEqual([
937
- {
938
- balance: MIN_INT96,
939
- token: WETH
940
- }
941
- ]);
942
- expect(result.desiredQuota).toEqual({
943
- [DAI]: {
944
- balance: 7n * PERCENTAGE_FACTOR,
945
- token: DAI
946
- },
947
- [WETH]: {
948
- balance: 0n * PERCENTAGE_FACTOR,
949
- token: WETH
950
- },
951
- [STETH]: {
952
- balance: 0n * PERCENTAGE_FACTOR,
953
- token: STETH
954
- }
955
- });
956
- });
957
- it("swap shouldn't buy additional quota", () => {
958
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
959
- maxDebt: HUGE_MAX_DEBT,
960
- quotaReserve: QUOTA_RESERVE,
961
- quotas: cmQuotas,
962
- initialQuotas: caQuota,
963
- assetsAfterUpdate: {
964
- [WETH]: {
965
- amountInTarget: 10n * PERCENTAGE_FACTOR,
966
- balance: 0n,
967
- token: WETH
968
- },
969
- [DAI]: {
970
- amountInTarget: 0n * PERCENTAGE_FACTOR,
971
- balance: 0n,
972
- token: DAI
973
- }
974
- },
975
- allowedToObtain: {
976
- [WETH]: {}
977
- },
978
- allowedToSpend: { [DAI]: {} },
979
- liquidationThresholds: DEFAULT_LT
980
- });
981
- expect(result.quotaIncrease).toEqual([]);
982
- expect(result.quotaDecrease).toEqual([
983
- {
984
- balance: MIN_INT96,
985
- token: DAI
986
- }
987
- ]);
988
- expect(result.desiredQuota).toEqual({
989
- [DAI]: {
990
- balance: 0n * PERCENTAGE_FACTOR,
991
- token: DAI
992
- },
993
- [WETH]: {
994
- balance: 10n * PERCENTAGE_FACTOR,
995
- token: WETH
996
- },
997
- [STETH]: {
998
- balance: 0n * PERCENTAGE_FACTOR,
999
- token: STETH
1000
- }
1001
- });
1002
- });
1003
- it("shouldn't change quota if disallowed", () => {
1004
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1005
- maxDebt: HUGE_MAX_DEBT,
1006
- quotaReserve: QUOTA_RESERVE,
1007
- quotas: cmQuotas,
1008
- initialQuotas: caQuota,
1009
- assetsAfterUpdate: {
1010
- [DAI]: {
1011
- amountInTarget: 10n * PERCENTAGE_FACTOR,
1012
- balance: 0n,
1013
- token: DAI
1014
- },
1015
- [WETH]: {
1016
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1017
- balance: 0n,
1018
- token: WETH
1019
- }
1020
- },
1021
- allowedToObtain: {},
1022
- allowedToSpend: {},
1023
- liquidationThresholds: DEFAULT_LT
1024
- });
1025
- expect(result.quotaIncrease).toEqual([]);
1026
- expect(result.quotaDecrease).toEqual([]);
1027
- expect(result.desiredQuota).toEqual({
1028
- [DAI]: {
1029
- balance: 5n * PERCENTAGE_FACTOR,
1030
- token: DAI
1031
- },
1032
- [WETH]: {
1033
- balance: 10n * PERCENTAGE_FACTOR,
1034
- token: WETH
1035
- },
1036
- [STETH]: {
1037
- balance: 0n * PERCENTAGE_FACTOR,
1038
- token: STETH
1039
- }
1040
- });
1041
- });
1042
- it("shouldn't change quota if it is disabled", () => {
1043
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1044
- maxDebt: HUGE_MAX_DEBT,
1045
- quotaReserve: QUOTA_RESERVE,
1046
- quotas: {
1047
- [DAI]: {
1048
- token: DAI,
1049
- isActive: false
1050
- },
1051
- [WETH]: {
1052
- token: WETH,
1053
- isActive: false
1054
- },
1055
- [STETH]: {
1056
- token: STETH,
1057
- isActive: false
1058
- }
1059
- },
1060
- initialQuotas: caQuota,
1061
- assetsAfterUpdate: {
1062
- [DAI]: {
1063
- amountInTarget: 10n * PERCENTAGE_FACTOR,
1064
- balance: 0n,
1065
- token: DAI
1066
- },
1067
- [WETH]: {
1068
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1069
- balance: 0n,
1070
- token: WETH
1071
- }
1072
- },
1073
- allowedToObtain: {
1074
- [DAI]: {}
1075
- },
1076
- allowedToSpend: {
1077
- [WETH]: {}
1078
- },
1079
- liquidationThresholds: DEFAULT_LT
1080
- });
1081
- expect(result.quotaIncrease).toEqual([]);
1082
- expect(result.quotaDecrease).toEqual([]);
1083
- expect(result.desiredQuota).toEqual({
1084
- [DAI]: {
1085
- balance: 5n * PERCENTAGE_FACTOR,
1086
- token: DAI
1087
- },
1088
- [WETH]: {
1089
- balance: 10n * PERCENTAGE_FACTOR,
1090
- token: WETH
1091
- },
1092
- [STETH]: {
1093
- balance: 0n * PERCENTAGE_FACTOR,
1094
- token: STETH
1095
- }
1096
- });
1097
- });
1098
- it("swap shouldn't buy quota if no lt", () => {
1099
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1100
- maxDebt: HUGE_MAX_DEBT,
1101
- quotaReserve: QUOTA_RESERVE,
1102
- quotas: cmQuotas,
1103
- initialQuotas: {
1104
- ...caQuota,
1105
- [STETH]: {
1106
- quota: 5n * PERCENTAGE_FACTOR
1107
- }
1108
- },
1109
- assetsAfterUpdate: {
1110
- [STETH]: {
1111
- amountInTarget: 10n * PERCENTAGE_FACTOR,
1112
- balance: 0n,
1113
- token: DAI
1114
- },
1115
- [WETH]: {
1116
- amountInTarget: 5n * PERCENTAGE_FACTOR,
1117
- balance: 0n,
1118
- token: DAI
1119
- }
1120
- },
1121
- allowedToObtain: {
1122
- [STETH]: {}
1123
- },
1124
- allowedToSpend: { [WETH]: {} },
1125
- liquidationThresholds: {}
1126
- });
1127
- expect(result.quotaIncrease).toEqual([]);
1128
- expect(result.quotaDecrease).toEqual([
1129
- {
1130
- balance: MIN_INT96,
1131
- token: WETH
1132
- }
1133
- ]);
1134
- expect(result.desiredQuota).toEqual({
1135
- [DAI]: {
1136
- balance: 5n * PERCENTAGE_FACTOR,
1137
- token: DAI
1138
- },
1139
- [WETH]: {
1140
- balance: 0n * PERCENTAGE_FACTOR,
1141
- token: WETH
1142
- },
1143
- [STETH]: {
1144
- balance: 5n * PERCENTAGE_FACTOR,
1145
- token: STETH
1146
- }
1147
- });
1148
- });
1149
- it("swap should buy quota with respect to lt", () => {
1150
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1151
- maxDebt: HUGE_MAX_DEBT,
1152
- quotaReserve: QUOTA_RESERVE,
1153
- quotas: cmQuotas,
1154
- initialQuotas: {
1155
- ...caQuota,
1156
- [STETH]: { quota: 5n * PERCENTAGE_FACTOR }
1157
- },
1158
- assetsAfterUpdate: {
1159
- [STETH]: {
1160
- amountInTarget: 20n * PERCENTAGE_FACTOR,
1161
- balance: 0n,
1162
- token: DAI
1163
- },
1164
- [WETH]: {
1165
- amountInTarget: 5n * PERCENTAGE_FACTOR,
1166
- balance: 0n,
1167
- token: DAI
1168
- }
1169
- },
1170
- allowedToObtain: {
1171
- [STETH]: {}
1172
- },
1173
- allowedToSpend: { [WETH]: {} },
1174
- liquidationThresholds: {
1175
- ...DEFAULT_LT,
1176
- [STETH]: 5000n
1177
- }
1178
- });
1179
- expect(result.quotaIncrease).toEqual([
1180
- {
1181
- balance: 5n * PERCENTAGE_FACTOR,
1182
- token: STETH
1183
- }
1184
- ]);
1185
- expect(result.quotaDecrease).toEqual([
1186
- {
1187
- balance: -5n * PERCENTAGE_FACTOR,
1188
- token: WETH
1189
- }
1190
- ]);
1191
- expect(result.desiredQuota).toEqual({
1192
- [DAI]: {
1193
- balance: 5n * PERCENTAGE_FACTOR,
1194
- token: DAI
1195
- },
1196
- [WETH]: {
1197
- balance: 5n * PERCENTAGE_FACTOR,
1198
- token: WETH
1199
- },
1200
- [STETH]: {
1201
- balance: 10n * PERCENTAGE_FACTOR,
1202
- token: STETH
1203
- }
1204
- });
1205
- });
1206
- it("swap shouldn't buy quota with respect to lt", () => {
1207
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1208
- maxDebt: HUGE_MAX_DEBT,
1209
- quotaReserve: QUOTA_RESERVE,
1210
- quotas: cmQuotas,
1211
- initialQuotas: {
1212
- ...caQuota,
1213
- [STETH]: { quota: 5n * PERCENTAGE_FACTOR }
1214
- },
1215
- assetsAfterUpdate: {
1216
- [STETH]: {
1217
- amountInTarget: 10n * PERCENTAGE_FACTOR,
1218
- balance: 0n,
1219
- token: DAI
1220
- },
1221
- [WETH]: {
1222
- amountInTarget: 5n * PERCENTAGE_FACTOR,
1223
- balance: 0n,
1224
- token: DAI
1225
- }
1226
- },
1227
- allowedToObtain: {
1228
- [STETH]: {}
1229
- },
1230
- allowedToSpend: { [WETH]: {} },
1231
- liquidationThresholds: {
1232
- ...DEFAULT_LT,
1233
- [STETH]: 5000n
1234
- }
1235
- });
1236
- expect(result.quotaIncrease).toEqual([]);
1237
- expect(result.quotaDecrease).toEqual([
1238
- {
1239
- balance: -5n * PERCENTAGE_FACTOR,
1240
- token: WETH
1241
- }
1242
- ]);
1243
- expect(result.desiredQuota).toEqual({
1244
- [DAI]: {
1245
- balance: 5n * PERCENTAGE_FACTOR,
1246
- token: DAI
1247
- },
1248
- [WETH]: {
1249
- balance: 5n * PERCENTAGE_FACTOR,
1250
- token: WETH
1251
- },
1252
- [STETH]: {
1253
- balance: 5n * PERCENTAGE_FACTOR,
1254
- token: STETH
1255
- }
1256
- });
1257
- });
1258
- it("swap should buy additional quota after limit was increased", () => {
1259
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1260
- maxDebt: 10n * PERCENTAGE_FACTOR,
1261
- quotaReserve: QUOTA_RESERVE,
1262
- quotas: cmQuotas,
1263
- initialQuotas: {
1264
- ...caQuota,
1265
- [DAI]: {
1266
- quota: 10n * PERCENTAGE_FACTOR
1267
- }
1268
- },
1269
- assetsAfterUpdate: {
1270
- [DAI]: {
1271
- amountInTarget: 20n * PERCENTAGE_FACTOR,
1272
- balance: 0n,
1273
- token: DAI
1274
- },
1275
- [WETH]: {
1276
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1277
- balance: 0n,
1278
- token: WETH
1279
- }
1280
- },
1281
- allowedToObtain: {
1282
- [DAI]: {}
1283
- },
1284
- allowedToSpend: {
1285
- [WETH]: {}
1286
- },
1287
- liquidationThresholds: DEFAULT_LT
1288
- });
1289
- expect(result.quotaIncrease).toEqual([
1290
- {
1291
- balance: 10n * PERCENTAGE_FACTOR,
1292
- token: DAI
1293
- }
1294
- ]);
1295
- expect(result.quotaDecrease).toEqual([
1296
- {
1297
- balance: MIN_INT96,
1298
- token: WETH
1299
- }
1300
- ]);
1301
- expect(result.desiredQuota).toEqual({
1302
- [DAI]: {
1303
- balance: 20n * PERCENTAGE_FACTOR,
1304
- token: DAI
1305
- },
1306
- [WETH]: {
1307
- balance: 0n * PERCENTAGE_FACTOR,
1308
- token: WETH
1309
- },
1310
- [STETH]: {
1311
- balance: 0n * PERCENTAGE_FACTOR,
1312
- token: STETH
1313
- }
1314
- });
1315
- });
1316
- it("swap should buy additional quota with respect to debt limit", () => {
1317
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1318
- maxDebt: 9n * PERCENTAGE_FACTOR,
1319
- quotaReserve: QUOTA_RESERVE,
1320
- quotas: cmQuotas,
1321
- initialQuotas: {
1322
- ...caQuota,
1323
- [DAI]: {
1324
- quota: 10n * PERCENTAGE_FACTOR
1325
- }
1326
- },
1327
- assetsAfterUpdate: {
1328
- [DAI]: {
1329
- amountInTarget: 20n * PERCENTAGE_FACTOR,
1330
- balance: 0n,
1331
- token: DAI
1332
- },
1333
- [WETH]: {
1334
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1335
- balance: 0n,
1336
- token: WETH
1337
- }
1338
- },
1339
- allowedToObtain: {
1340
- [DAI]: {}
1341
- },
1342
- allowedToSpend: {
1343
- [WETH]: {}
1344
- },
1345
- liquidationThresholds: DEFAULT_LT
1346
- });
1347
- expect(result.quotaIncrease).toEqual([
1348
- {
1349
- balance: 8n * PERCENTAGE_FACTOR,
1350
- token: DAI
1351
- }
1352
- ]);
1353
- expect(result.quotaDecrease).toEqual([
1354
- {
1355
- balance: MIN_INT96,
1356
- token: WETH
1357
- }
1358
- ]);
1359
- expect(result.desiredQuota).toEqual({
1360
- [DAI]: {
1361
- balance: 18n * PERCENTAGE_FACTOR,
1362
- token: DAI
1363
- },
1364
- [WETH]: {
1365
- balance: 0n * PERCENTAGE_FACTOR,
1366
- token: WETH
1367
- },
1368
- [STETH]: {
1369
- balance: 0n * PERCENTAGE_FACTOR,
1370
- token: STETH
1371
- }
1372
- });
1373
- });
1374
- it("swap shouldn't buy additional quota if debt limit more then current quota", () => {
1375
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1376
- maxDebt: 5n * PERCENTAGE_FACTOR,
1377
- quotaReserve: QUOTA_RESERVE,
1378
- quotas: cmQuotas,
1379
- initialQuotas: {
1380
- ...caQuota,
1381
- [DAI]: {
1382
- quota: 10n * PERCENTAGE_FACTOR
1383
- }
1384
- },
1385
- assetsAfterUpdate: {
1386
- [DAI]: {
1387
- amountInTarget: 20n * PERCENTAGE_FACTOR,
1388
- balance: 0n,
1389
- token: DAI
1390
- },
1391
- [WETH]: {
1392
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1393
- balance: 0n,
1394
- token: WETH
1395
- }
1396
- },
1397
- allowedToObtain: {
1398
- [DAI]: {}
1399
- },
1400
- allowedToSpend: {
1401
- [WETH]: {}
1402
- },
1403
- liquidationThresholds: DEFAULT_LT
1404
- });
1405
- expect(result.quotaIncrease).toEqual([]);
1406
- expect(result.quotaDecrease).toEqual([
1407
- {
1408
- balance: MIN_INT96,
1409
- token: WETH
1410
- }
1411
- ]);
1412
- expect(result.desiredQuota).toEqual({
1413
- [DAI]: {
1414
- balance: 10n * PERCENTAGE_FACTOR,
1415
- token: DAI
1416
- },
1417
- [WETH]: {
1418
- balance: 0n * PERCENTAGE_FACTOR,
1419
- token: WETH
1420
- },
1421
- [STETH]: {
1422
- balance: 0n * PERCENTAGE_FACTOR,
1423
- token: STETH
1424
- }
1425
- });
1426
- });
1427
- it("swap on old accounts should work correctly", () => {
1428
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1429
- maxDebt: HUGE_MAX_DEBT,
1430
- quotaReserve: QUOTA_RESERVE,
1431
- quotas: cmQuotas,
1432
- initialQuotas: {
1433
- ...caQuota,
1434
- [DAI]: {
1435
- quota: 52345n
1436
- },
1437
- [WETH]: {
1438
- quota: 107458n * PERCENTAGE_FACTOR
1439
- }
1440
- },
1441
- assetsAfterUpdate: {
1442
- [STETH]: {
1443
- amountInTarget: 101345n,
1444
- balance: 0n,
1445
- token: STETH
1446
- },
1447
- [WETH]: {
1448
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1449
- balance: 0n,
1450
- token: WETH
1451
- }
1452
- },
1453
- allowedToObtain: {
1454
- [STETH]: {}
1455
- },
1456
- allowedToSpend: { [WETH]: {} },
1457
- liquidationThresholds: DEFAULT_LT
1458
- });
1459
- expect(result.quotaIncrease).toEqual([
1460
- {
1461
- balance: 10n * PERCENTAGE_FACTOR,
1462
- token: STETH
1463
- }
1464
- ]);
1465
- expect(result.quotaDecrease).toEqual([
1466
- {
1467
- balance: MIN_INT96,
1468
- token: WETH
1469
- }
1470
- ]);
1471
- expect(result.desiredQuota).toEqual({
1472
- [DAI]: {
1473
- balance: 52345n,
1474
- token: DAI
1475
- },
1476
- [WETH]: {
1477
- balance: 0n * PERCENTAGE_FACTOR,
1478
- token: WETH
1479
- },
1480
- [STETH]: {
1481
- balance: 10n * PERCENTAGE_FACTOR,
1482
- token: STETH
1483
- }
1484
- });
1485
- });
1486
- it("swap on old accounts should work correctly and respect maxQuotaIncrease", () => {
1487
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1488
- maxDebt: 6n * PERCENTAGE_FACTOR,
1489
- quotaReserve: QUOTA_RESERVE,
1490
- quotas: cmQuotas,
1491
- initialQuotas: {
1492
- ...caQuota,
1493
- [DAI]: {
1494
- quota: 52345n
1495
- },
1496
- [WETH]: {
1497
- quota: 107458n * PERCENTAGE_FACTOR
1498
- }
1499
- },
1500
- assetsAfterUpdate: {
1501
- [STETH]: {
1502
- amountInTarget: 101345n,
1503
- balance: 0n,
1504
- token: STETH
1505
- },
1506
- [WETH]: {
1507
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1508
- balance: 0n,
1509
- token: WETH
1510
- }
1511
- },
1512
- allowedToObtain: {
1513
- [STETH]: {}
1514
- },
1515
- allowedToSpend: { [WETH]: {} },
1516
- liquidationThresholds: DEFAULT_LT
1517
- });
1518
- expect(result.quotaIncrease).toEqual([
1519
- {
1520
- balance: 7n * PERCENTAGE_FACTOR,
1521
- token: STETH
1522
- }
1523
- ]);
1524
- expect(result.quotaDecrease).toEqual([
1525
- {
1526
- balance: MIN_INT96,
1527
- token: WETH
1528
- }
1529
- ]);
1530
- expect(result.desiredQuota).toEqual({
1531
- [DAI]: {
1532
- balance: 52345n,
1533
- token: DAI
1534
- },
1535
- [WETH]: {
1536
- balance: 0n * PERCENTAGE_FACTOR,
1537
- token: WETH
1538
- },
1539
- [STETH]: {
1540
- balance: 7n * PERCENTAGE_FACTOR,
1541
- token: STETH
1542
- }
1543
- });
1544
- });
1545
- it("should buy quota correctly when all assets listed in both buy and spend", () => {
1546
- const result = CreditAccountData_Legacy.calcQuotaUpdate({
1547
- maxDebt: HUGE_MAX_DEBT,
1548
- quotaReserve: QUOTA_RESERVE,
1549
- quotas: cmQuotas,
1550
- initialQuotas: {
1551
- ...caQuota,
1552
- [DAI]: {
1553
- quota: 0n * PERCENTAGE_FACTOR
1554
- },
1555
- [STETH]: {
1556
- quota: 15n * PERCENTAGE_FACTOR
1557
- }
1558
- },
1559
- assetsAfterUpdate: {
1560
- [STETH]: {
1561
- amountInTarget: 0n * PERCENTAGE_FACTOR,
1562
- balance: 0n,
1563
- token: STETH
1564
- },
1565
- [DAI]: {
1566
- amountInTarget: 10n * PERCENTAGE_FACTOR,
1567
- balance: 0n,
1568
- token: DAI
1569
- },
1570
- [WETH]: {
1571
- amountInTarget: 5n * PERCENTAGE_FACTOR,
1572
- balance: 0n,
1573
- token: WETH
1574
- }
1575
- },
1576
- allowedToObtain: {
1577
- [STETH]: {},
1578
- [DAI]: {},
1579
- [WETH]: {}
1580
- },
1581
- allowedToSpend: {
1582
- [STETH]: {},
1583
- [DAI]: {},
1584
- [WETH]: {}
1585
- },
1586
- liquidationThresholds: DEFAULT_LT
1587
- });
1588
- expect(result.quotaIncrease).toEqual([
1589
- {
1590
- balance: 10n * PERCENTAGE_FACTOR,
1591
- token: DAI
1592
- }
1593
- ]);
1594
- expect(result.quotaDecrease).toEqual([
1595
- {
1596
- balance: MIN_INT96,
1597
- token: STETH
1598
- },
1599
- {
1600
- balance: -5n * PERCENTAGE_FACTOR,
1601
- token: WETH
1602
- }
1603
- ]);
1604
- expect(result.desiredQuota).toEqual({
1605
- [DAI]: {
1606
- balance: 10n * PERCENTAGE_FACTOR,
1607
- token: DAI
1608
- },
1609
- [WETH]: {
1610
- balance: 5n * PERCENTAGE_FACTOR,
1611
- token: WETH
1612
- },
1613
- [STETH]: {
1614
- balance: 0n * PERCENTAGE_FACTOR,
1615
- token: STETH
1616
- }
1617
- });
1618
- });
1619
- });
1620
- describe("CreditAccount calcAvgQuotaBorrowRate test", () => {
1621
- it("should calculate quota rate (same amounts, different rates)", () => {
1622
- const result = CreditAccountData_Legacy.calcQuotaBorrowRate({
1623
- quotas: {
1624
- [DAI]: {
1625
- token: DAI,
1626
- balance: 10n
1627
- },
1628
- [WETH]: {
1629
- token: WETH,
1630
- balance: 10n
1631
- },
1632
- [STETH]: {
1633
- token: STETH,
1634
- balance: 10n
1635
- }
1636
- },
1637
- quotaRates: {
1638
- [DAI]: {
1639
- rate: 5n,
1640
- isActive: true
1641
- },
1642
- [WETH]: {
1643
- rate: 10n,
1644
- isActive: true
1645
- },
1646
- [STETH]: {
1647
- rate: 15n,
1648
- isActive: true
1649
- }
1650
- }
1651
- });
1652
- expect(result).toEqual(300n);
1653
- });
1654
- it("should calculate quota rate (same rates, different amounts)", () => {
1655
- const result = CreditAccountData_Legacy.calcQuotaBorrowRate({
1656
- quotas: {
1657
- [DAI]: {
1658
- token: DAI,
1659
- balance: 5n
1660
- },
1661
- [WETH]: {
1662
- token: WETH,
1663
- balance: 10n
1664
- },
1665
- [STETH]: {
1666
- token: STETH,
1667
- balance: 15n
1668
- }
1669
- },
1670
- quotaRates: {
1671
- [DAI]: {
1672
- rate: 10n,
1673
- isActive: true
1674
- },
1675
- [WETH]: {
1676
- rate: 10n,
1677
- isActive: true
1678
- },
1679
- [STETH]: {
1680
- rate: 10n,
1681
- isActive: true
1682
- }
1683
- }
1684
- });
1685
- expect(result).toEqual(300n);
1686
- });
1687
- it("should calculate quota rate (disabled quota)", () => {
1688
- const result = CreditAccountData_Legacy.calcQuotaBorrowRate({
1689
- quotas: {
1690
- [DAI]: {
1691
- token: DAI,
1692
- balance: 5n
1693
- },
1694
- [WETH]: {
1695
- token: WETH,
1696
- balance: 10n
1697
- },
1698
- [STETH]: {
1699
- token: STETH,
1700
- balance: 15n
1701
- }
1702
- },
1703
- quotaRates: {
1704
- [DAI]: {
1705
- rate: 10n,
1706
- isActive: true
1707
- },
1708
- [WETH]: {
1709
- rate: 10n,
1710
- isActive: false
1711
- },
1712
- [STETH]: {
1713
- rate: 10n,
1714
- isActive: true
1715
- }
1716
- }
1717
- });
1718
- expect(result).toEqual(200n);
1719
- });
1720
- });
1721
- describe("CreditAccount calcQuotaBorrowRate test", () => {
1722
- it("should calculate quota borrow rate", () => {
1723
- const result = CreditAccountData_Legacy.calcQuotaBorrowRate({
1724
- quotas: {
1725
- [DAI]: {
1726
- token: DAI,
1727
- balance: 10n
1728
- }
1729
- },
1730
- quotaRates: {
1731
- [DAI]: {
1732
- rate: 5n,
1733
- isActive: true
1734
- }
1735
- }
1736
- });
1737
- expect(result).toEqual(50n);
1738
- });
1739
- it("should calculate quota borrow rate when no balance", () => {
1740
- const result = CreditAccountData_Legacy.calcQuotaBorrowRate({
1741
- quotas: {
1742
- [DAI]: {
1743
- token: DAI,
1744
- balance: 1n
1745
- }
1746
- },
1747
- quotaRates: {
1748
- [DAI]: {
1749
- rate: 5n,
1750
- isActive: true
1751
- }
1752
- }
1753
- });
1754
- expect(result).toEqual(5n);
1755
- });
1756
- });
1757
- describe("CreditAccount calcRelativeBaseBorrowRate test", () => {
1758
- it("should calculate relative borrow rate", () => {
1759
- const result = CreditAccountData_Legacy.calcRelativeBaseBorrowRate({
1760
- debt: 200n,
1761
- baseRateWithFee: 250,
1762
- assetAmountInUnderlying: 200n
1763
- });
1764
- expect(result).toEqual(10000000n);
1765
- });
1766
- it("should calculate relative borrow rate if position asset === 0", () => {
1767
- const result = CreditAccountData_Legacy.calcRelativeBaseBorrowRate({
1768
- debt: 200n,
1769
- baseRateWithFee: 250,
1770
- assetAmountInUnderlying: 1n
1771
- });
1772
- expect(result).toEqual(50000n);
1773
- });
1774
- it("should calculate relative borrow rate if position === 0", () => {
1775
- const result = CreditAccountData_Legacy.calcRelativeBaseBorrowRate({
1776
- debt: 1n,
1777
- baseRateWithFee: 250,
1778
- assetAmountInUnderlying: 1n
1779
- });
1780
- expect(result).toEqual(250n);
1781
- });
1782
- });
1783
- describe("CreditAccount getTimeToLiquidation test", () => {
1784
- it("should return 0 when HF < 1", () => {
1785
- const result = CreditAccountData_Legacy.getTimeToLiquidation({
1786
- healthFactor: 9e3,
1787
- totalBorrowRate_debt: 250n
1788
- });
1789
- expect(result).toEqual(null);
1790
- });
1791
- it("should return 0 when br_debt === 0", () => {
1792
- const result = CreditAccountData_Legacy.getTimeToLiquidation({
1793
- healthFactor: 9e3,
1794
- totalBorrowRate_debt: 0n
1795
- });
1796
- expect(result).toEqual(null);
1797
- });
1798
- it("should calculate time to liquidation correctly", () => {
1799
- const result = CreditAccountData_Legacy.getTimeToLiquidation({
1800
- healthFactor: 13750,
1801
- totalBorrowRate_debt: 20n * 10000n
1802
- });
1803
- expect(result).toEqual(59130000n * 1000n);
1804
- });
1805
- });