@gearbox-protocol/sdk 13.0.0-next.9 → 13.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (722) hide show
  1. package/dist/cjs/abi/310/iLinearInterestRateModelV310.js +92 -0
  2. package/dist/cjs/abi/310/iSecuritizeDegenNFT.js +263 -0
  3. package/dist/cjs/abi/310/iSecuritizeKYCFactory.js +278 -0
  4. package/dist/cjs/abi/errors.js +0 -145
  5. package/dist/cjs/abi/iPriceFeed.js +84 -0
  6. package/dist/cjs/{sdk/sdk-gov-legacy/oracles → common-utils}/index.js +4 -4
  7. package/dist/cjs/common-utils/package.json +1 -0
  8. package/dist/cjs/common-utils/utils/assetsMath.js +216 -0
  9. package/dist/cjs/common-utils/utils/bigintMath.js +65 -0
  10. package/dist/cjs/common-utils/utils/creditAccount/calcHealthFactor.js +76 -0
  11. package/dist/cjs/common-utils/utils/creditAccount/calcOverallAPY.js +81 -0
  12. package/dist/cjs/{sdk/accountMigration/MigrateCreditAccountsServiceV310.js → common-utils/utils/creditAccount/calcQuotaBorrowRate.js} +19 -7
  13. package/dist/cjs/{sdk/sdk-legacy/gearboxRewards/merklAPI.js → common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.js} +11 -7
  14. package/dist/cjs/common-utils/utils/creditAccount/debt.js +64 -0
  15. package/dist/cjs/{sdk/accountMigration/MigrateCreditAccountsServiceV300.js → common-utils/utils/creditAccount/getTimeToLiquidation.js} +15 -7
  16. package/dist/cjs/common-utils/utils/creditAccount/index.js +40 -0
  17. package/dist/cjs/common-utils/utils/creditAccount/liquidationPrice.js +47 -0
  18. package/dist/cjs/common-utils/utils/creditAccount/quotaUtils.js +149 -0
  19. package/dist/cjs/common-utils/utils/creditAccount/sort.js +95 -0
  20. package/dist/cjs/common-utils/utils/endpoints.js +65 -0
  21. package/dist/cjs/{sdk/sdk-legacy → common-utils}/utils/index.js +10 -6
  22. package/dist/cjs/common-utils/utils/priceMath.js +66 -0
  23. package/dist/cjs/dev/AccountOpener.js +47 -7
  24. package/dist/cjs/dev/ltUtils.js +4 -91
  25. package/dist/cjs/dev/migrateFaucet.js +25 -53
  26. package/dist/cjs/dev/providers.js +12 -0
  27. package/dist/cjs/history/assembleOperations.js +103 -0
  28. package/dist/cjs/history/classifyMulticallOperations.js +157 -0
  29. package/dist/cjs/history/errors.js +91 -0
  30. package/dist/cjs/history/extractProtocolCalls.js +53 -0
  31. package/dist/cjs/history/extractTransfers.js +168 -0
  32. package/dist/cjs/history/findFacadeCalls.js +84 -0
  33. package/dist/cjs/history/index.js +39 -0
  34. package/dist/cjs/history/inner-operations.js +16 -0
  35. package/dist/cjs/{sdk/gauges/utils.js → history/internal-types.js} +2 -2
  36. package/dist/cjs/history/mapOperations.js +79 -0
  37. package/dist/cjs/history/package.json +1 -0
  38. package/dist/cjs/history/parseCreditAccountTransaction.js +86 -0
  39. package/dist/cjs/history/populateContractsRegister.js +68 -0
  40. package/dist/cjs/history/toLegacyOperation.js +182 -0
  41. package/dist/cjs/{plugins/adapters/contracts/YearnV2AdapterContract.js → history/trace-utils.js} +36 -21
  42. package/dist/cjs/permissionless/bindings/cross-chain-multisig.js +3 -3
  43. package/dist/cjs/permissionless/bindings/instance-manager.js +3 -3
  44. package/dist/cjs/permissionless/utils/price-update/get-prices.js +2 -6
  45. package/dist/cjs/plugins/adapters/AdaptersPlugin.js +13 -106
  46. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  47. package/dist/cjs/plugins/adapters/abi/targetContractAbi.js +5168 -0
  48. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +123 -3
  49. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  50. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +65 -30
  51. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +27 -11
  52. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +40 -21
  53. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +100 -25
  54. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +74 -25
  55. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +79 -31
  56. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +79 -31
  57. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +84 -31
  58. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +80 -33
  59. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +62 -26
  60. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +92 -34
  61. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +46 -14
  62. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +62 -27
  63. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +46 -14
  64. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +34 -14
  65. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +56 -23
  66. package/dist/cjs/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +31 -14
  67. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +28 -12
  68. package/dist/cjs/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +35 -16
  69. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +47 -17
  70. package/dist/cjs/plugins/adapters/contracts/MellowClaimerAdapterContract.js +29 -11
  71. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +45 -14
  72. package/dist/cjs/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +42 -17
  73. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +79 -42
  74. package/dist/cjs/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +34 -14
  75. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +27 -11
  76. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +44 -17
  77. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +49 -21
  78. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +92 -55
  79. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +71 -37
  80. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +55 -25
  81. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +44 -21
  82. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +42 -23
  83. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +53 -27
  84. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +42 -17
  85. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +46 -25
  86. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +37 -11
  87. package/dist/cjs/plugins/adapters/contracts/index.js +7 -15
  88. package/dist/cjs/plugins/adapters/createAdapter.js +125 -0
  89. package/dist/cjs/plugins/adapters/index.js +6 -0
  90. package/dist/cjs/plugins/adapters/legacyAdapterOperations.js +16 -0
  91. package/dist/cjs/plugins/adapters/transferHelpers.js +127 -0
  92. package/dist/cjs/plugins/bots/PartialLiquidationBotV310Contract.js +4 -4
  93. package/dist/cjs/plugins/bots/abi/index.js +0 -2
  94. package/dist/cjs/plugins/degen-distributors/DegenDistributorsPlugin.js +2 -1
  95. package/dist/cjs/plugins/pools-history/Pools7DAgoPlugin.js +1 -1
  96. package/dist/cjs/sdk/GearboxSDK.js +6 -14
  97. package/dist/cjs/sdk/accounts/AbstractCreditAccountsService.js +479 -188
  98. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +27 -17
  99. package/dist/cjs/sdk/accounts/createCreditAccountService.js +0 -4
  100. package/dist/cjs/sdk/accounts/index.js +0 -2
  101. package/dist/cjs/sdk/base/BaseContract.js +60 -6
  102. package/dist/cjs/sdk/base/ChainContractsRegister.js +34 -11
  103. package/dist/cjs/sdk/base/Construct.js +29 -15
  104. package/dist/cjs/sdk/base/PlaceholderContract.js +2 -2
  105. package/dist/cjs/sdk/base/SDKConstruct.js +1 -1
  106. package/dist/cjs/sdk/base/TokensMeta.js +154 -11
  107. package/dist/cjs/sdk/{sdk-legacy/utils/math.js → base/errors.js} +12 -10
  108. package/dist/cjs/sdk/base/index.js +2 -0
  109. package/dist/cjs/sdk/chain/chains.js +11 -28
  110. package/dist/cjs/sdk/constants/addresses.js +2 -88
  111. package/dist/cjs/sdk/constants/networks.js +0 -32
  112. package/dist/cjs/sdk/constants/versions.js +0 -8
  113. package/dist/cjs/sdk/core/{address-provider/AbstractAddressProviderContract.js → AbstractAddressProviderContract.js} +3 -3
  114. package/dist/cjs/sdk/core/{address-provider/AddressProviderV310Contract.js → AddressProviderV310Contract.js} +1 -1
  115. package/dist/cjs/sdk/core/{address-provider/createAddressProvider.js → createAddressProvider.js} +4 -7
  116. package/dist/cjs/sdk/core/index.js +6 -6
  117. package/dist/cjs/sdk/{sdk-gov-legacy/tokens/aave.js → core/types.js} +2 -2
  118. package/dist/cjs/sdk/index.js +0 -10
  119. package/dist/cjs/sdk/market/MarketConfiguratorContract.js +3 -2
  120. package/dist/cjs/sdk/market/MarketRegister.js +0 -1
  121. package/dist/cjs/sdk/market/MarketSuite.js +4 -1
  122. package/dist/cjs/sdk/market/adapters/PlaceholderAdapterContracts.js +25 -4
  123. package/dist/cjs/sdk/market/adapters/{factory.js → createAdapter.js} +3 -3
  124. package/dist/cjs/sdk/market/adapters/index.js +2 -2
  125. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +108 -0
  126. package/dist/cjs/sdk/market/credit/CreditFacadeV310Contract.js +3 -40
  127. package/dist/cjs/sdk/market/credit/CreditManagerV310Contract.js +1 -4
  128. package/dist/cjs/sdk/market/credit/createCreditConfigurator.js +1 -4
  129. package/dist/cjs/sdk/market/credit/createCreditFacade.js +1 -4
  130. package/dist/cjs/sdk/market/credit/createCreditManager.js +1 -4
  131. package/dist/cjs/sdk/market/credit/index.js +2 -6
  132. package/dist/cjs/sdk/market/oracle/PriceOracleBaseContract.js +9 -57
  133. package/dist/cjs/sdk/market/oracle/createPriceOracle.js +7 -38
  134. package/dist/cjs/sdk/market/oracle/index.js +0 -2
  135. package/dist/cjs/sdk/market/pool/GaugeContract.js +3 -3
  136. package/dist/cjs/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  137. package/dist/cjs/sdk/market/pool/PoolSuite.js +3 -0
  138. package/dist/cjs/sdk/market/pool/PoolV310Contract.js +18 -3
  139. package/dist/cjs/sdk/market/pool/SecuritizeKYCFactory.js +97 -0
  140. package/dist/cjs/sdk/market/pool/createPool.js +0 -4
  141. package/dist/cjs/sdk/market/pool/createPoolQuotaKeeper.js +0 -4
  142. package/dist/cjs/sdk/market/pool/index.js +4 -4
  143. package/dist/cjs/sdk/market/pricefeeds/AbstractLPPriceFeed.js +14 -53
  144. package/dist/cjs/sdk/market/pricefeeds/PriceFeedsRegister.js +5 -3
  145. package/dist/cjs/sdk/market/pricefeeds/PythPriceFeed.js +20 -0
  146. package/dist/cjs/sdk/market/pricefeeds/RedstonePriceFeed.js +19 -46
  147. package/dist/cjs/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
  148. package/dist/cjs/sdk/market/pricefeeds/updates/PythUpdater.js +7 -7
  149. package/dist/cjs/sdk/market/pricefeeds/updates/RedstoneUpdater.js +6 -6
  150. package/dist/cjs/sdk/market/pricefeeds/updates/fetchPythPayloads.js +7 -7
  151. package/dist/cjs/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +10 -10
  152. package/dist/cjs/sdk/plugins/index.js +1 -3
  153. package/dist/cjs/sdk/pools/PoolService.js +149 -18
  154. package/dist/cjs/sdk/router/AbstractRouterContract.js +0 -4
  155. package/dist/cjs/sdk/router/RouterV310Contract.js +3 -32
  156. package/dist/cjs/sdk/router/createRouter.js +0 -4
  157. package/dist/cjs/sdk/router/helpers.js +0 -5
  158. package/dist/cjs/sdk/router/index.js +0 -2
  159. package/dist/cjs/sdk/utils/AddressMap.js +1 -1
  160. package/dist/cjs/sdk/utils/abi-decode.js +43 -2
  161. package/dist/cjs/sdk/utils/formatter.js +55 -2
  162. package/dist/cjs/sdk/utils/viem/sendRawTx.js +16 -0
  163. package/dist/esm/abi/310/iLinearInterestRateModelV310.js +68 -0
  164. package/dist/esm/abi/310/iSecuritizeDegenNFT.js +239 -0
  165. package/dist/esm/abi/310/iSecuritizeKYCFactory.js +254 -0
  166. package/dist/esm/abi/errors.js +0 -143
  167. package/dist/esm/abi/iPriceFeed.js +60 -0
  168. package/dist/esm/common-utils/index.js +1 -0
  169. package/dist/esm/common-utils/package.json +1 -0
  170. package/dist/esm/{sdk/sdk-legacy/core/assets.js → common-utils/utils/assetsMath.js} +80 -14
  171. package/dist/esm/common-utils/utils/bigintMath.js +41 -0
  172. package/dist/esm/common-utils/utils/creditAccount/calcHealthFactor.js +55 -0
  173. package/dist/esm/common-utils/utils/creditAccount/calcOverallAPY.js +60 -0
  174. package/dist/esm/common-utils/utils/creditAccount/calcQuotaBorrowRate.js +18 -0
  175. package/dist/esm/common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.js +10 -0
  176. package/dist/esm/common-utils/utils/creditAccount/debt.js +43 -0
  177. package/dist/esm/common-utils/utils/creditAccount/getTimeToLiquidation.js +18 -0
  178. package/dist/esm/common-utils/utils/creditAccount/index.js +10 -0
  179. package/dist/esm/common-utils/utils/creditAccount/liquidationPrice.js +23 -0
  180. package/dist/esm/common-utils/utils/creditAccount/quotaUtils.js +125 -0
  181. package/dist/esm/common-utils/utils/creditAccount/sort.js +67 -0
  182. package/dist/esm/common-utils/utils/endpoints.js +41 -0
  183. package/dist/esm/common-utils/utils/index.js +5 -0
  184. package/dist/esm/common-utils/utils/priceMath.js +42 -0
  185. package/dist/esm/dev/AccountOpener.js +48 -7
  186. package/dist/esm/dev/ltUtils.js +7 -100
  187. package/dist/esm/dev/migrateFaucet.js +24 -51
  188. package/dist/esm/dev/providers.js +12 -0
  189. package/dist/esm/history/assembleOperations.js +79 -0
  190. package/dist/esm/history/classifyMulticallOperations.js +137 -0
  191. package/dist/esm/history/errors.js +62 -0
  192. package/dist/esm/history/extractProtocolCalls.js +32 -0
  193. package/dist/esm/history/extractTransfers.js +148 -0
  194. package/dist/esm/history/findFacadeCalls.js +63 -0
  195. package/dist/esm/history/index.js +9 -0
  196. package/dist/esm/history/mapOperations.js +55 -0
  197. package/dist/esm/history/package.json +1 -0
  198. package/dist/esm/history/parseCreditAccountTransaction.js +62 -0
  199. package/dist/esm/history/populateContractsRegister.js +52 -0
  200. package/dist/esm/history/toLegacyOperation.js +157 -0
  201. package/dist/esm/history/trace-utils.js +36 -0
  202. package/dist/esm/permissionless/bindings/cross-chain-multisig.js +3 -3
  203. package/dist/esm/permissionless/bindings/instance-manager.js +3 -3
  204. package/dist/esm/permissionless/utils/price-update/get-prices.js +2 -6
  205. package/dist/esm/plugins/adapters/AdaptersPlugin.js +14 -148
  206. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  207. package/dist/esm/plugins/adapters/abi/targetContractAbi.js +5113 -0
  208. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +133 -4
  209. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +8 -1
  210. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +64 -30
  211. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +27 -11
  212. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +40 -21
  213. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +109 -26
  214. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +76 -25
  215. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +81 -31
  216. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +81 -31
  217. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +86 -31
  218. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +82 -33
  219. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +64 -26
  220. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +97 -34
  221. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +48 -14
  222. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +64 -27
  223. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +48 -14
  224. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +36 -14
  225. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +58 -23
  226. package/dist/esm/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.js +37 -15
  227. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +33 -12
  228. package/dist/esm/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.js +40 -16
  229. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +49 -17
  230. package/dist/esm/plugins/adapters/contracts/MellowClaimerAdapterContract.js +31 -11
  231. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +47 -14
  232. package/dist/esm/plugins/adapters/contracts/MellowDepositQueueAdapterContract.js +44 -17
  233. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +82 -43
  234. package/dist/esm/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.js +36 -14
  235. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +29 -11
  236. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +46 -17
  237. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +55 -22
  238. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +91 -54
  239. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +73 -37
  240. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +54 -25
  241. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +45 -22
  242. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +43 -24
  243. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +57 -28
  244. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +48 -18
  245. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +46 -25
  246. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +39 -11
  247. package/dist/esm/plugins/adapters/contracts/index.js +3 -7
  248. package/dist/esm/plugins/adapters/createAdapter.js +140 -0
  249. package/dist/esm/plugins/adapters/index.js +3 -0
  250. package/dist/esm/plugins/adapters/transferHelpers.js +95 -0
  251. package/dist/esm/plugins/bots/PartialLiquidationBotV310Contract.js +5 -8
  252. package/dist/esm/plugins/bots/abi/index.js +0 -1
  253. package/dist/esm/plugins/degen-distributors/DegenDistributorsPlugin.js +2 -1
  254. package/dist/esm/plugins/pools-history/Pools7DAgoPlugin.js +1 -2
  255. package/dist/esm/sdk/GearboxSDK.js +7 -23
  256. package/dist/esm/sdk/accounts/AbstractCreditAccountsService.js +483 -193
  257. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +27 -17
  258. package/dist/esm/sdk/accounts/createCreditAccountService.js +1 -5
  259. package/dist/esm/sdk/accounts/index.js +0 -1
  260. package/dist/esm/sdk/base/BaseContract.js +62 -6
  261. package/dist/esm/sdk/base/ChainContractsRegister.js +34 -11
  262. package/dist/esm/sdk/base/Construct.js +29 -15
  263. package/dist/esm/sdk/base/PlaceholderContract.js +2 -2
  264. package/dist/esm/sdk/base/SDKConstruct.js +1 -1
  265. package/dist/esm/sdk/base/TokensMeta.js +158 -10
  266. package/dist/esm/sdk/base/errors.js +11 -0
  267. package/dist/esm/sdk/base/index.js +1 -0
  268. package/dist/esm/sdk/chain/chains.js +12 -28
  269. package/dist/esm/sdk/constants/addresses.js +1 -83
  270. package/dist/esm/sdk/constants/networks.js +0 -31
  271. package/dist/esm/sdk/constants/versions.js +0 -6
  272. package/dist/esm/sdk/core/{address-provider/AbstractAddressProviderContract.js → AbstractAddressProviderContract.js} +3 -3
  273. package/dist/esm/sdk/core/{address-provider/AddressProviderV310Contract.js → AddressProviderV310Contract.js} +1 -1
  274. package/dist/esm/sdk/core/{address-provider/createAddressProvider.js → createAddressProvider.js} +4 -8
  275. package/dist/esm/sdk/core/index.js +3 -3
  276. package/dist/esm/sdk/index.js +0 -5
  277. package/dist/esm/sdk/market/MarketConfiguratorContract.js +3 -2
  278. package/dist/esm/sdk/market/MarketRegister.js +0 -1
  279. package/dist/esm/sdk/market/MarketSuite.js +5 -2
  280. package/dist/esm/sdk/market/adapters/PlaceholderAdapterContracts.js +29 -5
  281. package/dist/esm/sdk/market/adapters/index.js +1 -1
  282. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +86 -0
  283. package/dist/esm/sdk/market/credit/CreditFacadeV310Contract.js +3 -43
  284. package/dist/esm/sdk/market/credit/CreditManagerV310Contract.js +1 -4
  285. package/dist/esm/sdk/market/credit/createCreditConfigurator.js +2 -5
  286. package/dist/esm/sdk/market/credit/createCreditFacade.js +2 -5
  287. package/dist/esm/sdk/market/credit/createCreditManager.js +2 -5
  288. package/dist/esm/sdk/market/credit/index.js +1 -3
  289. package/dist/esm/sdk/market/oracle/PriceOracleBaseContract.js +10 -59
  290. package/dist/esm/sdk/market/oracle/createPriceOracle.js +7 -38
  291. package/dist/esm/sdk/market/oracle/index.js +0 -1
  292. package/dist/esm/sdk/market/pool/GaugeContract.js +3 -3
  293. package/dist/esm/sdk/market/pool/LinearInterestRateModelContract.js +2 -2
  294. package/dist/esm/sdk/market/pool/PoolSuite.js +3 -0
  295. package/dist/esm/sdk/market/pool/PoolV310Contract.js +18 -3
  296. package/dist/esm/sdk/market/pool/SecuritizeKYCFactory.js +73 -0
  297. package/dist/esm/sdk/market/pool/createPool.js +1 -5
  298. package/dist/esm/sdk/market/pool/createPoolQuotaKeeper.js +1 -5
  299. package/dist/esm/sdk/market/pool/index.js +2 -2
  300. package/dist/esm/sdk/market/pricefeeds/AbstractLPPriceFeed.js +14 -53
  301. package/dist/esm/sdk/market/pricefeeds/PriceFeedsRegister.js +5 -3
  302. package/dist/esm/sdk/market/pricefeeds/PythPriceFeed.js +21 -1
  303. package/dist/esm/sdk/market/pricefeeds/RedstonePriceFeed.js +20 -47
  304. package/dist/esm/sdk/market/pricefeeds/updates/PriceUpdatesCache.js +0 -17
  305. package/dist/esm/sdk/market/pricefeeds/updates/PythUpdater.js +7 -7
  306. package/dist/esm/sdk/market/pricefeeds/updates/RedstoneUpdater.js +6 -6
  307. package/dist/esm/sdk/market/pricefeeds/updates/fetchPythPayloads.js +7 -7
  308. package/dist/esm/sdk/market/pricefeeds/updates/fetchRedstonePayloads.js +10 -10
  309. package/dist/esm/sdk/plugins/index.js +0 -1
  310. package/dist/esm/sdk/pools/PoolService.js +149 -18
  311. package/dist/esm/sdk/router/AbstractRouterContract.js +0 -4
  312. package/dist/esm/sdk/router/RouterV310Contract.js +3 -32
  313. package/dist/esm/sdk/router/createRouter.js +1 -5
  314. package/dist/esm/sdk/router/helpers.js +0 -4
  315. package/dist/esm/sdk/router/index.js +0 -1
  316. package/dist/esm/sdk/utils/AddressMap.js +1 -1
  317. package/dist/esm/sdk/utils/abi-decode.js +43 -2
  318. package/dist/esm/sdk/utils/formatter.js +37 -1
  319. package/dist/esm/sdk/utils/viem/sendRawTx.js +19 -1
  320. package/dist/types/abi/310/iLinearInterestRateModelV310.d.ts +111 -0
  321. package/dist/types/{sdk/market/pool/PoolQuotaKeeperV300Contract.d.ts → abi/310/iSecuritizeDegenNFT.d.ts} +115 -239
  322. package/dist/types/{sdk/core/BotListV3Contract.d.ts → abi/310/iSecuritizeKYCFactory.d.ts} +146 -147
  323. package/dist/types/abi/errors.d.ts +186 -996
  324. package/dist/types/abi/iPriceFeed.d.ts +87 -0
  325. package/dist/types/common-utils/index.d.ts +1 -0
  326. package/dist/types/common-utils/utils/assetsMath.d.ts +114 -0
  327. package/dist/types/common-utils/utils/bigintMath.d.ts +43 -0
  328. package/dist/types/common-utils/utils/creditAccount/calcHealthFactor.d.ts +25 -0
  329. package/dist/types/common-utils/utils/creditAccount/calcOverallAPY.d.ts +37 -0
  330. package/dist/types/common-utils/utils/creditAccount/calcQuotaBorrowRate.d.ts +18 -0
  331. package/dist/types/common-utils/utils/creditAccount/calcRelativeBaseBorrowRate.d.ts +15 -0
  332. package/dist/types/common-utils/utils/creditAccount/debt.d.ts +35 -0
  333. package/dist/types/common-utils/utils/creditAccount/getTimeToLiquidation.d.ts +16 -0
  334. package/dist/types/common-utils/utils/creditAccount/index.d.ts +10 -0
  335. package/dist/types/common-utils/utils/creditAccount/liquidationPrice.d.ts +25 -0
  336. package/dist/types/common-utils/utils/creditAccount/quotaUtils.d.ts +81 -0
  337. package/dist/types/common-utils/utils/creditAccount/sort.d.ts +55 -0
  338. package/dist/types/common-utils/utils/creditAccount/types.d.ts +18 -0
  339. package/dist/types/common-utils/utils/endpoints.d.ts +27 -0
  340. package/dist/types/common-utils/utils/index.d.ts +5 -0
  341. package/dist/types/common-utils/utils/priceMath.d.ts +47 -0
  342. package/dist/types/dev/migrateFaucet.d.ts +4 -5
  343. package/dist/types/dev/providers.d.ts +5 -5
  344. package/dist/types/history/assembleOperations.d.ts +22 -0
  345. package/dist/types/history/classifyMulticallOperations.d.ts +35 -0
  346. package/dist/types/history/errors.d.ts +30 -0
  347. package/dist/types/history/extractProtocolCalls.d.ts +8 -0
  348. package/dist/types/history/extractTransfers.d.ts +22 -0
  349. package/dist/types/history/findFacadeCalls.d.ts +9 -0
  350. package/dist/types/history/index.d.ts +6 -0
  351. package/dist/types/history/inner-operations.d.ts +57 -0
  352. package/dist/types/history/internal-types.d.ts +47 -0
  353. package/dist/types/history/mapOperations.d.ts +27 -0
  354. package/dist/types/history/parseCreditAccountTransaction.d.ts +27 -0
  355. package/dist/types/history/populateContractsRegister.d.ts +19 -0
  356. package/dist/types/history/toLegacyOperation.d.ts +18 -0
  357. package/dist/types/history/trace-utils.d.ts +12 -0
  358. package/dist/types/history/types.d.ts +71 -0
  359. package/dist/types/permissionless/bindings/cross-chain-multisig.d.ts +3 -3
  360. package/dist/types/permissionless/bindings/instance-manager.d.ts +3 -3
  361. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  362. package/dist/types/plugins/adapters/abi/targetContractAbi.d.ts +8262 -0
  363. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +50 -8
  364. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +238 -4
  365. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +135 -8
  366. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +45 -4
  367. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +225 -7
  368. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +418 -8
  369. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +227 -10
  370. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1257 -10
  371. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1257 -10
  372. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1257 -10
  373. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +575 -11
  374. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1244 -10
  375. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1227 -11
  376. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +69 -6
  377. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +492 -6
  378. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +67 -6
  379. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +132 -6
  380. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +144 -8
  381. package/dist/types/plugins/adapters/contracts/InfinifiUnwindingGatewayAdapterContract.d.ts +163 -5
  382. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +248 -6
  383. package/dist/types/plugins/adapters/contracts/KelpLRTWithdrawalManagerAdapterContract.d.ts +367 -6
  384. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +104 -7
  385. package/dist/types/plugins/adapters/contracts/MellowClaimerAdapterContract.d.ts +46 -5
  386. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +488 -6
  387. package/dist/types/plugins/adapters/contracts/MellowDepositQueueAdapterContract.d.ts +20 -7
  388. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +493 -7
  389. package/dist/types/plugins/adapters/contracts/MellowRedeemQueueAdapterContract.d.ts +18 -6
  390. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +56 -5
  391. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +52 -7
  392. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +199 -7
  393. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +1040 -17
  394. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +82 -8
  395. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +148 -10
  396. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +758 -5
  397. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +183 -4
  398. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +110 -5
  399. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +84 -7
  400. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +122 -4
  401. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +275 -5
  402. package/dist/types/plugins/adapters/contracts/index.d.ts +3 -7
  403. package/dist/types/plugins/adapters/createAdapter.d.ts +5 -0
  404. package/dist/types/plugins/adapters/index.d.ts +3 -0
  405. package/dist/types/plugins/adapters/legacyAdapterOperations.d.ts +200 -0
  406. package/dist/types/plugins/adapters/transferHelpers.d.ts +60 -0
  407. package/dist/types/plugins/adapters/types.d.ts +64 -2
  408. package/dist/types/plugins/bots/abi/index.d.ts +0 -1
  409. package/dist/types/sdk/GearboxSDK.d.ts +0 -3
  410. package/dist/types/sdk/accounts/AbstractCreditAccountsService.d.ts +123 -37
  411. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +2 -2
  412. package/dist/types/sdk/accounts/createCreditAccountService.d.ts +1 -1
  413. package/dist/types/sdk/accounts/index.d.ts +0 -1
  414. package/dist/types/sdk/accounts/types.d.ts +115 -43
  415. package/dist/types/sdk/base/BaseContract.d.ts +17 -4
  416. package/dist/types/sdk/base/ChainContractsRegister.d.ts +11 -3
  417. package/dist/types/sdk/base/Construct.d.ts +13 -13
  418. package/dist/types/sdk/base/PlaceholderContract.d.ts +2 -2
  419. package/dist/types/sdk/base/TokensMeta.d.ts +27 -4
  420. package/dist/types/sdk/base/errors.d.ts +3 -0
  421. package/dist/types/sdk/base/index.d.ts +1 -0
  422. package/dist/types/sdk/base/token-types.d.ts +10 -2
  423. package/dist/types/sdk/base/types.d.ts +36 -0
  424. package/dist/types/sdk/chain/chains.d.ts +1 -1
  425. package/dist/types/sdk/constants/addresses.d.ts +0 -19
  426. package/dist/types/sdk/constants/networks.d.ts +0 -5
  427. package/dist/types/sdk/constants/versions.d.ts +0 -2
  428. package/dist/types/sdk/core/{address-provider/AbstractAddressProviderContract.d.ts → AbstractAddressProviderContract.d.ts} +4 -4
  429. package/dist/types/sdk/core/{address-provider/AddressProviderV310Contract.d.ts → AddressProviderV310Contract.d.ts} +1 -1
  430. package/dist/types/sdk/core/{address-provider/createAddressProvider.d.ts → createAddressProvider.d.ts} +1 -1
  431. package/dist/types/sdk/core/index.d.ts +3 -3
  432. package/dist/types/sdk/core/{address-provider/types.d.ts → types.d.ts} +3 -3
  433. package/dist/types/sdk/index.d.ts +0 -5
  434. package/dist/types/sdk/market/MarketConfiguratorContract.d.ts +1 -1
  435. package/dist/types/sdk/market/MarketRegister.d.ts +0 -1
  436. package/dist/types/sdk/market/MarketSuite.d.ts +2 -0
  437. package/dist/types/sdk/market/adapters/PlaceholderAdapterContracts.d.ts +10 -5
  438. package/dist/types/sdk/market/adapters/index.d.ts +1 -1
  439. package/dist/types/sdk/market/credit/CreditConfiguratorV310Contract.d.ts +6 -2
  440. package/dist/types/sdk/market/credit/{CreditFacadeV300Contract.d.ts → CreditFacadeV310BaseContract.d.ts} +335 -267
  441. package/dist/types/sdk/market/credit/CreditFacadeV310Contract.d.ts +6 -848
  442. package/dist/types/sdk/market/credit/index.d.ts +1 -3
  443. package/dist/types/sdk/market/credit/types.d.ts +2 -3
  444. package/dist/types/sdk/market/loss-policy/createLossPolicy.d.ts +0 -12
  445. package/dist/types/sdk/market/oracle/PriceOracleBaseContract.d.ts +2 -21
  446. package/dist/types/sdk/market/oracle/PriceOracleV310Contract.d.ts +2 -2
  447. package/dist/types/sdk/market/oracle/createPriceOracle.d.ts +1 -15
  448. package/dist/types/sdk/market/oracle/index.d.ts +0 -1
  449. package/dist/types/sdk/market/oracle/types.d.ts +6 -18
  450. package/dist/types/sdk/market/pool/GaugeContract.d.ts +116 -76
  451. package/dist/types/sdk/market/pool/LinearInterestRateModelContract.d.ts +20 -0
  452. package/dist/types/sdk/market/pool/PoolSuite.d.ts +2 -0
  453. package/dist/types/sdk/market/pool/PoolV310Contract.d.ts +6 -2
  454. package/dist/types/sdk/market/pool/SecuritizeKYCFactory.d.ts +345 -0
  455. package/dist/types/sdk/market/pool/index.d.ts +2 -2
  456. package/dist/types/sdk/market/pool/types.d.ts +2 -4
  457. package/dist/types/sdk/market/pricefeeds/AbstractLPPriceFeed.d.ts +0 -3
  458. package/dist/types/sdk/market/pricefeeds/PythPriceFeed.d.ts +21 -1
  459. package/dist/types/sdk/market/pricefeeds/types.d.ts +0 -9
  460. package/dist/types/sdk/market/pricefeeds/updates/PriceUpdatesCache.d.ts +1 -8
  461. package/dist/types/sdk/market/pricefeeds/updates/PythUpdater.d.ts +1 -1
  462. package/dist/types/sdk/market/pricefeeds/updates/RedstoneUpdater.d.ts +1 -1
  463. package/dist/types/sdk/market/pricefeeds/updates/fetchPythPayloads.d.ts +2 -2
  464. package/dist/types/sdk/market/pricefeeds/updates/fetchRedstonePayloads.d.ts +2 -2
  465. package/dist/types/sdk/options.d.ts +2 -2
  466. package/dist/types/sdk/plugins/index.d.ts +0 -1
  467. package/dist/types/sdk/pools/PoolService.d.ts +4 -1
  468. package/dist/types/sdk/pools/types.d.ts +22 -3
  469. package/dist/types/sdk/router/AbstractRouterContract.d.ts +2 -7
  470. package/dist/types/sdk/router/RouterV310Contract.d.ts +1 -16
  471. package/dist/types/sdk/router/helpers.d.ts +2 -2
  472. package/dist/types/sdk/router/index.d.ts +0 -1
  473. package/dist/types/sdk/router/types.d.ts +2 -55
  474. package/dist/types/sdk/types/state-human.d.ts +1 -4
  475. package/dist/types/sdk/utils/AddressMap.d.ts +1 -1
  476. package/dist/types/sdk/utils/abi-decode.d.ts +14 -1
  477. package/dist/types/sdk/utils/formatter.d.ts +9 -0
  478. package/dist/types/sdk/utils/viem/sendRawTx.d.ts +5 -1
  479. package/package.json +26 -12
  480. package/dist/cjs/abi/iDegenDistributorV300.js +0 -100
  481. package/dist/cjs/abi/routerV300.js +0 -406
  482. package/dist/cjs/abi/v300.js +0 -4189
  483. package/dist/cjs/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -51
  484. package/dist/cjs/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -58
  485. package/dist/cjs/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -49
  486. package/dist/cjs/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -56
  487. package/dist/cjs/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -46
  488. package/dist/cjs/plugins/adapters/contracts/types.js +0 -77
  489. package/dist/cjs/plugins/bots/abi/iPartialLiquidationBotV300.js +0 -164
  490. package/dist/cjs/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +0 -192
  491. package/dist/cjs/sdk/accountMigration/createMigrateCreditAccountsService.js +0 -41
  492. package/dist/cjs/sdk/accountMigration/index.js +0 -26
  493. package/dist/cjs/sdk/accounts/CreditAccountsServiceV300.js +0 -454
  494. package/dist/cjs/sdk/core/BotListV3Contract.js +0 -101
  495. package/dist/cjs/sdk/core/GearStakingV3Contract.js +0 -83
  496. package/dist/cjs/sdk/core/address-provider/AddressProviderV300Contract.js +0 -116
  497. package/dist/cjs/sdk/core/address-provider/index.js +0 -28
  498. package/dist/cjs/sdk/gauges/GaugeStakingService.js +0 -118
  499. package/dist/cjs/sdk/gauges/index.js +0 -24
  500. package/dist/cjs/sdk/market/credit/CreditConfiguratorV300Contract.js +0 -139
  501. package/dist/cjs/sdk/market/credit/CreditFacadeV300Contract.js +0 -160
  502. package/dist/cjs/sdk/market/credit/CreditManagerV300Contract.js +0 -114
  503. package/dist/cjs/sdk/market/oracle/PriceOracleV300Contract.js +0 -129
  504. package/dist/cjs/sdk/market/pool/PoolQuotaKeeperV300Contract.js +0 -85
  505. package/dist/cjs/sdk/market/pool/PoolV300Contract.js +0 -135
  506. package/dist/cjs/sdk/plugins/V300StalenessPeriodPlugin.js +0 -131
  507. package/dist/cjs/sdk/poolMigration/index.js +0 -84
  508. package/dist/cjs/sdk/router/PathOptionFactory.js +0 -105
  509. package/dist/cjs/sdk/router/RouterV300Contract.js +0 -390
  510. package/dist/cjs/sdk/sdk-gov-legacy/contracts/adapters.js +0 -67
  511. package/dist/cjs/sdk/sdk-gov-legacy/contracts/contracts.js +0 -2576
  512. package/dist/cjs/sdk/sdk-gov-legacy/contracts/index.js +0 -24
  513. package/dist/cjs/sdk/sdk-gov-legacy/contracts/protocols.js +0 -58
  514. package/dist/cjs/sdk/sdk-gov-legacy/index.js +0 -26
  515. package/dist/cjs/sdk/sdk-gov-legacy/oracles/PriceFeedType.js +0 -52
  516. package/dist/cjs/sdk/sdk-gov-legacy/tokens/aura.js +0 -239
  517. package/dist/cjs/sdk/sdk-gov-legacy/tokens/balancer.js +0 -339
  518. package/dist/cjs/sdk/sdk-gov-legacy/tokens/compound.js +0 -16
  519. package/dist/cjs/sdk/sdk-gov-legacy/tokens/convex.js +0 -450
  520. package/dist/cjs/sdk/sdk-gov-legacy/tokens/curveLP.js +0 -394
  521. package/dist/cjs/sdk/sdk-gov-legacy/tokens/erc4626.js +0 -16
  522. package/dist/cjs/sdk/sdk-gov-legacy/tokens/gear.js +0 -16
  523. package/dist/cjs/sdk/sdk-gov-legacy/tokens/index.js +0 -52
  524. package/dist/cjs/sdk/sdk-gov-legacy/tokens/normal.js +0 -562
  525. package/dist/cjs/sdk/sdk-gov-legacy/tokens/stakingRewards.js +0 -45
  526. package/dist/cjs/sdk/sdk-gov-legacy/tokens/token.js +0 -1002
  527. package/dist/cjs/sdk/sdk-gov-legacy/tokens/tokenData.js +0 -80
  528. package/dist/cjs/sdk/sdk-gov-legacy/tokens/tokenType.js +0 -50
  529. package/dist/cjs/sdk/sdk-gov-legacy/tokens/wrapped.js +0 -16
  530. package/dist/cjs/sdk/sdk-gov-legacy/tokens/yearn.js +0 -95
  531. package/dist/cjs/sdk/sdk-gov-legacy/tokens/zircuit.js +0 -16
  532. package/dist/cjs/sdk/sdk-legacy/core/assets.js +0 -150
  533. package/dist/cjs/sdk/sdk-legacy/core/creditAccount.js +0 -510
  534. package/dist/cjs/sdk/sdk-legacy/core/creditAccount.spec.js +0 -1802
  535. package/dist/cjs/sdk/sdk-legacy/core/creditManager.js +0 -263
  536. package/dist/cjs/sdk/sdk-legacy/core/creditSession.js +0 -256
  537. package/dist/cjs/sdk/sdk-legacy/core/endpoint.js +0 -137
  538. package/dist/cjs/sdk/sdk-legacy/core/eventOrTx.js +0 -87
  539. package/dist/cjs/sdk/sdk-legacy/core/pool.js +0 -334
  540. package/dist/cjs/sdk/sdk-legacy/core/transactions.js +0 -783
  541. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/api.js +0 -366
  542. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/apy.js +0 -176
  543. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/extraAPY.js +0 -137
  544. package/dist/cjs/sdk/sdk-legacy/gearboxRewards/index.js +0 -26
  545. package/dist/cjs/sdk/sdk-legacy/index.js +0 -52
  546. package/dist/cjs/sdk/sdk-legacy/payload/creditAccount.js +0 -16
  547. package/dist/cjs/sdk/sdk-legacy/payload/creditManager.js +0 -16
  548. package/dist/cjs/sdk/sdk-legacy/payload/creditSession.js +0 -16
  549. package/dist/cjs/sdk/sdk-legacy/payload/graphPayload.js +0 -16
  550. package/dist/cjs/sdk/sdk-legacy/payload/pool.js +0 -16
  551. package/dist/cjs/sdk/sdk-legacy/tokens/tokenData.js +0 -92
  552. package/dist/cjs/sdk/sdk-legacy/utils/formatter.js +0 -79
  553. package/dist/cjs/sdk/sdk-legacy/utils/price.js +0 -35
  554. package/dist/esm/abi/iDegenDistributorV300.js +0 -76
  555. package/dist/esm/abi/routerV300.js +0 -381
  556. package/dist/esm/abi/v300.js +0 -4154
  557. package/dist/esm/plugins/adapters/contracts/BalancerV2VaultAdapterContract.js +0 -27
  558. package/dist/esm/plugins/adapters/contracts/EqualizerRouterAdapterContract.js +0 -34
  559. package/dist/esm/plugins/adapters/contracts/InfraredVaultAdapterContract.js +0 -25
  560. package/dist/esm/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.js +0 -32
  561. package/dist/esm/plugins/adapters/contracts/MellowVaultAdapterContract.js +0 -22
  562. package/dist/esm/plugins/adapters/contracts/YearnV2AdapterContract.js +0 -22
  563. package/dist/esm/plugins/adapters/contracts/types.js +0 -48
  564. package/dist/esm/plugins/bots/abi/iPartialLiquidationBotV300.js +0 -140
  565. package/dist/esm/sdk/accountMigration/AbstractMigrateCreditAccountsService.js +0 -171
  566. package/dist/esm/sdk/accountMigration/MigrateCreditAccountsServiceV300.js +0 -6
  567. package/dist/esm/sdk/accountMigration/MigrateCreditAccountsServiceV310.js +0 -6
  568. package/dist/esm/sdk/accountMigration/createMigrateCreditAccountsService.js +0 -17
  569. package/dist/esm/sdk/accountMigration/index.js +0 -3
  570. package/dist/esm/sdk/accounts/CreditAccountsServiceV300.js +0 -442
  571. package/dist/esm/sdk/core/BotListV3Contract.js +0 -77
  572. package/dist/esm/sdk/core/GearStakingV3Contract.js +0 -59
  573. package/dist/esm/sdk/core/address-provider/AddressProviderV300Contract.js +0 -82
  574. package/dist/esm/sdk/core/address-provider/index.js +0 -4
  575. package/dist/esm/sdk/gauges/GaugeStakingService.js +0 -94
  576. package/dist/esm/sdk/gauges/index.js +0 -2
  577. package/dist/esm/sdk/market/credit/CreditConfiguratorV300Contract.js +0 -115
  578. package/dist/esm/sdk/market/credit/CreditFacadeV300Contract.js +0 -143
  579. package/dist/esm/sdk/market/credit/CreditManagerV300Contract.js +0 -90
  580. package/dist/esm/sdk/market/oracle/PriceOracleV300Contract.js +0 -111
  581. package/dist/esm/sdk/market/pool/PoolQuotaKeeperV300Contract.js +0 -61
  582. package/dist/esm/sdk/market/pool/PoolV300Contract.js +0 -116
  583. package/dist/esm/sdk/plugins/V300StalenessPeriodPlugin.js +0 -107
  584. package/dist/esm/sdk/poolMigration/index.js +0 -60
  585. package/dist/esm/sdk/router/PathOptionFactory.js +0 -92
  586. package/dist/esm/sdk/router/RouterV300Contract.js +0 -374
  587. package/dist/esm/sdk/sdk-gov-legacy/contracts/adapters.js +0 -43
  588. package/dist/esm/sdk/sdk-gov-legacy/contracts/contracts.js +0 -2538
  589. package/dist/esm/sdk/sdk-gov-legacy/contracts/index.js +0 -2
  590. package/dist/esm/sdk/sdk-gov-legacy/contracts/protocols.js +0 -34
  591. package/dist/esm/sdk/sdk-gov-legacy/index.js +0 -3
  592. package/dist/esm/sdk/sdk-gov-legacy/oracles/PriceFeedType.js +0 -28
  593. package/dist/esm/sdk/sdk-gov-legacy/oracles/index.js +0 -1
  594. package/dist/esm/sdk/sdk-gov-legacy/tokens/aura.js +0 -213
  595. package/dist/esm/sdk/sdk-gov-legacy/tokens/balancer.js +0 -314
  596. package/dist/esm/sdk/sdk-gov-legacy/tokens/convex.js +0 -424
  597. package/dist/esm/sdk/sdk-gov-legacy/tokens/curveLP.js +0 -369
  598. package/dist/esm/sdk/sdk-gov-legacy/tokens/gear.js +0 -0
  599. package/dist/esm/sdk/sdk-gov-legacy/tokens/index.js +0 -16
  600. package/dist/esm/sdk/sdk-gov-legacy/tokens/normal.js +0 -538
  601. package/dist/esm/sdk/sdk-gov-legacy/tokens/stakingRewards.js +0 -20
  602. package/dist/esm/sdk/sdk-gov-legacy/tokens/token.js +0 -975
  603. package/dist/esm/sdk/sdk-gov-legacy/tokens/tokenData.js +0 -55
  604. package/dist/esm/sdk/sdk-gov-legacy/tokens/tokenType.js +0 -26
  605. package/dist/esm/sdk/sdk-gov-legacy/tokens/wrapped.js +0 -0
  606. package/dist/esm/sdk/sdk-gov-legacy/tokens/yearn.js +0 -71
  607. package/dist/esm/sdk/sdk-gov-legacy/tokens/zircuit.js +0 -0
  608. package/dist/esm/sdk/sdk-legacy/core/creditAccount.js +0 -495
  609. package/dist/esm/sdk/sdk-legacy/core/creditAccount.spec.js +0 -1805
  610. package/dist/esm/sdk/sdk-legacy/core/creditManager.js +0 -242
  611. package/dist/esm/sdk/sdk-legacy/core/creditSession.js +0 -228
  612. package/dist/esm/sdk/sdk-legacy/core/endpoint.js +0 -107
  613. package/dist/esm/sdk/sdk-legacy/core/eventOrTx.js +0 -63
  614. package/dist/esm/sdk/sdk-legacy/core/pool.js +0 -311
  615. package/dist/esm/sdk/sdk-legacy/core/transactions.js +0 -732
  616. package/dist/esm/sdk/sdk-legacy/gearboxRewards/api.js +0 -332
  617. package/dist/esm/sdk/sdk-legacy/gearboxRewards/apy.js +0 -158
  618. package/dist/esm/sdk/sdk-legacy/gearboxRewards/extraAPY.js +0 -102
  619. package/dist/esm/sdk/sdk-legacy/gearboxRewards/index.js +0 -3
  620. package/dist/esm/sdk/sdk-legacy/gearboxRewards/merklAPI.js +0 -6
  621. package/dist/esm/sdk/sdk-legacy/index.js +0 -16
  622. package/dist/esm/sdk/sdk-legacy/payload/creditAccount.js +0 -0
  623. package/dist/esm/sdk/sdk-legacy/payload/creditManager.js +0 -0
  624. package/dist/esm/sdk/sdk-legacy/payload/creditSession.js +0 -0
  625. package/dist/esm/sdk/sdk-legacy/payload/graphPayload.js +0 -0
  626. package/dist/esm/sdk/sdk-legacy/payload/pool.js +0 -0
  627. package/dist/esm/sdk/sdk-legacy/tokens/tokenData.js +0 -68
  628. package/dist/esm/sdk/sdk-legacy/utils/formatter.js +0 -39
  629. package/dist/esm/sdk/sdk-legacy/utils/index.js +0 -3
  630. package/dist/esm/sdk/sdk-legacy/utils/math.js +0 -9
  631. package/dist/esm/sdk/sdk-legacy/utils/price.js +0 -11
  632. package/dist/types/abi/iDegenDistributorV300.d.ts +0 -87
  633. package/dist/types/abi/routerV300.d.ts +0 -585
  634. package/dist/types/abi/v300.d.ts +0 -5484
  635. package/dist/types/plugins/adapters/contracts/BalancerV2VaultAdapterContract.d.ts +0 -482
  636. package/dist/types/plugins/adapters/contracts/EqualizerRouterAdapterContract.d.ts +0 -225
  637. package/dist/types/plugins/adapters/contracts/InfraredVaultAdapterContract.d.ts +0 -198
  638. package/dist/types/plugins/adapters/contracts/KodiakIslandGatewayAdapterContract.d.ts +0 -396
  639. package/dist/types/plugins/adapters/contracts/MellowVaultAdapterContract.d.ts +0 -203
  640. package/dist/types/plugins/adapters/contracts/YearnV2AdapterContract.d.ts +0 -185
  641. package/dist/types/plugins/adapters/contracts/types.d.ts +0 -34
  642. package/dist/types/plugins/bots/abi/iPartialLiquidationBotV300.d.ts +0 -210
  643. package/dist/types/sdk/accountMigration/AbstractMigrateCreditAccountsService.d.ts +0 -32
  644. package/dist/types/sdk/accountMigration/MigrateCreditAccountsServiceV300.d.ts +0 -4
  645. package/dist/types/sdk/accountMigration/MigrateCreditAccountsServiceV310.d.ts +0 -4
  646. package/dist/types/sdk/accountMigration/createMigrateCreditAccountsService.d.ts +0 -8
  647. package/dist/types/sdk/accountMigration/index.d.ts +0 -3
  648. package/dist/types/sdk/accountMigration/types.d.ts +0 -62
  649. package/dist/types/sdk/accounts/CreditAccountsServiceV300.d.ts +0 -32
  650. package/dist/types/sdk/core/GearStakingV3Contract.d.ts +0 -520
  651. package/dist/types/sdk/core/address-provider/AddressProviderV300Contract.d.ts +0 -97
  652. package/dist/types/sdk/core/address-provider/index.d.ts +0 -4
  653. package/dist/types/sdk/gauges/GaugeStakingService.d.ts +0 -14
  654. package/dist/types/sdk/gauges/index.d.ts +0 -2
  655. package/dist/types/sdk/gauges/utils.d.ts +0 -22
  656. package/dist/types/sdk/market/credit/CreditConfiguratorV300Contract.d.ts +0 -648
  657. package/dist/types/sdk/market/credit/CreditManagerV300Contract.d.ts +0 -1043
  658. package/dist/types/sdk/market/oracle/PriceOracleV300Contract.d.ts +0 -369
  659. package/dist/types/sdk/market/pool/PoolV300Contract.d.ts +0 -1107
  660. package/dist/types/sdk/plugins/V300StalenessPeriodPlugin.d.ts +0 -29
  661. package/dist/types/sdk/poolMigration/index.d.ts +0 -11
  662. package/dist/types/sdk/router/PathOptionFactory.d.ts +0 -9
  663. package/dist/types/sdk/router/RouterV300Contract.d.ts +0 -39
  664. package/dist/types/sdk/sdk-gov-legacy/contracts/adapters.d.ts +0 -39
  665. package/dist/types/sdk/sdk-gov-legacy/contracts/contracts.d.ts +0 -194
  666. package/dist/types/sdk/sdk-gov-legacy/contracts/index.d.ts +0 -2
  667. package/dist/types/sdk/sdk-gov-legacy/contracts/protocols.d.ts +0 -30
  668. package/dist/types/sdk/sdk-gov-legacy/index.d.ts +0 -3
  669. package/dist/types/sdk/sdk-gov-legacy/oracles/PriceFeedType.d.ts +0 -24
  670. package/dist/types/sdk/sdk-gov-legacy/oracles/index.d.ts +0 -1
  671. package/dist/types/sdk/sdk-gov-legacy/tokens/aave.d.ts +0 -2
  672. package/dist/types/sdk/sdk-gov-legacy/tokens/aura.d.ts +0 -26
  673. package/dist/types/sdk/sdk-gov-legacy/tokens/balancer.d.ts +0 -15
  674. package/dist/types/sdk/sdk-gov-legacy/tokens/compound.d.ts +0 -1
  675. package/dist/types/sdk/sdk-gov-legacy/tokens/convex.d.ts +0 -31
  676. package/dist/types/sdk/sdk-gov-legacy/tokens/curveLP.d.ts +0 -25
  677. package/dist/types/sdk/sdk-gov-legacy/tokens/erc4626.d.ts +0 -1
  678. package/dist/types/sdk/sdk-gov-legacy/tokens/gear.d.ts +0 -5
  679. package/dist/types/sdk/sdk-gov-legacy/tokens/index.d.ts +0 -16
  680. package/dist/types/sdk/sdk-gov-legacy/tokens/normal.d.ts +0 -9
  681. package/dist/types/sdk/sdk-gov-legacy/tokens/stakingRewards.d.ts +0 -13
  682. package/dist/types/sdk/sdk-gov-legacy/tokens/token.d.ts +0 -34
  683. package/dist/types/sdk/sdk-gov-legacy/tokens/tokenData.d.ts +0 -5
  684. package/dist/types/sdk/sdk-gov-legacy/tokens/tokenType.d.ts +0 -24
  685. package/dist/types/sdk/sdk-gov-legacy/tokens/wrapped.d.ts +0 -7
  686. package/dist/types/sdk/sdk-gov-legacy/tokens/yearn.d.ts +0 -26
  687. package/dist/types/sdk/sdk-gov-legacy/tokens/zircuit.d.ts +0 -1
  688. package/dist/types/sdk/sdk-legacy/core/assets.d.ts +0 -39
  689. package/dist/types/sdk/sdk-legacy/core/creditAccount.d.ts +0 -152
  690. package/dist/types/sdk/sdk-legacy/core/creditAccount.spec.d.ts +0 -1
  691. package/dist/types/sdk/sdk-legacy/core/creditManager.d.ts +0 -92
  692. package/dist/types/sdk/sdk-legacy/core/creditSession.d.ts +0 -110
  693. package/dist/types/sdk/sdk-legacy/core/endpoint.d.ts +0 -24
  694. package/dist/types/sdk/sdk-legacy/core/eventOrTx.d.ts +0 -35
  695. package/dist/types/sdk/sdk-legacy/core/pool.d.ts +0 -144
  696. package/dist/types/sdk/sdk-legacy/core/transactions.d.ts +0 -348
  697. package/dist/types/sdk/sdk-legacy/gearboxRewards/api.d.ts +0 -87
  698. package/dist/types/sdk/sdk-legacy/gearboxRewards/apy.d.ts +0 -46
  699. package/dist/types/sdk/sdk-legacy/gearboxRewards/extraAPY.d.ts +0 -41
  700. package/dist/types/sdk/sdk-legacy/gearboxRewards/index.d.ts +0 -3
  701. package/dist/types/sdk/sdk-legacy/gearboxRewards/merklAPI.d.ts +0 -42
  702. package/dist/types/sdk/sdk-legacy/index.d.ts +0 -16
  703. package/dist/types/sdk/sdk-legacy/payload/creditAccount.d.ts +0 -47
  704. package/dist/types/sdk/sdk-legacy/payload/creditManager.d.ts +0 -109
  705. package/dist/types/sdk/sdk-legacy/payload/creditSession.d.ts +0 -111
  706. package/dist/types/sdk/sdk-legacy/payload/graphPayload.d.ts +0 -10
  707. package/dist/types/sdk/sdk-legacy/payload/pool.d.ts +0 -181
  708. package/dist/types/sdk/sdk-legacy/tokens/tokenData.d.ts +0 -21
  709. package/dist/types/sdk/sdk-legacy/utils/formatter.d.ts +0 -8
  710. package/dist/types/sdk/sdk-legacy/utils/index.d.ts +0 -3
  711. package/dist/types/sdk/sdk-legacy/utils/math.d.ts +0 -6
  712. package/dist/types/sdk/sdk-legacy/utils/price.d.ts +0 -9
  713. /package/dist/cjs/{sdk/accountMigration → common-utils/utils/creditAccount}/types.js +0 -0
  714. /package/dist/cjs/{sdk/core/address-provider → history}/types.js +0 -0
  715. /package/dist/esm/{sdk/accountMigration → common-utils/utils/creditAccount}/types.js +0 -0
  716. /package/dist/esm/{sdk/core/address-provider/types.js → history/inner-operations.js} +0 -0
  717. /package/dist/esm/{sdk/gauges/utils.js → history/internal-types.js} +0 -0
  718. /package/dist/esm/{sdk/sdk-gov-legacy/tokens/aave.js → history/types.js} +0 -0
  719. /package/dist/esm/{sdk/sdk-gov-legacy/tokens/compound.js → plugins/adapters/legacyAdapterOperations.js} +0 -0
  720. /package/dist/esm/sdk/{sdk-gov-legacy/tokens/erc4626.js → core/types.js} +0 -0
  721. /package/dist/esm/sdk/market/adapters/{factory.js → createAdapter.js} +0 -0
  722. /package/dist/types/sdk/market/adapters/{factory.d.ts → createAdapter.d.ts} +0 -0
@@ -1,14 +1,13 @@
1
1
  import { encodeFunctionData, getAddress, getContract } from "viem";
2
- import { iBotListV310Abi } from "../../abi/310/generated.js";
2
+ import {
3
+ iBotListV310Abi,
4
+ iCreditFacadeMulticallV310Abi
5
+ } from "../../abi/310/generated.js";
3
6
  import { creditAccountCompressorAbi } from "../../abi/compressors/creditAccountCompressor.js";
4
7
  import { peripheryCompressorAbi } from "../../abi/compressors/peripheryCompressor.js";
5
8
  import { rewardsCompressorAbi } from "../../abi/compressors/rewardsCompressor.js";
6
9
  import { iWithdrawalCompressorV310Abi } from "../../abi/IWithdrawalCompressorV310.js";
7
10
  import { iBaseRewardPoolAbi } from "../../abi/iBaseRewardPool.js";
8
- import {
9
- iBotListV300Abi,
10
- iCreditFacadeV300MulticallAbi
11
- } from "../../abi/v300.js";
12
11
  import { SDKConstruct } from "../base/index.js";
13
12
  import { chains } from "../chain/chains.js";
14
13
  import {
@@ -16,7 +15,6 @@ import {
16
15
  AP_CREDIT_ACCOUNT_COMPRESSOR,
17
16
  AP_PERIPHERY_COMPRESSOR,
18
17
  AP_REWARDS_COMPRESSOR,
19
- isV300,
20
18
  MAX_UINT256,
21
19
  MIN_INT96,
22
20
  PERCENTAGE_FACTOR,
@@ -24,13 +22,13 @@ import {
24
22
  VERSION_RANGE_310
25
23
  } from "../constants/index.js";
26
24
  import { assetsMap } from "../router/index.js";
27
- import { BigIntMath } from "../sdk-legacy/index.js";
28
25
  import { AddressMap } from "../utils/index.js";
29
26
  import { simulateWithPriceUpdates } from "../utils/viem/index.js";
30
27
  const COMPRESSORS = {
31
28
  [chains.Mainnet.id]: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023",
32
29
  [chains.Monad.id]: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023"
33
30
  };
31
+ const INVESTORS = new AddressMap([], "investors");
34
32
  function getWithdrawalCompressorAddress(chainId) {
35
33
  return COMPRESSORS[chainId];
36
34
  }
@@ -92,6 +90,23 @@ class AbstractCreditAccountService extends SDKConstruct {
92
90
  });
93
91
  return cad;
94
92
  }
93
+ /**
94
+ * Returns credit account data for a single account with the investor address resolved.
95
+ * Loads CA via getCreditAccountData; for KYC underlyings fetches the investor from the KYC factory's getInvestor(creditAccount), otherwise uses the account owner.
96
+ * @param account - Credit account address
97
+ * @param blockNumber - Optional block number for the read
98
+ * @returns CreditAccountDataWithInvestor (CA data + investor address), or undefined if the account is not found
99
+ */
100
+ async getCreditAccountDataWithInvestor(account, blockNumber) {
101
+ const ca = await this.getCreditAccountData(account, blockNumber);
102
+ if (!ca) return ca;
103
+ const marketSuite = this.sdk.marketRegister.findByCreditManager(
104
+ ca.creditManager
105
+ );
106
+ const factory = await marketSuite.getKYCFactory();
107
+ const investor = factory ? await factory.getInvestor(ca.creditAccount, true) : void 0;
108
+ return { ...ca, investor: investor ?? ca.owner };
109
+ }
95
110
  /**
96
111
  * Methods to get all credit accounts with some optional filtering
97
112
  * Performs all necessary price feed updates under the hood
@@ -100,7 +115,7 @@ class AbstractCreditAccountService extends SDKConstruct {
100
115
  * @param blockNumber
101
116
  * @returns returned credit accounts are sorted by health factor in ascending order
102
117
  */
103
- async getCreditAccounts(options, blockNumber) {
118
+ async getCreditAccounts(options, blockNumber, priceUpdate) {
104
119
  const {
105
120
  creditManager,
106
121
  includeZeroDebt = false,
@@ -122,7 +137,7 @@ class AbstractCreditAccountService extends SDKConstruct {
122
137
  maxHealthFactor,
123
138
  reverting: false
124
139
  };
125
- const { txs: priceUpdateTxs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
140
+ const { txs: priceUpdateTxs } = priceUpdate ?? await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
126
141
  ignoreReservePrices ? { main: true } : void 0
127
142
  );
128
143
  const allCAs = [];
@@ -151,6 +166,75 @@ class AbstractCreditAccountService extends SDKConstruct {
151
166
  );
152
167
  return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
153
168
  }
169
+ /**
170
+ * Returns all credit accounts matching the filter, with investor set on each item.
171
+ * Delegates to getCreditAccounts; when options.owner is set, also loads KYC credit accounts for that owner and merges them into the list. Result is sorted by health factor ascending.
172
+ * @param options - Filter options (owner, creditManager, health factor, etc.)
173
+ * @param blockNumber - Optional block number for the read
174
+ * @returns Array of credit accounts (with investor field), sorted by health factor ascending
175
+ */
176
+ async getCreditAccountsWithInvestor(options, blockNumber) {
177
+ const { owner, ignoreReservePrices = false } = options ?? {};
178
+ const priceUpdate = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
179
+ ignoreReservePrices ? { main: true } : void 0
180
+ );
181
+ const { txs: priceUpdateTxs } = priceUpdate;
182
+ const [common, kyc] = await Promise.all([
183
+ this.getCreditAccounts(options, blockNumber),
184
+ owner ? this.getKYCCreditAccountsOfOwner(owner, priceUpdateTxs, blockNumber) : void 0
185
+ ]);
186
+ const allCAs = common.map(
187
+ (ca) => ({
188
+ ...ca,
189
+ investor: owner || ca.owner
190
+ })
191
+ );
192
+ allCAs.push(...kyc || []);
193
+ return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
194
+ }
195
+ async getKYCCreditAccountsOfOwner(owner, priceUpdateTxs, blockNumber) {
196
+ const suites = this.marketConfigurators.map((mc) => {
197
+ const suite = this.sdk.marketRegister.markets.find(
198
+ (m) => m.configurator.address === mc
199
+ );
200
+ return suite;
201
+ });
202
+ const kycCAAddresses = await this.getKYCCaOfInvestor(owner, suites);
203
+ const kycCAs = await this.loadSpecifiedAccounts(
204
+ kycCAAddresses,
205
+ priceUpdateTxs,
206
+ blockNumber
207
+ );
208
+ return kycCAs.map((ca) => ({
209
+ ...ca,
210
+ investor: owner
211
+ }));
212
+ }
213
+ /**
214
+ * Loads credit account data for the given addresses using simulateWithPriceUpdates.
215
+ * Applies the provided price update txs before reading, so returned data is consistent with up-to-date prices.
216
+ * @param accounts - Credit account addresses to load
217
+ * @param priceUpdateTxs - Price feed update txs to simulate before the read (e.g. from generatePriceFeedsUpdateTxs)
218
+ * @param blockNumber - Optional block number for the read
219
+ * @returns Array of CreditAccountData in the same order as accounts (throws if any getCreditAccountData call reverts)
220
+ */
221
+ async loadSpecifiedAccounts(accounts, priceUpdateTxs, blockNumber) {
222
+ if (accounts.length === 0) return [];
223
+ const list = await simulateWithPriceUpdates(this.client, {
224
+ priceUpdates: priceUpdateTxs,
225
+ contracts: accounts.map(
226
+ (account) => ({
227
+ abi: creditAccountCompressorAbi,
228
+ address: this.#compressor,
229
+ functionName: "getCreditAccountData",
230
+ args: [account]
231
+ })
232
+ ),
233
+ blockNumber,
234
+ gas: this.sdk.gasLimit
235
+ });
236
+ return list;
237
+ }
154
238
  /**
155
239
  * Method to get all claimable rewards for credit account (ex. stkUSDS SKY rewards)
156
240
  Assosiates rewards by adapter + stakedPhantomToken
@@ -220,10 +304,10 @@ class AbstractCreditAccountService extends SDKConstruct {
220
304
  ca.creditManager
221
305
  );
222
306
  return {
223
- abi: isV300(cm.creditFacade.version) ? iBotListV300Abi : iBotListV310Abi,
307
+ abi: iBotListV310Abi,
224
308
  address: cm.creditFacade.botList,
225
309
  functionName: "getBotStatus",
226
- args: isV300(cm.creditFacade.version) ? [legacyMigrationBot, ca.creditManager, ca.creditAccount] : [legacyMigrationBot, ca.creditAccount]
310
+ args: [legacyMigrationBot, ca.creditAccount]
227
311
  };
228
312
  }) : [],
229
313
  ...accountsToCheck.flatMap((ca) => {
@@ -232,10 +316,10 @@ class AbstractCreditAccountService extends SDKConstruct {
232
316
  );
233
317
  return additionalBots.map((bot) => {
234
318
  return {
235
- abi: isV300(cm.creditFacade.version) ? iBotListV300Abi : iBotListV310Abi,
319
+ abi: iBotListV310Abi,
236
320
  address: cm.creditFacade.botList,
237
321
  functionName: "getBotStatus",
238
- args: isV300(cm.creditFacade.version) ? [bot, ca.creditManager, ca.creditAccount] : [bot, ca.creditAccount]
322
+ args: [bot, ca.creditAccount]
239
323
  };
240
324
  });
241
325
  })
@@ -313,7 +397,6 @@ class AbstractCreditAccountService extends SDKConstruct {
313
397
  account,
314
398
  to,
315
399
  slippage = 50n,
316
- force = false,
317
400
  keepAssets,
318
401
  ignoreReservePrices,
319
402
  applyLossPolicy,
@@ -324,7 +407,6 @@ class AbstractCreditAccountService extends SDKConstruct {
324
407
  creditAccount: account,
325
408
  creditManager: cm.creditManager,
326
409
  slippage,
327
- force,
328
410
  keepAssets,
329
411
  debtOnly
330
412
  });
@@ -383,6 +465,13 @@ class AbstractCreditAccountService extends SDKConstruct {
383
465
  closePath
384
466
  }) {
385
467
  const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
468
+ await this.sdk.tokensMeta.loadTokenData(cm.underlying);
469
+ const underlying = this.sdk.tokensMeta.mustGet(cm.underlying);
470
+ if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
471
+ throw new Error(
472
+ "closeCreditAccount is not supported for KYC underlying credit accounts"
473
+ );
474
+ }
386
475
  const routerCloseResult = closePath || await this.sdk.routerFor(ca).findBestClosePath({
387
476
  creditAccount: ca,
388
477
  creditManager: cm.creditManager,
@@ -397,12 +486,16 @@ class AbstractCreditAccountService extends SDKConstruct {
397
486
  ...routerCloseResult.calls,
398
487
  ...this.prepareDisableQuotas(ca),
399
488
  ...this.prepareDecreaseDebt(ca),
400
- ...this.prepareDisableTokens(ca),
401
489
  ...assetsToWithdraw.map(
402
490
  (t) => this.prepareWithdrawToken(ca.creditFacade, t, MAX_UINT256, to)
403
491
  )
404
492
  ];
405
- const tx = operation === "close" ? cm.creditFacade.closeCreditAccount(ca.creditAccount, calls) : cm.creditFacade.multicall(ca.creditAccount, calls);
493
+ const tx = await this.closeCreditAccountTx(
494
+ cm,
495
+ ca.creditAccount,
496
+ calls,
497
+ operation
498
+ );
406
499
  return { tx, calls, routerCloseResult, creditFacade: cm.creditFacade };
407
500
  }
408
501
  /**
@@ -432,7 +525,7 @@ class AbstractCreditAccountService extends SDKConstruct {
432
525
  averageQuota
433
526
  })
434
527
  ];
435
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
528
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
436
529
  return { tx, calls, creditFacade: cm.creditFacade };
437
530
  }
438
531
  /**
@@ -474,7 +567,7 @@ class AbstractCreditAccountService extends SDKConstruct {
474
567
  averageQuota
475
568
  })
476
569
  ];
477
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
570
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
478
571
  tx.value = ethAmount.toString(10);
479
572
  return { tx, calls, creditFacade: cm.creditFacade };
480
573
  }
@@ -491,13 +584,13 @@ class AbstractCreditAccountService extends SDKConstruct {
491
584
  async changeDebt({
492
585
  creditAccount,
493
586
  amount,
494
- addCollateral
587
+ collateral
495
588
  }) {
496
589
  if (amount === 0n) {
497
590
  throw new Error("debt increase or decrease must be non-zero");
498
591
  }
499
592
  const isDecrease = amount < 0n;
500
- const change = BigIntMath.abs(amount);
593
+ const change = amount > 0n ? amount : -amount;
501
594
  const cm = this.sdk.marketRegister.findCreditManager(
502
595
  creditAccount.creditManager
503
596
  );
@@ -505,27 +598,32 @@ class AbstractCreditAccountService extends SDKConstruct {
505
598
  creditManager: creditAccount.creditManager,
506
599
  creditAccount
507
600
  });
508
- const addCollateralCalls = addCollateral && isDecrease ? this.prepareAddCollateral(
601
+ const addCollateralCalls = collateral && isDecrease ? this.prepareAddCollateral(
509
602
  creditAccount.creditFacade,
510
603
  [
511
604
  {
512
- token: creditAccount.underlying,
513
- balance: change
605
+ token: collateral[0].token,
606
+ balance: collateral[0].balance
514
607
  }
515
608
  ],
516
609
  {}
517
610
  ) : [];
518
- const underlyingEnabled = (creditAccount.enabledTokensMask & 1n) === 1n;
519
- const shouldEnable = !isDecrease && !underlyingEnabled;
611
+ const unwrapCalls = collateral && isDecrease ? await this.getKYCUnwrapCalls(
612
+ collateral[0].balance,
613
+ creditAccount.creditManager
614
+ ) || [] : [];
615
+ if (addCollateralCalls.length > 0 && unwrapCalls.length === 0 && collateral && collateral?.[0].token !== creditAccount.underlying) {
616
+ throw new Error(
617
+ "Can't use collateral other than underlying for non KYC market"
618
+ );
619
+ }
520
620
  const calls = [
521
621
  ...priceUpdatesCalls,
522
622
  ...addCollateralCalls,
523
- ...shouldEnable ? this.#prepareEnableTokens(creditAccount.creditFacade, [
524
- creditAccount.underlying
525
- ]) : [],
623
+ ...unwrapCalls,
526
624
  this.#prepareChangeDebt(creditAccount.creditFacade, change, isDecrease)
527
625
  ];
528
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
626
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
529
627
  return { tx, calls, creditFacade: cm.creditFacade };
530
628
  }
531
629
  /**
@@ -560,7 +658,7 @@ class AbstractCreditAccountService extends SDKConstruct {
560
658
  averageQuota
561
659
  })
562
660
  ];
563
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
661
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
564
662
  return { tx, calls, creditFacade: cm.creditFacade };
565
663
  }
566
664
  /**
@@ -643,12 +741,12 @@ class AbstractCreditAccountService extends SDKConstruct {
643
741
  const storeExpectedBalances = {
644
742
  target: cm.creditFacade.address,
645
743
  callData: encodeFunctionData({
646
- abi: iCreditFacadeV300MulticallAbi,
744
+ abi: iCreditFacadeMulticallV310Abi,
647
745
  functionName: "storeExpectedBalances",
648
746
  args: [
649
747
  balances.map(([token, amount]) => ({
650
748
  token,
651
- amount: BigIntMath.max(0n, amount - 10n)
749
+ amount: amount > 10n ? amount - 10n : 0n
652
750
  }))
653
751
  ]
654
752
  })
@@ -656,7 +754,7 @@ class AbstractCreditAccountService extends SDKConstruct {
656
754
  const compareBalances = {
657
755
  target: cm.creditFacade.address,
658
756
  callData: encodeFunctionData({
659
- abi: iCreditFacadeV300MulticallAbi,
757
+ abi: iCreditFacadeMulticallV310Abi,
660
758
  functionName: "compareBalances",
661
759
  args: []
662
760
  })
@@ -676,7 +774,7 @@ class AbstractCreditAccountService extends SDKConstruct {
676
774
  averageQuota
677
775
  })
678
776
  ];
679
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
777
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
680
778
  return { tx, calls, creditFacade: cm.creditFacade };
681
779
  }
682
780
  /**
@@ -707,12 +805,12 @@ class AbstractCreditAccountService extends SDKConstruct {
707
805
  const storeExpectedBalances = {
708
806
  target: cm.creditFacade.address,
709
807
  callData: encodeFunctionData({
710
- abi: iCreditFacadeV300MulticallAbi,
808
+ abi: iCreditFacadeMulticallV310Abi,
711
809
  functionName: "storeExpectedBalances",
712
810
  args: [
713
811
  balances.map(([token, amount]) => ({
714
812
  token,
715
- amount: BigIntMath.max(0n, amount - 10n)
813
+ amount: amount > 10n ? amount - 10n : 0n
716
814
  }))
717
815
  ]
718
816
  })
@@ -720,7 +818,7 @@ class AbstractCreditAccountService extends SDKConstruct {
720
818
  const compareBalances = {
721
819
  target: cm.creditFacade.address,
722
820
  callData: encodeFunctionData({
723
- abi: iCreditFacadeV300MulticallAbi,
821
+ abi: iCreditFacadeMulticallV310Abi,
724
822
  functionName: "compareBalances",
725
823
  args: []
726
824
  })
@@ -741,75 +839,63 @@ class AbstractCreditAccountService extends SDKConstruct {
741
839
  compareBalances,
742
840
  ...quotaCalls
743
841
  ];
744
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
842
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
745
843
  return { tx, calls, creditFacade: cm.creditFacade };
746
844
  }
747
845
  /**
748
- * Executes enable/disable tokens specified by given tokens lists and token prices
749
- * @param {RouterCASlice} creditAccount - minimal credit account data {@link RouterCASlice} on which operation is performed
750
- * @param {Array<Asset>} enabledTokens - list of tokens to enable {@link Asset};
751
- * @param {Array<Asset>} disabledTokens - list of tokens to disable {@link Asset};
752
- * @returns All necessary data to execute the transaction (call, credit facade)
753
- */
754
- async enableTokens({
755
- enabledTokens,
756
- disabledTokens,
757
- creditAccount: ca
758
- }) {
759
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
760
- const priceUpdatesCalls = await this.getPriceUpdatesForFacade({
761
- creditManager: ca.creditManager,
762
- creditAccount: ca
763
- });
764
- const calls = [
765
- ...priceUpdatesCalls,
766
- ...disabledTokens.map(
767
- (token) => this.prepareDisableToken(ca.creditFacade, token)
768
- ),
769
- ...this.#prepareEnableTokens(ca.creditFacade, enabledTokens)
770
- ];
771
- const tx = cm.creditFacade.multicall(ca.creditAccount, calls);
772
- return { tx, calls, creditFacade: cm.creditFacade };
846
+ * Returns address to which approval should be given on collateral token
847
+ * It's credit manager for classical markets and special wallet for KYC markets
848
+ * @param options - {@link GetApprovalAddressProps}
849
+ * @returns
850
+ **/
851
+ async getApprovalAddress(options) {
852
+ const { creditManager } = options;
853
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
854
+ const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
855
+ const factory = await marketSuite.getKYCFactory();
856
+ if (factory) {
857
+ if ("creditAccount" in options) {
858
+ return factory.getWallet(options.creditAccount);
859
+ }
860
+ return factory.precomputeWalletAddress(creditManager, options.borrower);
861
+ }
862
+ return suite.creditManager.address;
773
863
  }
774
864
  /**
775
865
  * Executes swap specified by given calls, update quotas of affected tokens
776
- - Open credit account is executed in the following order: price update -> increase debt -> add collateral ->
777
- -> update quotas -> (optionally: execute swap path for trading/strategy) ->
778
- -> (optionally: withdraw debt for lending)
779
- - Basic open credit account: price update -> increase debt -> add collateral -> update quotas
780
- - Lending: price update -> increase debt -> add collateral -> update quotas -> withdraw debt
781
- - Strategy/trading: price update -> increase debt -> add collateral -> update quotas -> execute swap path
782
- - In strategy is possible situation when collateral is added, but not swapped; the only swapped value in this case will be debt
783
- * @param {bigint} ethAmount - native token amount to attach to tx
784
- * @param {Address} creditManager - address of credit manager to open credit account on
785
- * @param {Array<Asset>} collateral - array of collateral which can be just directly added or swapped using the path {@link Asset}
786
- * @param {Record<Address, PermitResult>} permits - permits of collateral tokens (in any permittable token is present) {@link PermitResult}
787
- * @param {bigint} debt - debt to open credit account with
788
- * @param {boolean} withdrawDebt - flag to withdraw debt to wallet after opening credit account;
789
- used for borrowing functionality
790
- * @param {bigint} referralCode - referral code to open credit account with
791
- * @param {Address} to - wallet address to transfer credit account to\
792
- * @param {Array<MultiCall>} calls - array of MultiCall from router methods findOpenStrategyPath {@link MultiCall}.
793
- Used for trading and strategy functionality
794
- * @param {Array<Asset>} averageQuota - average quota for tokens after open {@link Asset}
795
- * @param {Array<Asset>} minQuota - minimum quota for tokens after open {@link Asset}
866
+ * - Open credit account is executed in the following order: price update -> increase debt -> add collateral ->
867
+ * -> update quotas -> (optionally: execute swap path for trading/strategy) ->
868
+ * -> (optionally: withdraw debt for lending)
869
+ *- Basic open credit account: price update -> increase debt -> add collateral -> update quotas
870
+ *- Lending: price update -> increase debt -> add collateral -> update quotas -> withdraw debt
871
+ *- Strategy/trading: price update -> increase debt -> add collateral -> update quotas -> execute swap path
872
+ *- In strategy is possible situation when collateral is added, but not swapped; the only swapped value in this case will be debt
796
873
  * @returns All necessary data to execute the transaction (call, credit facade)
797
- */
798
- async openCA({
799
- ethAmount,
800
- creditManager,
801
- collateral,
802
- permits,
803
- debt,
804
- withdrawDebt,
805
- referralCode,
806
- to,
807
- calls: openPathCalls,
808
- minQuota,
809
- averageQuota
810
- }) {
874
+ **/
875
+ async openCA(props) {
876
+ const {
877
+ ethAmount,
878
+ creditManager,
879
+ reopenCreditAccount,
880
+ collateral,
881
+ permits,
882
+ debt,
883
+ withdrawToken,
884
+ referralCode,
885
+ to,
886
+ calls: openPathCalls,
887
+ callsAfter,
888
+ minQuota,
889
+ averageQuota
890
+ } = props;
811
891
  const cmSuite = this.sdk.marketRegister.findCreditManager(creditManager);
812
892
  const cm = cmSuite.creditManager;
893
+ let tokenToWithdraw;
894
+ if (withdrawToken === true) {
895
+ tokenToWithdraw = cm.underlying;
896
+ } else if (typeof withdrawToken === "string") {
897
+ tokenToWithdraw = withdrawToken;
898
+ }
813
899
  const priceUpdatesCalls = await this.getPriceUpdatesForFacade({
814
900
  creditManager: cm.address,
815
901
  desiredQuotas: averageQuota
@@ -819,13 +905,27 @@ class AbstractCreditAccountService extends SDKConstruct {
819
905
  this.#prepareIncreaseDebt(cm.creditFacade, debt),
820
906
  ...this.prepareAddCollateral(cm.creditFacade, collateral, permits),
821
907
  ...openPathCalls,
822
- ...withdrawDebt ? [this.prepareWithdrawToken(cm.creditFacade, cm.underlying, debt, to)] : [],
908
+ // путь из underlying в withdrawal token
909
+ ...tokenToWithdraw ? [
910
+ this.prepareWithdrawToken(
911
+ cm.creditFacade,
912
+ tokenToWithdraw,
913
+ MAX_UINT256,
914
+ to
915
+ )
916
+ ] : [],
823
917
  ...this.prepareUpdateQuotas(cm.creditFacade, {
824
918
  minQuota,
825
919
  averageQuota
826
- })
920
+ }),
921
+ ...callsAfter ?? []
827
922
  ];
828
- const tx = cmSuite.creditFacade.openCreditAccount(to, calls, referralCode);
923
+ let tx;
924
+ if (reopenCreditAccount) {
925
+ tx = await this.multicallTx(cmSuite, reopenCreditAccount, calls);
926
+ } else {
927
+ tx = await this.openCreditAccountTx(cmSuite, to, calls, referralCode);
928
+ }
829
929
  tx.value = ethAmount.toString(10);
830
930
  return { calls, tx, creditFacade: cmSuite.creditFacade };
831
931
  }
@@ -909,6 +1009,130 @@ class AbstractCreditAccountService extends SDKConstruct {
909
1009
  );
910
1010
  return resp;
911
1011
  }
1012
+ /**
1013
+ * Returns multicall entries to redeem (unwrap) KYC ERC-4626 vault shares into underlying for the given credit manager.
1014
+ * Used when withdrawing debt from a KYC market: redeems adapter vault shares so the underlying can be withdrawn.
1015
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1016
+ * @param amount - Number of vault shares (adapter tokens) to redeem
1017
+ * @param creditManager - Credit manager address
1018
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1019
+ */
1020
+ async getKYCUnwrapCalls(amount, creditManager) {
1021
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1022
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1023
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1024
+ return void 0;
1025
+ }
1026
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1027
+ const adapterAddress = adapter?.address;
1028
+ if (!adapterAddress) {
1029
+ return void 0;
1030
+ }
1031
+ const mc = [
1032
+ {
1033
+ target: adapterAddress,
1034
+ callData: encodeFunctionData({
1035
+ abi: ierc4626AdapterAbi,
1036
+ functionName: "redeem",
1037
+ args: [amount, ADDRESS_0X0, ADDRESS_0X0]
1038
+ })
1039
+ }
1040
+ ];
1041
+ return mc;
1042
+ }
1043
+ /**
1044
+ * Returns multicall entries to deposit (wrap) underlying into KYC ERC-4626 vault shares for the given credit manager.
1045
+ * Used when adding debt on a KYC market: deposits underlying into the adapter vault so shares are minted on the account.
1046
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1047
+ * @param amount - Amount of underlying assets to deposit into the vault (in underlying decimals)
1048
+ * @param creditManager - Credit manager address
1049
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1050
+ */
1051
+ async getKYCWrapCalls(amount, creditManager) {
1052
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1053
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1054
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1055
+ return void 0;
1056
+ }
1057
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1058
+ const adapterAddress = adapter?.address;
1059
+ if (!adapterAddress) {
1060
+ return void 0;
1061
+ }
1062
+ const mc = [
1063
+ {
1064
+ target: adapterAddress,
1065
+ callData: encodeFunctionData({
1066
+ abi: ierc4626AdapterAbi,
1067
+ functionName: "deposit",
1068
+ args: [amount, ADDRESS_0X0]
1069
+ })
1070
+ }
1071
+ ];
1072
+ return mc;
1073
+ }
1074
+ /**
1075
+ * Returns multicall entries to call redeemDiff on the KYC ERC-4626 adapter for the given credit manager.
1076
+ * Redeems the leftover vault shares (e.g. after repaying debt) so the account does not hold excess KYC vault tokens.
1077
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1078
+ * @param amount - Leftover vault share amount to redeem (in adapter/vault decimals)
1079
+ * @param creditManager - Credit manager address
1080
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1081
+ */
1082
+ async getRedeemDiffCalls(amount, creditManager) {
1083
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1084
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1085
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1086
+ return void 0;
1087
+ }
1088
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1089
+ const adapterAddress = adapter?.address;
1090
+ if (!adapterAddress) {
1091
+ return void 0;
1092
+ }
1093
+ const mc = [
1094
+ {
1095
+ target: adapterAddress,
1096
+ callData: encodeFunctionData({
1097
+ abi: ierc4626AdapterAbi,
1098
+ functionName: "redeemDiff",
1099
+ args: [amount]
1100
+ })
1101
+ }
1102
+ ];
1103
+ return mc;
1104
+ }
1105
+ /**
1106
+ * Returns multicall entries to call depositDiff on the KYC ERC-4626 adapter for the given credit manager.
1107
+ * Deposits the leftover underlying (e.g. after decreasing debt) into the vault so the account does not hold excess underlying.
1108
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1109
+ * @param amount - Leftover underlying amount to deposit into the vault (in underlying decimals)
1110
+ * @param creditManager - Credit manager address
1111
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1112
+ */
1113
+ async getDepositDiffCalls(amount, creditManager) {
1114
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1115
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1116
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1117
+ return void 0;
1118
+ }
1119
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1120
+ const adapterAddress = adapter?.address;
1121
+ if (!adapterAddress) {
1122
+ return void 0;
1123
+ }
1124
+ const mc = [
1125
+ {
1126
+ target: adapterAddress,
1127
+ callData: encodeFunctionData({
1128
+ abi: ierc4626AdapterAbi,
1129
+ functionName: "depositDiff",
1130
+ args: [amount]
1131
+ })
1132
+ }
1133
+ ];
1134
+ return mc;
1135
+ }
912
1136
  /**
913
1137
  * Returns raw txs that are needed to update all price feeds so that all credit accounts (possibly from different markets) compute
914
1138
  *
@@ -1024,7 +1248,7 @@ class AbstractCreditAccountService extends SDKConstruct {
1024
1248
  calls.push({
1025
1249
  target: ca.creditFacade,
1026
1250
  callData: encodeFunctionData({
1027
- abi: iCreditFacadeV300MulticallAbi,
1251
+ abi: iCreditFacadeMulticallV310Abi,
1028
1252
  functionName: "updateQuota",
1029
1253
  args: [token, MIN_INT96, 0n]
1030
1254
  })
@@ -1041,7 +1265,7 @@ class AbstractCreditAccountService extends SDKConstruct {
1041
1265
  return {
1042
1266
  target: creditFacade,
1043
1267
  callData: encodeFunctionData({
1044
- abi: iCreditFacadeV300MulticallAbi,
1268
+ abi: iCreditFacadeMulticallV310Abi,
1045
1269
  functionName: "updateQuota",
1046
1270
  args: [q.token, q.balance, min]
1047
1271
  })
@@ -1055,7 +1279,7 @@ class AbstractCreditAccountService extends SDKConstruct {
1055
1279
  {
1056
1280
  target: ca.creditFacade,
1057
1281
  callData: encodeFunctionData({
1058
- abi: iCreditFacadeV300MulticallAbi,
1282
+ abi: iCreditFacadeMulticallV310Abi,
1059
1283
  functionName: "decreaseDebt",
1060
1284
  args: [MAX_UINT256]
1061
1285
  })
@@ -1064,41 +1288,11 @@ class AbstractCreditAccountService extends SDKConstruct {
1064
1288
  }
1065
1289
  return [];
1066
1290
  }
1067
- prepareDisableTokens(ca) {
1068
- const calls = [];
1069
- for (const t of ca.tokens) {
1070
- const isEnabled = (t.mask & ca.enabledTokensMask) !== 0n;
1071
- if (t.token !== ca.underlying && isEnabled && t.quota === 0n) {
1072
- calls.push(this.prepareDisableToken(ca.creditFacade, t.token));
1073
- }
1074
- }
1075
- return calls;
1076
- }
1077
- prepareDisableToken(creditFacade, token) {
1078
- return {
1079
- target: creditFacade,
1080
- callData: encodeFunctionData({
1081
- abi: iCreditFacadeV300MulticallAbi,
1082
- functionName: "disableToken",
1083
- args: [token]
1084
- })
1085
- };
1086
- }
1087
- #prepareEnableTokens(creditFacade, tokens) {
1088
- return tokens.map((t) => ({
1089
- target: creditFacade,
1090
- callData: encodeFunctionData({
1091
- abi: iCreditFacadeV300MulticallAbi,
1092
- functionName: "enableToken",
1093
- args: [t]
1094
- })
1095
- }));
1096
- }
1097
1291
  prepareWithdrawToken(creditFacade, token, amount, to) {
1098
1292
  return {
1099
1293
  target: creditFacade,
1100
1294
  callData: encodeFunctionData({
1101
- abi: iCreditFacadeV300MulticallAbi,
1295
+ abi: iCreditFacadeMulticallV310Abi,
1102
1296
  functionName: "withdrawCollateral",
1103
1297
  args: [token, amount, to]
1104
1298
  })
@@ -1108,7 +1302,7 @@ class AbstractCreditAccountService extends SDKConstruct {
1108
1302
  return {
1109
1303
  target: creditFacade,
1110
1304
  callData: encodeFunctionData({
1111
- abi: iCreditFacadeV300MulticallAbi,
1305
+ abi: iCreditFacadeMulticallV310Abi,
1112
1306
  functionName: "increaseDebt",
1113
1307
  args: [debt]
1114
1308
  })
@@ -1118,7 +1312,7 @@ class AbstractCreditAccountService extends SDKConstruct {
1118
1312
  return {
1119
1313
  target: creditFacade,
1120
1314
  callData: encodeFunctionData({
1121
- abi: iCreditFacadeV300MulticallAbi,
1315
+ abi: iCreditFacadeMulticallV310Abi,
1122
1316
  functionName: isDecrease ? "decreaseDebt" : "increaseDebt",
1123
1317
  args: [change]
1124
1318
  })
@@ -1131,7 +1325,7 @@ class AbstractCreditAccountService extends SDKConstruct {
1131
1325
  return {
1132
1326
  target: creditFacade,
1133
1327
  callData: encodeFunctionData({
1134
- abi: iCreditFacadeV300MulticallAbi,
1328
+ abi: iCreditFacadeMulticallV310Abi,
1135
1329
  functionName: "addCollateralWithPermit",
1136
1330
  args: [token, balance, p.deadline, p.v, p.r, p.s]
1137
1331
  })
@@ -1140,7 +1334,7 @@ class AbstractCreditAccountService extends SDKConstruct {
1140
1334
  return {
1141
1335
  target: creditFacade,
1142
1336
  callData: encodeFunctionData({
1143
- abi: iCreditFacadeV300MulticallAbi,
1337
+ abi: iCreditFacadeMulticallV310Abi,
1144
1338
  functionName: "addCollateral",
1145
1339
  args: [token, balance]
1146
1340
  })
@@ -1166,78 +1360,174 @@ class AbstractCreditAccountService extends SDKConstruct {
1166
1360
  VERSION_RANGE_310
1167
1361
  )[0];
1168
1362
  }
1363
+ /**
1364
+ * Wrapper that selects between credit facade and KYC factory
1365
+ * @param suite
1366
+ * @param to
1367
+ * @param calls
1368
+ * @param referralCode
1369
+ * @returns
1370
+ */
1371
+ async openCreditAccountTx(suite, to, calls, referralCode) {
1372
+ const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
1373
+ const factory = await marketSuite.getKYCFactory();
1374
+ if (factory) {
1375
+ const tokensToRegister = await factory.getDSTokens();
1376
+ return factory.openCreditAccount(
1377
+ suite.creditManager.address,
1378
+ calls,
1379
+ tokensToRegister
1380
+ );
1381
+ }
1382
+ return suite.creditFacade.openCreditAccount(to, calls, referralCode ?? 0n);
1383
+ }
1384
+ /**
1385
+ * Wrapper that selects between credit facade and KYC factory
1386
+ * @param suite
1387
+ * @param creditAccount
1388
+ * @param calls
1389
+ * @returns
1390
+ */
1391
+ async multicallTx(suite, creditAccount, calls) {
1392
+ const marketSuite = this.sdk.marketRegister.findByCreditManager(
1393
+ suite.creditManager.address
1394
+ );
1395
+ const factory = await marketSuite.getKYCFactory();
1396
+ if (factory) {
1397
+ const tokensToRegister = [];
1398
+ return factory.multicall(creditAccount, calls, tokensToRegister);
1399
+ }
1400
+ return suite.creditFacade.multicall(creditAccount, calls);
1401
+ }
1402
+ /**
1403
+ * Wrapper that selects between credit facade and KYC factory
1404
+ * @param suite
1405
+ * @param creditAccount
1406
+ * @param calls
1407
+ * @param operation
1408
+ * @returns
1409
+ */
1410
+ async closeCreditAccountTx(suite, creditAccount, calls, operation) {
1411
+ const marketSuite = this.sdk.marketRegister.findByCreditManager(
1412
+ suite.creditManager.address
1413
+ );
1414
+ const factory = await marketSuite.getKYCFactory();
1415
+ if (operation === "close") {
1416
+ if (factory) {
1417
+ throw new Error(
1418
+ "CloseOptions=close is not supported for KYC underlying credit accounts"
1419
+ );
1420
+ }
1421
+ return suite.creditFacade.closeCreditAccount(creditAccount, calls);
1422
+ }
1423
+ if (factory) {
1424
+ const tokensToRegister = [];
1425
+ return factory.multicall(creditAccount, calls, tokensToRegister);
1426
+ }
1427
+ return suite.creditFacade.multicall(creditAccount, calls);
1428
+ }
1429
+ /**
1430
+ * Returns all KYC credit account addresses for an investor across the given market suites.
1431
+ * Resolves KYC factory per suite, then multicalls each factory's getCreditAccounts(investor).
1432
+ * @param investor - Owner address to query
1433
+ * @param suites - Market suites (KYC factories are resolved for each; undefined entries are skipped)
1434
+ * @returns Flat array of credit account addresses from all KYC markets
1435
+ */
1436
+ async getKYCCaOfInvestor(investor, suites) {
1437
+ if (suites.length === 0 || investor === ADDRESS_0X0) return [];
1438
+ const factories = await Promise.all(
1439
+ suites.map((suite) => suite ? suite.getKYCFactory() : void 0)
1440
+ );
1441
+ const safeFactories = factories.reduce(
1442
+ (acc, v) => {
1443
+ if (v) {
1444
+ acc.push(v);
1445
+ }
1446
+ return acc;
1447
+ },
1448
+ []
1449
+ );
1450
+ const allResp = await this.client.multicall({
1451
+ contracts: [
1452
+ ...safeFactories.map((factory) => {
1453
+ return {
1454
+ abi: factory.abi,
1455
+ address: factory.address,
1456
+ functionName: "getCreditAccounts",
1457
+ args: [investor]
1458
+ };
1459
+ })
1460
+ ],
1461
+ allowFailure: true,
1462
+ batchSize: 0
1463
+ });
1464
+ const caLists = safeFactories.reduce((acc, _, index) => {
1465
+ const response = allResp[index];
1466
+ acc.push(...response.result || []);
1467
+ return acc;
1468
+ }, []);
1469
+ return caLists;
1470
+ }
1169
1471
  }
1170
- const iMellowClaimerAdapterAbi = [
1472
+ const ierc4626AdapterAbi = [
1171
1473
  {
1172
- type: "function",
1173
- name: "getMultiVaultSubvaultIndices",
1174
- inputs: [{ name: "multiVault", type: "address", internalType: "address" }],
1175
- outputs: [
1176
- {
1177
- name: "subvaultIndices",
1178
- type: "uint256[]",
1179
- internalType: "uint256[]"
1180
- },
1181
- {
1182
- name: "withdrawalIndices",
1183
- type: "uint256[][]",
1184
- internalType: "uint256[][]"
1185
- }
1474
+ inputs: [
1475
+ { name: "assets", type: "uint256", internalType: "uint256" },
1476
+ { name: "receiver", type: "address", internalType: "address" }
1186
1477
  ],
1187
- stateMutability: "view"
1478
+ name: "deposit",
1479
+ outputs: [{ name: "useSafePrices", type: "bool", internalType: "bool" }],
1480
+ stateMutability: "nonpayable",
1481
+ type: "function"
1188
1482
  },
1189
1483
  {
1190
- type: "function",
1191
- name: "getUserSubvaultIndices",
1192
1484
  inputs: [
1193
- { name: "multiVault", type: "address", internalType: "address" },
1194
- { name: "user", type: "address", internalType: "address" }
1485
+ { name: "shares", type: "uint256", internalType: "uint256" },
1486
+ { name: "receiver", type: "address", internalType: "address" },
1487
+ { name: "owner", type: "address", internalType: "address" }
1195
1488
  ],
1196
- outputs: [
1489
+ name: "redeem",
1490
+ outputs: [{ name: "useSafePrices", type: "bool", internalType: "bool" }],
1491
+ stateMutability: "nonpayable",
1492
+ type: "function"
1493
+ },
1494
+ {
1495
+ inputs: [
1197
1496
  {
1198
- name: "subvaultIndices",
1199
- type: "uint256[]",
1200
- internalType: "uint256[]"
1201
- },
1497
+ name: "leftoverAmount",
1498
+ type: "uint256",
1499
+ internalType: "uint256"
1500
+ }
1501
+ ],
1502
+ name: "redeemDiff",
1503
+ outputs: [
1202
1504
  {
1203
- name: "withdrawalIndices",
1204
- type: "uint256[][]",
1205
- internalType: "uint256[][]"
1505
+ name: "useSafePrices",
1506
+ type: "bool",
1507
+ internalType: "bool"
1206
1508
  }
1207
1509
  ],
1208
- stateMutability: "view"
1510
+ stateMutability: "nonpayable",
1511
+ type: "function"
1209
1512
  },
1210
1513
  {
1211
- type: "function",
1212
- name: "multiAccept",
1213
1514
  inputs: [
1214
- { name: "multiVault", type: "address", internalType: "address" },
1215
1515
  {
1216
- name: "subvaultIndices",
1217
- type: "uint256[]",
1218
- internalType: "uint256[]"
1219
- },
1220
- { name: "indices", type: "uint256[][]", internalType: "uint256[][]" }
1516
+ name: "leftoverAmount",
1517
+ type: "uint256",
1518
+ internalType: "uint256"
1519
+ }
1221
1520
  ],
1222
- outputs: [{ name: "", type: "bool", internalType: "bool" }],
1223
- stateMutability: "nonpayable"
1224
- },
1225
- {
1226
- type: "function",
1227
- name: "multiAcceptAndClaim",
1228
- inputs: [
1229
- { name: "multiVault", type: "address", internalType: "address" },
1521
+ name: "depositDiff",
1522
+ outputs: [
1230
1523
  {
1231
- name: "subvaultIndices",
1232
- type: "uint256[]",
1233
- internalType: "uint256[]"
1234
- },
1235
- { name: "indices", type: "uint256[][]", internalType: "uint256[][]" },
1236
- { name: "", type: "address", internalType: "address" },
1237
- { name: "maxAssets", type: "uint256", internalType: "uint256" }
1524
+ name: "useSafePrices",
1525
+ type: "bool",
1526
+ internalType: "bool"
1527
+ }
1238
1528
  ],
1239
- outputs: [{ name: "", type: "bool", internalType: "bool" }],
1240
- stateMutability: "nonpayable"
1529
+ stateMutability: "nonpayable",
1530
+ type: "function"
1241
1531
  }
1242
1532
  ];
1243
1533
  export {