@gearbox-protocol/sdk 14.12.0-next.7 → 14.12.0-next.70

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 (2642) hide show
  1. package/dist/cjs/_virtual/_rolldown/runtime.js +23 -0
  2. package/dist/cjs/abi/310/configure/creditSuiteParams.js +99 -124
  3. package/dist/cjs/abi/310/configure/iCreditConfigureActions.js +222 -179
  4. package/dist/cjs/abi/310/configure/iPoolConfigureActions.js +74 -78
  5. package/dist/cjs/abi/310/configure/iPriceOracleConfigureActions.js +33 -49
  6. package/dist/cjs/abi/310/crossChainMultisig.js +827 -538
  7. package/dist/cjs/abi/310/generated.js +8015 -5352
  8. package/dist/cjs/abi/310/iBytecodeRepository.js +1295 -895
  9. package/dist/cjs/abi/310/iLinearInterestRateModelV310.js +132 -90
  10. package/dist/cjs/abi/310/iMarketConfiguratorFactory.js +246 -187
  11. package/dist/cjs/abi/310/iPriceFeedStore.js +586 -415
  12. package/dist/cjs/abi/310/iTreasurySplitter.js +430 -498
  13. package/dist/cjs/abi/310/instanceManager.js +375 -272
  14. package/dist/cjs/abi/AccountMigrator.js +271 -323
  15. package/dist/cjs/abi/ILiquidationCompressorV313.js +174 -0
  16. package/dist/cjs/abi/IWithdrawalCompressorV310.js +379 -313
  17. package/dist/cjs/abi/IWithdrawalCompressorV311.js +384 -313
  18. package/dist/cjs/abi/IWithdrawalCompressorV313.js +756 -0
  19. package/dist/cjs/abi/compressors/creditAccountCompressor.js +1031 -454
  20. package/dist/cjs/abi/compressors/creditSuiteCompressor.js +1013 -772
  21. package/dist/cjs/abi/compressors/defillamaCompressor.js +236 -181
  22. package/dist/cjs/abi/compressors/gaugeCompressor.js +279 -182
  23. package/dist/cjs/abi/compressors/liquidationCompressor.js +345 -0
  24. package/dist/cjs/abi/compressors/marketCompressor.js +3161 -2475
  25. package/dist/cjs/abi/compressors/peripheryCompressor.js +262 -200
  26. package/dist/cjs/abi/compressors/priceFeedCompressor.js +853 -579
  27. package/dist/cjs/abi/compressors/rewardsCompressor.js +83 -80
  28. package/dist/cjs/abi/compressors/rwaCompressor.js +279 -205
  29. package/dist/cjs/abi/compressors/subcompressors/liquidation/midasLiquidationSubcompressor.js +179 -0
  30. package/dist/cjs/abi/compressors/subcompressors/liquidation/securitizeLiquidationSubcompressor.js +179 -0
  31. package/dist/cjs/abi/compressors/subcompressors/rwa/onDemandRWAUnderlyingSubcompressor.js +56 -58
  32. package/dist/cjs/abi/compressors/subcompressors/rwa/securitizeRWAFactorySubcompressor.js +94 -78
  33. package/dist/cjs/abi/compressors/subcompressors/withdrawal/infinifiWithdrawalSubcompressor.js +272 -186
  34. package/dist/cjs/abi/compressors/subcompressors/withdrawal/kelpLRTWithdrawalSubcompressor.js +272 -186
  35. package/dist/cjs/abi/compressors/subcompressors/withdrawal/mellowFlexibleDepositSubcompressor.js +267 -185
  36. package/dist/cjs/abi/compressors/subcompressors/withdrawal/mellowFlexibleRedeemSubcompressor.js +267 -185
  37. package/dist/cjs/abi/compressors/subcompressors/withdrawal/mellowWithdrawalSubcompressor.js +512 -186
  38. package/dist/cjs/abi/compressors/subcompressors/withdrawal/midasWithdrawalSubcompressor.js +532 -186
  39. package/dist/cjs/abi/compressors/subcompressors/withdrawal/securitizeRedemptionSubcompressor.js +532 -186
  40. package/dist/cjs/abi/compressors/subcompressors/withdrawal/upshiftWithdrawalSubcompressor.js +272 -186
  41. package/dist/cjs/abi/compressors/tokenCompressor.js +120 -93
  42. package/dist/cjs/abi/compressors/withdrawalCompressor.js +925 -313
  43. package/dist/cjs/abi/errors.js +812 -398
  44. package/dist/cjs/abi/governance/batchesChain.js +37 -66
  45. package/dist/cjs/abi/governance/governor.js +679 -470
  46. package/dist/cjs/abi/governance/iTimeLock.js +392 -255
  47. package/dist/cjs/abi/helpers/redemptionLogger.js +197 -0
  48. package/dist/cjs/abi/iAirdropDistributor.js +135 -124
  49. package/dist/cjs/abi/iBaseRewardPool.js +427 -270
  50. package/dist/cjs/abi/iCurvePool.js +25 -43
  51. package/dist/cjs/abi/iDefaultAccountFactoryV3.js +201 -192
  52. package/dist/cjs/abi/iDegenNFTV2.js +426 -280
  53. package/dist/cjs/abi/iERC20.js +197 -143
  54. package/dist/cjs/abi/iERC20Permit.js +73 -56
  55. package/dist/cjs/abi/iERC20Zapper.js +7 -33
  56. package/dist/cjs/abi/iERC20ZapperDeposits.js +238 -120
  57. package/dist/cjs/abi/iETHZapper.js +6 -30
  58. package/dist/cjs/abi/iETHZapperDeposits.js +37 -50
  59. package/dist/cjs/abi/iFarmingPool.js +332 -250
  60. package/dist/cjs/abi/iInterestRateModel.js +33 -46
  61. package/dist/cjs/abi/iMulticall3.js +368 -263
  62. package/dist/cjs/abi/iOffchainOracle.js +49 -54
  63. package/dist/cjs/abi/iPausable.js +37 -60
  64. package/dist/cjs/abi/iPhantomToken.js +19 -0
  65. package/dist/cjs/abi/iPriceFeed.js +103 -82
  66. package/dist/cjs/abi/iRedemptionLoggerV310.js +147 -0
  67. package/dist/cjs/abi/iStateSerializer.js +15 -36
  68. package/dist/cjs/abi/iUpdatablePriceFeed.js +25 -43
  69. package/dist/cjs/abi/iVersion.js +25 -55
  70. package/dist/cjs/abi/iZapper.js +219 -143
  71. package/dist/cjs/abi/ierc4626Adapter.js +205 -0
  72. package/dist/cjs/abi/mellow.js +4458 -2930
  73. package/dist/cjs/abi/migration.js +822 -671
  74. package/dist/cjs/abi/router/balancerV2Worker.js +1170 -728
  75. package/dist/cjs/abi/router/balancerV3Worker.js +1170 -732
  76. package/dist/cjs/abi/router/balancerV3WrapperWorker.js +883 -539
  77. package/dist/cjs/abi/router/camelotV3Worker.js +913 -556
  78. package/dist/cjs/abi/router/convexWorker.js +883 -539
  79. package/dist/cjs/abi/router/curveWorker.js +1155 -716
  80. package/dist/cjs/abi/router/daiUsdsWorker.js +883 -539
  81. package/dist/cjs/abi/router/equalizerRouterWorker.js +883 -539
  82. package/dist/cjs/abi/router/erc4626Worker.js +929 -570
  83. package/dist/cjs/abi/router/fluidDexWorker.js +898 -549
  84. package/dist/cjs/abi/router/gearboxRouter.js +1056 -649
  85. package/dist/cjs/abi/router/infinifiWorker.js +883 -539
  86. package/dist/cjs/abi/router/infraredVaultWorker.js +883 -539
  87. package/dist/cjs/abi/router/kelpLRTDepositPoolWorker.js +883 -539
  88. package/dist/cjs/abi/router/kodiakWorker.js +1177 -730
  89. package/dist/cjs/abi/router/lidoWorker.js +883 -539
  90. package/dist/cjs/abi/router/mellow4626Worker.js +913 -556
  91. package/dist/cjs/abi/router/mellowDVVWorker.js +883 -539
  92. package/dist/cjs/abi/router/mellowVaultWorker.js +898 -549
  93. package/dist/cjs/abi/router/midasWorker.js +883 -539
  94. package/dist/cjs/abi/router/pendleRouterWorker.js +898 -549
  95. package/dist/cjs/abi/router/routingManager.js +593 -395
  96. package/dist/cjs/abi/router/securitizeOnrampWorker.js +883 -539
  97. package/dist/cjs/abi/router/stakingRewardsWorker.js +883 -539
  98. package/dist/cjs/abi/router/traderJoeWorker.js +883 -539
  99. package/dist/cjs/abi/router/uniswapV2Worker.js +883 -539
  100. package/dist/cjs/abi/router/uniswapV3Worker.js +939 -566
  101. package/dist/cjs/abi/router/uniswapV4Worker.js +935 -572
  102. package/dist/cjs/abi/router/upshiftWorker.js +883 -539
  103. package/dist/cjs/abi/router/velodromeV2Worker.js +883 -539
  104. package/dist/cjs/abi/router/wstETHWorker.js +883 -539
  105. package/dist/cjs/abi/router/yearnV2Worker.js +883 -539
  106. package/dist/cjs/abi/rwa/iDSRegistryService.js +460 -412
  107. package/dist/cjs/abi/rwa/iDSToken.js +1734 -1956
  108. package/dist/cjs/abi/rwa/iMidasLiquidatorV311.js +96 -0
  109. package/dist/cjs/abi/rwa/iRWACompressor.js +270 -194
  110. package/dist/cjs/abi/rwa/iRWAFactory.js +154 -120
  111. package/dist/cjs/abi/rwa/iRWAGateway.js +19 -0
  112. package/dist/cjs/abi/rwa/iRWAUnderlying.js +619 -399
  113. package/dist/cjs/abi/rwa/iSecuritizeDegenNFT.js +453 -324
  114. package/dist/cjs/abi/rwa/iSecuritizeLiquidatorV311.js +111 -0
  115. package/dist/cjs/abi/rwa/iSecuritizeRWAFactory.js +506 -364
  116. package/dist/cjs/common-utils/axios-cache/AxiosCache.js +97 -130
  117. package/dist/cjs/common-utils/axios-cache/index.js +3 -22
  118. package/dist/cjs/common-utils/charts/credit-manager-payload.js +1 -16
  119. package/dist/cjs/common-utils/charts/credit-manager.js +99 -133
  120. package/dist/cjs/common-utils/charts/credit-session.js +208 -254
  121. package/dist/cjs/common-utils/charts/credit-sessions-payload.js +1 -16
  122. package/dist/cjs/common-utils/charts/graph-payload.js +1 -16
  123. package/dist/cjs/common-utils/charts/index.js +18 -36
  124. package/dist/cjs/common-utils/charts/pool-payload.js +1 -16
  125. package/dist/cjs/common-utils/charts/pool.js +175 -197
  126. package/dist/cjs/common-utils/charts/token-data.js +66 -89
  127. package/dist/cjs/common-utils/index.js +209 -28
  128. package/dist/cjs/common-utils/static/index.js +5 -28
  129. package/dist/cjs/common-utils/static/migration-config.js +1 -16
  130. package/dist/cjs/common-utils/static/pool-config.js +1 -16
  131. package/dist/cjs/common-utils/static/strategy.js +1 -16
  132. package/dist/cjs/common-utils/static/trading-pair.js +1 -16
  133. package/dist/cjs/common-utils/test-utils/index.js +86 -121
  134. package/dist/cjs/common-utils/utils/apy/bonus-apy-from-points.js +4 -27
  135. package/dist/cjs/common-utils/utils/apy/calculate-borrow-rate-from-utilization.js +20 -57
  136. package/dist/cjs/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.js +33 -31
  137. package/dist/cjs/common-utils/utils/apy/calculate-earnings.js +22 -58
  138. package/dist/cjs/common-utils/utils/apy/calculate-earnings.spec.js +67 -61
  139. package/dist/cjs/common-utils/utils/apy/calculate-effective-borrow-rate.js +7 -34
  140. package/dist/cjs/common-utils/utils/apy/calculate-safe-borrow-rate.js +19 -54
  141. package/dist/cjs/common-utils/utils/apy/calculate-safe-borrow-rate.spec.js +38 -38
  142. package/dist/cjs/common-utils/utils/apy/get-complex-apy-list.js +16 -43
  143. package/dist/cjs/common-utils/utils/apy/get-rate-with-fee.js +14 -29
  144. package/dist/cjs/common-utils/utils/apy/get-safe-base-borrow-rate.js +12 -36
  145. package/dist/cjs/common-utils/utils/apy/get-single-quota-borrow-rate.js +12 -31
  146. package/dist/cjs/common-utils/utils/apy/index.js +21 -40
  147. package/dist/cjs/common-utils/utils/apy/max-apy-formula.js +13 -39
  148. package/dist/cjs/common-utils/utils/assets-math.js +184 -215
  149. package/dist/cjs/common-utils/utils/constants.js +6 -31
  150. package/dist/cjs/common-utils/utils/creditAccount/calc-health-factor.js +37 -74
  151. package/dist/cjs/common-utils/utils/creditAccount/calc-overall-apy.js +45 -80
  152. package/dist/cjs/common-utils/utils/creditAccount/calc-quota-borrow-rate.js +19 -41
  153. package/dist/cjs/common-utils/utils/creditAccount/calc-relative-base-borrow-rate.js +15 -33
  154. package/dist/cjs/common-utils/utils/creditAccount/debt.js +44 -62
  155. package/dist/cjs/common-utils/utils/creditAccount/get-time-to-liquidation.js +20 -37
  156. package/dist/cjs/common-utils/utils/creditAccount/index.js +27 -40
  157. package/dist/cjs/common-utils/utils/creditAccount/liquidation-price.js +28 -46
  158. package/dist/cjs/common-utils/utils/creditAccount/quota-utils.js +136 -142
  159. package/dist/cjs/common-utils/utils/creditAccount/sort.js +85 -85
  160. package/dist/cjs/common-utils/utils/creditAccount/types.js +1 -16
  161. package/dist/cjs/common-utils/utils/index.js +194 -38
  162. package/dist/cjs/common-utils/utils/price-math.js +50 -65
  163. package/dist/cjs/common-utils/utils/strategies/assets/assets.js +5 -28
  164. package/dist/cjs/common-utils/utils/strategies/assets/index.js +3 -22
  165. package/dist/cjs/common-utils/utils/strategies/availability/check-boolean.js +8 -31
  166. package/dist/cjs/common-utils/utils/strategies/availability/check-degen-nft.js +11 -33
  167. package/dist/cjs/common-utils/utils/strategies/availability/index.js +5 -24
  168. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +22 -61
  169. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +108 -108
  170. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers-list-core.js +29 -64
  171. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers-list.js +13 -35
  172. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers.js +20 -49
  173. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +28 -74
  174. package/dist/cjs/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +93 -91
  175. package/dist/cjs/common-utils/utils/strategies/credit-managers/index.js +13 -32
  176. package/dist/cjs/common-utils/utils/strategies/credit-managers/is-credit-manager-usable.js +7 -29
  177. package/dist/cjs/common-utils/utils/strategies/eligibility/index.js +5 -24
  178. package/dist/cjs/common-utils/utils/strategies/eligibility/is-strategy-eligible.js +17 -43
  179. package/dist/cjs/common-utils/utils/strategies/eligibility/is-strategy-released.js +6 -29
  180. package/dist/cjs/common-utils/utils/strategies/index.js +118 -44
  181. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-loss-coefficient.js +8 -29
  182. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-leverage-factor.js +14 -43
  183. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +19 -61
  184. package/dist/cjs/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +303 -329
  185. package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +9 -33
  186. package/dist/cjs/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +29 -29
  187. package/dist/cjs/common-utils/utils/strategies/leverage/get-factor-from-leverage.js +7 -29
  188. package/dist/cjs/common-utils/utils/strategies/leverage/get-leverage-from-factor.js +7 -29
  189. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.js +46 -84
  190. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +221 -226
  191. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +6 -32
  192. package/dist/cjs/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +18 -22
  193. package/dist/cjs/common-utils/utils/strategies/leverage/index.js +21 -40
  194. package/dist/cjs/common-utils/utils/strategies/leverage/max-leverage-threshold.js +14 -39
  195. package/dist/cjs/common-utils/utils/strategies/leverage/max-leverage.js +16 -34
  196. package/dist/cjs/common-utils/utils/strategies/lists/get-available-and-disabled-strategies.js +14 -37
  197. package/dist/cjs/common-utils/utils/strategies/lists/get-available-strategies.js +30 -45
  198. package/dist/cjs/common-utils/utils/strategies/lists/get-disabled-strategies.js +31 -46
  199. package/dist/cjs/common-utils/utils/strategies/lists/get-released-strategies-list-core.js +23 -59
  200. package/dist/cjs/common-utils/utils/strategies/lists/get-released-strategies-list.js +14 -36
  201. package/dist/cjs/common-utils/utils/strategies/lists/index.js +7 -26
  202. package/dist/cjs/common-utils/utils/strategies/points/get-complex-points-list.js +13 -36
  203. package/dist/cjs/common-utils/utils/strategies/points/get-points-info.js +11 -42
  204. package/dist/cjs/common-utils/utils/strategies/points/get-points-rates.js +6 -31
  205. package/dist/cjs/common-utils/utils/strategies/points/get-strategy-points.js +37 -77
  206. package/dist/cjs/common-utils/utils/strategies/points/index.js +9 -28
  207. package/dist/cjs/common-utils/utils/strategies/sort-strategy-cms-by-availability/index.js +3 -22
  208. package/dist/cjs/common-utils/utils/strategies/sort-strategy-cms-by-availability/sort-strategy-cms-by-availability.js +17 -63
  209. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +62 -111
  210. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +182 -181
  211. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.js +36 -72
  212. package/dist/cjs/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +125 -130
  213. package/dist/cjs/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +41 -62
  214. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +307 -409
  215. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +266 -273
  216. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-strategy-info-core.js +67 -127
  217. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-strategy-info.js +30 -71
  218. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-strategy-max-apy.js +64 -94
  219. package/dist/cjs/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +57 -107
  220. package/dist/cjs/common-utils/utils/strategies/strategy-info/index.js +20 -40
  221. package/dist/cjs/common-utils/utils/strategies/strategy-info/is-strategy-cm-disabled.js +7 -31
  222. package/dist/cjs/common-utils/utils/strategies/strategy-info/types.js +1 -16
  223. package/dist/cjs/common-utils/utils/strategies/strategy-state/index.js +3 -22
  224. package/dist/cjs/common-utils/utils/strategies/strategy-state/is-strategy-disabled.js +11 -35
  225. package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.js +16 -39
  226. package/dist/cjs/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +28 -37
  227. package/dist/cjs/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +8 -33
  228. package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +11 -41
  229. package/dist/cjs/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +36 -31
  230. package/dist/cjs/common-utils/utils/strategies/tokens/get-native-token-address.js +5 -28
  231. package/dist/cjs/common-utils/utils/strategies/tokens/index.js +26 -44
  232. package/dist/cjs/common-utils/utils/strategies/tokens/is-activated-token.js +8 -35
  233. package/dist/cjs/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +7 -33
  234. package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.js +27 -58
  235. package/dist/cjs/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +140 -132
  236. package/dist/cjs/common-utils/utils/strategies/tokens/is-forbidden-token.js +6 -32
  237. package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.js +12 -41
  238. package/dist/cjs/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +146 -160
  239. package/dist/cjs/common-utils/utils/strategies/tokens/is-usable-token.js +13 -30
  240. package/dist/cjs/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +21 -50
  241. package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.js +6 -31
  242. package/dist/cjs/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +14 -12
  243. package/dist/cjs/common-utils/utils/strategies/types/chains.js +1 -16
  244. package/dist/cjs/common-utils/utils/strategies/types/credit-manager-data-legacy.js +1 -16
  245. package/dist/cjs/common-utils/utils/strategies/types/curator-filter.js +1 -16
  246. package/dist/cjs/common-utils/utils/strategies/types/index.js +14 -44
  247. package/dist/cjs/common-utils/utils/strategies/types/legacy-strategy-data-source.js +25 -57
  248. package/dist/cjs/common-utils/utils/strategies/types/points-slices.js +1 -16
  249. package/dist/cjs/common-utils/utils/strategies/types/sdk-state.js +1 -16
  250. package/dist/cjs/common-utils/utils/strategies/types/strategies-cm-list.js +1 -16
  251. package/dist/cjs/common-utils/utils/strategies/types/strategy-data-source.js +1 -16
  252. package/dist/cjs/common-utils/utils/strategies/types/strategy-data.js +1 -16
  253. package/dist/cjs/common-utils/utils/strategies/types/strategy-earnings.js +1 -16
  254. package/dist/cjs/common-utils/utils/strategies/types/strategy.js +1 -16
  255. package/dist/cjs/common-utils/utils/strategies/types/targetable.js +1 -16
  256. package/dist/cjs/common-utils/utils/strategies/types.js +4 -22
  257. package/dist/cjs/common-utils/utils/trace.js +88 -107
  258. package/dist/cjs/common-utils/utils/validation/index.js +23 -42
  259. package/dist/cjs/common-utils/utils/validation/is-zero-balance.js +5 -28
  260. package/dist/cjs/common-utils/utils/validation/validate-balance.js +21 -46
  261. package/dist/cjs/common-utils/utils/validation/validate-balance.spec.js +53 -51
  262. package/dist/cjs/common-utils/utils/validation/validate-balances.js +16 -43
  263. package/dist/cjs/common-utils/utils/validation/validate-balances.spec.js +44 -36
  264. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.js +7 -33
  265. package/dist/cjs/common-utils/utils/validation/validate-credit-manager.spec.js +35 -35
  266. package/dist/cjs/common-utils/utils/validation/validate-hf.js +8 -36
  267. package/dist/cjs/common-utils/utils/validation/validate-hf.spec.js +25 -23
  268. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.js +12 -35
  269. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +28 -42
  270. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.js +35 -74
  271. package/dist/cjs/common-utils/utils/validation/validate-open-account-pool-status.spec.js +95 -95
  272. package/dist/cjs/common-utils/utils/validation/validate-open-account.js +16 -39
  273. package/dist/cjs/common-utils/utils/validation/validate-open-account.spec.js +54 -52
  274. package/dist/cjs/common-utils/utils/validation/validate-quota.js +21 -47
  275. package/dist/cjs/common-utils/utils/validation/validate-quota.spec.js +86 -77
  276. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.js +17 -41
  277. package/dist/cjs/common-utils/utils/validation/validate-token-to-obtain.spec.js +35 -34
  278. package/dist/cjs/common-utils/utils/validation/validation-types.js +1 -16
  279. package/dist/cjs/dev/AccountOpener.js +689 -907
  280. package/dist/cjs/dev/EthCallSpy.js +55 -93
  281. package/dist/cjs/dev/RevolverTransport.js +302 -363
  282. package/dist/cjs/dev/abi.js +207 -245
  283. package/dist/cjs/dev/calcLiquidatableLTs.js +48 -77
  284. package/dist/cjs/dev/claimFromFaucet.js +66 -108
  285. package/dist/cjs/dev/create2.js +90 -113
  286. package/dist/cjs/dev/createAnvilClient.js +81 -106
  287. package/dist/cjs/dev/detectChain.js +20 -39
  288. package/dist/cjs/dev/index.js +90 -75
  289. package/dist/cjs/dev/isOutOfSyncError.js +22 -54
  290. package/dist/cjs/dev/isRateLimitError.js +35 -74
  291. package/dist/cjs/dev/isTransientError.js +38 -85
  292. package/dist/cjs/dev/kycUtils.js +369 -0
  293. package/dist/cjs/dev/logSplitterTransport.js +210 -142
  294. package/dist/cjs/dev/ltUtils.js +71 -104
  295. package/dist/cjs/dev/midasUtils.js +204 -0
  296. package/dist/cjs/dev/migrateFaucet.js +69 -80
  297. package/dist/cjs/dev/mint/AbstractMinter.js +63 -78
  298. package/dist/cjs/dev/mint/DealMinter.js +18 -53
  299. package/dist/cjs/dev/mint/DirectMinter.js +22 -64
  300. package/dist/cjs/dev/mint/FallbackMinter.js +21 -56
  301. package/dist/cjs/dev/mint/TransferMinter.js +35 -80
  302. package/dist/cjs/dev/mint/factory.js +13 -36
  303. package/dist/cjs/dev/mint/index.js +4 -24
  304. package/dist/cjs/dev/mint/types.js +1 -16
  305. package/dist/cjs/dev/providers.js +151 -156
  306. package/dist/cjs/dev/replaceStorage.js +48 -75
  307. package/dist/cjs/dev/resilientTransport.js +76 -101
  308. package/dist/cjs/dev/securitizeUtils.js +259 -0
  309. package/dist/cjs/dev/transports.js +37 -70
  310. package/dist/cjs/dev/types.js +1 -16
  311. package/dist/cjs/dev/verifyTestnet.js +32 -49
  312. package/dist/cjs/dev/withdrawalAbi.js +1836 -0
  313. package/dist/cjs/dev/withdrawalUtils.js +279 -0
  314. package/dist/cjs/history/assembleOperations.js +86 -109
  315. package/dist/cjs/history/classifyMulticallOperations.js +126 -173
  316. package/dist/cjs/history/index.js +11 -37
  317. package/dist/cjs/history/mapOperations.js +39 -73
  318. package/dist/cjs/history/parseCreditAccountTransaction.js +48 -85
  319. package/dist/cjs/history/populateContractsRegister.js +34 -66
  320. package/dist/cjs/history/toLegacyOperation.js +141 -178
  321. package/dist/cjs/history/types.js +1 -16
  322. package/dist/cjs/model/history.js +28 -0
  323. package/dist/cjs/model/history.schema.js +84 -0
  324. package/dist/cjs/model/index.js +77 -0
  325. package/dist/cjs/model/liquidations.js +23 -0
  326. package/dist/cjs/model/liquidations.schema.js +93 -0
  327. package/dist/cjs/model/opportunities.js +55 -0
  328. package/dist/cjs/model/opportunities.schema.js +223 -0
  329. package/dist/cjs/model/package.json +1 -0
  330. package/dist/cjs/model/positions.js +1 -0
  331. package/dist/cjs/model/positions.schema.js +120 -0
  332. package/dist/cjs/model/primitives.js +1 -0
  333. package/dist/cjs/model/primitives.schema.js +85 -0
  334. package/dist/cjs/new-sdk/AbstractNamespace.js +158 -0
  335. package/dist/cjs/new-sdk/GearboxSDK.js +122 -0
  336. package/dist/cjs/new-sdk/index.js +11 -0
  337. package/dist/cjs/new-sdk/opportunities/OpportunitiesNamespace.js +122 -0
  338. package/dist/cjs/new-sdk/opportunities/index.js +4 -0
  339. package/dist/cjs/new-sdk/opportunities/types.js +1 -0
  340. package/dist/cjs/new-sdk/package.json +1 -0
  341. package/dist/cjs/new-sdk/types.js +22 -0
  342. package/dist/cjs/new-sdk/utils/history.js +1 -0
  343. package/dist/cjs/new-sdk/utils/index.js +2 -0
  344. package/dist/cjs/offchain/GearboxAPI.js +33 -0
  345. package/dist/cjs/offchain/index.js +8 -0
  346. package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +97 -0
  347. package/dist/cjs/offchain/opportunities/index.js +4 -0
  348. package/dist/cjs/offchain/package.json +1 -0
  349. package/dist/cjs/offchain/types.js +1 -0
  350. package/dist/cjs/permissionless/bindings/address-provider.js +21 -48
  351. package/dist/cjs/permissionless/bindings/bytecode-repository.js +415 -508
  352. package/dist/cjs/permissionless/bindings/compressors/index.js +5 -24
  353. package/dist/cjs/permissionless/bindings/compressors/token-compressor.js +80 -112
  354. package/dist/cjs/permissionless/bindings/compressors/withdrawal-compressor.js +30 -49
  355. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +269 -337
  356. package/dist/cjs/permissionless/bindings/factory/abstract-factory.js +31 -54
  357. package/dist/cjs/permissionless/bindings/factory/credit-factory.js +152 -196
  358. package/dist/cjs/permissionless/bindings/factory/loss-policy-factory.js +39 -64
  359. package/dist/cjs/permissionless/bindings/factory/pool-factory.js +40 -68
  360. package/dist/cjs/permissionless/bindings/factory/price-oracle-factory.js +22 -46
  361. package/dist/cjs/permissionless/bindings/factory/rate-keeper-factory.js +12 -0
  362. package/dist/cjs/permissionless/bindings/governance/batches-chain.js +21 -40
  363. package/dist/cjs/permissionless/bindings/governance/governor.js +184 -219
  364. package/dist/cjs/permissionless/bindings/governance/index.js +6 -26
  365. package/dist/cjs/permissionless/bindings/governance/timelock.js +77 -103
  366. package/dist/cjs/permissionless/bindings/governance/types.js +1 -16
  367. package/dist/cjs/permissionless/bindings/index.js +34 -46
  368. package/dist/cjs/permissionless/bindings/instance-manager.js +215 -265
  369. package/dist/cjs/permissionless/bindings/market-configurator-factory.js +47 -74
  370. package/dist/cjs/permissionless/bindings/market-configurator.js +639 -769
  371. package/dist/cjs/permissionless/bindings/price-feed-store.js +303 -386
  372. package/dist/cjs/permissionless/bindings/pricefeeds/balancer-stable.js +40 -61
  373. package/dist/cjs/permissionless/bindings/pricefeeds/balancer-weighted.js +40 -61
  374. package/dist/cjs/permissionless/bindings/pricefeeds/bounded.js +28 -45
  375. package/dist/cjs/permissionless/bindings/pricefeeds/composite.js +21 -41
  376. package/dist/cjs/permissionless/bindings/pricefeeds/constant.js +20 -40
  377. package/dist/cjs/permissionless/bindings/pricefeeds/curve-crypto.js +44 -65
  378. package/dist/cjs/permissionless/bindings/pricefeeds/curve-stable.js +44 -65
  379. package/dist/cjs/permissionless/bindings/pricefeeds/curve-twap.js +54 -68
  380. package/dist/cjs/permissionless/bindings/pricefeeds/curve-usd.js +25 -48
  381. package/dist/cjs/permissionless/bindings/pricefeeds/erc4626.js +42 -70
  382. package/dist/cjs/permissionless/bindings/pricefeeds/external.js +11 -36
  383. package/dist/cjs/permissionless/bindings/pricefeeds/index.js +38 -61
  384. package/dist/cjs/permissionless/bindings/pricefeeds/kodiak.js +28 -48
  385. package/dist/cjs/permissionless/bindings/pricefeeds/mellow-lrt.js +93 -120
  386. package/dist/cjs/permissionless/bindings/pricefeeds/pendle-pt-twap.js +26 -49
  387. package/dist/cjs/permissionless/bindings/pricefeeds/pyth.js +41 -63
  388. package/dist/cjs/permissionless/bindings/pricefeeds/redstone.js +59 -79
  389. package/dist/cjs/permissionless/bindings/pricefeeds/wsteth.js +36 -61
  390. package/dist/cjs/permissionless/bindings/pricefeeds/zero.js +8 -31
  391. package/dist/cjs/permissionless/bindings/router/index.js +3 -22
  392. package/dist/cjs/permissionless/bindings/router/routing-manager.js +30 -49
  393. package/dist/cjs/permissionless/bindings/treasury-splitter.js +109 -123
  394. package/dist/cjs/permissionless/bindings/types.js +10 -33
  395. package/dist/cjs/permissionless/chains/archive-transport.js +191 -258
  396. package/dist/cjs/permissionless/chains/chunked-log-transport.js +92 -119
  397. package/dist/cjs/permissionless/core/auditor.js +1 -16
  398. package/dist/cjs/permissionless/core/bytecode.js +1 -16
  399. package/dist/cjs/permissionless/core/index.js +8 -32
  400. package/dist/cjs/permissionless/core/pricefeed-builder.js +1 -16
  401. package/dist/cjs/permissionless/core/pricefeed.js +1 -16
  402. package/dist/cjs/permissionless/core/proposal.js +1 -16
  403. package/dist/cjs/permissionless/core/raw-tx.js +10 -36
  404. package/dist/cjs/permissionless/deployment/addresses.js +12 -35
  405. package/dist/cjs/permissionless/deployment/mainnet.js +23 -49
  406. package/dist/cjs/permissionless/index.js +94 -34
  407. package/dist/cjs/permissionless/plugins/index.js +10 -40
  408. package/dist/cjs/permissionless/plugins/irm/constructor-params-abi.js +85 -71
  409. package/dist/cjs/permissionless/plugins/loss-policies/constructor-params-abi.js +64 -71
  410. package/dist/cjs/permissionless/plugins/rate-keepers/constructor-params-abi.js +73 -79
  411. package/dist/cjs/permissionless/utils/abi-encoder.js +61 -87
  412. package/dist/cjs/permissionless/utils/block-utils.js +28 -53
  413. package/dist/cjs/permissionless/utils/create2.js +63 -98
  414. package/dist/cjs/permissionless/utils/format.js +36 -77
  415. package/dist/cjs/permissionless/utils/governance/batch.js +68 -102
  416. package/dist/cjs/permissionless/utils/governance/index.js +9 -26
  417. package/dist/cjs/permissionless/utils/governance/timelock-txs.js +18 -42
  418. package/dist/cjs/permissionless/utils/governance/types.js +1 -16
  419. package/dist/cjs/permissionless/utils/index.js +50 -36
  420. package/dist/cjs/permissionless/utils/literals.js +10 -39
  421. package/dist/cjs/permissionless/utils/price-update/get-price-feeds.js +55 -93
  422. package/dist/cjs/permissionless/utils/price-update/get-price-update-tx.js +38 -78
  423. package/dist/cjs/permissionless/utils/price-update/get-prices.js +82 -128
  424. package/dist/cjs/permissionless/utils/price-update/get-updatable-feeds.js +19 -49
  425. package/dist/cjs/permissionless/utils/price-update/index.js +11 -28
  426. package/dist/cjs/permissionless/utils/signature.js +8 -33
  427. package/dist/cjs/plugins/accounts/AccountsPlugin.js +54 -84
  428. package/dist/cjs/plugins/accounts/index.js +3 -22
  429. package/dist/cjs/plugins/accounts-counter/AccountsCounterPlugin.js +74 -112
  430. package/dist/cjs/plugins/accounts-counter/index.js +3 -22
  431. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +34 -57
  432. package/dist/cjs/plugins/adapters/abi/actionAbi.js +61 -116
  433. package/dist/cjs/plugins/adapters/abi/adapters/erc4626ReferralAdapter.js +267 -0
  434. package/dist/cjs/plugins/adapters/abi/adapters/iBalancerV3RouterAdapter.js +374 -0
  435. package/dist/cjs/plugins/adapters/abi/adapters/iBalancerV3WrapperAdapter.js +132 -0
  436. package/dist/cjs/plugins/adapters/abi/adapters/iCamelotV3Adapter.js +514 -0
  437. package/dist/cjs/plugins/adapters/abi/adapters/iConvexV1BaseRewardPoolAdapter.js +298 -0
  438. package/dist/cjs/plugins/adapters/abi/adapters/iConvexV1BoosterAdapter.js +232 -0
  439. package/dist/cjs/plugins/adapters/abi/adapters/iCurveV1StableNgAdapter.js +607 -0
  440. package/dist/cjs/plugins/adapters/abi/adapters/iCurveV1_2AssetsAdapter.js +607 -0
  441. package/dist/cjs/plugins/adapters/abi/adapters/iCurveV1_3AssetsAdapter.js +607 -0
  442. package/dist/cjs/plugins/adapters/abi/adapters/iCurveV1_4AssetsAdapter.js +607 -0
  443. package/dist/cjs/plugins/adapters/abi/adapters/iDaiUsdsAdapter.js +151 -0
  444. package/dist/cjs/plugins/adapters/abi/adapters/iFluidDexAdapter.js +142 -0
  445. package/dist/cjs/plugins/adapters/abi/adapters/iInfinifiGatewayAdapter.js +380 -0
  446. package/dist/cjs/plugins/adapters/abi/adapters/iInfinifiUnwindingGateway.js +398 -0
  447. package/dist/cjs/plugins/adapters/abi/adapters/iKelpLrtDepositPool.js +273 -0
  448. package/dist/cjs/plugins/adapters/abi/adapters/iKelpLrtWithdrawalManager.js +401 -0
  449. package/dist/cjs/plugins/adapters/abi/adapters/iLidoV1Adapter.js +124 -0
  450. package/dist/cjs/plugins/adapters/abi/adapters/iMellow4626VaultAdapter.js +210 -0
  451. package/dist/cjs/plugins/adapters/abi/adapters/iMellowClaimerAdapter.js +285 -0
  452. package/dist/cjs/plugins/adapters/abi/adapters/iMellowWrapperAdapter.js +173 -0
  453. package/dist/cjs/plugins/adapters/abi/adapters/iMidasGatewayAdapterV311.js +380 -0
  454. package/dist/cjs/plugins/adapters/abi/adapters/iMidasIssuanceVaultAdapterV310.js +209 -0
  455. package/dist/cjs/plugins/adapters/abi/adapters/iMidasRedemptionVaultAdapterV310.js +525 -0
  456. package/dist/cjs/plugins/adapters/abi/adapters/iPendleRouterAdapter.js +1709 -0
  457. package/dist/cjs/plugins/adapters/abi/adapters/iSecuritizeOnRampAdapterV310.js +121 -0
  458. package/dist/cjs/plugins/adapters/abi/adapters/iSecuritizeRedemptionGatewayAdapterV311.js +279 -0
  459. package/dist/cjs/plugins/adapters/abi/adapters/iStakingRewardsAdapter.js +219 -0
  460. package/dist/cjs/plugins/adapters/abi/adapters/iTraderJoeRouterAdapter.js +412 -0
  461. package/dist/cjs/plugins/adapters/abi/adapters/iUniswapV2Adapter.js +244 -0
  462. package/dist/cjs/plugins/adapters/abi/adapters/iUniswapV3Adapter.js +444 -0
  463. package/dist/cjs/plugins/adapters/abi/adapters/iUniswapV4Adapter.js +475 -0
  464. package/dist/cjs/plugins/adapters/abi/adapters/iUpshiftVaultAdapter.js +377 -0
  465. package/dist/cjs/plugins/adapters/abi/adapters/iVelodromeV2RouterAdapter.js +286 -0
  466. package/dist/cjs/plugins/adapters/abi/adapters/index.js +77 -0
  467. package/dist/cjs/plugins/adapters/abi/adapters/iwstEthv1Adapter.js +132 -0
  468. package/dist/cjs/plugins/adapters/abi/adapters/mellowDvvAdapter.js +253 -0
  469. package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +76 -199
  470. package/dist/cjs/plugins/adapters/abi/conctructorAbiPatterns.js +157 -101
  471. package/dist/cjs/plugins/adapters/abi/index.js +130 -30
  472. package/dist/cjs/plugins/adapters/abi/midas/iMidasGatewayV311.js +298 -0
  473. package/dist/cjs/plugins/adapters/abi/midas/index.js +3 -0
  474. package/dist/cjs/plugins/adapters/abi/securitize/iBaseOnRamp.js +297 -349
  475. package/dist/cjs/plugins/adapters/abi/securitize/iSecuritizeOnRamp.js +79 -71
  476. package/dist/cjs/plugins/adapters/abi/securitize/iSecuritizeRedemptionGatewayV311.js +248 -0
  477. package/dist/cjs/plugins/adapters/abi/securitize/index.js +7 -30
  478. package/dist/cjs/plugins/adapters/abi/targetContractAbi.js +9115 -5122
  479. package/dist/cjs/plugins/adapters/abi/utils.js +68 -74
  480. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +196 -146
  481. package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +43 -0
  482. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +27 -50
  483. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +106 -100
  484. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +64 -61
  485. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +78 -74
  486. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +138 -134
  487. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +126 -108
  488. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +109 -113
  489. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +113 -113
  490. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +114 -118
  491. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +93 -96
  492. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +125 -126
  493. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +89 -80
  494. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +116 -97
  495. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +87 -80
  496. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +70 -68
  497. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +104 -90
  498. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +48 -65
  499. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +58 -60
  500. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +58 -67
  501. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +89 -81
  502. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +56 -63
  503. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +88 -79
  504. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +161 -114
  505. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +60 -61
  506. package/dist/cjs/plugins/adapters/contracts/MidasGatewayAdapterContract.js +154 -0
  507. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +81 -78
  508. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +121 -83
  509. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +172 -125
  510. package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +70 -70
  511. package/dist/cjs/plugins/adapters/contracts/SecuritizeRedemptionGatewayAdapterContract.js +111 -78
  512. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +125 -106
  513. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +95 -89
  514. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +92 -99
  515. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +156 -195
  516. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +100 -87
  517. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +85 -76
  518. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +87 -80
  519. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +77 -71
  520. package/dist/cjs/plugins/adapters/contracts/index.js +83 -108
  521. package/dist/cjs/plugins/adapters/createAdapter.js +97 -133
  522. package/dist/cjs/plugins/adapters/index.js +228 -34
  523. package/dist/cjs/plugins/adapters/legacyAdapterOperations.js +1 -16
  524. package/dist/cjs/plugins/adapters/transferHelpers.js +117 -109
  525. package/dist/cjs/plugins/adapters/transfers.js +1 -16
  526. package/dist/cjs/plugins/adapters/types.js +45 -77
  527. package/dist/cjs/plugins/apy/ApyPlugin.js +247 -330
  528. package/dist/cjs/plugins/apy/apy-parser.js +123 -163
  529. package/dist/cjs/plugins/apy/constants.js +6 -30
  530. package/dist/cjs/plugins/apy/index.js +18 -32
  531. package/dist/cjs/plugins/apy/pool-apy-types.js +1 -16
  532. package/dist/cjs/plugins/apy/pool-apy-utils.js +110 -130
  533. package/dist/cjs/plugins/apy/strategy-data-source.js +162 -194
  534. package/dist/cjs/plugins/apy/types.js +1 -16
  535. package/dist/cjs/plugins/bots/BotsPlugin.js +106 -152
  536. package/dist/cjs/plugins/bots/PartialLiquidationBotV310Contract.js +46 -72
  537. package/dist/cjs/plugins/bots/abi/iPartialLiquidationBotV310.js +223 -162
  538. package/dist/cjs/plugins/bots/abi/index.js +3 -22
  539. package/dist/cjs/plugins/bots/config.js +33 -71
  540. package/dist/cjs/plugins/bots/deserializePartialLiquidationBotParams.js +36 -46
  541. package/dist/cjs/plugins/bots/index.js +17 -30
  542. package/dist/cjs/plugins/bots/types.js +25 -34
  543. package/dist/cjs/plugins/degen-distributors/DegenDistributorsPlugin.js +60 -107
  544. package/dist/cjs/plugins/degen-distributors/index.js +4 -24
  545. package/dist/cjs/plugins/degen-distributors/types.js +1 -16
  546. package/dist/cjs/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +108 -176
  547. package/dist/cjs/plugins/delayed-withdrawal/index.js +4 -24
  548. package/dist/cjs/plugins/delayed-withdrawal/types.js +1 -16
  549. package/dist/cjs/plugins/remote-configs/CustomConfigSource.js +17 -40
  550. package/dist/cjs/plugins/remote-configs/RemoteConfigSource.js +24 -54
  551. package/dist/cjs/plugins/remote-configs/RemoteConfigsPlugin.js +126 -185
  552. package/dist/cjs/plugins/remote-configs/index.js +8 -28
  553. package/dist/cjs/plugins/remote-configs/types.js +1 -16
  554. package/dist/cjs/preview/index.js +80 -26
  555. package/dist/cjs/preview/parse/classifyInnerOperations.js +84 -88
  556. package/dist/cjs/preview/parse/errors.js +31 -48
  557. package/dist/cjs/preview/parse/index.js +19 -34
  558. package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +82 -107
  559. package/dist/cjs/preview/parse/parseOperationCalldata.js +50 -83
  560. package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +67 -88
  561. package/dist/cjs/preview/parse/parseRWAFactoryOperationCalldata.js +83 -100
  562. package/dist/cjs/preview/parse/types-adapters.js +1 -16
  563. package/dist/cjs/preview/parse/types-facades.js +1 -16
  564. package/dist/cjs/preview/parse/types-pools.js +1 -16
  565. package/dist/cjs/preview/parse/types-rwa.js +1 -16
  566. package/dist/cjs/preview/parse/types.js +21 -40
  567. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +37 -77
  568. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +51 -94
  569. package/dist/cjs/preview/prerequisites/Prerequisite.js +50 -83
  570. package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +52 -65
  571. package/dist/cjs/preview/prerequisites/buildCollateralPrerequisites.js +63 -0
  572. package/dist/cjs/preview/prerequisites/buildPartialLiquidationPrerequisites.js +19 -0
  573. package/dist/cjs/preview/prerequisites/buildPoolPrerequisites.js +76 -0
  574. package/dist/cjs/preview/prerequisites/buildRWAPrerequisites.js +39 -0
  575. package/dist/cjs/preview/prerequisites/checkPrerequisites.js +71 -0
  576. package/dist/cjs/preview/prerequisites/helpers.js +23 -0
  577. package/dist/cjs/preview/prerequisites/index.js +12 -36
  578. package/dist/cjs/preview/prerequisites/types.js +1 -16
  579. package/dist/cjs/preview/preview/CreditAccountState.js +134 -0
  580. package/dist/cjs/preview/preview/applyRWAWrapUnwrap.js +67 -0
  581. package/dist/cjs/preview/preview/buildDelayedPreview.js +193 -0
  582. package/dist/cjs/preview/preview/detectCloseOrRepay.js +40 -0
  583. package/dist/cjs/preview/preview/detectDelayedClaim.js +46 -0
  584. package/dist/cjs/preview/preview/detectDelayedOperation.js +49 -0
  585. package/dist/cjs/preview/preview/errors.js +16 -35
  586. package/dist/cjs/preview/preview/index.js +35 -26
  587. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +53 -0
  588. package/dist/cjs/preview/preview/previewCloseOrRepayCreditAccount.js +66 -0
  589. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +54 -96
  590. package/dist/cjs/preview/preview/previewOperation.js +75 -39
  591. package/dist/cjs/preview/preview/previewPoolOperation.js +26 -73
  592. package/dist/cjs/preview/preview/replayInnerOperations.js +146 -0
  593. package/dist/cjs/preview/preview/replayMulticall.js +19 -0
  594. package/dist/cjs/preview/preview/types.js +58 -16
  595. package/dist/cjs/preview/preview/unwrapNativeCollateral.js +44 -0
  596. package/dist/cjs/preview/simulate/errors.js +75 -84
  597. package/dist/cjs/preview/simulate/index.js +11 -40
  598. package/dist/cjs/preview/simulate/simulateFacadeOperation.js +13 -28
  599. package/dist/cjs/preview/simulate/simulateOperation.js +25 -39
  600. package/dist/cjs/preview/simulate/simulatePoolOperation.js +96 -83
  601. package/dist/cjs/preview/simulate/simulateRWAOperation.js +13 -28
  602. package/dist/cjs/preview/simulate/types.js +1 -16
  603. package/dist/cjs/preview/trace/errors.js +42 -75
  604. package/dist/cjs/preview/trace/extractAdapterCallTraces.js +69 -54
  605. package/dist/cjs/preview/trace/extractTransfers.js +144 -167
  606. package/dist/cjs/preview/trace/findFacadeCalls.js +53 -78
  607. package/dist/cjs/preview/trace/index.js +14 -30
  608. package/dist/cjs/preview/trace/types.js +1 -16
  609. package/dist/cjs/preview/types.js +1 -0
  610. package/dist/cjs/rewards/apy/index.js +3 -24
  611. package/dist/cjs/rewards/apy/output-details.js +1 -16
  612. package/dist/cjs/rewards/apy/output.js +1 -16
  613. package/dist/cjs/rewards/index.js +8 -24
  614. package/dist/cjs/rewards/rewards/api.js +69 -107
  615. package/dist/cjs/rewards/rewards/common.js +1 -16
  616. package/dist/cjs/rewards/rewards/extra-apy.js +70 -130
  617. package/dist/cjs/rewards/rewards/index.js +6 -24
  618. package/dist/cjs/rewards/rewards/merkl-api.js +21 -57
  619. package/dist/cjs/sdk/MultichainSDK.js +199 -232
  620. package/dist/cjs/sdk/OnchainSDK.js +468 -540
  621. package/dist/cjs/sdk/abi/index.js +28 -22
  622. package/dist/cjs/sdk/abi/oracles.js +7376 -4748
  623. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +1393 -1910
  624. package/dist/cjs/sdk/accounts/index.js +45 -24
  625. package/dist/cjs/sdk/accounts/intents/index.js +388 -0
  626. package/dist/cjs/sdk/accounts/intents/intents/index.js +14 -0
  627. package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +121 -0
  628. package/dist/cjs/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +15 -0
  629. package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.fixtures.js +108 -0
  630. package/dist/cjs/sdk/accounts/intents/intents/resume/close/close.js +51 -0
  631. package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +130 -0
  632. package/dist/cjs/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +83 -0
  633. package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +117 -0
  634. package/dist/cjs/sdk/accounts/intents/intents/resume/deposit/deposit.js +15 -0
  635. package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +95 -0
  636. package/dist/cjs/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +15 -0
  637. package/dist/cjs/sdk/accounts/intents/intents/resume/index.js +13 -0
  638. package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +138 -0
  639. package/dist/cjs/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +161 -0
  640. package/dist/cjs/sdk/accounts/intents/operations/add-collateral/index.js +17 -0
  641. package/dist/cjs/sdk/accounts/intents/operations/claim-delayed/index.js +54 -0
  642. package/dist/cjs/sdk/accounts/intents/operations/close-credit-account/index.js +26 -0
  643. package/dist/cjs/sdk/accounts/intents/operations/decrease-debt/index.js +12 -0
  644. package/dist/cjs/sdk/accounts/intents/operations/increase-debt/index.js +12 -0
  645. package/dist/cjs/sdk/accounts/intents/operations/index.js +27 -0
  646. package/dist/cjs/sdk/accounts/intents/operations/quota-update/index.js +22 -0
  647. package/dist/cjs/sdk/accounts/intents/operations/repay-credit-account/index.js +22 -0
  648. package/dist/cjs/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +18 -0
  649. package/dist/cjs/sdk/accounts/intents/operations/swap/index.js +18 -0
  650. package/dist/cjs/sdk/accounts/intents/operations/types.js +1 -0
  651. package/dist/cjs/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +27 -0
  652. package/dist/cjs/sdk/accounts/intents/operations/withdraw-collateral/index.js +43 -0
  653. package/dist/cjs/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +27 -0
  654. package/dist/cjs/sdk/accounts/intents/quoters/close.js +58 -0
  655. package/dist/cjs/sdk/accounts/intents/quoters/index.js +7 -0
  656. package/dist/cjs/sdk/accounts/intents/quoters/swap.js +79 -0
  657. package/dist/cjs/sdk/accounts/intents/testing/expect.js +167 -0
  658. package/dist/cjs/sdk/accounts/intents/testing/resume.js +172 -0
  659. package/dist/cjs/sdk/accounts/intents/testing/sdk-mock.js +179 -0
  660. package/dist/cjs/sdk/accounts/intents/types.js +1 -0
  661. package/dist/cjs/sdk/accounts/intents/utils/assemble-operation-calls.js +7 -0
  662. package/dist/cjs/sdk/accounts/intents/utils/borrowed-amount-plus-interest-and-fees.js +13 -0
  663. package/dist/cjs/sdk/accounts/intents/utils/common.js +43 -0
  664. package/dist/cjs/sdk/accounts/intents/utils/convert-amount.js +37 -0
  665. package/dist/cjs/sdk/accounts/intents/utils/index.js +19 -0
  666. package/dist/cjs/sdk/accounts/intents/utils/quotas-for-update.js +122 -0
  667. package/dist/cjs/sdk/accounts/intents/utils/simulate-adjust-state.js +39 -0
  668. package/dist/cjs/sdk/accounts/intents/utils/simulate-assets.js +69 -0
  669. package/dist/cjs/sdk/accounts/intents/utils/with-quota-update.js +13 -0
  670. package/dist/cjs/sdk/accounts/liquidations/LiquidationsService.js +298 -0
  671. package/dist/cjs/sdk/accounts/liquidations/MultichainLiquidationsService.js +62 -0
  672. package/dist/cjs/sdk/accounts/liquidations/constants.js +18 -0
  673. package/dist/cjs/sdk/accounts/liquidations/index.js +10 -0
  674. package/dist/cjs/sdk/accounts/liquidations/types.js +1 -0
  675. package/dist/cjs/sdk/accounts/multicall-utils.js +81 -83
  676. package/dist/cjs/sdk/accounts/types.js +1 -16
  677. package/dist/cjs/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +259 -0
  678. package/dist/cjs/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +52 -0
  679. package/dist/cjs/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +20 -0
  680. package/dist/cjs/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +20 -0
  681. package/dist/cjs/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +259 -0
  682. package/dist/cjs/sdk/accounts/withdrawal-compressor/addresses.js +23 -0
  683. package/dist/cjs/sdk/accounts/withdrawal-compressor/createRedemptionLogger.js +22 -0
  684. package/dist/cjs/sdk/accounts/withdrawal-compressor/createWithdrawalCompressor.js +24 -0
  685. package/dist/cjs/sdk/accounts/withdrawal-compressor/errors.js +20 -0
  686. package/dist/cjs/sdk/accounts/withdrawal-compressor/index.js +30 -0
  687. package/dist/cjs/sdk/accounts/withdrawal-compressor/intent-codec.js +124 -0
  688. package/dist/cjs/sdk/accounts/withdrawal-compressor/types.js +16 -0
  689. package/dist/cjs/sdk/base/BaseContract.js +341 -365
  690. package/dist/cjs/sdk/base/ChainContractsRegister.js +187 -202
  691. package/dist/cjs/sdk/base/Construct.js +86 -112
  692. package/dist/cjs/sdk/base/MultichainConstruct.js +80 -0
  693. package/dist/cjs/sdk/base/PlaceholderContract.js +16 -33
  694. package/dist/cjs/sdk/base/SDKConstruct.js +21 -34
  695. package/dist/cjs/sdk/base/TokensMeta.js +212 -196
  696. package/dist/cjs/sdk/base/errors.js +9 -34
  697. package/dist/cjs/sdk/base/index.js +25 -38
  698. package/dist/cjs/sdk/base/token-types.js +15 -40
  699. package/dist/cjs/sdk/base/types.js +13 -33
  700. package/dist/cjs/sdk/chain/chains.js +447 -417
  701. package/dist/cjs/sdk/chain/detectNetwork.js +21 -43
  702. package/dist/cjs/sdk/chain/index.js +17 -24
  703. package/dist/cjs/sdk/constants/address-provider.js +44 -95
  704. package/dist/cjs/sdk/constants/addresses.js +16 -33
  705. package/dist/cjs/sdk/constants/bot-permissions.js +25 -53
  706. package/dist/cjs/sdk/constants/index.js +73 -34
  707. package/dist/cjs/sdk/constants/math.js +25 -66
  708. package/dist/cjs/sdk/constants/networks.js +39 -75
  709. package/dist/cjs/sdk/constants/periphery.js +7 -30
  710. package/dist/cjs/sdk/constants/versions.js +8 -33
  711. package/dist/cjs/sdk/core/AbstractAddressProviderContract.js +116 -145
  712. package/dist/cjs/sdk/core/AddressProviderV310Contract.js +54 -96
  713. package/dist/cjs/sdk/core/createAddressProvider.js +31 -67
  714. package/dist/cjs/sdk/core/errors.js +84 -75
  715. package/dist/cjs/sdk/core/index.js +15 -28
  716. package/dist/cjs/sdk/core/types.js +1 -16
  717. package/dist/cjs/sdk/index.js +398 -50
  718. package/dist/cjs/sdk/market/MarketConfiguratorContract.js +106 -123
  719. package/dist/cjs/sdk/market/MarketRegister.js +237 -306
  720. package/dist/cjs/sdk/market/MarketSuite.js +302 -162
  721. package/dist/cjs/sdk/market/ZapperRegister.js +119 -172
  722. package/dist/cjs/sdk/market/adapters/PlaceholderAdapterContracts.js +30 -55
  723. package/dist/cjs/sdk/market/adapters/createAdapter.js +18 -46
  724. package/dist/cjs/sdk/market/adapters/index.js +6 -26
  725. package/dist/cjs/sdk/market/adapters/types.js +1 -16
  726. package/dist/cjs/sdk/market/credit/CreditConfiguratorV310Contract.js +89 -123
  727. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +84 -106
  728. package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +112 -115
  729. package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +95 -110
  730. package/dist/cjs/sdk/market/credit/CreditSuite.js +227 -158
  731. package/dist/cjs/sdk/market/credit/createCreditConfigurator.js +12 -29
  732. package/dist/cjs/sdk/market/credit/createCreditFacade.js +12 -29
  733. package/dist/cjs/sdk/market/credit/createCreditManager.js +12 -29
  734. package/dist/cjs/sdk/market/credit/index.js +13 -32
  735. package/dist/cjs/sdk/market/credit/types.js +1 -16
  736. package/dist/cjs/sdk/market/index.js +120 -40
  737. package/dist/cjs/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +101 -114
  738. package/dist/cjs/sdk/market/loss-policy/LossPolicyContract.js +18 -42
  739. package/dist/cjs/sdk/market/loss-policy/constants.js +9 -34
  740. package/dist/cjs/sdk/market/loss-policy/createLossPolicy.js +18 -47
  741. package/dist/cjs/sdk/market/loss-policy/index.js +8 -28
  742. package/dist/cjs/sdk/market/loss-policy/types.js +1 -16
  743. package/dist/cjs/sdk/market/math.js +104 -0
  744. package/dist/cjs/sdk/market/oracle/PriceFeedAnswerMap.js +17 -36
  745. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +273 -285
  746. package/dist/cjs/sdk/market/oracle/PriceOracleV310Contract.js +76 -104
  747. package/dist/cjs/sdk/market/oracle/createPriceOracle.js +10 -34
  748. package/dist/cjs/sdk/market/oracle/index.js +6 -26
  749. package/dist/cjs/sdk/market/oracle/types.js +1 -16
  750. package/dist/cjs/sdk/market/pool/GaugeContract.js +107 -111
  751. package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +105 -86
  752. package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV310Contract.js +77 -84
  753. package/dist/cjs/sdk/market/pool/PoolSuite.js +170 -180
  754. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +150 -163
  755. package/dist/cjs/sdk/market/pool/TumblerContract.js +54 -73
  756. package/dist/cjs/sdk/market/pool/createInterestRateModel.js +17 -38
  757. package/dist/cjs/sdk/market/pool/createPool.js +12 -29
  758. package/dist/cjs/sdk/market/pool/createPoolQuotaKeeper.js +12 -29
  759. package/dist/cjs/sdk/market/pool/createRateKeeper.js +16 -36
  760. package/dist/cjs/sdk/market/pool/index.js +10 -30
  761. package/dist/cjs/sdk/market/pool/math.js +44 -0
  762. package/dist/cjs/sdk/market/pool/types.js +1 -16
  763. package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +54 -63
  764. package/dist/cjs/sdk/market/pricefeeds/AbstractPriceFeed.js +110 -131
  765. package/dist/cjs/sdk/market/pricefeeds/BalancerStablePriceFeed.js +15 -37
  766. package/dist/cjs/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +53 -66
  767. package/dist/cjs/sdk/market/pricefeeds/BoundedPriceFeed.js +26 -54
  768. package/dist/cjs/sdk/market/pricefeeds/CompositePriceFeed.js +21 -43
  769. package/dist/cjs/sdk/market/pricefeeds/ConstantPriceFeed.js +26 -56
  770. package/dist/cjs/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +15 -37
  771. package/dist/cjs/sdk/market/pricefeeds/CurveStablePriceFeed.js +15 -37
  772. package/dist/cjs/sdk/market/pricefeeds/CurveUSDPriceFeed.js +15 -37
  773. package/dist/cjs/sdk/market/pricefeeds/Erc4626PriceFeed.js +15 -37
  774. package/dist/cjs/sdk/market/pricefeeds/ExternalPriceFeed.js +15 -37
  775. package/dist/cjs/sdk/market/pricefeeds/MellowLRTPriceFeed.js +15 -37
  776. package/dist/cjs/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +55 -62
  777. package/dist/cjs/sdk/market/pricefeeds/PriceFeedRef.js +50 -68
  778. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +301 -360
  779. package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +84 -97
  780. package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +81 -84
  781. package/dist/cjs/sdk/market/pricefeeds/WstETHPriceFeed.js +15 -37
  782. package/dist/cjs/sdk/market/pricefeeds/YearnPriceFeed.js +15 -37
  783. package/dist/cjs/sdk/market/pricefeeds/ZeroPriceFeed.js +16 -38
  784. package/dist/cjs/sdk/market/pricefeeds/getRawPriceUpdates.js +16 -39
  785. package/dist/cjs/sdk/market/pricefeeds/index.js +53 -77
  786. package/dist/cjs/sdk/market/pricefeeds/isUpdatablePriceFeed.js +5 -28
  787. package/dist/cjs/sdk/market/pricefeeds/types.js +1 -16
  788. package/dist/cjs/sdk/market/pricefeeds/updates/PriceUpdateTx.js +26 -53
  789. package/dist/cjs/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +33 -60
  790. package/dist/cjs/sdk/market/pricefeeds/updates/PythAccumulatorUpdateData.js +142 -174
  791. package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +136 -182
  792. package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +189 -260
  793. package/dist/cjs/sdk/market/pricefeeds/updates/fetchPythPayloads.js +79 -129
  794. package/dist/cjs/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +89 -151
  795. package/dist/cjs/sdk/market/pricefeeds/updates/index.js +13 -43
  796. package/dist/cjs/sdk/market/pricefeeds/updates/types.js +1 -16
  797. package/dist/cjs/sdk/market/rwa/RWARegistry.js +262 -273
  798. package/dist/cjs/sdk/market/rwa/index.js +23 -26
  799. package/dist/cjs/sdk/market/rwa/midas/MidasLiquidatorContract.js +43 -0
  800. package/dist/cjs/sdk/market/rwa/midas/constants.js +7 -0
  801. package/dist/cjs/sdk/market/rwa/midas/index.js +6 -0
  802. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeDegenNFT.js +17 -40
  803. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeLiquidatorContract.js +31 -0
  804. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +314 -287
  805. package/dist/cjs/sdk/market/rwa/securitize/constants.js +8 -27
  806. package/dist/cjs/sdk/market/rwa/securitize/index.js +11 -26
  807. package/dist/cjs/sdk/market/rwa/securitize/types.js +30 -36
  808. package/dist/cjs/sdk/market/rwa/types.js +22 -35
  809. package/dist/cjs/sdk/market/types.js +1 -16
  810. package/dist/cjs/sdk/market/zapper/IERC20ZapperContract.js +51 -62
  811. package/dist/cjs/sdk/market/zapper/IETHZapperContract.js +30 -53
  812. package/dist/cjs/sdk/market/zapper/ZapperContract.js +92 -105
  813. package/dist/cjs/sdk/market/zapper/createZapper.js +23 -51
  814. package/dist/cjs/sdk/market/zapper/errors.js +17 -36
  815. package/dist/cjs/sdk/market/zapper/index.js +12 -32
  816. package/dist/cjs/sdk/market/zapper/types.js +1 -16
  817. package/dist/cjs/sdk/opportunities/MultichainOpportunitiesService.js +60 -0
  818. package/dist/cjs/sdk/opportunities/OpportunitiesService.js +48 -0
  819. package/dist/cjs/sdk/opportunities/index.js +12 -0
  820. package/dist/cjs/sdk/options.js +75 -90
  821. package/dist/cjs/sdk/plugins/BasePlugin.js +77 -96
  822. package/dist/cjs/sdk/plugins/errors.js +8 -33
  823. package/dist/cjs/sdk/plugins/index.js +6 -26
  824. package/dist/cjs/sdk/plugins/types.js +1 -16
  825. package/dist/cjs/sdk/pools/PoolService.js +294 -432
  826. package/dist/cjs/sdk/pools/index.js +4 -24
  827. package/dist/cjs/sdk/pools/types.js +1 -16
  828. package/dist/cjs/sdk/router/AbstractRouterContract.js +140 -191
  829. package/dist/cjs/sdk/router/RouterV310Contract.js +298 -333
  830. package/dist/cjs/sdk/router/createRouter.js +11 -37
  831. package/dist/cjs/sdk/router/helpers.js +17 -41
  832. package/dist/cjs/sdk/router/index.js +8 -35
  833. package/dist/cjs/sdk/router/types.js +1 -16
  834. package/dist/cjs/sdk/types/index.js +1 -16
  835. package/dist/cjs/sdk/types/logger.js +1 -16
  836. package/dist/cjs/sdk/types/multichain.js +1 -0
  837. package/dist/cjs/sdk/types/state-human.js +1 -16
  838. package/dist/cjs/sdk/types/state.js +1 -16
  839. package/dist/cjs/sdk/types/transactions.js +1 -16
  840. package/dist/cjs/sdk/utils/AddressMap.js +155 -179
  841. package/dist/cjs/sdk/utils/AddressSet.js +44 -56
  842. package/dist/cjs/sdk/utils/AssetsMap.js +71 -0
  843. package/dist/cjs/sdk/utils/abi-decode.js +64 -93
  844. package/dist/cjs/sdk/utils/bigint-math.js +47 -0
  845. package/dist/cjs/sdk/utils/bytes32ToString.js +6 -29
  846. package/dist/cjs/sdk/utils/childLogger.js +6 -29
  847. package/dist/cjs/sdk/utils/createRawTx.js +45 -64
  848. package/dist/cjs/sdk/utils/etherscan.js +25 -58
  849. package/dist/cjs/sdk/utils/filterDust.js +24 -51
  850. package/dist/cjs/sdk/utils/formatter.js +149 -233
  851. package/dist/cjs/sdk/utils/hex.js +10 -28
  852. package/dist/cjs/sdk/utils/index.js +59 -54
  853. package/dist/cjs/sdk/utils/internal/Hooks.js +20 -52
  854. package/dist/cjs/sdk/utils/internal/index.js +3 -22
  855. package/dist/cjs/sdk/utils/isDust.js +26 -45
  856. package/dist/cjs/sdk/utils/json.js +14 -43
  857. package/dist/cjs/sdk/utils/mappers.js +19 -42
  858. package/dist/cjs/sdk/utils/retry.js +17 -43
  859. package/dist/cjs/sdk/utils/toAddress.js +7 -34
  860. package/dist/cjs/sdk/utils/type-utils.js +1 -16
  861. package/dist/cjs/sdk/utils/viem/cast.js +26 -48
  862. package/dist/cjs/sdk/utils/viem/executeDelegatedMulticalls.js +21 -36
  863. package/dist/cjs/sdk/utils/viem/index.js +20 -32
  864. package/dist/cjs/sdk/utils/viem/sendRawTx.js +22 -54
  865. package/dist/cjs/sdk/utils/viem/simulateCall.js +82 -0
  866. package/dist/cjs/sdk/utils/viem/simulateMulticall.js +120 -139
  867. package/dist/cjs/sdk/utils/viem/simulateWithPriceUpdates.js +184 -282
  868. package/dist/cjs/sdk/utils/viem/watchBlocksAsync.js +80 -74
  869. package/dist/cjs/sdk/utils/zod.js +27 -37
  870. package/dist/esm/abi/310/configure/creditSuiteParams.js +96 -98
  871. package/dist/esm/abi/310/configure/iCreditConfigureActions.js +221 -155
  872. package/dist/esm/abi/310/configure/iPoolConfigureActions.js +73 -54
  873. package/dist/esm/abi/310/configure/iPriceOracleConfigureActions.js +32 -25
  874. package/dist/esm/abi/310/crossChainMultisig.js +826 -514
  875. package/dist/esm/abi/310/generated.js +8001 -5315
  876. package/dist/esm/abi/310/iBytecodeRepository.js +1294 -871
  877. package/dist/esm/abi/310/iLinearInterestRateModelV310.js +131 -66
  878. package/dist/esm/abi/310/iMarketConfiguratorFactory.js +245 -163
  879. package/dist/esm/abi/310/iPriceFeedStore.js +585 -391
  880. package/dist/esm/abi/310/iTreasurySplitter.js +429 -474
  881. package/dist/esm/abi/310/instanceManager.js +374 -248
  882. package/dist/esm/abi/AccountMigrator.js +270 -299
  883. package/dist/esm/abi/ILiquidationCompressorV313.js +173 -0
  884. package/dist/esm/abi/IWithdrawalCompressorV310.js +378 -289
  885. package/dist/esm/abi/IWithdrawalCompressorV311.js +383 -289
  886. package/dist/esm/abi/IWithdrawalCompressorV313.js +755 -0
  887. package/dist/esm/abi/compressors/creditAccountCompressor.js +1030 -430
  888. package/dist/esm/abi/compressors/creditSuiteCompressor.js +1012 -748
  889. package/dist/esm/abi/compressors/defillamaCompressor.js +235 -157
  890. package/dist/esm/abi/compressors/gaugeCompressor.js +278 -158
  891. package/dist/esm/abi/compressors/liquidationCompressor.js +344 -0
  892. package/dist/esm/abi/compressors/marketCompressor.js +3160 -2451
  893. package/dist/esm/abi/compressors/peripheryCompressor.js +261 -176
  894. package/dist/esm/abi/compressors/priceFeedCompressor.js +852 -555
  895. package/dist/esm/abi/compressors/rewardsCompressor.js +82 -56
  896. package/dist/esm/abi/compressors/rwaCompressor.js +278 -181
  897. package/dist/esm/abi/compressors/subcompressors/liquidation/midasLiquidationSubcompressor.js +178 -0
  898. package/dist/esm/abi/compressors/subcompressors/liquidation/securitizeLiquidationSubcompressor.js +178 -0
  899. package/dist/esm/abi/compressors/subcompressors/rwa/onDemandRWAUnderlyingSubcompressor.js +55 -34
  900. package/dist/esm/abi/compressors/subcompressors/rwa/securitizeRWAFactorySubcompressor.js +93 -54
  901. package/dist/esm/abi/compressors/subcompressors/withdrawal/infinifiWithdrawalSubcompressor.js +271 -162
  902. package/dist/esm/abi/compressors/subcompressors/withdrawal/kelpLRTWithdrawalSubcompressor.js +271 -162
  903. package/dist/esm/abi/compressors/subcompressors/withdrawal/mellowFlexibleDepositSubcompressor.js +266 -161
  904. package/dist/esm/abi/compressors/subcompressors/withdrawal/mellowFlexibleRedeemSubcompressor.js +266 -161
  905. package/dist/esm/abi/compressors/subcompressors/withdrawal/mellowWithdrawalSubcompressor.js +511 -162
  906. package/dist/esm/abi/compressors/subcompressors/withdrawal/midasWithdrawalSubcompressor.js +531 -162
  907. package/dist/esm/abi/compressors/subcompressors/withdrawal/securitizeRedemptionSubcompressor.js +531 -162
  908. package/dist/esm/abi/compressors/subcompressors/withdrawal/upshiftWithdrawalSubcompressor.js +271 -162
  909. package/dist/esm/abi/compressors/tokenCompressor.js +119 -69
  910. package/dist/esm/abi/compressors/withdrawalCompressor.js +924 -289
  911. package/dist/esm/abi/errors.js +803 -366
  912. package/dist/esm/abi/governance/batchesChain.js +36 -42
  913. package/dist/esm/abi/governance/governor.js +678 -446
  914. package/dist/esm/abi/governance/iTimeLock.js +391 -231
  915. package/dist/esm/abi/helpers/redemptionLogger.js +196 -0
  916. package/dist/esm/abi/iAirdropDistributor.js +134 -100
  917. package/dist/esm/abi/iBaseRewardPool.js +426 -246
  918. package/dist/esm/abi/iCurvePool.js +24 -19
  919. package/dist/esm/abi/iDefaultAccountFactoryV3.js +200 -168
  920. package/dist/esm/abi/iDegenNFTV2.js +425 -256
  921. package/dist/esm/abi/iERC20.js +196 -119
  922. package/dist/esm/abi/iERC20Permit.js +72 -32
  923. package/dist/esm/abi/iERC20Zapper.js +4 -7
  924. package/dist/esm/abi/iERC20ZapperDeposits.js +237 -96
  925. package/dist/esm/abi/iETHZapper.js +4 -4
  926. package/dist/esm/abi/iETHZapperDeposits.js +36 -26
  927. package/dist/esm/abi/iFarmingPool.js +331 -226
  928. package/dist/esm/abi/iInterestRateModel.js +32 -22
  929. package/dist/esm/abi/iMulticall3.js +367 -239
  930. package/dist/esm/abi/iOffchainOracle.js +48 -30
  931. package/dist/esm/abi/iPausable.js +36 -36
  932. package/dist/esm/abi/iPhantomToken.js +18 -0
  933. package/dist/esm/abi/iPriceFeed.js +102 -58
  934. package/dist/esm/abi/iRedemptionLoggerV310.js +146 -0
  935. package/dist/esm/abi/iStateSerializer.js +14 -12
  936. package/dist/esm/abi/iUpdatablePriceFeed.js +24 -19
  937. package/dist/esm/abi/iVersion.js +24 -31
  938. package/dist/esm/abi/iZapper.js +218 -119
  939. package/dist/esm/abi/ierc4626Adapter.js +204 -0
  940. package/dist/esm/abi/mellow.js +4453 -2902
  941. package/dist/esm/abi/migration.js +820 -646
  942. package/dist/esm/abi/router/balancerV2Worker.js +1169 -704
  943. package/dist/esm/abi/router/balancerV3Worker.js +1169 -708
  944. package/dist/esm/abi/router/balancerV3WrapperWorker.js +882 -515
  945. package/dist/esm/abi/router/camelotV3Worker.js +912 -532
  946. package/dist/esm/abi/router/convexWorker.js +882 -515
  947. package/dist/esm/abi/router/curveWorker.js +1154 -692
  948. package/dist/esm/abi/router/daiUsdsWorker.js +882 -515
  949. package/dist/esm/abi/router/equalizerRouterWorker.js +882 -515
  950. package/dist/esm/abi/router/erc4626Worker.js +928 -546
  951. package/dist/esm/abi/router/fluidDexWorker.js +897 -525
  952. package/dist/esm/abi/router/gearboxRouter.js +1055 -625
  953. package/dist/esm/abi/router/infinifiWorker.js +882 -515
  954. package/dist/esm/abi/router/infraredVaultWorker.js +882 -515
  955. package/dist/esm/abi/router/kelpLRTDepositPoolWorker.js +882 -515
  956. package/dist/esm/abi/router/kodiakWorker.js +1176 -706
  957. package/dist/esm/abi/router/lidoWorker.js +882 -515
  958. package/dist/esm/abi/router/mellow4626Worker.js +912 -532
  959. package/dist/esm/abi/router/mellowDVVWorker.js +882 -515
  960. package/dist/esm/abi/router/mellowVaultWorker.js +897 -525
  961. package/dist/esm/abi/router/midasWorker.js +882 -515
  962. package/dist/esm/abi/router/pendleRouterWorker.js +897 -525
  963. package/dist/esm/abi/router/routingManager.js +592 -371
  964. package/dist/esm/abi/router/securitizeOnrampWorker.js +882 -515
  965. package/dist/esm/abi/router/stakingRewardsWorker.js +882 -515
  966. package/dist/esm/abi/router/traderJoeWorker.js +882 -515
  967. package/dist/esm/abi/router/uniswapV2Worker.js +882 -515
  968. package/dist/esm/abi/router/uniswapV3Worker.js +938 -542
  969. package/dist/esm/abi/router/uniswapV4Worker.js +934 -548
  970. package/dist/esm/abi/router/upshiftWorker.js +882 -515
  971. package/dist/esm/abi/router/velodromeV2Worker.js +882 -515
  972. package/dist/esm/abi/router/wstETHWorker.js +882 -515
  973. package/dist/esm/abi/router/yearnV2Worker.js +882 -515
  974. package/dist/esm/abi/rwa/iDSRegistryService.js +459 -388
  975. package/dist/esm/abi/rwa/iDSToken.js +1733 -1932
  976. package/dist/esm/abi/rwa/iMidasLiquidatorV311.js +95 -0
  977. package/dist/esm/abi/rwa/iRWACompressor.js +269 -170
  978. package/dist/esm/abi/rwa/iRWAFactory.js +153 -96
  979. package/dist/esm/abi/rwa/iRWAGateway.js +18 -0
  980. package/dist/esm/abi/rwa/iRWAUnderlying.js +618 -375
  981. package/dist/esm/abi/rwa/iSecuritizeDegenNFT.js +452 -300
  982. package/dist/esm/abi/rwa/iSecuritizeLiquidatorV311.js +110 -0
  983. package/dist/esm/abi/rwa/iSecuritizeRWAFactory.js +505 -340
  984. package/dist/esm/common-utils/axios-cache/AxiosCache.js +93 -95
  985. package/dist/esm/common-utils/axios-cache/index.js +2 -1
  986. package/dist/esm/common-utils/charts/credit-manager-payload.js +1 -0
  987. package/dist/esm/common-utils/charts/credit-manager.js +98 -114
  988. package/dist/esm/common-utils/charts/credit-session.js +203 -230
  989. package/dist/esm/common-utils/charts/credit-sessions-payload.js +1 -0
  990. package/dist/esm/common-utils/charts/graph-payload.js +1 -0
  991. package/dist/esm/common-utils/charts/index.js +9 -8
  992. package/dist/esm/common-utils/charts/pool-payload.js +1 -0
  993. package/dist/esm/common-utils/charts/pool.js +174 -178
  994. package/dist/esm/common-utils/charts/token-data.js +64 -64
  995. package/dist/esm/common-utils/index.js +96 -4
  996. package/dist/esm/common-utils/static/index.js +5 -4
  997. package/dist/esm/common-utils/static/migration-config.js +1 -0
  998. package/dist/esm/common-utils/static/pool-config.js +1 -0
  999. package/dist/esm/common-utils/static/strategy.js +1 -0
  1000. package/dist/esm/common-utils/static/trading-pair.js +1 -0
  1001. package/dist/esm/common-utils/test-utils/index.js +73 -85
  1002. package/dist/esm/common-utils/utils/apy/bonus-apy-from-points.js +3 -3
  1003. package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.js +18 -32
  1004. package/dist/esm/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.js +31 -28
  1005. package/dist/esm/common-utils/utils/apy/calculate-earnings.js +20 -33
  1006. package/dist/esm/common-utils/utils/apy/calculate-earnings.spec.js +63 -60
  1007. package/dist/esm/common-utils/utils/apy/calculate-effective-borrow-rate.js +6 -10
  1008. package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.js +17 -32
  1009. package/dist/esm/common-utils/utils/apy/calculate-safe-borrow-rate.spec.js +36 -35
  1010. package/dist/esm/common-utils/utils/apy/get-complex-apy-list.js +15 -19
  1011. package/dist/esm/common-utils/utils/apy/get-rate-with-fee.js +13 -5
  1012. package/dist/esm/common-utils/utils/apy/get-safe-base-borrow-rate.js +11 -14
  1013. package/dist/esm/common-utils/utils/apy/get-single-quota-borrow-rate.js +10 -6
  1014. package/dist/esm/common-utils/utils/apy/index.js +11 -10
  1015. package/dist/esm/common-utils/utils/apy/max-apy-formula.js +12 -15
  1016. package/dist/esm/common-utils/utils/assets-math.js +182 -190
  1017. package/dist/esm/common-utils/utils/constants.js +3 -5
  1018. package/dist/esm/common-utils/utils/creditAccount/calc-health-factor.js +35 -52
  1019. package/dist/esm/common-utils/utils/creditAccount/calc-overall-apy.js +43 -58
  1020. package/dist/esm/common-utils/utils/creditAccount/calc-quota-borrow-rate.js +18 -17
  1021. package/dist/esm/common-utils/utils/creditAccount/calc-relative-base-borrow-rate.js +14 -9
  1022. package/dist/esm/common-utils/utils/creditAccount/debt.js +40 -39
  1023. package/dist/esm/common-utils/utils/creditAccount/get-time-to-liquidation.js +19 -17
  1024. package/dist/esm/common-utils/utils/creditAccount/index.js +10 -10
  1025. package/dist/esm/common-utils/utils/creditAccount/liquidation-price.js +27 -22
  1026. package/dist/esm/common-utils/utils/creditAccount/quota-utils.js +132 -118
  1027. package/dist/esm/common-utils/utils/creditAccount/sort.js +79 -56
  1028. package/dist/esm/common-utils/utils/creditAccount/types.js +1 -0
  1029. package/dist/esm/common-utils/utils/index.js +91 -9
  1030. package/dist/esm/common-utils/utils/price-math.js +49 -41
  1031. package/dist/esm/common-utils/utils/strategies/assets/assets.js +4 -4
  1032. package/dist/esm/common-utils/utils/strategies/assets/index.js +2 -1
  1033. package/dist/esm/common-utils/utils/strategies/availability/check-boolean.js +7 -7
  1034. package/dist/esm/common-utils/utils/strategies/availability/check-degen-nft.js +10 -9
  1035. package/dist/esm/common-utils/utils/strategies/availability/index.js +3 -2
  1036. package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.js +20 -36
  1037. package/dist/esm/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.js +102 -108
  1038. package/dist/esm/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers-list-core.js +26 -38
  1039. package/dist/esm/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers-list.js +11 -10
  1040. package/dist/esm/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers.js +17 -23
  1041. package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.js +25 -48
  1042. package/dist/esm/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.js +87 -88
  1043. package/dist/esm/common-utils/utils/strategies/credit-managers/index.js +7 -6
  1044. package/dist/esm/common-utils/utils/strategies/credit-managers/is-credit-manager-usable.js +6 -5
  1045. package/dist/esm/common-utils/utils/strategies/eligibility/index.js +3 -2
  1046. package/dist/esm/common-utils/utils/strategies/eligibility/is-strategy-eligible.js +16 -19
  1047. package/dist/esm/common-utils/utils/strategies/eligibility/is-strategy-released.js +5 -5
  1048. package/dist/esm/common-utils/utils/strategies/index.js +65 -12
  1049. package/dist/esm/common-utils/utils/strategies/leverage/calculate-loss-coefficient.js +7 -5
  1050. package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-leverage-factor.js +11 -17
  1051. package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.js +16 -38
  1052. package/dist/esm/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.js +297 -325
  1053. package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.js +6 -7
  1054. package/dist/esm/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.js +25 -24
  1055. package/dist/esm/common-utils/utils/strategies/leverage/get-factor-from-leverage.js +6 -5
  1056. package/dist/esm/common-utils/utils/strategies/leverage/get-leverage-from-factor.js +6 -5
  1057. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.js +41 -56
  1058. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-debt.spec.js +213 -217
  1059. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.js +5 -8
  1060. package/dist/esm/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.js +16 -19
  1061. package/dist/esm/common-utils/utils/strategies/leverage/index.js +11 -10
  1062. package/dist/esm/common-utils/utils/strategies/leverage/max-leverage-threshold.js +13 -15
  1063. package/dist/esm/common-utils/utils/strategies/leverage/max-leverage.js +12 -7
  1064. package/dist/esm/common-utils/utils/strategies/lists/get-available-and-disabled-strategies.js +11 -11
  1065. package/dist/esm/common-utils/utils/strategies/lists/get-available-strategies.js +28 -20
  1066. package/dist/esm/common-utils/utils/strategies/lists/get-disabled-strategies.js +29 -21
  1067. package/dist/esm/common-utils/utils/strategies/lists/get-released-strategies-list-core.js +21 -34
  1068. package/dist/esm/common-utils/utils/strategies/lists/get-released-strategies-list.js +12 -11
  1069. package/dist/esm/common-utils/utils/strategies/lists/index.js +4 -3
  1070. package/dist/esm/common-utils/utils/strategies/points/get-complex-points-list.js +11 -11
  1071. package/dist/esm/common-utils/utils/strategies/points/get-points-info.js +10 -18
  1072. package/dist/esm/common-utils/utils/strategies/points/get-points-rates.js +4 -6
  1073. package/dist/esm/common-utils/utils/strategies/points/get-strategy-points.js +33 -50
  1074. package/dist/esm/common-utils/utils/strategies/points/index.js +5 -4
  1075. package/dist/esm/common-utils/utils/strategies/sort-strategy-cms-by-availability/index.js +2 -1
  1076. package/dist/esm/common-utils/utils/strategies/sort-strategy-cms-by-availability/sort-strategy-cms-by-availability.js +15 -41
  1077. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.js +58 -84
  1078. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.js +177 -180
  1079. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.js +33 -50
  1080. package/dist/esm/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.js +121 -136
  1081. package/dist/esm/common-utils/utils/strategies/strategy-info/cm-availability-condition.js +39 -37
  1082. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.js +294 -376
  1083. package/dist/esm/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.js +260 -274
  1084. package/dist/esm/common-utils/utils/strategies/strategy-info/get-strategy-info-core.js +63 -100
  1085. package/dist/esm/common-utils/utils/strategies/strategy-info/get-strategy-info.js +28 -46
  1086. package/dist/esm/common-utils/utils/strategies/strategy-info/get-strategy-max-apy.js +58 -72
  1087. package/dist/esm/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.js +53 -80
  1088. package/dist/esm/common-utils/utils/strategies/strategy-info/index.js +11 -10
  1089. package/dist/esm/common-utils/utils/strategies/strategy-info/is-strategy-cm-disabled.js +6 -7
  1090. package/dist/esm/common-utils/utils/strategies/strategy-info/types.js +1 -0
  1091. package/dist/esm/common-utils/utils/strategies/strategy-state/index.js +2 -1
  1092. package/dist/esm/common-utils/utils/strategies/strategy-state/is-strategy-disabled.js +9 -10
  1093. package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.js +14 -14
  1094. package/dist/esm/common-utils/utils/strategies/tokens/add-amount-in-target.spec.js +25 -37
  1095. package/dist/esm/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.js +7 -9
  1096. package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.js +9 -16
  1097. package/dist/esm/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.js +33 -32
  1098. package/dist/esm/common-utils/utils/strategies/tokens/get-native-token-address.js +4 -4
  1099. package/dist/esm/common-utils/utils/strategies/tokens/index.js +13 -12
  1100. package/dist/esm/common-utils/utils/strategies/tokens/is-activated-token.js +7 -11
  1101. package/dist/esm/common-utils/utils/strategies/tokens/is-apy-with-points-exception.js +5 -8
  1102. package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.js +24 -32
  1103. package/dist/esm/common-utils/utils/strategies/tokens/is-collateral-token.spec.js +138 -132
  1104. package/dist/esm/common-utils/utils/strategies/tokens/is-forbidden-token.js +5 -8
  1105. package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.js +11 -17
  1106. package/dist/esm/common-utils/utils/strategies/tokens/is-obtainable-token.spec.js +142 -155
  1107. package/dist/esm/common-utils/utils/strategies/tokens/is-usable-token.js +10 -4
  1108. package/dist/esm/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.js +20 -26
  1109. package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.js +5 -7
  1110. package/dist/esm/common-utils/utils/strategies/tokens/wrap-token-address.spec.js +12 -9
  1111. package/dist/esm/common-utils/utils/strategies/types/chains.js +1 -0
  1112. package/dist/esm/common-utils/utils/strategies/types/credit-manager-data-legacy.js +1 -0
  1113. package/dist/esm/common-utils/utils/strategies/types/curator-filter.js +1 -0
  1114. package/dist/esm/common-utils/utils/strategies/types/index.js +13 -12
  1115. package/dist/esm/common-utils/utils/strategies/types/legacy-strategy-data-source.js +24 -33
  1116. package/dist/esm/common-utils/utils/strategies/types/points-slices.js +1 -0
  1117. package/dist/esm/common-utils/utils/strategies/types/sdk-state.js +1 -0
  1118. package/dist/esm/common-utils/utils/strategies/types/strategies-cm-list.js +1 -0
  1119. package/dist/esm/common-utils/utils/strategies/types/strategy-data-source.js +1 -0
  1120. package/dist/esm/common-utils/utils/strategies/types/strategy-data.js +1 -0
  1121. package/dist/esm/common-utils/utils/strategies/types/strategy-earnings.js +1 -0
  1122. package/dist/esm/common-utils/utils/strategies/types/strategy.js +1 -0
  1123. package/dist/esm/common-utils/utils/strategies/types/targetable.js +1 -0
  1124. package/dist/esm/common-utils/utils/strategies/types.js +3 -1
  1125. package/dist/esm/common-utils/utils/trace.js +82 -82
  1126. package/dist/esm/common-utils/utils/validation/index.js +12 -11
  1127. package/dist/esm/common-utils/utils/validation/is-zero-balance.js +4 -4
  1128. package/dist/esm/common-utils/utils/validation/validate-balance.js +19 -21
  1129. package/dist/esm/common-utils/utils/validation/validate-balance.spec.js +51 -48
  1130. package/dist/esm/common-utils/utils/validation/validate-balances.js +14 -18
  1131. package/dist/esm/common-utils/utils/validation/validate-balances.spec.js +42 -33
  1132. package/dist/esm/common-utils/utils/validation/validate-credit-manager.js +6 -9
  1133. package/dist/esm/common-utils/utils/validation/validate-credit-manager.spec.js +33 -32
  1134. package/dist/esm/common-utils/utils/validation/validate-hf.js +6 -11
  1135. package/dist/esm/common-utils/utils/validation/validate-hf.spec.js +23 -20
  1136. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.js +11 -11
  1137. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.js +26 -43
  1138. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.js +34 -52
  1139. package/dist/esm/common-utils/utils/validation/validate-open-account-pool-status.spec.js +91 -95
  1140. package/dist/esm/common-utils/utils/validation/validate-open-account.js +14 -14
  1141. package/dist/esm/common-utils/utils/validation/validate-open-account.spec.js +51 -51
  1142. package/dist/esm/common-utils/utils/validation/validate-quota.js +20 -23
  1143. package/dist/esm/common-utils/utils/validation/validate-quota.spec.js +83 -78
  1144. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.js +16 -17
  1145. package/dist/esm/common-utils/utils/validation/validate-token-to-obtain.spec.js +33 -31
  1146. package/dist/esm/common-utils/utils/validation/validation-types.js +1 -0
  1147. package/dist/esm/dev/AccountOpener.js +683 -894
  1148. package/dist/esm/dev/EthCallSpy.js +54 -69
  1149. package/dist/esm/dev/RevolverTransport.js +290 -339
  1150. package/dist/esm/dev/abi.js +201 -216
  1151. package/dist/esm/dev/calcLiquidatableLTs.js +47 -53
  1152. package/dist/esm/dev/claimFromFaucet.js +64 -83
  1153. package/dist/esm/dev/create2.js +83 -88
  1154. package/dist/esm/dev/createAnvilClient.js +76 -74
  1155. package/dist/esm/dev/detectChain.js +18 -14
  1156. package/dist/esm/dev/index.js +28 -30
  1157. package/dist/esm/dev/isOutOfSyncError.js +20 -29
  1158. package/dist/esm/dev/isRateLimitError.js +33 -49
  1159. package/dist/esm/dev/isTransientError.js +36 -60
  1160. package/dist/esm/dev/kycUtils.js +364 -0
  1161. package/dist/esm/dev/logSplitterTransport.js +205 -119
  1162. package/dist/esm/dev/ltUtils.js +68 -81
  1163. package/dist/esm/dev/midasUtils.js +202 -0
  1164. package/dist/esm/dev/migrateFaucet.js +66 -54
  1165. package/dist/esm/dev/mint/AbstractMinter.js +57 -56
  1166. package/dist/esm/dev/mint/DealMinter.js +16 -18
  1167. package/dist/esm/dev/mint/DirectMinter.js +20 -29
  1168. package/dist/esm/dev/mint/FallbackMinter.js +19 -21
  1169. package/dist/esm/dev/mint/TransferMinter.js +32 -44
  1170. package/dist/esm/dev/mint/factory.js +8 -8
  1171. package/dist/esm/dev/mint/index.js +3 -2
  1172. package/dist/esm/dev/mint/types.js +1 -0
  1173. package/dist/esm/dev/providers.js +141 -123
  1174. package/dist/esm/dev/replaceStorage.js +46 -53
  1175. package/dist/esm/dev/resilientTransport.js +70 -72
  1176. package/dist/esm/dev/securitizeUtils.js +256 -0
  1177. package/dist/esm/dev/transports.js +34 -44
  1178. package/dist/esm/dev/types.js +1 -0
  1179. package/dist/esm/dev/verifyTestnet.js +29 -23
  1180. package/dist/esm/dev/withdrawalAbi.js +1828 -0
  1181. package/dist/esm/dev/withdrawalUtils.js +278 -0
  1182. package/dist/esm/history/assembleOperations.js +84 -86
  1183. package/dist/esm/history/classifyMulticallOperations.js +124 -156
  1184. package/dist/esm/history/index.js +5 -7
  1185. package/dist/esm/history/mapOperations.js +38 -49
  1186. package/dist/esm/history/parseCreditAccountTransaction.js +46 -60
  1187. package/dist/esm/history/populateContractsRegister.js +32 -49
  1188. package/dist/esm/history/toLegacyOperation.js +138 -152
  1189. package/dist/esm/history/types.js +1 -0
  1190. package/dist/esm/model/history.js +26 -0
  1191. package/dist/esm/model/history.schema.js +76 -0
  1192. package/dist/esm/model/index.js +11 -0
  1193. package/dist/esm/model/liquidations.js +22 -0
  1194. package/dist/esm/model/liquidations.schema.js +85 -0
  1195. package/dist/esm/model/opportunities.js +51 -0
  1196. package/dist/esm/model/opportunities.schema.js +201 -0
  1197. package/dist/esm/model/package.json +1 -0
  1198. package/dist/esm/model/positions.js +1 -0
  1199. package/dist/esm/model/positions.schema.js +109 -0
  1200. package/dist/esm/model/primitives.js +1 -0
  1201. package/dist/esm/model/primitives.schema.js +75 -0
  1202. package/dist/esm/new-sdk/AbstractNamespace.js +157 -0
  1203. package/dist/esm/new-sdk/GearboxSDK.js +121 -0
  1204. package/dist/esm/new-sdk/index.js +7 -0
  1205. package/dist/esm/new-sdk/opportunities/OpportunitiesNamespace.js +121 -0
  1206. package/dist/esm/new-sdk/opportunities/index.js +3 -0
  1207. package/dist/esm/new-sdk/opportunities/types.js +1 -0
  1208. package/dist/esm/new-sdk/package.json +1 -0
  1209. package/dist/esm/new-sdk/types.js +21 -0
  1210. package/dist/esm/new-sdk/utils/history.js +1 -0
  1211. package/dist/esm/new-sdk/utils/index.js +2 -0
  1212. package/dist/esm/offchain/GearboxAPI.js +32 -0
  1213. package/dist/esm/offchain/index.js +5 -0
  1214. package/dist/esm/offchain/opportunities/OffchainOpportunities.js +95 -0
  1215. package/dist/esm/offchain/opportunities/index.js +2 -0
  1216. package/dist/esm/offchain/package.json +1 -0
  1217. package/dist/esm/offchain/types.js +1 -0
  1218. package/dist/esm/permissionless/bindings/address-provider.js +20 -26
  1219. package/dist/esm/permissionless/bindings/bytecode-repository.js +411 -487
  1220. package/dist/esm/permissionless/bindings/compressors/index.js +3 -2
  1221. package/dist/esm/permissionless/bindings/compressors/token-compressor.js +77 -89
  1222. package/dist/esm/permissionless/bindings/compressors/withdrawal-compressor.js +27 -25
  1223. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +264 -317
  1224. package/dist/esm/permissionless/bindings/factory/abstract-factory.js +29 -31
  1225. package/dist/esm/permissionless/bindings/factory/credit-factory.js +148 -173
  1226. package/dist/esm/permissionless/bindings/factory/loss-policy-factory.js +35 -37
  1227. package/dist/esm/permissionless/bindings/factory/pool-factory.js +38 -42
  1228. package/dist/esm/permissionless/bindings/factory/price-oracle-factory.js +20 -20
  1229. package/dist/esm/permissionless/bindings/factory/rate-keeper-factory.js +11 -0
  1230. package/dist/esm/permissionless/bindings/governance/batches-chain.js +19 -14
  1231. package/dist/esm/permissionless/bindings/governance/governor.js +178 -199
  1232. package/dist/esm/permissionless/bindings/governance/index.js +4 -3
  1233. package/dist/esm/permissionless/bindings/governance/timelock.js +75 -78
  1234. package/dist/esm/permissionless/bindings/governance/types.js +1 -0
  1235. package/dist/esm/permissionless/bindings/index.js +19 -13
  1236. package/dist/esm/permissionless/bindings/instance-manager.js +204 -238
  1237. package/dist/esm/permissionless/bindings/market-configurator-factory.js +45 -48
  1238. package/dist/esm/permissionless/bindings/market-configurator.js +630 -755
  1239. package/dist/esm/permissionless/bindings/price-feed-store.js +299 -367
  1240. package/dist/esm/permissionless/bindings/pricefeeds/balancer-stable.js +38 -36
  1241. package/dist/esm/permissionless/bindings/pricefeeds/balancer-weighted.js +38 -36
  1242. package/dist/esm/permissionless/bindings/pricefeeds/bounded.js +27 -21
  1243. package/dist/esm/permissionless/bindings/pricefeeds/composite.js +20 -17
  1244. package/dist/esm/permissionless/bindings/pricefeeds/constant.js +19 -16
  1245. package/dist/esm/permissionless/bindings/pricefeeds/curve-crypto.js +42 -40
  1246. package/dist/esm/permissionless/bindings/pricefeeds/curve-stable.js +42 -40
  1247. package/dist/esm/permissionless/bindings/pricefeeds/curve-twap.js +53 -44
  1248. package/dist/esm/permissionless/bindings/pricefeeds/curve-usd.js +24 -24
  1249. package/dist/esm/permissionless/bindings/pricefeeds/erc4626.js +40 -45
  1250. package/dist/esm/permissionless/bindings/pricefeeds/external.js +10 -12
  1251. package/dist/esm/permissionless/bindings/pricefeeds/index.js +20 -20
  1252. package/dist/esm/permissionless/bindings/pricefeeds/kodiak.js +27 -24
  1253. package/dist/esm/permissionless/bindings/pricefeeds/mellow-lrt.js +92 -96
  1254. package/dist/esm/permissionless/bindings/pricefeeds/pendle-pt-twap.js +25 -25
  1255. package/dist/esm/permissionless/bindings/pricefeeds/pyth.js +39 -38
  1256. package/dist/esm/permissionless/bindings/pricefeeds/redstone.js +57 -54
  1257. package/dist/esm/permissionless/bindings/pricefeeds/wsteth.js +34 -36
  1258. package/dist/esm/permissionless/bindings/pricefeeds/zero.js +7 -7
  1259. package/dist/esm/permissionless/bindings/router/index.js +2 -1
  1260. package/dist/esm/permissionless/bindings/router/routing-manager.js +27 -25
  1261. package/dist/esm/permissionless/bindings/treasury-splitter.js +106 -99
  1262. package/dist/esm/permissionless/bindings/types.js +9 -9
  1263. package/dist/esm/permissionless/chains/archive-transport.js +189 -233
  1264. package/dist/esm/permissionless/chains/chunked-log-transport.js +91 -99
  1265. package/dist/esm/permissionless/core/auditor.js +1 -0
  1266. package/dist/esm/permissionless/core/bytecode.js +1 -0
  1267. package/dist/esm/permissionless/core/index.js +7 -6
  1268. package/dist/esm/permissionless/core/pricefeed-builder.js +1 -0
  1269. package/dist/esm/permissionless/core/pricefeed.js +1 -0
  1270. package/dist/esm/permissionless/core/proposal.js +1 -0
  1271. package/dist/esm/permissionless/core/raw-tx.js +9 -12
  1272. package/dist/esm/permissionless/deployment/addresses.js +11 -11
  1273. package/dist/esm/permissionless/deployment/mainnet.js +19 -22
  1274. package/dist/esm/permissionless/index.js +36 -7
  1275. package/dist/esm/permissionless/plugins/index.js +4 -20
  1276. package/dist/esm/permissionless/plugins/irm/constructor-params-abi.js +78 -41
  1277. package/dist/esm/permissionless/plugins/loss-policies/constructor-params-abi.js +57 -41
  1278. package/dist/esm/permissionless/plugins/rate-keepers/constructor-params-abi.js +65 -48
  1279. package/dist/esm/permissionless/utils/abi-encoder.js +59 -62
  1280. package/dist/esm/permissionless/utils/block-utils.js +27 -29
  1281. package/dist/esm/permissionless/utils/create2.js +54 -69
  1282. package/dist/esm/permissionless/utils/format.js +30 -48
  1283. package/dist/esm/permissionless/utils/governance/batch.js +63 -74
  1284. package/dist/esm/permissionless/utils/governance/index.js +4 -3
  1285. package/dist/esm/permissionless/utils/governance/timelock-txs.js +15 -16
  1286. package/dist/esm/permissionless/utils/governance/types.js +1 -0
  1287. package/dist/esm/permissionless/utils/index.js +15 -8
  1288. package/dist/esm/permissionless/utils/literals.js +3 -9
  1289. package/dist/esm/permissionless/utils/price-update/get-price-feeds.js +50 -68
  1290. package/dist/esm/permissionless/utils/price-update/get-price-update-tx.js +37 -60
  1291. package/dist/esm/permissionless/utils/price-update/get-prices.js +81 -106
  1292. package/dist/esm/permissionless/utils/price-update/get-updatable-feeds.js +17 -28
  1293. package/dist/esm/permissionless/utils/price-update/index.js +5 -4
  1294. package/dist/esm/permissionless/utils/signature.js +7 -9
  1295. package/dist/esm/plugins/accounts/AccountsPlugin.js +53 -60
  1296. package/dist/esm/plugins/accounts/index.js +2 -1
  1297. package/dist/esm/plugins/accounts-counter/AccountsCounterPlugin.js +72 -95
  1298. package/dist/esm/plugins/accounts-counter/index.js +2 -1
  1299. package/dist/esm/plugins/adapters/AdaptersPlugin.js +32 -32
  1300. package/dist/esm/plugins/adapters/abi/actionAbi.js +57 -89
  1301. package/dist/esm/plugins/adapters/abi/adapters/erc4626ReferralAdapter.js +266 -0
  1302. package/dist/esm/plugins/adapters/abi/adapters/iBalancerV3RouterAdapter.js +373 -0
  1303. package/dist/esm/plugins/adapters/abi/adapters/iBalancerV3WrapperAdapter.js +131 -0
  1304. package/dist/esm/plugins/adapters/abi/adapters/iCamelotV3Adapter.js +513 -0
  1305. package/dist/esm/plugins/adapters/abi/adapters/iConvexV1BaseRewardPoolAdapter.js +297 -0
  1306. package/dist/esm/plugins/adapters/abi/adapters/iConvexV1BoosterAdapter.js +231 -0
  1307. package/dist/esm/plugins/adapters/abi/adapters/iCurveV1StableNgAdapter.js +606 -0
  1308. package/dist/esm/plugins/adapters/abi/adapters/iCurveV1_2AssetsAdapter.js +606 -0
  1309. package/dist/esm/plugins/adapters/abi/adapters/iCurveV1_3AssetsAdapter.js +606 -0
  1310. package/dist/esm/plugins/adapters/abi/adapters/iCurveV1_4AssetsAdapter.js +606 -0
  1311. package/dist/esm/plugins/adapters/abi/adapters/iDaiUsdsAdapter.js +150 -0
  1312. package/dist/esm/plugins/adapters/abi/adapters/iFluidDexAdapter.js +141 -0
  1313. package/dist/esm/plugins/adapters/abi/adapters/iInfinifiGatewayAdapter.js +379 -0
  1314. package/dist/esm/plugins/adapters/abi/adapters/iInfinifiUnwindingGateway.js +396 -0
  1315. package/dist/esm/plugins/adapters/abi/adapters/iKelpLrtDepositPool.js +271 -0
  1316. package/dist/esm/plugins/adapters/abi/adapters/iKelpLrtWithdrawalManager.js +399 -0
  1317. package/dist/esm/plugins/adapters/abi/adapters/iLidoV1Adapter.js +123 -0
  1318. package/dist/esm/plugins/adapters/abi/adapters/iMellow4626VaultAdapter.js +209 -0
  1319. package/dist/esm/plugins/adapters/abi/adapters/iMellowClaimerAdapter.js +284 -0
  1320. package/dist/esm/plugins/adapters/abi/adapters/iMellowWrapperAdapter.js +172 -0
  1321. package/dist/esm/plugins/adapters/abi/adapters/iMidasGatewayAdapterV311.js +379 -0
  1322. package/dist/esm/plugins/adapters/abi/adapters/iMidasIssuanceVaultAdapterV310.js +208 -0
  1323. package/dist/esm/plugins/adapters/abi/adapters/iMidasRedemptionVaultAdapterV310.js +523 -0
  1324. package/dist/esm/plugins/adapters/abi/adapters/iPendleRouterAdapter.js +1708 -0
  1325. package/dist/esm/plugins/adapters/abi/adapters/iSecuritizeOnRampAdapterV310.js +120 -0
  1326. package/dist/esm/plugins/adapters/abi/adapters/iSecuritizeRedemptionGatewayAdapterV311.js +278 -0
  1327. package/dist/esm/plugins/adapters/abi/adapters/iStakingRewardsAdapter.js +218 -0
  1328. package/dist/esm/plugins/adapters/abi/adapters/iTraderJoeRouterAdapter.js +411 -0
  1329. package/dist/esm/plugins/adapters/abi/adapters/iUniswapV2Adapter.js +243 -0
  1330. package/dist/esm/plugins/adapters/abi/adapters/iUniswapV3Adapter.js +443 -0
  1331. package/dist/esm/plugins/adapters/abi/adapters/iUniswapV4Adapter.js +473 -0
  1332. package/dist/esm/plugins/adapters/abi/adapters/iUpshiftVaultAdapter.js +375 -0
  1333. package/dist/esm/plugins/adapters/abi/adapters/iVelodromeV2RouterAdapter.js +285 -0
  1334. package/dist/esm/plugins/adapters/abi/adapters/index.js +36 -0
  1335. package/dist/esm/plugins/adapters/abi/adapters/iwstEthv1Adapter.js +131 -0
  1336. package/dist/esm/plugins/adapters/abi/adapters/mellowDvvAdapter.js +252 -0
  1337. package/dist/esm/plugins/adapters/abi/conctructorAbi.js +75 -189
  1338. package/dist/esm/plugins/adapters/abi/conctructorAbiPatterns.js +146 -65
  1339. package/dist/esm/plugins/adapters/abi/index.js +47 -5
  1340. package/dist/esm/plugins/adapters/abi/midas/iMidasGatewayV311.js +297 -0
  1341. package/dist/esm/plugins/adapters/abi/midas/index.js +2 -0
  1342. package/dist/esm/plugins/adapters/abi/securitize/iBaseOnRamp.js +296 -325
  1343. package/dist/esm/plugins/adapters/abi/securitize/iSecuritizeOnRamp.js +78 -47
  1344. package/dist/esm/plugins/adapters/abi/securitize/iSecuritizeRedemptionGatewayV311.js +247 -0
  1345. package/dist/esm/plugins/adapters/abi/securitize/index.js +4 -5
  1346. package/dist/esm/plugins/adapters/abi/targetContractAbi.js +9087 -5067
  1347. package/dist/esm/plugins/adapters/abi/utils.js +61 -51
  1348. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +194 -132
  1349. package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
  1350. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +22 -22
  1351. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +101 -72
  1352. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +60 -34
  1353. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +74 -47
  1354. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +134 -115
  1355. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +121 -82
  1356. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +105 -88
  1357. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +109 -88
  1358. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +110 -93
  1359. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +89 -71
  1360. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +121 -104
  1361. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +84 -54
  1362. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +111 -71
  1363. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +82 -54
  1364. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +66 -43
  1365. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +100 -65
  1366. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +44 -43
  1367. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +54 -38
  1368. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +54 -45
  1369. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +84 -55
  1370. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +52 -38
  1371. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +83 -53
  1372. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +156 -88
  1373. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +56 -36
  1374. package/dist/esm/plugins/adapters/contracts/MidasGatewayAdapterContract.js +153 -0
  1375. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +79 -55
  1376. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +119 -63
  1377. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +166 -98
  1378. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +66 -45
  1379. package/dist/esm/plugins/adapters/contracts/SecuritizeRedemptionGatewayAdapterContract.js +109 -55
  1380. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +121 -81
  1381. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +90 -61
  1382. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +87 -73
  1383. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +152 -170
  1384. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +95 -62
  1385. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +81 -54
  1386. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +83 -53
  1387. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +72 -45
  1388. package/dist/esm/plugins/adapters/contracts/index.js +40 -44
  1389. package/dist/esm/plugins/adapters/createAdapter.js +93 -145
  1390. package/dist/esm/plugins/adapters/index.js +90 -7
  1391. package/dist/esm/plugins/adapters/legacyAdapterOperations.js +1 -0
  1392. package/dist/esm/plugins/adapters/transferHelpers.js +107 -76
  1393. package/dist/esm/plugins/adapters/transfers.js +1 -0
  1394. package/dist/esm/plugins/adapters/types.js +44 -53
  1395. package/dist/esm/plugins/apy/ApyPlugin.js +241 -319
  1396. package/dist/esm/plugins/apy/apy-parser.js +120 -137
  1397. package/dist/esm/plugins/apy/constants.js +4 -5
  1398. package/dist/esm/plugins/apy/index.js +7 -6
  1399. package/dist/esm/plugins/apy/pool-apy-types.js +1 -0
  1400. package/dist/esm/plugins/apy/pool-apy-utils.js +104 -101
  1401. package/dist/esm/plugins/apy/strategy-data-source.js +160 -176
  1402. package/dist/esm/plugins/apy/types.js +1 -0
  1403. package/dist/esm/plugins/bots/BotsPlugin.js +102 -140
  1404. package/dist/esm/plugins/bots/PartialLiquidationBotV310Contract.js +43 -46
  1405. package/dist/esm/plugins/bots/abi/iPartialLiquidationBotV310.js +222 -138
  1406. package/dist/esm/plugins/bots/abi/index.js +2 -1
  1407. package/dist/esm/plugins/bots/config.js +28 -43
  1408. package/dist/esm/plugins/bots/deserializePartialLiquidationBotParams.js +32 -26
  1409. package/dist/esm/plugins/bots/index.js +7 -5
  1410. package/dist/esm/plugins/bots/types.js +23 -9
  1411. package/dist/esm/plugins/degen-distributors/DegenDistributorsPlugin.js +57 -81
  1412. package/dist/esm/plugins/degen-distributors/index.js +3 -2
  1413. package/dist/esm/plugins/degen-distributors/types.js +1 -0
  1414. package/dist/esm/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.js +107 -156
  1415. package/dist/esm/plugins/delayed-withdrawal/index.js +3 -2
  1416. package/dist/esm/plugins/delayed-withdrawal/types.js +1 -0
  1417. package/dist/esm/plugins/remote-configs/CustomConfigSource.js +16 -16
  1418. package/dist/esm/plugins/remote-configs/RemoteConfigSource.js +22 -29
  1419. package/dist/esm/plugins/remote-configs/RemoteConfigsPlugin.js +124 -163
  1420. package/dist/esm/plugins/remote-configs/index.js +5 -4
  1421. package/dist/esm/plugins/remote-configs/types.js +1 -0
  1422. package/dist/esm/preview/index.js +35 -3
  1423. package/dist/esm/preview/parse/classifyInnerOperations.js +83 -64
  1424. package/dist/esm/preview/parse/errors.js +29 -23
  1425. package/dist/esm/preview/parse/index.js +9 -7
  1426. package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +80 -82
  1427. package/dist/esm/preview/parse/parseOperationCalldata.js +45 -60
  1428. package/dist/esm/preview/parse/parsePoolOperationCalldata.js +65 -63
  1429. package/dist/esm/preview/parse/parseRWAFactoryOperationCalldata.js +81 -80
  1430. package/dist/esm/preview/parse/types-adapters.js +1 -0
  1431. package/dist/esm/preview/parse/types-facades.js +1 -0
  1432. package/dist/esm/preview/parse/types-pools.js +1 -0
  1433. package/dist/esm/preview/parse/types-rwa.js +1 -0
  1434. package/dist/esm/preview/parse/types.js +19 -10
  1435. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +35 -55
  1436. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +49 -72
  1437. package/dist/esm/preview/prerequisites/Prerequisite.js +48 -60
  1438. package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +50 -40
  1439. package/dist/esm/preview/prerequisites/buildCollateralPrerequisites.js +62 -0
  1440. package/dist/esm/preview/prerequisites/buildPartialLiquidationPrerequisites.js +18 -0
  1441. package/dist/esm/preview/prerequisites/buildPoolPrerequisites.js +75 -0
  1442. package/dist/esm/preview/prerequisites/buildRWAPrerequisites.js +38 -0
  1443. package/dist/esm/preview/prerequisites/checkPrerequisites.js +70 -0
  1444. package/dist/esm/preview/prerequisites/helpers.js +22 -0
  1445. package/dist/esm/preview/prerequisites/index.js +7 -8
  1446. package/dist/esm/preview/prerequisites/types.js +1 -0
  1447. package/dist/esm/preview/preview/CreditAccountState.js +133 -0
  1448. package/dist/esm/preview/preview/applyRWAWrapUnwrap.js +66 -0
  1449. package/dist/esm/preview/preview/buildDelayedPreview.js +192 -0
  1450. package/dist/esm/preview/preview/detectCloseOrRepay.js +38 -0
  1451. package/dist/esm/preview/preview/detectDelayedClaim.js +44 -0
  1452. package/dist/esm/preview/preview/detectDelayedOperation.js +48 -0
  1453. package/dist/esm/preview/preview/errors.js +15 -11
  1454. package/dist/esm/preview/preview/index.js +13 -3
  1455. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +52 -0
  1456. package/dist/esm/preview/preview/previewCloseOrRepayCreditAccount.js +65 -0
  1457. package/dist/esm/preview/preview/previewOpenCreditAccount.js +53 -74
  1458. package/dist/esm/preview/preview/previewOperation.js +71 -12
  1459. package/dist/esm/preview/preview/previewPoolOperation.js +25 -51
  1460. package/dist/esm/preview/preview/replayInnerOperations.js +144 -0
  1461. package/dist/esm/preview/preview/replayMulticall.js +18 -0
  1462. package/dist/esm/preview/preview/types.js +50 -0
  1463. package/dist/esm/preview/preview/unwrapNativeCollateral.js +43 -0
  1464. package/dist/esm/preview/simulate/errors.js +72 -62
  1465. package/dist/esm/preview/simulate/index.js +2 -8
  1466. package/dist/esm/preview/simulate/simulateFacadeOperation.js +12 -4
  1467. package/dist/esm/preview/simulate/simulateOperation.js +21 -15
  1468. package/dist/esm/preview/simulate/simulatePoolOperation.js +93 -57
  1469. package/dist/esm/preview/simulate/simulateRWAOperation.js +12 -4
  1470. package/dist/esm/preview/simulate/types.js +1 -0
  1471. package/dist/esm/preview/trace/errors.js +38 -48
  1472. package/dist/esm/preview/trace/extractAdapterCallTraces.js +68 -36
  1473. package/dist/esm/preview/trace/extractTransfers.js +141 -145
  1474. package/dist/esm/preview/trace/findFacadeCalls.js +50 -57
  1475. package/dist/esm/preview/trace/index.js +6 -5
  1476. package/dist/esm/preview/trace/types.js +1 -0
  1477. package/dist/esm/preview/types.js +1 -0
  1478. package/dist/esm/rewards/apy/index.js +3 -2
  1479. package/dist/esm/rewards/apy/output-details.js +1 -0
  1480. package/dist/esm/rewards/apy/output.js +1 -0
  1481. package/dist/esm/rewards/index.js +5 -2
  1482. package/dist/esm/rewards/rewards/api.js +67 -84
  1483. package/dist/esm/rewards/rewards/common.js +1 -0
  1484. package/dist/esm/rewards/rewards/extra-apy.js +64 -97
  1485. package/dist/esm/rewards/rewards/index.js +3 -2
  1486. package/dist/esm/rewards/rewards/merkl-api.js +17 -22
  1487. package/dist/esm/sdk/MultichainSDK.js +197 -216
  1488. package/dist/esm/sdk/OnchainSDK.js +464 -536
  1489. package/dist/esm/sdk/abi/index.js +2 -1
  1490. package/dist/esm/sdk/abi/oracles.js +7350 -4699
  1491. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +1388 -1900
  1492. package/dist/esm/sdk/accounts/index.js +20 -2
  1493. package/dist/esm/sdk/accounts/intents/index.js +387 -0
  1494. package/dist/esm/sdk/accounts/intents/intents/index.js +8 -0
  1495. package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.js +107 -0
  1496. package/dist/esm/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.js +14 -0
  1497. package/dist/esm/sdk/accounts/intents/intents/resume/close/close.fixtures.js +94 -0
  1498. package/dist/esm/sdk/accounts/intents/intents/resume/close/close.js +50 -0
  1499. package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.js +114 -0
  1500. package/dist/esm/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.js +82 -0
  1501. package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.js +110 -0
  1502. package/dist/esm/sdk/accounts/intents/intents/resume/deposit/deposit.js +14 -0
  1503. package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.js +88 -0
  1504. package/dist/esm/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.js +14 -0
  1505. package/dist/esm/sdk/accounts/intents/intents/resume/index.js +7 -0
  1506. package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.js +121 -0
  1507. package/dist/esm/sdk/accounts/intents/intents/resume/withdraw/withdraw.js +160 -0
  1508. package/dist/esm/sdk/accounts/intents/operations/add-collateral/index.js +16 -0
  1509. package/dist/esm/sdk/accounts/intents/operations/claim-delayed/index.js +52 -0
  1510. package/dist/esm/sdk/accounts/intents/operations/close-credit-account/index.js +25 -0
  1511. package/dist/esm/sdk/accounts/intents/operations/decrease-debt/index.js +11 -0
  1512. package/dist/esm/sdk/accounts/intents/operations/increase-debt/index.js +11 -0
  1513. package/dist/esm/sdk/accounts/intents/operations/index.js +14 -0
  1514. package/dist/esm/sdk/accounts/intents/operations/quota-update/index.js +21 -0
  1515. package/dist/esm/sdk/accounts/intents/operations/repay-credit-account/index.js +21 -0
  1516. package/dist/esm/sdk/accounts/intents/operations/start-delayed-withdrawal/index.js +17 -0
  1517. package/dist/esm/sdk/accounts/intents/operations/swap/index.js +17 -0
  1518. package/dist/esm/sdk/accounts/intents/operations/types.js +1 -0
  1519. package/dist/esm/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.js +26 -0
  1520. package/dist/esm/sdk/accounts/intents/operations/withdraw-collateral/index.js +42 -0
  1521. package/dist/esm/sdk/accounts/intents/operations/wrap-rwa-collateral/index.js +26 -0
  1522. package/dist/esm/sdk/accounts/intents/quoters/close.js +56 -0
  1523. package/dist/esm/sdk/accounts/intents/quoters/index.js +3 -0
  1524. package/dist/esm/sdk/accounts/intents/quoters/swap.js +77 -0
  1525. package/dist/esm/sdk/accounts/intents/testing/expect.js +162 -0
  1526. package/dist/esm/sdk/accounts/intents/testing/resume.js +157 -0
  1527. package/dist/esm/sdk/accounts/intents/testing/sdk-mock.js +172 -0
  1528. package/dist/esm/sdk/accounts/intents/types.js +1 -0
  1529. package/dist/esm/sdk/accounts/intents/utils/assemble-operation-calls.js +6 -0
  1530. package/dist/esm/sdk/accounts/intents/utils/borrowed-amount-plus-interest-and-fees.js +12 -0
  1531. package/dist/esm/sdk/accounts/intents/utils/common.js +40 -0
  1532. package/dist/esm/sdk/accounts/intents/utils/convert-amount.js +36 -0
  1533. package/dist/esm/sdk/accounts/intents/utils/index.js +9 -0
  1534. package/dist/esm/sdk/accounts/intents/utils/quotas-for-update.js +121 -0
  1535. package/dist/esm/sdk/accounts/intents/utils/simulate-adjust-state.js +38 -0
  1536. package/dist/esm/sdk/accounts/intents/utils/simulate-assets.js +68 -0
  1537. package/dist/esm/sdk/accounts/intents/utils/with-quota-update.js +12 -0
  1538. package/dist/esm/sdk/accounts/liquidations/LiquidationsService.js +297 -0
  1539. package/dist/esm/sdk/accounts/liquidations/MultichainLiquidationsService.js +61 -0
  1540. package/dist/esm/sdk/accounts/liquidations/constants.js +15 -0
  1541. package/dist/esm/sdk/accounts/liquidations/index.js +5 -0
  1542. package/dist/esm/sdk/accounts/liquidations/types.js +1 -0
  1543. package/dist/esm/sdk/accounts/multicall-utils.js +75 -54
  1544. package/dist/esm/sdk/accounts/types.js +1 -0
  1545. package/dist/esm/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.js +254 -0
  1546. package/dist/esm/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +51 -0
  1547. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +19 -0
  1548. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +19 -0
  1549. package/dist/esm/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +258 -0
  1550. package/dist/esm/sdk/accounts/withdrawal-compressor/addresses.js +22 -0
  1551. package/dist/esm/sdk/accounts/withdrawal-compressor/createRedemptionLogger.js +21 -0
  1552. package/dist/esm/sdk/accounts/withdrawal-compressor/createWithdrawalCompressor.js +23 -0
  1553. package/dist/esm/sdk/accounts/withdrawal-compressor/errors.js +19 -0
  1554. package/dist/esm/sdk/accounts/withdrawal-compressor/index.js +12 -0
  1555. package/dist/esm/sdk/accounts/withdrawal-compressor/intent-codec.js +120 -0
  1556. package/dist/esm/sdk/accounts/withdrawal-compressor/types.js +15 -0
  1557. package/dist/esm/sdk/base/BaseContract.js +338 -353
  1558. package/dist/esm/sdk/base/ChainContractsRegister.js +184 -176
  1559. package/dist/esm/sdk/base/Construct.js +84 -87
  1560. package/dist/esm/sdk/base/MultichainConstruct.js +79 -0
  1561. package/dist/esm/sdk/base/PlaceholderContract.js +13 -7
  1562. package/dist/esm/sdk/base/SDKConstruct.js +19 -9
  1563. package/dist/esm/sdk/base/TokensMeta.js +209 -175
  1564. package/dist/esm/sdk/base/errors.js +8 -10
  1565. package/dist/esm/sdk/base/index.js +11 -9
  1566. package/dist/esm/sdk/base/token-types.js +11 -13
  1567. package/dist/esm/sdk/base/types.js +12 -9
  1568. package/dist/esm/sdk/chain/chains.js +432 -400
  1569. package/dist/esm/sdk/chain/detectNetwork.js +18 -17
  1570. package/dist/esm/sdk/chain/index.js +3 -2
  1571. package/dist/esm/sdk/constants/address-provider.js +8 -37
  1572. package/dist/esm/sdk/constants/addresses.js +12 -6
  1573. package/dist/esm/sdk/constants/bot-permissions.js +23 -28
  1574. package/dist/esm/sdk/constants/index.js +8 -7
  1575. package/dist/esm/sdk/constants/math.js +8 -26
  1576. package/dist/esm/sdk/constants/networks.js +36 -49
  1577. package/dist/esm/sdk/constants/periphery.js +6 -6
  1578. package/dist/esm/sdk/constants/versions.js +5 -7
  1579. package/dist/esm/sdk/core/AbstractAddressProviderContract.js +111 -124
  1580. package/dist/esm/sdk/core/AddressProviderV310Contract.js +50 -59
  1581. package/dist/esm/sdk/core/createAddressProvider.js +26 -44
  1582. package/dist/esm/sdk/core/errors.js +77 -46
  1583. package/dist/esm/sdk/core/index.js +5 -4
  1584. package/dist/esm/sdk/core/types.js +1 -0
  1585. package/dist/esm/sdk/index.js +141 -15
  1586. package/dist/esm/sdk/market/MarketConfiguratorContract.js +103 -99
  1587. package/dist/esm/sdk/market/MarketRegister.js +232 -284
  1588. package/dist/esm/sdk/market/MarketSuite.js +300 -139
  1589. package/dist/esm/sdk/market/ZapperRegister.js +117 -150
  1590. package/dist/esm/sdk/market/adapters/PlaceholderAdapterContracts.js +28 -33
  1591. package/dist/esm/sdk/market/adapters/createAdapter.js +16 -21
  1592. package/dist/esm/sdk/market/adapters/index.js +4 -3
  1593. package/dist/esm/sdk/market/adapters/types.js +1 -0
  1594. package/dist/esm/sdk/market/credit/CreditConfiguratorV310Contract.js +86 -97
  1595. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +80 -82
  1596. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +110 -94
  1597. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +92 -84
  1598. package/dist/esm/sdk/market/credit/CreditSuite.js +223 -121
  1599. package/dist/esm/sdk/market/credit/createCreditConfigurator.js +8 -9
  1600. package/dist/esm/sdk/market/credit/createCreditFacade.js +8 -9
  1601. package/dist/esm/sdk/market/credit/createCreditManager.js +8 -9
  1602. package/dist/esm/sdk/market/credit/index.js +7 -6
  1603. package/dist/esm/sdk/market/credit/types.js +1 -0
  1604. package/dist/esm/sdk/market/index.js +61 -10
  1605. package/dist/esm/sdk/market/loss-policy/AliasLossPolicyV310Contract.js +97 -90
  1606. package/dist/esm/sdk/market/loss-policy/LossPolicyContract.js +15 -18
  1607. package/dist/esm/sdk/market/loss-policy/constants.js +6 -8
  1608. package/dist/esm/sdk/market/loss-policy/createLossPolicy.js +15 -21
  1609. package/dist/esm/sdk/market/loss-policy/index.js +5 -4
  1610. package/dist/esm/sdk/market/loss-policy/types.js +1 -0
  1611. package/dist/esm/sdk/market/math.js +98 -0
  1612. package/dist/esm/sdk/market/oracle/PriceFeedAnswerMap.js +13 -16
  1613. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +270 -252
  1614. package/dist/esm/sdk/market/oracle/PriceOracleV310Contract.js +72 -84
  1615. package/dist/esm/sdk/market/oracle/createPriceOracle.js +8 -9
  1616. package/dist/esm/sdk/market/oracle/index.js +4 -3
  1617. package/dist/esm/sdk/market/oracle/types.js +1 -0
  1618. package/dist/esm/sdk/market/pool/GaugeContract.js +104 -86
  1619. package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +102 -60
  1620. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV310Contract.js +74 -58
  1621. package/dist/esm/sdk/market/pool/PoolSuite.js +165 -142
  1622. package/dist/esm/sdk/market/pool/PoolV310Contract.js +147 -142
  1623. package/dist/esm/sdk/market/pool/TumblerContract.js +51 -47
  1624. package/dist/esm/sdk/market/pool/createInterestRateModel.js +13 -18
  1625. package/dist/esm/sdk/market/pool/createPool.js +8 -9
  1626. package/dist/esm/sdk/market/pool/createPoolQuotaKeeper.js +8 -9
  1627. package/dist/esm/sdk/market/pool/createRateKeeper.js +11 -15
  1628. package/dist/esm/sdk/market/pool/index.js +6 -5
  1629. package/dist/esm/sdk/market/pool/math.js +41 -0
  1630. package/dist/esm/sdk/market/pool/types.js +1 -0
  1631. package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +52 -40
  1632. package/dist/esm/sdk/market/pricefeeds/AbstractPriceFeed.js +107 -105
  1633. package/dist/esm/sdk/market/pricefeeds/BalancerStablePriceFeed.js +13 -12
  1634. package/dist/esm/sdk/market/pricefeeds/BalancerWeightedPriceFeed.js +51 -41
  1635. package/dist/esm/sdk/market/pricefeeds/BoundedPriceFeed.js +24 -29
  1636. package/dist/esm/sdk/market/pricefeeds/CompositePriceFeed.js +19 -18
  1637. package/dist/esm/sdk/market/pricefeeds/ConstantPriceFeed.js +24 -31
  1638. package/dist/esm/sdk/market/pricefeeds/CurveCryptoPriceFeed.js +13 -12
  1639. package/dist/esm/sdk/market/pricefeeds/CurveStablePriceFeed.js +13 -12
  1640. package/dist/esm/sdk/market/pricefeeds/CurveUSDPriceFeed.js +13 -12
  1641. package/dist/esm/sdk/market/pricefeeds/Erc4626PriceFeed.js +13 -12
  1642. package/dist/esm/sdk/market/pricefeeds/ExternalPriceFeed.js +13 -12
  1643. package/dist/esm/sdk/market/pricefeeds/MellowLRTPriceFeed.js +13 -12
  1644. package/dist/esm/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.js +52 -36
  1645. package/dist/esm/sdk/market/pricefeeds/PriceFeedRef.js +49 -44
  1646. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +283 -326
  1647. package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +81 -71
  1648. package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +79 -59
  1649. package/dist/esm/sdk/market/pricefeeds/WstETHPriceFeed.js +13 -12
  1650. package/dist/esm/sdk/market/pricefeeds/YearnPriceFeed.js +13 -12
  1651. package/dist/esm/sdk/market/pricefeeds/ZeroPriceFeed.js +14 -13
  1652. package/dist/esm/sdk/market/pricefeeds/getRawPriceUpdates.js +14 -14
  1653. package/dist/esm/sdk/market/pricefeeds/index.js +27 -31
  1654. package/dist/esm/sdk/market/pricefeeds/isUpdatablePriceFeed.js +4 -4
  1655. package/dist/esm/sdk/market/pricefeeds/types.js +1 -0
  1656. package/dist/esm/sdk/market/pricefeeds/updates/PriceUpdateTx.js +24 -28
  1657. package/dist/esm/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +32 -36
  1658. package/dist/esm/sdk/market/pricefeeds/updates/PythAccumulatorUpdateData.js +136 -145
  1659. package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +131 -154
  1660. package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +184 -232
  1661. package/dist/esm/sdk/market/pricefeeds/updates/fetchPythPayloads.js +77 -108
  1662. package/dist/esm/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +86 -129
  1663. package/dist/esm/sdk/market/pricefeeds/updates/index.js +3 -9
  1664. package/dist/esm/sdk/market/pricefeeds/updates/types.js +1 -0
  1665. package/dist/esm/sdk/market/rwa/RWARegistry.js +260 -256
  1666. package/dist/esm/sdk/market/rwa/index.js +11 -3
  1667. package/dist/esm/sdk/market/rwa/midas/MidasLiquidatorContract.js +43 -0
  1668. package/dist/esm/sdk/market/rwa/midas/constants.js +5 -0
  1669. package/dist/esm/sdk/market/rwa/midas/index.js +3 -0
  1670. package/dist/esm/sdk/market/rwa/securitize/SecuritizeDegenNFT.js +15 -14
  1671. package/dist/esm/sdk/market/rwa/securitize/SecuritizeLiquidatorContract.js +31 -0
  1672. package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +311 -265
  1673. package/dist/esm/sdk/market/rwa/securitize/constants.js +5 -3
  1674. package/dist/esm/sdk/market/rwa/securitize/index.js +5 -3
  1675. package/dist/esm/sdk/market/rwa/securitize/types.js +29 -12
  1676. package/dist/esm/sdk/market/rwa/types.js +19 -9
  1677. package/dist/esm/sdk/market/types.js +1 -0
  1678. package/dist/esm/sdk/market/zapper/IERC20ZapperContract.js +47 -35
  1679. package/dist/esm/sdk/market/zapper/IETHZapperContract.js +26 -26
  1680. package/dist/esm/sdk/market/zapper/ZapperContract.js +89 -79
  1681. package/dist/esm/sdk/market/zapper/createZapper.js +20 -25
  1682. package/dist/esm/sdk/market/zapper/errors.js +16 -12
  1683. package/dist/esm/sdk/market/zapper/index.js +7 -6
  1684. package/dist/esm/sdk/market/zapper/types.js +1 -0
  1685. package/dist/esm/sdk/opportunities/MultichainOpportunitiesService.js +59 -0
  1686. package/dist/esm/sdk/opportunities/OpportunitiesService.js +47 -0
  1687. package/dist/esm/sdk/opportunities/index.js +4 -0
  1688. package/dist/esm/sdk/options.js +70 -65
  1689. package/dist/esm/sdk/plugins/BasePlugin.js +76 -72
  1690. package/dist/esm/sdk/plugins/errors.js +7 -9
  1691. package/dist/esm/sdk/plugins/index.js +4 -3
  1692. package/dist/esm/sdk/plugins/types.js +1 -0
  1693. package/dist/esm/sdk/pools/PoolService.js +292 -415
  1694. package/dist/esm/sdk/pools/index.js +3 -2
  1695. package/dist/esm/sdk/pools/types.js +1 -0
  1696. package/dist/esm/sdk/router/AbstractRouterContract.js +137 -165
  1697. package/dist/esm/sdk/router/RouterV310Contract.js +294 -306
  1698. package/dist/esm/sdk/router/createRouter.js +9 -12
  1699. package/dist/esm/sdk/router/helpers.js +15 -15
  1700. package/dist/esm/sdk/router/index.js +4 -6
  1701. package/dist/esm/sdk/router/types.js +1 -0
  1702. package/dist/esm/sdk/types/index.js +1 -0
  1703. package/dist/esm/sdk/types/logger.js +1 -0
  1704. package/dist/esm/sdk/types/multichain.js +1 -0
  1705. package/dist/esm/sdk/types/state-human.js +1 -0
  1706. package/dist/esm/sdk/types/state.js +1 -0
  1707. package/dist/esm/sdk/types/transactions.js +1 -0
  1708. package/dist/esm/sdk/utils/AddressMap.js +153 -154
  1709. package/dist/esm/sdk/utils/AddressSet.js +42 -31
  1710. package/dist/esm/sdk/utils/AssetsMap.js +70 -0
  1711. package/dist/esm/sdk/utils/abi-decode.js +61 -72
  1712. package/dist/esm/sdk/utils/bigint-math.js +46 -0
  1713. package/dist/esm/sdk/utils/bytes32ToString.js +4 -4
  1714. package/dist/esm/sdk/utils/childLogger.js +4 -4
  1715. package/dist/esm/sdk/utils/createRawTx.js +43 -43
  1716. package/dist/esm/sdk/utils/etherscan.js +23 -33
  1717. package/dist/esm/sdk/utils/filterDust.js +21 -25
  1718. package/dist/esm/sdk/utils/formatter.js +133 -194
  1719. package/dist/esm/sdk/utils/hex.js +9 -4
  1720. package/dist/esm/sdk/utils/index.js +20 -17
  1721. package/dist/esm/sdk/utils/internal/Hooks.js +19 -28
  1722. package/dist/esm/sdk/utils/internal/index.js +2 -1
  1723. package/dist/esm/sdk/utils/isDust.js +25 -21
  1724. package/dist/esm/sdk/utils/json.js +12 -18
  1725. package/dist/esm/sdk/utils/mappers.js +18 -18
  1726. package/dist/esm/sdk/utils/retry.js +16 -19
  1727. package/dist/esm/sdk/utils/toAddress.js +6 -10
  1728. package/dist/esm/sdk/utils/type-utils.js +1 -0
  1729. package/dist/esm/sdk/utils/viem/cast.js +24 -24
  1730. package/dist/esm/sdk/utils/viem/executeDelegatedMulticalls.js +19 -11
  1731. package/dist/esm/sdk/utils/viem/index.js +8 -6
  1732. package/dist/esm/sdk/utils/viem/sendRawTx.js +19 -31
  1733. package/dist/esm/sdk/utils/viem/simulateCall.js +80 -0
  1734. package/dist/esm/sdk/utils/viem/simulateMulticall.js +118 -123
  1735. package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +175 -258
  1736. package/dist/esm/sdk/utils/viem/watchBlocksAsync.js +78 -49
  1737. package/dist/esm/sdk/utils/zod.js +24 -12
  1738. package/dist/types/abi/310/configure/creditSuiteParams.d.ts +87 -84
  1739. package/dist/types/abi/310/configure/iCreditConfigureActions.d.ts +174 -171
  1740. package/dist/types/abi/310/configure/iPoolConfigureActions.d.ts +62 -59
  1741. package/dist/types/abi/310/configure/iPriceOracleConfigureActions.d.ts +30 -27
  1742. package/dist/types/abi/310/crossChainMultisig.d.ts +688 -685
  1743. package/dist/types/abi/310/generated.d.ts +7025 -7022
  1744. package/dist/types/abi/310/iBytecodeRepository.d.ts +1114 -1111
  1745. package/dist/types/abi/310/iLinearInterestRateModelV310.d.ts +107 -104
  1746. package/dist/types/abi/310/iMarketConfiguratorFactory.d.ts +220 -217
  1747. package/dist/types/abi/310/iPriceFeedStore.d.ts +522 -519
  1748. package/dist/types/abi/310/iTreasurySplitter.d.ts +335 -332
  1749. package/dist/types/abi/310/instanceManager.d.ts +300 -297
  1750. package/dist/types/abi/AccountMigrator.d.ts +210 -207
  1751. package/dist/types/abi/ILiquidationCompressorV313.d.ts +145 -0
  1752. package/dist/types/abi/IWithdrawalCompressorV310.d.ts +295 -292
  1753. package/dist/types/abi/IWithdrawalCompressorV311.d.ts +299 -296
  1754. package/dist/types/abi/IWithdrawalCompressorV313.d.ts +623 -0
  1755. package/dist/types/abi/compressors/creditAccountCompressor.d.ts +782 -779
  1756. package/dist/types/abi/compressors/creditSuiteCompressor.d.ts +777 -774
  1757. package/dist/types/abi/compressors/defillamaCompressor.d.ts +184 -181
  1758. package/dist/types/abi/compressors/gaugeCompressor.d.ts +218 -215
  1759. package/dist/types/abi/compressors/liquidationCompressor.d.ts +300 -0
  1760. package/dist/types/abi/compressors/marketCompressor.d.ts +2447 -2444
  1761. package/dist/types/abi/compressors/peripheryCompressor.d.ts +198 -195
  1762. package/dist/types/abi/compressors/priceFeedCompressor.d.ts +626 -623
  1763. package/dist/types/abi/compressors/rewardsCompressor.d.ts +67 -64
  1764. package/dist/types/abi/compressors/rwaCompressor.d.ts +215 -212
  1765. package/dist/types/abi/compressors/subcompressors/liquidation/midasLiquidationSubcompressor.d.ts +149 -0
  1766. package/dist/types/abi/compressors/subcompressors/liquidation/securitizeLiquidationSubcompressor.d.ts +149 -0
  1767. package/dist/types/abi/compressors/subcompressors/rwa/onDemandRWAUnderlyingSubcompressor.d.ts +48 -45
  1768. package/dist/types/abi/compressors/subcompressors/rwa/securitizeRWAFactorySubcompressor.d.ts +82 -79
  1769. package/dist/types/abi/compressors/subcompressors/withdrawal/infinifiWithdrawalSubcompressor.d.ts +201 -198
  1770. package/dist/types/abi/compressors/subcompressors/withdrawal/kelpLRTWithdrawalSubcompressor.d.ts +201 -198
  1771. package/dist/types/abi/compressors/subcompressors/withdrawal/mellowFlexibleDepositSubcompressor.d.ts +197 -194
  1772. package/dist/types/abi/compressors/subcompressors/withdrawal/mellowFlexibleRedeemSubcompressor.d.ts +197 -194
  1773. package/dist/types/abi/compressors/subcompressors/withdrawal/mellowWithdrawalSubcompressor.d.ts +393 -192
  1774. package/dist/types/abi/compressors/subcompressors/withdrawal/midasWithdrawalSubcompressor.d.ts +409 -192
  1775. package/dist/types/abi/compressors/subcompressors/withdrawal/securitizeRedemptionSubcompressor.d.ts +409 -192
  1776. package/dist/types/abi/compressors/subcompressors/withdrawal/upshiftWithdrawalSubcompressor.d.ts +201 -198
  1777. package/dist/types/abi/compressors/tokenCompressor.d.ts +96 -93
  1778. package/dist/types/abi/compressors/withdrawalCompressor.d.ts +721 -339
  1779. package/dist/types/abi/errors.d.ts +1308 -1305
  1780. package/dist/types/abi/governance/batchesChain.d.ts +31 -28
  1781. package/dist/types/abi/governance/governor.d.ts +578 -575
  1782. package/dist/types/abi/governance/iTimeLock.d.ts +309 -306
  1783. package/dist/types/abi/helpers/redemptionLogger.d.ts +170 -0
  1784. package/dist/types/abi/iAirdropDistributor.d.ts +108 -105
  1785. package/dist/types/abi/iBaseRewardPool.d.ts +393 -390
  1786. package/dist/types/abi/iCurvePool.d.ts +22 -19
  1787. package/dist/types/abi/iDefaultAccountFactoryV3.d.ts +167 -164
  1788. package/dist/types/abi/iDegenNFTV2.d.ts +343 -340
  1789. package/dist/types/abi/iERC20.d.ts +163 -160
  1790. package/dist/types/abi/iERC20Permit.d.ts +59 -56
  1791. package/dist/types/abi/iERC20Zapper.d.ts +366 -363
  1792. package/dist/types/abi/iERC20ZapperDeposits.d.ts +190 -187
  1793. package/dist/types/abi/iETHZapper.d.ts +210 -207
  1794. package/dist/types/abi/iETHZapperDeposits.d.ts +34 -31
  1795. package/dist/types/abi/iFarmingPool.d.ts +274 -271
  1796. package/dist/types/abi/iInterestRateModel.d.ts +30 -27
  1797. package/dist/types/abi/iMulticall3.d.ts +303 -300
  1798. package/dist/types/abi/iOffchainOracle.d.ts +42 -39
  1799. package/dist/types/abi/iPausable.d.ts +31 -28
  1800. package/dist/types/abi/iPhantomToken.d.ts +18 -0
  1801. package/dist/types/abi/iPriceFeed.d.ts +83 -80
  1802. package/dist/types/abi/iRedemptionLoggerV310.d.ts +125 -0
  1803. package/dist/types/abi/iStateSerializer.d.ts +13 -10
  1804. package/dist/types/abi/iUpdatablePriceFeed.d.ts +22 -19
  1805. package/dist/types/abi/iVersion.d.ts +22 -19
  1806. package/dist/types/abi/iZapper.d.ts +180 -177
  1807. package/dist/types/abi/ierc4626Adapter.d.ts +182 -0
  1808. package/dist/types/abi/mellow.d.ts +3864 -3861
  1809. package/dist/types/abi/migration.d.ts +625 -622
  1810. package/dist/types/abi/router/balancerV2Worker.d.ts +919 -916
  1811. package/dist/types/abi/router/balancerV3Worker.d.ts +919 -916
  1812. package/dist/types/abi/router/balancerV3WrapperWorker.d.ts +690 -687
  1813. package/dist/types/abi/router/camelotV3Worker.d.ts +710 -707
  1814. package/dist/types/abi/router/convexWorker.d.ts +690 -687
  1815. package/dist/types/abi/router/curveWorker.d.ts +909 -906
  1816. package/dist/types/abi/router/daiUsdsWorker.d.ts +690 -687
  1817. package/dist/types/abi/router/equalizerRouterWorker.d.ts +690 -687
  1818. package/dist/types/abi/router/erc4626Worker.d.ts +726 -723
  1819. package/dist/types/abi/router/fluidDexWorker.d.ts +700 -697
  1820. package/dist/types/abi/router/gearboxRouter.d.ts +789 -786
  1821. package/dist/types/abi/router/infinifiWorker.d.ts +690 -687
  1822. package/dist/types/abi/router/infraredVaultWorker.d.ts +690 -687
  1823. package/dist/types/abi/router/kelpLRTDepositPoolWorker.d.ts +690 -687
  1824. package/dist/types/abi/router/kodiakWorker.d.ts +928 -925
  1825. package/dist/types/abi/router/lidoWorker.d.ts +690 -687
  1826. package/dist/types/abi/router/mellow4626Worker.d.ts +713 -710
  1827. package/dist/types/abi/router/mellowDVVWorker.d.ts +690 -687
  1828. package/dist/types/abi/router/mellowVaultWorker.d.ts +700 -697
  1829. package/dist/types/abi/router/midasWorker.d.ts +690 -687
  1830. package/dist/types/abi/router/pendleRouterWorker.d.ts +698 -695
  1831. package/dist/types/abi/router/routingManager.d.ts +449 -446
  1832. package/dist/types/abi/router/securitizeOnrampWorker.d.ts +690 -687
  1833. package/dist/types/abi/router/stakingRewardsWorker.d.ts +690 -687
  1834. package/dist/types/abi/router/traderJoeWorker.d.ts +690 -687
  1835. package/dist/types/abi/router/uniswapV2Worker.d.ts +690 -687
  1836. package/dist/types/abi/router/uniswapV3Worker.d.ts +728 -725
  1837. package/dist/types/abi/router/uniswapV4Worker.d.ts +727 -724
  1838. package/dist/types/abi/router/upshiftWorker.d.ts +690 -687
  1839. package/dist/types/abi/router/velodromeV2Worker.d.ts +690 -687
  1840. package/dist/types/abi/router/wstETHWorker.d.ts +690 -687
  1841. package/dist/types/abi/router/yearnV2Worker.d.ts +690 -687
  1842. package/dist/types/abi/rwa/iDSRegistryService.d.ts +377 -374
  1843. package/dist/types/abi/rwa/iDSToken.d.ts +1500 -1497
  1844. package/dist/types/abi/rwa/iMidasLiquidatorV311.d.ts +83 -0
  1845. package/dist/types/abi/rwa/iRWACompressor.d.ts +208 -205
  1846. package/dist/types/abi/rwa/iRWAFactory.d.ts +130 -127
  1847. package/dist/types/abi/rwa/iRWAGateway.d.ts +18 -0
  1848. package/dist/types/abi/rwa/iRWAUnderlying.d.ts +550 -547
  1849. package/dist/types/abi/rwa/iSecuritizeDegenNFT.d.ts +371 -368
  1850. package/dist/types/abi/rwa/iSecuritizeLiquidatorV311.d.ts +95 -0
  1851. package/dist/types/abi/rwa/iSecuritizeRWAFactory.d.ts +417 -414
  1852. package/dist/types/common-utils/axios-cache/AxiosCache.d.ts +20 -16
  1853. package/dist/types/common-utils/axios-cache/index.d.ts +2 -1
  1854. package/dist/types/common-utils/charts/credit-manager-payload.d.ts +52 -49
  1855. package/dist/types/common-utils/charts/credit-manager.d.ts +50 -47
  1856. package/dist/types/common-utils/charts/credit-session.d.ts +105 -103
  1857. package/dist/types/common-utils/charts/credit-sessions-payload.d.ts +105 -103
  1858. package/dist/types/common-utils/charts/graph-payload.d.ts +9 -7
  1859. package/dist/types/common-utils/charts/index.d.ts +9 -8
  1860. package/dist/types/common-utils/charts/pool-payload.d.ts +107 -104
  1861. package/dist/types/common-utils/charts/pool.d.ts +92 -89
  1862. package/dist/types/common-utils/charts/token-data.d.ts +34 -31
  1863. package/dist/types/common-utils/index.d.ts +117 -4
  1864. package/dist/types/common-utils/static/index.d.ts +5 -4
  1865. package/dist/types/common-utils/static/migration-config.d.ts +12 -9
  1866. package/dist/types/common-utils/static/pool-config.d.ts +13 -10
  1867. package/dist/types/common-utils/static/strategy.d.ts +84 -81
  1868. package/dist/types/common-utils/static/trading-pair.d.ts +17 -14
  1869. package/dist/types/common-utils/test-utils/index.d.ts +17 -14
  1870. package/dist/types/common-utils/utils/apy/bonus-apy-from-points.d.ts +6 -3
  1871. package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.d.ts +5 -2
  1872. package/dist/types/common-utils/utils/apy/calculate-borrow-rate-from-utilization.spec.d.ts +1 -1
  1873. package/dist/types/common-utils/utils/apy/calculate-earnings.d.ts +16 -13
  1874. package/dist/types/common-utils/utils/apy/calculate-earnings.spec.d.ts +1 -1
  1875. package/dist/types/common-utils/utils/apy/calculate-effective-borrow-rate.d.ts +8 -5
  1876. package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.d.ts +10 -7
  1877. package/dist/types/common-utils/utils/apy/calculate-safe-borrow-rate.spec.d.ts +1 -1
  1878. package/dist/types/common-utils/utils/apy/get-complex-apy-list.d.ts +7 -4
  1879. package/dist/types/common-utils/utils/apy/get-rate-with-fee.d.ts +4 -1
  1880. package/dist/types/common-utils/utils/apy/get-safe-base-borrow-rate.d.ts +6 -3
  1881. package/dist/types/common-utils/utils/apy/get-single-quota-borrow-rate.d.ts +7 -4
  1882. package/dist/types/common-utils/utils/apy/index.d.ts +11 -10
  1883. package/dist/types/common-utils/utils/apy/max-apy-formula.d.ts +8 -5
  1884. package/dist/types/common-utils/utils/assets-math.d.ts +105 -102
  1885. package/dist/types/common-utils/utils/constants.d.ts +7 -4
  1886. package/dist/types/common-utils/utils/creditAccount/calc-health-factor.d.ts +17 -13
  1887. package/dist/types/common-utils/utils/creditAccount/calc-overall-apy.d.ts +20 -16
  1888. package/dist/types/common-utils/utils/creditAccount/calc-quota-borrow-rate.d.ts +11 -7
  1889. package/dist/types/common-utils/utils/creditAccount/calc-relative-base-borrow-rate.d.ts +8 -5
  1890. package/dist/types/common-utils/utils/creditAccount/debt.d.ts +16 -12
  1891. package/dist/types/common-utils/utils/creditAccount/get-time-to-liquidation.d.ts +7 -4
  1892. package/dist/types/common-utils/utils/creditAccount/index.d.ts +10 -10
  1893. package/dist/types/common-utils/utils/creditAccount/liquidation-price.d.ts +14 -11
  1894. package/dist/types/common-utils/utils/creditAccount/quota-utils.d.ts +38 -36
  1895. package/dist/types/common-utils/utils/creditAccount/sort.d.ts +12 -8
  1896. package/dist/types/common-utils/utils/creditAccount/types.d.ts +17 -13
  1897. package/dist/types/common-utils/utils/index.d.ts +104 -9
  1898. package/dist/types/common-utils/utils/price-math.d.ts +38 -36
  1899. package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +7 -3
  1900. package/dist/types/common-utils/utils/strategies/assets/index.d.ts +2 -1
  1901. package/dist/types/common-utils/utils/strategies/availability/check-boolean.d.ts +4 -1
  1902. package/dist/types/common-utils/utils/strategies/availability/check-degen-nft.d.ts +7 -4
  1903. package/dist/types/common-utils/utils/strategies/availability/index.d.ts +3 -2
  1904. package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.d.ts +18 -16
  1905. package/dist/types/common-utils/utils/strategies/credit-managers/get-cm-allowed-collaterals.spec.d.ts +1 -1
  1906. package/dist/types/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers-list-core.d.ts +13 -6
  1907. package/dist/types/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers-list.d.ts +10 -2
  1908. package/dist/types/common-utils/utils/strategies/credit-managers/get-strategy-credit-managers.d.ts +10 -6
  1909. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +16 -12
  1910. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.spec.d.ts +1 -1
  1911. package/dist/types/common-utils/utils/strategies/credit-managers/index.d.ts +7 -6
  1912. package/dist/types/common-utils/utils/strategies/credit-managers/is-credit-manager-usable.d.ts +6 -2
  1913. package/dist/types/common-utils/utils/strategies/eligibility/index.d.ts +3 -2
  1914. package/dist/types/common-utils/utils/strategies/eligibility/is-strategy-eligible.d.ts +14 -6
  1915. package/dist/types/common-utils/utils/strategies/eligibility/is-strategy-released.d.ts +4 -1
  1916. package/dist/types/common-utils/utils/strategies/index.d.ts +77 -12
  1917. package/dist/types/common-utils/utils/strategies/leverage/calculate-loss-coefficient.d.ts +4 -1
  1918. package/dist/types/common-utils/utils/strategies/leverage/calculate-max-leverage-factor.d.ts +14 -11
  1919. package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.d.ts +13 -10
  1920. package/dist/types/common-utils/utils/strategies/leverage/calculate-max-strategy-debt.spec.d.ts +1 -1
  1921. package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.d.ts +5 -2
  1922. package/dist/types/common-utils/utils/strategies/leverage/get-collateral-by-debt.spec.d.ts +1 -1
  1923. package/dist/types/common-utils/utils/strategies/leverage/get-factor-from-leverage.d.ts +6 -3
  1924. package/dist/types/common-utils/utils/strategies/leverage/get-leverage-from-factor.d.ts +5 -2
  1925. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.d.ts +22 -19
  1926. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-debt.spec.d.ts +1 -1
  1927. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.d.ts +6 -3
  1928. package/dist/types/common-utils/utils/strategies/leverage/get-recommended-leverage-factor.spec.d.ts +1 -1
  1929. package/dist/types/common-utils/utils/strategies/leverage/index.d.ts +11 -10
  1930. package/dist/types/common-utils/utils/strategies/leverage/max-leverage-threshold.d.ts +7 -4
  1931. package/dist/types/common-utils/utils/strategies/leverage/max-leverage.d.ts +7 -4
  1932. package/dist/types/common-utils/utils/strategies/lists/get-available-and-disabled-strategies.d.ts +13 -6
  1933. package/dist/types/common-utils/utils/strategies/lists/get-available-strategies.d.ts +10 -4
  1934. package/dist/types/common-utils/utils/strategies/lists/get-disabled-strategies.d.ts +11 -4
  1935. package/dist/types/common-utils/utils/strategies/lists/get-released-strategies-list-core.d.ts +15 -8
  1936. package/dist/types/common-utils/utils/strategies/lists/get-released-strategies-list.d.ts +10 -2
  1937. package/dist/types/common-utils/utils/strategies/lists/index.d.ts +4 -3
  1938. package/dist/types/common-utils/utils/strategies/points/get-complex-points-list.d.ts +7 -3
  1939. package/dist/types/common-utils/utils/strategies/points/get-points-info.d.ts +11 -7
  1940. package/dist/types/common-utils/utils/strategies/points/get-points-rates.d.ts +6 -2
  1941. package/dist/types/common-utils/utils/strategies/points/get-strategy-points.d.ts +24 -18
  1942. package/dist/types/common-utils/utils/strategies/points/index.d.ts +5 -4
  1943. package/dist/types/common-utils/utils/strategies/sort-strategy-cms-by-availability/index.d.ts +2 -1
  1944. package/dist/types/common-utils/utils/strategies/sort-strategy-cms-by-availability/sort-strategy-cms-by-availability.d.ts +25 -22
  1945. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +29 -25
  1946. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.spec.d.ts +1 -1
  1947. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +24 -20
  1948. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.spec.d.ts +1 -1
  1949. package/dist/types/common-utils/utils/strategies/strategy-info/cm-availability-condition.d.ts +6 -3
  1950. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.d.ts +21 -18
  1951. package/dist/types/common-utils/utils/strategies/strategy-info/get-cm-you-can-earn.spec.d.ts +1 -1
  1952. package/dist/types/common-utils/utils/strategies/strategy-info/get-strategy-info-core.d.ts +20 -15
  1953. package/dist/types/common-utils/utils/strategies/strategy-info/get-strategy-info.d.ts +5 -2
  1954. package/dist/types/common-utils/utils/strategies/strategy-info/get-strategy-max-apy.d.ts +15 -13
  1955. package/dist/types/common-utils/utils/strategies/strategy-info/get-strategy-you-can-earn.d.ts +27 -25
  1956. package/dist/types/common-utils/utils/strategies/strategy-info/index.d.ts +11 -10
  1957. package/dist/types/common-utils/utils/strategies/strategy-info/is-strategy-cm-disabled.d.ts +5 -2
  1958. package/dist/types/common-utils/utils/strategies/strategy-info/types.d.ts +103 -99
  1959. package/dist/types/common-utils/utils/strategies/strategy-state/index.d.ts +2 -1
  1960. package/dist/types/common-utils/utils/strategies/strategy-state/is-strategy-disabled.d.ts +7 -3
  1961. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +9 -5
  1962. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.spec.d.ts +1 -1
  1963. package/dist/types/common-utils/utils/strategies/tokens/get-chain-phantom-tokens.d.ts +6 -4
  1964. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +14 -10
  1965. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.spec.d.ts +1 -1
  1966. package/dist/types/common-utils/utils/strategies/tokens/get-native-token-address.d.ts +4 -1
  1967. package/dist/types/common-utils/utils/strategies/tokens/index.d.ts +13 -12
  1968. package/dist/types/common-utils/utils/strategies/tokens/is-activated-token.d.ts +9 -5
  1969. package/dist/types/common-utils/utils/strategies/tokens/is-apy-with-points-exception.d.ts +6 -3
  1970. package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.d.ts +15 -13
  1971. package/dist/types/common-utils/utils/strategies/tokens/is-collateral-token.spec.d.ts +1 -1
  1972. package/dist/types/common-utils/utils/strategies/tokens/is-forbidden-token.d.ts +8 -5
  1973. package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.d.ts +10 -7
  1974. package/dist/types/common-utils/utils/strategies/tokens/is-obtainable-token.spec.d.ts +1 -1
  1975. package/dist/types/common-utils/utils/strategies/tokens/is-usable-token.d.ts +6 -2
  1976. package/dist/types/common-utils/utils/strategies/tokens/is-valid-extra-collateral-token.d.ts +19 -16
  1977. package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.d.ts +5 -2
  1978. package/dist/types/common-utils/utils/strategies/tokens/wrap-token-address.spec.d.ts +1 -1
  1979. package/dist/types/common-utils/utils/strategies/types/chains.d.ts +6 -2
  1980. package/dist/types/common-utils/utils/strategies/types/credit-manager-data-legacy.d.ts +31 -28
  1981. package/dist/types/common-utils/utils/strategies/types/curator-filter.d.ts +5 -2
  1982. package/dist/types/common-utils/utils/strategies/types/index.d.ts +13 -12
  1983. package/dist/types/common-utils/utils/strategies/types/legacy-strategy-data-source.d.ts +7 -4
  1984. package/dist/types/common-utils/utils/strategies/types/points-slices.d.ts +21 -17
  1985. package/dist/types/common-utils/utils/strategies/types/sdk-state.d.ts +16 -13
  1986. package/dist/types/common-utils/utils/strategies/types/strategies-cm-list.d.ts +9 -5
  1987. package/dist/types/common-utils/utils/strategies/types/strategy-data-source.d.ts +20 -17
  1988. package/dist/types/common-utils/utils/strategies/types/strategy-data.d.ts +17 -14
  1989. package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +43 -39
  1990. package/dist/types/common-utils/utils/strategies/types/strategy.d.ts +17 -13
  1991. package/dist/types/common-utils/utils/strategies/types/targetable.d.ts +8 -5
  1992. package/dist/types/common-utils/utils/strategies/types.d.ts +14 -1
  1993. package/dist/types/common-utils/utils/trace.d.ts +25 -22
  1994. package/dist/types/common-utils/utils/validation/index.d.ts +12 -11
  1995. package/dist/types/common-utils/utils/validation/is-zero-balance.d.ts +4 -1
  1996. package/dist/types/common-utils/utils/validation/validate-balance.d.ts +20 -17
  1997. package/dist/types/common-utils/utils/validation/validate-balance.spec.d.ts +1 -1
  1998. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +12 -8
  1999. package/dist/types/common-utils/utils/validation/validate-balances.spec.d.ts +1 -1
  2000. package/dist/types/common-utils/utils/validation/validate-credit-manager.d.ts +11 -8
  2001. package/dist/types/common-utils/utils/validation/validate-credit-manager.spec.d.ts +1 -1
  2002. package/dist/types/common-utils/utils/validation/validate-hf.d.ts +10 -7
  2003. package/dist/types/common-utils/utils/validation/validate-hf.spec.d.ts +1 -1
  2004. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.d.ts +9 -6
  2005. package/dist/types/common-utils/utils/validation/validate-open-account-pool-quota-status.spec.d.ts +1 -1
  2006. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.d.ts +22 -19
  2007. package/dist/types/common-utils/utils/validation/validate-open-account-pool-status.spec.d.ts +1 -1
  2008. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +21 -17
  2009. package/dist/types/common-utils/utils/validation/validate-open-account.spec.d.ts +1 -1
  2010. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +20 -16
  2011. package/dist/types/common-utils/utils/validation/validate-quota.spec.d.ts +1 -1
  2012. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +15 -11
  2013. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.spec.d.ts +1 -1
  2014. package/dist/types/common-utils/utils/validation/validation-types.d.ts +5 -9
  2015. package/dist/types/dev/AccountOpener.d.ts +99 -95
  2016. package/dist/types/dev/EthCallSpy.d.ts +25 -21
  2017. package/dist/types/dev/RevolverTransport.d.ts +192 -189
  2018. package/dist/types/dev/abi.d.ts +198 -195
  2019. package/dist/types/dev/calcLiquidatableLTs.d.ts +9 -3
  2020. package/dist/types/dev/claimFromFaucet.d.ts +27 -23
  2021. package/dist/types/dev/create2.d.ts +45 -41
  2022. package/dist/types/dev/createAnvilClient.d.ts +68 -69
  2023. package/dist/types/dev/detectChain.d.ts +5 -2
  2024. package/dist/types/dev/index.d.ts +29 -23
  2025. package/dist/types/dev/isOutOfSyncError.d.ts +4 -1
  2026. package/dist/types/dev/isRateLimitError.d.ts +4 -1
  2027. package/dist/types/dev/isTransientError.d.ts +4 -1
  2028. package/dist/types/dev/kycUtils.d.ts +141 -0
  2029. package/dist/types/dev/logSplitterTransport.d.ts +24 -22
  2030. package/dist/types/dev/ltUtils.d.ts +10 -5
  2031. package/dist/types/dev/midasUtils.d.ts +68 -0
  2032. package/dist/types/dev/migrateFaucet.d.ts +7 -3
  2033. package/dist/types/dev/mint/AbstractMinter.d.ts +19 -14
  2034. package/dist/types/dev/mint/DealMinter.d.ts +7 -4
  2035. package/dist/types/dev/mint/DirectMinter.d.ts +7 -4
  2036. package/dist/types/dev/mint/FallbackMinter.d.ts +12 -8
  2037. package/dist/types/dev/mint/TransferMinter.d.ts +7 -4
  2038. package/dist/types/dev/mint/factory.d.ts +9 -5
  2039. package/dist/types/dev/mint/index.d.ts +3 -2
  2040. package/dist/types/dev/mint/types.d.ts +22 -19
  2041. package/dist/types/dev/providers.d.ts +18 -14
  2042. package/dist/types/dev/replaceStorage.d.ts +18 -16
  2043. package/dist/types/dev/resilientTransport.d.ts +14 -11
  2044. package/dist/types/dev/securitizeUtils.d.ts +67 -0
  2045. package/dist/types/dev/transports.d.ts +17 -14
  2046. package/dist/types/dev/types.d.ts +14 -11
  2047. package/dist/types/dev/verifyTestnet.d.ts +11 -8
  2048. package/dist/types/dev/withdrawalAbi.d.ts +1611 -0
  2049. package/dist/types/dev/withdrawalUtils.d.ts +27 -0
  2050. package/dist/types/history/assembleOperations.d.ts +28 -20
  2051. package/dist/types/history/classifyMulticallOperations.d.ts +35 -27
  2052. package/dist/types/history/index.d.ts +7 -5
  2053. package/dist/types/history/mapOperations.d.ts +19 -15
  2054. package/dist/types/history/parseCreditAccountTransaction.d.ts +27 -23
  2055. package/dist/types/history/populateContractsRegister.d.ts +22 -15
  2056. package/dist/types/history/toLegacyOperation.d.ts +18 -15
  2057. package/dist/types/history/types.d.ts +21 -16
  2058. package/dist/types/model/history.d.ts +105 -0
  2059. package/dist/types/model/history.schema.d.ts +66 -0
  2060. package/dist/types/model/index.d.ts +11 -0
  2061. package/dist/types/model/liquidations.d.ts +238 -0
  2062. package/dist/types/model/liquidations.schema.d.ts +294 -0
  2063. package/dist/types/model/opportunities.d.ts +584 -0
  2064. package/dist/types/model/opportunities.schema.d.ts +1037 -0
  2065. package/dist/types/model/positions.d.ts +247 -0
  2066. package/dist/types/model/positions.schema.d.ts +701 -0
  2067. package/dist/types/model/primitives.d.ts +194 -0
  2068. package/dist/types/model/primitives.schema.d.ts +81 -0
  2069. package/dist/types/new-sdk/AbstractNamespace.d.ts +119 -0
  2070. package/dist/types/new-sdk/GearboxSDK.d.ts +78 -0
  2071. package/dist/types/new-sdk/index.d.ts +9 -0
  2072. package/dist/types/new-sdk/opportunities/OpportunitiesNamespace.d.ts +69 -0
  2073. package/dist/types/new-sdk/opportunities/index.d.ts +3 -0
  2074. package/dist/types/new-sdk/opportunities/types.d.ts +66 -0
  2075. package/dist/types/new-sdk/types.d.ts +149 -0
  2076. package/dist/types/new-sdk/utils/history.d.ts +44 -0
  2077. package/dist/types/new-sdk/utils/index.d.ts +2 -0
  2078. package/dist/types/offchain/GearboxAPI.d.ts +31 -0
  2079. package/dist/types/offchain/index.d.ts +5 -0
  2080. package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +69 -0
  2081. package/dist/types/offchain/opportunities/index.d.ts +2 -0
  2082. package/dist/types/offchain/types.d.ts +50 -0
  2083. package/dist/types/permissionless/bindings/address-provider.d.ts +11 -7
  2084. package/dist/types/permissionless/bindings/bytecode-repository.d.ts +1307 -1303
  2085. package/dist/types/permissionless/bindings/compressors/index.d.ts +3 -2
  2086. package/dist/types/permissionless/bindings/compressors/token-compressor.d.ts +111 -108
  2087. package/dist/types/permissionless/bindings/compressors/withdrawal-compressor.d.ts +727 -344
  2088. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +807 -802
  2089. package/dist/types/permissionless/bindings/factory/abstract-factory.d.ts +19 -16
  2090. package/dist/types/permissionless/bindings/factory/credit-factory.d.ts +207 -205
  2091. package/dist/types/permissionless/bindings/factory/loss-policy-factory.d.ts +129 -127
  2092. package/dist/types/permissionless/bindings/factory/pool-factory.d.ts +79 -77
  2093. package/dist/types/permissionless/bindings/factory/price-oracle-factory.d.ts +35 -33
  2094. package/dist/types/permissionless/bindings/factory/rate-keeper-factory.d.ts +181 -0
  2095. package/dist/types/permissionless/bindings/governance/batches-chain.d.ts +37 -33
  2096. package/dist/types/permissionless/bindings/governance/governor.d.ts +606 -602
  2097. package/dist/types/permissionless/bindings/governance/index.d.ts +4 -3
  2098. package/dist/types/permissionless/bindings/governance/timelock.d.ts +12 -8
  2099. package/dist/types/permissionless/bindings/governance/types.d.ts +40 -36
  2100. package/dist/types/permissionless/bindings/index.d.ts +20 -13
  2101. package/dist/types/permissionless/bindings/instance-manager.d.ts +336 -331
  2102. package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +243 -240
  2103. package/dist/types/permissionless/bindings/market-configurator.d.ts +1664 -1660
  2104. package/dist/types/permissionless/bindings/price-feed-store.d.ts +596 -589
  2105. package/dist/types/permissionless/bindings/pricefeeds/balancer-stable.d.ts +6 -2
  2106. package/dist/types/permissionless/bindings/pricefeeds/balancer-weighted.d.ts +6 -2
  2107. package/dist/types/permissionless/bindings/pricefeeds/bounded.d.ts +6 -2
  2108. package/dist/types/permissionless/bindings/pricefeeds/composite.d.ts +6 -2
  2109. package/dist/types/permissionless/bindings/pricefeeds/constant.d.ts +6 -2
  2110. package/dist/types/permissionless/bindings/pricefeeds/curve-crypto.d.ts +6 -2
  2111. package/dist/types/permissionless/bindings/pricefeeds/curve-stable.d.ts +6 -2
  2112. package/dist/types/permissionless/bindings/pricefeeds/curve-twap.d.ts +6 -2
  2113. package/dist/types/permissionless/bindings/pricefeeds/curve-usd.d.ts +6 -2
  2114. package/dist/types/permissionless/bindings/pricefeeds/erc4626.d.ts +6 -2
  2115. package/dist/types/permissionless/bindings/pricefeeds/external.d.ts +6 -2
  2116. package/dist/types/permissionless/bindings/pricefeeds/index.d.ts +6 -2
  2117. package/dist/types/permissionless/bindings/pricefeeds/kodiak.d.ts +6 -2
  2118. package/dist/types/permissionless/bindings/pricefeeds/mellow-lrt.d.ts +6 -2
  2119. package/dist/types/permissionless/bindings/pricefeeds/pendle-pt-twap.d.ts +6 -2
  2120. package/dist/types/permissionless/bindings/pricefeeds/pyth.d.ts +6 -2
  2121. package/dist/types/permissionless/bindings/pricefeeds/redstone.d.ts +6 -2
  2122. package/dist/types/permissionless/bindings/pricefeeds/wsteth.d.ts +6 -2
  2123. package/dist/types/permissionless/bindings/pricefeeds/zero.d.ts +6 -2
  2124. package/dist/types/permissionless/bindings/router/index.d.ts +2 -1
  2125. package/dist/types/permissionless/bindings/router/routing-manager.d.ts +455 -451
  2126. package/dist/types/permissionless/bindings/treasury-splitter.d.ts +360 -356
  2127. package/dist/types/permissionless/bindings/types.d.ts +55 -52
  2128. package/dist/types/permissionless/chains/archive-transport.d.ts +48 -45
  2129. package/dist/types/permissionless/chains/chunked-log-transport.d.ts +9 -7
  2130. package/dist/types/permissionless/core/auditor.d.ts +9 -6
  2131. package/dist/types/permissionless/core/bytecode.d.ts +32 -29
  2132. package/dist/types/permissionless/core/index.d.ts +7 -6
  2133. package/dist/types/permissionless/core/pricefeed-builder.d.ts +45 -42
  2134. package/dist/types/permissionless/core/pricefeed.d.ts +12 -9
  2135. package/dist/types/permissionless/core/proposal.d.ts +27 -23
  2136. package/dist/types/permissionless/core/raw-tx.d.ts +6 -3
  2137. package/dist/types/permissionless/deployment/addresses.d.ts +9 -6
  2138. package/dist/types/permissionless/deployment/mainnet.d.ts +12 -9
  2139. package/dist/types/permissionless/index.d.ts +43 -7
  2140. package/dist/types/permissionless/plugins/index.d.ts +4 -3
  2141. package/dist/types/permissionless/plugins/irm/constructor-params-abi.d.ts +30 -28
  2142. package/dist/types/permissionless/plugins/loss-policies/constructor-params-abi.d.ts +20 -18
  2143. package/dist/types/permissionless/plugins/rate-keepers/constructor-params-abi.d.ts +25 -23
  2144. package/dist/types/permissionless/utils/abi-encoder.d.ts +9 -6
  2145. package/dist/types/permissionless/utils/block-utils.d.ts +5 -2
  2146. package/dist/types/permissionless/utils/create2.d.ts +14 -10
  2147. package/dist/types/permissionless/utils/format.d.ts +9 -6
  2148. package/dist/types/permissionless/utils/governance/batch.d.ts +20 -15
  2149. package/dist/types/permissionless/utils/governance/index.d.ts +4 -3
  2150. package/dist/types/permissionless/utils/governance/timelock-txs.d.ts +6 -2
  2151. package/dist/types/permissionless/utils/governance/types.d.ts +22 -18
  2152. package/dist/types/permissionless/utils/index.d.ts +16 -8
  2153. package/dist/types/permissionless/utils/literals.d.ts +10 -7
  2154. package/dist/types/permissionless/utils/price-update/get-price-feeds.d.ts +12 -8
  2155. package/dist/types/permissionless/utils/price-update/get-price-update-tx.d.ts +11 -7
  2156. package/dist/types/permissionless/utils/price-update/get-prices.d.ts +9 -6
  2157. package/dist/types/permissionless/utils/price-update/get-updatable-feeds.d.ts +12 -7
  2158. package/dist/types/permissionless/utils/price-update/index.d.ts +5 -4
  2159. package/dist/types/permissionless/utils/signature.d.ts +5 -2
  2160. package/dist/types/plugins/accounts/AccountsPlugin.d.ts +24 -18
  2161. package/dist/types/plugins/accounts/index.d.ts +2 -1
  2162. package/dist/types/plugins/accounts-counter/AccountsCounterPlugin.d.ts +22 -17
  2163. package/dist/types/plugins/accounts-counter/index.d.ts +2 -1
  2164. package/dist/types/plugins/adapters/AdaptersPlugin.d.ts +15 -10
  2165. package/dist/types/plugins/adapters/abi/actionAbi.d.ts +13 -9
  2166. package/dist/types/plugins/adapters/abi/adapters/erc4626ReferralAdapter.d.ts +234 -0
  2167. package/dist/types/plugins/adapters/abi/adapters/iBalancerV3RouterAdapter.d.ts +317 -0
  2168. package/dist/types/plugins/adapters/abi/adapters/iBalancerV3WrapperAdapter.d.ts +120 -0
  2169. package/dist/types/plugins/adapters/abi/adapters/iCamelotV3Adapter.d.ts +431 -0
  2170. package/dist/types/plugins/adapters/abi/adapters/iConvexV1BaseRewardPoolAdapter.d.ts +274 -0
  2171. package/dist/types/plugins/adapters/abi/adapters/iConvexV1BoosterAdapter.d.ts +207 -0
  2172. package/dist/types/plugins/adapters/abi/adapters/iCurveV1StableNgAdapter.d.ts +522 -0
  2173. package/dist/types/plugins/adapters/abi/adapters/iCurveV1_2AssetsAdapter.d.ts +522 -0
  2174. package/dist/types/plugins/adapters/abi/adapters/iCurveV1_3AssetsAdapter.d.ts +522 -0
  2175. package/dist/types/plugins/adapters/abi/adapters/iCurveV1_4AssetsAdapter.d.ts +522 -0
  2176. package/dist/types/plugins/adapters/abi/adapters/iDaiUsdsAdapter.d.ts +138 -0
  2177. package/dist/types/plugins/adapters/abi/adapters/iFluidDexAdapter.d.ts +122 -0
  2178. package/dist/types/plugins/adapters/abi/adapters/iInfinifiGatewayAdapter.d.ts +341 -0
  2179. package/dist/types/plugins/adapters/abi/adapters/iInfinifiUnwindingGateway.d.ts +349 -0
  2180. package/dist/types/plugins/adapters/abi/adapters/iKelpLrtDepositPool.d.ts +236 -0
  2181. package/dist/types/plugins/adapters/abi/adapters/iKelpLrtWithdrawalManager.d.ts +352 -0
  2182. package/dist/types/plugins/adapters/abi/adapters/iLidoV1Adapter.d.ts +112 -0
  2183. package/dist/types/plugins/adapters/abi/adapters/iMellow4626VaultAdapter.d.ts +186 -0
  2184. package/dist/types/plugins/adapters/abi/adapters/iMellowClaimerAdapter.d.ts +250 -0
  2185. package/dist/types/plugins/adapters/abi/adapters/iMellowWrapperAdapter.d.ts +154 -0
  2186. package/dist/types/plugins/adapters/abi/adapters/iMidasGatewayAdapterV311.d.ts +348 -0
  2187. package/dist/types/plugins/adapters/abi/adapters/iMidasIssuanceVaultAdapterV310.d.ts +183 -0
  2188. package/dist/types/plugins/adapters/abi/adapters/iMidasRedemptionVaultAdapterV310.d.ts +456 -0
  2189. package/dist/types/plugins/adapters/abi/adapters/iPendleRouterAdapter.d.ts +1369 -0
  2190. package/dist/types/plugins/adapters/abi/adapters/iSecuritizeOnRampAdapterV310.d.ts +110 -0
  2191. package/dist/types/plugins/adapters/abi/adapters/iSecuritizeRedemptionGatewayAdapterV311.d.ts +254 -0
  2192. package/dist/types/plugins/adapters/abi/adapters/iStakingRewardsAdapter.d.ts +200 -0
  2193. package/dist/types/plugins/adapters/abi/adapters/iTraderJoeRouterAdapter.d.ts +336 -0
  2194. package/dist/types/plugins/adapters/abi/adapters/iUniswapV2Adapter.d.ts +205 -0
  2195. package/dist/types/plugins/adapters/abi/adapters/iUniswapV3Adapter.d.ts +370 -0
  2196. package/dist/types/plugins/adapters/abi/adapters/iUniswapV4Adapter.d.ts +393 -0
  2197. package/dist/types/plugins/adapters/abi/adapters/iUpshiftVaultAdapter.d.ts +339 -0
  2198. package/dist/types/plugins/adapters/abi/adapters/iVelodromeV2RouterAdapter.d.ts +235 -0
  2199. package/dist/types/plugins/adapters/abi/adapters/index.d.ts +36 -0
  2200. package/dist/types/plugins/adapters/abi/adapters/iwstEthv1Adapter.d.ts +120 -0
  2201. package/dist/types/plugins/adapters/abi/adapters/mellowDvvAdapter.d.ts +224 -0
  2202. package/dist/types/plugins/adapters/abi/conctructorAbi.d.ts +5 -2
  2203. package/dist/types/plugins/adapters/abi/conctructorAbiPatterns.d.ts +86 -109
  2204. package/dist/types/plugins/adapters/abi/index.d.ts +47 -5
  2205. package/dist/types/plugins/adapters/abi/midas/iMidasGatewayV311.d.ts +264 -0
  2206. package/dist/types/plugins/adapters/abi/midas/index.d.ts +2 -0
  2207. package/dist/types/plugins/adapters/abi/securitize/iBaseOnRamp.d.ts +257 -254
  2208. package/dist/types/plugins/adapters/abi/securitize/iSecuritizeOnRamp.d.ts +65 -62
  2209. package/dist/types/plugins/adapters/abi/securitize/iSecuritizeRedemptionGatewayV311.d.ts +224 -0
  2210. package/dist/types/plugins/adapters/abi/securitize/index.d.ts +4 -5
  2211. package/dist/types/plugins/adapters/abi/targetContractAbi.d.ts +7702 -8175
  2212. package/dist/types/plugins/adapters/abi/utils.d.ts +10 -7
  2213. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +119 -51
  2214. package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +22 -0
  2215. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +433 -430
  2216. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +430 -426
  2217. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +154 -150
  2218. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +635 -631
  2219. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +692 -687
  2220. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +394 -389
  2221. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1774 -1774
  2222. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1774 -1774
  2223. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1774 -1774
  2224. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1761 -1761
  2225. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1744 -1744
  2226. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +194 -189
  2227. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +680 -669
  2228. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +282 -277
  2229. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +238 -234
  2230. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +482 -478
  2231. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +330 -328
  2232. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +249 -245
  2233. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +347 -345
  2234. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +216 -211
  2235. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +276 -272
  2236. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +712 -707
  2237. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +692 -674
  2238. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +198 -194
  2239. package/dist/types/plugins/adapters/contracts/MidasGatewayAdapterContract.d.ts +655 -0
  2240. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +219 -215
  2241. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +481 -474
  2242. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +2239 -2235
  2243. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +446 -442
  2244. package/dist/types/plugins/adapters/contracts/SecuritizeRedemptionGatewayAdapterContract.d.ts +507 -385
  2245. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +260 -256
  2246. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +459 -455
  2247. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +967 -962
  2248. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +532 -528
  2249. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +387 -382
  2250. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +333 -329
  2251. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +333 -329
  2252. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +369 -364
  2253. package/dist/types/plugins/adapters/contracts/index.d.ts +40 -44
  2254. package/dist/types/plugins/adapters/createAdapter.d.ts +9 -4
  2255. package/dist/types/plugins/adapters/index.d.ts +90 -7
  2256. package/dist/types/plugins/adapters/legacyAdapterOperations.d.ts +76 -73
  2257. package/dist/types/plugins/adapters/transferHelpers.d.ts +17 -14
  2258. package/dist/types/plugins/adapters/transfers.d.ts +9 -6
  2259. package/dist/types/plugins/adapters/types.d.ts +113 -68
  2260. package/dist/types/plugins/apy/ApyPlugin.d.ts +55 -49
  2261. package/dist/types/plugins/apy/apy-parser.d.ts +10 -5
  2262. package/dist/types/plugins/apy/constants.d.ts +5 -2
  2263. package/dist/types/plugins/apy/index.d.ts +7 -6
  2264. package/dist/types/plugins/apy/pool-apy-types.d.ts +32 -28
  2265. package/dist/types/plugins/apy/pool-apy-utils.d.ts +38 -34
  2266. package/dist/types/plugins/apy/strategy-data-source.d.ts +20 -15
  2267. package/dist/types/plugins/apy/types.d.ts +57 -47
  2268. package/dist/types/plugins/bots/BotsPlugin.d.ts +16 -12
  2269. package/dist/types/plugins/bots/PartialLiquidationBotV310Contract.d.ts +195 -191
  2270. package/dist/types/plugins/bots/abi/iPartialLiquidationBotV310.d.ts +176 -173
  2271. package/dist/types/plugins/bots/abi/index.d.ts +2 -1
  2272. package/dist/types/plugins/bots/config.d.ts +12 -8
  2273. package/dist/types/plugins/bots/deserializePartialLiquidationBotParams.d.ts +7 -3
  2274. package/dist/types/plugins/bots/index.d.ts +7 -5
  2275. package/dist/types/plugins/bots/types.d.ts +43 -39
  2276. package/dist/types/plugins/degen-distributors/DegenDistributorsPlugin.d.ts +23 -18
  2277. package/dist/types/plugins/degen-distributors/index.d.ts +3 -2
  2278. package/dist/types/plugins/degen-distributors/types.d.ts +7 -3
  2279. package/dist/types/plugins/delayed-withdrawal/DelayedWithdrawalPlugin.d.ts +24 -19
  2280. package/dist/types/plugins/delayed-withdrawal/index.d.ts +3 -2
  2281. package/dist/types/plugins/delayed-withdrawal/types.d.ts +9 -18
  2282. package/dist/types/plugins/remote-configs/CustomConfigSource.d.ts +14 -11
  2283. package/dist/types/plugins/remote-configs/RemoteConfigSource.d.ts +33 -29
  2284. package/dist/types/plugins/remote-configs/RemoteConfigsPlugin.d.ts +28 -23
  2285. package/dist/types/plugins/remote-configs/index.d.ts +8 -4
  2286. package/dist/types/plugins/remote-configs/types.d.ts +18 -16
  2287. package/dist/types/preview/index.d.ts +41 -3
  2288. package/dist/types/preview/parse/classifyInnerOperations.d.ts +14 -8
  2289. package/dist/types/preview/parse/errors.d.ts +13 -9
  2290. package/dist/types/preview/parse/index.d.ts +13 -7
  2291. package/dist/types/preview/parse/parseFacadeOperationCalldata.d.ts +15 -10
  2292. package/dist/types/preview/parse/parseOperationCalldata.d.ts +10 -19
  2293. package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +16 -15
  2294. package/dist/types/preview/parse/parseRWAFactoryOperationCalldata.d.ts +13 -17
  2295. package/dist/types/preview/parse/types-adapters.d.ts +46 -38
  2296. package/dist/types/preview/parse/types-facades.d.ts +97 -71
  2297. package/dist/types/preview/parse/types-pools.d.ts +113 -110
  2298. package/dist/types/preview/parse/types-rwa.d.ts +27 -35
  2299. package/dist/types/preview/parse/types.d.ts +10 -35
  2300. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +23 -19
  2301. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +23 -20
  2302. package/dist/types/preview/prerequisites/Prerequisite.d.ts +23 -57
  2303. package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +47 -28
  2304. package/dist/types/preview/prerequisites/buildCollateralPrerequisites.d.ts +20 -0
  2305. package/dist/types/preview/prerequisites/buildPartialLiquidationPrerequisites.d.ts +12 -0
  2306. package/dist/types/preview/prerequisites/buildPoolPrerequisites.d.ts +12 -0
  2307. package/dist/types/preview/prerequisites/buildRWAPrerequisites.d.ts +26 -0
  2308. package/dist/types/preview/prerequisites/checkPrerequisites.d.ts +23 -0
  2309. package/dist/types/preview/prerequisites/helpers.d.ts +10 -0
  2310. package/dist/types/preview/prerequisites/index.d.ts +7 -8
  2311. package/dist/types/preview/prerequisites/types.d.ts +42 -69
  2312. package/dist/types/preview/preview/CreditAccountState.d.ts +88 -0
  2313. package/dist/types/preview/preview/applyRWAWrapUnwrap.d.ts +18 -0
  2314. package/dist/types/preview/preview/buildDelayedPreview.d.ts +32 -0
  2315. package/dist/types/preview/preview/detectCloseOrRepay.d.ts +26 -0
  2316. package/dist/types/preview/preview/detectDelayedClaim.d.ts +52 -0
  2317. package/dist/types/preview/preview/detectDelayedOperation.d.ts +36 -0
  2318. package/dist/types/preview/preview/errors.d.ts +7 -4
  2319. package/dist/types/preview/preview/index.d.ts +13 -3
  2320. package/dist/types/preview/preview/previewAdjustCreditAccount.d.ts +18 -0
  2321. package/dist/types/preview/preview/previewCloseOrRepayCreditAccount.d.ts +17 -0
  2322. package/dist/types/preview/preview/previewOpenCreditAccount.d.ts +11 -4
  2323. package/dist/types/preview/preview/previewOperation.d.ts +8 -4
  2324. package/dist/types/preview/preview/previewPoolOperation.d.ts +10 -5
  2325. package/dist/types/preview/preview/replayInnerOperations.d.ts +51 -0
  2326. package/dist/types/preview/preview/replayMulticall.d.ts +44 -0
  2327. package/dist/types/preview/preview/types.d.ts +331 -94
  2328. package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +39 -0
  2329. package/dist/types/preview/simulate/errors.d.ts +24 -21
  2330. package/dist/types/preview/simulate/index.d.ts +7 -10
  2331. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +8 -15
  2332. package/dist/types/preview/simulate/simulateOperation.d.ts +7 -16
  2333. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +11 -3
  2334. package/dist/types/preview/simulate/simulateRWAOperation.d.ts +8 -15
  2335. package/dist/types/preview/simulate/types.d.ts +35 -47
  2336. package/dist/types/preview/trace/errors.d.ts +21 -18
  2337. package/dist/types/preview/trace/extractAdapterCallTraces.d.ts +5 -2
  2338. package/dist/types/preview/trace/extractTransfers.d.ts +39 -35
  2339. package/dist/types/preview/trace/findFacadeCalls.d.ts +9 -5
  2340. package/dist/types/preview/trace/index.d.ts +6 -5
  2341. package/dist/types/preview/trace/types.d.ts +17 -13
  2342. package/dist/types/preview/types.d.ts +68 -0
  2343. package/dist/types/rewards/apy/index.d.ts +3 -2
  2344. package/dist/types/rewards/apy/output-details.d.ts +84 -81
  2345. package/dist/types/rewards/apy/output.d.ts +22 -19
  2346. package/dist/types/rewards/index.d.ts +7 -2
  2347. package/dist/types/rewards/rewards/api.d.ts +34 -31
  2348. package/dist/types/rewards/rewards/common.d.ts +8 -5
  2349. package/dist/types/rewards/rewards/extra-apy.d.ts +33 -24
  2350. package/dist/types/rewards/rewards/index.d.ts +3 -2
  2351. package/dist/types/rewards/rewards/merkl-api.d.ts +41 -39
  2352. package/dist/types/sdk/MultichainSDK.d.ts +150 -121
  2353. package/dist/types/sdk/OnchainSDK.d.ts +278 -238
  2354. package/dist/types/sdk/abi/index.d.ts +2 -1
  2355. package/dist/types/sdk/abi/oracles.d.ts +6475 -6472
  2356. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +257 -220
  2357. package/dist/types/sdk/accounts/index.d.ts +21 -2
  2358. package/dist/types/sdk/accounts/intents/index.d.ts +22 -0
  2359. package/dist/types/sdk/accounts/intents/intents/index.d.ts +8 -0
  2360. package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.d.ts +13 -0
  2361. package/dist/types/sdk/accounts/intents/intents/resume/add-collateral/add-collateral.fixtures.d.ts +38 -0
  2362. package/dist/types/sdk/accounts/intents/intents/resume/close/close.d.ts +26 -0
  2363. package/dist/types/sdk/accounts/intents/intents/resume/close/close.fixtures.d.ts +63 -0
  2364. package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.d.ts +26 -0
  2365. package/dist/types/sdk/accounts/intents/intents/resume/decrease-leverage/decrease-leverage.fixtures.d.ts +86 -0
  2366. package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.d.ts +13 -0
  2367. package/dist/types/sdk/accounts/intents/intents/resume/deposit/deposit.fixtures.d.ts +48 -0
  2368. package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.d.ts +13 -0
  2369. package/dist/types/sdk/accounts/intents/intents/resume/increase-leverage/increase-leverage.fixtures.d.ts +46 -0
  2370. package/dist/types/sdk/accounts/intents/intents/resume/index.d.ts +7 -0
  2371. package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.d.ts +33 -0
  2372. package/dist/types/sdk/accounts/intents/intents/resume/withdraw/withdraw.fixtures.d.ts +68 -0
  2373. package/dist/types/sdk/accounts/intents/operations/add-collateral/index.d.ts +23 -0
  2374. package/dist/types/sdk/accounts/intents/operations/claim-delayed/index.d.ts +55 -0
  2375. package/dist/types/sdk/accounts/intents/operations/close-credit-account/index.d.ts +22 -0
  2376. package/dist/types/sdk/accounts/intents/operations/decrease-debt/index.d.ts +18 -0
  2377. package/dist/types/sdk/accounts/intents/operations/increase-debt/index.d.ts +18 -0
  2378. package/dist/types/sdk/accounts/intents/operations/index.d.ts +14 -0
  2379. package/dist/types/sdk/accounts/intents/operations/quota-update/index.d.ts +24 -0
  2380. package/dist/types/sdk/accounts/intents/operations/repay-credit-account/index.d.ts +32 -0
  2381. package/dist/types/sdk/accounts/intents/operations/start-delayed-withdrawal/index.d.ts +23 -0
  2382. package/dist/types/sdk/accounts/intents/operations/swap/index.d.ts +28 -0
  2383. package/dist/types/sdk/accounts/intents/operations/types.d.ts +21 -0
  2384. package/dist/types/sdk/accounts/intents/operations/unwrap-rwa-collateral/index.d.ts +30 -0
  2385. package/dist/types/sdk/accounts/intents/operations/withdraw-collateral/index.d.ts +36 -0
  2386. package/dist/types/sdk/accounts/intents/operations/wrap-rwa-collateral/index.d.ts +30 -0
  2387. package/dist/types/sdk/accounts/intents/quoters/close.d.ts +43 -0
  2388. package/dist/types/sdk/accounts/intents/quoters/index.d.ts +3 -0
  2389. package/dist/types/sdk/accounts/intents/quoters/swap.d.ts +43 -0
  2390. package/dist/types/sdk/accounts/intents/testing/expect.d.ts +52 -0
  2391. package/dist/types/sdk/accounts/intents/testing/resume.d.ts +84 -0
  2392. package/dist/types/sdk/accounts/intents/testing/sdk-mock.d.ts +90 -0
  2393. package/dist/types/sdk/accounts/intents/types.d.ts +75 -0
  2394. package/dist/types/sdk/accounts/intents/utils/assemble-operation-calls.d.ts +10 -0
  2395. package/dist/types/sdk/accounts/intents/utils/borrowed-amount-plus-interest-and-fees.d.ts +17 -0
  2396. package/dist/types/sdk/accounts/intents/utils/common.d.ts +19 -0
  2397. package/dist/types/sdk/accounts/intents/utils/convert-amount.d.ts +13 -0
  2398. package/dist/types/sdk/accounts/intents/utils/index.d.ts +9 -0
  2399. package/dist/types/sdk/accounts/intents/utils/quotas-for-update.d.ts +35 -0
  2400. package/dist/types/sdk/accounts/intents/utils/simulate-adjust-state.d.ts +19 -0
  2401. package/dist/types/sdk/accounts/intents/utils/simulate-assets.d.ts +21 -0
  2402. package/dist/types/sdk/accounts/intents/utils/with-quota-update.d.ts +16 -0
  2403. package/dist/types/sdk/accounts/liquidations/LiquidationsService.d.ts +46 -0
  2404. package/dist/types/sdk/accounts/liquidations/MultichainLiquidationsService.d.ts +47 -0
  2405. package/dist/types/sdk/accounts/liquidations/constants.d.ts +16 -0
  2406. package/dist/types/sdk/accounts/liquidations/index.d.ts +5 -0
  2407. package/dist/types/sdk/accounts/liquidations/types.d.ts +109 -0
  2408. package/dist/types/sdk/accounts/multicall-utils.d.ts +11 -7
  2409. package/dist/types/sdk/accounts/types.d.ts +1072 -909
  2410. package/dist/types/sdk/accounts/withdrawal-compressor/AbstractWithdrawalCompressorContract.d.ts +114 -0
  2411. package/dist/types/sdk/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.d.ts +152 -0
  2412. package/dist/types/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.d.ts +336 -0
  2413. package/dist/types/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.d.ts +340 -0
  2414. package/dist/types/sdk/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.d.ts +655 -0
  2415. package/dist/types/sdk/accounts/withdrawal-compressor/addresses.d.ts +23 -0
  2416. package/dist/types/sdk/accounts/withdrawal-compressor/createRedemptionLogger.d.ts +13 -0
  2417. package/dist/types/sdk/accounts/withdrawal-compressor/createWithdrawalCompressor.d.ts +13 -0
  2418. package/dist/types/sdk/accounts/withdrawal-compressor/errors.d.ts +16 -0
  2419. package/dist/types/sdk/accounts/withdrawal-compressor/index.d.ts +12 -0
  2420. package/dist/types/sdk/accounts/withdrawal-compressor/intent-codec.d.ts +29 -0
  2421. package/dist/types/sdk/accounts/withdrawal-compressor/types.d.ts +458 -0
  2422. package/dist/types/sdk/base/BaseContract.d.ts +173 -156
  2423. package/dist/types/sdk/base/ChainContractsRegister.d.ts +120 -101
  2424. package/dist/types/sdk/base/Construct.d.ts +54 -49
  2425. package/dist/types/sdk/base/MultichainConstruct.d.ts +57 -0
  2426. package/dist/types/sdk/base/PlaceholderContract.d.ts +7 -6
  2427. package/dist/types/sdk/base/SDKConstruct.d.ts +9 -5
  2428. package/dist/types/sdk/base/TokensMeta.d.ts +121 -91
  2429. package/dist/types/sdk/base/errors.d.ts +5 -2
  2430. package/dist/types/sdk/base/index.d.ts +11 -9
  2431. package/dist/types/sdk/base/token-types.d.ts +48 -46
  2432. package/dist/types/sdk/base/types.d.ts +321 -295
  2433. package/dist/types/sdk/chain/chains.d.ts +137 -67
  2434. package/dist/types/sdk/chain/detectNetwork.d.ts +6 -3
  2435. package/dist/types/sdk/chain/index.d.ts +3 -2
  2436. package/dist/types/sdk/constants/address-provider.d.ts +39 -35
  2437. package/dist/types/sdk/constants/addresses.d.ts +8 -5
  2438. package/dist/types/sdk/constants/bot-permissions.d.ts +16 -13
  2439. package/dist/types/sdk/constants/index.d.ts +8 -7
  2440. package/dist/types/sdk/constants/math.d.ts +20 -17
  2441. package/dist/types/sdk/constants/networks.d.ts +7 -3
  2442. package/dist/types/sdk/constants/periphery.d.ts +5 -2
  2443. package/dist/types/sdk/constants/versions.d.ts +7 -4
  2444. package/dist/types/sdk/core/AbstractAddressProviderContract.d.ts +36 -30
  2445. package/dist/types/sdk/core/AddressProviderV310Contract.d.ts +241 -239
  2446. package/dist/types/sdk/core/createAddressProvider.d.ts +8 -5
  2447. package/dist/types/sdk/core/errors.d.ts +32 -20
  2448. package/dist/types/sdk/core/index.d.ts +5 -4
  2449. package/dist/types/sdk/core/types.d.ts +68 -63
  2450. package/dist/types/sdk/index.d.ts +161 -15
  2451. package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +1554 -1541
  2452. package/dist/types/sdk/market/MarketRegister.d.ts +120 -110
  2453. package/dist/types/sdk/market/MarketSuite.d.ts +194 -88
  2454. package/dist/types/sdk/market/ZapperRegister.d.ts +44 -37
  2455. package/dist/types/sdk/market/adapters/PlaceholderAdapterContracts.d.ts +16 -12
  2456. package/dist/types/sdk/market/adapters/createAdapter.d.ts +10 -5
  2457. package/dist/types/sdk/market/adapters/index.d.ts +4 -3
  2458. package/dist/types/sdk/market/adapters/types.d.ts +8 -4
  2459. package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +495 -492
  2460. package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +851 -849
  2461. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +27 -22
  2462. package/dist/types/sdk/market/credit/CreditManagerV310Contract.d.ts +1011 -992
  2463. package/dist/types/sdk/market/credit/CreditSuite.d.ts +140 -91
  2464. package/dist/types/sdk/market/credit/createCreditConfigurator.d.ts +8 -4
  2465. package/dist/types/sdk/market/credit/createCreditFacade.d.ts +8 -4
  2466. package/dist/types/sdk/market/credit/createCreditManager.d.ts +8 -4
  2467. package/dist/types/sdk/market/credit/index.d.ts +7 -6
  2468. package/dist/types/sdk/market/credit/types.d.ts +176 -145
  2469. package/dist/types/sdk/market/index.d.ts +68 -10
  2470. package/dist/types/sdk/market/loss-policy/AliasLossPolicyV310Contract.d.ts +269 -265
  2471. package/dist/types/sdk/market/loss-policy/LossPolicyContract.d.ts +124 -119
  2472. package/dist/types/sdk/market/loss-policy/constants.d.ts +7 -4
  2473. package/dist/types/sdk/market/loss-policy/createLossPolicy.d.ts +8 -4
  2474. package/dist/types/sdk/market/loss-policy/index.d.ts +5 -4
  2475. package/dist/types/sdk/market/loss-policy/types.d.ts +17 -12
  2476. package/dist/types/sdk/market/math.d.ts +74 -0
  2477. package/dist/types/sdk/market/oracle/PriceFeedAnswerMap.d.ts +10 -5
  2478. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +111 -81
  2479. package/dist/types/sdk/market/oracle/PriceOracleV310Contract.d.ts +337 -333
  2480. package/dist/types/sdk/market/oracle/createPriceOracle.d.ts +8 -4
  2481. package/dist/types/sdk/market/oracle/index.d.ts +4 -3
  2482. package/dist/types/sdk/market/oracle/types.d.ts +174 -118
  2483. package/dist/types/sdk/market/pool/GaugeContract.d.ts +375 -369
  2484. package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +135 -118
  2485. package/dist/types/sdk/market/pool/PoolQuotaKeeperV310Contract.d.ts +501 -474
  2486. package/dist/types/sdk/market/pool/PoolSuite.d.ts +116 -88
  2487. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +1173 -1150
  2488. package/dist/types/sdk/market/pool/TumblerContract.d.ts +176 -170
  2489. package/dist/types/sdk/market/pool/createInterestRateModel.d.ts +8 -4
  2490. package/dist/types/sdk/market/pool/createPool.d.ts +8 -4
  2491. package/dist/types/sdk/market/pool/createPoolQuotaKeeper.d.ts +8 -4
  2492. package/dist/types/sdk/market/pool/createRateKeeper.d.ts +8 -4
  2493. package/dist/types/sdk/market/pool/index.d.ts +6 -5
  2494. package/dist/types/sdk/market/pool/math.d.ts +57 -0
  2495. package/dist/types/sdk/market/pool/types.d.ts +152 -122
  2496. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +15 -12
  2497. package/dist/types/sdk/market/pricefeeds/AbstractPriceFeed.d.ts +39 -27
  2498. package/dist/types/sdk/market/pricefeeds/BalancerStablePriceFeed.d.ts +9 -6
  2499. package/dist/types/sdk/market/pricefeeds/BalancerWeightedPriceFeed.d.ts +15 -21
  2500. package/dist/types/sdk/market/pricefeeds/BoundedPriceFeed.d.ts +13 -10
  2501. package/dist/types/sdk/market/pricefeeds/CompositePriceFeed.d.ts +12 -10
  2502. package/dist/types/sdk/market/pricefeeds/ConstantPriceFeed.d.ts +11 -9
  2503. package/dist/types/sdk/market/pricefeeds/CurveCryptoPriceFeed.d.ts +9 -6
  2504. package/dist/types/sdk/market/pricefeeds/CurveStablePriceFeed.d.ts +9 -6
  2505. package/dist/types/sdk/market/pricefeeds/CurveUSDPriceFeed.d.ts +9 -6
  2506. package/dist/types/sdk/market/pricefeeds/Erc4626PriceFeed.d.ts +9 -6
  2507. package/dist/types/sdk/market/pricefeeds/ExternalPriceFeed.d.ts +9 -7
  2508. package/dist/types/sdk/market/pricefeeds/MellowLRTPriceFeed.d.ts +9 -6
  2509. package/dist/types/sdk/market/pricefeeds/PendleTWAPPTPriceFeed.d.ts +213 -212
  2510. package/dist/types/sdk/market/pricefeeds/PriceFeedRef.d.ts +32 -27
  2511. package/dist/types/sdk/market/pricefeeds/PriceFeedsRegister.d.ts +166 -157
  2512. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +243 -241
  2513. package/dist/types/sdk/market/pricefeeds/RedstonePriceFeed.d.ts +23 -19
  2514. package/dist/types/sdk/market/pricefeeds/WstETHPriceFeed.d.ts +9 -6
  2515. package/dist/types/sdk/market/pricefeeds/YearnPriceFeed.d.ts +9 -6
  2516. package/dist/types/sdk/market/pricefeeds/ZeroPriceFeed.d.ts +9 -7
  2517. package/dist/types/sdk/market/pricefeeds/getRawPriceUpdates.d.ts +5 -2
  2518. package/dist/types/sdk/market/pricefeeds/index.d.ts +28 -24
  2519. package/dist/types/sdk/market/pricefeeds/isUpdatablePriceFeed.d.ts +5 -2
  2520. package/dist/types/sdk/market/pricefeeds/types.d.ts +98 -82
  2521. package/dist/types/sdk/market/pricefeeds/updates/PriceUpdateTx.d.ts +16 -12
  2522. package/dist/types/sdk/market/pricefeeds/updates/PriceUpdatesCache.d.ts +18 -15
  2523. package/dist/types/sdk/market/pricefeeds/updates/PythAccumulatorUpdateData.d.ts +32 -33
  2524. package/dist/types/sdk/market/pricefeeds/updates/PythUpdater.d.ts +24 -21
  2525. package/dist/types/sdk/market/pricefeeds/updates/RedstoneUpdater.d.ts +25 -22
  2526. package/dist/types/sdk/market/pricefeeds/updates/fetchPythPayloads.d.ts +39 -36
  2527. package/dist/types/sdk/market/pricefeeds/updates/fetchRedstonePayloads.d.ts +53 -50
  2528. package/dist/types/sdk/market/pricefeeds/updates/index.d.ts +7 -6
  2529. package/dist/types/sdk/market/pricefeeds/updates/types.d.ts +29 -25
  2530. package/dist/types/sdk/market/rwa/RWARegistry.d.ts +50 -44
  2531. package/dist/types/sdk/market/rwa/index.d.ts +11 -3
  2532. package/dist/types/sdk/market/rwa/midas/MidasLiquidatorContract.d.ts +93 -0
  2533. package/dist/types/sdk/market/rwa/midas/constants.d.ts +5 -0
  2534. package/dist/types/sdk/market/rwa/midas/index.d.ts +3 -0
  2535. package/dist/types/sdk/market/rwa/securitize/SecuritizeDegenNFT.d.ts +376 -373
  2536. package/dist/types/sdk/market/rwa/securitize/SecuritizeLiquidatorContract.d.ts +104 -0
  2537. package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +480 -468
  2538. package/dist/types/sdk/market/rwa/securitize/constants.d.ts +6 -1
  2539. package/dist/types/sdk/market/rwa/securitize/index.d.ts +5 -3
  2540. package/dist/types/sdk/market/rwa/securitize/types.d.ts +115 -95
  2541. package/dist/types/sdk/market/rwa/types.d.ts +130 -108
  2542. package/dist/types/sdk/market/types.d.ts +11 -8
  2543. package/dist/types/sdk/market/zapper/IERC20ZapperContract.d.ts +385 -382
  2544. package/dist/types/sdk/market/zapper/IETHZapperContract.d.ts +225 -222
  2545. package/dist/types/sdk/market/zapper/ZapperContract.d.ts +33 -28
  2546. package/dist/types/sdk/market/zapper/createZapper.d.ts +7 -4
  2547. package/dist/types/sdk/market/zapper/errors.d.ts +8 -5
  2548. package/dist/types/sdk/market/zapper/index.d.ts +7 -6
  2549. package/dist/types/sdk/market/zapper/types.d.ts +54 -49
  2550. package/dist/types/sdk/opportunities/MultichainOpportunitiesService.d.ts +40 -0
  2551. package/dist/types/sdk/opportunities/OpportunitiesService.d.ts +42 -0
  2552. package/dist/types/sdk/opportunities/index.d.ts +4 -0
  2553. package/dist/types/sdk/options.d.ts +42 -37
  2554. package/dist/types/sdk/plugins/BasePlugin.d.ts +58 -54
  2555. package/dist/types/sdk/plugins/errors.d.ts +6 -3
  2556. package/dist/types/sdk/plugins/index.d.ts +4 -3
  2557. package/dist/types/sdk/plugins/types.d.ts +78 -78
  2558. package/dist/types/sdk/pools/PoolService.d.ts +41 -37
  2559. package/dist/types/sdk/pools/index.d.ts +3 -2
  2560. package/dist/types/sdk/pools/types.d.ts +149 -145
  2561. package/dist/types/sdk/router/AbstractRouterContract.d.ts +38 -31
  2562. package/dist/types/sdk/router/RouterV310Contract.d.ts +830 -824
  2563. package/dist/types/sdk/router/createRouter.d.ts +7 -4
  2564. package/dist/types/sdk/router/helpers.d.ts +9 -6
  2565. package/dist/types/sdk/router/index.d.ts +5 -4
  2566. package/dist/types/sdk/router/types.d.ts +244 -198
  2567. package/dist/types/sdk/types/index.d.ts +6 -4
  2568. package/dist/types/sdk/types/logger.d.ts +13 -10
  2569. package/dist/types/sdk/types/multichain.d.ts +65 -0
  2570. package/dist/types/sdk/types/state-human.d.ts +223 -217
  2571. package/dist/types/sdk/types/state.d.ts +71 -55
  2572. package/dist/types/sdk/types/transactions.d.ts +31 -25
  2573. package/dist/types/sdk/utils/AddressMap.d.ts +92 -85
  2574. package/dist/types/sdk/utils/AddressSet.d.ts +21 -17
  2575. package/dist/types/sdk/utils/AssetsMap.d.ts +47 -0
  2576. package/dist/types/sdk/utils/abi-decode.d.ts +7 -4
  2577. package/dist/types/sdk/utils/bigint-math.d.ts +42 -0
  2578. package/dist/types/sdk/utils/bytes32ToString.d.ts +5 -2
  2579. package/dist/types/sdk/utils/childLogger.d.ts +6 -2
  2580. package/dist/types/sdk/utils/createRawTx.d.ts +7 -3
  2581. package/dist/types/sdk/utils/etherscan.d.ts +14 -9
  2582. package/dist/types/sdk/utils/filterDust.d.ts +16 -12
  2583. package/dist/types/sdk/utils/formatter.d.ts +21 -19
  2584. package/dist/types/sdk/utils/hex.d.ts +5 -2
  2585. package/dist/types/sdk/utils/index.d.ts +20 -17
  2586. package/dist/types/sdk/utils/internal/Hooks.d.ts +11 -8
  2587. package/dist/types/sdk/utils/internal/index.d.ts +2 -1
  2588. package/dist/types/sdk/utils/isDust.d.ts +15 -12
  2589. package/dist/types/sdk/utils/json.d.ts +5 -2
  2590. package/dist/types/sdk/utils/mappers.d.ts +12 -13
  2591. package/dist/types/sdk/utils/retry.d.ts +8 -5
  2592. package/dist/types/sdk/utils/toAddress.d.ts +7 -3
  2593. package/dist/types/sdk/utils/type-utils.d.ts +4 -1
  2594. package/dist/types/sdk/utils/viem/cast.d.ts +10 -2
  2595. package/dist/types/sdk/utils/viem/executeDelegatedMulticalls.d.ts +15 -11
  2596. package/dist/types/sdk/utils/viem/index.d.ts +8 -6
  2597. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +13 -9
  2598. package/dist/types/sdk/utils/viem/simulateCall.d.ts +57 -0
  2599. package/dist/types/sdk/utils/viem/simulateMulticall.d.ts +21 -18
  2600. package/dist/types/sdk/utils/viem/simulateWithPriceUpdates.d.ts +38 -35
  2601. package/dist/types/sdk/utils/viem/watchBlocksAsync.d.ts +29 -27
  2602. package/dist/types/sdk/utils/zod.d.ts +9 -2
  2603. package/package.json +33 -19
  2604. package/dist/cjs/common-utils/utils/bigint-math.js +0 -65
  2605. package/dist/cjs/dev/claimDSToken.js +0 -208
  2606. package/dist/cjs/plugins/adapters/abi/securitize/iSecuritizeOnRampAdapter.js +0 -98
  2607. package/dist/cjs/plugins/adapters/abi/securitize/iSecuritizeRedemptionGateway.js +0 -149
  2608. package/dist/cjs/plugins/adapters/abi/securitize/iSecuritizeRedemptionGatewayAdapter.js +0 -144
  2609. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +0 -116
  2610. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +0 -76
  2611. package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +0 -68
  2612. package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +0 -68
  2613. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +0 -302
  2614. package/dist/cjs/preview/prerequisites/prepareAction.js +0 -48
  2615. package/dist/cjs/preview/prerequisites/runPrerequisites.js +0 -71
  2616. package/dist/cjs/preview/preview/extractExpectedBalanceChanges.js +0 -48
  2617. package/dist/esm/common-utils/utils/bigint-math.js +0 -41
  2618. package/dist/esm/dev/claimDSToken.js +0 -187
  2619. package/dist/esm/plugins/adapters/abi/securitize/iSecuritizeOnRampAdapter.js +0 -74
  2620. package/dist/esm/plugins/adapters/abi/securitize/iSecuritizeRedemptionGateway.js +0 -125
  2621. package/dist/esm/plugins/adapters/abi/securitize/iSecuritizeRedemptionGatewayAdapter.js +0 -120
  2622. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +0 -94
  2623. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +0 -54
  2624. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +0 -46
  2625. package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +0 -46
  2626. package/dist/esm/preview/prerequisites/buildPrerequisites.js +0 -283
  2627. package/dist/esm/preview/prerequisites/prepareAction.js +0 -23
  2628. package/dist/esm/preview/prerequisites/runPrerequisites.js +0 -47
  2629. package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +0 -24
  2630. package/dist/types/common-utils/utils/bigint-math.d.ts +0 -43
  2631. package/dist/types/dev/claimDSToken.d.ts +0 -34
  2632. package/dist/types/plugins/adapters/abi/securitize/iSecuritizeOnRampAdapter.d.ts +0 -107
  2633. package/dist/types/plugins/adapters/abi/securitize/iSecuritizeRedemptionGateway.d.ts +0 -183
  2634. package/dist/types/plugins/adapters/abi/securitize/iSecuritizeRedemptionGatewayAdapter.d.ts +0 -185
  2635. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +0 -1045
  2636. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +0 -26
  2637. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +0 -24
  2638. package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +0 -24
  2639. package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +0 -25
  2640. package/dist/types/preview/prerequisites/prepareAction.d.ts +0 -52
  2641. package/dist/types/preview/prerequisites/runPrerequisites.d.ts +0 -12
  2642. package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +0 -21
@@ -1,1911 +1,1394 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_abi_iBaseRewardPool = require("../../abi/iBaseRewardPool.js");
3
+ const require_abi_ierc4626Adapter = require("../../abi/ierc4626Adapter.js");
4
+ const require_abi_310_generated = require("../../abi/310/generated.js");
5
+ const require_abi_compressors_creditAccountCompressor = require("../../abi/compressors/creditAccountCompressor.js");
6
+ const require_abi_compressors_peripheryCompressor = require("../../abi/compressors/peripheryCompressor.js");
7
+ const require_abi_compressors_rewardsCompressor = require("../../abi/compressors/rewardsCompressor.js");
8
+ const require_abi_rwa_iRWAFactory = require("../../abi/rwa/iRWAFactory.js");
9
+ const require_sdk_utils_AddressMap = require("../utils/AddressMap.js");
10
+ const require_sdk_utils_AddressSet = require("../utils/AddressSet.js");
11
+ const require_sdk_utils_AssetsMap = require("../utils/AssetsMap.js");
12
+ const require_sdk_constants_address_provider = require("../constants/address-provider.js");
13
+ const require_sdk_constants_addresses = require("../constants/addresses.js");
14
+ const require_sdk_constants_math = require("../constants/math.js");
15
+ const require_sdk_constants_versions = require("../constants/versions.js");
16
+ require("../constants/index.js");
17
+ const require_sdk_utils_hex = require("../utils/hex.js");
18
+ require("../utils/index.js");
19
+ const require_sdk_base_SDKConstruct = require("../base/SDKConstruct.js");
20
+ require("../base/index.js");
21
+ const require_sdk_utils_viem_simulateWithPriceUpdates = require("../utils/viem/simulateWithPriceUpdates.js");
22
+ require("../utils/viem/index.js");
23
+ const require_sdk_market_pricefeeds_getRawPriceUpdates = require("../market/pricefeeds/getRawPriceUpdates.js");
24
+ require("../market/index.js");
25
+ const require_sdk_accounts_multicall_utils = require("./multicall-utils.js");
26
+ let viem = require("viem");
27
+ //#region src/sdk/accounts/CreditAccountsServiceV310.ts
28
+ /**
29
+ * Service for querying and operating on Gearbox credit accounts.
30
+ *
31
+ * Provides methods to fetch account data, build transactions for common operations
32
+ * (open, close, liquidate, swap, manage collateral/debt/quotas), and generate
33
+ * the price feed updates required by the credit facade.
34
+ *
35
+ * @see {@link ICreditAccountsService}
36
+ **/
37
+ var CreditAccountsServiceV310 = class extends require_sdk_base_SDKConstruct.SDKConstruct {
38
+ #compressor;
39
+ #batchSize;
40
+ constructor(sdk, options) {
41
+ super(sdk);
42
+ this.#batchSize = options?.batchSize;
43
+ }
44
+ setBatchSize(batchSize) {
45
+ this.#batchSize = batchSize;
46
+ }
47
+ /**
48
+ * {@inheritDoc ICreditAccountsService.getCreditAccountData}
49
+ **/
50
+ async getCreditAccountData(account, blockNumber) {
51
+ let raw;
52
+ try {
53
+ raw = await this.client.readContract({
54
+ abi: require_abi_compressors_creditAccountCompressor.creditAccountCompressorAbi,
55
+ address: this.compressor,
56
+ functionName: "getCreditAccountData",
57
+ args: [account],
58
+ blockNumber,
59
+ gas: this.sdk.gasLimit
60
+ });
61
+ } catch (_e) {
62
+ return;
63
+ }
64
+ const factory = this.sdk.marketRegister.findByCreditManager(raw.creditManager).rwaFactory;
65
+ let ca;
66
+ let investor;
67
+ if (raw.success) {
68
+ ca = raw;
69
+ investor = await factory?.getInvestor(raw.creditAccount, false);
70
+ } else {
71
+ const { txs: priceUpdateTxs } = await this.#getUpdateForAccount(raw);
72
+ [ca, investor] = await require_sdk_utils_viem_simulateWithPriceUpdates.simulateWithPriceUpdates(this.client, {
73
+ priceUpdates: priceUpdateTxs,
74
+ contracts: [{
75
+ abi: require_abi_compressors_creditAccountCompressor.creditAccountCompressorAbi,
76
+ address: this.compressor,
77
+ functionName: "getCreditAccountData",
78
+ args: [account]
79
+ }, ...factory ? [{
80
+ abi: require_abi_rwa_iRWAFactory.iRWAFactoryAbi,
81
+ address: factory.address,
82
+ functionName: "getInvestor",
83
+ args: [raw.creditAccount]
84
+ }] : []],
85
+ blockNumber,
86
+ gas: this.sdk.gasLimit
87
+ });
88
+ }
89
+ return {
90
+ ...ca,
91
+ investor
92
+ };
93
+ }
94
+ /**
95
+ * {@inheritDoc ICreditAccountsService.getCreditAccounts}
96
+ **/
97
+ async getCreditAccounts(options, blockNumber) {
98
+ const { creditManager, includeZeroDebt = false, maxHealthFactor = require_sdk_constants_math.MAX_UINT256, minHealthFactor = 0n, owner = require_sdk_constants_addresses.ADDRESS_0X0, ignoreReservePrices = false } = options ?? {};
99
+ const arg0 = creditManager ?? {
100
+ configurators: this.marketConfigurators,
101
+ creditManagers: [],
102
+ pools: [],
103
+ underlying: "0x0000000000000000000000000000000000000000"
104
+ };
105
+ const caFilter = {
106
+ owner,
107
+ includeZeroDebt,
108
+ minHealthFactor,
109
+ maxHealthFactor,
110
+ reverting: false
111
+ };
112
+ const { txs: priceUpdateTxs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(ignoreReservePrices ? { main: true } : void 0);
113
+ const allCAs = [];
114
+ let revertingOffset = 0;
115
+ for (const reverting of [false, true]) {
116
+ let offset = 0n;
117
+ revertingOffset = allCAs.length;
118
+ do {
119
+ const [accounts, newOffset] = await this.#getCreditAccounts(this.#batchSize ? [
120
+ arg0,
121
+ {
122
+ ...caFilter,
123
+ reverting
124
+ },
125
+ offset,
126
+ BigInt(this.#batchSize)
127
+ ] : [
128
+ arg0,
129
+ {
130
+ ...caFilter,
131
+ reverting
132
+ },
133
+ offset
134
+ ], priceUpdateTxs, blockNumber);
135
+ allCAs.push(...accounts);
136
+ offset = newOffset;
137
+ } while (offset !== 0n);
138
+ }
139
+ this.logger?.debug(`loaded ${allCAs.length} credit accounts (${allCAs.length - revertingOffset} reverting)`);
140
+ return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
141
+ }
142
+ /**
143
+ * {@inheritDoc ICreditAccountsService.getBorrowerCreditAccounts}
144
+ **/
145
+ async getBorrowerCreditAccounts(borrower, options, blockNumber) {
146
+ const { creditManager, includeZeroDebt = false, maxHealthFactor = require_sdk_constants_math.MAX_UINT256, minHealthFactor = 0n, ignoreReservePrices = false } = options ?? {};
147
+ const { txs: priceUpdateTxs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(ignoreReservePrices ? { main: true } : void 0);
148
+ const rwaAccountAddresses = (await this.sdk.rwa.getInvestorData(borrower)).flatMap((d) => d.creditAccounts.map((ca) => ca.creditAccount));
149
+ const cmFilter = creditManager ? {
150
+ configurators: [],
151
+ creditManagers: [creditManager],
152
+ pools: [],
153
+ underlying: require_sdk_constants_addresses.ADDRESS_0X0
154
+ } : {
155
+ configurators: this.marketConfigurators,
156
+ creditManagers: [],
157
+ pools: [],
158
+ underlying: require_sdk_constants_addresses.ADDRESS_0X0
159
+ };
160
+ const permissiveFilter = {
161
+ owner: borrower,
162
+ includeZeroDebt: true,
163
+ minHealthFactor: 0n,
164
+ maxHealthFactor: require_sdk_constants_math.MAX_UINT256,
165
+ reverting: false
166
+ };
167
+ const rwaContracts = rwaAccountAddresses.map((account) => ({
168
+ abi: require_abi_compressors_creditAccountCompressor.creditAccountCompressorAbi,
169
+ address: this.compressor,
170
+ functionName: "getCreditAccountData",
171
+ args: [account]
172
+ }));
173
+ const getCreditAccountsContracts = [false, true].map((reverting) => ({
174
+ abi: require_abi_compressors_creditAccountCompressor.creditAccountCompressorAbi,
175
+ address: this.compressor,
176
+ functionName: "getCreditAccounts",
177
+ args: [
178
+ cmFilter,
179
+ {
180
+ ...permissiveFilter,
181
+ reverting
182
+ },
183
+ 0n
184
+ ]
185
+ }));
186
+ const allContracts = [...rwaContracts, ...getCreditAccountsContracts];
187
+ const results = await require_sdk_utils_viem_simulateWithPriceUpdates.simulateWithPriceUpdates(this.client, {
188
+ priceUpdates: priceUpdateTxs,
189
+ contracts: allContracts,
190
+ blockNumber,
191
+ gas: this.sdk.gasLimit
192
+ });
193
+ const rwaResults = results.slice(0, rwaAccountAddresses.length);
194
+ const normalResults = results.slice(rwaAccountAddresses.length);
195
+ const seen = new require_sdk_utils_AddressSet.AddressSet();
196
+ const allCAs = [];
197
+ for (const ca of rwaResults) if (!seen.has(ca.creditAccount)) {
198
+ seen.add(ca.creditAccount);
199
+ allCAs.push({
200
+ ...ca,
201
+ investor: borrower
202
+ });
203
+ }
204
+ for (const [accounts] of normalResults) for (const ca of accounts) if (!seen.has(ca.creditAccount)) {
205
+ seen.add(ca.creditAccount);
206
+ allCAs.push({
207
+ ...ca,
208
+ investor: void 0
209
+ });
210
+ }
211
+ const filtered = allCAs.filter((ca) => {
212
+ if (!includeZeroDebt && ca.debt === 0n) return false;
213
+ if (ca.healthFactor < minHealthFactor) return false;
214
+ if (ca.healthFactor > maxHealthFactor) return false;
215
+ if (creditManager && !require_sdk_utils_hex.hexEq(ca.creditManager, creditManager)) return false;
216
+ return true;
217
+ });
218
+ this.logger?.debug(`loaded ${allCAs.length} borrower credit accounts (${rwaResults.length} RWA, ${filtered.length} after filter)`);
219
+ return filtered.sort((a, b) => Number(a.healthFactor - b.healthFactor));
220
+ }
221
+ /**
222
+ * {@inheritDoc ICreditAccountsService.getRewards}
223
+ **/
224
+ async getRewards(creditAccount) {
225
+ const rewards = await this.client.readContract({
226
+ abi: require_abi_compressors_rewardsCompressor.rewardsCompressorAbi,
227
+ address: this.rewardCompressor,
228
+ functionName: "getRewards",
229
+ args: [creditAccount]
230
+ });
231
+ const callData = (0, viem.encodeFunctionData)({
232
+ abi: require_abi_iBaseRewardPool.iBaseRewardPoolAbi,
233
+ functionName: "getReward",
234
+ args: []
235
+ });
236
+ const r = rewards.reduce((acc, r) => {
237
+ const adapter = r.adapter.toLowerCase();
238
+ const stakedPhantomToken = r.stakedPhantomToken.toLowerCase();
239
+ const rewardToken = r.rewardToken.toLowerCase();
240
+ const key = [adapter, stakedPhantomToken].join("-");
241
+ if (!acc[key]) acc[key] = {
242
+ adapter,
243
+ stakedPhantomToken,
244
+ calls: [{
245
+ target: adapter,
246
+ callData
247
+ }],
248
+ rewards: []
249
+ };
250
+ acc[key].rewards.push({
251
+ token: rewardToken,
252
+ balance: r.amount
253
+ });
254
+ return acc;
255
+ }, {});
256
+ return Object.values(r);
257
+ }
258
+ /**
259
+ * {@inheritDoc ICreditAccountsService.getConnectedBots}
260
+ **/
261
+ async getConnectedBots(accountsToCheck, legacyMigrationBot, additionalBots) {
262
+ const allResp = await this.client.multicall({
263
+ contracts: [
264
+ ...accountsToCheck.map((o) => {
265
+ const pool = this.sdk.marketRegister.findByCreditManager(o.creditManager);
266
+ return {
267
+ abi: require_abi_compressors_peripheryCompressor.peripheryCompressorAbi,
268
+ address: this.peripheryCompressor,
269
+ functionName: "getConnectedBots",
270
+ args: [pool.configurator.address, o.creditAccount]
271
+ };
272
+ }),
273
+ ...legacyMigrationBot ? accountsToCheck.map((ca) => {
274
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
275
+ return {
276
+ abi: require_abi_310_generated.iBotListV310Abi,
277
+ address: cm.creditFacade.botList,
278
+ functionName: "getBotStatus",
279
+ args: [legacyMigrationBot, ca.creditAccount]
280
+ };
281
+ }) : [],
282
+ ...accountsToCheck.flatMap((ca) => {
283
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
284
+ return additionalBots.map((bot) => {
285
+ return {
286
+ abi: require_abi_310_generated.iBotListV310Abi,
287
+ address: cm.creditFacade.botList,
288
+ functionName: "getBotStatus",
289
+ args: [bot, ca.creditAccount]
290
+ };
291
+ });
292
+ })
293
+ ],
294
+ allowFailure: true,
295
+ batchSize: 0
296
+ });
297
+ const legacyStart = 0;
298
+ const legacyEnd = accountsToCheck.length;
299
+ const legacy = allResp.slice(legacyStart, legacyEnd);
300
+ const migrationStart = legacyEnd;
301
+ const migrationEnd = legacyMigrationBot ? migrationStart + accountsToCheck.length : migrationStart;
302
+ const migrationResp = allResp.slice(migrationStart, migrationEnd);
303
+ const additionalStart = migrationEnd;
304
+ const additionalResp = allResp.slice(additionalStart);
305
+ return {
306
+ legacy,
307
+ additionalBots: this.#getActiveBots(accountsToCheck, additionalBots, additionalResp),
308
+ legacyMigration: this.#getActiveMigrationBots(accountsToCheck, legacyMigrationBot, migrationResp)
309
+ };
310
+ }
311
+ #getActiveBots(accountsToCheck, bots, result) {
312
+ if (result.length !== bots.length * accountsToCheck.length) console.error("result length mismatch", result.length, bots.length * accountsToCheck.length);
313
+ return accountsToCheck.reduce((acc, _, index) => {
314
+ const r = result.slice(index * bots.length, (index + 1) * bots.length);
315
+ acc.push({ result: r });
316
+ return acc;
317
+ }, []);
318
+ }
319
+ #getActiveMigrationBots(accountsToCheck, bot, result) {
320
+ if (bot) {
321
+ if (result.length !== accountsToCheck.length) console.error("result length mismatch for migration bots", result.length, accountsToCheck.length);
322
+ return {
323
+ result,
324
+ botAddress: bot
325
+ };
326
+ }
327
+ }
328
+ /**
329
+ * {@inheritDoc ICreditAccountsService.fullyLiquidate}
330
+ **/
331
+ async fullyLiquidate(props) {
332
+ const { account, to, slippage = 50n, keepAssets, ignoreReservePrices, applyLossPolicy, debtOnly } = props;
333
+ const cm = this.sdk.marketRegister.findCreditManager(account.creditManager);
334
+ const routerCloseResult = await this.sdk.routerFor(account).findBestClosePath({
335
+ creditAccount: account,
336
+ creditManager: cm.creditManager,
337
+ slippage,
338
+ keepAssets,
339
+ debtOnly
340
+ });
341
+ const calls = await this.#prependPriceUpdates(account.creditManager, routerCloseResult.calls, account, { ignoreReservePrices });
342
+ let lossPolicyData;
343
+ if (applyLossPolicy) {
344
+ lossPolicyData = await this.sdk.marketRegister.findByCreditManager(account.creditManager).lossPolicy.getLiquidationData(account.creditAccount);
345
+ this.logger?.debug({ lossPolicyData }, "loss policy data");
346
+ }
347
+ return {
348
+ tx: cm.creditFacade.liquidateCreditAccount(account.creditAccount, to, calls, lossPolicyData),
349
+ calls,
350
+ routerCloseResult,
351
+ lossPolicyData,
352
+ creditFacade: cm.creditFacade
353
+ };
354
+ }
355
+ /**
356
+ * {@inheritDoc ICreditAccountsService.defaultPartialLiquidationParams}
357
+ */
358
+ defaultPartialLiquidationParams(ca) {
359
+ const tokenOut = this.#getBestTokenOut(ca);
360
+ const optimalHF = this.getOptimalHFForPartialLiquidation(ca);
361
+ const repaidAmount = this.#calcOptimalRepaidAmount(ca, tokenOut, optimalHF);
362
+ return {
363
+ tokenOut,
364
+ optimalHF,
365
+ repaidAmount,
366
+ minSeizedAmount: this.#calcMinSeizedAmount(ca, tokenOut, repaidAmount)
367
+ };
368
+ }
369
+ /**
370
+ * {@inheritDoc ICreditAccountsService.partiallyLiquidate}
371
+ */
372
+ async partiallyLiquidate(props) {
373
+ const { account, to } = props;
374
+ const tokenOut = props.tokenOut ?? this.#getBestTokenOut(account);
375
+ const optimalHF = props.optimalHF ?? this.getOptimalHFForPartialLiquidation(account);
376
+ const repaidAmount = props.repaidAmount ?? this.#calcOptimalRepaidAmount(account, tokenOut, optimalHF);
377
+ const minSeizedAmount = props.minSeizedAmount ?? this.#calcMinSeizedAmount(account, tokenOut, repaidAmount);
378
+ const cm = this.sdk.marketRegister.findCreditManager(account.creditManager);
379
+ const updates = await this.getOnDemandPriceUpdates(account, true);
380
+ return cm.creditFacade.partiallyLiquidateCreditAccount(account.creditAccount, tokenOut, repaidAmount, minSeizedAmount, to, updates);
381
+ }
382
+ /**
383
+ * Picks the most valuable enabled non-underlying collateral token on the
384
+ * credit account (by oracle value in underlying).
385
+ *
386
+ * Ported from solidity:
387
+ * https://github.com/Gearbox-protocol/router-v3/blob/main/contracts/liquidation/AbstractLiquidator.sol#L270
388
+ */
389
+ #getBestTokenOut(account) {
390
+ const market = this.sdk.marketRegister.findByCreditManager(account.creditManager);
391
+ const underlying = market.underlying;
392
+ let bestVal = 0n;
393
+ let bestToken;
394
+ for (const t of account.tokens) {
395
+ if (t.token === underlying) continue;
396
+ if ((t.mask & account.enabledTokensMask) === 0n) continue;
397
+ if (t.balance === 0n) continue;
398
+ const val = market.priceOracle.convert(t.token, underlying, t.balance);
399
+ if (val > bestVal) {
400
+ bestVal = val;
401
+ bestToken = t.token;
402
+ }
403
+ }
404
+ if (!bestToken) throw new Error(`cannot determine tokenOut for partial liquidation of ${this.sdk.labelAddress(account.creditAccount)}: no enabled non-underlying collateral with value`);
405
+ return bestToken;
406
+ }
407
+ /**
408
+ * Returns the minimum amount of `token` collateral that must be seized when
409
+ * repaying `repaidAmount` of underlying. Mirrors the on-chain liquidation
410
+ * discount math, expired-aware.
411
+ */
412
+ #calcMinSeizedAmount(account, token, repaidAmount) {
413
+ const market = this.sdk.marketRegister.findByCreditManager(account.creditManager);
414
+ const suite = this.sdk.marketRegister.findCreditManager(account.creditManager);
415
+ const fee = suite.isExpired ? suite.creditManager.liquidationDiscountExpired : suite.creditManager.liquidationDiscount;
416
+ return market.priceOracle.convert(market.underlying, token, repaidAmount) * 9990n / BigInt(fee);
417
+ }
418
+ /**
419
+ * Computes the optimal `repaidAmount` (in underlying) that brings the credit
420
+ * account's health factor close to `optimalHF` after partial liquidation.
421
+ *
422
+ * Ported from solidity:
423
+ * https://github.com/Gearbox-protocol/router-v3/blob/56e2d515ec6d9bb1e324e71c3708e59710779b24/contracts/liquidation/AbstractLiquidator.sol#L292
424
+ */
425
+ #calcOptimalRepaidAmount(account, token, optimalHF) {
426
+ const suite = this.sdk.marketRegister.findCreditManager(account.creditManager);
427
+ const market = this.sdk.marketRegister.findByCreditManager(account.creditManager);
428
+ const cm = suite.creditManager;
429
+ const feeLiquidation = suite.isExpired ? cm.feeLiquidationExpired : cm.feeLiquidation;
430
+ const liquidationDiscount = suite.isExpired ? cm.liquidationDiscountExpired : cm.liquidationDiscount;
431
+ const discount = BigInt(liquidationDiscount) - BigInt(feeLiquidation);
432
+ const ltTokenOut = cm.liquidationThresholds.get(token);
433
+ if (ltTokenOut === void 0) throw new Error(`token ${this.sdk.labelAddress(token)} is not a collateral token in credit manager ${this.sdk.labelAddress(account.creditManager)}`);
434
+ const totalDebt = account.debt + account.accruedInterest + account.accruedFees;
435
+ const twvUnderlying = market.priceOracle.convertFromUSD(market.underlying, account.twvUSD);
436
+ const denominator = discount * optimalHF / require_sdk_constants_math.PERCENTAGE_FACTOR - BigInt(ltTokenOut);
437
+ if (denominator <= 0n) throw new Error("cannot compute optimal repaid amount: invalid liquidation parameters (discount * hfOptimal <= ltTokenOut)");
438
+ const numerator = totalDebt * optimalHF - twvUnderlying * require_sdk_constants_math.PERCENTAGE_FACTOR;
439
+ if (numerator <= 0n) return 0n;
440
+ let repaidAmount = numerator / denominator * discount / require_sdk_constants_math.PERCENTAGE_FACTOR;
441
+ const minDebt = suite.creditFacade.minDebt;
442
+ if (totalDebt < minDebt) return 0n;
443
+ const surplusDebt = totalDebt - minDebt;
444
+ if (repaidAmount > surplusDebt) repaidAmount = surplusDebt * 999n / 1000n;
445
+ return repaidAmount;
446
+ }
447
+ /**
448
+ * {@inheritDoc ICreditAccountsService.closeCreditAccount}
449
+ **/
450
+ async closeCreditAccount({ operation, assetsToWithdraw, creditAccount: ca, to, slippage = 50n, closePath }) {
451
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
452
+ const routerCloseResult = closePath || await this.sdk.routerFor(ca).findBestClosePath({
453
+ creditAccount: ca,
454
+ creditManager: cm.creditManager,
455
+ slippage
456
+ });
457
+ const operationCalls = await this.assembleCloseCreditAccountCalls({
458
+ creditAccount: ca,
459
+ routerCalls: routerCloseResult.calls,
460
+ assetsToWithdraw,
461
+ to
462
+ });
463
+ const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
464
+ return {
465
+ tx: await this.#closeCreditAccountTx(cm, ca.creditAccount, calls, operation),
466
+ calls,
467
+ routerCloseResult,
468
+ creditFacade: cm.creditFacade
469
+ };
470
+ }
471
+ /**
472
+ * {@inheritDoc ICreditAccountsService.assembleCloseCreditAccountCalls}
473
+ */
474
+ async assembleCloseCreditAccountCalls({ creditAccount: ca, routerCalls, assetsToWithdraw, to }) {
475
+ const unwrapCalls = await this.getRedeemDiffCalls(1n, ca.creditManager) ?? [];
476
+ return [
477
+ ...routerCalls,
478
+ ...this.#prepareDisableQuotas(ca),
479
+ ...this.#prepareDecreaseDebt(ca),
480
+ ...unwrapCalls,
481
+ ...assetsToWithdraw.map((t) => this.prepareWithdrawToken(ca.creditFacade, t, require_sdk_constants_math.MAX_UINT256, to))
482
+ ];
483
+ }
484
+ /**
485
+ * {@inheritDoc ICreditAccountsService.updateQuotas}
486
+ **/
487
+ async updateQuotas({ minQuota, averageQuota, creditAccount }) {
488
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
489
+ const operationCalls = this.prepareUpdateQuotas(creditAccount.creditFacade, {
490
+ minQuota,
491
+ averageQuota
492
+ });
493
+ const calls = await this.#prependPriceUpdates(creditAccount.creditManager, operationCalls, creditAccount);
494
+ return {
495
+ tx: await this.#multicallTx(cm, creditAccount.creditAccount, calls),
496
+ calls,
497
+ creditFacade: cm.creditFacade
498
+ };
499
+ }
500
+ /**
501
+ * {@inheritDoc ICreditAccountsService.addCollateral}
502
+ **/
503
+ async addCollateral({ creditAccount, asset, permit, ethAmount, minQuota, averageQuota }) {
504
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
505
+ const operationCalls = [...this.prepareAddCollateral(creditAccount.creditFacade, [asset], permit ? { [asset.token]: permit } : {}), ...this.prepareUpdateQuotas(creditAccount.creditFacade, {
506
+ minQuota,
507
+ averageQuota
508
+ })];
509
+ const calls = await this.#prependPriceUpdates(creditAccount.creditManager, operationCalls, creditAccount);
510
+ const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
511
+ tx.value = ethAmount.toString(10);
512
+ return {
513
+ tx,
514
+ calls,
515
+ creditFacade: cm.creditFacade
516
+ };
517
+ }
518
+ /**
519
+ * {@inheritDoc ICreditAccountsService.changeDebt}
520
+ **/
521
+ async changeDebt({ creditAccount, amount, collateral }) {
522
+ if (amount === 0n) throw new Error("debt increase or decrease must be non-zero");
523
+ const isDecrease = amount < 0n;
524
+ const change = amount > 0n ? amount : -amount;
525
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
526
+ const addCollateralCalls = collateral && isDecrease ? this.prepareAddCollateral(creditAccount.creditFacade, [{
527
+ token: collateral[0].token,
528
+ balance: collateral[0].balance
529
+ }], {}) : [];
530
+ const unwrapCalls = collateral && isDecrease ? await this.getRWAUnwrapCalls(collateral[0].balance, creditAccount.creditManager) || [] : [];
531
+ if (addCollateralCalls.length > 0 && unwrapCalls.length === 0 && collateral && collateral?.[0].token !== creditAccount.underlying) throw new Error("Can't use collateral other than underlying for non RWA market");
532
+ const operationCalls = [
533
+ ...addCollateralCalls,
534
+ ...unwrapCalls,
535
+ this.prepareChangeDebt(creditAccount.creditFacade, change, isDecrease)
536
+ ];
537
+ const calls = await this.#prependPriceUpdates(creditAccount.creditManager, operationCalls, creditAccount);
538
+ return {
539
+ tx: await this.#multicallTx(cm, creditAccount.creditAccount, calls),
540
+ calls,
541
+ creditFacade: cm.creditFacade
542
+ };
543
+ }
544
+ /**
545
+ * {@inheritDoc ICreditAccountsService.executeSwap}
546
+ **/
547
+ async executeSwap({ creditAccount, calls: swapCalls, minQuota, averageQuota }) {
548
+ if (swapCalls.length === 0) throw new Error("No path to execute");
549
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
550
+ const operationCalls = [...swapCalls, ...this.prepareUpdateQuotas(creditAccount.creditFacade, {
551
+ minQuota,
552
+ averageQuota
553
+ })];
554
+ const calls = await this.#prependPriceUpdates(creditAccount.creditManager, operationCalls, creditAccount);
555
+ return {
556
+ tx: await this.#multicallTx(cm, creditAccount.creditAccount, calls),
557
+ calls,
558
+ creditFacade: cm.creditFacade
559
+ };
560
+ }
561
+ /**
562
+ * {@inheritDoc ICreditAccountsService.previewDelayedWithdrawal}
563
+ **/
564
+ async previewDelayedWithdrawal({ creditAccount, amount, token, withdrawalPhantomToken, intent }) {
565
+ return this.#withdrawalCompressor.getWithdrawalRequestResult({
566
+ creditAccount,
567
+ token,
568
+ amount,
569
+ withdrawalPhantomToken,
570
+ intent
571
+ });
572
+ }
573
+ /**
574
+ * {@inheritDoc ICreditAccountsService.getPendingWithdrawals}
575
+ **/
576
+ async getPendingWithdrawals({ creditAccount }) {
577
+ const { claimable, pending } = await this.#withdrawalCompressor.getCurrentWithdrawals(creditAccount);
578
+ return {
579
+ claimableNow: claimable,
580
+ pending
581
+ };
582
+ }
583
+ /**
584
+ * {@inheritDoc ICreditAccountsService.startDelayedWithdrawal}
585
+ **/
586
+ async startDelayedWithdrawal({ creditAccount, minQuota, averageQuota, preview }) {
587
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
588
+ const operationCalls = [...this.assembleStartDelayedWithdrawalCalls({
589
+ creditFacade: cm.creditFacade.address,
590
+ preview
591
+ }), ...this.prepareUpdateQuotas(cm.creditFacade.address, {
592
+ minQuota,
593
+ averageQuota
594
+ })];
595
+ const calls = await this.#prependPriceUpdates(creditAccount.creditManager, operationCalls, creditAccount);
596
+ return {
597
+ tx: await this.#multicallTx(cm, creditAccount.creditAccount, calls),
598
+ calls,
599
+ creditFacade: cm.creditFacade
600
+ };
601
+ }
602
+ /**
603
+ * {@inheritDoc ICreditAccountsService.assembleStartDelayedWithdrawalCalls}
604
+ **/
605
+ assembleStartDelayedWithdrawalCalls({ creditFacade, preview }) {
606
+ const record = preview.outputs.reduce((acc, o) => {
607
+ const token = o.token.toLowerCase();
608
+ acc[token] = (acc[token] || 0n) + o.amount;
609
+ return acc;
610
+ }, {});
611
+ const deltas = Object.entries(record).filter(([, a]) => a > 10n).map(([token, amount]) => ({
612
+ token,
613
+ amount: amount > 10n ? amount - 10n : 0n
614
+ }));
615
+ if (preview.amountIn > 0n) deltas.push({
616
+ token: preview.token,
617
+ amount: -preview.amountIn
618
+ });
619
+ const storeExpectedBalances = {
620
+ target: creditFacade,
621
+ callData: (0, viem.encodeFunctionData)({
622
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
623
+ functionName: "storeExpectedBalances",
624
+ args: [deltas]
625
+ })
626
+ };
627
+ const compareBalances = {
628
+ target: creditFacade,
629
+ callData: (0, viem.encodeFunctionData)({
630
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
631
+ functionName: "compareBalances",
632
+ args: []
633
+ })
634
+ };
635
+ return [
636
+ storeExpectedBalances,
637
+ ...preview.requestCalls,
638
+ compareBalances
639
+ ];
640
+ }
641
+ /**
642
+ * {@inheritDoc ICreditAccountsService.claimDelayed}
643
+ **/
644
+ async claimDelayed({ creditAccount, minQuota, averageQuota, claimableNow }) {
645
+ const zeroDebt = creditAccount.debt === 0n;
646
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
647
+ const quotaCalls = zeroDebt ? [] : this.prepareUpdateQuotas(cm.creditFacade.address, {
648
+ minQuota,
649
+ averageQuota
650
+ });
651
+ const operationCalls = [...this.assembleClaimDelayedCalls({
652
+ creditFacade: cm.creditFacade.address,
653
+ claimableNow
654
+ }), ...quotaCalls];
655
+ const calls = zeroDebt ? operationCalls : await this.#prependPriceUpdates(creditAccount.creditManager, operationCalls, creditAccount);
656
+ return {
657
+ tx: await this.#multicallTx(cm, creditAccount.creditAccount, calls),
658
+ calls,
659
+ creditFacade: cm.creditFacade
660
+ };
661
+ }
662
+ /**
663
+ * {@inheritDoc ICreditAccountsService.assembleClaimDelayedCalls}
664
+ **/
665
+ assembleClaimDelayedCalls({ creditFacade, claimableNow }) {
666
+ const record = claimableNow.outputs.reduce((acc, o) => {
667
+ const token = o.token.toLowerCase();
668
+ acc[token] = (acc[token] || 0n) + o.amount;
669
+ return acc;
670
+ }, {});
671
+ const deltas = Object.entries(record).filter(([, a]) => a > 10n).map(([token, amount]) => ({
672
+ token,
673
+ amount: amount > 10n ? amount - 10n : 0n
674
+ }));
675
+ if (claimableNow.withdrawalTokenSpent > 0n) deltas.push({
676
+ token: claimableNow.withdrawalPhantomToken,
677
+ amount: -claimableNow.withdrawalTokenSpent
678
+ });
679
+ const storeExpectedBalances = {
680
+ target: creditFacade,
681
+ callData: (0, viem.encodeFunctionData)({
682
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
683
+ functionName: "storeExpectedBalances",
684
+ args: [deltas]
685
+ })
686
+ };
687
+ const compareBalances = {
688
+ target: creditFacade,
689
+ callData: (0, viem.encodeFunctionData)({
690
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
691
+ functionName: "compareBalances",
692
+ args: []
693
+ })
694
+ };
695
+ return [
696
+ storeExpectedBalances,
697
+ ...claimableNow.claimCalls,
698
+ compareBalances
699
+ ];
700
+ }
701
+ /**
702
+ * {@inheritDoc ICreditAccountsService.getApprovalAddress}
703
+ **/
704
+ async getApprovalAddress(options) {
705
+ const { creditManager } = options;
706
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
707
+ const factory = this.sdk.marketRegister.findByPool(suite.pool).rwaFactory;
708
+ if (factory) return factory.getApprovalAddress(options);
709
+ return suite.creditManager.address;
710
+ }
711
+ /**
712
+ * {@inheritDoc ICreditAccountsService.getOpenAccountRequirements}
713
+ */
714
+ async getOpenAccountRequirements(borrower, creditManager, props) {
715
+ const { rwaFactory } = this.sdk.marketRegister.findByCreditManager(creditManager);
716
+ if (!rwaFactory) return;
717
+ return rwaFactory.getOpenAccountRequirements(borrower, props);
718
+ }
719
+ /**
720
+ * {@inheritDoc ICreditAccountsService.openCA}
721
+ **/
722
+ async openCA(props) {
723
+ const { ethAmount, creditManager, reopenCreditAccount, collateral, permits, debt, withdrawToken, referralCode, to, calls: openPathCalls, callsAfter, minQuota, averageQuota, rwaOptions } = props;
724
+ const cmSuite = this.sdk.marketRegister.findCreditManager(creditManager);
725
+ const cm = cmSuite.creditManager;
726
+ let tokenToWithdraw;
727
+ if (withdrawToken === true) tokenToWithdraw = cm.underlying;
728
+ else if (typeof withdrawToken === "string") tokenToWithdraw = withdrawToken;
729
+ const operationCalls = [
730
+ this.prepareIncreaseDebt(cm.creditFacade, debt),
731
+ ...this.prepareAddCollateral(cm.creditFacade, collateral, permits),
732
+ ...openPathCalls,
733
+ ...tokenToWithdraw ? [this.prepareWithdrawToken(cm.creditFacade, tokenToWithdraw, require_sdk_constants_math.MAX_UINT256, to)] : [],
734
+ ...this.prepareUpdateQuotas(cm.creditFacade, {
735
+ minQuota,
736
+ averageQuota
737
+ }),
738
+ ...callsAfter ?? []
739
+ ];
740
+ const calls = await this.#prependPriceUpdates(cm.address, operationCalls);
741
+ let tx;
742
+ if (reopenCreditAccount) tx = await this.#multicallTx(cmSuite, reopenCreditAccount, calls);
743
+ else tx = await this.#openCreditAccountTx(cmSuite, to, calls, referralCode, rwaOptions);
744
+ tx.value = ethAmount.toString(10);
745
+ return {
746
+ calls,
747
+ tx,
748
+ creditFacade: cmSuite.creditFacade
749
+ };
750
+ }
751
+ /**
752
+ * {@inheritDoc ICreditAccountsService.getBorrowRate}
753
+ **/
754
+ getBorrowRate(ca) {
755
+ const { creditManager } = this.sdk.marketRegister.findCreditManager(ca.creditManager);
756
+ const { pool } = this.sdk.marketRegister.findByCreditManager(ca.creditManager);
757
+ const { feeInterest } = creditManager;
758
+ const { baseInterestRate } = pool.pool;
759
+ const baseRateWithFee = baseInterestRate * (BigInt(feeInterest) + require_sdk_constants_math.PERCENTAGE_FACTOR);
760
+ const totalDebt = ca.debt + ca.accruedInterest + ca.accruedFees;
761
+ const r = ca.debt * baseRateWithFee / (totalDebt * require_sdk_constants_math.RAY);
762
+ const caTokens = new require_sdk_utils_AddressMap.AddressMap(ca.tokens.map((t) => [t.token, t]));
763
+ let qr = 0n;
764
+ for (const t of creditManager.collateralTokens) {
765
+ const b = caTokens.get(t);
766
+ if (b) qr += b.quota * BigInt(pool.pqk.quotas.get(t)?.rate ?? 0);
767
+ }
768
+ qr = qr * (BigInt(feeInterest) + require_sdk_constants_math.PERCENTAGE_FACTOR) / require_sdk_constants_math.PERCENTAGE_FACTOR;
769
+ qr /= totalDebt;
770
+ return r + qr;
771
+ }
772
+ /**
773
+ * {@inheritDoc ICreditAccountsService.getOptimalHFForPartialLiquidation}
774
+ **/
775
+ getOptimalHFForPartialLiquidation(ca) {
776
+ const borrowRate = this.getBorrowRate(ca);
777
+ return require_sdk_constants_math.PERCENTAGE_FACTOR + (borrowRate < 100n ? borrowRate : 100n);
778
+ }
779
+ /**
780
+ * Internal wrapper for CreditAccountCompressor.getCreditAccounts + price updates wrapped into multicall
781
+ * @param args
782
+ * @param priceUpdateTxs
783
+ * @param blockNumber
784
+ * @returns
785
+ */
786
+ async #getCreditAccounts(args, priceUpdateTxs, blockNumber) {
787
+ let resp;
788
+ if (priceUpdateTxs?.length) [resp] = await require_sdk_utils_viem_simulateWithPriceUpdates.simulateWithPriceUpdates(this.client, {
789
+ priceUpdates: priceUpdateTxs,
790
+ contracts: [{
791
+ abi: require_abi_compressors_creditAccountCompressor.creditAccountCompressorAbi,
792
+ address: this.compressor,
793
+ functionName: "getCreditAccounts",
794
+ args
795
+ }],
796
+ blockNumber,
797
+ gas: this.sdk.gasLimit
798
+ });
799
+ else resp = await this.client.readContract({
800
+ abi: require_abi_compressors_creditAccountCompressor.creditAccountCompressorAbi,
801
+ address: this.compressor,
802
+ functionName: "getCreditAccounts",
803
+ args,
804
+ blockNumber,
805
+ gas: this.sdk.gasLimit
806
+ });
807
+ this.logger?.debug({
808
+ accounts: resp[0]?.length ?? 0,
809
+ nextOffset: Number(resp[1])
810
+ }, "got credit accounts");
811
+ return resp;
812
+ }
813
+ /**
814
+ * Returns multicall entries to redeem (unwrap) RWA ERC-4626 vault shares into underlying for the given credit manager.
815
+ * Used when withdrawing debt from a RWA market: redeems adapter vault shares so the underlying can be withdrawn.
816
+ * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
817
+ * @param amount - Number of vault shares (adapter tokens) to redeem
818
+ * @param creditManager - Credit manager address
819
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
820
+ */
821
+ async getRWAUnwrapCalls(amount, creditManager) {
822
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
823
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
824
+ if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) return;
825
+ const adapterAddress = suite.creditManager.adapters.get(meta.addr)?.address;
826
+ if (!adapterAddress) return;
827
+ return [{
828
+ target: adapterAddress,
829
+ callData: (0, viem.encodeFunctionData)({
830
+ abi: require_abi_ierc4626Adapter.ierc4626AdapterAbi,
831
+ functionName: "redeem",
832
+ args: [
833
+ amount,
834
+ require_sdk_constants_addresses.ADDRESS_0X0,
835
+ require_sdk_constants_addresses.ADDRESS_0X0
836
+ ]
837
+ })
838
+ }];
839
+ }
840
+ /**
841
+ * Returns multicall entries to deposit (wrap) underlying into RWA ERC-4626 vault shares for the given credit manager.
842
+ * Used when adding debt on a RWA market: deposits underlying into the adapter vault so shares are minted on the account.
843
+ * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
844
+ * @param amount - Amount of underlying assets to deposit into the vault (in underlying decimals)
845
+ * @param creditManager - Credit manager address
846
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
847
+ */
848
+ async getRWAWrapCalls(amount, creditManager) {
849
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
850
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
851
+ if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) return;
852
+ const adapterAddress = suite.creditManager.adapters.get(meta.addr)?.address;
853
+ if (!adapterAddress) return;
854
+ return [{
855
+ target: adapterAddress,
856
+ callData: (0, viem.encodeFunctionData)({
857
+ abi: require_abi_ierc4626Adapter.ierc4626AdapterAbi,
858
+ functionName: "deposit",
859
+ args: [amount, require_sdk_constants_addresses.ADDRESS_0X0]
860
+ })
861
+ }];
862
+ }
863
+ /**
864
+ * Returns multicall entries to call redeemDiff on the RWA ERC-4626 adapter for the given credit manager.
865
+ * Redeems the leftover vault shares (e.g. after repaying debt) so the account does not hold excess RWA vault tokens.
866
+ * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
867
+ * @param amount - Leftover vault share amount to redeem (in adapter/vault decimals)
868
+ * @param creditManager - Credit manager address
869
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
870
+ */
871
+ async getRedeemDiffCalls(amount, creditManager) {
872
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
873
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
874
+ if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) return;
875
+ const adapterAddress = suite.creditManager.adapters.get(meta.addr)?.address;
876
+ if (!adapterAddress) return;
877
+ return [{
878
+ target: adapterAddress,
879
+ callData: (0, viem.encodeFunctionData)({
880
+ abi: require_abi_ierc4626Adapter.ierc4626AdapterAbi,
881
+ functionName: "redeemDiff",
882
+ args: [amount]
883
+ })
884
+ }];
885
+ }
886
+ /**
887
+ * Returns multicall entries to call depositDiff on the RWA ERC-4626 adapter for the given credit manager.
888
+ * Deposits the leftover underlying (e.g. after decreasing debt) into the vault so the account does not hold excess underlying.
889
+ * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
890
+ * @param amount - Leftover underlying amount to deposit into the vault (in underlying decimals)
891
+ * @param creditManager - Credit manager address
892
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
893
+ */
894
+ async getDepositDiffCalls(amount, creditManager) {
895
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
896
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
897
+ if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) return;
898
+ const adapterAddress = suite.creditManager.adapters.get(meta.addr)?.address;
899
+ if (!adapterAddress) return;
900
+ return [{
901
+ target: adapterAddress,
902
+ callData: (0, viem.encodeFunctionData)({
903
+ abi: require_abi_ierc4626Adapter.ierc4626AdapterAbi,
904
+ functionName: "depositDiff",
905
+ args: [amount]
906
+ })
907
+ }];
908
+ }
909
+ /**
910
+ * {@inheritDoc ICreditAccountsService.setBot}
911
+ */
912
+ async setBot({ botAddress, permissions: defaultPermissions, targetContract }) {
913
+ const cm = this.sdk.marketRegister.findCreditManager(targetContract.creditManager);
914
+ const permissions = defaultPermissions !== null ? defaultPermissions : await (0, viem.getContract)({
915
+ address: botAddress,
916
+ client: this.sdk.client,
917
+ abi: [{
918
+ type: "function",
919
+ name: "requiredPermissions",
920
+ inputs: [],
921
+ outputs: [{
922
+ name: "",
923
+ type: "uint192",
924
+ internalType: "uint192"
925
+ }],
926
+ stateMutability: "view"
927
+ }]
928
+ }).read.requiredPermissions();
929
+ const addBotCall = {
930
+ target: cm.creditFacade.address,
931
+ callData: (0, viem.encodeFunctionData)({
932
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
933
+ functionName: "setBotPermissions",
934
+ args: [botAddress, permissions]
935
+ })
936
+ };
937
+ const calls = targetContract.type === "creditAccount" ? await this.#prependPriceUpdates(targetContract.creditManager, [addBotCall], targetContract) : [addBotCall];
938
+ return {
939
+ tx: targetContract.type === "creditAccount" ? await this.#multicallTx(cm, targetContract.creditAccount, calls) : void 0,
940
+ calls,
941
+ creditFacade: cm.creditFacade
942
+ };
943
+ }
944
+ /**
945
+ * {@inheritDoc ICreditAccountsService.withdrawCollateral}
946
+ */
947
+ async withdrawCollateral({ creditAccount, assetsToWithdraw, to, minQuota, averageQuota }) {
948
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
949
+ const operationCalls = [...assetsToWithdraw.map((a) => this.prepareWithdrawToken(cm.creditFacade.address, a.token, a.balance, to)), ...this.prepareUpdateQuotas(cm.creditFacade.address, {
950
+ minQuota,
951
+ averageQuota
952
+ })];
953
+ const calls = await this.#prependPriceUpdates(creditAccount.creditManager, operationCalls, creditAccount);
954
+ return {
955
+ tx: await this.#multicallTx(cm, creditAccount.creditAccount, calls),
956
+ calls,
957
+ creditFacade: cm.creditFacade
958
+ };
959
+ }
960
+ /**
961
+ * {@inheritDoc ICreditAccountsService.repayCreditAccount}
962
+ */
963
+ async repayCreditAccount(props) {
964
+ const { operation, creditAccount: ca } = props;
965
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
966
+ const operationCalls = await this.assembleRepayCreditAccountCalls(props);
967
+ const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
968
+ return {
969
+ tx: await this.#closeCreditAccountTx(cm, ca.creditAccount, calls, operation),
970
+ calls,
971
+ creditFacade: cm.creditFacade
972
+ };
973
+ }
974
+ /**
975
+ * {@inheritDoc ICreditAccountsService.assembleRepayCreditAccountCalls}
976
+ */
977
+ async assembleRepayCreditAccountCalls({ collateralAssets, assetsToWithdraw, creditAccount: ca, permits, to, tokensToClaim, calls: wrapCalls = [] }) {
978
+ const addCollateral = collateralAssets.filter((a) => a.balance > 0);
979
+ const router = this.sdk.routerFor(ca);
980
+ const unwrapCalls = await this.getRedeemDiffCalls(1n, ca.creditManager) ?? [];
981
+ const claimPath = await router.findClaimAllRewards({
982
+ tokensToClaim,
983
+ creditAccount: ca
984
+ });
985
+ return [
986
+ ...this.prepareAddCollateral(ca.creditFacade, addCollateral, permits),
987
+ ...wrapCalls,
988
+ ...this.#prepareDisableQuotas(ca),
989
+ ...this.#prepareDecreaseDebt(ca),
990
+ ...unwrapCalls,
991
+ ...claimPath.calls,
992
+ ...assetsToWithdraw.map((t) => this.prepareWithdrawToken(ca.creditFacade, t.token, require_sdk_constants_math.MAX_UINT256, to))
993
+ ];
994
+ }
995
+ /**
996
+ * {@inheritDoc ICreditAccountsService.repayAndLiquidateCreditAccount}
997
+ */
998
+ async repayAndLiquidateCreditAccount({ collateralAssets, assetsToWithdraw, creditAccount: ca, permits, to, tokensToClaim }) {
999
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
1000
+ const claimPath = await this.sdk.routerFor(ca).findClaimAllRewards({
1001
+ tokensToClaim,
1002
+ creditAccount: ca
1003
+ });
1004
+ const wrapCalls = await this.getDepositDiffCalls(1n, ca.creditManager) ?? [];
1005
+ const addCollateral = collateralAssets.filter((a) => a.balance > 0);
1006
+ const operationCalls = [
1007
+ ...this.prepareAddCollateral(ca.creditFacade, addCollateral, permits),
1008
+ ...claimPath.calls,
1009
+ ...wrapCalls,
1010
+ ...assetsToWithdraw.map((t) => this.prepareWithdrawToken(ca.creditFacade, t.token, require_sdk_constants_math.MAX_UINT256, to))
1011
+ ];
1012
+ const calls = await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
1013
+ return {
1014
+ tx: cm.creditFacade.liquidateCreditAccount(ca.creditAccount, to, calls),
1015
+ calls,
1016
+ creditFacade: cm.creditFacade
1017
+ };
1018
+ }
1019
+ /**
1020
+ * {@inheritDoc ICreditAccountsService.claimFarmRewards}
1021
+ */
1022
+ async claimFarmRewards({ calls: externalCalls, creditAccount: ca, minQuota, averageQuota, tokensToClaim }) {
1023
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
1024
+ const router = this.sdk.routerFor(ca);
1025
+ let claimPath;
1026
+ if (externalCalls) claimPath = { calls: externalCalls };
1027
+ else claimPath = await router.findClaimAllRewards({
1028
+ tokensToClaim,
1029
+ creditAccount: ca
1030
+ });
1031
+ if (claimPath.calls.length === 0) throw new Error("No path to execute");
1032
+ const operationCalls = [...claimPath.calls, ...this.prepareUpdateQuotas(ca.creditFacade, {
1033
+ minQuota,
1034
+ averageQuota
1035
+ })];
1036
+ const calls = await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
1037
+ return {
1038
+ tx: await this.#multicallTx(cm, ca.creditAccount, calls),
1039
+ calls,
1040
+ creditFacade: cm.creditFacade
1041
+ };
1042
+ }
1043
+ /**
1044
+ * Returns raw txs that are needed to update all price feeds so that all credit accounts (possibly from different markets) compute
1045
+ * {@inheritDoc ICreditAccountsService.getOnDemandPriceUpdates}
1046
+ **/
1047
+ async getOnDemandPriceUpdates(account, ignoreReservePrices) {
1048
+ const { creditManager, creditAccount } = account;
1049
+ const cm = this.sdk.marketRegister.findCreditManager(creditManager);
1050
+ const update = await this.#getUpdateForAccount(account, ignoreReservePrices);
1051
+ this.logger?.debug({
1052
+ account: creditAccount,
1053
+ manager: cm.name
1054
+ }, `getting on demand price updates from ${update.txs.length} txs`);
1055
+ return require_sdk_market_pricefeeds_getRawPriceUpdates.getRawPriceUpdates(update);
1056
+ }
1057
+ /**
1058
+ * Analyzes a multicall array and prepends necessary on-demand price feed updates.
1059
+ *
1060
+ * Deduplicates existing `onDemandPriceUpdates` calls
1061
+ *
1062
+ * @param creditManager - Address of the credit manager
1063
+ * @param calls - The multicall array to prepend price updates to
1064
+ * @param ca - Credit account slice, undefined when opening a new account
1065
+ * @param options - Optional settings for price update generation
1066
+ * @returns A new array with a single consolidated price update call prepended,
1067
+ * followed by the non-price-update calls in their original order
1068
+ */
1069
+ async #prependPriceUpdates(creditManager, calls, ca, options) {
1070
+ const market = this.sdk.marketRegister.findByCreditManager(creditManager);
1071
+ const cm = this.sdk.marketRegister.findCreditManager(creditManager).creditManager;
1072
+ const { priceUpdates: existingUpdates, remainingCalls } = require_sdk_accounts_multicall_utils.extractPriceUpdates(calls);
1073
+ const tokens = new require_sdk_utils_AddressSet.AddressSet([cm.underlying, ...require_sdk_accounts_multicall_utils.extractQuotaTokens(calls)]);
1074
+ if (ca) for (const t of ca.tokens) {
1075
+ const isEnabled = (t.mask & ca.enabledTokensMask) !== 0n;
1076
+ if (t.balance > 10n && isEnabled) tokens.add(t.token);
1077
+ }
1078
+ const ignoreReservePrices = options?.ignoreReservePrices;
1079
+ const priceFeeds = market.priceOracle.priceFeedsForTokens(Array.from(tokens), {
1080
+ main: true,
1081
+ reserve: !ignoreReservePrices
1082
+ });
1083
+ const tStr = tokens.map((t) => this.labelAddress(t)).join(", ");
1084
+ const remark = ignoreReservePrices ? " main" : "";
1085
+ this.logger?.debug({
1086
+ account: ca?.creditAccount,
1087
+ manager: cm.name
1088
+ }, `prependPriceUpdates for ${tStr} from ${priceFeeds.length}${remark} price feeds`);
1089
+ const generatedUpdates = await this.sdk.priceFeeds.generatePriceFeedsUpdates(priceFeeds);
1090
+ const merged = require_sdk_accounts_multicall_utils.mergePriceUpdates(existingUpdates, generatedUpdates);
1091
+ if (merged.length === 0) return remainingCalls;
1092
+ return [{
1093
+ target: cm.creditFacade,
1094
+ callData: (0, viem.encodeFunctionData)({
1095
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1096
+ functionName: "onDemandPriceUpdates",
1097
+ args: [merged]
1098
+ })
1099
+ }, ...remainingCalls];
1100
+ }
1101
+ async #getUpdateForAccount(account, ignoreReservePrices) {
1102
+ const { creditManager, creditAccount, enabledTokensMask } = account;
1103
+ const market = this.sdk.marketRegister.findByCreditManager(creditManager);
1104
+ const cm = this.sdk.marketRegister.findCreditManager(creditManager).creditManager;
1105
+ const tokens = new require_sdk_utils_AddressSet.AddressSet([cm.underlying]);
1106
+ for (const t of account.tokens) {
1107
+ const isEnabled = (t.mask & enabledTokensMask) !== 0n;
1108
+ if (t.balance > 10n && isEnabled) tokens.add(t.token);
1109
+ }
1110
+ const priceFeeds = market.priceOracle.priceFeedsForTokens(Array.from(tokens), {
1111
+ main: true,
1112
+ reserve: !ignoreReservePrices
1113
+ });
1114
+ const tStr = tokens.map((t) => this.labelAddress(t)).join(", ");
1115
+ const remark = ignoreReservePrices ? " main" : "";
1116
+ this.logger?.debug({
1117
+ account: creditAccount,
1118
+ manager: cm.name
1119
+ }, `generating price feed updates for ${tStr} from ${priceFeeds.length}${remark} price feeds`);
1120
+ return this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(priceFeeds);
1121
+ }
1122
+ /**
1123
+ * {@inheritDoc ICreditAccountsService.multicall}
1124
+ */
1125
+ async multicall(creditAccount, calls, options) {
1126
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
1127
+ const callsWithPrices = await this.#prependPriceUpdates(creditAccount.creditManager, calls, creditAccount, options);
1128
+ return cm.creditFacade.multicall(creditAccount.creditAccount, callsWithPrices);
1129
+ }
1130
+ /**
1131
+ * {@inheritDoc ICreditAccountsService.botMulticall}
1132
+ */
1133
+ async botMulticall(creditAccount, calls, options) {
1134
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
1135
+ const callsWithPrices = await this.#prependPriceUpdates(creditAccount.creditManager, calls, creditAccount, options);
1136
+ return cm.creditFacade.botMulticall(creditAccount.creditAccount, callsWithPrices);
1137
+ }
1138
+ /**
1139
+ * {@inheritDoc ICreditAccountsService.prependPriceUpdates}
1140
+ */
1141
+ async prependPriceUpdates(creditManager, calls, creditAccount, options) {
1142
+ return this.#prependPriceUpdates(creditManager, calls, creditAccount, options);
1143
+ }
1144
+ /**
1145
+ * {@inheritDoc ICreditAccountsService.assembleCaOperations}
1146
+ */
1147
+ assembleCaOperations({ operations, creditFacade }) {
1148
+ const calls = [];
1149
+ for (const op of operations) switch (op.type) {
1150
+ case "increaseDebt":
1151
+ calls.push(this.prepareIncreaseDebt(creditFacade, op.amount));
1152
+ break;
1153
+ case "decreaseDebt":
1154
+ calls.push(this.prepareChangeDebt(creditFacade, op.amount, true));
1155
+ break;
1156
+ case "addCollateral":
1157
+ calls.push(...this.prepareAddCollateral(creditFacade, [{
1158
+ token: op.token,
1159
+ balance: op.amount
1160
+ }], {}));
1161
+ break;
1162
+ case "withdrawCollateral":
1163
+ calls.push(this.prepareWithdrawToken(creditFacade, op.token, op.amount, op.to));
1164
+ break;
1165
+ case "swap":
1166
+ case "wrapRwaCollateral":
1167
+ case "unwrapRwaCollateral":
1168
+ calls.push(...op.calls);
1169
+ break;
1170
+ case "changeQuota": {
1171
+ const quotaAssets = [...op.quotaIncrease, ...op.quotaDecrease];
1172
+ if (quotaAssets.length === 0) break;
1173
+ calls.push(...this.prepareUpdateQuotas(creditFacade, {
1174
+ averageQuota: quotaAssets,
1175
+ minQuota: quotaAssets
1176
+ }));
1177
+ break;
1178
+ }
1179
+ default: throw new Error(`assembleCaOperations: unsupported operation ${JSON.stringify(op)}`);
1180
+ }
1181
+ return calls;
1182
+ }
1183
+ /**
1184
+ * {@inheritDoc ICreditAccountsService.executeCaUpdate}
1185
+ */
1186
+ async executeCaUpdate(creditAccount, calls, options) {
1187
+ const cm = this.sdk.marketRegister.findCreditManager(creditAccount.creditManager);
1188
+ const callsWithPrices = await this.#prependPriceUpdates(creditAccount.creditManager, calls, creditAccount, { ignoreReservePrices: options?.ignoreReservePrices });
1189
+ const tx = await this.#multicallTx(cm, creditAccount.creditAccount, callsWithPrices);
1190
+ if (options?.ethAmount && options.ethAmount > 0n) tx.value = options.ethAmount.toString(10);
1191
+ return {
1192
+ tx,
1193
+ calls: callsWithPrices
1194
+ };
1195
+ }
1196
+ #prepareDisableQuotas(ca) {
1197
+ const calls = [];
1198
+ for (const { token, quota } of ca.tokens) if (quota > 0n) calls.push({
1199
+ target: ca.creditFacade,
1200
+ callData: (0, viem.encodeFunctionData)({
1201
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1202
+ functionName: "updateQuota",
1203
+ args: [
1204
+ token,
1205
+ require_sdk_constants_math.MIN_INT96,
1206
+ 0n
1207
+ ]
1208
+ })
1209
+ });
1210
+ return calls;
1211
+ }
1212
+ /**
1213
+ * {@inheritDoc ICreditAccountsService.prepareUpdateQuotas}
1214
+ */
1215
+ prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
1216
+ const minRecord = new require_sdk_utils_AssetsMap.AssetsMap(minQuota);
1217
+ return averageQuota.map((q) => {
1218
+ const minBalance = minRecord.get(q.token);
1219
+ const min = minBalance && minBalance > 0n ? minBalance : 0n;
1220
+ return {
1221
+ target: creditFacade,
1222
+ callData: (0, viem.encodeFunctionData)({
1223
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1224
+ functionName: "updateQuota",
1225
+ args: [
1226
+ q.token,
1227
+ q.balance,
1228
+ min
1229
+ ]
1230
+ })
1231
+ };
1232
+ });
1233
+ }
1234
+ #prepareDecreaseDebt(ca) {
1235
+ if (ca.debt > 0n) return [{
1236
+ target: ca.creditFacade,
1237
+ callData: (0, viem.encodeFunctionData)({
1238
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1239
+ functionName: "decreaseDebt",
1240
+ args: [require_sdk_constants_math.MAX_UINT256]
1241
+ })
1242
+ }];
1243
+ return [];
1244
+ }
1245
+ /**
1246
+ * {@inheritDoc ICreditAccountsService.prepareWithdrawToken}
1247
+ */
1248
+ prepareWithdrawToken(creditFacade, token, amount, to) {
1249
+ return {
1250
+ target: creditFacade,
1251
+ callData: (0, viem.encodeFunctionData)({
1252
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1253
+ functionName: "withdrawCollateral",
1254
+ args: [
1255
+ token,
1256
+ amount,
1257
+ to
1258
+ ]
1259
+ })
1260
+ };
1261
+ }
1262
+ /**
1263
+ * {@inheritDoc ICreditAccountsService.prepareIncreaseDebt}
1264
+ */
1265
+ prepareIncreaseDebt(creditFacade, debt) {
1266
+ return {
1267
+ target: creditFacade,
1268
+ callData: (0, viem.encodeFunctionData)({
1269
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1270
+ functionName: "increaseDebt",
1271
+ args: [debt]
1272
+ })
1273
+ };
1274
+ }
1275
+ /**
1276
+ * {@inheritDoc ICreditAccountsService.prepareChangeDebt}
1277
+ */
1278
+ prepareChangeDebt(creditFacade, change, isDecrease) {
1279
+ return {
1280
+ target: creditFacade,
1281
+ callData: (0, viem.encodeFunctionData)({
1282
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1283
+ functionName: isDecrease ? "decreaseDebt" : "increaseDebt",
1284
+ args: [change]
1285
+ })
1286
+ };
1287
+ }
1288
+ /**
1289
+ * {@inheritDoc ICreditAccountsService.prepareAddCollateral}
1290
+ */
1291
+ prepareAddCollateral(creditFacade, assets, permits) {
1292
+ return assets.map(({ token, balance }) => {
1293
+ const p = permits[token];
1294
+ if (p) return {
1295
+ target: creditFacade,
1296
+ callData: (0, viem.encodeFunctionData)({
1297
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1298
+ functionName: "addCollateralWithPermit",
1299
+ args: [
1300
+ token,
1301
+ balance,
1302
+ p.deadline,
1303
+ p.v,
1304
+ p.r,
1305
+ p.s
1306
+ ]
1307
+ })
1308
+ };
1309
+ return {
1310
+ target: creditFacade,
1311
+ callData: (0, viem.encodeFunctionData)({
1312
+ abi: require_abi_310_generated.iCreditFacadeMulticallV310Abi,
1313
+ functionName: "addCollateral",
1314
+ args: [token, balance]
1315
+ })
1316
+ };
1317
+ });
1318
+ }
1319
+ /**
1320
+ * Returns addresses of market configurators
1321
+ */
1322
+ get marketConfigurators() {
1323
+ return this.sdk.marketRegister.marketConfigurators.map((mc) => mc.address);
1324
+ }
1325
+ get rewardCompressor() {
1326
+ return this.sdk.addressProvider.mustGetLatest(require_sdk_constants_address_provider.AP_REWARDS_COMPRESSOR, require_sdk_constants_versions.VERSION_RANGE_310)[0];
1327
+ }
1328
+ get peripheryCompressor() {
1329
+ return this.sdk.addressProvider.mustGetLatest(require_sdk_constants_address_provider.AP_PERIPHERY_COMPRESSOR, require_sdk_constants_versions.VERSION_RANGE_310)[0];
1330
+ }
1331
+ get compressor() {
1332
+ if (!this.#compressor) {
1333
+ [this.#compressor] = this.sdk.addressProvider.mustGetLatest(require_sdk_constants_address_provider.AP_CREDIT_ACCOUNT_COMPRESSOR, require_sdk_constants_versions.VERSION_RANGE_310);
1334
+ this.logger?.debug(`credit account compressor address: ${this.#compressor}`);
1335
+ }
1336
+ return this.#compressor;
1337
+ }
1338
+ /**
1339
+ * Wrapper that selects between credit facade and RWA factory
1340
+ * @param suite
1341
+ * @param to
1342
+ * @param calls
1343
+ * @param referralCode
1344
+ * @param rwaOptions
1345
+ * @returns
1346
+ */
1347
+ async #openCreditAccountTx(suite, to, calls, referralCode, rwaOptions) {
1348
+ const factory = this.sdk.marketRegister.findByPool(suite.pool).rwaFactory;
1349
+ if (factory) return factory.openCreditAccount(suite.creditManager.address, calls, rwaOptions);
1350
+ return suite.creditFacade.openCreditAccount(to, calls, referralCode ?? 0n);
1351
+ }
1352
+ /**
1353
+ * Wrapper that selects between credit facade and RWA factory
1354
+ * @param suite
1355
+ * @param creditAccount
1356
+ * @param calls
1357
+ * @param rwaOptions
1358
+ * @returns
1359
+ */
1360
+ async #multicallTx(suite, creditAccount, calls, rwaOptions) {
1361
+ const factory = this.sdk.marketRegister.findByCreditManager(suite.creditManager.address).rwaFactory;
1362
+ if (factory) return factory.multicall(creditAccount, calls, rwaOptions);
1363
+ return suite.creditFacade.multicall(creditAccount, calls);
1364
+ }
1365
+ /**
1366
+ * Wrapper that selects between credit facade and RWA factory
1367
+ * @param suite
1368
+ * @param creditAccount
1369
+ * @param calls
1370
+ * @param operation
1371
+ * @param rwaOptions
1372
+ * @returns
1373
+ */
1374
+ async #closeCreditAccountTx(suite, creditAccount, calls, operation, rwaOptions) {
1375
+ const factory = this.sdk.marketRegister.findByCreditManager(suite.creditManager.address).rwaFactory;
1376
+ if (operation === "close") {
1377
+ if (factory) throw new Error("CloseOptions=close is not supported for RWA underlying credit accounts");
1378
+ return suite.creditFacade.closeCreditAccount(creditAccount, calls);
1379
+ }
1380
+ if (factory) return factory.multicall(creditAccount, calls, rwaOptions);
1381
+ return suite.creditFacade.multicall(creditAccount, calls);
1382
+ }
1383
+ /**
1384
+ * Withdrawal compressor of the current chain.
1385
+ * @throws If no withdrawal compressor is supported on the current chain.
1386
+ **/
1387
+ get #withdrawalCompressor() {
1388
+ const compressor = this.sdk.withdrawalCompressor;
1389
+ if (!compressor) throw new Error(`no withdrawal compressor on ${this.sdk.networkType}`);
1390
+ return compressor;
1391
+ }
9
1392
  };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var CreditAccountsServiceV310_exports = {};
20
- __export(CreditAccountsServiceV310_exports, {
21
- CreditAccountsServiceV310: () => CreditAccountsServiceV310,
22
- getWithdrawalCompressorAddress: () => getWithdrawalCompressorAddress
23
- });
24
- module.exports = __toCommonJS(CreditAccountsServiceV310_exports);
25
- var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
26
- var import_viem = require("viem");
27
- var import_generated = require("../../abi/310/generated.js");
28
- var import_creditAccountCompressor = require("../../abi/compressors/creditAccountCompressor.js");
29
- var import_peripheryCompressor = require("../../abi/compressors/peripheryCompressor.js");
30
- var import_rewardsCompressor = require("../../abi/compressors/rewardsCompressor.js");
31
- var import_IWithdrawalCompressorV310 = require("../../abi/IWithdrawalCompressorV310.js");
32
- var import_IWithdrawalCompressorV311 = require("../../abi/IWithdrawalCompressorV311.js");
33
- var import_iBaseRewardPool = require("../../abi/iBaseRewardPool.js");
34
- var import_iRWAFactory = require("../../abi/rwa/iRWAFactory.js");
35
- var import_base = require("../base/index.js");
36
- var import_chains = require("../chain/chains.js");
37
- var import_constants = require("../constants/index.js");
38
- var import_market = require("../market/index.js");
39
- var import_router = require("../router/index.js");
40
- var import_utils = require("../utils/index.js");
41
- var import_viem2 = require("../utils/viem/index.js");
42
- var import_multicall_utils = require("./multicall-utils.js");
43
- const COMPRESSORS = {
44
- [import_chains.chains.Mainnet.id]: {
45
- address: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023",
46
- version: 310
47
- },
48
- [import_chains.chains.Monad.id]: {
49
- address: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023",
50
- version: 310
51
- }
52
- };
53
- function getWithdrawalCompressorAddress(chainId) {
54
- return COMPRESSORS[chainId];
55
- }
56
- class CreditAccountsServiceV310 extends import_base.SDKConstruct {
57
- #compressor;
58
- #batchSize;
59
- constructor(sdk, options) {
60
- super(sdk);
61
- this.#batchSize = options?.batchSize;
62
- }
63
- setBatchSize(batchSize) {
64
- this.#batchSize = batchSize;
65
- }
66
- /**
67
- * {@inheritDoc ICreditAccountsService.getCreditAccountData}
68
- **/
69
- async getCreditAccountData(account, blockNumber) {
70
- let raw;
71
- try {
72
- raw = await this.client.readContract({
73
- abi: import_creditAccountCompressor.creditAccountCompressorAbi,
74
- address: this.compressor,
75
- functionName: "getCreditAccountData",
76
- args: [account],
77
- blockNumber,
78
- // @ts-expect-error
79
- gas: this.sdk.gasLimit
80
- });
81
- } catch (_e) {
82
- return void 0;
83
- }
84
- const marketSuite = this.sdk.marketRegister.findByCreditManager(
85
- raw.creditManager
86
- );
87
- const factory = marketSuite.rwaFactory;
88
- let ca;
89
- let investor;
90
- if (raw.success) {
91
- ca = raw;
92
- investor = await factory?.getInvestor(raw.creditAccount, false);
93
- } else {
94
- const { txs: priceUpdateTxs } = await this.#getUpdateForAccount(raw);
95
- [ca, investor] = await (0, import_viem2.simulateWithPriceUpdates)(this.client, {
96
- priceUpdates: priceUpdateTxs,
97
- contracts: [
98
- {
99
- abi: import_creditAccountCompressor.creditAccountCompressorAbi,
100
- address: this.compressor,
101
- functionName: "getCreditAccountData",
102
- args: [account]
103
- },
104
- ...factory ? [
105
- {
106
- abi: import_iRWAFactory.iRWAFactoryAbi,
107
- address: factory.address,
108
- functionName: "getInvestor",
109
- args: [raw.creditAccount]
110
- }
111
- ] : []
112
- ],
113
- blockNumber,
114
- gas: this.sdk.gasLimit
115
- });
116
- }
117
- return { ...ca, investor };
118
- }
119
- /**
120
- * {@inheritDoc ICreditAccountsService.getCreditAccounts}
121
- **/
122
- async getCreditAccounts(options, blockNumber) {
123
- const {
124
- creditManager,
125
- includeZeroDebt = false,
126
- maxHealthFactor = import_constants.MAX_UINT256,
127
- minHealthFactor = 0n,
128
- owner = import_constants.ADDRESS_0X0,
129
- ignoreReservePrices = false
130
- } = options ?? {};
131
- const arg0 = creditManager ?? {
132
- configurators: this.marketConfigurators,
133
- creditManagers: [],
134
- pools: [],
135
- underlying: import_constants.ADDRESS_0X0
136
- };
137
- const caFilter = {
138
- owner,
139
- includeZeroDebt,
140
- minHealthFactor,
141
- maxHealthFactor,
142
- reverting: false
143
- };
144
- const { txs: priceUpdateTxs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
145
- ignoreReservePrices ? { main: true } : void 0
146
- );
147
- const allCAs = [];
148
- let revertingOffset = 0;
149
- for (const reverting of [false, true]) {
150
- let offset = 0n;
151
- revertingOffset = allCAs.length;
152
- do {
153
- const [accounts, newOffset] = await this.#getCreditAccounts(
154
- this.#batchSize ? [
155
- arg0,
156
- { ...caFilter, reverting },
157
- offset,
158
- BigInt(this.#batchSize)
159
- // limit
160
- ] : [arg0, { ...caFilter, reverting }, offset],
161
- priceUpdateTxs,
162
- blockNumber
163
- );
164
- allCAs.push(...accounts);
165
- offset = newOffset;
166
- } while (offset !== 0n);
167
- }
168
- this.logger?.debug(
169
- `loaded ${allCAs.length} credit accounts (${allCAs.length - revertingOffset} reverting)`
170
- );
171
- return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
172
- }
173
- /**
174
- * {@inheritDoc ICreditAccountsService.getBorrowerCreditAccounts}
175
- **/
176
- async getBorrowerCreditAccounts(borrower, options, blockNumber) {
177
- const {
178
- creditManager,
179
- includeZeroDebt = false,
180
- maxHealthFactor = import_constants.MAX_UINT256,
181
- minHealthFactor = 0n,
182
- ignoreReservePrices = false
183
- } = options ?? {};
184
- const { txs: priceUpdateTxs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
185
- ignoreReservePrices ? { main: true } : void 0
186
- );
187
- const investorDataList = await this.sdk.rwa.getInvestorData(borrower);
188
- const rwaAccountAddresses = investorDataList.flatMap(
189
- (d) => d.creditAccounts.map((ca) => ca.creditAccount)
190
- );
191
- const cmFilter = creditManager ? {
192
- configurators: [],
193
- creditManagers: [creditManager],
194
- pools: [],
195
- underlying: import_constants.ADDRESS_0X0
196
- } : {
197
- configurators: this.marketConfigurators,
198
- creditManagers: [],
199
- pools: [],
200
- underlying: import_constants.ADDRESS_0X0
201
- };
202
- const permissiveFilter = {
203
- owner: borrower,
204
- includeZeroDebt: true,
205
- minHealthFactor: 0n,
206
- maxHealthFactor: import_constants.MAX_UINT256,
207
- reverting: false
208
- };
209
- const rwaContracts = rwaAccountAddresses.map(
210
- (account) => ({
211
- abi: import_creditAccountCompressor.creditAccountCompressorAbi,
212
- address: this.compressor,
213
- functionName: "getCreditAccountData",
214
- args: [account]
215
- })
216
- );
217
- const getCreditAccountsContracts = [false, true].map(
218
- (reverting) => ({
219
- abi: import_creditAccountCompressor.creditAccountCompressorAbi,
220
- address: this.compressor,
221
- functionName: "getCreditAccounts",
222
- args: [cmFilter, { ...permissiveFilter, reverting }, 0n]
223
- })
224
- );
225
- const allContracts = [...rwaContracts, ...getCreditAccountsContracts];
226
- const results = await (0, import_viem2.simulateWithPriceUpdates)(this.client, {
227
- priceUpdates: priceUpdateTxs,
228
- contracts: allContracts,
229
- blockNumber,
230
- gas: this.sdk.gasLimit
231
- });
232
- const rwaResults = results.slice(
233
- 0,
234
- rwaAccountAddresses.length
235
- );
236
- const normalResults = results.slice(rwaAccountAddresses.length);
237
- const seen = new import_utils.AddressSet();
238
- const allCAs = [];
239
- for (const ca of rwaResults) {
240
- if (!seen.has(ca.creditAccount)) {
241
- seen.add(ca.creditAccount);
242
- allCAs.push({ ...ca, investor: borrower });
243
- }
244
- }
245
- for (const [accounts] of normalResults) {
246
- for (const ca of accounts) {
247
- if (!seen.has(ca.creditAccount)) {
248
- seen.add(ca.creditAccount);
249
- allCAs.push({ ...ca, investor: void 0 });
250
- }
251
- }
252
- }
253
- const filtered = allCAs.filter((ca) => {
254
- if (!includeZeroDebt && ca.debt === 0n) return false;
255
- if (ca.healthFactor < minHealthFactor) return false;
256
- if (ca.healthFactor > maxHealthFactor) return false;
257
- if (creditManager && !(0, import_utils.hexEq)(ca.creditManager, creditManager))
258
- return false;
259
- return true;
260
- });
261
- this.logger?.debug(
262
- `loaded ${allCAs.length} borrower credit accounts (${rwaResults.length} RWA, ${filtered.length} after filter)`
263
- );
264
- return filtered.sort((a, b) => Number(a.healthFactor - b.healthFactor));
265
- }
266
- /**
267
- * {@inheritDoc ICreditAccountsService.getRewards}
268
- **/
269
- async getRewards(creditAccount) {
270
- const rewards = await this.client.readContract({
271
- abi: import_rewardsCompressor.rewardsCompressorAbi,
272
- address: this.rewardCompressor,
273
- functionName: "getRewards",
274
- args: [creditAccount]
275
- });
276
- const callData = (0, import_viem.encodeFunctionData)({
277
- abi: import_iBaseRewardPool.iBaseRewardPoolAbi,
278
- functionName: "getReward",
279
- args: []
280
- });
281
- const r = rewards.reduce((acc, r2) => {
282
- const adapter = r2.adapter.toLowerCase();
283
- const stakedPhantomToken = r2.stakedPhantomToken.toLowerCase();
284
- const rewardToken = r2.rewardToken.toLowerCase();
285
- const key = [adapter, stakedPhantomToken].join("-");
286
- if (!acc[key]) {
287
- acc[key] = {
288
- adapter,
289
- stakedPhantomToken,
290
- calls: [
291
- {
292
- target: adapter,
293
- callData
294
- }
295
- ],
296
- rewards: []
297
- };
298
- }
299
- acc[key].rewards.push({
300
- token: rewardToken,
301
- balance: r2.amount
302
- });
303
- return acc;
304
- }, {});
305
- return Object.values(r);
306
- }
307
- /**
308
- * {@inheritDoc ICreditAccountsService.getConnectedBots}
309
- **/
310
- async getConnectedBots(accountsToCheck, legacyMigrationBot, additionalBots) {
311
- const allResp = await this.client.multicall({
312
- contracts: [
313
- ...accountsToCheck.map((o) => {
314
- const pool = this.sdk.marketRegister.findByCreditManager(
315
- o.creditManager
316
- );
317
- return {
318
- abi: import_peripheryCompressor.peripheryCompressorAbi,
319
- address: this.peripheryCompressor,
320
- functionName: "getConnectedBots",
321
- args: [pool.configurator.address, o.creditAccount]
322
- };
323
- }),
324
- ...legacyMigrationBot ? accountsToCheck.map((ca) => {
325
- const cm = this.sdk.marketRegister.findCreditManager(
326
- ca.creditManager
327
- );
328
- return {
329
- abi: import_generated.iBotListV310Abi,
330
- address: cm.creditFacade.botList,
331
- functionName: "getBotStatus",
332
- args: [legacyMigrationBot, ca.creditAccount]
333
- };
334
- }) : [],
335
- ...accountsToCheck.flatMap((ca) => {
336
- const cm = this.sdk.marketRegister.findCreditManager(
337
- ca.creditManager
338
- );
339
- return additionalBots.map((bot) => {
340
- return {
341
- abi: import_generated.iBotListV310Abi,
342
- address: cm.creditFacade.botList,
343
- functionName: "getBotStatus",
344
- args: [bot, ca.creditAccount]
345
- };
346
- });
347
- })
348
- ],
349
- allowFailure: true,
350
- batchSize: 0
351
- });
352
- const legacyStart = 0;
353
- const legacyEnd = accountsToCheck.length;
354
- const legacy = allResp.slice(
355
- legacyStart,
356
- legacyEnd
357
- );
358
- const migrationStart = legacyEnd;
359
- const migrationEnd = legacyMigrationBot ? migrationStart + accountsToCheck.length : migrationStart;
360
- const migrationResp = allResp.slice(
361
- migrationStart,
362
- migrationEnd
363
- );
364
- const additionalStart = migrationEnd;
365
- const additionalResp = allResp.slice(
366
- additionalStart
367
- );
368
- return {
369
- legacy,
370
- additionalBots: this.#getActiveBots(
371
- accountsToCheck,
372
- additionalBots,
373
- additionalResp
374
- ),
375
- legacyMigration: this.#getActiveMigrationBots(
376
- accountsToCheck,
377
- legacyMigrationBot,
378
- migrationResp
379
- )
380
- };
381
- }
382
- #getActiveBots(accountsToCheck, bots, result) {
383
- if (result.length !== bots.length * accountsToCheck.length) {
384
- console.error(
385
- "result length mismatch",
386
- result.length,
387
- bots.length * accountsToCheck.length
388
- );
389
- }
390
- const botsByCAIndex = accountsToCheck.reduce((acc, _, index) => {
391
- const r = result.slice(index * bots.length, (index + 1) * bots.length);
392
- acc.push({
393
- result: r
394
- });
395
- return acc;
396
- }, []);
397
- return botsByCAIndex;
398
- }
399
- #getActiveMigrationBots(accountsToCheck, bot, result) {
400
- if (bot) {
401
- if (result.length !== accountsToCheck.length) {
402
- console.error(
403
- "result length mismatch for migration bots",
404
- result.length,
405
- accountsToCheck.length
406
- );
407
- }
408
- return { result, botAddress: bot };
409
- }
410
- return void 0;
411
- }
412
- /**
413
- * {@inheritDoc ICreditAccountsService.fullyLiquidate}
414
- **/
415
- async fullyLiquidate(props) {
416
- const {
417
- account,
418
- to,
419
- slippage = 50n,
420
- keepAssets,
421
- ignoreReservePrices,
422
- applyLossPolicy,
423
- debtOnly
424
- } = props;
425
- const cm = this.sdk.marketRegister.findCreditManager(account.creditManager);
426
- const routerCloseResult = await this.sdk.routerFor(account).findBestClosePath({
427
- creditAccount: account,
428
- creditManager: cm.creditManager,
429
- slippage,
430
- keepAssets,
431
- debtOnly
432
- });
433
- const calls = await this.#prependPriceUpdates(
434
- account.creditManager,
435
- routerCloseResult.calls,
436
- account,
437
- { ignoreReservePrices }
438
- );
439
- let lossPolicyData;
440
- if (applyLossPolicy) {
441
- const market = this.sdk.marketRegister.findByCreditManager(
442
- account.creditManager
443
- );
444
- lossPolicyData = await market.lossPolicy.getLiquidationData(
445
- account.creditAccount
446
- );
447
- this.logger?.debug({ lossPolicyData }, "loss policy data");
448
- }
449
- const tx = cm.creditFacade.liquidateCreditAccount(
450
- account.creditAccount,
451
- to,
452
- calls,
453
- lossPolicyData
454
- );
455
- return {
456
- tx,
457
- calls,
458
- routerCloseResult,
459
- lossPolicyData,
460
- creditFacade: cm.creditFacade
461
- };
462
- }
463
- /**
464
- * {@inheritDoc ICreditAccountsService.defaultPartialLiquidationParams}
465
- */
466
- defaultPartialLiquidationParams(ca) {
467
- const tokenOut = this.#getBestTokenOut(ca);
468
- const optimalHF = this.getOptimalHFForPartialLiquidation(ca);
469
- const repaidAmount = this.#calcOptimalRepaidAmount(ca, tokenOut, optimalHF);
470
- const minSeizedAmount = this.#calcMinSeizedAmount(
471
- ca,
472
- tokenOut,
473
- repaidAmount
474
- );
475
- return { tokenOut, optimalHF, repaidAmount, minSeizedAmount };
476
- }
477
- /**
478
- * {@inheritDoc ICreditAccountsService.partiallyLiquidate}
479
- */
480
- async partiallyLiquidate(props) {
481
- const { account, to } = props;
482
- const tokenOut = props.tokenOut ?? this.#getBestTokenOut(account);
483
- const optimalHF = props.optimalHF ?? this.getOptimalHFForPartialLiquidation(account);
484
- const repaidAmount = props.repaidAmount ?? this.#calcOptimalRepaidAmount(account, tokenOut, optimalHF);
485
- const minSeizedAmount = props.minSeizedAmount ?? this.#calcMinSeizedAmount(account, tokenOut, repaidAmount);
486
- const cm = this.sdk.marketRegister.findCreditManager(account.creditManager);
487
- const updates = await this.getOnDemandPriceUpdates(account, true);
488
- const tx = cm.creditFacade.partiallyLiquidateCreditAccount(
489
- account.creditAccount,
490
- tokenOut,
491
- repaidAmount,
492
- minSeizedAmount,
493
- to,
494
- updates
495
- );
496
- return tx;
497
- }
498
- /**
499
- * Picks the most valuable enabled non-underlying collateral token on the
500
- * credit account (by oracle value in underlying).
501
- *
502
- * Ported from solidity:
503
- * https://github.com/Gearbox-protocol/router-v3/blob/main/contracts/liquidation/AbstractLiquidator.sol#L270
504
- */
505
- #getBestTokenOut(account) {
506
- const market = this.sdk.marketRegister.findByCreditManager(
507
- account.creditManager
508
- );
509
- const underlying = market.underlying;
510
- let bestVal = 0n;
511
- let bestToken;
512
- for (const t of account.tokens) {
513
- if (t.token === underlying) continue;
514
- if ((t.mask & account.enabledTokensMask) === 0n) continue;
515
- if (t.balance === 0n) continue;
516
- const val = market.priceOracle.convert(t.token, underlying, t.balance);
517
- if (val > bestVal) {
518
- bestVal = val;
519
- bestToken = t.token;
520
- }
521
- }
522
- if (!bestToken) {
523
- throw new Error(
524
- `cannot determine tokenOut for partial liquidation of ${this.sdk.labelAddress(account.creditAccount)}: no enabled non-underlying collateral with value`
525
- );
526
- }
527
- return bestToken;
528
- }
529
- /**
530
- * Returns the minimum amount of `token` collateral that must be seized when
531
- * repaying `repaidAmount` of underlying. Mirrors the on-chain liquidation
532
- * discount math, expired-aware.
533
- */
534
- #calcMinSeizedAmount(account, token, repaidAmount) {
535
- const market = this.sdk.marketRegister.findByCreditManager(
536
- account.creditManager
537
- );
538
- const suite = this.sdk.marketRegister.findCreditManager(
539
- account.creditManager
540
- );
541
- const fee = suite.isExpired ? suite.creditManager.liquidationDiscountExpired : suite.creditManager.liquidationDiscount;
542
- const tokenAmount = market.priceOracle.convert(
543
- market.underlying,
544
- token,
545
- repaidAmount
546
- );
547
- return tokenAmount * 9990n / BigInt(fee);
548
- }
549
- /**
550
- * Computes the optimal `repaidAmount` (in underlying) that brings the credit
551
- * account's health factor close to `optimalHF` after partial liquidation.
552
- *
553
- * Ported from solidity:
554
- * https://github.com/Gearbox-protocol/router-v3/blob/56e2d515ec6d9bb1e324e71c3708e59710779b24/contracts/liquidation/AbstractLiquidator.sol#L292
555
- */
556
- #calcOptimalRepaidAmount(account, token, optimalHF) {
557
- const suite = this.sdk.marketRegister.findCreditManager(
558
- account.creditManager
559
- );
560
- const market = this.sdk.marketRegister.findByCreditManager(
561
- account.creditManager
562
- );
563
- const cm = suite.creditManager;
564
- const feeLiquidation = suite.isExpired ? cm.feeLiquidationExpired : cm.feeLiquidation;
565
- const liquidationDiscount = suite.isExpired ? cm.liquidationDiscountExpired : cm.liquidationDiscount;
566
- const discount = BigInt(liquidationDiscount) - BigInt(feeLiquidation);
567
- const ltTokenOut = cm.liquidationThresholds.get(token);
568
- if (ltTokenOut === void 0) {
569
- throw new Error(
570
- `token ${this.sdk.labelAddress(token)} is not a collateral token in credit manager ${this.sdk.labelAddress(account.creditManager)}`
571
- );
572
- }
573
- const totalDebt = account.debt + account.accruedInterest + account.accruedFees;
574
- const twvUnderlying = market.priceOracle.convertFromUSD(
575
- market.underlying,
576
- account.twvUSD
577
- );
578
- const denominator = discount * optimalHF / import_constants.PERCENTAGE_FACTOR - BigInt(ltTokenOut);
579
- if (denominator <= 0n) {
580
- throw new Error(
581
- "cannot compute optimal repaid amount: invalid liquidation parameters (discount * hfOptimal <= ltTokenOut)"
582
- );
583
- }
584
- const numerator = totalDebt * optimalHF - twvUnderlying * import_constants.PERCENTAGE_FACTOR;
585
- if (numerator <= 0n) {
586
- return 0n;
587
- }
588
- const optimalValueSeized = numerator / denominator;
589
- let repaidAmount = optimalValueSeized * discount / import_constants.PERCENTAGE_FACTOR;
590
- const minDebt = suite.creditFacade.minDebt;
591
- if (totalDebt < minDebt) {
592
- return 0n;
593
- }
594
- const surplusDebt = totalDebt - minDebt;
595
- if (repaidAmount > surplusDebt) {
596
- repaidAmount = surplusDebt * 999n / 1000n;
597
- }
598
- return repaidAmount;
599
- }
600
- /**
601
- * {@inheritDoc ICreditAccountsService.closeCreditAccount}
602
- **/
603
- async closeCreditAccount({
604
- operation,
605
- assetsToWithdraw,
606
- creditAccount: ca,
607
- to,
608
- slippage = 50n,
609
- closePath
610
- }) {
611
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
612
- await this.sdk.tokensMeta.loadTokenData(cm.underlying);
613
- const underlying = this.sdk.tokensMeta.mustGet(cm.underlying);
614
- if (this.sdk.tokensMeta.isRWAUnderlying(underlying)) {
615
- throw new Error(
616
- "closeCreditAccount is not supported for RWA underlying credit accounts"
617
- );
618
- }
619
- const routerCloseResult = closePath || await this.sdk.routerFor(ca).findBestClosePath({
620
- creditAccount: ca,
621
- creditManager: cm.creditManager,
622
- slippage
623
- });
624
- const operationCalls = [
625
- ...routerCloseResult.calls,
626
- ...this.#prepareDisableQuotas(ca),
627
- ...this.#prepareDecreaseDebt(ca),
628
- ...assetsToWithdraw.map(
629
- (t) => this.#prepareWithdrawToken(ca.creditFacade, t, import_constants.MAX_UINT256, to)
630
- )
631
- ];
632
- const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
633
- const tx = await this.#closeCreditAccountTx(
634
- cm,
635
- ca.creditAccount,
636
- calls,
637
- operation
638
- );
639
- return { tx, calls, routerCloseResult, creditFacade: cm.creditFacade };
640
- }
641
- /**
642
- * {@inheritDoc ICreditAccountsService.updateQuotas}
643
- **/
644
- async updateQuotas({
645
- minQuota,
646
- averageQuota,
647
- creditAccount
648
- }) {
649
- const cm = this.sdk.marketRegister.findCreditManager(
650
- creditAccount.creditManager
651
- );
652
- const operationCalls = this.#prepareUpdateQuotas(
653
- creditAccount.creditFacade,
654
- { minQuota, averageQuota }
655
- );
656
- const calls = await this.#prependPriceUpdates(
657
- creditAccount.creditManager,
658
- operationCalls,
659
- creditAccount
660
- );
661
- const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
662
- return { tx, calls, creditFacade: cm.creditFacade };
663
- }
664
- /**
665
- * {@inheritDoc ICreditAccountsService.addCollateral}
666
- **/
667
- async addCollateral({
668
- creditAccount,
669
- asset,
670
- permit,
671
- ethAmount,
672
- minQuota,
673
- averageQuota
674
- }) {
675
- const cm = this.sdk.marketRegister.findCreditManager(
676
- creditAccount.creditManager
677
- );
678
- const operationCalls = [
679
- ...this.#prepareAddCollateral(
680
- creditAccount.creditFacade,
681
- [asset],
682
- permit ? { [asset.token]: permit } : {}
683
- ),
684
- ...this.#prepareUpdateQuotas(creditAccount.creditFacade, {
685
- minQuota,
686
- averageQuota
687
- })
688
- ];
689
- const calls = await this.#prependPriceUpdates(
690
- creditAccount.creditManager,
691
- operationCalls,
692
- creditAccount
693
- );
694
- const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
695
- tx.value = ethAmount.toString(10);
696
- return { tx, calls, creditFacade: cm.creditFacade };
697
- }
698
- /**
699
- * {@inheritDoc ICreditAccountsService.changeDebt}
700
- **/
701
- async changeDebt({
702
- creditAccount,
703
- amount,
704
- collateral
705
- }) {
706
- if (amount === 0n) {
707
- throw new Error("debt increase or decrease must be non-zero");
708
- }
709
- const isDecrease = amount < 0n;
710
- const change = amount > 0n ? amount : -amount;
711
- const cm = this.sdk.marketRegister.findCreditManager(
712
- creditAccount.creditManager
713
- );
714
- const addCollateralCalls = collateral && isDecrease ? this.#prepareAddCollateral(
715
- creditAccount.creditFacade,
716
- [
717
- {
718
- token: collateral[0].token,
719
- balance: collateral[0].balance
720
- }
721
- ],
722
- {}
723
- ) : [];
724
- const unwrapCalls = collateral && isDecrease ? await this.getRWAUnwrapCalls(
725
- collateral[0].balance,
726
- creditAccount.creditManager
727
- ) || [] : [];
728
- if (addCollateralCalls.length > 0 && unwrapCalls.length === 0 && collateral && collateral?.[0].token !== creditAccount.underlying) {
729
- throw new Error(
730
- "Can't use collateral other than underlying for non RWA market"
731
- );
732
- }
733
- const operationCalls = [
734
- ...addCollateralCalls,
735
- ...unwrapCalls,
736
- this.#prepareChangeDebt(creditAccount.creditFacade, change, isDecrease)
737
- ];
738
- const calls = await this.#prependPriceUpdates(
739
- creditAccount.creditManager,
740
- operationCalls,
741
- creditAccount
742
- );
743
- const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
744
- return { tx, calls, creditFacade: cm.creditFacade };
745
- }
746
- /**
747
- * {@inheritDoc ICreditAccountsService.executeSwap}
748
- **/
749
- async executeSwap({
750
- creditAccount,
751
- calls: swapCalls,
752
- minQuota,
753
- averageQuota
754
- }) {
755
- if (swapCalls.length === 0) throw new Error("No path to execute");
756
- const cm = this.sdk.marketRegister.findCreditManager(
757
- creditAccount.creditManager
758
- );
759
- const operationCalls = [
760
- ...swapCalls,
761
- ...this.#prepareUpdateQuotas(creditAccount.creditFacade, {
762
- minQuota,
763
- averageQuota
764
- })
765
- ];
766
- const calls = await this.#prependPriceUpdates(
767
- creditAccount.creditManager,
768
- operationCalls,
769
- creditAccount
770
- );
771
- const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
772
- return { tx, calls, creditFacade: cm.creditFacade };
773
- }
774
- /**
775
- * {@inheritDoc ICreditAccountsService.previewDelayedWithdrawal}
776
- **/
777
- async previewDelayedWithdrawal({
778
- creditAccount,
779
- amount,
780
- token
781
- }) {
782
- const compressor = getWithdrawalCompressorAddress(this.sdk.chainId);
783
- if (!compressor)
784
- throw new Error(
785
- `No compressor for current chain ${this.sdk.networkType}`
786
- );
787
- const contract = (0, import_viem.getContract)({
788
- address: compressor.address,
789
- abi: compressor.version === 310 ? import_IWithdrawalCompressorV310.iWithdrawalCompressorV310Abi : import_IWithdrawalCompressorV311.iWithdrawalCompressorV311Abi,
790
- client: this.client
791
- });
792
- const resp = await contract.read.getWithdrawalRequestResult([
793
- creditAccount,
794
- token,
795
- amount
796
- ]);
797
- return resp;
798
- }
799
- /**
800
- * {@inheritDoc ICreditAccountsService.getPendingWithdrawals}
801
- **/
802
- async getPendingWithdrawals({
803
- creditAccount
804
- }) {
805
- const compressor = getWithdrawalCompressorAddress(this.sdk.chainId);
806
- if (!compressor)
807
- throw new Error(
808
- `No compressor for current chain ${this.sdk.networkType}`
809
- );
810
- const contract = (0, import_viem.getContract)({
811
- address: compressor.address,
812
- abi: compressor.version === 310 ? import_IWithdrawalCompressorV310.iWithdrawalCompressorV310Abi : import_IWithdrawalCompressorV311.iWithdrawalCompressorV311Abi,
813
- client: this.client
814
- });
815
- const resp = await contract.read.getCurrentWithdrawals([creditAccount]);
816
- const claimableNow = resp?.[0] || [];
817
- const pendingResult = [...resp?.[1] || []].sort(
818
- (a, b) => a.claimableAt < b.claimableAt ? -1 : 1
819
- );
820
- const respResult = {
821
- claimableNow: [...claimableNow],
822
- pending: pendingResult
823
- };
824
- return respResult;
825
- }
826
- /**
827
- * {@inheritDoc ICreditAccountsService.startDelayedWithdrawal}
828
- **/
829
- async startDelayedWithdrawal({
830
- creditAccount,
831
- minQuota,
832
- averageQuota,
833
- preview
834
- }) {
835
- const cm = this.sdk.marketRegister.findCreditManager(
836
- creditAccount.creditManager
837
- );
838
- const record = preview.outputs.reduce((acc, o) => {
839
- const token = o.token.toLowerCase();
840
- acc[token] = (acc[token] || 0n) + o.amount;
841
- return acc;
842
- }, {});
843
- const balances = Object.entries(record).filter(([, a]) => a > 10n);
844
- const storeExpectedBalances = {
845
- target: cm.creditFacade.address,
846
- callData: (0, import_viem.encodeFunctionData)({
847
- abi: import_generated.iCreditFacadeMulticallV310Abi,
848
- functionName: "storeExpectedBalances",
849
- args: [
850
- balances.map(([token, amount]) => ({
851
- token,
852
- amount: amount > 10n ? amount - 10n : 0n
853
- }))
854
- ]
855
- })
856
- };
857
- const compareBalances = {
858
- target: cm.creditFacade.address,
859
- callData: (0, import_viem.encodeFunctionData)({
860
- abi: import_generated.iCreditFacadeMulticallV310Abi,
861
- functionName: "compareBalances",
862
- args: []
863
- })
864
- };
865
- const operationCalls = [
866
- storeExpectedBalances,
867
- ...preview.requestCalls,
868
- compareBalances,
869
- ...this.#prepareUpdateQuotas(creditAccount.creditFacade, {
870
- minQuota,
871
- averageQuota
872
- })
873
- ];
874
- const calls = await this.#prependPriceUpdates(
875
- creditAccount.creditManager,
876
- operationCalls,
877
- creditAccount
878
- );
879
- const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
880
- return { tx, calls, creditFacade: cm.creditFacade };
881
- }
882
- /**
883
- * {@inheritDoc ICreditAccountsService.claimDelayed}
884
- **/
885
- async claimDelayed({
886
- creditAccount,
887
- minQuota,
888
- averageQuota,
889
- claimableNow
890
- }) {
891
- const zeroDebt = creditAccount.debt === 0n;
892
- const cm = this.sdk.marketRegister.findCreditManager(
893
- creditAccount.creditManager
894
- );
895
- const record = claimableNow.outputs.reduce(
896
- (acc, o) => {
897
- const token = o.token.toLowerCase();
898
- acc[token] = (acc[token] || 0n) + o.amount;
899
- return acc;
900
- },
901
- {}
902
- );
903
- const balances = Object.entries(record).filter(([, a]) => a > 10n);
904
- const storeExpectedBalances = {
905
- target: cm.creditFacade.address,
906
- callData: (0, import_viem.encodeFunctionData)({
907
- abi: import_generated.iCreditFacadeMulticallV310Abi,
908
- functionName: "storeExpectedBalances",
909
- args: [
910
- balances.map(([token, amount]) => ({
911
- token,
912
- amount: amount > 10n ? amount - 10n : 0n
913
- }))
914
- ]
915
- })
916
- };
917
- const compareBalances = {
918
- target: cm.creditFacade.address,
919
- callData: (0, import_viem.encodeFunctionData)({
920
- abi: import_generated.iCreditFacadeMulticallV310Abi,
921
- functionName: "compareBalances",
922
- args: []
923
- })
924
- };
925
- const quotaCalls = zeroDebt ? [] : this.#prepareUpdateQuotas(creditAccount.creditFacade, {
926
- minQuota,
927
- averageQuota
928
- });
929
- const operationCalls = [
930
- storeExpectedBalances,
931
- ...claimableNow.claimCalls,
932
- compareBalances,
933
- ...quotaCalls
934
- ];
935
- const calls = zeroDebt ? operationCalls : await this.#prependPriceUpdates(
936
- creditAccount.creditManager,
937
- operationCalls,
938
- creditAccount
939
- );
940
- const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
941
- return { tx, calls, creditFacade: cm.creditFacade };
942
- }
943
- /**
944
- * {@inheritDoc ICreditAccountsService.getApprovalAddress}
945
- **/
946
- async getApprovalAddress(options) {
947
- const { creditManager } = options;
948
- const suite = this.sdk.marketRegister.findCreditManager(creditManager);
949
- const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
950
- const factory = marketSuite.rwaFactory;
951
- if (factory) {
952
- return factory.getApprovalAddress(options);
953
- }
954
- return suite.creditManager.address;
955
- }
956
- /**
957
- * {@inheritDoc ICreditAccountsService.getOpenAccountRequirements}
958
- */
959
- async getOpenAccountRequirements(borrower, creditManager, props) {
960
- const { rwaFactory } = this.sdk.marketRegister.findByCreditManager(creditManager);
961
- if (!rwaFactory) {
962
- return void 0;
963
- }
964
- return rwaFactory.getOpenAccountRequirements(borrower, props);
965
- }
966
- /**
967
- * {@inheritDoc ICreditAccountsService.openCA}
968
- **/
969
- async openCA(props) {
970
- const {
971
- ethAmount,
972
- creditManager,
973
- reopenCreditAccount,
974
- collateral,
975
- permits,
976
- debt,
977
- withdrawToken,
978
- referralCode,
979
- to,
980
- calls: openPathCalls,
981
- callsAfter,
982
- minQuota,
983
- averageQuota,
984
- rwaOptions
985
- } = props;
986
- const cmSuite = this.sdk.marketRegister.findCreditManager(creditManager);
987
- const cm = cmSuite.creditManager;
988
- let tokenToWithdraw;
989
- if (withdrawToken === true) {
990
- tokenToWithdraw = cm.underlying;
991
- } else if (typeof withdrawToken === "string") {
992
- tokenToWithdraw = withdrawToken;
993
- }
994
- const operationCalls = [
995
- this.#prepareIncreaseDebt(cm.creditFacade, debt),
996
- ...this.#prepareAddCollateral(cm.creditFacade, collateral, permits),
997
- ...openPathCalls,
998
- // path from underlying to withdrawal token
999
- ...tokenToWithdraw ? [
1000
- this.#prepareWithdrawToken(
1001
- cm.creditFacade,
1002
- tokenToWithdraw,
1003
- import_constants.MAX_UINT256,
1004
- to
1005
- )
1006
- ] : [],
1007
- ...this.#prepareUpdateQuotas(cm.creditFacade, {
1008
- minQuota,
1009
- averageQuota
1010
- }),
1011
- ...callsAfter ?? []
1012
- ];
1013
- const calls = await this.#prependPriceUpdates(cm.address, operationCalls);
1014
- let tx;
1015
- if (reopenCreditAccount) {
1016
- tx = await this.#multicallTx(cmSuite, reopenCreditAccount, calls);
1017
- } else {
1018
- tx = await this.#openCreditAccountTx(
1019
- cmSuite,
1020
- to,
1021
- calls,
1022
- referralCode,
1023
- rwaOptions
1024
- );
1025
- }
1026
- tx.value = ethAmount.toString(10);
1027
- return { calls, tx, creditFacade: cmSuite.creditFacade };
1028
- }
1029
- /**
1030
- * {@inheritDoc ICreditAccountsService.getBorrowRate}
1031
- **/
1032
- getBorrowRate(ca) {
1033
- const { creditManager } = this.sdk.marketRegister.findCreditManager(
1034
- ca.creditManager
1035
- );
1036
- const { pool } = this.sdk.marketRegister.findByCreditManager(
1037
- ca.creditManager
1038
- );
1039
- const { feeInterest } = creditManager;
1040
- const { baseInterestRate } = pool.pool;
1041
- const baseRateWithFee = baseInterestRate * (BigInt(feeInterest) + import_constants.PERCENTAGE_FACTOR);
1042
- const totalDebt = ca.debt + ca.accruedInterest + ca.accruedFees;
1043
- const r = ca.debt * baseRateWithFee / (totalDebt * import_constants.RAY);
1044
- const caTokens = new import_utils.AddressMap(ca.tokens.map((t) => [t.token, t]));
1045
- let qr = 0n;
1046
- for (const t of creditManager.collateralTokens) {
1047
- const b = caTokens.get(t);
1048
- if (b) {
1049
- qr += b.quota * BigInt(pool.pqk.quotas.get(t)?.rate ?? 0);
1050
- }
1051
- }
1052
- qr = qr * (BigInt(feeInterest) + import_constants.PERCENTAGE_FACTOR) / import_constants.PERCENTAGE_FACTOR;
1053
- qr /= totalDebt;
1054
- return r + qr;
1055
- }
1056
- /**
1057
- * {@inheritDoc ICreditAccountsService.getOptimalHFForPartialLiquidation}
1058
- **/
1059
- getOptimalHFForPartialLiquidation(ca) {
1060
- const borrowRate = this.getBorrowRate(ca);
1061
- return import_constants.PERCENTAGE_FACTOR + (borrowRate < 100n ? borrowRate : 100n);
1062
- }
1063
- /**
1064
- * Internal wrapper for CreditAccountCompressor.getCreditAccounts + price updates wrapped into multicall
1065
- * @param args
1066
- * @param priceUpdateTxs
1067
- * @param blockNumber
1068
- * @returns
1069
- */
1070
- async #getCreditAccounts(args, priceUpdateTxs, blockNumber) {
1071
- let resp;
1072
- if (priceUpdateTxs?.length) {
1073
- [resp] = await (0, import_viem2.simulateWithPriceUpdates)(this.client, {
1074
- priceUpdates: priceUpdateTxs,
1075
- contracts: [
1076
- {
1077
- abi: import_creditAccountCompressor.creditAccountCompressorAbi,
1078
- address: this.compressor,
1079
- functionName: "getCreditAccounts",
1080
- args
1081
- }
1082
- ],
1083
- blockNumber,
1084
- gas: this.sdk.gasLimit
1085
- });
1086
- } else {
1087
- resp = await this.client.readContract({
1088
- abi: import_creditAccountCompressor.creditAccountCompressorAbi,
1089
- address: this.compressor,
1090
- functionName: "getCreditAccounts",
1091
- args,
1092
- blockNumber,
1093
- // @ts-expect-error
1094
- gas: this.sdk.gasLimit
1095
- });
1096
- }
1097
- this.logger?.debug(
1098
- {
1099
- accounts: resp[0]?.length ?? 0,
1100
- nextOffset: Number(resp[1])
1101
- },
1102
- "got credit accounts"
1103
- );
1104
- return resp;
1105
- }
1106
- /**
1107
- * Returns multicall entries to redeem (unwrap) RWA ERC-4626 vault shares into underlying for the given credit manager.
1108
- * Used when withdrawing debt from a RWA market: redeems adapter vault shares so the underlying can be withdrawn.
1109
- * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
1110
- * @param amount - Number of vault shares (adapter tokens) to redeem
1111
- * @param creditManager - Credit manager address
1112
- * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
1113
- */
1114
- async getRWAUnwrapCalls(amount, creditManager) {
1115
- const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1116
- const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1117
- if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) {
1118
- return void 0;
1119
- }
1120
- const adapter = suite.creditManager.adapters.get(meta.addr);
1121
- const adapterAddress = adapter?.address;
1122
- if (!adapterAddress) {
1123
- return void 0;
1124
- }
1125
- const mc = [
1126
- {
1127
- target: adapterAddress,
1128
- callData: (0, import_viem.encodeFunctionData)({
1129
- abi: import_integrations_v3.ierc4626AdapterAbi,
1130
- functionName: "redeem",
1131
- args: [amount, import_constants.ADDRESS_0X0, import_constants.ADDRESS_0X0]
1132
- })
1133
- }
1134
- ];
1135
- return mc;
1136
- }
1137
- /**
1138
- * Returns multicall entries to deposit (wrap) underlying into RWA ERC-4626 vault shares for the given credit manager.
1139
- * Used when adding debt on a RWA market: deposits underlying into the adapter vault so shares are minted on the account.
1140
- * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
1141
- * @param amount - Amount of underlying assets to deposit into the vault (in underlying decimals)
1142
- * @param creditManager - Credit manager address
1143
- * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
1144
- */
1145
- async getRWAWrapCalls(amount, creditManager) {
1146
- const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1147
- const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1148
- if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) {
1149
- return void 0;
1150
- }
1151
- const adapter = suite.creditManager.adapters.get(meta.addr);
1152
- const adapterAddress = adapter?.address;
1153
- if (!adapterAddress) {
1154
- return void 0;
1155
- }
1156
- const mc = [
1157
- {
1158
- target: adapterAddress,
1159
- callData: (0, import_viem.encodeFunctionData)({
1160
- abi: import_integrations_v3.ierc4626AdapterAbi,
1161
- functionName: "deposit",
1162
- args: [amount, import_constants.ADDRESS_0X0]
1163
- })
1164
- }
1165
- ];
1166
- return mc;
1167
- }
1168
- /**
1169
- * Returns multicall entries to call redeemDiff on the RWA ERC-4626 adapter for the given credit manager.
1170
- * Redeems the leftover vault shares (e.g. after repaying debt) so the account does not hold excess RWA vault tokens.
1171
- * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
1172
- * @param amount - Leftover vault share amount to redeem (in adapter/vault decimals)
1173
- * @param creditManager - Credit manager address
1174
- * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
1175
- */
1176
- async getRedeemDiffCalls(amount, creditManager) {
1177
- const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1178
- const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1179
- if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) {
1180
- return void 0;
1181
- }
1182
- const adapter = suite.creditManager.adapters.get(meta.addr);
1183
- const adapterAddress = adapter?.address;
1184
- if (!adapterAddress) {
1185
- return void 0;
1186
- }
1187
- const mc = [
1188
- {
1189
- target: adapterAddress,
1190
- callData: (0, import_viem.encodeFunctionData)({
1191
- abi: import_integrations_v3.ierc4626AdapterAbi,
1192
- functionName: "redeemDiff",
1193
- args: [amount]
1194
- })
1195
- }
1196
- ];
1197
- return mc;
1198
- }
1199
- /**
1200
- * Returns multicall entries to call depositDiff on the RWA ERC-4626 adapter for the given credit manager.
1201
- * Deposits the leftover underlying (e.g. after decreasing debt) into the vault so the account does not hold excess underlying.
1202
- * Only applies when the credit manager's underlying is RWA-gated and has an ERC-4626 adapter configured.
1203
- * @param amount - Leftover underlying amount to deposit into the vault (in underlying decimals)
1204
- * @param creditManager - Credit manager address
1205
- * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not RWA or no adapter is configured
1206
- */
1207
- async getDepositDiffCalls(amount, creditManager) {
1208
- const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1209
- const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1210
- if (!this.sdk.tokensMeta.isRWAUnderlying(meta)) {
1211
- return void 0;
1212
- }
1213
- const adapter = suite.creditManager.adapters.get(meta.addr);
1214
- const adapterAddress = adapter?.address;
1215
- if (!adapterAddress) {
1216
- return void 0;
1217
- }
1218
- const mc = [
1219
- {
1220
- target: adapterAddress,
1221
- callData: (0, import_viem.encodeFunctionData)({
1222
- abi: import_integrations_v3.ierc4626AdapterAbi,
1223
- functionName: "depositDiff",
1224
- args: [amount]
1225
- })
1226
- }
1227
- ];
1228
- return mc;
1229
- }
1230
- /**
1231
- * {@inheritDoc ICreditAccountsService.setBot}
1232
- */
1233
- async setBot({
1234
- botAddress,
1235
- permissions: defaultPermissions,
1236
- targetContract
1237
- }) {
1238
- const cm = this.sdk.marketRegister.findCreditManager(
1239
- targetContract.creditManager
1240
- );
1241
- const permissions = defaultPermissions !== null ? defaultPermissions : await (0, import_viem.getContract)({
1242
- address: botAddress,
1243
- client: this.sdk.client,
1244
- abi: [
1245
- {
1246
- type: "function",
1247
- name: "requiredPermissions",
1248
- inputs: [],
1249
- outputs: [
1250
- { name: "", type: "uint192", internalType: "uint192" }
1251
- ],
1252
- stateMutability: "view"
1253
- }
1254
- ]
1255
- }).read.requiredPermissions();
1256
- const addBotCall = {
1257
- target: cm.creditFacade.address,
1258
- callData: (0, import_viem.encodeFunctionData)({
1259
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1260
- functionName: "setBotPermissions",
1261
- args: [botAddress, permissions]
1262
- })
1263
- };
1264
- const calls = targetContract.type === "creditAccount" ? await this.#prependPriceUpdates(
1265
- targetContract.creditManager,
1266
- [addBotCall],
1267
- targetContract
1268
- ) : [addBotCall];
1269
- const tx = targetContract.type === "creditAccount" ? await this.#multicallTx(cm, targetContract.creditAccount, calls) : void 0;
1270
- return { tx, calls, creditFacade: cm.creditFacade };
1271
- }
1272
- /**
1273
- * {@inheritDoc ICreditAccountsService.withdrawCollateral}
1274
- */
1275
- async withdrawCollateral({
1276
- creditAccount,
1277
- assetsToWithdraw,
1278
- to,
1279
- minQuota,
1280
- averageQuota
1281
- }) {
1282
- const cm = this.sdk.marketRegister.findCreditManager(
1283
- creditAccount.creditManager
1284
- );
1285
- const operationCalls = [
1286
- ...assetsToWithdraw.map(
1287
- (a) => this.#prepareWithdrawToken(
1288
- creditAccount.creditFacade,
1289
- a.token,
1290
- a.balance,
1291
- to
1292
- )
1293
- ),
1294
- ...this.#prepareUpdateQuotas(creditAccount.creditFacade, {
1295
- minQuota,
1296
- averageQuota
1297
- })
1298
- ];
1299
- const calls = await this.#prependPriceUpdates(
1300
- creditAccount.creditManager,
1301
- operationCalls,
1302
- creditAccount
1303
- );
1304
- const tx = await this.#multicallTx(cm, creditAccount.creditAccount, calls);
1305
- return { tx, calls, creditFacade: cm.creditFacade };
1306
- }
1307
- /**
1308
- * {@inheritDoc ICreditAccountsService.repayCreditAccount}
1309
- */
1310
- async repayCreditAccount({
1311
- operation,
1312
- collateralAssets,
1313
- assetsToWithdraw,
1314
- creditAccount: ca,
1315
- permits,
1316
- to,
1317
- tokensToClaim,
1318
- calls: wrapCalls = []
1319
- }) {
1320
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
1321
- const addCollateral = collateralAssets.filter((a) => a.balance > 0);
1322
- const router = this.sdk.routerFor(ca);
1323
- const unwrapCalls = await this.getRedeemDiffCalls(1n, ca.creditManager) ?? [];
1324
- const claimPath = await router.findClaimAllRewards({
1325
- tokensToClaim,
1326
- creditAccount: ca
1327
- });
1328
- const operationCalls = [
1329
- ...this.#prepareAddCollateral(ca.creditFacade, addCollateral, permits),
1330
- ...wrapCalls,
1331
- ...this.#prepareDisableQuotas(ca),
1332
- ...this.#prepareDecreaseDebt(ca),
1333
- ...unwrapCalls,
1334
- ...claimPath.calls,
1335
- ...assetsToWithdraw.map(
1336
- (t) => this.#prepareWithdrawToken(ca.creditFacade, t.token, import_constants.MAX_UINT256, to)
1337
- )
1338
- ];
1339
- const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
1340
- const tx = await this.#closeCreditAccountTx(
1341
- cm,
1342
- ca.creditAccount,
1343
- calls,
1344
- operation
1345
- );
1346
- return { tx, calls, creditFacade: cm.creditFacade };
1347
- }
1348
- /**
1349
- * {@inheritDoc ICreditAccountsService.repayAndLiquidateCreditAccount}
1350
- */
1351
- async repayAndLiquidateCreditAccount({
1352
- collateralAssets,
1353
- assetsToWithdraw,
1354
- creditAccount: ca,
1355
- permits,
1356
- to,
1357
- tokensToClaim
1358
- }) {
1359
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
1360
- const router = this.sdk.routerFor(ca);
1361
- const claimPath = await router.findClaimAllRewards({
1362
- tokensToClaim,
1363
- creditAccount: ca
1364
- });
1365
- const wrapCalls = await this.getDepositDiffCalls(1n, ca.creditManager) ?? [];
1366
- const addCollateral = collateralAssets.filter((a) => a.balance > 0);
1367
- const operationCalls = [
1368
- ...this.#prepareAddCollateral(ca.creditFacade, addCollateral, permits),
1369
- ...claimPath.calls,
1370
- ...wrapCalls,
1371
- ...assetsToWithdraw.map(
1372
- (t) => this.#prepareWithdrawToken(ca.creditFacade, t.token, import_constants.MAX_UINT256, to)
1373
- )
1374
- ];
1375
- const calls = await this.#prependPriceUpdates(
1376
- ca.creditManager,
1377
- operationCalls,
1378
- ca
1379
- );
1380
- const tx = cm.creditFacade.liquidateCreditAccount(
1381
- ca.creditAccount,
1382
- to,
1383
- calls
1384
- );
1385
- return { tx, calls, creditFacade: cm.creditFacade };
1386
- }
1387
- /**
1388
- * {@inheritDoc ICreditAccountsService.claimFarmRewards}
1389
- */
1390
- async claimFarmRewards({
1391
- calls: externalCalls,
1392
- creditAccount: ca,
1393
- minQuota,
1394
- averageQuota,
1395
- tokensToClaim
1396
- }) {
1397
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
1398
- const router = this.sdk.routerFor(ca);
1399
- let claimPath;
1400
- if (externalCalls) {
1401
- claimPath = { calls: externalCalls };
1402
- } else {
1403
- claimPath = await router.findClaimAllRewards({
1404
- tokensToClaim,
1405
- creditAccount: ca
1406
- });
1407
- }
1408
- if (claimPath.calls.length === 0) throw new Error("No path to execute");
1409
- const operationCalls = [
1410
- ...claimPath.calls,
1411
- ...this.#prepareUpdateQuotas(ca.creditFacade, { minQuota, averageQuota })
1412
- ];
1413
- const calls = await this.#prependPriceUpdates(
1414
- ca.creditManager,
1415
- operationCalls,
1416
- ca
1417
- );
1418
- const tx = await this.#multicallTx(cm, ca.creditAccount, calls);
1419
- return { tx, calls, creditFacade: cm.creditFacade };
1420
- }
1421
- /**
1422
- * Returns raw txs that are needed to update all price feeds so that all credit accounts (possibly from different markets) compute
1423
- * {@inheritDoc ICreditAccountsService.getOnDemandPriceUpdates}
1424
- **/
1425
- async getOnDemandPriceUpdates(account, ignoreReservePrices) {
1426
- const { creditManager, creditAccount } = account;
1427
- const cm = this.sdk.marketRegister.findCreditManager(creditManager);
1428
- const update = await this.#getUpdateForAccount(
1429
- account,
1430
- ignoreReservePrices
1431
- );
1432
- this.logger?.debug(
1433
- { account: creditAccount, manager: cm.name },
1434
- `getting on demand price updates from ${update.txs.length} txs`
1435
- );
1436
- return (0, import_market.getRawPriceUpdates)(update);
1437
- }
1438
- /**
1439
- * Analyzes a multicall array and prepends necessary on-demand price feed updates.
1440
- *
1441
- * Deduplicates existing `onDemandPriceUpdates` calls
1442
- *
1443
- * @param creditManager - Address of the credit manager
1444
- * @param calls - The multicall array to prepend price updates to
1445
- * @param ca - Credit account slice, undefined when opening a new account
1446
- * @param options - Optional settings for price update generation
1447
- * @returns A new array with a single consolidated price update call prepended,
1448
- * followed by the non-price-update calls in their original order
1449
- */
1450
- async #prependPriceUpdates(creditManager, calls, ca, options) {
1451
- const market = this.sdk.marketRegister.findByCreditManager(creditManager);
1452
- const cm = this.sdk.marketRegister.findCreditManager(creditManager).creditManager;
1453
- const { priceUpdates: existingUpdates, remainingCalls } = (0, import_multicall_utils.extractPriceUpdates)(calls);
1454
- const tokens = new import_utils.AddressSet([
1455
- cm.underlying,
1456
- // underlying - always included
1457
- ...(0, import_multicall_utils.extractQuotaTokens)(calls)
1458
- // tokens from `updateQuota` calls
1459
- ]);
1460
- if (ca) {
1461
- for (const t of ca.tokens) {
1462
- const isEnabled = (t.mask & ca.enabledTokensMask) !== 0n;
1463
- if (t.balance > 10n && isEnabled) {
1464
- tokens.add(t.token);
1465
- }
1466
- }
1467
- }
1468
- const ignoreReservePrices = options?.ignoreReservePrices;
1469
- const priceFeeds = market.priceOracle.priceFeedsForTokens(Array.from(tokens), {
1470
- main: true,
1471
- reserve: !ignoreReservePrices
1472
- });
1473
- const tStr = tokens.map((t) => this.labelAddress(t)).join(", ");
1474
- const remark = ignoreReservePrices ? " main" : "";
1475
- this.logger?.debug(
1476
- { account: ca?.creditAccount, manager: cm.name },
1477
- `prependPriceUpdates for ${tStr} from ${priceFeeds.length}${remark} price feeds`
1478
- );
1479
- const generatedUpdates = await this.sdk.priceFeeds.generatePriceFeedsUpdates(priceFeeds);
1480
- const merged = (0, import_multicall_utils.mergePriceUpdates)(existingUpdates, generatedUpdates);
1481
- if (merged.length === 0) {
1482
- return remainingCalls;
1483
- }
1484
- return [
1485
- {
1486
- target: cm.creditFacade,
1487
- callData: (0, import_viem.encodeFunctionData)({
1488
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1489
- functionName: "onDemandPriceUpdates",
1490
- args: [merged]
1491
- })
1492
- },
1493
- ...remainingCalls
1494
- ];
1495
- }
1496
- async #getUpdateForAccount(account, ignoreReservePrices) {
1497
- const { creditManager, creditAccount, enabledTokensMask } = account;
1498
- const market = this.sdk.marketRegister.findByCreditManager(creditManager);
1499
- const cm = this.sdk.marketRegister.findCreditManager(creditManager).creditManager;
1500
- const tokens = new import_utils.AddressSet([cm.underlying]);
1501
- for (const t of account.tokens) {
1502
- const isEnabled = (t.mask & enabledTokensMask) !== 0n;
1503
- if (t.balance > 10n && isEnabled) {
1504
- tokens.add(t.token);
1505
- }
1506
- }
1507
- const priceFeeds = market.priceOracle.priceFeedsForTokens(Array.from(tokens), {
1508
- main: true,
1509
- reserve: !ignoreReservePrices
1510
- });
1511
- const tStr = tokens.map((t) => this.labelAddress(t)).join(", ");
1512
- const remark = ignoreReservePrices ? " main" : "";
1513
- this.logger?.debug(
1514
- { account: creditAccount, manager: cm.name },
1515
- `generating price feed updates for ${tStr} from ${priceFeeds.length}${remark} price feeds`
1516
- );
1517
- return this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(priceFeeds);
1518
- }
1519
- /**
1520
- * {@inheritDoc ICreditAccountsService.multicall}
1521
- */
1522
- async multicall(creditAccount, calls, options) {
1523
- const cm = this.sdk.marketRegister.findCreditManager(
1524
- creditAccount.creditManager
1525
- );
1526
- const callsWithPrices = await this.#prependPriceUpdates(
1527
- creditAccount.creditManager,
1528
- calls,
1529
- creditAccount,
1530
- options
1531
- );
1532
- return cm.creditFacade.multicall(
1533
- creditAccount.creditAccount,
1534
- callsWithPrices
1535
- );
1536
- }
1537
- /**
1538
- * {@inheritDoc ICreditAccountsService.botMulticall}
1539
- */
1540
- async botMulticall(creditAccount, calls, options) {
1541
- const cm = this.sdk.marketRegister.findCreditManager(
1542
- creditAccount.creditManager
1543
- );
1544
- const callsWithPrices = await this.#prependPriceUpdates(
1545
- creditAccount.creditManager,
1546
- calls,
1547
- creditAccount,
1548
- options
1549
- );
1550
- return cm.creditFacade.botMulticall(
1551
- creditAccount.creditAccount,
1552
- callsWithPrices
1553
- );
1554
- }
1555
- /**
1556
- * {@inheritDoc ICreditAccountsService.prependPriceUpdates}
1557
- */
1558
- async prependPriceUpdates(creditManager, calls, creditAccount, options) {
1559
- return this.#prependPriceUpdates(
1560
- creditManager,
1561
- calls,
1562
- creditAccount,
1563
- options
1564
- );
1565
- }
1566
- /**
1567
- * {@inheritDoc ICreditAccountsService.assembleCaUpdateCalls}
1568
- */
1569
- assembleCaUpdateCalls({
1570
- operations,
1571
- routerCallGroups,
1572
- creditFacade,
1573
- withdrawTo,
1574
- creditAccount,
1575
- underlyingToken
1576
- }) {
1577
- const calls = [];
1578
- let swapGroupIndex = 0;
1579
- let routerGroupsConsumed = 0;
1580
- for (const op of operations) {
1581
- switch (op.type) {
1582
- case "increaseDebt":
1583
- calls.push(this.#prepareIncreaseDebt(creditFacade, op.amount));
1584
- break;
1585
- case "decreaseDebt":
1586
- calls.push(this.#prepareChangeDebt(creditFacade, op.amount, true));
1587
- break;
1588
- case "addCollateral":
1589
- calls.push(
1590
- ...this.#prepareAddCollateral(
1591
- creditFacade,
1592
- [{ token: op.token, balance: op.amount }],
1593
- {}
1594
- )
1595
- );
1596
- break;
1597
- case "withdrawCollateral":
1598
- calls.push(
1599
- this.#prepareWithdrawToken(
1600
- creditFacade,
1601
- op.token,
1602
- op.amount,
1603
- withdrawTo
1604
- )
1605
- );
1606
- break;
1607
- case "swap": {
1608
- const routerCalls = routerCallGroups[swapGroupIndex];
1609
- if (!routerCalls) {
1610
- throw new Error(
1611
- `assembleCaUpdateCalls: missing router calls for swap leg ${swapGroupIndex}`
1612
- );
1613
- }
1614
- calls.push(...routerCalls);
1615
- swapGroupIndex += 1;
1616
- routerGroupsConsumed += 1;
1617
- break;
1618
- }
1619
- case "changeQuota": {
1620
- const quotaAssets = [...op.quotaIncrease, ...op.quotaDecrease];
1621
- if (quotaAssets.length === 0) {
1622
- break;
1623
- }
1624
- calls.push(
1625
- ...this.#prepareUpdateQuotas(creditFacade, {
1626
- averageQuota: quotaAssets,
1627
- minQuota: quotaAssets
1628
- })
1629
- );
1630
- break;
1631
- }
1632
- case "closeCreditAccount": {
1633
- for (const group of routerCallGroups) {
1634
- calls.push(...group);
1635
- routerGroupsConsumed += 1;
1636
- }
1637
- calls.push(
1638
- ...this.#prepareDisableQuotas({
1639
- creditFacade,
1640
- tokens: Object.entries(creditAccount.initialQuotas).map(
1641
- ([token, { quota }]) => ({
1642
- token,
1643
- quota
1644
- })
1645
- )
1646
- })
1647
- );
1648
- if (creditAccount.debt > 0n) {
1649
- calls.push(
1650
- ...this.#prepareDecreaseDebt({
1651
- creditFacade,
1652
- debt: creditAccount.debt
1653
- })
1654
- );
1655
- }
1656
- const hasAssets = creditAccount.assets.some(
1657
- (asset) => asset.balance > 0n
1658
- );
1659
- if (hasAssets) {
1660
- calls.push(
1661
- this.#prepareWithdrawToken(
1662
- creditFacade,
1663
- underlyingToken,
1664
- import_constants.MAX_UINT256,
1665
- withdrawTo
1666
- )
1667
- );
1668
- }
1669
- break;
1670
- }
1671
- default: {
1672
- const _exhaustive = op;
1673
- throw new Error(
1674
- `assembleCaUpdateCalls: unsupported operation ${_exhaustive}`
1675
- );
1676
- }
1677
- }
1678
- }
1679
- if (routerGroupsConsumed !== routerCallGroups.length) {
1680
- throw new Error(
1681
- `assembleCaUpdateCalls: router call group mismatch (consumed ${routerGroupsConsumed}, got ${routerCallGroups.length})`
1682
- );
1683
- }
1684
- return calls;
1685
- }
1686
- /**
1687
- * {@inheritDoc ICreditAccountsService.executeCaUpdate}
1688
- */
1689
- async executeCaUpdate(creditAccount, calls, options) {
1690
- const cm = this.sdk.marketRegister.findCreditManager(
1691
- creditAccount.creditManager
1692
- );
1693
- const callsWithPrices = await this.#prependPriceUpdates(
1694
- creditAccount.creditManager,
1695
- calls,
1696
- creditAccount,
1697
- { ignoreReservePrices: options?.ignoreReservePrices }
1698
- );
1699
- const tx = await this.#multicallTx(
1700
- cm,
1701
- creditAccount.creditAccount,
1702
- callsWithPrices
1703
- );
1704
- if (options?.ethAmount && options.ethAmount > 0n) {
1705
- tx.value = options.ethAmount.toString(10);
1706
- }
1707
- return { tx, calls: callsWithPrices };
1708
- }
1709
- #prepareDisableQuotas(ca) {
1710
- const calls = [];
1711
- for (const { token, quota } of ca.tokens) {
1712
- if (quota > 0n) {
1713
- calls.push({
1714
- target: ca.creditFacade,
1715
- callData: (0, import_viem.encodeFunctionData)({
1716
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1717
- functionName: "updateQuota",
1718
- args: [token, import_constants.MIN_INT96, 0n]
1719
- })
1720
- });
1721
- }
1722
- }
1723
- return calls;
1724
- }
1725
- #prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
1726
- const minRecord = (0, import_router.assetsMap)(minQuota);
1727
- const calls = averageQuota.map((q) => {
1728
- const minAsset = minRecord.get(q.token);
1729
- const min = minAsset && minAsset?.balance > 0 ? minAsset.balance : 0n;
1730
- return {
1731
- target: creditFacade,
1732
- callData: (0, import_viem.encodeFunctionData)({
1733
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1734
- functionName: "updateQuota",
1735
- args: [q.token, q.balance, min]
1736
- })
1737
- };
1738
- });
1739
- return calls;
1740
- }
1741
- #prepareDecreaseDebt(ca) {
1742
- if (ca.debt > 0n) {
1743
- return [
1744
- {
1745
- target: ca.creditFacade,
1746
- callData: (0, import_viem.encodeFunctionData)({
1747
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1748
- functionName: "decreaseDebt",
1749
- args: [import_constants.MAX_UINT256]
1750
- })
1751
- }
1752
- ];
1753
- }
1754
- return [];
1755
- }
1756
- #prepareWithdrawToken(creditFacade, token, amount, to) {
1757
- return {
1758
- target: creditFacade,
1759
- callData: (0, import_viem.encodeFunctionData)({
1760
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1761
- functionName: "withdrawCollateral",
1762
- args: [token, amount, to]
1763
- })
1764
- };
1765
- }
1766
- #prepareIncreaseDebt(creditFacade, debt) {
1767
- return {
1768
- target: creditFacade,
1769
- callData: (0, import_viem.encodeFunctionData)({
1770
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1771
- functionName: "increaseDebt",
1772
- args: [debt]
1773
- })
1774
- };
1775
- }
1776
- #prepareChangeDebt(creditFacade, change, isDecrease) {
1777
- return {
1778
- target: creditFacade,
1779
- callData: (0, import_viem.encodeFunctionData)({
1780
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1781
- functionName: isDecrease ? "decreaseDebt" : "increaseDebt",
1782
- args: [change]
1783
- })
1784
- };
1785
- }
1786
- #prepareAddCollateral(creditFacade, assets, permits) {
1787
- const calls = assets.map(({ token, balance }) => {
1788
- const p = permits[token];
1789
- if (p) {
1790
- return {
1791
- target: creditFacade,
1792
- callData: (0, import_viem.encodeFunctionData)({
1793
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1794
- functionName: "addCollateralWithPermit",
1795
- args: [token, balance, p.deadline, p.v, p.r, p.s]
1796
- })
1797
- };
1798
- }
1799
- return {
1800
- target: creditFacade,
1801
- callData: (0, import_viem.encodeFunctionData)({
1802
- abi: import_generated.iCreditFacadeMulticallV310Abi,
1803
- functionName: "addCollateral",
1804
- args: [token, balance]
1805
- })
1806
- };
1807
- });
1808
- return calls;
1809
- }
1810
- /**
1811
- * Returns addresses of market configurators
1812
- */
1813
- get marketConfigurators() {
1814
- return this.sdk.marketRegister.marketConfigurators.map((mc) => mc.address);
1815
- }
1816
- get rewardCompressor() {
1817
- return this.sdk.addressProvider.mustGetLatest(
1818
- import_constants.AP_REWARDS_COMPRESSOR,
1819
- import_constants.VERSION_RANGE_310
1820
- )[0];
1821
- }
1822
- get peripheryCompressor() {
1823
- return this.sdk.addressProvider.mustGetLatest(
1824
- import_constants.AP_PERIPHERY_COMPRESSOR,
1825
- import_constants.VERSION_RANGE_310
1826
- )[0];
1827
- }
1828
- get compressor() {
1829
- if (!this.#compressor) {
1830
- [this.#compressor] = this.sdk.addressProvider.mustGetLatest(
1831
- import_constants.AP_CREDIT_ACCOUNT_COMPRESSOR,
1832
- import_constants.VERSION_RANGE_310
1833
- );
1834
- this.logger?.debug(
1835
- `credit account compressor address: ${this.#compressor}`
1836
- );
1837
- }
1838
- return this.#compressor;
1839
- }
1840
- /**
1841
- * Wrapper that selects between credit facade and RWA factory
1842
- * @param suite
1843
- * @param to
1844
- * @param calls
1845
- * @param referralCode
1846
- * @param rwaOptions
1847
- * @returns
1848
- */
1849
- async #openCreditAccountTx(suite, to, calls, referralCode, rwaOptions) {
1850
- const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
1851
- const factory = marketSuite.rwaFactory;
1852
- if (factory) {
1853
- return factory.openCreditAccount(
1854
- suite.creditManager.address,
1855
- calls,
1856
- rwaOptions
1857
- );
1858
- }
1859
- return suite.creditFacade.openCreditAccount(to, calls, referralCode ?? 0n);
1860
- }
1861
- /**
1862
- * Wrapper that selects between credit facade and RWA factory
1863
- * @param suite
1864
- * @param creditAccount
1865
- * @param calls
1866
- * @param rwaOptions
1867
- * @returns
1868
- */
1869
- async #multicallTx(suite, creditAccount, calls, rwaOptions) {
1870
- const marketSuite = this.sdk.marketRegister.findByCreditManager(
1871
- suite.creditManager.address
1872
- );
1873
- const factory = marketSuite.rwaFactory;
1874
- if (factory) {
1875
- return factory.multicall(creditAccount, calls, rwaOptions);
1876
- }
1877
- return suite.creditFacade.multicall(creditAccount, calls);
1878
- }
1879
- /**
1880
- * Wrapper that selects between credit facade and RWA factory
1881
- * @param suite
1882
- * @param creditAccount
1883
- * @param calls
1884
- * @param operation
1885
- * @param rwaOptions
1886
- * @returns
1887
- */
1888
- async #closeCreditAccountTx(suite, creditAccount, calls, operation, rwaOptions) {
1889
- const marketSuite = this.sdk.marketRegister.findByCreditManager(
1890
- suite.creditManager.address
1891
- );
1892
- const factory = marketSuite.rwaFactory;
1893
- if (operation === "close") {
1894
- if (factory) {
1895
- throw new Error(
1896
- "CloseOptions=close is not supported for RWA underlying credit accounts"
1897
- );
1898
- }
1899
- return suite.creditFacade.closeCreditAccount(creditAccount, calls);
1900
- }
1901
- if (factory) {
1902
- return factory.multicall(creditAccount, calls, rwaOptions);
1903
- }
1904
- return suite.creditFacade.multicall(creditAccount, calls);
1905
- }
1906
- }
1907
- // Annotate the CommonJS export names for ESM import in node:
1908
- 0 && (module.exports = {
1909
- CreditAccountsServiceV310,
1910
- getWithdrawalCompressorAddress
1911
- });
1393
+ //#endregion
1394
+ exports.CreditAccountsServiceV310 = CreditAccountsServiceV310;