@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
@@ -12,6 +12,7 @@ import {
12
12
  ADDRESS_0X0,
13
13
  AddressMap,
14
14
  AddressSet,
15
+ AssetsMap,
15
16
  childLogger,
16
17
  MAX_UINT256,
17
18
  PERCENTAGE_FACTOR,
@@ -373,7 +374,7 @@ class AccountOpener extends SDKConstruct {
373
374
  }
374
375
  async #depositIntoPools(targets) {
375
376
  this.#logger?.debug("checking and topping up pools if necessary");
376
- const minAvailableByPool = {};
377
+ const minAvailableByPool = new AssetsMap();
377
378
  for (let i = 0; i < targets.length; i++) {
378
379
  const t = targets[i];
379
380
  const leverage = this.#getLeverage(t);
@@ -381,14 +382,14 @@ class AccountOpener extends SDKConstruct {
381
382
  const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / PERCENTAGE_FACTOR;
382
383
  let amount = minDebt * (leverage - PERCENTAGE_FACTOR) / PERCENTAGE_FACTOR * this.#poolDepositMultiplier / PERCENTAGE_FACTOR;
383
384
  amount = amount > cm.creditFacade.maxDebt ? cm.creditFacade.maxDebt : amount;
384
- minAvailableByPool[cm.pool] = (minAvailableByPool[cm.pool] ?? 0n) + amount;
385
+ minAvailableByPool.inc(cm.pool, amount);
385
386
  this.#logger?.debug(
386
387
  `target #${i + 1} (${this.labelAddress(t.target)}) needs ${this.sdk.tokensMeta.formatBN(cm.underlying, amount, { symbol: true })} in pool (leverage: ${Number(leverage / PERCENTAGE_FACTOR)}%)`
387
388
  );
388
389
  }
389
390
  const deposits = [];
390
- const claims = new AddressMap();
391
- for (const [p, minAvailable] of Object.entries(minAvailableByPool)) {
391
+ const claims = new AssetsMap();
392
+ for (const [p, minAvailable] of minAvailableByPool.entries()) {
392
393
  const market = this.sdk.marketRegister.findByPool(p);
393
394
  const pool = market.pool.pool;
394
395
  let diff = minAvailable - pool.availableLiquidity;
@@ -405,9 +406,7 @@ class AccountOpener extends SDKConstruct {
405
406
  );
406
407
  if (diff > 0n) {
407
408
  deposits.push([pool, diff]);
408
- let claim = claims.get(pool.underlying) ?? 0n;
409
- claim += diff * PERCENTAGE_FACTOR / 8950n;
410
- claims.upsert(pool.underlying, claim);
409
+ claims.inc(pool.underlying, diff * PERCENTAGE_FACTOR / 8950n);
411
410
  }
412
411
  }
413
412
  const depositor = await this.#getDepositor();
@@ -564,18 +563,14 @@ class AccountOpener extends SDKConstruct {
564
563
  async #prepareBorrower(targets) {
565
564
  const borrower = await this.#getBorrower();
566
565
  const degenNFTS = {};
567
- const claims = new AddressMap();
566
+ const claims = new AssetsMap();
568
567
  for (const target of targets) {
569
568
  const cm = this.sdk.marketRegister.findCreditManager(
570
569
  target.creditManager
571
570
  );
572
- const market = this.sdk.marketRegister.findByCreditManager(
573
- target.creditManager
574
- );
575
571
  const { degenNFT } = cm.creditFacade;
576
572
  const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / PERCENTAGE_FACTOR;
577
- const claim = claims.get(cm.underlying) ?? 0n;
578
- claims.upsert(cm.underlying, claim + minDebt * 11n / 10n);
573
+ claims.inc(cm.underlying, minDebt * 11n / 10n);
579
574
  if (isAddress(degenNFT) && degenNFT !== ADDRESS_0X0) {
580
575
  degenNFTS[degenNFT] = (degenNFTS[degenNFT] ?? 0) + 1;
581
576
  }
@@ -23,6 +23,7 @@ export * from "./replaceStorage.js";
23
23
  export * from "./resilientTransport.js";
24
24
  export * from "./transports.js";
25
25
  export * from "./types.js";
26
+ export * from "./verifyTestnet.js";
26
27
  export {
27
28
  isRangeError,
28
29
  logSplitterTransport
@@ -0,0 +1,27 @@
1
+ import { iOnchainExecutionIdAbi } from "./abi.js";
2
+ const ONCHAIN_EXECUTION_ID_ADDRESS = "0x34131bc13eaa4ef5f98c2a423f93bc88d6ee01ba";
3
+ async function verifyTestnet(client, expected) {
4
+ try {
5
+ const { deployer, executionId, forkAlias } = await client.readContract({
6
+ abi: iOnchainExecutionIdAbi,
7
+ address: ONCHAIN_EXECUTION_ID_ADDRESS,
8
+ functionName: "info"
9
+ });
10
+ if (deployer !== "anvil-manager") {
11
+ return false;
12
+ }
13
+ if ("executionId" in expected && expected.executionId && expected.executionId !== executionId) {
14
+ return false;
15
+ }
16
+ if ("alias" in expected && expected.alias && expected.alias !== forkAlias) {
17
+ return false;
18
+ }
19
+ return true;
20
+ } catch {
21
+ return false;
22
+ }
23
+ }
24
+ export {
25
+ ONCHAIN_EXECUTION_ID_ADDRESS,
26
+ verifyTestnet
27
+ };
@@ -1,10 +1,12 @@
1
1
  import { AbstractAdapterContract } from "../plugins/adapters/index.js";
2
+ import {
3
+ extractAdapterCallTraces
4
+ } from "../preview/trace/index.js";
2
5
  import { classifyMulticallOperations } from "./classifyMulticallOperations.js";
3
- import { extractProtocolCalls } from "./extractProtocolCalls.js";
4
6
  function assembleOperations(input) {
5
7
  const {
6
8
  facadeCalls,
7
- executeResults,
9
+ executeTransfers,
8
10
  register,
9
11
  underlying,
10
12
  liquidationRemainingFunds,
@@ -19,7 +21,7 @@ function assembleOperations(input) {
19
21
  return assemblePartialLiquidation(fc);
20
22
  }
21
23
  const count = countAdapterCalls(fc.innerCalls, register);
22
- const sliced = executeResults.slice(executeOffset, executeOffset + count);
24
+ const sliced = executeTransfers.slice(executeOffset, executeOffset + count);
23
25
  executeOffset += count;
24
26
  const withdrawCount = countWithdrawCollateralCalls(fc.innerCalls);
25
27
  const slicedWithdrawEvents = withdrawCollateralEvents.slice(
@@ -27,11 +29,11 @@ function assembleOperations(input) {
27
29
  withdrawOffset + withdrawCount
28
30
  );
29
31
  withdrawOffset += withdrawCount;
30
- const protocolCalldatas = extractProtocolCalls(fc.trace, sliced);
32
+ const adapterTraces = extractAdapterCallTraces(fc.trace);
31
33
  const multicall = classifyMulticallOperations({
32
34
  innerCalls: fc.innerCalls,
33
- executeResults: sliced,
34
- protocolCalldatas,
35
+ executeTransfers: sliced,
36
+ adapterTraces,
35
37
  register,
36
38
  creditAccount: fc.creditAccount,
37
39
  underlying,
@@ -8,12 +8,12 @@ import {
8
8
  TransferAlignmentError,
9
9
  UnknownAdapterError,
10
10
  WithdrawCollateralAlignmentError
11
- } from "./errors.js";
11
+ } from "../preview/trace/index.js";
12
12
  function classifyMulticallOperations(input) {
13
13
  const {
14
14
  innerCalls,
15
- executeResults,
16
- protocolCalldatas,
15
+ executeTransfers,
16
+ adapterTraces,
17
17
  register,
18
18
  creditAccount,
19
19
  underlying,
@@ -28,20 +28,28 @@ function classifyMulticallOperations(input) {
28
28
  const contract = register.getContract(call.target);
29
29
  if (contract instanceof AbstractAdapterContract) {
30
30
  const idx = transferIdx++;
31
- const executeResult = executeResults[idx];
32
- if (!executeResult) {
33
- throw new TransferAlignmentError(executeResults.length, transferIdx);
31
+ const transfers2 = executeTransfers[idx];
32
+ if (!transfers2) {
33
+ throw new TransferAlignmentError(executeTransfers.length, transferIdx);
34
34
  }
35
- const { transfers: transfers2, targetContract: targetContract2 } = executeResult;
36
- const protocolCalldata = protocolCalldatas[idx];
37
- const partial = contract.parseAdapterOperation(
35
+ const protocol = contract.parseProtocolCall(adapterTraces[idx], strict);
36
+ const legacy = contract.classifyLegacyOperation(
38
37
  call,
39
- transfers2,
40
- creditAccount,
41
- protocolCalldata,
42
- strict
38
+ toNetTransfers(transfers2, creditAccount)
43
39
  );
44
- if (partial) result.push({ ...partial, protocol: targetContract2 });
40
+ result.push({
41
+ operation: "Execute",
42
+ adapter: call.target,
43
+ adapterType: call.contractType,
44
+ version: call.version,
45
+ label: call.label,
46
+ adapterFunctionName: call.functionName,
47
+ adapterArgs: call.rawArgs,
48
+ calldata: call.calldata,
49
+ protocol,
50
+ transfers: transfers2,
51
+ legacy
52
+ });
45
53
  continue;
46
54
  }
47
55
  if (contract !== void 0) {
@@ -60,23 +68,23 @@ function classifyMulticallOperations(input) {
60
68
  throw new UnknownAdapterError(call.target);
61
69
  }
62
70
  const unknownIdx = transferIdx++;
63
- const unknownResult = executeResults[unknownIdx];
64
- if (!unknownResult) {
65
- throw new TransferAlignmentError(executeResults.length, transferIdx);
71
+ const transfers = executeTransfers[unknownIdx];
72
+ if (!transfers) {
73
+ throw new TransferAlignmentError(executeTransfers.length, transferIdx);
66
74
  }
67
- const { transfers, targetContract } = unknownResult;
68
75
  const netTransfers = toNetTransfers(transfers, creditAccount);
69
76
  result.push({
70
77
  operation: "Execute",
71
78
  adapter: call.target,
72
- protocol: targetContract,
73
79
  adapterType: call.contractType,
74
80
  version: call.version,
75
81
  label: call.label,
76
82
  adapterFunctionName: call.functionName,
77
83
  adapterArgs: call.rawArgs,
78
- protocolFunctionName: call.functionName,
79
- protocolArgs: call.rawArgs,
84
+ calldata: call.calldata,
85
+ // Unknown adapter (non-strict): we have no ABI to decode the protocol
86
+ // call, so `protocol` is left absent rather than filled with placeholders.
87
+ protocol: void 0,
80
88
  transfers,
81
89
  legacy: {
82
90
  operation: "Swap",
@@ -84,8 +92,8 @@ function classifyMulticallOperations(input) {
84
92
  }
85
93
  });
86
94
  }
87
- if (transferIdx !== executeResults.length) {
88
- throw new TransferAlignmentError(executeResults.length, transferIdx);
95
+ if (transferIdx !== executeTransfers.length) {
96
+ throw new TransferAlignmentError(executeTransfers.length, transferIdx);
89
97
  }
90
98
  if (withdrawCollateralEvents && withdrawCollateralEvents.length > 0 && withdrawIdx !== withdrawCollateralEvents.length) {
91
99
  throw new WithdrawCollateralAlignmentError(
@@ -1,4 +1,3 @@
1
- export * from "./inner-operations.js";
2
1
  export * from "./mapOperations.js";
3
2
  import { parseCreditAccountTransaction } from "./parseCreditAccountTransaction.js";
4
3
  export * from "./populateContractsRegister.js";
@@ -12,6 +12,13 @@ function mapInnerOperation(op, visitor, ctx) {
12
12
  return visitor.WithdrawCollateral(op, ctx);
13
13
  case "UpdateQuota":
14
14
  return visitor.UpdateQuota(op, ctx);
15
+ // The history classifier never emits other InnerOperation variants
16
+ // (e.g. StoreExpectedBalances/CompareBalances, which it drops), so this
17
+ // guards against silently returning undefined if that ever changes.
18
+ default:
19
+ throw new Error(
20
+ `unexpected inner operation: ${op.operation}`
21
+ );
15
22
  }
16
23
  }
17
24
  function mapOuterOperation(op, visitor) {
@@ -1,6 +1,5 @@
1
+ import { extractTransfers, findFacadeCalls } from "../preview/trace/index.js";
1
2
  import { assembleOperations } from "./assembleOperations.js";
2
- import { extractTransfers } from "./extractTransfers.js";
3
- import { findFacadeCalls } from "./findFacadeCalls.js";
4
3
  function parseCreditAccountTransaction(input) {
5
4
  const {
6
5
  trace,
@@ -25,7 +24,7 @@ function parseCreditAccountTransaction(input) {
25
24
  strict
26
25
  );
27
26
  const {
28
- executeResults,
27
+ executeTransfers,
29
28
  directTransfers,
30
29
  liquidationRemainingFunds,
31
30
  phantomTokens,
@@ -40,7 +39,7 @@ function parseCreditAccountTransaction(input) {
40
39
  };
41
40
  const facadeOps = assembleOperations({
42
41
  facadeCalls,
43
- executeResults,
42
+ executeTransfers,
44
43
  register,
45
44
  underlying,
46
45
  liquidationRemainingFunds,
@@ -24,7 +24,11 @@ function createLegacyVisitor(params) {
24
24
  blockNum: ctx.blockNumber,
25
25
  timestamp: ctx.timestamp,
26
26
  sessionId: params.sessionId,
27
- protocol: op.protocol
27
+ // `protocol` may be absent (migrator adapter, unknown adapter in
28
+ // non-strict mode, or undecodable calldata). The deprecated charts
29
+ // output still needs an address, so fall back to the on-chain adapter
30
+ // address, which is the closest meaningful value.
31
+ protocol: op.protocol?.contract ?? op.adapter
28
32
  };
29
33
  },
30
34
  IncreaseBorrowedAmount(op, ctx) {
@@ -0,0 +1,119 @@
1
+ const iConvexV1BoosterAdapterAbi = [
2
+ {
3
+ type: "function",
4
+ inputs: [],
5
+ name: "contractType",
6
+ outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
7
+ stateMutability: "view"
8
+ },
9
+ {
10
+ type: "function",
11
+ inputs: [],
12
+ name: "creditManager",
13
+ outputs: [{ name: "", internalType: "address", type: "address" }],
14
+ stateMutability: "view"
15
+ },
16
+ {
17
+ type: "function",
18
+ inputs: [
19
+ { name: "_pid", internalType: "uint256", type: "uint256" },
20
+ { name: "", internalType: "uint256", type: "uint256" },
21
+ { name: "_stake", internalType: "bool", type: "bool" }
22
+ ],
23
+ name: "deposit",
24
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
25
+ stateMutability: "nonpayable"
26
+ },
27
+ {
28
+ type: "function",
29
+ inputs: [
30
+ { name: "_pid", internalType: "uint256", type: "uint256" },
31
+ { name: "leftoverAmount", internalType: "uint256", type: "uint256" },
32
+ { name: "_stake", internalType: "bool", type: "bool" }
33
+ ],
34
+ name: "depositDiff",
35
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
36
+ stateMutability: "nonpayable"
37
+ },
38
+ {
39
+ type: "function",
40
+ inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
41
+ name: "pidToConvexToken",
42
+ outputs: [{ name: "", internalType: "address", type: "address" }],
43
+ stateMutability: "view"
44
+ },
45
+ {
46
+ type: "function",
47
+ inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
48
+ name: "pidToCurveToken",
49
+ outputs: [{ name: "", internalType: "address", type: "address" }],
50
+ stateMutability: "view"
51
+ },
52
+ {
53
+ type: "function",
54
+ inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
55
+ name: "pidToPhantomToken",
56
+ outputs: [{ name: "", internalType: "address", type: "address" }],
57
+ stateMutability: "view"
58
+ },
59
+ {
60
+ type: "function",
61
+ inputs: [],
62
+ name: "serialize",
63
+ outputs: [{ name: "serializedData", internalType: "bytes", type: "bytes" }],
64
+ stateMutability: "view"
65
+ },
66
+ {
67
+ type: "function",
68
+ inputs: [],
69
+ name: "targetContract",
70
+ outputs: [{ name: "", internalType: "address", type: "address" }],
71
+ stateMutability: "view"
72
+ },
73
+ {
74
+ type: "function",
75
+ inputs: [],
76
+ name: "updateSupportedPids",
77
+ outputs: [],
78
+ stateMutability: "nonpayable"
79
+ },
80
+ {
81
+ type: "function",
82
+ inputs: [],
83
+ name: "version",
84
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
85
+ stateMutability: "view"
86
+ },
87
+ {
88
+ type: "function",
89
+ inputs: [
90
+ { name: "_pid", internalType: "uint256", type: "uint256" },
91
+ { name: "", internalType: "uint256", type: "uint256" }
92
+ ],
93
+ name: "withdraw",
94
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
95
+ stateMutability: "nonpayable"
96
+ },
97
+ {
98
+ type: "function",
99
+ inputs: [
100
+ { name: "_pid", internalType: "uint256", type: "uint256" },
101
+ { name: "leftoverAmount", internalType: "uint256", type: "uint256" }
102
+ ],
103
+ name: "withdrawDiff",
104
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
105
+ stateMutability: "nonpayable"
106
+ },
107
+ {
108
+ type: "event",
109
+ anonymous: false,
110
+ inputs: [
111
+ { name: "pid", internalType: "uint256", type: "uint256", indexed: true }
112
+ ],
113
+ name: "AddSupportedPid"
114
+ },
115
+ { type: "error", inputs: [], name: "UnsupportedPidException" }
116
+ ];
117
+ export {
118
+ iConvexV1BoosterAdapterAbi
119
+ };
@@ -1,5 +1,6 @@
1
1
  export * from "./actionAbi.js";
2
2
  export * from "./conctructorAbi.js";
3
+ export * from "./iConvexV1BoosterAdapter.js";
3
4
  export * from "./securitize/index.js";
4
5
  export * from "./targetContractAbi.js";
5
6
  export * from "./utils.js";
@@ -3,13 +3,16 @@ import {
3
3
  decodeFunctionData,
4
4
  zeroAddress
5
5
  } from "viem";
6
+ import {
7
+ resolveProtocolCall
8
+ } from "../../../common-utils/utils/trace.js";
6
9
  import {
7
10
  BaseContract,
8
11
  functionArgsToRecord,
9
12
  getFunctionSignature,
10
13
  MissingSerializedParamsError
11
14
  } from "../../../sdk/index.js";
12
- import { swapFromTransfers, toNetTransfers } from "../transferHelpers.js";
15
+ import { swapFromTransfers } from "../transferHelpers.js";
13
16
  class AbstractAdapterContract extends BaseContract {
14
17
  #targetContract;
15
18
  #creditManager;
@@ -50,45 +53,33 @@ class AbstractAdapterContract extends BaseContract {
50
53
  };
51
54
  }
52
55
  /**
53
- * Builds an {@link AdapterOperation} from a parsed call and ordered transfer entries.
56
+ * Decodes the protocol-level call (target contract + function name + args)
57
+ * performed by this adapter, recovered from its adapter-level call trace.
54
58
  *
55
- * Returns `PartialBy<AdapterOperation, "targetContract">` because the adapter
56
- * may not have `targetContract` (adapters created without SDK do not have serializedParams)
59
+ * Both the `targetContract` and the protocol calldata are taken from the
60
+ * execution trace.
57
61
  *
58
- * @param protocolCalldata Raw calldata of the actual CALL to targetContract, extracted from trace
59
- * @param strict When true, throws if protocol ABI is missing or decode fails
60
- */
61
- parseAdapterOperation(parsed, transfers, creditAccount, protocolCalldata, strict) {
62
- const netTransfers = toNetTransfers(transfers, creditAccount);
63
- const protocol = this.parseProtocolCall(protocolCalldata, strict);
64
- return {
65
- operation: "Execute",
66
- adapter: this.address,
67
- protocol: this.#targetContract,
68
- adapterType: this.adapterType,
69
- version: this.version,
70
- label: parsed.label,
71
- adapterFunctionName: parsed.functionName,
72
- adapterArgs: parsed.rawArgs,
73
- ...protocol,
74
- transfers,
75
- legacy: this.classifyLegacyOperation(parsed, netTransfers)
76
- };
77
- }
78
- /**
79
- * Decodes protocol-level function name and args from the raw calldata
80
- * sent to targetContract.
62
+ * Returns `undefined` (in non-strict mode) when no external protocol call can
63
+ * be recovered, in strict mode throws instead.
64
+ *
65
+ * @param trace Adapter-level call trace (a direct child of the facade trace)
66
+ * @param strict When true, throws instead of returning `undefined`
81
67
  */
82
- parseProtocolCall(calldata, strict) {
68
+ parseProtocolCall(trace, strict) {
69
+ const resolved = resolveProtocolCall(trace);
70
+ if (!resolved) {
71
+ if (strict) {
72
+ throw new Error("no external protocol call found in adapter trace");
73
+ }
74
+ return void 0;
75
+ }
76
+ const { contract, calldata } = resolved;
83
77
  const selector = calldata.slice(0, 10);
84
78
  if (this.protocolAbi.length === 0) {
85
79
  if (strict) {
86
80
  throw new Error(`Protocol ABI is missing for selector ${selector}`);
87
81
  }
88
- return {
89
- protocolFunctionName: `unknown function ${selector}`,
90
- protocolArgs: {}
91
- };
82
+ return void 0;
92
83
  }
93
84
  try {
94
85
  const decoded = decodeFunctionData({
@@ -96,12 +87,12 @@ class AbstractAdapterContract extends BaseContract {
96
87
  data: calldata
97
88
  });
98
89
  const functionName = getFunctionSignature(this.protocolAbi, calldata);
99
- const protocolArgs = functionArgsToRecord(
90
+ const functionArgs = functionArgsToRecord(
100
91
  this.protocolAbi,
101
92
  decoded.functionName,
102
93
  decoded.args
103
94
  );
104
- return { protocolFunctionName: functionName, protocolArgs };
95
+ return { contract, functionName, functionArgs };
105
96
  } catch (e) {
106
97
  if (strict) {
107
98
  throw new Error(
@@ -109,12 +100,45 @@ class AbstractAdapterContract extends BaseContract {
109
100
  { cause: e }
110
101
  );
111
102
  }
112
- return {
113
- protocolFunctionName: `unknown function ${selector}`,
114
- protocolArgs: {}
115
- };
103
+ return void 0;
116
104
  }
117
105
  }
106
+ /**
107
+ * Applies the balance changes implied by a router-generated diff-style
108
+ * adapter call to a map of credit-account token balances.
109
+ *
110
+ * @param balances - Token balances before the call. Mutated in place.
111
+ * @param calldata - Raw ABI-encoded adapter calldata.
112
+ * @throws When the calldata cannot be decoded or the adapter (or the
113
+ * specific function) has no balance-changes support.
114
+ */
115
+ previewBalanceChanges(balances, calldata) {
116
+ let decoded;
117
+ try {
118
+ decoded = decodeFunctionData({ abi: this.abi, data: calldata });
119
+ } catch (e) {
120
+ throw new Error(
121
+ `previewBalanceChanges: cannot decode selector ${calldata.slice(0, 10)} on ${this.contractType} adapter at ${this.address}`,
122
+ { cause: e }
123
+ );
124
+ }
125
+ const leftovers = this.decodeDiffLeftovers(decoded, balances);
126
+ for (const { tokenIn, leftoverAmount } of leftovers) {
127
+ balances.upsert(tokenIn, leftoverAmount);
128
+ }
129
+ }
130
+ /**
131
+ * Resolves which tokens the diff-style call spends down to which leftovers.
132
+ *
133
+ * @param decoded - The viem-decoded adapter call
134
+ * @param _balances - Token balances before the call
135
+ * @throws When the adapter (or the specific function) has no balance-changes support
136
+ */
137
+ decodeDiffLeftovers(decoded, _balances) {
138
+ throw new Error(
139
+ `previewBalanceChanges is not supported for ${decoded.functionName} on ${this.contractType} adapter at ${this.address}`
140
+ );
141
+ }
118
142
  /**
119
143
  * Classifies an adapter call into a {@link LegacyAdapterOperation} using the
120
144
  * parsed call and credit-account transfer deltas.
@@ -126,6 +150,8 @@ class AbstractAdapterContract extends BaseContract {
126
150
  * Override in protocol-specific subclasses for richer classification.
127
151
  *
128
152
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/account_operation.go#L238-L264
153
+ *
154
+ * @deprecated Eventually will be gone, exists to produce output that legacy UI can display
129
155
  */
130
156
  classifyLegacyOperation(_parsed, transfers) {
131
157
  const swap = swapFromTransfers(transfers);
@@ -0,0 +1,42 @@
1
+ import { classifyCurveOperation } from "../transferHelpers.js";
2
+ import { AbstractAdapterContract } from "./AbstractAdapter.js";
3
+ class AbstractCurveAdapterContract extends AbstractAdapterContract {
4
+ /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
5
+ classifyLegacyOperation(parsed, transfers) {
6
+ return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
7
+ }
8
+ decodeDiffLeftovers(decoded, balances) {
9
+ const { functionName, args } = decoded;
10
+ switch (functionName) {
11
+ case "exchange_diff": {
12
+ const [i, , leftoverAmount] = args;
13
+ return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
14
+ }
15
+ case "add_diff_liquidity_one_coin": {
16
+ const [leftoverAmount, i] = args;
17
+ return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
18
+ }
19
+ case "remove_diff_liquidity_one_coin": {
20
+ const [leftoverAmount] = args;
21
+ return [{ tokenIn: this.lpToken, leftoverAmount }];
22
+ }
23
+ default:
24
+ return super.decodeDiffLeftovers(decoded, balances);
25
+ }
26
+ }
27
+ /**
28
+ * Resolves a Curve pool coin index to its token address.
29
+ *
30
+ * @throws When the index is out of range for the pool.
31
+ */
32
+ curveCoin(i) {
33
+ const token = this.tokens[Number(i)];
34
+ if (!token) {
35
+ throw new Error(`curve coin index ${i} is out of range`);
36
+ }
37
+ return token;
38
+ }
39
+ }
40
+ export {
41
+ AbstractCurveAdapterContract
42
+ };
@@ -12,6 +12,15 @@ class AccountMigratorAdapterContract extends AbstractAdapterContract {
12
12
  `classifyLegacyOperation is not supported for legacy adapter: ${this.contractType}`
13
13
  );
14
14
  }
15
+ /**
16
+ * The account-migrator adapter's `execute` targets the migrator bot, not an
17
+ * external protocol, so there is no protocol-level call to recover. Returning
18
+ * `undefined` keeps the `protocol` field aligned with its external-protocol
19
+ * semantics (see {@link TraceAdapterExt}).
20
+ */
21
+ parseProtocolCall(_trace, _strict) {
22
+ return void 0;
23
+ }
15
24
  }
16
25
  export {
17
26
  AccountMigratorAdapterContract