@gearbox-protocol/sdk 14.12.0-next.52 → 14.12.0-next.54

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