@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
@@ -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");
@@ -1552,6 +1551,160 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
1552
1551
  callsWithPrices
1553
1552
  );
1554
1553
  }
1554
+ /**
1555
+ * {@inheritDoc ICreditAccountsService.prependPriceUpdates}
1556
+ */
1557
+ async prependPriceUpdates(creditManager, calls, creditAccount, options) {
1558
+ return this.#prependPriceUpdates(
1559
+ creditManager,
1560
+ calls,
1561
+ creditAccount,
1562
+ options
1563
+ );
1564
+ }
1565
+ /**
1566
+ * {@inheritDoc ICreditAccountsService.assembleCaUpdateCalls}
1567
+ */
1568
+ assembleCaUpdateCalls({
1569
+ operations,
1570
+ routerCallGroups,
1571
+ creditFacade,
1572
+ withdrawTo,
1573
+ creditAccount,
1574
+ underlyingToken
1575
+ }) {
1576
+ const calls = [];
1577
+ let swapGroupIndex = 0;
1578
+ let routerGroupsConsumed = 0;
1579
+ for (const op of operations) {
1580
+ switch (op.type) {
1581
+ case "increaseDebt":
1582
+ calls.push(this.#prepareIncreaseDebt(creditFacade, op.amount));
1583
+ break;
1584
+ case "decreaseDebt":
1585
+ calls.push(this.#prepareChangeDebt(creditFacade, op.amount, true));
1586
+ break;
1587
+ case "addCollateral":
1588
+ calls.push(
1589
+ ...this.#prepareAddCollateral(
1590
+ creditFacade,
1591
+ [{ token: op.token, balance: op.amount }],
1592
+ {}
1593
+ )
1594
+ );
1595
+ break;
1596
+ case "withdrawCollateral":
1597
+ calls.push(
1598
+ this.#prepareWithdrawToken(
1599
+ creditFacade,
1600
+ op.token,
1601
+ op.amount,
1602
+ withdrawTo
1603
+ )
1604
+ );
1605
+ break;
1606
+ case "swap": {
1607
+ const routerCalls = routerCallGroups[swapGroupIndex];
1608
+ if (!routerCalls) {
1609
+ throw new Error(
1610
+ `assembleCaUpdateCalls: missing router calls for swap leg ${swapGroupIndex}`
1611
+ );
1612
+ }
1613
+ calls.push(...routerCalls);
1614
+ swapGroupIndex += 1;
1615
+ routerGroupsConsumed += 1;
1616
+ break;
1617
+ }
1618
+ case "changeQuota": {
1619
+ const quotaAssets = [...op.quotaIncrease, ...op.quotaDecrease];
1620
+ if (quotaAssets.length === 0) {
1621
+ break;
1622
+ }
1623
+ calls.push(
1624
+ ...this.#prepareUpdateQuotas(creditFacade, {
1625
+ averageQuota: quotaAssets,
1626
+ minQuota: quotaAssets
1627
+ })
1628
+ );
1629
+ break;
1630
+ }
1631
+ case "closeCreditAccount": {
1632
+ for (const group of routerCallGroups) {
1633
+ calls.push(...group);
1634
+ routerGroupsConsumed += 1;
1635
+ }
1636
+ calls.push(
1637
+ ...this.#prepareDisableQuotas({
1638
+ creditFacade,
1639
+ tokens: Object.entries(creditAccount.initialQuotas).map(
1640
+ ([token, { quota }]) => ({
1641
+ token,
1642
+ quota
1643
+ })
1644
+ )
1645
+ })
1646
+ );
1647
+ if (creditAccount.debt > 0n) {
1648
+ calls.push(
1649
+ ...this.#prepareDecreaseDebt({
1650
+ creditFacade,
1651
+ debt: creditAccount.debt
1652
+ })
1653
+ );
1654
+ }
1655
+ const hasAssets = creditAccount.assets.some(
1656
+ (asset) => asset.balance > 0n
1657
+ );
1658
+ if (hasAssets) {
1659
+ calls.push(
1660
+ this.#prepareWithdrawToken(
1661
+ creditFacade,
1662
+ underlyingToken,
1663
+ import_constants.MAX_UINT256,
1664
+ withdrawTo
1665
+ )
1666
+ );
1667
+ }
1668
+ break;
1669
+ }
1670
+ default: {
1671
+ const _exhaustive = op;
1672
+ throw new Error(
1673
+ `assembleCaUpdateCalls: unsupported operation ${_exhaustive}`
1674
+ );
1675
+ }
1676
+ }
1677
+ }
1678
+ if (routerGroupsConsumed !== routerCallGroups.length) {
1679
+ throw new Error(
1680
+ `assembleCaUpdateCalls: router call group mismatch (consumed ${routerGroupsConsumed}, got ${routerCallGroups.length})`
1681
+ );
1682
+ }
1683
+ return calls;
1684
+ }
1685
+ /**
1686
+ * {@inheritDoc ICreditAccountsService.executeCaUpdate}
1687
+ */
1688
+ async executeCaUpdate(creditAccount, calls, options) {
1689
+ const cm = this.sdk.marketRegister.findCreditManager(
1690
+ creditAccount.creditManager
1691
+ );
1692
+ const callsWithPrices = await this.#prependPriceUpdates(
1693
+ creditAccount.creditManager,
1694
+ calls,
1695
+ creditAccount,
1696
+ { ignoreReservePrices: options?.ignoreReservePrices }
1697
+ );
1698
+ const tx = await this.#multicallTx(
1699
+ cm,
1700
+ creditAccount.creditAccount,
1701
+ callsWithPrices
1702
+ );
1703
+ if (options?.ethAmount && options.ethAmount > 0n) {
1704
+ tx.value = options.ethAmount.toString(10);
1705
+ }
1706
+ return { tx, calls: callsWithPrices };
1707
+ }
1555
1708
  #prepareDisableQuotas(ca) {
1556
1709
  const calls = [];
1557
1710
  for (const { token, quota } of ca.tokens) {
@@ -1569,10 +1722,10 @@ class CreditAccountsServiceV310 extends import_base.SDKConstruct {
1569
1722
  return calls;
1570
1723
  }
1571
1724
  #prepareUpdateQuotas(creditFacade, { averageQuota, minQuota }) {
1572
- const minRecord = (0, import_router.assetsMap)(minQuota);
1725
+ const minRecord = new import_utils.AssetsMap(minQuota);
1573
1726
  const calls = averageQuota.map((q) => {
1574
- const minAsset = minRecord.get(q.token);
1575
- const min = minAsset && minAsset?.balance > 0 ? minAsset.balance : 0n;
1727
+ const minBalance = minRecord.get(q.token);
1728
+ const min = minBalance && minBalance > 0n ? minBalance : 0n;
1576
1729
  return {
1577
1730
  target: creditFacade,
1578
1731
  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);
@@ -70,6 +70,30 @@ class SecuritizeRWAFactory extends import_base.BaseContract {
70
70
  operators: [...t.operators]
71
71
  }));
72
72
  }
73
+ parseFunctionParamsV2(params, strict) {
74
+ switch (params.functionName) {
75
+ case "openCreditAccount": {
76
+ const [creditManager, calls, tokensToRegister, signaturesToCache] = params.args;
77
+ return {
78
+ creditManager,
79
+ calls: this.register.parseMultiCallV2([...calls], strict),
80
+ tokensToRegister,
81
+ signaturesToCache
82
+ };
83
+ }
84
+ case "multicall": {
85
+ const [creditAccount, calls, tokensToRegister, signaturesToCache] = params.args;
86
+ return {
87
+ creditAccount,
88
+ calls: this.register.parseMultiCallV2([...calls], strict),
89
+ tokensToRegister,
90
+ signaturesToCache
91
+ };
92
+ }
93
+ default:
94
+ return super.parseFunctionParamsV2(params, strict);
95
+ }
96
+ }
73
97
  /**
74
98
  * {@inheritDoc IRWAFactory.decodeInvestorData}
75
99
  */
@@ -125,6 +149,12 @@ class SecuritizeRWAFactory extends import_base.BaseContract {
125
149
  })
126
150
  };
127
151
  }
152
+ /**
153
+ * {@inheritDoc IRWAFactory.getTokens}
154
+ */
155
+ getTokens() {
156
+ return this.dsTokens.map((t) => t.address);
157
+ }
128
158
  /**
129
159
  * {@inheritDoc IRWAFactory.getInvestor}
130
160
  */
@@ -24,8 +24,11 @@ __export(types_exports, {
24
24
  module.exports = __toCommonJS(types_exports);
25
25
  var import_securitize = require("./securitize/index.js");
26
26
  const RWA_FACTORY_TYPES = [import_securitize.RWA_FACTORY_SECURITIZE];
27
- function isRWAFactory(factory, type) {
28
- return factory.contractType === type;
27
+ function isRWAFactory(contract, type) {
28
+ if (type) {
29
+ return contract.contractType === type;
30
+ }
31
+ return contract.contractType.startsWith("RWA_FACTORY::");
29
32
  }
30
33
  // Annotate the CommonJS export names for ESM import in node:
31
34
  0 && (module.exports = {
@@ -22,27 +22,11 @@ __export(IERC20ZapperContract_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(IERC20ZapperContract_exports);
24
24
  var import_iERC20Zapper = require("../../../abi/iERC20Zapper.js");
25
- var import_base = require("../../base/index.js");
25
+ var import_ZapperContract = require("./ZapperContract.js");
26
26
  const abi = import_iERC20Zapper.ierc20ZapperAbi;
27
- class IERC20ZapperContract extends import_base.BaseContract {
28
- pool;
29
- type;
30
- baseParams;
31
- tokenIn;
32
- tokenOut;
27
+ class IERC20ZapperContract extends import_ZapperContract.ZapperContract {
33
28
  constructor(sdk, data) {
34
- super(sdk, {
35
- addr: data.baseParams.addr,
36
- abi,
37
- name: `ERC20Zapper(${sdk.labelAddress(data.baseParams.addr)})`,
38
- version: data.baseParams.version,
39
- contractType: data.baseParams.contractType
40
- });
41
- this.pool = data.pool;
42
- this.type = data.type;
43
- this.baseParams = data.baseParams;
44
- this.tokenIn = data.tokenIn;
45
- this.tokenOut = data.tokenOut;
29
+ super(sdk, data, abi, "ERC20Zapper");
46
30
  }
47
31
  /**
48
32
  * Deposits ERC20 tokens into the pool via this zapper.
@@ -72,25 +56,6 @@ class IERC20ZapperContract extends import_base.BaseContract {
72
56
  args: [tokenInAmount, receiver, referralCode, deadline, v, r, s]
73
57
  });
74
58
  }
75
- /**
76
- * Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
77
- */
78
- redeem(tokenInAmount, receiver) {
79
- return this.createRawTx({
80
- functionName: "redeem",
81
- args: [tokenInAmount, receiver]
82
- });
83
- }
84
- /**
85
- * Redeems pool shares via this zapper with an EIP-2612 permit signature,
86
- * skipping a separate approve transaction.
87
- */
88
- redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
89
- return this.createRawTx({
90
- functionName: "redeemWithPermit",
91
- args: [tokenInAmount, receiver, deadline, v, r, s]
92
- });
93
- }
94
59
  }
95
60
  // Annotate the CommonJS export names for ESM import in node:
96
61
  0 && (module.exports = {
@@ -22,27 +22,11 @@ __export(IETHZapperContract_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(IETHZapperContract_exports);
24
24
  var import_iETHZapper = require("../../../abi/iETHZapper.js");
25
- var import_base = require("../../base/index.js");
25
+ var import_ZapperContract = require("./ZapperContract.js");
26
26
  const abi = import_iETHZapper.iethZapperAbi;
27
- class IETHZapperContract extends import_base.BaseContract {
28
- pool;
29
- type;
30
- baseParams;
31
- tokenIn;
32
- tokenOut;
27
+ class IETHZapperContract extends import_ZapperContract.ZapperContract {
33
28
  constructor(sdk, data) {
34
- super(sdk, {
35
- addr: data.baseParams.addr,
36
- abi,
37
- name: `ETHZapper(${sdk.labelAddress(data.baseParams.addr)})`,
38
- version: data.baseParams.version,
39
- contractType: data.baseParams.contractType
40
- });
41
- this.pool = data.pool;
42
- this.type = data.type;
43
- this.baseParams = data.baseParams;
44
- this.tokenIn = data.tokenIn;
45
- this.tokenOut = data.tokenOut;
29
+ super(sdk, data, abi, "ETHZapper");
46
30
  }
47
31
  /**
48
32
  * Deposits native ETH into the pool via this zapper.
@@ -63,25 +47,6 @@ class IETHZapperContract extends import_base.BaseContract {
63
47
  args: [receiver, referralCode]
64
48
  });
65
49
  }
66
- /**
67
- * Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
68
- */
69
- redeem(tokenInAmount, receiver) {
70
- return this.createRawTx({
71
- functionName: "redeem",
72
- args: [tokenInAmount, receiver]
73
- });
74
- }
75
- /**
76
- * Redeems pool shares via this zapper with an EIP-2612 permit signature,
77
- * skipping a separate approve transaction.
78
- */
79
- redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
80
- return this.createRawTx({
81
- functionName: "redeemWithPermit",
82
- args: [tokenInAmount, receiver, deadline, v, r, s]
83
- });
84
- }
85
50
  }
86
51
  // Annotate the CommonJS export names for ESM import in node:
87
52
  0 && (module.exports = {
@@ -0,0 +1,106 @@
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 ZapperContract_exports = {};
20
+ __export(ZapperContract_exports, {
21
+ ZapperContract: () => ZapperContract
22
+ });
23
+ module.exports = __toCommonJS(ZapperContract_exports);
24
+ var import_iZapper = require("../../../abi/iZapper.js");
25
+ var import_base = require("../../base/index.js");
26
+ var import_errors = require("./errors.js");
27
+ class ZapperContract extends import_base.BaseContract {
28
+ sdk;
29
+ pool;
30
+ type;
31
+ baseParams;
32
+ tokenIn;
33
+ tokenOut;
34
+ constructor(sdk, data, abi = import_iZapper.iZapperAbi, namePrefix = "Zapper") {
35
+ super(sdk, {
36
+ addr: data.baseParams.addr,
37
+ abi,
38
+ name: `${namePrefix}(${sdk.labelAddress(data.baseParams.addr)})`,
39
+ version: data.baseParams.version,
40
+ contractType: data.baseParams.contractType
41
+ });
42
+ this.sdk = sdk;
43
+ this.pool = data.pool;
44
+ this.type = data.type;
45
+ this.baseParams = data.baseParams;
46
+ this.tokenIn = data.tokenIn;
47
+ this.tokenOut = data.tokenOut;
48
+ }
49
+ /**
50
+ * Decodes zapper calldata into {@link ParsedZapperOperation}.
51
+ * Throws {@link UnsupportedZapperFunctionError} for unknown selectors.
52
+ */
53
+ parseOperation(calldata, value) {
54
+ const parsed = this.parseFunctionDataV2(calldata);
55
+ const { rawArgs } = parsed;
56
+ const pool = this.pool;
57
+ const zapper = this.address;
58
+ const underlying = this.sdk.marketRegister.findByPool(pool).underlying;
59
+ const receiver = rawArgs.receiver;
60
+ if (parsed.functionName.startsWith("deposit")) {
61
+ return {
62
+ operation: "Deposit",
63
+ pool,
64
+ zapper,
65
+ receiver,
66
+ assets: rawArgs.tokenInAmount ?? value ?? 0n,
67
+ underlying,
68
+ referralCode: rawArgs.referralCode
69
+ };
70
+ }
71
+ if (parsed.functionName.startsWith("redeem")) {
72
+ return {
73
+ operation: "Redeem",
74
+ pool,
75
+ zapper,
76
+ receiver,
77
+ shares: rawArgs.tokenOutAmount,
78
+ underlying
79
+ };
80
+ }
81
+ throw new import_errors.UnsupportedZapperFunctionError(zapper, parsed.functionName);
82
+ }
83
+ /**
84
+ * Redeems pool shares (diesel tokens) for the underlying asset via this zapper.
85
+ */
86
+ redeem(tokenInAmount, receiver) {
87
+ return this.createRawTx({
88
+ functionName: "redeem",
89
+ args: [tokenInAmount, receiver]
90
+ });
91
+ }
92
+ /**
93
+ * Redeems pool shares via this zapper with an EIP-2612 permit signature,
94
+ * skipping a separate approve transaction.
95
+ */
96
+ redeemWithPermit(tokenInAmount, receiver, deadline, v, r, s) {
97
+ return this.createRawTx({
98
+ functionName: "redeemWithPermit",
99
+ args: [tokenInAmount, receiver, deadline, v, r, s]
100
+ });
101
+ }
102
+ }
103
+ // Annotate the CommonJS export names for ESM import in node:
104
+ 0 && (module.exports = {
105
+ ZapperContract
106
+ });
@@ -21,23 +21,31 @@ __export(createZapper_exports, {
21
21
  createZapper: () => createZapper
22
22
  });
23
23
  module.exports = __toCommonJS(createZapper_exports);
24
+ var import_utils = require("../../utils/index.js");
24
25
  var import_IERC20ZapperContract = require("./IERC20ZapperContract.js");
25
26
  var import_IETHZapperContract = require("./IETHZapperContract.js");
26
- var import_Zapper = require("./Zapper.js");
27
+ var import_ZapperContract = require("./ZapperContract.js");
27
28
  function createZapper(sdk, data) {
29
+ const existing = sdk.getContract(data.baseParams.addr);
30
+ if (existing) {
31
+ return existing;
32
+ }
28
33
  if (data.type === "base") {
29
- const contractType = import_Zapper.Zapper.contractType(data.baseParams);
34
+ const contractType = (0, import_utils.bytes32ToString)(data.baseParams.contractType);
30
35
  switch (contractType) {
31
36
  case "ZAPPER::ERC4626_UNDERLYING":
32
37
  return new import_IERC20ZapperContract.IERC20ZapperContract(sdk, data);
33
38
  case "ZAPPER::WETH_DEPOSIT":
34
39
  return new import_IETHZapperContract.IETHZapperContract(sdk, data);
35
40
  default:
41
+ if (sdk.strictContractTypes) {
42
+ throw new Error(`Unknown zapper contract type: ${contractType}`);
43
+ }
36
44
  sdk.logger?.warn(`Unknown zapper contract type: ${contractType}`);
37
- return new import_Zapper.Zapper(data);
45
+ return new import_ZapperContract.ZapperContract(sdk, data);
38
46
  }
39
47
  }
40
- return new import_Zapper.Zapper(data);
48
+ return new import_ZapperContract.ZapperContract(sdk, data);
41
49
  }
42
50
  // Annotate the CommonJS export names for ESM import in node:
43
51
  0 && (module.exports = {
@@ -16,32 +16,22 @@ 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 errors_exports = {};
20
+ __export(errors_exports, {
21
+ UnsupportedZapperFunctionError: () => UnsupportedZapperFunctionError
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);
39
- }
40
- static contractType(baseParams) {
41
- return (0, import_utils.bytes32ToString)(baseParams.contractType);
23
+ module.exports = __toCommonJS(errors_exports);
24
+ class UnsupportedZapperFunctionError extends Error {
25
+ zapper;
26
+ functionName;
27
+ constructor(zapper, functionName) {
28
+ super(`unsupported zapper function "${functionName}" on ${zapper}`);
29
+ this.name = "UnsupportedZapperFunctionError";
30
+ this.zapper = zapper;
31
+ this.functionName = functionName;
42
32
  }
43
33
  }
44
34
  // Annotate the CommonJS export names for ESM import in node:
45
35
  0 && (module.exports = {
46
- Zapper
36
+ UnsupportedZapperFunctionError
47
37
  });