@gearbox-protocol/sdk 14.11.3 → 14.12.0-next.10

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 (387) hide show
  1. package/dist/cjs/abi/iZapper.js +62 -24
  2. package/dist/cjs/common-utils/utils/index.js +2 -0
  3. package/dist/cjs/{history/trace-utils.js → common-utils/utils/trace.js} +62 -5
  4. package/dist/cjs/dev/AccountOpener.js +7 -13
  5. package/dist/cjs/dev/index.js +3 -1
  6. package/dist/cjs/dev/verifyTestnet.js +52 -0
  7. package/dist/cjs/history/assembleOperations.js +6 -6
  8. package/dist/cjs/history/classifyMulticallOperations.js +33 -25
  9. package/dist/cjs/history/index.js +0 -2
  10. package/dist/cjs/history/mapOperations.js +7 -0
  11. package/dist/cjs/history/parseCreditAccountTransaction.js +5 -6
  12. package/dist/cjs/history/toLegacyOperation.js +5 -1
  13. package/dist/cjs/plugins/adapters/abi/iConvexV1BoosterAdapter.js +143 -0
  14. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  15. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +61 -37
  16. package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
  17. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -0
  18. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +19 -0
  19. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +15 -0
  20. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +20 -0
  21. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +18 -0
  22. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +28 -2
  23. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
  24. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
  25. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
  26. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  27. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
  28. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
  29. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +14 -0
  30. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +15 -0
  31. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +14 -0
  32. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +15 -0
  33. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +21 -0
  34. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +10 -0
  35. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +11 -0
  36. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +15 -0
  37. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +15 -0
  38. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +11 -0
  39. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +10 -0
  40. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +12 -0
  41. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +58 -0
  42. package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +11 -0
  43. package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +22 -1
  44. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +17 -0
  45. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +10 -0
  46. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
  47. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
  48. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +15 -0
  49. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +14 -0
  50. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +10 -0
  51. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +15 -0
  52. package/dist/cjs/{history/internal-types.js → plugins/adapters/transfers.js} +2 -2
  53. package/dist/cjs/preview/index.js +26 -0
  54. package/dist/cjs/preview/package.json +1 -0
  55. package/dist/cjs/preview/parse/classifyInnerOperations.js +105 -0
  56. package/dist/cjs/preview/parse/errors.js +50 -0
  57. package/dist/cjs/preview/parse/index.js +34 -0
  58. package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +108 -0
  59. package/dist/cjs/preview/parse/parseOperationCalldata.js +85 -0
  60. package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +89 -0
  61. package/dist/cjs/preview/parse/parseRWAFactoryOperationCalldata.js +104 -0
  62. package/dist/cjs/{history/inner-operations.js → preview/parse/types-adapters.js} +2 -2
  63. package/dist/cjs/preview/parse/types-facades.js +16 -0
  64. package/dist/cjs/preview/parse/types-pools.js +16 -0
  65. package/dist/cjs/preview/parse/types-rwa.js +16 -0
  66. package/dist/cjs/preview/parse/types.js +44 -0
  67. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +78 -0
  68. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +95 -0
  69. package/dist/cjs/preview/prerequisites/Prerequisite.js +85 -0
  70. package/dist/cjs/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +66 -0
  71. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +297 -0
  72. package/dist/cjs/preview/prerequisites/index.js +36 -0
  73. package/dist/cjs/preview/prerequisites/prepareAction.js +48 -0
  74. package/dist/cjs/preview/prerequisites/runPrerequisites.js +71 -0
  75. package/dist/cjs/preview/prerequisites/types.js +16 -0
  76. package/dist/cjs/preview/preview/applyInnerOperations.js +132 -0
  77. package/dist/cjs/preview/preview/errors.js +52 -0
  78. package/dist/cjs/preview/preview/index.js +30 -0
  79. package/dist/cjs/preview/preview/previewAdjustCreditAccount.js +95 -0
  80. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +69 -0
  81. package/dist/cjs/preview/preview/previewOperation.js +45 -0
  82. package/dist/cjs/preview/preview/previewPoolOperation.js +75 -0
  83. package/dist/cjs/preview/preview/types.js +16 -0
  84. package/dist/cjs/preview/preview/unwrapNativeCollateral.js +45 -0
  85. package/dist/cjs/preview/simulate/errors.js +91 -0
  86. package/dist/cjs/preview/simulate/index.js +40 -0
  87. package/dist/cjs/preview/simulate/simulateFacadeOperation.js +30 -0
  88. package/dist/cjs/preview/simulate/simulateOperation.js +41 -0
  89. package/dist/cjs/preview/simulate/simulatePoolOperation.js +91 -0
  90. package/dist/cjs/preview/simulate/simulateRWAOperation.js +30 -0
  91. package/dist/cjs/preview/simulate/types.js +16 -0
  92. package/dist/cjs/{history → preview/trace}/errors.js +0 -26
  93. package/dist/cjs/preview/trace/extractAdapterCallTraces.js +58 -0
  94. package/dist/cjs/{history → preview/trace}/extractTransfers.js +9 -12
  95. package/dist/cjs/{history → preview/trace}/findFacadeCalls.js +3 -3
  96. package/dist/cjs/preview/trace/index.js +30 -0
  97. package/dist/cjs/preview/trace/types.js +16 -0
  98. package/dist/cjs/sdk/MultichainSDK.js +1 -0
  99. package/dist/cjs/sdk/OnchainSDK.js +7 -3
  100. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +157 -4
  101. package/dist/cjs/sdk/base/BaseContract.js +4 -2
  102. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -0
  103. package/dist/cjs/sdk/market/MarketRegister.js +10 -5
  104. package/dist/cjs/sdk/market/ZapperRegister.js +54 -0
  105. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +30 -0
  106. package/dist/cjs/sdk/market/rwa/types.js +5 -2
  107. package/dist/cjs/sdk/market/zapper/IERC20ZapperContract.js +3 -38
  108. package/dist/cjs/sdk/market/zapper/IETHZapperContract.js +3 -38
  109. package/dist/cjs/sdk/market/zapper/ZapperContract.js +106 -0
  110. package/dist/cjs/sdk/market/zapper/createZapper.js +12 -4
  111. package/dist/cjs/sdk/market/zapper/{Zapper.js → errors.js} +13 -23
  112. package/dist/cjs/sdk/market/zapper/index.js +6 -2
  113. package/dist/cjs/sdk/market/zapper/types.js +16 -0
  114. package/dist/cjs/sdk/options.js +41 -17
  115. package/dist/cjs/sdk/router/AbstractRouterContract.js +21 -27
  116. package/dist/cjs/sdk/router/RouterV310Contract.js +11 -12
  117. package/dist/cjs/sdk/router/helpers.js +0 -5
  118. package/dist/cjs/sdk/utils/AddressMap.js +6 -0
  119. package/dist/cjs/sdk/utils/AssetsMap.js +62 -0
  120. package/dist/cjs/sdk/utils/index.js +2 -0
  121. package/dist/esm/abi/iZapper.js +62 -24
  122. package/dist/esm/common-utils/utils/index.js +1 -0
  123. package/dist/esm/common-utils/utils/trace.js +93 -0
  124. package/dist/esm/dev/AccountOpener.js +8 -13
  125. package/dist/esm/dev/index.js +1 -0
  126. package/dist/esm/dev/verifyTestnet.js +27 -0
  127. package/dist/esm/history/assembleOperations.js +8 -6
  128. package/dist/esm/history/classifyMulticallOperations.js +31 -23
  129. package/dist/esm/history/index.js +0 -1
  130. package/dist/esm/history/mapOperations.js +7 -0
  131. package/dist/esm/history/parseCreditAccountTransaction.js +3 -4
  132. package/dist/esm/history/toLegacyOperation.js +5 -1
  133. package/dist/esm/plugins/adapters/abi/iConvexV1BoosterAdapter.js +119 -0
  134. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  135. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +64 -38
  136. package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
  137. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -0
  138. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +22 -1
  139. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +18 -1
  140. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +23 -1
  141. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +22 -1
  142. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +30 -2
  143. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
  144. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
  145. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
  146. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  147. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
  148. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
  149. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +17 -1
  150. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +19 -1
  151. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +17 -1
  152. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
  153. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +24 -1
  154. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +13 -1
  155. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +14 -1
  156. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +18 -1
  157. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +18 -1
  158. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +14 -1
  159. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +13 -1
  160. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +15 -1
  161. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +61 -1
  162. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +14 -1
  163. package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +25 -2
  164. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +20 -1
  165. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +13 -1
  166. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
  167. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
  168. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
  169. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +17 -1
  170. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +13 -1
  171. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +18 -1
  172. package/dist/esm/preview/index.js +3 -0
  173. package/dist/esm/preview/package.json +1 -0
  174. package/dist/esm/preview/parse/classifyInnerOperations.js +81 -0
  175. package/dist/esm/preview/parse/errors.js +24 -0
  176. package/dist/esm/preview/parse/index.js +7 -0
  177. package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +84 -0
  178. package/dist/esm/preview/parse/parseOperationCalldata.js +66 -0
  179. package/dist/esm/preview/parse/parsePoolOperationCalldata.js +65 -0
  180. package/dist/esm/preview/parse/parseRWAFactoryOperationCalldata.js +85 -0
  181. package/dist/esm/preview/parse/types-facades.js +0 -0
  182. package/dist/esm/preview/parse/types-pools.js +0 -0
  183. package/dist/esm/preview/parse/types-rwa.js +0 -0
  184. package/dist/esm/preview/parse/types.js +14 -0
  185. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +57 -0
  186. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +74 -0
  187. package/dist/esm/preview/prerequisites/Prerequisite.js +63 -0
  188. package/dist/esm/preview/prerequisites/RWAOpenRequirementsPrerequisite.js +42 -0
  189. package/dist/esm/preview/prerequisites/buildPrerequisites.js +279 -0
  190. package/dist/esm/preview/prerequisites/index.js +8 -0
  191. package/dist/esm/preview/prerequisites/prepareAction.js +23 -0
  192. package/dist/esm/preview/prerequisites/runPrerequisites.js +47 -0
  193. package/dist/esm/preview/prerequisites/types.js +0 -0
  194. package/dist/esm/preview/preview/applyInnerOperations.js +110 -0
  195. package/dist/esm/preview/preview/errors.js +27 -0
  196. package/dist/esm/preview/preview/index.js +5 -0
  197. package/dist/esm/preview/preview/previewAdjustCreditAccount.js +79 -0
  198. package/dist/esm/preview/preview/previewOpenCreditAccount.js +51 -0
  199. package/dist/esm/preview/preview/previewOperation.js +21 -0
  200. package/dist/esm/preview/preview/previewPoolOperation.js +53 -0
  201. package/dist/esm/preview/preview/types.js +0 -0
  202. package/dist/esm/preview/preview/unwrapNativeCollateral.js +21 -0
  203. package/dist/esm/preview/simulate/errors.js +69 -0
  204. package/dist/esm/preview/simulate/index.js +12 -0
  205. package/dist/esm/preview/simulate/simulateFacadeOperation.js +6 -0
  206. package/dist/esm/preview/simulate/simulateOperation.js +20 -0
  207. package/dist/esm/preview/simulate/simulatePoolOperation.js +67 -0
  208. package/dist/esm/preview/simulate/simulateRWAOperation.js +6 -0
  209. package/dist/esm/preview/simulate/types.js +0 -0
  210. package/dist/esm/{history → preview/trace}/errors.js +0 -24
  211. package/dist/esm/preview/trace/extractAdapterCallTraces.js +40 -0
  212. package/dist/esm/{history → preview/trace}/extractTransfers.js +9 -12
  213. package/dist/esm/{history → preview/trace}/findFacadeCalls.js +4 -2
  214. package/dist/esm/preview/trace/index.js +5 -0
  215. package/dist/esm/preview/trace/types.js +0 -0
  216. package/dist/esm/sdk/MultichainSDK.js +1 -0
  217. package/dist/esm/sdk/OnchainSDK.js +7 -3
  218. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +158 -5
  219. package/dist/esm/sdk/base/BaseContract.js +4 -2
  220. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -0
  221. package/dist/esm/sdk/market/MarketRegister.js +10 -5
  222. package/dist/esm/sdk/market/ZapperRegister.js +54 -0
  223. package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +33 -1
  224. package/dist/esm/sdk/market/rwa/types.js +5 -2
  225. package/dist/esm/sdk/market/zapper/IERC20ZapperContract.js +3 -38
  226. package/dist/esm/sdk/market/zapper/IETHZapperContract.js +3 -38
  227. package/dist/esm/sdk/market/zapper/ZapperContract.js +82 -0
  228. package/dist/esm/sdk/market/zapper/createZapper.js +12 -4
  229. package/dist/esm/sdk/market/zapper/errors.js +13 -0
  230. package/dist/esm/sdk/market/zapper/index.js +3 -1
  231. package/dist/esm/sdk/market/zapper/types.js +0 -0
  232. package/dist/esm/sdk/options.js +39 -15
  233. package/dist/esm/sdk/router/AbstractRouterContract.js +25 -29
  234. package/dist/esm/sdk/router/RouterV310Contract.js +11 -12
  235. package/dist/esm/sdk/router/helpers.js +0 -4
  236. package/dist/esm/sdk/utils/AddressMap.js +6 -0
  237. package/dist/esm/sdk/utils/AssetsMap.js +38 -0
  238. package/dist/esm/sdk/utils/index.js +1 -0
  239. package/dist/types/abi/iERC20Zapper.d.ts +91 -23
  240. package/dist/types/abi/iETHZapper.d.ts +91 -23
  241. package/dist/types/abi/iZapper.d.ts +91 -23
  242. package/dist/types/common-utils/utils/index.d.ts +1 -0
  243. package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +1 -1
  244. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +1 -1
  245. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +1 -1
  246. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +1 -1
  247. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +1 -1
  248. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +1 -1
  249. package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +1 -1
  250. package/dist/types/common-utils/utils/trace.d.ts +73 -0
  251. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +1 -1
  252. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +1 -1
  253. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +1 -1
  254. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +1 -1
  255. package/dist/types/dev/index.d.ts +1 -0
  256. package/dist/types/dev/verifyTestnet.d.ts +24 -0
  257. package/dist/types/history/assembleOperations.d.ts +11 -6
  258. package/dist/types/history/classifyMulticallOperations.d.ts +21 -9
  259. package/dist/types/history/index.d.ts +0 -1
  260. package/dist/types/history/mapOperations.d.ts +7 -9
  261. package/dist/types/history/types.d.ts +22 -71
  262. package/dist/types/plugins/adapters/abi/iConvexV1BoosterAdapter.d.ts +204 -0
  263. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  264. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +33 -16
  265. package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
  266. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +10 -1
  267. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +4 -2
  268. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +4 -2
  269. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +4 -2
  270. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +5 -3
  271. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +9 -7
  272. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -6
  273. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -6
  274. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -6
  275. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +3 -3
  276. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -6
  277. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -6
  278. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +5 -3
  279. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +5 -3
  280. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +5 -3
  281. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +4 -2
  282. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +4 -2
  283. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +4 -2
  284. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +5 -3
  285. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +5 -3
  286. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +5 -3
  287. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +4 -2
  288. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +4 -2
  289. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +4 -2
  290. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +4 -2
  291. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +4 -2
  292. package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +15 -3
  293. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +4 -2
  294. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +4 -2
  295. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +4 -2
  296. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -1
  297. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +5 -3
  298. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +4 -2
  299. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +4 -2
  300. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +5 -3
  301. package/dist/types/plugins/adapters/transferHelpers.d.ts +1 -1
  302. package/dist/types/plugins/adapters/transfers.d.ts +17 -0
  303. package/dist/types/plugins/adapters/types.d.ts +18 -46
  304. package/dist/types/preview/index.d.ts +3 -0
  305. package/dist/types/preview/parse/classifyInnerOperations.d.ts +19 -0
  306. package/dist/types/preview/parse/errors.d.ts +18 -0
  307. package/dist/types/preview/parse/index.d.ts +7 -0
  308. package/dist/types/preview/parse/parseFacadeOperationCalldata.d.ts +19 -0
  309. package/dist/types/preview/parse/parseOperationCalldata.d.ts +23 -0
  310. package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +17 -0
  311. package/dist/types/preview/parse/parseRWAFactoryOperationCalldata.d.ts +22 -0
  312. package/dist/types/preview/parse/types-adapters.d.ts +73 -0
  313. package/dist/types/preview/parse/types-facades.d.ts +147 -0
  314. package/dist/types/preview/parse/types-pools.d.ts +143 -0
  315. package/dist/types/preview/parse/types-rwa.d.ts +48 -0
  316. package/dist/types/preview/parse/types.d.ts +49 -0
  317. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +22 -0
  318. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +26 -0
  319. package/dist/types/preview/prerequisites/Prerequisite.d.ts +60 -0
  320. package/dist/types/preview/prerequisites/RWAOpenRequirementsPrerequisite.d.ts +36 -0
  321. package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +25 -0
  322. package/dist/types/preview/prerequisites/index.d.ts +8 -0
  323. package/dist/types/preview/prerequisites/prepareAction.d.ts +52 -0
  324. package/dist/types/preview/prerequisites/runPrerequisites.d.ts +12 -0
  325. package/dist/types/preview/prerequisites/types.d.ts +80 -0
  326. package/dist/types/preview/preview/applyInnerOperations.d.ts +77 -0
  327. package/dist/types/preview/preview/errors.d.ts +21 -0
  328. package/dist/types/preview/preview/index.d.ts +5 -0
  329. package/dist/types/preview/preview/previewAdjustCreditAccount.d.ts +11 -0
  330. package/dist/types/preview/preview/previewOpenCreditAccount.d.ts +4 -0
  331. package/dist/types/preview/preview/previewOperation.d.ts +7 -0
  332. package/dist/types/preview/preview/previewPoolOperation.d.ts +5 -0
  333. package/dist/types/preview/preview/types.d.ts +177 -0
  334. package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
  335. package/dist/types/preview/simulate/errors.d.ts +45 -0
  336. package/dist/types/preview/simulate/index.d.ts +10 -0
  337. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +23 -0
  338. package/dist/types/preview/simulate/simulateOperation.d.ts +18 -0
  339. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +14 -0
  340. package/dist/types/preview/simulate/simulateRWAOperation.d.ts +23 -0
  341. package/dist/types/preview/simulate/types.d.ts +52 -0
  342. package/dist/types/{history → preview/trace}/errors.d.ts +0 -10
  343. package/dist/types/preview/trace/extractAdapterCallTraces.d.ts +23 -0
  344. package/dist/types/{history → preview/trace}/extractTransfers.d.ts +14 -5
  345. package/dist/types/{history → preview/trace}/findFacadeCalls.d.ts +3 -2
  346. package/dist/types/preview/trace/index.d.ts +5 -0
  347. package/dist/types/preview/trace/types.d.ts +21 -0
  348. package/dist/types/sdk/MultichainSDK.d.ts +5 -0
  349. package/dist/types/sdk/OnchainSDK.d.ts +4 -0
  350. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +22 -2
  351. package/dist/types/sdk/accounts/types.d.ts +84 -2
  352. package/dist/types/sdk/base/BaseContract.d.ts +1 -1
  353. package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
  354. package/dist/types/sdk/base/types.d.ts +18 -0
  355. package/dist/types/sdk/market/MarketRegister.d.ts +15 -6
  356. package/dist/types/sdk/market/ZapperRegister.d.ts +25 -4
  357. package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +6 -1
  358. package/dist/types/sdk/market/rwa/types.d.ts +13 -5
  359. package/dist/types/sdk/market/zapper/IERC20ZapperContract.d.ts +93 -39
  360. package/dist/types/sdk/market/zapper/IETHZapperContract.d.ts +93 -39
  361. package/dist/types/sdk/market/zapper/ZapperContract.d.ts +35 -0
  362. package/dist/types/sdk/market/zapper/createZapper.d.ts +2 -4
  363. package/dist/types/sdk/market/zapper/errors.d.ts +10 -0
  364. package/dist/types/sdk/market/zapper/index.d.ts +3 -1
  365. package/dist/types/sdk/market/zapper/types.d.ts +64 -0
  366. package/dist/types/sdk/options.d.ts +10 -5
  367. package/dist/types/sdk/pools/types.d.ts +4 -4
  368. package/dist/types/sdk/router/AbstractRouterContract.d.ts +5 -5
  369. package/dist/types/sdk/router/helpers.d.ts +1 -2
  370. package/dist/types/sdk/router/types.d.ts +1 -15
  371. package/dist/types/sdk/types/state-human.d.ts +9 -0
  372. package/dist/types/sdk/types/state.d.ts +7 -0
  373. package/dist/types/sdk/utils/AddressMap.d.ts +4 -0
  374. package/dist/types/sdk/utils/AssetsMap.d.ts +27 -0
  375. package/dist/types/sdk/utils/index.d.ts +1 -0
  376. package/package.json +8 -3
  377. package/dist/cjs/history/extractProtocolCalls.js +0 -53
  378. package/dist/esm/history/extractProtocolCalls.js +0 -32
  379. package/dist/esm/history/trace-utils.js +0 -36
  380. package/dist/esm/sdk/market/zapper/Zapper.js +0 -23
  381. package/dist/types/history/extractProtocolCalls.d.ts +0 -8
  382. package/dist/types/history/inner-operations.d.ts +0 -57
  383. package/dist/types/history/internal-types.d.ts +0 -47
  384. package/dist/types/history/trace-utils.d.ts +0 -12
  385. package/dist/types/sdk/market/zapper/Zapper.d.ts +0 -13
  386. /package/dist/esm/{history/inner-operations.js → plugins/adapters/transfers.js} +0 -0
  387. /package/dist/esm/{history/internal-types.js → preview/parse/types-adapters.js} +0 -0
@@ -0,0 +1,40 @@
1
+ import {
2
+ decodeAbiParameters,
3
+ isAddressEqual,
4
+ toFunctionSelector
5
+ } from "viem";
6
+ import {
7
+ resolveProtocolCall
8
+ } from "../../common-utils/utils/trace.js";
9
+ const WITHDRAW_PHANTOM_TOKEN_SELECTOR = toFunctionSelector(
10
+ "withdrawPhantomToken(address,uint256)"
11
+ );
12
+ const GET_PHANTOM_TOKEN_INFO_SELECTOR = toFunctionSelector(
13
+ "getPhantomTokenInfo()"
14
+ );
15
+ function isSynthesizedPhantomWithdrawal(siblings, index) {
16
+ const node = siblings[index];
17
+ if (node.type !== "CALL" || node.input.slice(0, 10).toLowerCase() !== WITHDRAW_PHANTOM_TOKEN_SELECTOR) {
18
+ return false;
19
+ }
20
+ const [token] = decodeAbiParameters(
21
+ [{ type: "address" }, { type: "uint256" }],
22
+ `0x${node.input.slice(10)}`
23
+ );
24
+ for (let i = 0; i < index; i++) {
25
+ const sib = siblings[i];
26
+ if (sib.type === "STATICCALL" && sib.input.slice(0, 10).toLowerCase() === GET_PHANTOM_TOKEN_INFO_SELECTOR && isAddressEqual(sib.to, token)) {
27
+ return true;
28
+ }
29
+ }
30
+ return false;
31
+ }
32
+ function extractAdapterCallTraces(facadeTrace) {
33
+ const subtraces = facadeTrace.calls ?? [];
34
+ return subtraces.filter(
35
+ (sub, index) => resolveProtocolCall(sub) !== void 0 && !isSynthesizedPhantomWithdrawal(subtraces, index)
36
+ );
37
+ }
38
+ export {
39
+ extractAdapterCallTraces
40
+ };
@@ -3,9 +3,9 @@ import {
3
3
  isAddressEqual,
4
4
  parseEventLogs
5
5
  } from "viem";
6
- import { iCreditFacadeV310Abi } from "../abi/310/generated.js";
7
- import { ierc20Abi } from "../abi/iERC20.js";
8
- import { AddressMap } from "../sdk/index.js";
6
+ import { iCreditFacadeV310Abi } from "../../abi/310/generated.js";
7
+ import { ierc20Abi } from "../../abi/iERC20.js";
8
+ import { AddressMap } from "../../sdk/index.js";
9
9
  import { UnexpectedFacadeEventOrderError } from "./errors.js";
10
10
  function extractTransfers(logs, creditAccount, pool, creditFacade) {
11
11
  const ranges = buildOperationRanges(logs, creditFacade, creditAccount);
@@ -14,7 +14,7 @@ function extractTransfers(logs, creditAccount, pool, creditFacade) {
14
14
  return !!e && (e.eventName === "LiquidateCreditAccount" || e.eventName === "PartiallyLiquidateCreditAccount") && isAddressEqual(e.args.creditAccount, creditAccount);
15
15
  });
16
16
  let currentEntries = [];
17
- const executeResults = [];
17
+ const executeTransfers = [];
18
18
  const directTransfers = [];
19
19
  const phantomTokens = new AddressMap();
20
20
  const withdrawCollateralEvents = [];
@@ -23,20 +23,17 @@ function extractTransfers(logs, creditAccount, pool, creditFacade) {
23
23
  const facadeEvent = tryDecodeFacadeEvent(log, creditFacade);
24
24
  if (facadeEvent) {
25
25
  if (isExecute(facadeEvent, creditAccount)) {
26
- executeResults.push({
27
- transfers: currentEntries,
28
- targetContract: facadeEvent.args.targetContract
29
- });
26
+ executeTransfers.push(currentEntries);
30
27
  } else if (isLiquidation(facadeEvent, creditAccount)) {
31
28
  liquidationRemainingFunds = facadeEvent.args.remainingFunds;
32
29
  } else if (isWithdrawPhantomToken(facadeEvent, creditAccount)) {
33
- const phantomExec = executeResults.pop();
34
- if (!phantomExec) {
30
+ const phantomTransfers = executeTransfers.pop();
31
+ if (!phantomTransfers) {
35
32
  throw new Error(
36
33
  `WithdrawPhantomToken without preceding Execute at logIndex ${facadeEvent.logIndex}`
37
34
  );
38
35
  }
39
- const rawDeposit = phantomExec.transfers.find(
36
+ const rawDeposit = phantomTransfers.find(
40
37
  (t) => isAddressEqual(t.to, creditAccount)
41
38
  );
42
39
  if (!rawDeposit) {
@@ -80,7 +77,7 @@ function extractTransfers(logs, creditAccount, pool, creditFacade) {
80
77
  }
81
78
  }
82
79
  return {
83
- executeResults,
80
+ executeTransfers,
84
81
  directTransfers,
85
82
  liquidationRemainingFunds,
86
83
  phantomTokens,
@@ -2,9 +2,11 @@ import {
2
2
  decodeFunctionResult,
3
3
  isAddressEqual
4
4
  } from "viem";
5
- import { iCreditFacadeV310Abi } from "../abi/310/generated.js";
5
+ import { iCreditFacadeV310Abi } from "../../abi/310/generated.js";
6
+ import {
7
+ collectTraces
8
+ } from "../../common-utils/utils/trace.js";
6
9
  import { UnknownFacadeCallError } from "./errors.js";
7
- import { collectTraces } from "./trace-utils.js";
8
10
  const FACADE_CALL_TYPES = {
9
11
  multicall: "MultiCall",
10
12
  botMulticall: "BotMulticall",
@@ -0,0 +1,5 @@
1
+ export * from "./errors.js";
2
+ export * from "./extractAdapterCallTraces.js";
3
+ export * from "./extractTransfers.js";
4
+ export * from "./findFacadeCalls.js";
5
+ export * from "./types.js";
File without changes
@@ -67,6 +67,7 @@ class MultichainSDK {
67
67
  const perChainOpts = options?.perChain?.[network] ?? {};
68
68
  return sdk.attach({
69
69
  ...perChainOpts,
70
+ loadZappers: perChainOpts.loadZappers ?? options?.loadZappers,
70
71
  redstone: {
71
72
  ...options?.redstone,
72
73
  cache: this.#redstoneCache,
@@ -126,7 +126,8 @@ class OnchainSDK extends ChainContractsRegister {
126
126
  ignoreMarkets,
127
127
  marketConfigurators: mcs,
128
128
  redstone,
129
- pyth
129
+ pyth,
130
+ loadZappers
130
131
  } = options ?? {};
131
132
  const marketConfigurators = mcs ?? TypedObjectUtils.keys(
132
133
  this.client.chain.defaultMarketConfigurators
@@ -195,6 +196,9 @@ class OnchainSDK extends ChainContractsRegister {
195
196
  blockNumber: this.currentBlock,
196
197
  gas: this.gasLimit
197
198
  });
199
+ if (loadZappers) {
200
+ await this.#marketRegister.loadZappers();
201
+ }
198
202
  }
199
203
  const pluginsList = TypedObjectUtils.entries(this.plugins);
200
204
  const pluginResponse = await Promise.allSettled(
@@ -247,7 +251,7 @@ class OnchainSDK extends ChainContractsRegister {
247
251
  `address provider version: ${this.#addressProvider.version}`
248
252
  );
249
253
  this.#marketRegister = new MarketRegister(this, ignoreMarkets);
250
- this.#marketRegister.hydrate(state.markets);
254
+ this.#marketRegister.hydrate(state);
251
255
  this.#rwa = new RWARegistry(this);
252
256
  this.#rwa.setState(state.rwa);
253
257
  for (const [name, plugin] of TypedObjectUtils.entries(this.plugins)) {
@@ -312,7 +316,7 @@ class OnchainSDK extends ChainContractsRegister {
312
316
  currentBlock: this.currentBlock,
313
317
  timestamp: this.timestamp,
314
318
  addressProvider: this.addressProvider.state,
315
- markets: this.marketRegister.state,
319
+ ...this.marketRegister.state,
316
320
  rwa: this.#rwa.state,
317
321
  plugins: Object.fromEntries(
318
322
  TypedObjectUtils.entries(this.plugins).map(([name, plugin]) => [
@@ -27,8 +27,7 @@ import {
27
27
  import {
28
28
  getRawPriceUpdates
29
29
  } from "../market/index.js";
30
- import { assetsMap } from "../router/index.js";
31
- import { AddressMap, AddressSet, hexEq } from "../utils/index.js";
30
+ import { AddressMap, AddressSet, AssetsMap, hexEq } from "../utils/index.js";
32
31
  import { simulateWithPriceUpdates } from "../utils/viem/index.js";
33
32
  import {
34
33
  extractPriceUpdates,
@@ -1547,6 +1546,160 @@ class CreditAccountsServiceV310 extends SDKConstruct {
1547
1546
  callsWithPrices
1548
1547
  );
1549
1548
  }
1549
+ /**
1550
+ * {@inheritDoc ICreditAccountsService.prependPriceUpdates}
1551
+ */
1552
+ async prependPriceUpdates(creditManager, calls, creditAccount, options) {
1553
+ return this.#prependPriceUpdates(
1554
+ creditManager,
1555
+ calls,
1556
+ creditAccount,
1557
+ options
1558
+ );
1559
+ }
1560
+ /**
1561
+ * {@inheritDoc ICreditAccountsService.assembleCaUpdateCalls}
1562
+ */
1563
+ assembleCaUpdateCalls({
1564
+ operations,
1565
+ routerCallGroups,
1566
+ creditFacade,
1567
+ withdrawTo,
1568
+ creditAccount,
1569
+ underlyingToken
1570
+ }) {
1571
+ const calls = [];
1572
+ let swapGroupIndex = 0;
1573
+ let routerGroupsConsumed = 0;
1574
+ for (const op of operations) {
1575
+ switch (op.type) {
1576
+ case "increaseDebt":
1577
+ calls.push(this.#prepareIncreaseDebt(creditFacade, op.amount));
1578
+ break;
1579
+ case "decreaseDebt":
1580
+ calls.push(this.#prepareChangeDebt(creditFacade, op.amount, true));
1581
+ break;
1582
+ case "addCollateral":
1583
+ calls.push(
1584
+ ...this.#prepareAddCollateral(
1585
+ creditFacade,
1586
+ [{ token: op.token, balance: op.amount }],
1587
+ {}
1588
+ )
1589
+ );
1590
+ break;
1591
+ case "withdrawCollateral":
1592
+ calls.push(
1593
+ this.#prepareWithdrawToken(
1594
+ creditFacade,
1595
+ op.token,
1596
+ op.amount,
1597
+ withdrawTo
1598
+ )
1599
+ );
1600
+ break;
1601
+ case "swap": {
1602
+ const routerCalls = routerCallGroups[swapGroupIndex];
1603
+ if (!routerCalls) {
1604
+ throw new Error(
1605
+ `assembleCaUpdateCalls: missing router calls for swap leg ${swapGroupIndex}`
1606
+ );
1607
+ }
1608
+ calls.push(...routerCalls);
1609
+ swapGroupIndex += 1;
1610
+ routerGroupsConsumed += 1;
1611
+ break;
1612
+ }
1613
+ case "changeQuota": {
1614
+ const quotaAssets = [...op.quotaIncrease, ...op.quotaDecrease];
1615
+ if (quotaAssets.length === 0) {
1616
+ break;
1617
+ }
1618
+ calls.push(
1619
+ ...this.#prepareUpdateQuotas(creditFacade, {
1620
+ averageQuota: quotaAssets,
1621
+ minQuota: quotaAssets
1622
+ })
1623
+ );
1624
+ break;
1625
+ }
1626
+ case "closeCreditAccount": {
1627
+ for (const group of routerCallGroups) {
1628
+ calls.push(...group);
1629
+ routerGroupsConsumed += 1;
1630
+ }
1631
+ calls.push(
1632
+ ...this.#prepareDisableQuotas({
1633
+ creditFacade,
1634
+ tokens: Object.entries(creditAccount.initialQuotas).map(
1635
+ ([token, { quota }]) => ({
1636
+ token,
1637
+ quota
1638
+ })
1639
+ )
1640
+ })
1641
+ );
1642
+ if (creditAccount.debt > 0n) {
1643
+ calls.push(
1644
+ ...this.#prepareDecreaseDebt({
1645
+ creditFacade,
1646
+ debt: creditAccount.debt
1647
+ })
1648
+ );
1649
+ }
1650
+ const hasAssets = creditAccount.assets.some(
1651
+ (asset) => asset.balance > 0n
1652
+ );
1653
+ if (hasAssets) {
1654
+ calls.push(
1655
+ this.#prepareWithdrawToken(
1656
+ creditFacade,
1657
+ underlyingToken,
1658
+ MAX_UINT256,
1659
+ withdrawTo
1660
+ )
1661
+ );
1662
+ }
1663
+ break;
1664
+ }
1665
+ default: {
1666
+ const _exhaustive = op;
1667
+ throw new Error(
1668
+ `assembleCaUpdateCalls: unsupported operation ${_exhaustive}`
1669
+ );
1670
+ }
1671
+ }
1672
+ }
1673
+ if (routerGroupsConsumed !== routerCallGroups.length) {
1674
+ throw new Error(
1675
+ `assembleCaUpdateCalls: router call group mismatch (consumed ${routerGroupsConsumed}, got ${routerCallGroups.length})`
1676
+ );
1677
+ }
1678
+ return calls;
1679
+ }
1680
+ /**
1681
+ * {@inheritDoc ICreditAccountsService.executeCaUpdate}
1682
+ */
1683
+ async executeCaUpdate(creditAccount, calls, options) {
1684
+ const cm = this.sdk.marketRegister.findCreditManager(
1685
+ creditAccount.creditManager
1686
+ );
1687
+ const callsWithPrices = await this.#prependPriceUpdates(
1688
+ creditAccount.creditManager,
1689
+ calls,
1690
+ creditAccount,
1691
+ { ignoreReservePrices: options?.ignoreReservePrices }
1692
+ );
1693
+ const tx = await this.#multicallTx(
1694
+ cm,
1695
+ creditAccount.creditAccount,
1696
+ callsWithPrices
1697
+ );
1698
+ if (options?.ethAmount && options.ethAmount > 0n) {
1699
+ tx.value = options.ethAmount.toString(10);
1700
+ }
1701
+ return { tx, calls: callsWithPrices };
1702
+ }
1550
1703
  #prepareDisableQuotas(ca) {
1551
1704
  const calls = [];
1552
1705
  for (const { token, quota } of ca.tokens) {
@@ -1564,10 +1717,10 @@ class CreditAccountsServiceV310 extends SDKConstruct {
1564
1717
  return calls;
1565
1718
  }
1566
1719
  #prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
1567
- const minRecord = assetsMap(minQuota);
1720
+ const minRecord = new AssetsMap(minQuota);
1568
1721
  const calls = averageQuota.map((q) => {
1569
- const minAsset = minRecord.get(q.token);
1570
- const min = minAsset && minAsset?.balance > 0 ? minAsset.balance : 0n;
1722
+ const minBalance = minRecord.get(q.token);
1723
+ const min = minBalance && minBalance > 0n ? minBalance : 0n;
1571
1724
  return {
1572
1725
  target: creditFacade,
1573
1726
  callData: encodeFunctionData({
@@ -234,6 +234,7 @@ class BaseContract extends Construct {
234
234
  const functionName = getFunctionSignature(this.abi, calldata);
235
235
  return this.wrapParseCallV2(
236
236
  functionName,
237
+ calldata,
237
238
  this.parseFunctionParamsV2(decoded, strict)
238
239
  );
239
240
  } catch (e) {
@@ -247,7 +248,7 @@ class BaseContract extends Construct {
247
248
  this.logger?.warn(e);
248
249
  const selector = calldata.slice(0, 10);
249
250
  const data = `0x${calldata.slice(10)}`;
250
- return this.wrapParseCallV2(`unknown function ${selector}`, {
251
+ return this.wrapParseCallV2(`unknown function ${selector}`, calldata, {
251
252
  _data: data
252
253
  });
253
254
  }
@@ -260,7 +261,7 @@ class BaseContract extends Construct {
260
261
  parseFunctionParamsV2(params, _strict) {
261
262
  return functionArgsToRecord(this.abi, params.functionName, params.args);
262
263
  }
263
- wrapParseCallV2(functionName, rawArgs) {
264
+ wrapParseCallV2(functionName, calldata, rawArgs) {
264
265
  return {
265
266
  chainId: this.chainId,
266
267
  target: this.address,
@@ -268,6 +269,7 @@ class BaseContract extends Construct {
268
269
  label: this.labelAddress(this.address, true),
269
270
  version: this.version,
270
271
  functionName,
272
+ calldata,
271
273
  rawArgs
272
274
  };
273
275
  }
@@ -161,6 +161,7 @@ class ChainContractsRegister {
161
161
  label: this.labelAddress(address, true),
162
162
  version: 0,
163
163
  functionName: `unknown function ${selector}`,
164
+ calldata,
164
165
  rawArgs: { _data: data }
165
166
  };
166
167
  }
@@ -35,10 +35,11 @@ class MarketRegister extends ZapperRegister {
35
35
  * bypassing on-chain reads.
36
36
  * @param state - Array of market data snapshots.
37
37
  **/
38
- hydrate(state) {
39
- const configurators = new Set(state.map((m) => m.configurator));
38
+ hydrate({ markets, zappers }) {
39
+ const configurators = new Set(markets.map((m) => m.configurator));
40
40
  this.#setMarketFilter([...configurators]);
41
- this.#setMarkets(state);
41
+ this.#setMarkets(markets);
42
+ this.hydrateZappers(zappers);
42
43
  }
43
44
  /**
44
45
  * @internal
@@ -157,7 +158,10 @@ class MarketRegister extends ZapperRegister {
157
158
  * Serializable snapshot of all loaded markets, suitable for hydration.
158
159
  **/
159
160
  get state() {
160
- return this.markets.map((market) => market.state);
161
+ return {
162
+ markets: this.markets.map((market) => market.state),
163
+ zappers: this.zappersState
164
+ };
161
165
  }
162
166
  /**
163
167
  * Returns a human-readable snapshot of all markets.
@@ -165,7 +169,8 @@ class MarketRegister extends ZapperRegister {
165
169
  **/
166
170
  stateHuman(raw = true) {
167
171
  return {
168
- markets: this.markets.map((market) => market.stateHuman(raw))
172
+ markets: this.markets.map((market) => market.stateHuman(raw)),
173
+ zappers: this.zappersStateHuman(raw)
169
174
  };
170
175
  }
171
176
  /**
@@ -55,6 +55,60 @@ class ZapperRegister extends SDKConstruct {
55
55
  }
56
56
  }
57
57
  }
58
+ /**
59
+ * Serializable snapshot of all loaded zappers, suitable for hydration.
60
+ * Returns `undefined` when zappers were never loaded (i.e. `loadZappers` was
61
+ * not called), so the not-loaded state round-trips cleanly.
62
+ **/
63
+ get zappersState() {
64
+ if (!this.#zappers) {
65
+ return void 0;
66
+ }
67
+ return this.#zappers.values().flatMap(
68
+ (zappers) => zappers.map((z) => ({
69
+ pool: z.pool,
70
+ type: z.type,
71
+ baseParams: z.baseParams,
72
+ tokenIn: z.tokenIn,
73
+ tokenOut: z.tokenOut
74
+ }))
75
+ );
76
+ }
77
+ /**
78
+ * Restores zapper state from a previously serialized snapshot,
79
+ * bypassing on-chain reads.
80
+ * @param state - Array of zapper data snapshots, or `undefined` when zappers
81
+ * were not loaded in the snapshot (leaves the registry in the not-loaded state).
82
+ **/
83
+ hydrateZappers(state) {
84
+ if (!state) {
85
+ return;
86
+ }
87
+ this.#zappers = new AddressMap(void 0, "zappers");
88
+ for (const z of state) {
89
+ this.#addZapper(z);
90
+ }
91
+ }
92
+ /**
93
+ * Returns a human-readable snapshot of all loaded zappers.
94
+ * Returns `undefined` when zappers were never loaded.
95
+ * @param raw - When `true`, includes raw/unformatted values.
96
+ **/
97
+ zappersStateHuman(_ = true) {
98
+ if (!this.#zappers) {
99
+ return void 0;
100
+ }
101
+ return this.#zappers.values().flatMap(
102
+ (zappers) => zappers.map((z) => ({
103
+ address: this.labelAddress(z.baseParams.addr),
104
+ contractType: z.contractType,
105
+ type: z.type,
106
+ pool: this.labelAddress(z.pool),
107
+ tokenIn: this.sdk.labelAddress(z.tokenIn.addr),
108
+ tokenOut: this.sdk.labelAddress(z.tokenOut.addr)
109
+ }))
110
+ );
111
+ }
58
112
  #addZapper(z) {
59
113
  const zapper = createZapper(this.sdk, z);
60
114
  const existing = this.zappers.get(z.pool);
@@ -1,4 +1,6 @@
1
- import { decodeAbiParameters } from "viem";
1
+ import {
2
+ decodeAbiParameters
3
+ } from "viem";
2
4
  import { iSecuritizeRWAFactoryAbi } from "../../../../abi/rwa/iSecuritizeRWAFactory.js";
3
5
  import { BaseContract } from "../../../base/index.js";
4
6
  import { AddressMap, AddressSet } from "../../../utils/index.js";
@@ -49,6 +51,30 @@ class SecuritizeRWAFactory extends BaseContract {
49
51
  operators: [...t.operators]
50
52
  }));
51
53
  }
54
+ parseFunctionParamsV2(params, strict) {
55
+ switch (params.functionName) {
56
+ case "openCreditAccount": {
57
+ const [creditManager, calls, tokensToRegister, signaturesToCache] = params.args;
58
+ return {
59
+ creditManager,
60
+ calls: this.register.parseMultiCallV2([...calls], strict),
61
+ tokensToRegister,
62
+ signaturesToCache
63
+ };
64
+ }
65
+ case "multicall": {
66
+ const [creditAccount, calls, tokensToRegister, signaturesToCache] = params.args;
67
+ return {
68
+ creditAccount,
69
+ calls: this.register.parseMultiCallV2([...calls], strict),
70
+ tokensToRegister,
71
+ signaturesToCache
72
+ };
73
+ }
74
+ default:
75
+ return super.parseFunctionParamsV2(params, strict);
76
+ }
77
+ }
52
78
  /**
53
79
  * {@inheritDoc IRWAFactory.decodeInvestorData}
54
80
  */
@@ -104,6 +130,12 @@ class SecuritizeRWAFactory extends BaseContract {
104
130
  })
105
131
  };
106
132
  }
133
+ /**
134
+ * {@inheritDoc IRWAFactory.getTokens}
135
+ */
136
+ getTokens() {
137
+ return this.dsTokens.map((t) => t.address);
138
+ }
107
139
  /**
108
140
  * {@inheritDoc IRWAFactory.getInvestor}
109
141
  */
@@ -1,7 +1,10 @@
1
1
  import { RWA_FACTORY_SECURITIZE } from "./securitize/index.js";
2
2
  const RWA_FACTORY_TYPES = [RWA_FACTORY_SECURITIZE];
3
- function isRWAFactory(factory, type) {
4
- return factory.contractType === type;
3
+ function isRWAFactory(contract, type) {
4
+ if (type) {
5
+ return contract.contractType === type;
6
+ }
7
+ return contract.contractType.startsWith("RWA_FACTORY::");
5
8
  }
6
9
  export {
7
10
  RWA_FACTORY_TYPES,
@@ -1,25 +1,9 @@
1
1
  import { ierc20ZapperAbi } from "../../../abi/iERC20Zapper.js";
2
- import { BaseContract } from "../../base/index.js";
2
+ import { ZapperContract } from "./ZapperContract.js";
3
3
  const abi = ierc20ZapperAbi;
4
- class IERC20ZapperContract extends BaseContract {
5
- pool;
6
- type;
7
- baseParams;
8
- tokenIn;
9
- tokenOut;
4
+ class IERC20ZapperContract extends ZapperContract {
10
5
  constructor(sdk, data) {
11
- super(sdk, {
12
- addr: data.baseParams.addr,
13
- abi,
14
- name: `ERC20Zapper(${sdk.labelAddress(data.baseParams.addr)})`,
15
- version: data.baseParams.version,
16
- contractType: data.baseParams.contractType
17
- });
18
- this.pool = data.pool;
19
- this.type = data.type;
20
- this.baseParams = data.baseParams;
21
- this.tokenIn = data.tokenIn;
22
- this.tokenOut = data.tokenOut;
6
+ super(sdk, data, abi, "ERC20Zapper");
23
7
  }
24
8
  /**
25
9
  * Deposits ERC20 tokens into the pool via this zapper.
@@ -49,25 +33,6 @@ class IERC20ZapperContract extends BaseContract {
49
33
  args: [tokenInAmount, receiver, referralCode, deadline, v, r, s]
50
34
  });
51
35
  }
52
- /**
53
- * Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
54
- */
55
- redeem(tokenInAmount, receiver) {
56
- return this.createRawTx({
57
- functionName: "redeem",
58
- args: [tokenInAmount, receiver]
59
- });
60
- }
61
- /**
62
- * Redeems pool shares via this zapper with an EIP-2612 permit signature,
63
- * skipping a separate approve transaction.
64
- */
65
- redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
66
- return this.createRawTx({
67
- functionName: "redeemWithPermit",
68
- args: [tokenInAmount, receiver, deadline, v, r, s]
69
- });
70
- }
71
36
  }
72
37
  export {
73
38
  IERC20ZapperContract
@@ -1,25 +1,9 @@
1
1
  import { iethZapperAbi } from "../../../abi/iETHZapper.js";
2
- import { BaseContract } from "../../base/index.js";
2
+ import { ZapperContract } from "./ZapperContract.js";
3
3
  const abi = iethZapperAbi;
4
- class IETHZapperContract extends BaseContract {
5
- pool;
6
- type;
7
- baseParams;
8
- tokenIn;
9
- tokenOut;
4
+ class IETHZapperContract extends ZapperContract {
10
5
  constructor(sdk, data) {
11
- super(sdk, {
12
- addr: data.baseParams.addr,
13
- abi,
14
- name: `ETHZapper(${sdk.labelAddress(data.baseParams.addr)})`,
15
- version: data.baseParams.version,
16
- contractType: data.baseParams.contractType
17
- });
18
- this.pool = data.pool;
19
- this.type = data.type;
20
- this.baseParams = data.baseParams;
21
- this.tokenIn = data.tokenIn;
22
- this.tokenOut = data.tokenOut;
6
+ super(sdk, data, abi, "ETHZapper");
23
7
  }
24
8
  /**
25
9
  * Deposits native ETH into the pool via this zapper.
@@ -40,25 +24,6 @@ class IETHZapperContract extends BaseContract {
40
24
  args: [receiver, referralCode]
41
25
  });
42
26
  }
43
- /**
44
- * Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
45
- */
46
- redeem(tokenInAmount, receiver) {
47
- return this.createRawTx({
48
- functionName: "redeem",
49
- args: [tokenInAmount, receiver]
50
- });
51
- }
52
- /**
53
- * Redeems pool shares via this zapper with an EIP-2612 permit signature,
54
- * skipping a separate approve transaction.
55
- */
56
- redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
57
- return this.createRawTx({
58
- functionName: "redeemWithPermit",
59
- args: [tokenInAmount, receiver, deadline, v, r, s]
60
- });
61
- }
62
27
  }
63
28
  export {
64
29
  IETHZapperContract