@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
@@ -29,18 +29,17 @@ var import_peripheryCompressor = require("../../abi/compressors/peripheryCompres
29
29
  var import_rewardsCompressor = require("../../abi/compressors/rewardsCompressor.js");
30
30
  var import_IWithdrawalCompressorV310 = require("../../abi/IWithdrawalCompressorV310.js");
31
31
  var import_iBaseRewardPool = require("../../abi/iBaseRewardPool.js");
32
- var import_v300 = require("../../abi/v300.js");
33
32
  var import_base = require("../base/index.js");
34
33
  var import_chains = require("../chain/chains.js");
35
34
  var import_constants = require("../constants/index.js");
36
35
  var import_router = require("../router/index.js");
37
- var import_sdk_legacy = require("../sdk-legacy/index.js");
38
36
  var import_utils = require("../utils/index.js");
39
37
  var import_viem2 = require("../utils/viem/index.js");
40
38
  const COMPRESSORS = {
41
39
  [import_chains.chains.Mainnet.id]: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023",
42
40
  [import_chains.chains.Monad.id]: "0x36F3d0Bb73CBC2E94fE24dF0f26a689409cF9023"
43
41
  };
42
+ const INVESTORS = new import_utils.AddressMap([], "investors");
44
43
  function getWithdrawalCompressorAddress(chainId) {
45
44
  return COMPRESSORS[chainId];
46
45
  }
@@ -102,6 +101,23 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
102
101
  });
103
102
  return cad;
104
103
  }
104
+ /**
105
+ * Returns credit account data for a single account with the investor address resolved.
106
+ * Loads CA via getCreditAccountData; for KYC underlyings fetches the investor from the KYC factory's getInvestor(creditAccount), otherwise uses the account owner.
107
+ * @param account - Credit account address
108
+ * @param blockNumber - Optional block number for the read
109
+ * @returns CreditAccountDataWithInvestor (CA data + investor address), or undefined if the account is not found
110
+ */
111
+ async getCreditAccountDataWithInvestor(account, blockNumber) {
112
+ const ca = await this.getCreditAccountData(account, blockNumber);
113
+ if (!ca) return ca;
114
+ const marketSuite = this.sdk.marketRegister.findByCreditManager(
115
+ ca.creditManager
116
+ );
117
+ const factory = await marketSuite.getKYCFactory();
118
+ const investor = factory ? await factory.getInvestor(ca.creditAccount, true) : void 0;
119
+ return { ...ca, investor: investor ?? ca.owner };
120
+ }
105
121
  /**
106
122
  * Methods to get all credit accounts with some optional filtering
107
123
  * Performs all necessary price feed updates under the hood
@@ -110,7 +126,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
110
126
  * @param blockNumber
111
127
  * @returns returned credit accounts are sorted by health factor in ascending order
112
128
  */
113
- async getCreditAccounts(options, blockNumber) {
129
+ async getCreditAccounts(options, blockNumber, priceUpdate) {
114
130
  const {
115
131
  creditManager,
116
132
  includeZeroDebt = false,
@@ -132,7 +148,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
132
148
  maxHealthFactor,
133
149
  reverting: false
134
150
  };
135
- const { txs: priceUpdateTxs } = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
151
+ const { txs: priceUpdateTxs } = priceUpdate ?? await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
136
152
  ignoreReservePrices ? { main: true } : void 0
137
153
  );
138
154
  const allCAs = [];
@@ -161,6 +177,75 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
161
177
  );
162
178
  return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
163
179
  }
180
+ /**
181
+ * Returns all credit accounts matching the filter, with investor set on each item.
182
+ * 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.
183
+ * @param options - Filter options (owner, creditManager, health factor, etc.)
184
+ * @param blockNumber - Optional block number for the read
185
+ * @returns Array of credit accounts (with investor field), sorted by health factor ascending
186
+ */
187
+ async getCreditAccountsWithInvestor(options, blockNumber) {
188
+ const { owner, ignoreReservePrices = false } = options ?? {};
189
+ const priceUpdate = await this.sdk.priceFeeds.generatePriceFeedsUpdateTxs(
190
+ ignoreReservePrices ? { main: true } : void 0
191
+ );
192
+ const { txs: priceUpdateTxs } = priceUpdate;
193
+ const [common, kyc] = await Promise.all([
194
+ this.getCreditAccounts(options, blockNumber),
195
+ owner ? this.getKYCCreditAccountsOfOwner(owner, priceUpdateTxs, blockNumber) : void 0
196
+ ]);
197
+ const allCAs = common.map(
198
+ (ca) => ({
199
+ ...ca,
200
+ investor: owner || ca.owner
201
+ })
202
+ );
203
+ allCAs.push(...kyc || []);
204
+ return allCAs.sort((a, b) => Number(a.healthFactor - b.healthFactor));
205
+ }
206
+ async getKYCCreditAccountsOfOwner(owner, priceUpdateTxs, blockNumber) {
207
+ const suites = this.marketConfigurators.map((mc) => {
208
+ const suite = this.sdk.marketRegister.markets.find(
209
+ (m) => m.configurator.address === mc
210
+ );
211
+ return suite;
212
+ });
213
+ const kycCAAddresses = await this.getKYCCaOfInvestor(owner, suites);
214
+ const kycCAs = await this.loadSpecifiedAccounts(
215
+ kycCAAddresses,
216
+ priceUpdateTxs,
217
+ blockNumber
218
+ );
219
+ return kycCAs.map((ca) => ({
220
+ ...ca,
221
+ investor: owner
222
+ }));
223
+ }
224
+ /**
225
+ * Loads credit account data for the given addresses using simulateWithPriceUpdates.
226
+ * Applies the provided price update txs before reading, so returned data is consistent with up-to-date prices.
227
+ * @param accounts - Credit account addresses to load
228
+ * @param priceUpdateTxs - Price feed update txs to simulate before the read (e.g. from generatePriceFeedsUpdateTxs)
229
+ * @param blockNumber - Optional block number for the read
230
+ * @returns Array of CreditAccountData in the same order as accounts (throws if any getCreditAccountData call reverts)
231
+ */
232
+ async loadSpecifiedAccounts(accounts, priceUpdateTxs, blockNumber) {
233
+ if (accounts.length === 0) return [];
234
+ const list = await (0, import_viem2.simulateWithPriceUpdates)(this.client, {
235
+ priceUpdates: priceUpdateTxs,
236
+ contracts: accounts.map(
237
+ (account) => ({
238
+ abi: import_creditAccountCompressor.creditAccountCompressorAbi,
239
+ address: this.#compressor,
240
+ functionName: "getCreditAccountData",
241
+ args: [account]
242
+ })
243
+ ),
244
+ blockNumber,
245
+ gas: this.sdk.gasLimit
246
+ });
247
+ return list;
248
+ }
164
249
  /**
165
250
  * Method to get all claimable rewards for credit account (ex. stkUSDS SKY rewards)
166
251
  Assosiates rewards by adapter + stakedPhantomToken
@@ -230,10 +315,10 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
230
315
  ca.creditManager
231
316
  );
232
317
  return {
233
- abi: (0, import_constants.isV300)(cm.creditFacade.version) ? import_v300.iBotListV300Abi : import_generated.iBotListV310Abi,
318
+ abi: import_generated.iBotListV310Abi,
234
319
  address: cm.creditFacade.botList,
235
320
  functionName: "getBotStatus",
236
- args: (0, import_constants.isV300)(cm.creditFacade.version) ? [legacyMigrationBot, ca.creditManager, ca.creditAccount] : [legacyMigrationBot, ca.creditAccount]
321
+ args: [legacyMigrationBot, ca.creditAccount]
237
322
  };
238
323
  }) : [],
239
324
  ...accountsToCheck.flatMap((ca) => {
@@ -242,10 +327,10 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
242
327
  );
243
328
  return additionalBots.map((bot) => {
244
329
  return {
245
- abi: (0, import_constants.isV300)(cm.creditFacade.version) ? import_v300.iBotListV300Abi : import_generated.iBotListV310Abi,
330
+ abi: import_generated.iBotListV310Abi,
246
331
  address: cm.creditFacade.botList,
247
332
  functionName: "getBotStatus",
248
- args: (0, import_constants.isV300)(cm.creditFacade.version) ? [bot, ca.creditManager, ca.creditAccount] : [bot, ca.creditAccount]
333
+ args: [bot, ca.creditAccount]
249
334
  };
250
335
  });
251
336
  })
@@ -323,7 +408,6 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
323
408
  account,
324
409
  to,
325
410
  slippage = 50n,
326
- force = false,
327
411
  keepAssets,
328
412
  ignoreReservePrices,
329
413
  applyLossPolicy,
@@ -334,7 +418,6 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
334
418
  creditAccount: account,
335
419
  creditManager: cm.creditManager,
336
420
  slippage,
337
- force,
338
421
  keepAssets,
339
422
  debtOnly
340
423
  });
@@ -393,6 +476,13 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
393
476
  closePath
394
477
  }) {
395
478
  const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
479
+ await this.sdk.tokensMeta.loadTokenData(cm.underlying);
480
+ const underlying = this.sdk.tokensMeta.mustGet(cm.underlying);
481
+ if (this.sdk.tokensMeta.isKYCUnderlying(underlying)) {
482
+ throw new Error(
483
+ "closeCreditAccount is not supported for KYC underlying credit accounts"
484
+ );
485
+ }
396
486
  const routerCloseResult = closePath || await this.sdk.routerFor(ca).findBestClosePath({
397
487
  creditAccount: ca,
398
488
  creditManager: cm.creditManager,
@@ -407,12 +497,16 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
407
497
  ...routerCloseResult.calls,
408
498
  ...this.prepareDisableQuotas(ca),
409
499
  ...this.prepareDecreaseDebt(ca),
410
- ...this.prepareDisableTokens(ca),
411
500
  ...assetsToWithdraw.map(
412
501
  (t) => this.prepareWithdrawToken(ca.creditFacade, t, import_constants.MAX_UINT256, to)
413
502
  )
414
503
  ];
415
- const tx = operation === "close" ? cm.creditFacade.closeCreditAccount(ca.creditAccount, calls) : cm.creditFacade.multicall(ca.creditAccount, calls);
504
+ const tx = await this.closeCreditAccountTx(
505
+ cm,
506
+ ca.creditAccount,
507
+ calls,
508
+ operation
509
+ );
416
510
  return { tx, calls, routerCloseResult, creditFacade: cm.creditFacade };
417
511
  }
418
512
  /**
@@ -442,7 +536,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
442
536
  averageQuota
443
537
  })
444
538
  ];
445
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
539
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
446
540
  return { tx, calls, creditFacade: cm.creditFacade };
447
541
  }
448
542
  /**
@@ -484,7 +578,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
484
578
  averageQuota
485
579
  })
486
580
  ];
487
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
581
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
488
582
  tx.value = ethAmount.toString(10);
489
583
  return { tx, calls, creditFacade: cm.creditFacade };
490
584
  }
@@ -501,13 +595,13 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
501
595
  async changeDebt({
502
596
  creditAccount,
503
597
  amount,
504
- addCollateral
598
+ collateral
505
599
  }) {
506
600
  if (amount === 0n) {
507
601
  throw new Error("debt increase or decrease must be non-zero");
508
602
  }
509
603
  const isDecrease = amount < 0n;
510
- const change = import_sdk_legacy.BigIntMath.abs(amount);
604
+ const change = amount > 0n ? amount : -amount;
511
605
  const cm = this.sdk.marketRegister.findCreditManager(
512
606
  creditAccount.creditManager
513
607
  );
@@ -515,27 +609,32 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
515
609
  creditManager: creditAccount.creditManager,
516
610
  creditAccount
517
611
  });
518
- const addCollateralCalls = addCollateral && isDecrease ? this.prepareAddCollateral(
612
+ const addCollateralCalls = collateral && isDecrease ? this.prepareAddCollateral(
519
613
  creditAccount.creditFacade,
520
614
  [
521
615
  {
522
- token: creditAccount.underlying,
523
- balance: change
616
+ token: collateral[0].token,
617
+ balance: collateral[0].balance
524
618
  }
525
619
  ],
526
620
  {}
527
621
  ) : [];
528
- const underlyingEnabled = (creditAccount.enabledTokensMask & 1n) === 1n;
529
- const shouldEnable = !isDecrease && !underlyingEnabled;
622
+ const unwrapCalls = collateral && isDecrease ? await this.getKYCUnwrapCalls(
623
+ collateral[0].balance,
624
+ creditAccount.creditManager
625
+ ) || [] : [];
626
+ if (addCollateralCalls.length > 0 && unwrapCalls.length === 0 && collateral && collateral?.[0].token !== creditAccount.underlying) {
627
+ throw new Error(
628
+ "Can't use collateral other than underlying for non KYC market"
629
+ );
630
+ }
530
631
  const calls = [
531
632
  ...priceUpdatesCalls,
532
633
  ...addCollateralCalls,
533
- ...shouldEnable ? this.#prepareEnableTokens(creditAccount.creditFacade, [
534
- creditAccount.underlying
535
- ]) : [],
634
+ ...unwrapCalls,
536
635
  this.#prepareChangeDebt(creditAccount.creditFacade, change, isDecrease)
537
636
  ];
538
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
637
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
539
638
  return { tx, calls, creditFacade: cm.creditFacade };
540
639
  }
541
640
  /**
@@ -570,7 +669,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
570
669
  averageQuota
571
670
  })
572
671
  ];
573
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
672
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
574
673
  return { tx, calls, creditFacade: cm.creditFacade };
575
674
  }
576
675
  /**
@@ -653,12 +752,12 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
653
752
  const storeExpectedBalances = {
654
753
  target: cm.creditFacade.address,
655
754
  callData: (0, import_viem.encodeFunctionData)({
656
- abi: import_v300.iCreditFacadeV300MulticallAbi,
755
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
657
756
  functionName: "storeExpectedBalances",
658
757
  args: [
659
758
  balances.map(([token, amount]) => ({
660
759
  token,
661
- amount: import_sdk_legacy.BigIntMath.max(0n, amount - 10n)
760
+ amount: amount > 10n ? amount - 10n : 0n
662
761
  }))
663
762
  ]
664
763
  })
@@ -666,7 +765,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
666
765
  const compareBalances = {
667
766
  target: cm.creditFacade.address,
668
767
  callData: (0, import_viem.encodeFunctionData)({
669
- abi: import_v300.iCreditFacadeV300MulticallAbi,
768
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
670
769
  functionName: "compareBalances",
671
770
  args: []
672
771
  })
@@ -686,7 +785,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
686
785
  averageQuota
687
786
  })
688
787
  ];
689
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
788
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
690
789
  return { tx, calls, creditFacade: cm.creditFacade };
691
790
  }
692
791
  /**
@@ -717,12 +816,12 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
717
816
  const storeExpectedBalances = {
718
817
  target: cm.creditFacade.address,
719
818
  callData: (0, import_viem.encodeFunctionData)({
720
- abi: import_v300.iCreditFacadeV300MulticallAbi,
819
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
721
820
  functionName: "storeExpectedBalances",
722
821
  args: [
723
822
  balances.map(([token, amount]) => ({
724
823
  token,
725
- amount: import_sdk_legacy.BigIntMath.max(0n, amount - 10n)
824
+ amount: amount > 10n ? amount - 10n : 0n
726
825
  }))
727
826
  ]
728
827
  })
@@ -730,7 +829,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
730
829
  const compareBalances = {
731
830
  target: cm.creditFacade.address,
732
831
  callData: (0, import_viem.encodeFunctionData)({
733
- abi: import_v300.iCreditFacadeV300MulticallAbi,
832
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
734
833
  functionName: "compareBalances",
735
834
  args: []
736
835
  })
@@ -751,75 +850,63 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
751
850
  compareBalances,
752
851
  ...quotaCalls
753
852
  ];
754
- const tx = cm.creditFacade.multicall(creditAccount.creditAccount, calls);
853
+ const tx = await this.multicallTx(cm, creditAccount.creditAccount, calls);
755
854
  return { tx, calls, creditFacade: cm.creditFacade };
756
855
  }
757
856
  /**
758
- * Executes enable/disable tokens specified by given tokens lists and token prices
759
- * @param {RouterCASlice} creditAccount - minimal credit account data {@link RouterCASlice} on which operation is performed
760
- * @param {Array<Asset>} enabledTokens - list of tokens to enable {@link Asset};
761
- * @param {Array<Asset>} disabledTokens - list of tokens to disable {@link Asset};
762
- * @returns All necessary data to execute the transaction (call, credit facade)
763
- */
764
- async enableTokens({
765
- enabledTokens,
766
- disabledTokens,
767
- creditAccount: ca
768
- }) {
769
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
770
- const priceUpdatesCalls = await this.getPriceUpdatesForFacade({
771
- creditManager: ca.creditManager,
772
- creditAccount: ca
773
- });
774
- const calls = [
775
- ...priceUpdatesCalls,
776
- ...disabledTokens.map(
777
- (token) => this.prepareDisableToken(ca.creditFacade, token)
778
- ),
779
- ...this.#prepareEnableTokens(ca.creditFacade, enabledTokens)
780
- ];
781
- const tx = cm.creditFacade.multicall(ca.creditAccount, calls);
782
- return { tx, calls, creditFacade: cm.creditFacade };
857
+ * Returns address to which approval should be given on collateral token
858
+ * It's credit manager for classical markets and special wallet for KYC markets
859
+ * @param options - {@link GetApprovalAddressProps}
860
+ * @returns
861
+ **/
862
+ async getApprovalAddress(options) {
863
+ const { creditManager } = options;
864
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
865
+ const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
866
+ const factory = await marketSuite.getKYCFactory();
867
+ if (factory) {
868
+ if ("creditAccount" in options) {
869
+ return factory.getWallet(options.creditAccount);
870
+ }
871
+ return factory.precomputeWalletAddress(creditManager, options.borrower);
872
+ }
873
+ return suite.creditManager.address;
783
874
  }
784
875
  /**
785
876
  * Executes swap specified by given calls, update quotas of affected tokens
786
- - Open credit account is executed in the following order: price update -> increase debt -> add collateral ->
787
- -> update quotas -> (optionally: execute swap path for trading/strategy) ->
788
- -> (optionally: withdraw debt for lending)
789
- - Basic open credit account: price update -> increase debt -> add collateral -> update quotas
790
- - Lending: price update -> increase debt -> add collateral -> update quotas -> withdraw debt
791
- - Strategy/trading: price update -> increase debt -> add collateral -> update quotas -> execute swap path
792
- - In strategy is possible situation when collateral is added, but not swapped; the only swapped value in this case will be debt
793
- * @param {bigint} ethAmount - native token amount to attach to tx
794
- * @param {Address} creditManager - address of credit manager to open credit account on
795
- * @param {Array<Asset>} collateral - array of collateral which can be just directly added or swapped using the path {@link Asset}
796
- * @param {Record<Address, PermitResult>} permits - permits of collateral tokens (in any permittable token is present) {@link PermitResult}
797
- * @param {bigint} debt - debt to open credit account with
798
- * @param {boolean} withdrawDebt - flag to withdraw debt to wallet after opening credit account;
799
- used for borrowing functionality
800
- * @param {bigint} referralCode - referral code to open credit account with
801
- * @param {Address} to - wallet address to transfer credit account to\
802
- * @param {Array<MultiCall>} calls - array of MultiCall from router methods findOpenStrategyPath {@link MultiCall}.
803
- Used for trading and strategy functionality
804
- * @param {Array<Asset>} averageQuota - average quota for tokens after open {@link Asset}
805
- * @param {Array<Asset>} minQuota - minimum quota for tokens after open {@link Asset}
877
+ * - Open credit account is executed in the following order: price update -> increase debt -> add collateral ->
878
+ * -> update quotas -> (optionally: execute swap path for trading/strategy) ->
879
+ * -> (optionally: withdraw debt for lending)
880
+ *- Basic open credit account: price update -> increase debt -> add collateral -> update quotas
881
+ *- Lending: price update -> increase debt -> add collateral -> update quotas -> withdraw debt
882
+ *- Strategy/trading: price update -> increase debt -> add collateral -> update quotas -> execute swap path
883
+ *- In strategy is possible situation when collateral is added, but not swapped; the only swapped value in this case will be debt
806
884
  * @returns All necessary data to execute the transaction (call, credit facade)
807
- */
808
- async openCA({
809
- ethAmount,
810
- creditManager,
811
- collateral,
812
- permits,
813
- debt,
814
- withdrawDebt,
815
- referralCode,
816
- to,
817
- calls: openPathCalls,
818
- minQuota,
819
- averageQuota
820
- }) {
885
+ **/
886
+ async openCA(props) {
887
+ const {
888
+ ethAmount,
889
+ creditManager,
890
+ reopenCreditAccount,
891
+ collateral,
892
+ permits,
893
+ debt,
894
+ withdrawToken,
895
+ referralCode,
896
+ to,
897
+ calls: openPathCalls,
898
+ callsAfter,
899
+ minQuota,
900
+ averageQuota
901
+ } = props;
821
902
  const cmSuite = this.sdk.marketRegister.findCreditManager(creditManager);
822
903
  const cm = cmSuite.creditManager;
904
+ let tokenToWithdraw;
905
+ if (withdrawToken === true) {
906
+ tokenToWithdraw = cm.underlying;
907
+ } else if (typeof withdrawToken === "string") {
908
+ tokenToWithdraw = withdrawToken;
909
+ }
823
910
  const priceUpdatesCalls = await this.getPriceUpdatesForFacade({
824
911
  creditManager: cm.address,
825
912
  desiredQuotas: averageQuota
@@ -829,13 +916,27 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
829
916
  this.#prepareIncreaseDebt(cm.creditFacade, debt),
830
917
  ...this.prepareAddCollateral(cm.creditFacade, collateral, permits),
831
918
  ...openPathCalls,
832
- ...withdrawDebt ? [this.prepareWithdrawToken(cm.creditFacade, cm.underlying, debt, to)] : [],
919
+ // путь из underlying в withdrawal token
920
+ ...tokenToWithdraw ? [
921
+ this.prepareWithdrawToken(
922
+ cm.creditFacade,
923
+ tokenToWithdraw,
924
+ import_constants.MAX_UINT256,
925
+ to
926
+ )
927
+ ] : [],
833
928
  ...this.prepareUpdateQuotas(cm.creditFacade, {
834
929
  minQuota,
835
930
  averageQuota
836
- })
931
+ }),
932
+ ...callsAfter ?? []
837
933
  ];
838
- const tx = cmSuite.creditFacade.openCreditAccount(to, calls, referralCode);
934
+ let tx;
935
+ if (reopenCreditAccount) {
936
+ tx = await this.multicallTx(cmSuite, reopenCreditAccount, calls);
937
+ } else {
938
+ tx = await this.openCreditAccountTx(cmSuite, to, calls, referralCode);
939
+ }
839
940
  tx.value = ethAmount.toString(10);
840
941
  return { calls, tx, creditFacade: cmSuite.creditFacade };
841
942
  }
@@ -919,6 +1020,130 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
919
1020
  );
920
1021
  return resp;
921
1022
  }
1023
+ /**
1024
+ * Returns multicall entries to redeem (unwrap) KYC ERC-4626 vault shares into underlying for the given credit manager.
1025
+ * Used when withdrawing debt from a KYC market: redeems adapter vault shares so the underlying can be withdrawn.
1026
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1027
+ * @param amount - Number of vault shares (adapter tokens) to redeem
1028
+ * @param creditManager - Credit manager address
1029
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1030
+ */
1031
+ async getKYCUnwrapCalls(amount, creditManager) {
1032
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1033
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1034
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1035
+ return void 0;
1036
+ }
1037
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1038
+ const adapterAddress = adapter?.address;
1039
+ if (!adapterAddress) {
1040
+ return void 0;
1041
+ }
1042
+ const mc = [
1043
+ {
1044
+ target: adapterAddress,
1045
+ callData: (0, import_viem.encodeFunctionData)({
1046
+ abi: ierc4626AdapterAbi,
1047
+ functionName: "redeem",
1048
+ args: [amount, import_constants.ADDRESS_0X0, import_constants.ADDRESS_0X0]
1049
+ })
1050
+ }
1051
+ ];
1052
+ return mc;
1053
+ }
1054
+ /**
1055
+ * Returns multicall entries to deposit (wrap) underlying into KYC ERC-4626 vault shares for the given credit manager.
1056
+ * Used when adding debt on a KYC market: deposits underlying into the adapter vault so shares are minted on the account.
1057
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1058
+ * @param amount - Amount of underlying assets to deposit into the vault (in underlying decimals)
1059
+ * @param creditManager - Credit manager address
1060
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1061
+ */
1062
+ async getKYCWrapCalls(amount, creditManager) {
1063
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1064
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1065
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1066
+ return void 0;
1067
+ }
1068
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1069
+ const adapterAddress = adapter?.address;
1070
+ if (!adapterAddress) {
1071
+ return void 0;
1072
+ }
1073
+ const mc = [
1074
+ {
1075
+ target: adapterAddress,
1076
+ callData: (0, import_viem.encodeFunctionData)({
1077
+ abi: ierc4626AdapterAbi,
1078
+ functionName: "deposit",
1079
+ args: [amount, import_constants.ADDRESS_0X0]
1080
+ })
1081
+ }
1082
+ ];
1083
+ return mc;
1084
+ }
1085
+ /**
1086
+ * Returns multicall entries to call redeemDiff on the KYC ERC-4626 adapter for the given credit manager.
1087
+ * Redeems the leftover vault shares (e.g. after repaying debt) so the account does not hold excess KYC vault tokens.
1088
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1089
+ * @param amount - Leftover vault share amount to redeem (in adapter/vault decimals)
1090
+ * @param creditManager - Credit manager address
1091
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1092
+ */
1093
+ async getRedeemDiffCalls(amount, creditManager) {
1094
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1095
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1096
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1097
+ return void 0;
1098
+ }
1099
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1100
+ const adapterAddress = adapter?.address;
1101
+ if (!adapterAddress) {
1102
+ return void 0;
1103
+ }
1104
+ const mc = [
1105
+ {
1106
+ target: adapterAddress,
1107
+ callData: (0, import_viem.encodeFunctionData)({
1108
+ abi: ierc4626AdapterAbi,
1109
+ functionName: "redeemDiff",
1110
+ args: [amount]
1111
+ })
1112
+ }
1113
+ ];
1114
+ return mc;
1115
+ }
1116
+ /**
1117
+ * Returns multicall entries to call depositDiff on the KYC ERC-4626 adapter for the given credit manager.
1118
+ * Deposits the leftover underlying (e.g. after decreasing debt) into the vault so the account does not hold excess underlying.
1119
+ * Only applies when the credit manager's underlying is KYC-gated and has an ERC-4626 adapter configured.
1120
+ * @param amount - Leftover underlying amount to deposit into the vault (in underlying decimals)
1121
+ * @param creditManager - Credit manager address
1122
+ * @returns Array of MultiCall to pass to credit facade multicall, or undefined if underlying is not KYC or no adapter is configured
1123
+ */
1124
+ async getDepositDiffCalls(amount, creditManager) {
1125
+ const suite = this.sdk.marketRegister.findCreditManager(creditManager);
1126
+ const meta = this.sdk.tokensMeta.mustGet(suite.underlying);
1127
+ if (!this.sdk.tokensMeta.isKYCUnderlying(meta)) {
1128
+ return void 0;
1129
+ }
1130
+ const adapter = suite.creditManager.adapters.get(meta.addr);
1131
+ const adapterAddress = adapter?.address;
1132
+ if (!adapterAddress) {
1133
+ return void 0;
1134
+ }
1135
+ const mc = [
1136
+ {
1137
+ target: adapterAddress,
1138
+ callData: (0, import_viem.encodeFunctionData)({
1139
+ abi: ierc4626AdapterAbi,
1140
+ functionName: "depositDiff",
1141
+ args: [amount]
1142
+ })
1143
+ }
1144
+ ];
1145
+ return mc;
1146
+ }
922
1147
  /**
923
1148
  * Returns raw txs that are needed to update all price feeds so that all credit accounts (possibly from different markets) compute
924
1149
  *
@@ -1034,7 +1259,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1034
1259
  calls.push({
1035
1260
  target: ca.creditFacade,
1036
1261
  callData: (0, import_viem.encodeFunctionData)({
1037
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1262
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1038
1263
  functionName: "updateQuota",
1039
1264
  args: [token, import_constants.MIN_INT96, 0n]
1040
1265
  })
@@ -1051,7 +1276,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1051
1276
  return {
1052
1277
  target: creditFacade,
1053
1278
  callData: (0, import_viem.encodeFunctionData)({
1054
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1279
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1055
1280
  functionName: "updateQuota",
1056
1281
  args: [q.token, q.balance, min]
1057
1282
  })
@@ -1065,7 +1290,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1065
1290
  {
1066
1291
  target: ca.creditFacade,
1067
1292
  callData: (0, import_viem.encodeFunctionData)({
1068
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1293
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1069
1294
  functionName: "decreaseDebt",
1070
1295
  args: [import_constants.MAX_UINT256]
1071
1296
  })
@@ -1074,41 +1299,11 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1074
1299
  }
1075
1300
  return [];
1076
1301
  }
1077
- prepareDisableTokens(ca) {
1078
- const calls = [];
1079
- for (const t of ca.tokens) {
1080
- const isEnabled = (t.mask & ca.enabledTokensMask) !== 0n;
1081
- if (t.token !== ca.underlying && isEnabled && t.quota === 0n) {
1082
- calls.push(this.prepareDisableToken(ca.creditFacade, t.token));
1083
- }
1084
- }
1085
- return calls;
1086
- }
1087
- prepareDisableToken(creditFacade, token) {
1088
- return {
1089
- target: creditFacade,
1090
- callData: (0, import_viem.encodeFunctionData)({
1091
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1092
- functionName: "disableToken",
1093
- args: [token]
1094
- })
1095
- };
1096
- }
1097
- #prepareEnableTokens(creditFacade, tokens) {
1098
- return tokens.map((t) => ({
1099
- target: creditFacade,
1100
- callData: (0, import_viem.encodeFunctionData)({
1101
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1102
- functionName: "enableToken",
1103
- args: [t]
1104
- })
1105
- }));
1106
- }
1107
1302
  prepareWithdrawToken(creditFacade, token, amount, to) {
1108
1303
  return {
1109
1304
  target: creditFacade,
1110
1305
  callData: (0, import_viem.encodeFunctionData)({
1111
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1306
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1112
1307
  functionName: "withdrawCollateral",
1113
1308
  args: [token, amount, to]
1114
1309
  })
@@ -1118,7 +1313,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1118
1313
  return {
1119
1314
  target: creditFacade,
1120
1315
  callData: (0, import_viem.encodeFunctionData)({
1121
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1316
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1122
1317
  functionName: "increaseDebt",
1123
1318
  args: [debt]
1124
1319
  })
@@ -1128,7 +1323,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1128
1323
  return {
1129
1324
  target: creditFacade,
1130
1325
  callData: (0, import_viem.encodeFunctionData)({
1131
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1326
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1132
1327
  functionName: isDecrease ? "decreaseDebt" : "increaseDebt",
1133
1328
  args: [change]
1134
1329
  })
@@ -1141,7 +1336,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1141
1336
  return {
1142
1337
  target: creditFacade,
1143
1338
  callData: (0, import_viem.encodeFunctionData)({
1144
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1339
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1145
1340
  functionName: "addCollateralWithPermit",
1146
1341
  args: [token, balance, p.deadline, p.v, p.r, p.s]
1147
1342
  })
@@ -1150,7 +1345,7 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1150
1345
  return {
1151
1346
  target: creditFacade,
1152
1347
  callData: (0, import_viem.encodeFunctionData)({
1153
- abi: import_v300.iCreditFacadeV300MulticallAbi,
1348
+ abi: import_generated.iCreditFacadeMulticallV310Abi,
1154
1349
  functionName: "addCollateral",
1155
1350
  args: [token, balance]
1156
1351
  })
@@ -1176,78 +1371,174 @@ class AbstractCreditAccountService extends import_base.SDKConstruct {
1176
1371
  import_constants.VERSION_RANGE_310
1177
1372
  )[0];
1178
1373
  }
1374
+ /**
1375
+ * Wrapper that selects between credit facade and KYC factory
1376
+ * @param suite
1377
+ * @param to
1378
+ * @param calls
1379
+ * @param referralCode
1380
+ * @returns
1381
+ */
1382
+ async openCreditAccountTx(suite, to, calls, referralCode) {
1383
+ const marketSuite = this.sdk.marketRegister.findByPool(suite.pool);
1384
+ const factory = await marketSuite.getKYCFactory();
1385
+ if (factory) {
1386
+ const tokensToRegister = await factory.getDSTokens();
1387
+ return factory.openCreditAccount(
1388
+ suite.creditManager.address,
1389
+ calls,
1390
+ tokensToRegister
1391
+ );
1392
+ }
1393
+ return suite.creditFacade.openCreditAccount(to, calls, referralCode ?? 0n);
1394
+ }
1395
+ /**
1396
+ * Wrapper that selects between credit facade and KYC factory
1397
+ * @param suite
1398
+ * @param creditAccount
1399
+ * @param calls
1400
+ * @returns
1401
+ */
1402
+ async multicallTx(suite, creditAccount, calls) {
1403
+ const marketSuite = this.sdk.marketRegister.findByCreditManager(
1404
+ suite.creditManager.address
1405
+ );
1406
+ const factory = await marketSuite.getKYCFactory();
1407
+ if (factory) {
1408
+ const tokensToRegister = [];
1409
+ return factory.multicall(creditAccount, calls, tokensToRegister);
1410
+ }
1411
+ return suite.creditFacade.multicall(creditAccount, calls);
1412
+ }
1413
+ /**
1414
+ * Wrapper that selects between credit facade and KYC factory
1415
+ * @param suite
1416
+ * @param creditAccount
1417
+ * @param calls
1418
+ * @param operation
1419
+ * @returns
1420
+ */
1421
+ async closeCreditAccountTx(suite, creditAccount, calls, operation) {
1422
+ const marketSuite = this.sdk.marketRegister.findByCreditManager(
1423
+ suite.creditManager.address
1424
+ );
1425
+ const factory = await marketSuite.getKYCFactory();
1426
+ if (operation === "close") {
1427
+ if (factory) {
1428
+ throw new Error(
1429
+ "CloseOptions=close is not supported for KYC underlying credit accounts"
1430
+ );
1431
+ }
1432
+ return suite.creditFacade.closeCreditAccount(creditAccount, calls);
1433
+ }
1434
+ if (factory) {
1435
+ const tokensToRegister = [];
1436
+ return factory.multicall(creditAccount, calls, tokensToRegister);
1437
+ }
1438
+ return suite.creditFacade.multicall(creditAccount, calls);
1439
+ }
1440
+ /**
1441
+ * Returns all KYC credit account addresses for an investor across the given market suites.
1442
+ * Resolves KYC factory per suite, then multicalls each factory's getCreditAccounts(investor).
1443
+ * @param investor - Owner address to query
1444
+ * @param suites - Market suites (KYC factories are resolved for each; undefined entries are skipped)
1445
+ * @returns Flat array of credit account addresses from all KYC markets
1446
+ */
1447
+ async getKYCCaOfInvestor(investor, suites) {
1448
+ if (suites.length === 0 || investor === import_constants.ADDRESS_0X0) return [];
1449
+ const factories = await Promise.all(
1450
+ suites.map((suite) => suite ? suite.getKYCFactory() : void 0)
1451
+ );
1452
+ const safeFactories = factories.reduce(
1453
+ (acc, v) => {
1454
+ if (v) {
1455
+ acc.push(v);
1456
+ }
1457
+ return acc;
1458
+ },
1459
+ []
1460
+ );
1461
+ const allResp = await this.client.multicall({
1462
+ contracts: [
1463
+ ...safeFactories.map((factory) => {
1464
+ return {
1465
+ abi: factory.abi,
1466
+ address: factory.address,
1467
+ functionName: "getCreditAccounts",
1468
+ args: [investor]
1469
+ };
1470
+ })
1471
+ ],
1472
+ allowFailure: true,
1473
+ batchSize: 0
1474
+ });
1475
+ const caLists = safeFactories.reduce((acc, _, index) => {
1476
+ const response = allResp[index];
1477
+ acc.push(...response.result || []);
1478
+ return acc;
1479
+ }, []);
1480
+ return caLists;
1481
+ }
1179
1482
  }
1180
- const iMellowClaimerAdapterAbi = [
1483
+ const ierc4626AdapterAbi = [
1181
1484
  {
1182
- type: "function",
1183
- name: "getMultiVaultSubvaultIndices",
1184
- inputs: [{ name: "multiVault", type: "address", internalType: "address" }],
1185
- outputs: [
1186
- {
1187
- name: "subvaultIndices",
1188
- type: "uint256[]",
1189
- internalType: "uint256[]"
1190
- },
1191
- {
1192
- name: "withdrawalIndices",
1193
- type: "uint256[][]",
1194
- internalType: "uint256[][]"
1195
- }
1485
+ inputs: [
1486
+ { name: "assets", type: "uint256", internalType: "uint256" },
1487
+ { name: "receiver", type: "address", internalType: "address" }
1196
1488
  ],
1197
- stateMutability: "view"
1489
+ name: "deposit",
1490
+ outputs: [{ name: "useSafePrices", type: "bool", internalType: "bool" }],
1491
+ stateMutability: "nonpayable",
1492
+ type: "function"
1198
1493
  },
1199
1494
  {
1200
- type: "function",
1201
- name: "getUserSubvaultIndices",
1202
1495
  inputs: [
1203
- { name: "multiVault", type: "address", internalType: "address" },
1204
- { name: "user", type: "address", internalType: "address" }
1496
+ { name: "shares", type: "uint256", internalType: "uint256" },
1497
+ { name: "receiver", type: "address", internalType: "address" },
1498
+ { name: "owner", type: "address", internalType: "address" }
1205
1499
  ],
1206
- outputs: [
1500
+ name: "redeem",
1501
+ outputs: [{ name: "useSafePrices", type: "bool", internalType: "bool" }],
1502
+ stateMutability: "nonpayable",
1503
+ type: "function"
1504
+ },
1505
+ {
1506
+ inputs: [
1207
1507
  {
1208
- name: "subvaultIndices",
1209
- type: "uint256[]",
1210
- internalType: "uint256[]"
1211
- },
1508
+ name: "leftoverAmount",
1509
+ type: "uint256",
1510
+ internalType: "uint256"
1511
+ }
1512
+ ],
1513
+ name: "redeemDiff",
1514
+ outputs: [
1212
1515
  {
1213
- name: "withdrawalIndices",
1214
- type: "uint256[][]",
1215
- internalType: "uint256[][]"
1516
+ name: "useSafePrices",
1517
+ type: "bool",
1518
+ internalType: "bool"
1216
1519
  }
1217
1520
  ],
1218
- stateMutability: "view"
1521
+ stateMutability: "nonpayable",
1522
+ type: "function"
1219
1523
  },
1220
1524
  {
1221
- type: "function",
1222
- name: "multiAccept",
1223
1525
  inputs: [
1224
- { name: "multiVault", type: "address", internalType: "address" },
1225
1526
  {
1226
- name: "subvaultIndices",
1227
- type: "uint256[]",
1228
- internalType: "uint256[]"
1229
- },
1230
- { name: "indices", type: "uint256[][]", internalType: "uint256[][]" }
1527
+ name: "leftoverAmount",
1528
+ type: "uint256",
1529
+ internalType: "uint256"
1530
+ }
1231
1531
  ],
1232
- outputs: [{ name: "", type: "bool", internalType: "bool" }],
1233
- stateMutability: "nonpayable"
1234
- },
1235
- {
1236
- type: "function",
1237
- name: "multiAcceptAndClaim",
1238
- inputs: [
1239
- { name: "multiVault", type: "address", internalType: "address" },
1532
+ name: "depositDiff",
1533
+ outputs: [
1240
1534
  {
1241
- name: "subvaultIndices",
1242
- type: "uint256[]",
1243
- internalType: "uint256[]"
1244
- },
1245
- { name: "indices", type: "uint256[][]", internalType: "uint256[][]" },
1246
- { name: "", type: "address", internalType: "address" },
1247
- { name: "maxAssets", type: "uint256", internalType: "uint256" }
1535
+ name: "useSafePrices",
1536
+ type: "bool",
1537
+ internalType: "bool"
1538
+ }
1248
1539
  ],
1249
- outputs: [{ name: "", type: "bool", internalType: "bool" }],
1250
- stateMutability: "nonpayable"
1540
+ stateMutability: "nonpayable",
1541
+ type: "function"
1251
1542
  }
1252
1543
  ];
1253
1544
  // Annotate the CommonJS export names for ESM import in node: