@gearbox-protocol/sdk 14.12.0-next.1 → 14.12.0-next.11

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 (322) hide show
  1. package/dist/cjs/abi/iZapper.js +62 -24
  2. package/dist/cjs/dev/AccountOpener.js +7 -13
  3. package/dist/cjs/history/classifyMulticallOperations.js +2 -0
  4. package/dist/cjs/history/mapOperations.js +7 -0
  5. package/dist/cjs/plugins/adapters/abi/iConvexV1BoosterAdapter.js +143 -0
  6. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  7. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +36 -0
  8. package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
  9. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +19 -0
  10. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +15 -0
  11. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +20 -0
  12. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +18 -0
  13. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +28 -2
  14. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
  15. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
  16. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
  17. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  18. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
  19. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
  20. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +14 -0
  21. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +15 -0
  22. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +14 -0
  23. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +15 -0
  24. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +21 -0
  25. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +10 -0
  26. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +11 -0
  27. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +15 -0
  28. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +15 -0
  29. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +11 -0
  30. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +10 -0
  31. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +12 -0
  32. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +58 -0
  33. package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +11 -0
  34. package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +22 -1
  35. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +17 -0
  36. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +10 -0
  37. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
  38. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
  39. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +15 -0
  40. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +14 -0
  41. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +10 -0
  42. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +15 -0
  43. package/dist/cjs/preview/index.js +2 -4
  44. package/dist/cjs/preview/parse/classifyInnerOperations.js +14 -1
  45. package/dist/cjs/preview/parse/errors.js +5 -2
  46. package/dist/cjs/preview/parse/index.js +2 -2
  47. package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +5 -12
  48. package/dist/cjs/preview/parse/parseOperationCalldata.js +40 -1
  49. package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +14 -2
  50. package/dist/cjs/preview/parse/parseRWAFactoryOperationCalldata.js +104 -0
  51. package/dist/cjs/preview/parse/types-rwa.js +16 -0
  52. package/dist/cjs/preview/parse/types.js +9 -2
  53. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +13 -13
  54. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +32 -14
  55. package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +66 -0
  56. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +124 -14
  57. package/dist/cjs/preview/prerequisites/index.js +2 -0
  58. package/dist/cjs/preview/preview/applyInnerOperations.js +130 -0
  59. package/dist/cjs/preview/preview/errors.js +52 -0
  60. package/dist/cjs/preview/preview/index.js +30 -0
  61. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +90 -0
  62. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +67 -0
  63. package/dist/cjs/preview/preview/previewOperation.js +45 -0
  64. package/dist/cjs/preview/preview/previewPoolOperation.js +75 -0
  65. package/dist/cjs/preview/preview/types.js +16 -0
  66. package/dist/cjs/{sdk/market/zapper/Zapper.js → preview/preview/unwrapNativeCollateral.js} +20 -22
  67. package/dist/cjs/preview/simulate/errors.js +0 -7
  68. package/dist/cjs/preview/simulate/index.js +5 -5
  69. package/dist/cjs/preview/simulate/simulateOperation.js +4 -0
  70. package/dist/cjs/preview/simulate/simulatePoolOperation.js +60 -31
  71. package/dist/cjs/preview/simulate/{constants.js → simulateRWAOperation.js} +8 -6
  72. package/dist/cjs/sdk/MultichainSDK.js +1 -0
  73. package/dist/cjs/sdk/OnchainSDK.js +7 -3
  74. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +53 -23
  75. package/dist/cjs/sdk/base/BaseContract.js +4 -2
  76. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -0
  77. package/dist/cjs/sdk/market/MarketRegister.js +10 -5
  78. package/dist/cjs/sdk/market/ZapperRegister.js +54 -0
  79. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +30 -0
  80. package/dist/cjs/sdk/market/rwa/types.js +5 -2
  81. package/dist/cjs/sdk/market/zapper/IERC20ZapperContract.js +3 -38
  82. package/dist/cjs/sdk/market/zapper/IETHZapperContract.js +3 -38
  83. package/dist/cjs/sdk/market/zapper/ZapperContract.js +106 -0
  84. package/dist/cjs/sdk/market/zapper/createZapper.js +12 -4
  85. package/dist/cjs/{preview/simulate/holders.js → sdk/market/zapper/errors.js} +13 -21
  86. package/dist/cjs/sdk/market/zapper/index.js +6 -2
  87. package/dist/cjs/sdk/market/zapper/types.js +16 -0
  88. package/dist/cjs/sdk/options.js +41 -17
  89. package/dist/cjs/sdk/router/AbstractRouterContract.js +21 -27
  90. package/dist/cjs/sdk/router/RouterV310Contract.js +11 -12
  91. package/dist/cjs/sdk/router/helpers.js +0 -5
  92. package/dist/cjs/sdk/utils/AddressMap.js +6 -0
  93. package/dist/cjs/sdk/utils/AssetsMap.js +97 -0
  94. package/dist/cjs/sdk/utils/index.js +2 -0
  95. package/dist/esm/abi/iZapper.js +62 -24
  96. package/dist/esm/dev/AccountOpener.js +8 -13
  97. package/dist/esm/history/classifyMulticallOperations.js +2 -0
  98. package/dist/esm/history/mapOperations.js +7 -0
  99. package/dist/esm/plugins/adapters/abi/iConvexV1BoosterAdapter.js +119 -0
  100. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  101. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +36 -0
  102. package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
  103. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +22 -1
  104. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +18 -1
  105. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +23 -1
  106. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +22 -1
  107. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +30 -2
  108. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
  109. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
  110. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
  111. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  112. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
  113. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
  114. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +17 -1
  115. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +19 -1
  116. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +17 -1
  117. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
  118. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +24 -1
  119. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +13 -1
  120. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +14 -1
  121. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +18 -1
  122. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +18 -1
  123. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +14 -1
  124. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +13 -1
  125. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +15 -1
  126. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +61 -1
  127. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +14 -1
  128. package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +25 -2
  129. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +20 -1
  130. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +13 -1
  131. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
  132. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
  133. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
  134. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +17 -1
  135. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +13 -1
  136. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +18 -1
  137. package/dist/esm/preview/index.js +1 -2
  138. package/dist/esm/preview/parse/classifyInnerOperations.js +14 -1
  139. package/dist/esm/preview/parse/errors.js +3 -1
  140. package/dist/esm/preview/parse/index.js +1 -1
  141. package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +5 -12
  142. package/dist/esm/preview/parse/parseOperationCalldata.js +43 -2
  143. package/dist/esm/preview/parse/parsePoolOperationCalldata.js +14 -2
  144. package/dist/esm/preview/parse/parseRWAFactoryOperationCalldata.js +85 -0
  145. package/dist/esm/preview/parse/types-rwa.js +0 -0
  146. package/dist/esm/preview/parse/types.js +6 -1
  147. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +13 -13
  148. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +32 -14
  149. package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +42 -0
  150. package/dist/esm/preview/prerequisites/buildPrerequisites.js +130 -14
  151. package/dist/esm/preview/prerequisites/index.js +1 -0
  152. package/dist/esm/preview/preview/applyInnerOperations.js +108 -0
  153. package/dist/esm/preview/preview/errors.js +27 -0
  154. package/dist/esm/preview/preview/index.js +5 -0
  155. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +74 -0
  156. package/dist/esm/preview/preview/previewOpenCreditAccount.js +49 -0
  157. package/dist/esm/preview/preview/previewOperation.js +21 -0
  158. package/dist/esm/preview/preview/previewPoolOperation.js +53 -0
  159. package/dist/esm/preview/preview/types.js +0 -0
  160. package/dist/esm/preview/preview/unwrapNativeCollateral.js +21 -0
  161. package/dist/esm/preview/simulate/errors.js +0 -6
  162. package/dist/esm/preview/simulate/index.js +3 -3
  163. package/dist/esm/preview/simulate/simulateOperation.js +8 -1
  164. package/dist/esm/preview/simulate/simulatePoolOperation.js +61 -35
  165. package/dist/esm/preview/simulate/simulateRWAOperation.js +6 -0
  166. package/dist/esm/sdk/MultichainSDK.js +1 -0
  167. package/dist/esm/sdk/OnchainSDK.js +7 -3
  168. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +54 -24
  169. package/dist/esm/sdk/base/BaseContract.js +4 -2
  170. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -0
  171. package/dist/esm/sdk/market/MarketRegister.js +10 -5
  172. package/dist/esm/sdk/market/ZapperRegister.js +54 -0
  173. package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +33 -1
  174. package/dist/esm/sdk/market/rwa/types.js +5 -2
  175. package/dist/esm/sdk/market/zapper/IERC20ZapperContract.js +3 -38
  176. package/dist/esm/sdk/market/zapper/IETHZapperContract.js +3 -38
  177. package/dist/esm/sdk/market/zapper/ZapperContract.js +82 -0
  178. package/dist/esm/sdk/market/zapper/createZapper.js +12 -4
  179. package/dist/esm/sdk/market/zapper/errors.js +13 -0
  180. package/dist/esm/sdk/market/zapper/index.js +3 -1
  181. package/dist/esm/sdk/market/zapper/types.js +0 -0
  182. package/dist/esm/sdk/options.js +39 -15
  183. package/dist/esm/sdk/router/AbstractRouterContract.js +25 -29
  184. package/dist/esm/sdk/router/RouterV310Contract.js +11 -12
  185. package/dist/esm/sdk/router/helpers.js +0 -4
  186. package/dist/esm/sdk/utils/AddressMap.js +6 -0
  187. package/dist/esm/sdk/utils/AssetsMap.js +73 -0
  188. package/dist/esm/sdk/utils/index.js +1 -0
  189. package/dist/types/abi/iERC20Zapper.d.ts +91 -23
  190. package/dist/types/abi/iETHZapper.d.ts +91 -23
  191. package/dist/types/abi/iZapper.d.ts +91 -23
  192. package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +1 -1
  193. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +1 -1
  194. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +1 -1
  195. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +1 -1
  196. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +1 -1
  197. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +1 -1
  198. package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +1 -1
  199. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +1 -1
  200. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +1 -1
  201. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +1 -1
  202. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +1 -1
  203. package/dist/types/history/types.d.ts +4 -4
  204. package/dist/types/plugins/adapters/abi/iConvexV1BoosterAdapter.d.ts +204 -0
  205. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  206. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +21 -3
  207. package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
  208. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +4 -2
  209. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +4 -2
  210. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +4 -2
  211. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +4 -2
  212. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +8 -6
  213. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -6
  214. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -6
  215. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -6
  216. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
  217. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -6
  218. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -6
  219. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +4 -2
  220. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +4 -2
  221. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +4 -2
  222. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +4 -2
  223. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +4 -2
  224. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +4 -2
  225. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +4 -2
  226. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +4 -2
  227. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +4 -2
  228. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +4 -2
  229. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +4 -2
  230. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +4 -2
  231. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +4 -2
  232. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +4 -2
  233. package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +15 -3
  234. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +4 -2
  235. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +4 -2
  236. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -1
  237. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -1
  238. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +4 -2
  239. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +4 -2
  240. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +4 -2
  241. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +4 -2
  242. package/dist/types/plugins/adapters/types.d.ts +10 -0
  243. package/dist/types/preview/index.d.ts +1 -2
  244. package/dist/types/preview/parse/classifyInnerOperations.d.ts +0 -2
  245. package/dist/types/preview/parse/errors.d.ts +1 -0
  246. package/dist/types/preview/parse/index.d.ts +1 -1
  247. package/dist/types/preview/parse/parseOperationCalldata.d.ts +3 -3
  248. package/dist/types/preview/parse/parseRWAFactoryOperationCalldata.d.ts +22 -0
  249. package/dist/types/preview/parse/types-adapters.d.ts +5 -1
  250. package/dist/types/preview/parse/types-facades.d.ts +23 -34
  251. package/dist/types/preview/parse/types-pools.d.ts +90 -2
  252. package/dist/types/preview/parse/types-rwa.d.ts +48 -0
  253. package/dist/types/preview/parse/types.d.ts +11 -6
  254. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +1 -3
  255. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +9 -6
  256. package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +36 -0
  257. package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +15 -6
  258. package/dist/types/preview/prerequisites/index.d.ts +1 -0
  259. package/dist/types/preview/prerequisites/types.d.ts +10 -8
  260. package/dist/types/preview/preview/applyInnerOperations.d.ts +77 -0
  261. package/dist/types/preview/preview/errors.d.ts +21 -0
  262. package/dist/types/preview/preview/index.d.ts +5 -0
  263. package/dist/types/preview/preview/previewAdjustCreditAccount.d.ts +11 -0
  264. package/dist/types/preview/preview/previewOpenCreditAccount.d.ts +4 -0
  265. package/dist/types/preview/preview/previewOperation.d.ts +7 -0
  266. package/dist/types/preview/preview/previewPoolOperation.d.ts +5 -0
  267. package/dist/types/preview/preview/types.d.ts +177 -0
  268. package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
  269. package/dist/types/preview/simulate/errors.d.ts +6 -12
  270. package/dist/types/preview/simulate/index.d.ts +3 -2
  271. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +0 -2
  272. package/dist/types/preview/simulate/simulateOperation.d.ts +0 -2
  273. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +9 -3
  274. package/dist/types/preview/simulate/simulateRWAOperation.d.ts +23 -0
  275. package/dist/types/preview/simulate/types.d.ts +12 -39
  276. package/dist/types/sdk/MultichainSDK.d.ts +5 -0
  277. package/dist/types/sdk/OnchainSDK.d.ts +4 -0
  278. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +11 -3
  279. package/dist/types/sdk/accounts/types.d.ts +66 -8
  280. package/dist/types/sdk/base/BaseContract.d.ts +1 -1
  281. package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
  282. package/dist/types/sdk/base/types.d.ts +18 -0
  283. package/dist/types/sdk/market/MarketRegister.d.ts +15 -6
  284. package/dist/types/sdk/market/ZapperRegister.d.ts +25 -4
  285. package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +6 -1
  286. package/dist/types/sdk/market/rwa/types.d.ts +13 -5
  287. package/dist/types/sdk/market/zapper/IERC20ZapperContract.d.ts +93 -39
  288. package/dist/types/sdk/market/zapper/IETHZapperContract.d.ts +93 -39
  289. package/dist/types/sdk/market/zapper/ZapperContract.d.ts +35 -0
  290. package/dist/types/sdk/market/zapper/createZapper.d.ts +2 -4
  291. package/dist/types/sdk/market/zapper/errors.d.ts +10 -0
  292. package/dist/types/sdk/market/zapper/index.d.ts +3 -1
  293. package/dist/types/sdk/market/zapper/types.d.ts +64 -0
  294. package/dist/types/sdk/options.d.ts +10 -5
  295. package/dist/types/sdk/pools/types.d.ts +4 -4
  296. package/dist/types/sdk/router/AbstractRouterContract.d.ts +5 -5
  297. package/dist/types/sdk/router/helpers.d.ts +1 -2
  298. package/dist/types/sdk/router/types.d.ts +1 -15
  299. package/dist/types/sdk/types/state-human.d.ts +9 -0
  300. package/dist/types/sdk/types/state.d.ts +7 -0
  301. package/dist/types/sdk/utils/AddressMap.d.ts +4 -0
  302. package/dist/types/sdk/utils/AssetsMap.d.ts +44 -0
  303. package/dist/types/sdk/utils/index.d.ts +1 -0
  304. package/package.json +3 -3
  305. package/dist/cjs/preview/parse/extractExpectedBalanceChanges.js +0 -48
  306. package/dist/cjs/preview/simulate/extractERC20Transfers.js +0 -47
  307. package/dist/cjs/preview/simulate/simulatePoolOpMulticall.js +0 -155
  308. package/dist/cjs/preview/simulate/simulatePoolOpV1.js +0 -106
  309. package/dist/esm/preview/parse/extractExpectedBalanceChanges.js +0 -24
  310. package/dist/esm/preview/simulate/constants.js +0 -4
  311. package/dist/esm/preview/simulate/extractERC20Transfers.js +0 -23
  312. package/dist/esm/preview/simulate/holders.js +0 -21
  313. package/dist/esm/preview/simulate/simulatePoolOpMulticall.js +0 -130
  314. package/dist/esm/preview/simulate/simulatePoolOpV1.js +0 -82
  315. package/dist/esm/sdk/market/zapper/Zapper.js +0 -23
  316. package/dist/types/preview/parse/extractExpectedBalanceChanges.d.ts +0 -22
  317. package/dist/types/preview/simulate/constants.d.ts +0 -6
  318. package/dist/types/preview/simulate/extractERC20Transfers.d.ts +0 -11
  319. package/dist/types/preview/simulate/holders.d.ts +0 -7
  320. package/dist/types/preview/simulate/simulatePoolOpMulticall.d.ts +0 -28
  321. package/dist/types/preview/simulate/simulatePoolOpV1.d.ts +0 -14
  322. package/dist/types/sdk/market/zapper/Zapper.d.ts +0 -13
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var previewPoolOperation_exports = {};
20
+ __export(previewPoolOperation_exports, {
21
+ previewPoolOperation: () => previewPoolOperation
22
+ });
23
+ module.exports = __toCommonJS(previewPoolOperation_exports);
24
+ var import_simulate = require("../simulate/index.js");
25
+ async function previewPoolOperation(input, operation, options) {
26
+ const { sdk, to, calldata } = input;
27
+ const { tokenIn, tokenOut } = operation;
28
+ const sim = await (0, import_simulate.simulatePoolOperation)(
29
+ { sdk, operation, to, calldata },
30
+ options
31
+ );
32
+ if (sim.status === "success") {
33
+ return {
34
+ operation: operation.operation,
35
+ pool: operation.pool,
36
+ tokenIn: { token: tokenIn, balance: sim.amountIn },
37
+ tokenOut: { token: tokenOut, balance: sim.amountOut }
38
+ };
39
+ }
40
+ const { error } = sim;
41
+ switch (operation.operation) {
42
+ case "Deposit":
43
+ return {
44
+ operation: "Deposit",
45
+ pool: operation.pool,
46
+ tokenIn: { token: tokenIn, balance: operation.assets },
47
+ tokenOut: { token: tokenOut, error }
48
+ };
49
+ case "Mint":
50
+ return {
51
+ operation: "Mint",
52
+ pool: operation.pool,
53
+ tokenIn: { token: tokenIn, error },
54
+ tokenOut: { token: tokenOut, balance: operation.shares }
55
+ };
56
+ case "Withdraw":
57
+ return {
58
+ operation: "Withdraw",
59
+ pool: operation.pool,
60
+ tokenIn: { token: tokenIn, error },
61
+ tokenOut: { token: tokenOut, balance: operation.assets }
62
+ };
63
+ case "Redeem":
64
+ return {
65
+ operation: "Redeem",
66
+ pool: operation.pool,
67
+ tokenIn: { token: tokenIn, balance: operation.shares },
68
+ tokenOut: { token: tokenOut, error }
69
+ };
70
+ }
71
+ }
72
+ // Annotate the CommonJS export names for ESM import in node:
73
+ 0 && (module.exports = {
74
+ previewPoolOperation
75
+ });
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
@@ -16,32 +16,30 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var Zapper_exports = {};
20
- __export(Zapper_exports, {
21
- Zapper: () => Zapper
19
+ var unwrapNativeCollateral_exports = {};
20
+ __export(unwrapNativeCollateral_exports, {
21
+ unwrapNativeCollateral: () => unwrapNativeCollateral
22
22
  });
23
- module.exports = __toCommonJS(Zapper_exports);
24
- var import_utils = require("../../utils/index.js");
25
- class Zapper {
26
- pool;
27
- type;
28
- baseParams;
29
- tokenIn;
30
- tokenOut;
31
- contractType;
32
- constructor(data) {
33
- this.pool = data.pool;
34
- this.type = data.type;
35
- this.baseParams = data.baseParams;
36
- this.tokenIn = data.tokenIn;
37
- this.tokenOut = data.tokenOut;
38
- this.contractType = Zapper.contractType(data.baseParams);
23
+ module.exports = __toCommonJS(unwrapNativeCollateral_exports);
24
+ var import_sdk = require("../../sdk/index.js");
25
+ var import_errors = require("./errors.js");
26
+ function unwrapNativeCollateral(collateral, nativeAmount, wethToken) {
27
+ if (nativeAmount === 0n) {
28
+ return collateral;
39
29
  }
40
- static contractType(baseParams) {
41
- return (0, import_utils.bytes32ToString)(baseParams.contractType);
30
+ const balances = new import_sdk.AssetsMap(collateral);
31
+ const wethBalance = balances.get(wethToken) ?? 0n;
32
+ if (wethBalance < nativeAmount) {
33
+ throw new import_errors.InvalidTransactionValueError(nativeAmount, wethBalance);
42
34
  }
35
+ balances.upsert(
36
+ wethToken,
37
+ wethBalance === nativeAmount ? void 0 : wethBalance - nativeAmount
38
+ );
39
+ balances.inc(import_sdk.NATIVE_ADDRESS, nativeAmount);
40
+ return balances.toAssets();
43
41
  }
44
42
  // Annotate the CommonJS export names for ESM import in node:
45
43
  0 && (module.exports = {
46
- Zapper
44
+ unwrapNativeCollateral
47
45
  });
@@ -20,7 +20,6 @@ var errors_exports = {};
20
20
  __export(errors_exports, {
21
21
  PreviewSimulationError: () => PreviewSimulationError,
22
22
  asPreviewSimulationError: () => asPreviewSimulationError,
23
- combinePreviewSimulationErrors: () => combinePreviewSimulationErrors,
24
23
  decodeSimulationError: () => decodeSimulationError
25
24
  });
26
25
  module.exports = __toCommonJS(errors_exports);
@@ -49,11 +48,6 @@ function asPreviewSimulationError(reason, source) {
49
48
  { source, detail: decodeSimulationError({ error }) }
50
49
  ]);
51
50
  }
52
- function combinePreviewSimulationErrors(...errors) {
53
- return new PreviewSimulationError(
54
- errors.filter((e) => e).flatMap((e) => e?.failures ?? [])
55
- );
56
- }
57
51
  function decodeSimulationError(revert) {
58
52
  const { error, data } = revert;
59
53
  if (data && data !== "0x") {
@@ -93,6 +87,5 @@ function formatDecodedError(errorName, args) {
93
87
  0 && (module.exports = {
94
88
  PreviewSimulationError,
95
89
  asPreviewSimulationError,
96
- combinePreviewSimulationErrors,
97
90
  decodeSimulationError
98
91
  });
@@ -18,23 +18,23 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var simulate_exports = {};
20
20
  __export(simulate_exports, {
21
- ETH_SIMULATE_V1_NETWORKS: () => import_constants.ETH_SIMULATE_V1_NETWORKS,
22
21
  PreviewSimulationError: () => import_errors.PreviewSimulationError,
23
22
  simulateFacadeOperation: () => import_simulateFacadeOperation.simulateFacadeOperation,
24
23
  simulateOperation: () => import_simulateOperation.simulateOperation,
25
- simulatePoolOperation: () => import_simulatePoolOperation.simulatePoolOperation
24
+ simulatePoolOperation: () => import_simulatePoolOperation.simulatePoolOperation,
25
+ simulateRWAOperation: () => import_simulateRWAOperation.simulateRWAOperation
26
26
  });
27
27
  module.exports = __toCommonJS(simulate_exports);
28
- var import_constants = require("./constants.js");
29
28
  var import_errors = require("./errors.js");
30
29
  var import_simulateFacadeOperation = require("./simulateFacadeOperation.js");
31
30
  var import_simulateOperation = require("./simulateOperation.js");
32
31
  var import_simulatePoolOperation = require("./simulatePoolOperation.js");
32
+ var import_simulateRWAOperation = require("./simulateRWAOperation.js");
33
33
  // Annotate the CommonJS export names for ESM import in node:
34
34
  0 && (module.exports = {
35
- ETH_SIMULATE_V1_NETWORKS,
36
35
  PreviewSimulationError,
37
36
  simulateFacadeOperation,
38
37
  simulateOperation,
39
- simulatePoolOperation
38
+ simulatePoolOperation,
39
+ simulateRWAOperation
40
40
  });
@@ -24,11 +24,15 @@ module.exports = __toCommonJS(simulateOperation_exports);
24
24
  var import_parse = require("../parse/index.js");
25
25
  var import_simulateFacadeOperation = require("./simulateFacadeOperation.js");
26
26
  var import_simulatePoolOperation = require("./simulatePoolOperation.js");
27
+ var import_simulateRWAOperation = require("./simulateRWAOperation.js");
27
28
  async function simulateOperation(input, options) {
28
29
  const { operation } = input;
29
30
  if ((0, import_parse.isPoolOperation)(operation)) {
30
31
  return (0, import_simulatePoolOperation.simulatePoolOperation)({ ...input, operation }, options);
31
32
  }
33
+ if ((0, import_parse.isRWAOperation)(operation)) {
34
+ return (0, import_simulateRWAOperation.simulateRWAOperation)({ ...input, operation }, options);
35
+ }
32
36
  return (0, import_simulateFacadeOperation.simulateFacadeOperation)({ ...input, operation }, options);
33
37
  }
34
38
  // Annotate the CommonJS export names for ESM import in node:
@@ -21,40 +21,69 @@ __export(simulatePoolOperation_exports, {
21
21
  simulatePoolOperation: () => simulatePoolOperation
22
22
  });
23
23
  module.exports = __toCommonJS(simulatePoolOperation_exports);
24
- var import_constants = require("./constants.js");
24
+ var import_generated = require("../../abi/310/generated.js");
25
+ var import_iZapper = require("../../abi/iZapper.js");
25
26
  var import_errors = require("./errors.js");
26
- var import_simulatePoolOpMulticall = require("./simulatePoolOpMulticall.js");
27
- var import_simulatePoolOpV1 = require("./simulatePoolOpV1.js");
28
- async function simulatePoolOperation(input, options = {}) {
29
- const { sdk } = input;
30
- const { logger } = options;
31
- const useSimulateV1 = options.useSimulateV1 ?? import_constants.ETH_SIMULATE_V1_NETWORKS.has(sdk.networkType);
32
- logger?.debug(
33
- { wallet: input.wallet, to: input.to },
34
- "simulating pool operation"
35
- );
36
- const [v1, multicall] = await Promise.allSettled([
37
- useSimulateV1 ? (0, import_simulatePoolOpV1.simulatePoolOpV1)(input, options) : void 0,
38
- (0, import_simulatePoolOpMulticall.simulatePoolOpMulticall)(input, options)
39
- ]);
40
- if (v1.status === "fulfilled" && v1.value) {
41
- return { status: "success", ...v1.value };
27
+ function previewRead(operation) {
28
+ switch (operation.operation) {
29
+ case "Deposit":
30
+ return { functionName: "previewDeposit", amount: operation.assets };
31
+ case "Mint":
32
+ return { functionName: "previewMint", amount: operation.shares };
33
+ case "Withdraw":
34
+ return { functionName: "previewWithdraw", amount: operation.assets };
35
+ case "Redeem":
36
+ return { functionName: "previewRedeem", amount: operation.shares };
37
+ }
38
+ }
39
+ function previewContract(operation) {
40
+ const { functionName, amount } = previewRead(operation);
41
+ if (operation.zapper) {
42
+ return {
43
+ address: operation.zapper,
44
+ abi: import_iZapper.iZapperAbi,
45
+ functionName,
46
+ args: [amount]
47
+ };
42
48
  }
43
- if (multicall.status === "fulfilled") {
44
- if (v1.status === "rejected") {
45
- logger?.debug(
46
- (0, import_errors.asPreviewSimulationError)(v1.reason, "eth_simulateV1"),
47
- "eth_simulateV1 flow failed; falling back to multicall result"
48
- );
49
- }
50
- return { status: "success", ...multicall.value };
49
+ return {
50
+ address: operation.pool,
51
+ abi: import_generated.iPoolV310Abi,
52
+ functionName,
53
+ args: [amount]
54
+ };
55
+ }
56
+ function amountsInOut(operation, previewAmount) {
57
+ switch (operation.operation) {
58
+ case "Deposit":
59
+ return { amountIn: operation.assets, amountOut: previewAmount };
60
+ case "Mint":
61
+ return { amountIn: previewAmount, amountOut: operation.shares };
62
+ case "Withdraw":
63
+ return { amountIn: previewAmount, amountOut: operation.assets };
64
+ case "Redeem":
65
+ return { amountIn: operation.shares, amountOut: previewAmount };
66
+ }
67
+ }
68
+ async function simulatePoolOperation(input, options = {}) {
69
+ const { sdk, operation } = input;
70
+ const { blockNumber, logger } = options;
71
+ try {
72
+ const previewAmount = await sdk.client.readContract({
73
+ // `undefined` lets viem read at `latest`; `blockNumber` is only set for
74
+ // testnet forks pinned to a specific block.
75
+ blockNumber,
76
+ ...previewContract(operation)
77
+ });
78
+ return {
79
+ status: "success",
80
+ ...amountsInOut(operation, previewAmount)
81
+ };
82
+ } catch (cause) {
83
+ const error = (0, import_errors.asPreviewSimulationError)(cause, "multicall");
84
+ logger?.error(error, "pool operation simulation failed");
85
+ return { status: "failure", error };
51
86
  }
52
- const error = (0, import_errors.combinePreviewSimulationErrors)(
53
- v1.status === "rejected" ? (0, import_errors.asPreviewSimulationError)(v1.reason, "eth_simulateV1") : void 0,
54
- (0, import_errors.asPreviewSimulationError)(multicall.reason, "multicall")
55
- );
56
- logger?.error(error, "pool operation simulation failed");
57
- return { status: "failure", error };
58
87
  }
59
88
  // Annotate the CommonJS export names for ESM import in node:
60
89
  0 && (module.exports = {
@@ -16,13 +16,15 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var constants_exports = {};
20
- __export(constants_exports, {
21
- ETH_SIMULATE_V1_NETWORKS: () => ETH_SIMULATE_V1_NETWORKS
19
+ var simulateRWAOperation_exports = {};
20
+ __export(simulateRWAOperation_exports, {
21
+ simulateRWAOperation: () => simulateRWAOperation
22
22
  });
23
- module.exports = __toCommonJS(constants_exports);
24
- const ETH_SIMULATE_V1_NETWORKS = /* @__PURE__ */ new Set(["Mainnet", "Plasma", "Somnia"]);
23
+ module.exports = __toCommonJS(simulateRWAOperation_exports);
24
+ async function simulateRWAOperation(_input, _options) {
25
+ throw new Error("not yet implemented");
26
+ }
25
27
  // Annotate the CommonJS export names for ESM import in node:
26
28
  0 && (module.exports = {
27
- ETH_SIMULATE_V1_NETWORKS
29
+ simulateRWAOperation
28
30
  });
@@ -81,6 +81,7 @@ class MultichainSDK {
81
81
  const perChainOpts = options?.perChain?.[network] ?? {};
82
82
  return sdk.attach({
83
83
  ...perChainOpts,
84
+ loadZappers: perChainOpts.loadZappers ?? options?.loadZappers,
84
85
  redstone: {
85
86
  ...options?.redstone,
86
87
  cache: this.#redstoneCache,
@@ -127,7 +127,8 @@ class OnchainSDK extends import_base.ChainContractsRegister {
127
127
  ignoreMarkets,
128
128
  marketConfigurators: mcs,
129
129
  redstone,
130
- pyth
130
+ pyth,
131
+ loadZappers
131
132
  } = options ?? {};
132
133
  const marketConfigurators = mcs ?? import_utils.TypedObjectUtils.keys(
133
134
  this.client.chain.defaultMarketConfigurators
@@ -196,6 +197,9 @@ class OnchainSDK extends import_base.ChainContractsRegister {
196
197
  blockNumber: this.currentBlock,
197
198
  gas: this.gasLimit
198
199
  });
200
+ if (loadZappers) {
201
+ await this.#marketRegister.loadZappers();
202
+ }
199
203
  }
200
204
  const pluginsList = import_utils.TypedObjectUtils.entries(this.plugins);
201
205
  const pluginResponse = await Promise.allSettled(
@@ -248,7 +252,7 @@ class OnchainSDK extends import_base.ChainContractsRegister {
248
252
  `address provider version: ${this.#addressProvider.version}`
249
253
  );
250
254
  this.#marketRegister = new import_MarketRegister.MarketRegister(this, ignoreMarkets);
251
- this.#marketRegister.hydrate(state.markets);
255
+ this.#marketRegister.hydrate(state);
252
256
  this.#rwa = new import_market.RWARegistry(this);
253
257
  this.#rwa.setState(state.rwa);
254
258
  for (const [name, plugin] of import_utils.TypedObjectUtils.entries(this.plugins)) {
@@ -313,7 +317,7 @@ class OnchainSDK extends import_base.ChainContractsRegister {
313
317
  currentBlock: this.currentBlock,
314
318
  timestamp: this.timestamp,
315
319
  addressProvider: this.addressProvider.state,
316
- markets: this.marketRegister.state,
320
+ ...this.marketRegister.state,
317
321
  rwa: this.#rwa.state,
318
322
  plugins: Object.fromEntries(
319
323
  import_utils.TypedObjectUtils.entries(this.plugins).map(([name, plugin]) => [
@@ -36,7 +36,6 @@ var import_base = require("../base/index.js");
36
36
  var import_chains = require("../chain/chains.js");
37
37
  var import_constants = require("../constants/index.js");
38
38
  var import_market = require("../market/index.js");
39
- var import_router = require("../router/index.js");
40
39
  var import_utils = require("../utils/index.js");
41
40
  var import_viem2 = require("../utils/viem/index.js");
42
41
  var import_multicall_utils = require("./multicall-utils.js");
@@ -621,14 +620,12 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
621
620
  creditManager: cm.creditManager,
622
621
  slippage
623
622
  });
624
- const operationCalls = [
625
- ...routerCloseResult.calls,
626
- ...this.#prepareDisableQuotas(ca),
627
- ...this.#prepareDecreaseDebt(ca),
628
- ...assetsToWithdraw.map(
629
- (t) => this.#prepareWithdrawToken(ca.creditFacade, t, import_constants.MAX_UINT256, to)
630
- )
631
- ];
623
+ const operationCalls = await this.assembleCloseCreditAccountCalls({
624
+ creditAccount: ca,
625
+ routerCalls: routerCloseResult.calls,
626
+ assetsToWithdraw,
627
+ to
628
+ });
632
629
  const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
633
630
  const tx = await this.#closeCreditAccountTx(
634
631
  cm,
@@ -638,6 +635,32 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
638
635
  );
639
636
  return { tx, calls, routerCloseResult, creditFacade: cm.creditFacade };
640
637
  }
638
+ /**
639
+ * {@inheritDoc ICreditAccountsService.assembleCloseCreditAccountCalls}
640
+ */
641
+ async assembleCloseCreditAccountCalls({
642
+ creditAccount: ca,
643
+ routerCalls,
644
+ assetsToWithdraw,
645
+ to
646
+ }) {
647
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
648
+ await this.sdk.tokensMeta.loadTokenData(cm.underlying);
649
+ const underlying = this.sdk.tokensMeta.mustGet(cm.underlying);
650
+ if (this.sdk.tokensMeta.isRWAUnderlying(underlying)) {
651
+ throw new Error(
652
+ "closeCreditAccount is not supported for RWA underlying credit accounts"
653
+ );
654
+ }
655
+ return [
656
+ ...routerCalls,
657
+ ...this.#prepareDisableQuotas(ca),
658
+ ...this.#prepareDecreaseDebt(ca),
659
+ ...assetsToWithdraw.map(
660
+ (t) => this.#prepareWithdrawToken(ca.creditFacade, t, import_constants.MAX_UINT256, to)
661
+ )
662
+ ];
663
+ }
641
664
  /**
642
665
  * {@inheritDoc ICreditAccountsService.updateQuotas}
643
666
  **/
@@ -1307,8 +1330,23 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
1307
1330
  /**
1308
1331
  * {@inheritDoc ICreditAccountsService.repayCreditAccount}
1309
1332
  */
1310
- async repayCreditAccount({
1311
- operation,
1333
+ async repayCreditAccount(props) {
1334
+ const { operation, creditAccount: ca } = props;
1335
+ const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
1336
+ const operationCalls = await this.assembleRepayCreditAccountCalls(props);
1337
+ const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
1338
+ const tx = await this.#closeCreditAccountTx(
1339
+ cm,
1340
+ ca.creditAccount,
1341
+ calls,
1342
+ operation
1343
+ );
1344
+ return { tx, calls, creditFacade: cm.creditFacade };
1345
+ }
1346
+ /**
1347
+ * {@inheritDoc ICreditAccountsService.assembleRepayCreditAccountCalls}
1348
+ */
1349
+ async assembleRepayCreditAccountCalls({
1312
1350
  collateralAssets,
1313
1351
  assetsToWithdraw,
1314
1352
  creditAccount: ca,
@@ -1317,7 +1355,6 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
1317
1355
  tokensToClaim,
1318
1356
  calls: wrapCalls = []
1319
1357
  }) {
1320
- const cm = this.sdk.marketRegister.findCreditManager(ca.creditManager);
1321
1358
  const addCollateral = collateralAssets.filter((a) => a.balance > 0);
1322
1359
  const router = this.sdk.routerFor(ca);
1323
1360
  const unwrapCalls = await this.getRedeemDiffCalls(1n, ca.creditManager) ?? [];
@@ -1336,14 +1373,7 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
1336
1373
  (t) => this.#prepareWithdrawToken(ca.creditFacade, t.token, import_constants.MAX_UINT256, to)
1337
1374
  )
1338
1375
  ];
1339
- const calls = operation === "close" ? operationCalls : await this.#prependPriceUpdates(ca.creditManager, operationCalls, ca);
1340
- const tx = await this.#closeCreditAccountTx(
1341
- cm,
1342
- ca.creditAccount,
1343
- calls,
1344
- operation
1345
- );
1346
- return { tx, calls, creditFacade: cm.creditFacade };
1376
+ return operationCalls;
1347
1377
  }
1348
1378
  /**
1349
1379
  * {@inheritDoc ICreditAccountsService.repayAndLiquidateCreditAccount}
@@ -1723,10 +1753,10 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
1723
1753
  return calls;
1724
1754
  }
1725
1755
  #prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
1726
- const minRecord = (0, import_router.assetsMap)(minQuota);
1756
+ const minRecord = new import_utils.AssetsMap(minQuota);
1727
1757
  const calls = averageQuota.map((q) => {
1728
- const minAsset = minRecord.get(q.token);
1729
- const min = minAsset && minAsset?.balance > 0 ? minAsset.balance : 0n;
1758
+ const minBalance = minRecord.get(q.token);
1759
+ const min = minBalance && minBalance > 0n ? minBalance : 0n;
1730
1760
  return {
1731
1761
  target: creditFacade,
1732
1762
  callData: (0, import_viem.encodeFunctionData)({
@@ -244,6 +244,7 @@ class BaseContract extends import_Construct.Construct {
244
244
  const functionName = (0, import_utils.getFunctionSignature)(this.abi, calldata);
245
245
  return this.wrapParseCallV2(
246
246
  functionName,
247
+ calldata,
247
248
  this.parseFunctionParamsV2(decoded, strict)
248
249
  );
249
250
  } catch (e) {
@@ -257,7 +258,7 @@ class BaseContract extends import_Construct.Construct {
257
258
  this.logger?.warn(e);
258
259
  const selector = calldata.slice(0, 10);
259
260
  const data = `0x${calldata.slice(10)}`;
260
- return this.wrapParseCallV2(`unknown function ${selector}`, {
261
+ return this.wrapParseCallV2(`unknown function ${selector}`, calldata, {
261
262
  _data: data
262
263
  });
263
264
  }
@@ -270,7 +271,7 @@ class BaseContract extends import_Construct.Construct {
270
271
  parseFunctionParamsV2(params, _strict) {
271
272
  return (0, import_utils.functionArgsToRecord)(this.abi, params.functionName, params.args);
272
273
  }
273
- wrapParseCallV2(functionName, rawArgs) {
274
+ wrapParseCallV2(functionName, calldata, rawArgs) {
274
275
  return {
275
276
  chainId: this.chainId,
276
277
  target: this.address,
@@ -278,6 +279,7 @@ class BaseContract extends import_Construct.Construct {
278
279
  label: this.labelAddress(this.address, true),
279
280
  version: this.version,
280
281
  functionName,
282
+ calldata,
281
283
  rawArgs
282
284
  };
283
285
  }
@@ -184,6 +184,7 @@ class ChainContractsRegister {
184
184
  label: this.labelAddress(address, true),
185
185
  version: 0,
186
186
  functionName: `unknown function ${selector}`,
187
+ calldata,
187
188
  rawArgs: { _data: data }
188
189
  };
189
190
  }
@@ -52,10 +52,11 @@ class MarketRegister extends import_ZapperRegister.ZapperRegister {
52
52
  * bypassing on-chain reads.
53
53
  * @param state - Array of market data snapshots.
54
54
  **/
55
- hydrate(state) {
56
- const configurators = new Set(state.map((m) => m.configurator));
55
+ hydrate({ markets, zappers }) {
56
+ const configurators = new Set(markets.map((m) => m.configurator));
57
57
  this.#setMarketFilter([...configurators]);
58
- this.#setMarkets(state);
58
+ this.#setMarkets(markets);
59
+ this.hydrateZappers(zappers);
59
60
  }
60
61
  /**
61
62
  * @internal
@@ -174,7 +175,10 @@ class MarketRegister extends import_ZapperRegister.ZapperRegister {
174
175
  * Serializable snapshot of all loaded markets, suitable for hydration.
175
176
  **/
176
177
  get state() {
177
- return this.markets.map((market) => market.state);
178
+ return {
179
+ markets: this.markets.map((market) => market.state),
180
+ zappers: this.zappersState
181
+ };
178
182
  }
179
183
  /**
180
184
  * Returns a human-readable snapshot of all markets.
@@ -182,7 +186,8 @@ class MarketRegister extends import_ZapperRegister.ZapperRegister {
182
186
  **/
183
187
  stateHuman(raw = true) {
184
188
  return {
185
- markets: this.markets.map((market) => market.stateHuman(raw))
189
+ markets: this.markets.map((market) => market.stateHuman(raw)),
190
+ zappers: this.zappersStateHuman(raw)
186
191
  };
187
192
  }
188
193
  /**
@@ -75,6 +75,60 @@ class ZapperRegister extends import_base.SDKConstruct {
75
75
  }
76
76
  }
77
77
  }
78
+ /**
79
+ * Serializable snapshot of all loaded zappers, suitable for hydration.
80
+ * Returns `undefined` when zappers were never loaded (i.e. `loadZappers` was
81
+ * not called), so the not-loaded state round-trips cleanly.
82
+ **/
83
+ get zappersState() {
84
+ if (!this.#zappers) {
85
+ return void 0;
86
+ }
87
+ return this.#zappers.values().flatMap(
88
+ (zappers) => zappers.map((z) => ({
89
+ pool: z.pool,
90
+ type: z.type,
91
+ baseParams: z.baseParams,
92
+ tokenIn: z.tokenIn,
93
+ tokenOut: z.tokenOut
94
+ }))
95
+ );
96
+ }
97
+ /**
98
+ * Restores zapper state from a previously serialized snapshot,
99
+ * bypassing on-chain reads.
100
+ * @param state - Array of zapper data snapshots, or `undefined` when zappers
101
+ * were not loaded in the snapshot (leaves the registry in the not-loaded state).
102
+ **/
103
+ hydrateZappers(state) {
104
+ if (!state) {
105
+ return;
106
+ }
107
+ this.#zappers = new import_utils.AddressMap(void 0, "zappers");
108
+ for (const z of state) {
109
+ this.#addZapper(z);
110
+ }
111
+ }
112
+ /**
113
+ * Returns a human-readable snapshot of all loaded zappers.
114
+ * Returns `undefined` when zappers were never loaded.
115
+ * @param raw - When `true`, includes raw/unformatted values.
116
+ **/
117
+ zappersStateHuman(_ = true) {
118
+ if (!this.#zappers) {
119
+ return void 0;
120
+ }
121
+ return this.#zappers.values().flatMap(
122
+ (zappers) => zappers.map((z) => ({
123
+ address: this.labelAddress(z.baseParams.addr),
124
+ contractType: z.contractType,
125
+ type: z.type,
126
+ pool: this.labelAddress(z.pool),
127
+ tokenIn: this.sdk.labelAddress(z.tokenIn.addr),
128
+ tokenOut: this.sdk.labelAddress(z.tokenOut.addr)
129
+ }))
130
+ );
131
+ }
78
132
  #addZapper(z) {
79
133
  const zapper = (0, import_zapper.createZapper)(this.sdk, z);
80
134
  const existing = this.zappers.get(z.pool);