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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/cjs/common-utils/utils/index.js +2 -0
  2. package/dist/cjs/{history/trace-utils.js → common-utils/utils/trace.js} +62 -5
  3. package/dist/cjs/dev/abi.js +162 -6
  4. package/dist/cjs/dev/index.js +3 -1
  5. package/dist/cjs/dev/verifyTestnet.js +52 -0
  6. package/dist/cjs/history/assembleOperations.js +6 -6
  7. package/dist/cjs/history/classifyMulticallOperations.js +31 -25
  8. package/dist/cjs/history/index.js +0 -2
  9. package/dist/cjs/history/parseCreditAccountTransaction.js +5 -6
  10. package/dist/cjs/history/toLegacyOperation.js +5 -1
  11. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +25 -37
  12. package/dist/cjs/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -0
  13. package/dist/cjs/{history/internal-types.js → plugins/adapters/transfers.js} +2 -2
  14. package/dist/cjs/preview/index.js +28 -0
  15. package/dist/cjs/preview/package.json +1 -0
  16. package/dist/cjs/preview/parse/classifyInnerOperations.js +92 -0
  17. package/dist/cjs/preview/parse/errors.js +47 -0
  18. package/dist/cjs/preview/parse/extractExpectedBalanceChanges.js +48 -0
  19. package/dist/cjs/preview/parse/index.js +34 -0
  20. package/dist/cjs/preview/parse/parseFacadeOperationCalldata.js +115 -0
  21. package/dist/cjs/preview/parse/parseOperationCalldata.js +46 -0
  22. package/dist/cjs/preview/parse/parsePoolOperationCalldata.js +77 -0
  23. package/dist/cjs/{history/inner-operations.js → preview/parse/types-adapters.js} +2 -2
  24. package/dist/cjs/preview/parse/types-facades.js +16 -0
  25. package/dist/cjs/preview/parse/types-pools.js +16 -0
  26. package/dist/cjs/preview/parse/types.js +37 -0
  27. package/dist/cjs/preview/prerequisites/AllowancePrerequisite.js +78 -0
  28. package/dist/cjs/preview/prerequisites/BalancePrerequisite.js +77 -0
  29. package/dist/cjs/preview/prerequisites/Prerequisite.js +85 -0
  30. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +187 -0
  31. package/dist/cjs/preview/prerequisites/index.js +34 -0
  32. package/dist/cjs/preview/prerequisites/prepareAction.js +48 -0
  33. package/dist/cjs/preview/prerequisites/runPrerequisites.js +71 -0
  34. package/dist/cjs/preview/prerequisites/types.js +16 -0
  35. package/dist/cjs/preview/simulate/constants.js +28 -0
  36. package/dist/cjs/preview/simulate/errors.js +98 -0
  37. package/dist/cjs/preview/simulate/extractERC20Transfers.js +47 -0
  38. package/dist/cjs/preview/simulate/holders.js +45 -0
  39. package/dist/cjs/preview/simulate/index.js +40 -0
  40. package/dist/cjs/preview/simulate/simulateFacadeOperation.js +30 -0
  41. package/dist/cjs/preview/simulate/simulateOperation.js +37 -0
  42. package/dist/cjs/preview/simulate/simulatePoolOpMulticall.js +155 -0
  43. package/dist/cjs/preview/simulate/simulatePoolOpV1.js +106 -0
  44. package/dist/cjs/preview/simulate/simulatePoolOperation.js +62 -0
  45. package/dist/cjs/preview/simulate/types.js +16 -0
  46. package/dist/cjs/{history → preview/trace}/errors.js +0 -26
  47. package/dist/cjs/preview/trace/extractAdapterCallTraces.js +58 -0
  48. package/dist/cjs/{history → preview/trace}/extractTransfers.js +9 -12
  49. package/dist/cjs/{history → preview/trace}/findFacadeCalls.js +3 -3
  50. package/dist/cjs/preview/trace/index.js +30 -0
  51. package/dist/cjs/preview/trace/types.js +16 -0
  52. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +154 -0
  53. package/dist/esm/common-utils/utils/index.js +1 -0
  54. package/dist/esm/common-utils/utils/trace.js +93 -0
  55. package/dist/esm/dev/abi.js +162 -6
  56. package/dist/esm/dev/index.js +1 -0
  57. package/dist/esm/dev/verifyTestnet.js +27 -0
  58. package/dist/esm/history/assembleOperations.js +8 -6
  59. package/dist/esm/history/classifyMulticallOperations.js +29 -23
  60. package/dist/esm/history/index.js +0 -1
  61. package/dist/esm/history/parseCreditAccountTransaction.js +3 -4
  62. package/dist/esm/history/toLegacyOperation.js +5 -1
  63. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +28 -38
  64. package/dist/esm/plugins/adapters/contracts/AccountMigratorAdapterContract.js +9 -0
  65. package/dist/esm/preview/index.js +4 -0
  66. package/dist/esm/preview/package.json +1 -0
  67. package/dist/esm/preview/parse/classifyInnerOperations.js +68 -0
  68. package/dist/esm/preview/parse/errors.js +22 -0
  69. package/dist/esm/preview/parse/extractExpectedBalanceChanges.js +24 -0
  70. package/dist/esm/preview/parse/index.js +7 -0
  71. package/dist/esm/preview/parse/parseFacadeOperationCalldata.js +91 -0
  72. package/dist/esm/preview/parse/parseOperationCalldata.js +25 -0
  73. package/dist/esm/preview/parse/parsePoolOperationCalldata.js +53 -0
  74. package/dist/esm/preview/parse/types-facades.js +0 -0
  75. package/dist/esm/preview/parse/types-pools.js +0 -0
  76. package/dist/esm/preview/parse/types.js +9 -0
  77. package/dist/esm/preview/prerequisites/AllowancePrerequisite.js +57 -0
  78. package/dist/esm/preview/prerequisites/BalancePrerequisite.js +56 -0
  79. package/dist/esm/preview/prerequisites/Prerequisite.js +63 -0
  80. package/dist/esm/preview/prerequisites/buildPrerequisites.js +163 -0
  81. package/dist/esm/preview/prerequisites/index.js +7 -0
  82. package/dist/esm/preview/prerequisites/prepareAction.js +23 -0
  83. package/dist/esm/preview/prerequisites/runPrerequisites.js +47 -0
  84. package/dist/esm/preview/prerequisites/types.js +0 -0
  85. package/dist/esm/preview/simulate/constants.js +4 -0
  86. package/dist/esm/preview/simulate/errors.js +75 -0
  87. package/dist/esm/preview/simulate/extractERC20Transfers.js +23 -0
  88. package/dist/esm/preview/simulate/holders.js +21 -0
  89. package/dist/esm/preview/simulate/index.js +12 -0
  90. package/dist/esm/preview/simulate/simulateFacadeOperation.js +6 -0
  91. package/dist/esm/preview/simulate/simulateOperation.js +13 -0
  92. package/dist/esm/preview/simulate/simulatePoolOpMulticall.js +130 -0
  93. package/dist/esm/preview/simulate/simulatePoolOpV1.js +82 -0
  94. package/dist/esm/preview/simulate/simulatePoolOperation.js +41 -0
  95. package/dist/esm/preview/simulate/types.js +0 -0
  96. package/dist/esm/{history → preview/trace}/errors.js +0 -24
  97. package/dist/esm/preview/trace/extractAdapterCallTraces.js +40 -0
  98. package/dist/esm/{history → preview/trace}/extractTransfers.js +9 -12
  99. package/dist/esm/{history → preview/trace}/findFacadeCalls.js +4 -2
  100. package/dist/esm/preview/trace/index.js +5 -0
  101. package/dist/esm/preview/trace/types.js +0 -0
  102. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +154 -0
  103. package/dist/types/common-utils/utils/index.d.ts +1 -0
  104. package/dist/types/common-utils/utils/trace.d.ts +73 -0
  105. package/dist/types/dev/abi.d.ts +98 -16
  106. package/dist/types/dev/index.d.ts +1 -0
  107. package/dist/types/dev/verifyTestnet.d.ts +24 -0
  108. package/dist/types/history/assembleOperations.d.ts +11 -6
  109. package/dist/types/history/classifyMulticallOperations.d.ts +21 -9
  110. package/dist/types/history/index.d.ts +0 -1
  111. package/dist/types/history/mapOperations.d.ts +7 -9
  112. package/dist/types/history/types.d.ts +22 -71
  113. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +16 -17
  114. package/dist/types/plugins/adapters/contracts/AccountMigratorAdapterContract.d.ts +10 -1
  115. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +1 -1
  116. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +1 -1
  117. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +1 -1
  118. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +1 -1
  119. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +1 -1
  120. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +1 -1
  121. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +1 -1
  122. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +1 -1
  123. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +1 -1
  124. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +1 -1
  125. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +1 -1
  126. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +1 -1
  127. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +1 -1
  128. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +1 -1
  129. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +1 -1
  130. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +1 -1
  131. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +1 -1
  132. package/dist/types/plugins/adapters/transferHelpers.d.ts +1 -1
  133. package/dist/types/plugins/adapters/transfers.d.ts +17 -0
  134. package/dist/types/plugins/adapters/types.d.ts +8 -46
  135. package/dist/types/preview/index.d.ts +4 -0
  136. package/dist/types/preview/parse/classifyInnerOperations.d.ts +21 -0
  137. package/dist/types/preview/parse/errors.d.ts +17 -0
  138. package/dist/types/preview/parse/extractExpectedBalanceChanges.d.ts +22 -0
  139. package/dist/types/preview/parse/index.d.ts +7 -0
  140. package/dist/types/preview/parse/parseFacadeOperationCalldata.d.ts +19 -0
  141. package/dist/types/preview/parse/parseOperationCalldata.d.ts +23 -0
  142. package/dist/types/preview/parse/parsePoolOperationCalldata.d.ts +17 -0
  143. package/dist/types/preview/parse/types-adapters.d.ts +69 -0
  144. package/dist/types/preview/parse/types-facades.d.ts +158 -0
  145. package/dist/types/preview/parse/types-pools.d.ts +55 -0
  146. package/dist/types/preview/parse/types.d.ts +44 -0
  147. package/dist/types/preview/prerequisites/AllowancePrerequisite.d.ts +24 -0
  148. package/dist/types/preview/prerequisites/BalancePrerequisite.d.ts +23 -0
  149. package/dist/types/preview/prerequisites/Prerequisite.d.ts +60 -0
  150. package/dist/types/preview/prerequisites/buildPrerequisites.d.ts +16 -0
  151. package/dist/types/preview/prerequisites/index.d.ts +7 -0
  152. package/dist/types/preview/prerequisites/prepareAction.d.ts +52 -0
  153. package/dist/types/preview/prerequisites/runPrerequisites.d.ts +12 -0
  154. package/dist/types/preview/prerequisites/types.d.ts +78 -0
  155. package/dist/types/preview/simulate/constants.d.ts +6 -0
  156. package/dist/types/preview/simulate/errors.d.ts +51 -0
  157. package/dist/types/preview/simulate/extractERC20Transfers.d.ts +11 -0
  158. package/dist/types/preview/simulate/holders.d.ts +7 -0
  159. package/dist/types/preview/simulate/index.d.ts +9 -0
  160. package/dist/types/preview/simulate/simulateFacadeOperation.d.ts +25 -0
  161. package/dist/types/preview/simulate/simulateOperation.d.ts +20 -0
  162. package/dist/types/preview/simulate/simulatePoolOpMulticall.d.ts +28 -0
  163. package/dist/types/preview/simulate/simulatePoolOpV1.d.ts +14 -0
  164. package/dist/types/preview/simulate/simulatePoolOperation.d.ts +8 -0
  165. package/dist/types/preview/simulate/types.d.ts +79 -0
  166. package/dist/types/{history → preview/trace}/errors.d.ts +0 -10
  167. package/dist/types/preview/trace/extractAdapterCallTraces.d.ts +23 -0
  168. package/dist/types/{history → preview/trace}/extractTransfers.d.ts +14 -5
  169. package/dist/types/{history → preview/trace}/findFacadeCalls.d.ts +3 -2
  170. package/dist/types/preview/trace/index.d.ts +5 -0
  171. package/dist/types/preview/trace/types.d.ts +21 -0
  172. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +21 -1
  173. package/dist/types/sdk/accounts/types.d.ts +82 -0
  174. package/package.json +6 -1
  175. package/dist/cjs/history/extractProtocolCalls.js +0 -53
  176. package/dist/esm/history/extractProtocolCalls.js +0 -32
  177. package/dist/esm/history/trace-utils.js +0 -36
  178. package/dist/types/history/extractProtocolCalls.d.ts +0 -8
  179. package/dist/types/history/inner-operations.d.ts +0 -57
  180. package/dist/types/history/internal-types.d.ts +0 -47
  181. package/dist/types/history/trace-utils.d.ts +0 -12
  182. /package/dist/esm/{history/inner-operations.js → plugins/adapters/transfers.js} +0 -0
  183. /package/dist/esm/{history/internal-types.js → preview/parse/types-adapters.js} +0 -0
@@ -0,0 +1,24 @@
1
+ import type { Address, PublicClient } from "viem";
2
+ /**
3
+ * Address is stable, contract deployed via create2
4
+ */
5
+ export declare const ONCHAIN_EXECUTION_ID_ADDRESS: Address;
6
+ export type VerifyTestnetParams = {
7
+ executionId: string;
8
+ } | {
9
+ alias: string;
10
+ } | {
11
+ executionId: string;
12
+ alias: string;
13
+ };
14
+ /**
15
+ * Tries to read the contract that is deployed on every Gearbox testnet
16
+ * and verify that we're on expected testnet.
17
+ *
18
+ * Used to check that wallet is using correct RPC for the testnet.
19
+ *
20
+ * @param client - Public client
21
+ * @param expected - Expected tesnet alias or execution id
22
+ * @returns True if we're on expected testnet
23
+ */
24
+ export declare function verifyTestnet(client: PublicClient, expected: VerifyTestnetParams): Promise<boolean>;
@@ -1,11 +1,16 @@
1
1
  import type { Address } from "viem";
2
+ import type { TokenTransfer } from "../preview/parse/index.js";
3
+ import { type FacadeParsedCall, type WithdrawCollateralEventInfo } from "../preview/trace/index.js";
2
4
  import type { AddressMap, ChainContractsRegister } from "../sdk/index.js";
3
- import type { WithdrawCollateralEventInfo } from "./extractTransfers.js";
4
- import type { ExecuteResult, FacadeParsedCall } from "./internal-types.js";
5
- import type { FacadeOperationMetadata, OuterFacadeOperation } from "./types.js";
5
+ import type { HistoryFacadeMetadata, OuterFacadeOperation } from "./types.js";
6
6
  export interface AssembleOperationsInput {
7
7
  facadeCalls: FacadeParsedCall[];
8
- executeResults: ExecuteResult[];
8
+ /**
9
+ * ERC-20 transfers grouped per facade `Execute` event, one inner array per
10
+ * Execute event across the whole transaction, in emission order. Sliced per
11
+ * facade call and consumed one inner array per adapter/unknown inner call.
12
+ */
13
+ executeTransfers: TokenTransfer[][];
9
14
  register: ChainContractsRegister;
10
15
  underlying: Address;
11
16
  liquidationRemainingFunds?: bigint;
@@ -17,8 +22,8 @@ export interface AssembleOperationsInput {
17
22
  * Combines parsed facade calls with per-Execute transfer data into
18
23
  * fully classified {@link OuterFacadeOperation} entries.
19
24
  *
20
- * The flat `executeResults` array (one entry per Execute event across
25
+ * The flat `executeTransfers` array (one inner array per Execute event across
21
26
  * the entire transaction) is sliced per facade call based on how many
22
27
  * adapter/unknown inner calls each one contains.
23
28
  */
24
- export declare function assembleOperations(input: AssembleOperationsInput): Omit<OuterFacadeOperation, keyof FacadeOperationMetadata>[];
29
+ export declare function assembleOperations(input: AssembleOperationsInput): Omit<OuterFacadeOperation, keyof HistoryFacadeMetadata>[];
@@ -1,12 +1,23 @@
1
- import { type Address, type Hex } from "viem";
1
+ import { type Address } from "viem";
2
+ import type { CallTrace } from "../common-utils/utils/trace.js";
3
+ import type { TokenTransfer } from "../preview/parse/index.js";
4
+ import { type WithdrawCollateralEventInfo } from "../preview/trace/index.js";
2
5
  import type { AddressMap, ChainContractsRegister, ParsedCallV2 } from "../sdk/index.js";
3
- import type { WithdrawCollateralEventInfo } from "./extractTransfers.js";
4
- import type { InnerOperation } from "./inner-operations.js";
5
- import type { ExecuteResult } from "./internal-types.js";
6
+ import type { InnerOperation } from "./types.js";
6
7
  export interface ClassifyMulticallOperationsInput {
7
8
  innerCalls: ParsedCallV2[];
8
- executeResults: ExecuteResult[];
9
- protocolCalldatas: Hex[];
9
+ /**
10
+ * ERC-20 transfers grouped per facade `Execute` event for this facade call,
11
+ * one inner array per Execute event, in order. One inner array is consumed
12
+ * per adapter/unknown inner call.
13
+ */
14
+ executeTransfers: TokenTransfer[][];
15
+ /**
16
+ * Adapter-level call traces (one per Execute event, in order) used to recover
17
+ * the protocol-level call for adapter inner calls. See
18
+ * `extractAdapterCallTraces`.
19
+ */
20
+ adapterTraces: CallTrace[];
10
21
  register: ChainContractsRegister;
11
22
  creditAccount: Address;
12
23
  underlying: Address;
@@ -17,9 +28,10 @@ export interface ClassifyMulticallOperationsInput {
17
28
  /**
18
29
  * Classifies each multicall inner call into a {@link InnerOperation}:
19
30
  *
20
- * - **Adapter calls** (target registered as an adapter): delegates to
21
- * `adapter.parseAdapterOperation()` and consumes the next entry from
22
- * `executeTransfers` (one Execute event per adapter call).
31
+ * - **Adapter calls** (target registered as an adapter): decodes the
32
+ * protocol-level call via `adapter.parseProtocolCall()`, classifies the
33
+ * legacy operation via `adapter.classifyLegacyOperation()`, and consumes the
34
+ * next entry from `executeTransfers` (one Execute event per adapter call).
23
35
  *
24
36
  * - **Facade self-calls** (`increaseDebt`, `updateQuota`, etc.): mapped
25
37
  * directly from `functionName` / `rawArgs`. No transfer consumed.
@@ -1,4 +1,3 @@
1
- export * from "./inner-operations.js";
2
1
  export * from "./mapOperations.js";
3
2
  export { parseCreditAccountTransaction } from "./parseCreditAccountTransaction.js";
4
3
  export * from "./populateContractsRegister.js";
@@ -1,18 +1,16 @@
1
- import type { AdapterOperation } from "../plugins/adapters/index.js";
2
- import type { AddCollateralOp, DecreaseDebtOp, IncreaseDebtOp, UpdateQuotaOp, WithdrawCollateralOp } from "./inner-operations.js";
3
- import type { CloseCreditAccountOperation, CreditAccountOperation, DirectTokenTransferOperation, FacadeOperationMetadata, LiquidateCreditAccountOperation, MulticallOperation, OpenCreditAccountOperation, PartialLiquidationOperation } from "./types.js";
1
+ import type { AdapterOperation, AddCollateralOp, CloseCreditAccountOperation, CreditAccountOperation, DecreaseDebtOp, DirectTokenTransferOperation, HistoryFacadeMetadata, IncreaseDebtOp, LiquidateCreditAccountOperation, MulticallOperation, OpenCreditAccountOperation, PartialLiquidationOperation, UpdateQuotaOp, WithdrawCollateralOp } from "./types.js";
4
2
  /**
5
3
  * Visitor that maps each operation node in a {@link CreditAccountOperation}
6
4
  * tree to a new representation.
7
5
  *
8
6
  */
9
7
  export interface OperationVisitor<TInner, TOuter> {
10
- Execute(op: AdapterOperation, ctx: FacadeOperationMetadata): TInner;
11
- IncreaseBorrowedAmount(op: IncreaseDebtOp, ctx: FacadeOperationMetadata): TInner;
12
- DecreaseBorrowedAmount(op: DecreaseDebtOp, ctx: FacadeOperationMetadata): TInner;
13
- AddCollateral(op: AddCollateralOp, ctx: FacadeOperationMetadata): TInner;
14
- WithdrawCollateral(op: WithdrawCollateralOp, ctx: FacadeOperationMetadata): TInner;
15
- UpdateQuota(op: UpdateQuotaOp, ctx: FacadeOperationMetadata): TInner;
8
+ Execute(op: AdapterOperation, ctx: HistoryFacadeMetadata): TInner;
9
+ IncreaseBorrowedAmount(op: IncreaseDebtOp, ctx: HistoryFacadeMetadata): TInner;
10
+ DecreaseBorrowedAmount(op: DecreaseDebtOp, ctx: HistoryFacadeMetadata): TInner;
11
+ AddCollateral(op: AddCollateralOp, ctx: HistoryFacadeMetadata): TInner;
12
+ WithdrawCollateral(op: WithdrawCollateralOp, ctx: HistoryFacadeMetadata): TInner;
13
+ UpdateQuota(op: UpdateQuotaOp, ctx: HistoryFacadeMetadata): TInner;
16
14
  DirectTokenTransfer(op: DirectTokenTransferOperation): TOuter;
17
15
  MultiCall(op: MulticallOperation, multicall: TInner[]): TOuter;
18
16
  OpenCreditAccount(op: OpenCreditAccountOperation, multicall: TInner[]): TOuter;
@@ -1,77 +1,28 @@
1
- import type { Address, Hex } from "viem";
2
- import type { InnerOperation } from "./inner-operations.js";
1
+ import type { LegacyAdapterOperation } from "../plugins/adapters/index.js";
2
+ import type { AdapterOperation as BaseAdapterOperation, CloseCreditAccountOperation as BaseCloseCreditAccountOperation, DirectTokenTransferOperation as BaseDirectTokenTransferOperation, InnerOperation as BaseInnerOperation, LiquidateCreditAccountOperation as BaseLiquidateCreditAccountOperation, MulticallOperation as BaseMulticallOperation, OpenCreditAccountOperation as BaseOpenCreditAccountOperation, PartialLiquidationOperation as BasePartialLiquidationOperation, FacadeOperationMetadata, OperationMetadata, TraceAdapterExt } from "../preview/parse/index.js";
3
+ export type { AddCollateralOp, DecreaseDebtOp, FacadeOperationMetadata, IncreaseDebtOp, InnerFacadeOperation, OperationMetadata, UpdateQuotaOp, WithdrawCollateralOp, } from "../preview/parse/index.js";
3
4
  /**
4
- * An ERC-20 Transfer into or out of the credit account that was not part of
5
- * any facade operation (multicall, liquidation, etc.).
6
- *
7
- * `from`/`to` are the raw transfer endpoints: an inbound transfer (manual
8
- * top-up / deposit) has `to` == the credit account, an outbound transfer
9
- * (direct withdrawal) has `from` == the credit account.
5
+ * History-specific adapter-operation extension: trace-derived data
6
+ * ({@link TraceAdapterExt}) plus the backward-compatible `legacy` classification
7
+ * used by charts_server serialization. The `legacy` field lives only in
8
+ * `history`; the base `preview` operations carry no `legacy`.
10
9
  */
11
- export interface DirectTransferInfo {
12
- token: Address;
13
- from: Address;
14
- to: Address;
15
- amount: bigint;
16
- }
17
- export interface OperationMetadata {
18
- txHash: Hex;
19
- blockNumber: number;
20
- timestamp: number;
21
- }
22
- export interface FacadeOperationMetadata extends OperationMetadata {
23
- creditManager: Address;
24
- creditFacade: Address;
25
- }
26
- export interface MulticallOperation extends FacadeOperationMetadata {
27
- operation: "MultiCall" | "BotMulticall";
28
- creditAccount: Address;
29
- multicall: InnerOperation[];
30
- }
31
- export interface OpenCreditAccountOperation extends FacadeOperationMetadata {
32
- operation: "OpenCreditAccount";
33
- creditAccount: Address;
34
- onBehalfOf: Address;
35
- referralCode: bigint;
36
- multicall: InnerOperation[];
37
- }
38
- export interface CloseCreditAccountOperation extends FacadeOperationMetadata {
39
- operation: "CloseCreditAccount";
40
- creditAccount: Address;
41
- multicall: InnerOperation[];
42
- }
43
- export interface LiquidateCreditAccountOperation extends FacadeOperationMetadata {
44
- operation: "LiquidateCreditAccount";
45
- creditAccount: Address;
46
- to: Address;
47
- token: Address;
48
- remainingFunds: bigint;
49
- multicall: InnerOperation[];
50
- }
51
- export interface PartialLiquidationOperation extends FacadeOperationMetadata {
52
- operation: "PartiallyLiquidateCreditAccount";
53
- creditAccount: Address;
54
- token: Address;
55
- repaidAmount: bigint;
56
- minSeizedAmount: bigint;
57
- to: Address;
58
- }
59
- export interface DirectTokenTransferOperation extends OperationMetadata {
60
- operation: "DirectTokenTransfer";
61
- protocol: Address;
62
- token: Address;
63
- from: Address;
64
- to: Address;
65
- creditAccount: Address;
66
- amount: bigint;
67
- }
10
+ export type HistoryAdapterExt = TraceAdapterExt & {
11
+ legacy: LegacyAdapterOperation;
12
+ };
68
13
  /**
69
- * Discriminated union of all facade-level operation types.
70
- * One per facade entry-point call within a transaction.
14
+ * Facade context available in `history` mode: the base facade metadata
15
+ * (`creditManager`/`creditFacade`) plus the transaction-level
16
+ * {@link OperationMetadata} that is only known once the transaction is mined.
71
17
  */
18
+ export type HistoryFacadeMetadata = FacadeOperationMetadata & OperationMetadata;
19
+ export type AdapterOperation = BaseAdapterOperation<HistoryAdapterExt>;
20
+ export type InnerOperation = BaseInnerOperation<HistoryAdapterExt>;
21
+ export type MulticallOperation = Omit<BaseMulticallOperation<HistoryAdapterExt>, "expectedBalanceChanges"> & OperationMetadata;
22
+ export type OpenCreditAccountOperation = Omit<BaseOpenCreditAccountOperation<HistoryAdapterExt>, "expectedBalanceChanges"> & OperationMetadata;
23
+ export type CloseCreditAccountOperation = Omit<BaseCloseCreditAccountOperation<HistoryAdapterExt>, "expectedBalanceChanges"> & OperationMetadata;
24
+ export type LiquidateCreditAccountOperation = Omit<BaseLiquidateCreditAccountOperation<HistoryAdapterExt>, "expectedBalanceChanges"> & OperationMetadata;
25
+ export type PartialLiquidationOperation = BasePartialLiquidationOperation & OperationMetadata;
26
+ export type DirectTokenTransferOperation = BaseDirectTokenTransferOperation & OperationMetadata;
72
27
  export type OuterFacadeOperation = MulticallOperation | OpenCreditAccountOperation | CloseCreditAccountOperation | LiquidateCreditAccountOperation | PartialLiquidationOperation;
73
- /**
74
- * Discriminated union of all credit account operation types
75
- * (facade operations + direct token transfers).
76
- */
77
28
  export type CreditAccountOperation = OuterFacadeOperation | DirectTokenTransferOperation;
@@ -1,8 +1,9 @@
1
- import { type Abi, type Address, type Hex, type PartialBy } from "viem";
1
+ import { type Abi, type Address } from "viem";
2
+ import { type CallTrace } from "../../../common-utils/utils/trace.js";
2
3
  import type { ConstructOptions, ParsedCallV2, RelaxedBaseParams } from "../../../sdk/index.js";
3
4
  import { BaseContract } from "../../../sdk/index.js";
4
5
  import type { LegacyAdapterOperation, Transfers } from "../legacyAdapterOperations.js";
5
- import type { AdapterContractStateHuman, AdapterContractType, AdapterOperation, TokenTransfer } from "../types.js";
6
+ import type { AdapterContractStateHuman, AdapterContractType, AdapterProtocolOperation } from "../types.js";
6
7
  export interface ConcreteAdapterContractOptions {
7
8
  baseParams: RelaxedBaseParams;
8
9
  }
@@ -22,23 +23,19 @@ export declare class AbstractAdapterContract<const abi extends Abi | readonly un
22
23
  get adapterType(): AdapterContractType;
23
24
  stateHuman(raw?: boolean): AdapterContractStateHuman;
24
25
  /**
25
- * Builds an {@link AdapterOperation} from a parsed call and ordered transfer entries.
26
+ * Decodes the protocol-level call (target contract + function name + args)
27
+ * performed by this adapter, recovered from its adapter-level call trace.
26
28
  *
27
- * Returns `PartialBy<AdapterOperation, "targetContract">` because the adapter
28
- * may not have `targetContract` (adapters created without SDK do not have serializedParams)
29
+ * Both the `targetContract` and the protocol calldata are taken from the
30
+ * execution trace.
29
31
  *
30
- * @param protocolCalldata Raw calldata of the actual CALL to targetContract, extracted from trace
31
- * @param strict When true, throws if protocol ABI is missing or decode fails
32
- */
33
- parseAdapterOperation(parsed: ParsedCallV2, transfers: TokenTransfer[], creditAccount: Address, protocolCalldata: Hex, strict?: boolean): PartialBy<AdapterOperation, "protocol">;
34
- /**
35
- * Decodes protocol-level function name and args from the raw calldata
36
- * sent to targetContract.
32
+ * Returns `undefined` (in non-strict mode) when no external protocol call can
33
+ * be recovered, in strict mode throws instead.
34
+ *
35
+ * @param trace Adapter-level call trace (a direct child of the facade trace)
36
+ * @param strict When true, throws instead of returning `undefined`
37
37
  */
38
- protected parseProtocolCall(calldata: Hex, strict?: boolean): {
39
- protocolFunctionName: string;
40
- protocolArgs: Record<string, unknown>;
41
- };
38
+ parseProtocolCall(trace: CallTrace, strict?: boolean): AdapterProtocolOperation | undefined;
42
39
  /**
43
40
  * Classifies an adapter call into a {@link LegacyAdapterOperation} using the
44
41
  * parsed call and credit-account transfer deltas.
@@ -50,6 +47,8 @@ export declare class AbstractAdapterContract<const abi extends Abi | readonly un
50
47
  * Override in protocol-specific subclasses for richer classification.
51
48
  *
52
49
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/account_operation.go#L238-L264
50
+ *
51
+ * @deprecated Eventually will be gone, exists to produce output that legacy UI can display
53
52
  */
54
- protected classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
53
+ classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
55
54
  }
@@ -1,5 +1,7 @@
1
+ import type { CallTrace } from "../../../common-utils/utils/trace.js";
1
2
  import type { ConstructOptions, ParsedCallV2 } from "../../../sdk/index.js";
2
3
  import type { LegacyAdapterOperation, Transfers } from "../legacyAdapterOperations.js";
4
+ import type { AdapterProtocolOperation } from "../types.js";
3
5
  import type { ConcreteAdapterContractOptions } from "./AbstractAdapter.js";
4
6
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
5
7
  declare const abi: readonly [{
@@ -467,6 +469,13 @@ type protocolAbi = typeof protocolAbi;
467
469
  export declare class AccountMigratorAdapterContract extends AbstractAdapterContract<abi, protocolAbi> {
468
470
  constructor(options: ConstructOptions, args: ConcreteAdapterContractOptions);
469
471
  /** Legacy adapter not present in integrations-v3. */
470
- protected classifyLegacyOperation(_parsed: ParsedCallV2, _transfers: Transfers): LegacyAdapterOperation;
472
+ classifyLegacyOperation(_parsed: ParsedCallV2, _transfers: Transfers): LegacyAdapterOperation;
473
+ /**
474
+ * The account-migrator adapter's `execute` targets the migrator bot, not an
475
+ * external protocol, so there is no protocol-level call to recover. Returning
476
+ * `undefined` keeps the `protocol` field aligned with its external-protocol
477
+ * semantics (see {@link TraceAdapterExt}).
478
+ */
479
+ parseProtocolCall(_trace: CallTrace, _strict?: boolean): AdapterProtocolOperation | undefined;
471
480
  }
472
481
  export {};
@@ -689,6 +689,6 @@ export declare class ConvexV1BaseRewardPoolAdapterContract extends AbstractAdapt
689
689
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L200-L262
690
690
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type_v3.go#L76-L83
691
691
  */
692
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
692
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
693
693
  }
694
694
  export {};
@@ -420,6 +420,6 @@ export declare class ConvexV1BoosterAdapterContract extends AbstractAdapterContr
420
420
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L166-L199
421
421
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type_v3.go#L84-L91
422
422
  */
423
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
423
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
424
424
  }
425
425
  export {};
@@ -1776,6 +1776,6 @@ export declare class Curve2AssetsAdapterContract extends AbstractAdapterContract
1776
1776
  contractType?: string;
1777
1777
  };
1778
1778
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
1779
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1779
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1780
1780
  }
1781
1781
  export {};
@@ -1776,6 +1776,6 @@ export declare class Curve3AssetsAdapterContract extends AbstractAdapterContract
1776
1776
  contractType?: string;
1777
1777
  };
1778
1778
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
1779
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1779
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1780
1780
  }
1781
1781
  export {};
@@ -1776,6 +1776,6 @@ export declare class Curve4AssetsAdapterContract extends AbstractAdapterContract
1776
1776
  contractType?: string;
1777
1777
  };
1778
1778
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
1779
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1779
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1780
1780
  }
1781
1781
  export {};
@@ -1040,6 +1040,6 @@ export declare class CurveV1AdapterDeposit extends AbstractAdapterContract<abi,
1040
1040
  get tokens(): [Address, Address, Address, Address];
1041
1041
  get underlyings(): [Address, Address, Address, Address];
1042
1042
  /** Legacy adapter not present in integrations-v3. Go: Curve operations via operation_type.go L132-L164 */
1043
- protected classifyLegacyOperation(_parsed: ParsedCallV2, _transfers: Transfers): LegacyAdapterOperation;
1043
+ classifyLegacyOperation(_parsed: ParsedCallV2, _transfers: Transfers): LegacyAdapterOperation;
1044
1044
  }
1045
1045
  export {};
@@ -1763,6 +1763,6 @@ export declare class CurveV1AdapterStETHContract extends AbstractAdapterContract
1763
1763
  get use256(): boolean;
1764
1764
  get tokens(): [Address, Address];
1765
1765
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
1766
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1766
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1767
1767
  }
1768
1768
  export {};
@@ -1746,6 +1746,6 @@ export declare class CurveV1StableNGAdapterContract extends AbstractAdapterContr
1746
1746
  contractType?: string;
1747
1747
  };
1748
1748
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
1749
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1749
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
1750
1750
  }
1751
1751
  export {};
@@ -204,6 +204,6 @@ export declare class DaiUsdsAdapterContract extends AbstractAdapterContract<abi,
204
204
  contractType?: string;
205
205
  };
206
206
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type_v3.go#L51-L68 */
207
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
207
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
208
208
  }
209
209
  export {};
@@ -671,6 +671,6 @@ export declare class ERC4626AdapterContract extends AbstractAdapterContract<abi,
671
671
  *
672
672
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type_v3.go#L32-L38
673
673
  */
674
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
674
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
675
675
  }
676
676
  export {};
@@ -298,6 +298,6 @@ export declare class ERC4626ReferralAdapterContract extends AbstractAdapterContr
298
298
  /**
299
299
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type_v3.go#L32-L38
300
300
  */
301
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
301
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
302
302
  }
303
303
  export {};
@@ -213,6 +213,6 @@ export declare class LidoV1AdapterContract extends AbstractAdapterContract<abi,
213
213
  contractType?: string;
214
214
  };
215
215
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L277-L282 */
216
- protected classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
216
+ classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
217
217
  }
218
218
  export {};
@@ -709,6 +709,6 @@ export declare class MellowDVVAdapterContract extends AbstractAdapterContract<ab
709
709
  /**
710
710
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type_v3.go#L32-L38
711
711
  */
712
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
712
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
713
713
  }
714
714
  export {};
@@ -676,6 +676,6 @@ export declare class MellowERC4626VaultAdapterContract extends AbstractAdapterCo
676
676
  *
677
677
  * @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type_v3.go#L32-L38
678
678
  */
679
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
679
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
680
680
  }
681
681
  export {};
@@ -964,6 +964,6 @@ export declare class UniswapV2AdapterContract extends AbstractAdapterContract<ab
964
964
  };
965
965
  protected stringifyFunctionParams(params: DecodeFunctionDataReturnType<abi>): string[];
966
966
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L81-L91 */
967
- protected classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
967
+ classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
968
968
  }
969
969
  export {};
@@ -420,6 +420,6 @@ export declare class UniswapV4AdapterContract extends AbstractAdapterContract<ab
420
420
  contractType?: string;
421
421
  };
422
422
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L81-L91 */
423
- protected classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
423
+ classifyLegacyOperation(_parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
424
424
  }
425
425
  export {};
@@ -392,6 +392,6 @@ export declare class WstETHV1AdapterContract extends AbstractAdapterContract<abi
392
392
  contractType?: string;
393
393
  };
394
394
  /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L264-L275 */
395
- protected classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
395
+ classifyLegacyOperation(parsed: ParsedCallV2, transfers: Transfers): LegacyAdapterOperation;
396
396
  }
397
397
  export {};
@@ -1,6 +1,6 @@
1
1
  import { type Address } from "viem";
2
2
  import type { BasicSwapCall, CurveAddLiquidity, CurveRemoveLiquidity, LegacyAdapterOperation, TokenAmount, Transfers } from "./legacyAdapterOperations.js";
3
- import type { TokenTransfer } from "./types.js";
3
+ import type { TokenTransfer } from "./transfers.js";
4
4
  /**
5
5
  * Converts an ordered array of {@link TokenTransfer} into net signed balance
6
6
  * changes ({@link Transfers}) for the given credit account.
@@ -0,0 +1,17 @@
1
+ import type { Address } from "viem";
2
+ /**
3
+ * A single ERC-20 Transfer event captured between Execute boundaries.
4
+ *
5
+ * Internal to `plugins/adapters` (kept here so {@link toNetTransfers} stays
6
+ * typed) and intentionally **not** re-exported from the package barrel: the
7
+ * canonical, public `TokenTransfer` lives in the `preview` module. The two are
8
+ * structurally identical, so values flow between the modules without casts.
9
+ *
10
+ * @deprecated Will be deprecated when we get rid of classifyLegacyOperation
11
+ */
12
+ export interface TokenTransfer {
13
+ token: Address;
14
+ amount: bigint;
15
+ from: Address;
16
+ to: Address;
17
+ }
@@ -1,6 +1,5 @@
1
1
  import type { AbiParameter, Address } from "viem";
2
2
  import type { BaseContractStateHuman } from "../../sdk/types/state-human.js";
3
- import type { LegacyAdapterOperation } from "./legacyAdapterOperations.js";
4
3
  export type VersionedAbi = Record<number, readonly AbiParameter[]>;
5
4
  export type AdapterContractType = "ADAPTER::ACCOUNT_MIGRATOR" | "ADAPTER::BALANCER_V3_ROUTER" | "ADAPTER::BALANCER_V3_WRAPPER" | "ADAPTER::BALANCER_VAULT" | "ADAPTER::CAMELOT_V3_ROUTER" | "ADAPTER::CURVE_STABLE_NG" | "ADAPTER::CURVE_V1_2ASSETS" | "ADAPTER::CURVE_V1_3ASSETS" | "ADAPTER::CURVE_V1_4ASSETS" | "ADAPTER::CURVE_V1_STECRV_POOL" | "ADAPTER::CURVE_V1_WRAPPER" | "ADAPTER::CVX_V1_BASE_REWARD_POOL" | "ADAPTER::CVX_V1_BOOSTER" | "ADAPTER::DAI_USDS_EXCHANGE" | "ADAPTER::EQUALIZER_ROUTER" | "ADAPTER::ERC4626_VAULT" | "ADAPTER::ERC4626_VAULT_REFERRAL" | "ADAPTER::FLUID_DEX" | "ADAPTER::INFINIFI_GATEWAY" | "ADAPTER::INFINIFI_UNWINDING" | "ADAPTER::INFRARED_VAULT" | "ADAPTER::KELP_DEPOSIT_POOL" | "ADAPTER::KELP_WITHDRAWAL" | "ADAPTER::KODIAK_ISLAND_GATEWAY" | "ADAPTER::LIDO_V1" | "ADAPTER::LIDO_WSTETH_V1" | "ADAPTER::MELLOW_CLAIMER" | "ADAPTER::MELLOW_DVV" | "ADAPTER::MELLOW_ERC4626_VAULT" | "ADAPTER::MELLOW_LRT_VAULT" | "ADAPTER::MELLOW_WRAPPER" | "ADAPTER::MELLOW_DEPOSIT_QUEUE_QUEUE" | "ADAPTER::MELLOW_REDEEM_QUEUE_QUEUE" | "ADAPTER::MIDAS_ISSUANCE_VAULT" | "ADAPTER::MIDAS_REDEMPTION_VAULT" | "ADAPTER::PENDLE_ROUTER" | "ADAPTER::SECURITIZE_ONRAMP" | "ADAPTER::SECURITIZE_REDEMPTION" | "ADAPTER::SECURITIZE_SWAP" | "ADAPTER::STAKING_REWARDS" | "ADAPTER::TRADER_JOE_ROUTER" | "ADAPTER::UNISWAP_V2_ROUTER" | "ADAPTER::UNISWAP_V3_ROUTER" | "ADAPTER::UNISWAP_V4_GATEWAY" | "ADAPTER::UPSHIFT_VAULT" | "ADAPTER::VELODROME_V2_ROUTER" | "ADAPTER::YEARN_V2";
6
5
  export declare enum AdapterType {
@@ -57,59 +56,22 @@ export interface AdapterContractStateHuman extends BaseContractStateHuman {
57
56
  targetContract?: string;
58
57
  }
59
58
  /**
60
- * A single ERC-20 Transfer event captured between Execute boundaries.
59
+ * Protocol-level call performed by an adapter: the target (protocol) contract
60
+ * together with the decoded function name and arguments of the actual CALL the
61
+ * adapter made to it. Recovered from an execution trace, so it is only present
62
+ * when a trace is available (history, facade simulation).
61
63
  */
62
- export interface TokenTransfer {
63
- token: Address;
64
- amount: bigint;
65
- from: Address;
66
- to: Address;
67
- }
68
- /**
69
- * Parsed adapter operation to display in credit account transactions history
70
- */
71
- export interface AdapterOperation {
72
- operation: "Execute";
73
- /**
74
- * Address of Gearbox Adapter contract
75
- */
76
- adapter: Address;
64
+ export interface AdapterProtocolOperation {
77
65
  /**
78
66
  * Address of protocol contract (targetContract of adapter contract)
79
67
  */
80
- protocol: Address;
81
- /**
82
- * Namespaced adapter type
83
- * E.g. "ADAPTER::FLUID_DEX"
84
- */
85
- adapterType: string;
86
- /**
87
- * Adapter contract version
88
- */
89
- version: number;
90
- /**
91
- * Label of protocol contract (NOT adapter contract)
92
- */
93
- label?: string;
94
- /**
95
- * Function name of adapter contract
96
- */
97
- adapterFunctionName: string;
98
- /**
99
- * Arguments of adapter contract
100
- */
101
- adapterArgs: Record<string, unknown>;
68
+ contract: Address;
102
69
  /**
103
70
  * Function name protocol called by adapter
104
71
  */
105
- protocolFunctionName: string;
72
+ functionName: string;
106
73
  /**
107
74
  * Arguments of protocol called by adapter
108
75
  */
109
- protocolArgs: Record<string, unknown>;
110
- /**
111
- * ERC20 transfer to and from credit account made during adapter call
112
- */
113
- transfers: TokenTransfer[];
114
- legacy: LegacyAdapterOperation;
76
+ functionArgs: Record<string, unknown>;
115
77
  }
@@ -0,0 +1,4 @@
1
+ export * from "./parse/index.js";
2
+ export * from "./prerequisites/index.js";
3
+ export * from "./simulate/index.js";
4
+ export * from "./trace/index.js";
@@ -0,0 +1,21 @@
1
+ import type { Address } from "viem";
2
+ import type { OnchainSDK, ParsedCallV2 } from "../../sdk/index.js";
3
+ import type { InnerOperation } from "./types.js";
4
+ export interface ClassifyInnerOperationsProps {
5
+ sdk: OnchainSDK;
6
+ /** Underlying token of the credit manager, used for debt operations. */
7
+ underlying: Address;
8
+ }
9
+ /**
10
+ * Calldata-only counterpart of the SDK's `classifyMulticallOperations`.
11
+ *
12
+ * Maps each inner multicall entry to an {@link InnerOperation}:
13
+ * - adapter and unknown targets become a pure-descriptor `Execute`
14
+ * {@link AdapterOperation};
15
+ * - credit-facade self-calls map to the matching inner facade operation.
16
+ *
17
+ * Raw calldata has no execution trace, so the trace-derived adapter data
18
+ * (`protocol`, `transfers`) and `legacy` are intentionally absent; they are only
19
+ * recovered by trace-based flows (history, facade simulation).
20
+ */
21
+ export declare function classifyInnerOperations(calls: ParsedCallV2[], props: ClassifyInnerOperationsProps): InnerOperation[];
@@ -0,0 +1,17 @@
1
+ import type { Address } from "viem";
2
+ /**
3
+ * Thrown when the target of a transaction is neither a known Gearbox pool nor a
4
+ * credit facade.
5
+ */
6
+ export declare class UnsupportedTargetError extends Error {
7
+ readonly target: Address;
8
+ constructor(target: Address);
9
+ }
10
+ /**
11
+ * Thrown when a pool call uses a function other than ERC4626 `deposit`/`redeem`.
12
+ */
13
+ export declare class UnsupportedPoolFunctionError extends Error {
14
+ readonly pool: Address;
15
+ readonly functionName: string;
16
+ constructor(pool: Address, functionName: string);
17
+ }