@gearbox-protocol/sdk 14.12.0-next.53 → 14.12.0-next.55

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