@gearbox-protocol/sdk 14.12.0-next.6 → 14.12.0-next.60

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