@gearbox-protocol/sdk 14.12.0-next.8 → 14.12.0-next.9

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 (184) hide show
  1. package/dist/cjs/dev/AccountOpener.js +7 -13
  2. package/dist/cjs/history/classifyMulticallOperations.js +2 -0
  3. package/dist/cjs/history/mapOperations.js +7 -0
  4. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +10 -9
  5. package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
  6. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +4 -5
  7. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +4 -9
  8. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +9 -5
  9. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +5 -10
  10. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +4 -5
  11. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -34
  12. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -34
  13. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -34
  14. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -29
  15. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -34
  16. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -34
  17. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +4 -5
  18. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +4 -5
  19. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +4 -5
  20. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +8 -8
  21. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +5 -6
  22. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +4 -5
  23. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +3 -4
  24. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +4 -5
  25. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +4 -5
  26. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +3 -4
  27. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +3 -4
  28. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +3 -4
  29. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +16 -11
  30. package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +3 -4
  31. package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +3 -4
  32. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +5 -10
  33. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +3 -4
  34. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +3 -4
  35. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +9 -5
  36. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +8 -8
  37. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +4 -5
  38. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +3 -4
  39. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +4 -5
  40. package/dist/cjs/plugins/adapters/index.js +0 -2
  41. package/dist/cjs/preview/parse/classifyInnerOperations.js +14 -1
  42. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +3 -8
  43. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +51 -59
  44. package/dist/cjs/preview/preview/unwrapNativeCollateral.js +10 -24
  45. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +3 -4
  46. package/dist/cjs/sdk/base/BaseContract.js +4 -2
  47. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -0
  48. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +0 -31
  49. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +0 -25
  50. package/dist/cjs/sdk/router/AbstractRouterContract.js +21 -27
  51. package/dist/cjs/sdk/router/RouterV310Contract.js +11 -12
  52. package/dist/cjs/sdk/router/helpers.js +0 -5
  53. package/dist/cjs/sdk/utils/AddressMap.js +6 -0
  54. package/dist/cjs/sdk/utils/AssetsMap.js +61 -0
  55. package/dist/cjs/sdk/utils/index.js +2 -0
  56. package/dist/esm/dev/AccountOpener.js +8 -13
  57. package/dist/esm/history/classifyMulticallOperations.js +2 -0
  58. package/dist/esm/history/mapOperations.js +7 -0
  59. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +10 -9
  60. package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
  61. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +4 -5
  62. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +4 -9
  63. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +9 -5
  64. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +5 -10
  65. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +4 -5
  66. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +3 -37
  67. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +3 -37
  68. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +3 -37
  69. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +3 -32
  70. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +3 -37
  71. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +3 -37
  72. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +4 -5
  73. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +4 -5
  74. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +4 -5
  75. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +8 -8
  76. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +5 -6
  77. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +4 -5
  78. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +3 -4
  79. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +4 -5
  80. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +4 -5
  81. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +3 -4
  82. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +3 -4
  83. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +3 -4
  84. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +16 -11
  85. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +3 -4
  86. package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +3 -4
  87. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +5 -10
  88. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +3 -4
  89. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +3 -4
  90. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +9 -5
  91. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +8 -8
  92. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +4 -5
  93. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +3 -4
  94. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +4 -5
  95. package/dist/esm/plugins/adapters/index.js +0 -1
  96. package/dist/esm/preview/parse/classifyInnerOperations.js +14 -1
  97. package/dist/esm/preview/prerequisites/buildPrerequisites.js +4 -8
  98. package/dist/esm/preview/preview/previewOpenCreditAccount.js +54 -67
  99. package/dist/esm/preview/preview/unwrapNativeCollateral.js +11 -25
  100. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +4 -5
  101. package/dist/esm/sdk/base/BaseContract.js +4 -2
  102. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -0
  103. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +0 -33
  104. package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +1 -27
  105. package/dist/esm/sdk/router/AbstractRouterContract.js +25 -29
  106. package/dist/esm/sdk/router/RouterV310Contract.js +11 -12
  107. package/dist/esm/sdk/router/helpers.js +0 -4
  108. package/dist/esm/sdk/utils/AddressMap.js +6 -0
  109. package/dist/esm/sdk/utils/AssetsMap.js +37 -0
  110. package/dist/esm/sdk/utils/index.js +1 -0
  111. package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +1 -1
  112. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +1 -1
  113. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +1 -1
  114. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +1 -1
  115. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +1 -1
  116. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +1 -1
  117. package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +1 -1
  118. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +1 -1
  119. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +1 -1
  120. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +1 -1
  121. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +1 -1
  122. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +9 -11
  123. package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
  124. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +2 -1
  125. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +2 -1
  126. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +2 -1
  127. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +2 -1
  128. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +2 -1
  129. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +4 -8
  130. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +4 -9
  131. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +4 -8
  132. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +4 -5
  133. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +4 -8
  134. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +4 -8
  135. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +2 -1
  136. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +2 -1
  137. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +2 -1
  138. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +2 -1
  139. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +2 -1
  140. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +2 -1
  141. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +2 -1
  142. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +2 -1
  143. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +2 -1
  144. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +2 -1
  145. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +2 -1
  146. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +2 -1
  147. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +2 -1
  148. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +2 -1
  149. package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +2 -1
  150. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +2 -1
  151. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +2 -1
  152. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +2 -1
  153. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +2 -1
  154. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +2 -1
  155. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +2 -1
  156. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +2 -1
  157. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +2 -1
  158. package/dist/types/plugins/adapters/index.d.ts +0 -1
  159. package/dist/types/plugins/adapters/types.d.ts +10 -0
  160. package/dist/types/preview/parse/types-adapters.d.ts +5 -1
  161. package/dist/types/preview/parse/types-facades.d.ts +23 -1
  162. package/dist/types/preview/preview/types.d.ts +4 -0
  163. package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +2 -2
  164. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  165. package/dist/types/sdk/accounts/types.d.ts +2 -2
  166. package/dist/types/sdk/base/BaseContract.d.ts +1 -1
  167. package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
  168. package/dist/types/sdk/base/types.d.ts +18 -0
  169. package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +1 -13
  170. package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +1 -13
  171. package/dist/types/sdk/pools/types.d.ts +1 -1
  172. package/dist/types/sdk/router/AbstractRouterContract.d.ts +5 -5
  173. package/dist/types/sdk/router/helpers.d.ts +1 -2
  174. package/dist/types/sdk/router/types.d.ts +1 -15
  175. package/dist/types/sdk/utils/AddressMap.d.ts +4 -0
  176. package/dist/types/sdk/utils/AssetsMap.d.ts +26 -0
  177. package/dist/types/sdk/utils/index.d.ts +1 -0
  178. package/package.json +1 -1
  179. package/dist/cjs/plugins/adapters/balanceChanges.js +0 -47
  180. package/dist/cjs/preview/preview/extractExpectedBalanceChanges.js +0 -70
  181. package/dist/esm/plugins/adapters/balanceChanges.js +0 -21
  182. package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +0 -46
  183. package/dist/types/plugins/adapters/balanceChanges.d.ts +0 -21
  184. package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +0 -33
@@ -381,7 +381,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
381
381
  }
382
382
  async #depositIntoPools(targets) {
383
383
  this.#logger?.debug("checking and topping up pools if necessary");
384
- const minAvailableByPool = {};
384
+ const minAvailableByPool = new import_sdk.AssetsMap();
385
385
  for (let i = 0; i < targets.length; i++) {
386
386
  const t = targets[i];
387
387
  const leverage = this.#getLeverage(t);
@@ -389,14 +389,14 @@ class AccountOpener extends import_sdk.SDKConstruct {
389
389
  const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / import_sdk.PERCENTAGE_FACTOR;
390
390
  let amount = minDebt * (leverage - import_sdk.PERCENTAGE_FACTOR) / import_sdk.PERCENTAGE_FACTOR * this.#poolDepositMultiplier / import_sdk.PERCENTAGE_FACTOR;
391
391
  amount = amount > cm.creditFacade.maxDebt ? cm.creditFacade.maxDebt : amount;
392
- minAvailableByPool[cm.pool] = (minAvailableByPool[cm.pool] ?? 0n) + amount;
392
+ minAvailableByPool.inc(cm.pool, amount);
393
393
  this.#logger?.debug(
394
394
  `target #${i + 1} (${this.labelAddress(t.target)}) needs ${this.sdk.tokensMeta.formatBN(cm.underlying, amount, { symbol: true })} in pool (leverage: ${Number(leverage / import_sdk.PERCENTAGE_FACTOR)}%)`
395
395
  );
396
396
  }
397
397
  const deposits = [];
398
- const claims = new import_sdk.AddressMap();
399
- for (const [p, minAvailable] of Object.entries(minAvailableByPool)) {
398
+ const claims = new import_sdk.AssetsMap();
399
+ for (const [p, minAvailable] of minAvailableByPool.entries()) {
400
400
  const market = this.sdk.marketRegister.findByPool(p);
401
401
  const pool = market.pool.pool;
402
402
  let diff = minAvailable - pool.availableLiquidity;
@@ -413,9 +413,7 @@ class AccountOpener extends import_sdk.SDKConstruct {
413
413
  );
414
414
  if (diff > 0n) {
415
415
  deposits.push([pool, diff]);
416
- let claim = claims.get(pool.underlying) ?? 0n;
417
- claim += diff * import_sdk.PERCENTAGE_FACTOR / 8950n;
418
- claims.upsert(pool.underlying, claim);
416
+ claims.inc(pool.underlying, diff * import_sdk.PERCENTAGE_FACTOR / 8950n);
419
417
  }
420
418
  }
421
419
  const depositor = await this.#getDepositor();
@@ -572,18 +570,14 @@ class AccountOpener extends import_sdk.SDKConstruct {
572
570
  async #prepareBorrower(targets) {
573
571
  const borrower = await this.#getBorrower();
574
572
  const degenNFTS = {};
575
- const claims = new import_sdk.AddressMap();
573
+ const claims = new import_sdk.AssetsMap();
576
574
  for (const target of targets) {
577
575
  const cm = this.sdk.marketRegister.findCreditManager(
578
576
  target.creditManager
579
577
  );
580
- const market = this.sdk.marketRegister.findByCreditManager(
581
- target.creditManager
582
- );
583
578
  const { degenNFT } = cm.creditFacade;
584
579
  const minDebt = this.#minDebtMultiplier * cm.creditFacade.minDebt / import_sdk.PERCENTAGE_FACTOR;
585
- const claim = claims.get(cm.underlying) ?? 0n;
586
- claims.upsert(cm.underlying, claim + minDebt * 11n / 10n);
580
+ claims.inc(cm.underlying, minDebt * 11n / 10n);
587
581
  if ((0, import_viem.isAddress)(degenNFT) && degenNFT !== import_sdk.ADDRESS_0X0) {
588
582
  degenNFTS[degenNFT] = (degenNFTS[degenNFT] ?? 0) + 1;
589
583
  }
@@ -60,6 +60,7 @@ function classifyMulticallOperations(input) {
60
60
  label: call.label,
61
61
  adapterFunctionName: call.functionName,
62
62
  adapterArgs: call.rawArgs,
63
+ calldata: call.calldata,
63
64
  protocol,
64
65
  transfers: transfers2,
65
66
  legacy
@@ -95,6 +96,7 @@ function classifyMulticallOperations(input) {
95
96
  label: call.label,
96
97
  adapterFunctionName: call.functionName,
97
98
  adapterArgs: call.rawArgs,
99
+ calldata: call.calldata,
98
100
  // Unknown adapter (non-strict): we have no ABI to decode the protocol
99
101
  // call, so `protocol` is left absent rather than filled with placeholders.
100
102
  protocol: void 0,
@@ -35,6 +35,13 @@ function mapInnerOperation(op, visitor, ctx) {
35
35
  return visitor.WithdrawCollateral(op, ctx);
36
36
  case "UpdateQuota":
37
37
  return visitor.UpdateQuota(op, ctx);
38
+ // The history classifier never emits other InnerOperation variants
39
+ // (e.g. StoreExpectedBalances/CompareBalances, which it drops), so this
40
+ // guards against silently returning undefined if that ever changes.
41
+ default:
42
+ throw new Error(
43
+ `unexpected inner operation: ${op.operation}`
44
+ );
38
45
  }
39
46
  }
40
47
  function mapOuterOperation(op, visitor) {
@@ -119,9 +119,8 @@ class AbstractAdapterContract extends import_sdk.BaseContract {
119
119
  * Applies the balance changes implied by a router-generated diff-style
120
120
  * adapter call to a map of credit-account token balances.
121
121
  *
122
- * @param balances - Token balances before the call. Not mutated.
122
+ * @param balances - Token balances before the call. Mutated in place.
123
123
  * @param calldata - Raw ABI-encoded adapter calldata.
124
- * @returns A new balances map with the call's changes applied.
125
124
  * @throws When the calldata cannot be decoded or the adapter (or the
126
125
  * specific function) has no balance-changes support.
127
126
  */
@@ -135,17 +134,19 @@ class AbstractAdapterContract extends import_sdk.BaseContract {
135
134
  { cause: e }
136
135
  );
137
136
  }
138
- return this.previewDecodedBalanceChanges(balances, decoded);
137
+ const leftovers = this.decodeDiffLeftovers(decoded, balances);
138
+ for (const { tokenIn, leftoverAmount } of leftovers) {
139
+ balances.upsert(tokenIn, leftoverAmount);
140
+ }
139
141
  }
140
142
  /**
141
- * Typed hook for {@link previewBalanceChanges}: receives the viem-decoded
142
- * adapter call, so overrides can switch on `decoded.functionName` and get
143
- * fully-typed `decoded.args` without casts.
143
+ * Resolves which tokens the diff-style call spends down to which leftovers.
144
144
  *
145
- * @throws When the adapter (or the specific function) has no balance-changes
146
- * support; protocol-specific subclasses override this method.
145
+ * @param decoded - The viem-decoded adapter call
146
+ * @param _balances - Token balances before the call
147
+ * @throws When the adapter (or the specific function) has no balance-changes support
147
148
  */
148
- previewDecodedBalanceChanges(_balances, decoded) {
149
+ decodeDiffLeftovers(decoded, _balances) {
149
150
  throw new Error(
150
151
  `previewBalanceChanges is not supported for ${decoded.functionName} on ${this.contractType} adapter at ${this.address}`
151
152
  );
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var AbstractCurveAdapter_exports = {};
20
+ __export(AbstractCurveAdapter_exports, {
21
+ AbstractCurveAdapterContract: () => AbstractCurveAdapterContract
22
+ });
23
+ module.exports = __toCommonJS(AbstractCurveAdapter_exports);
24
+ var import_transferHelpers = require("../transferHelpers.js");
25
+ var import_AbstractAdapter = require("./AbstractAdapter.js");
26
+ class AbstractCurveAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
27
+ /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
28
+ classifyLegacyOperation(parsed, transfers) {
29
+ return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
30
+ }
31
+ decodeDiffLeftovers(decoded, balances) {
32
+ const { functionName, args } = decoded;
33
+ switch (functionName) {
34
+ case "exchange_diff": {
35
+ const [i, , leftoverAmount] = args;
36
+ return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
37
+ }
38
+ case "add_diff_liquidity_one_coin": {
39
+ const [leftoverAmount, i] = args;
40
+ return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
41
+ }
42
+ case "remove_diff_liquidity_one_coin": {
43
+ const [leftoverAmount] = args;
44
+ return [{ tokenIn: this.lpToken, leftoverAmount }];
45
+ }
46
+ default:
47
+ return super.decodeDiffLeftovers(decoded, balances);
48
+ }
49
+ }
50
+ /**
51
+ * Resolves a Curve pool coin index to its token address.
52
+ *
53
+ * @throws When the index is out of range for the pool.
54
+ */
55
+ curveCoin(i) {
56
+ const token = this.tokens[Number(i)];
57
+ if (!token) {
58
+ throw new Error(`curve coin index ${i} is out of range`);
59
+ }
60
+ return token;
61
+ }
62
+ }
63
+ // Annotate the CommonJS export names for ESM import in node:
64
+ 0 && (module.exports = {
65
+ AbstractCurveAdapterContract
66
+ });
@@ -26,7 +26,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
26
26
  var import_viem = require("viem");
27
27
  var import_sdk = require("../../../sdk/index.js");
28
28
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
29
- var import_balanceChanges = require("../balanceChanges.js");
30
29
  var import_AbstractAdapter = require("./AbstractAdapter.js");
31
30
  var BalancerV3PoolStatus = /* @__PURE__ */ ((BalancerV3PoolStatus2) => {
32
31
  BalancerV3PoolStatus2[BalancerV3PoolStatus2["NOT_ALLOWED"] = 0] = "NOT_ALLOWED";
@@ -94,23 +93,23 @@ class BalancerV3RouterAdapterContract extends import_AbstractAdapter.AbstractAda
94
93
  }))
95
94
  };
96
95
  }
97
- previewDecodedBalanceChanges(balances, decoded) {
96
+ decodeDiffLeftovers(decoded, balances) {
98
97
  switch (decoded.functionName) {
99
98
  case "swapSingleTokenDiffIn": {
100
99
  const [, tokenIn, , leftoverAmount] = decoded.args;
101
- return (0, import_balanceChanges.clampToLeftover)(balances, tokenIn, leftoverAmount);
100
+ return [{ tokenIn, leftoverAmount }];
102
101
  }
103
102
  // BPT (pool token) is spent down to the leftover
104
103
  case "removeLiquiditySingleTokenDiff": {
105
104
  const [pool, leftoverAmount] = decoded.args;
106
- return (0, import_balanceChanges.clampToLeftover)(balances, pool, leftoverAmount);
105
+ return [{ tokenIn: pool, leftoverAmount }];
107
106
  }
108
107
  case "addLiquidityUnbalancedDiff":
109
108
  throw new Error(
110
109
  `previewBalanceChanges cannot resolve pool tokens for addLiquidityUnbalancedDiff on ${this.contractType} adapter at ${this.address}`
111
110
  );
112
111
  default:
113
- return super.previewDecodedBalanceChanges(balances, decoded);
112
+ return super.decodeDiffLeftovers(decoded, balances);
114
113
  }
115
114
  }
116
115
  }
@@ -25,7 +25,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
28
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
29
  const abi = import_integrations_v3.iBalancerV3WrapperAdapterAbi;
31
30
  const protocolAbi = import_targetContractAbi.iBalancerV3WrapperAbi;
@@ -56,23 +55,19 @@ class BalancerV3WrapperAdapterContract extends import_AbstractAdapter.AbstractAd
56
55
  balancerPoolToken: this.#balancerPoolToken ? this.labelAddress(this.#balancerPoolToken) : void 0
57
56
  };
58
57
  }
59
- previewDecodedBalanceChanges(balances, decoded) {
58
+ decodeDiffLeftovers(decoded, balances) {
60
59
  switch (decoded.functionName) {
61
60
  // mint spends the pool token, burn spends the wrapper (target contract)
62
61
  case "mintDiff": {
63
62
  const [leftoverAmount] = decoded.args;
64
- return (0, import_balanceChanges.clampToLeftover)(
65
- balances,
66
- this.balancerPoolToken,
67
- leftoverAmount
68
- );
63
+ return [{ tokenIn: this.balancerPoolToken, leftoverAmount }];
69
64
  }
70
65
  case "burnDiff": {
71
66
  const [leftoverAmount] = decoded.args;
72
- return (0, import_balanceChanges.clampToLeftover)(balances, this.targetContract, leftoverAmount);
67
+ return [{ tokenIn: this.targetContract, leftoverAmount }];
73
68
  }
74
69
  default:
75
- return super.previewDecodedBalanceChanges(balances, decoded);
70
+ return super.decodeDiffLeftovers(decoded, balances);
76
71
  }
77
72
  }
78
73
  }
@@ -25,7 +25,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
28
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
29
  const abi = import_integrations_v3.iCamelotV3AdapterAbi;
31
30
  const protocolAbi = import_targetContractAbi.iCamelotV3RouterAbi;
@@ -69,19 +68,24 @@ class CamelotV3AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
69
68
  }))
70
69
  };
71
70
  }
72
- previewDecodedBalanceChanges(balances, decoded) {
71
+ decodeDiffLeftovers(decoded, balances) {
73
72
  switch (decoded.functionName) {
74
73
  case "exactDiffInputSingle": {
75
74
  const [params] = decoded.args;
76
- return (0, import_balanceChanges.clampToLeftover)(balances, params.tokenIn, params.leftoverAmount);
75
+ return [
76
+ {
77
+ tokenIn: params.tokenIn,
78
+ leftoverAmount: params.leftoverAmount
79
+ }
80
+ ];
77
81
  }
78
82
  case "exactDiffInput": {
79
83
  const [params] = decoded.args;
80
84
  const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
81
- return (0, import_balanceChanges.clampToLeftover)(balances, tokenIn, params.leftoverAmount);
85
+ return [{ tokenIn, leftoverAmount: params.leftoverAmount }];
82
86
  }
83
87
  default:
84
- return super.previewDecodedBalanceChanges(balances, decoded);
88
+ return super.decodeDiffLeftovers(decoded, balances);
85
89
  }
86
90
  }
87
91
  }
@@ -25,7 +25,6 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
28
  var import_transferHelpers = require("../transferHelpers.js");
30
29
  var import_AbstractAdapter = require("./AbstractAdapter.js");
31
30
  const abi = import_integrations_v3.iConvexV1BaseRewardPoolAdapterAbi;
@@ -129,26 +128,22 @@ class ConvexV1BaseRewardPoolAdapterContract extends import_AbstractAdapter.Abstr
129
128
  withdrawAmount: swap.toAmount
130
129
  };
131
130
  }
132
- previewDecodedBalanceChanges(balances, decoded) {
131
+ decodeDiffLeftovers(decoded, balances) {
133
132
  switch (decoded.functionName) {
134
133
  case "stakeDiff": {
135
134
  const [leftoverAmount] = decoded.args;
136
- return (0, import_balanceChanges.clampToLeftover)(balances, this.stakingToken, leftoverAmount);
135
+ return [{ tokenIn: this.stakingToken, leftoverAmount }];
137
136
  }
138
137
  case "withdrawDiff":
139
138
  case "withdrawDiffAndUnwrap": {
140
139
  const [leftoverAmount] = decoded.args;
141
- return (0, import_balanceChanges.clampToLeftover)(
142
- balances,
143
- this.stakedPhantomToken,
144
- leftoverAmount
145
- );
140
+ return [{ tokenIn: this.stakedPhantomToken, leftoverAmount }];
146
141
  }
147
142
  // no accrued rewards on a freshly opened account
148
143
  case "getReward":
149
- return (0, import_balanceChanges.copyBalances)(balances);
144
+ return [];
150
145
  default:
151
- return super.previewDecodedBalanceChanges(balances, decoded);
146
+ return super.decodeDiffLeftovers(decoded, balances);
152
147
  }
153
148
  }
154
149
  }
@@ -25,7 +25,6 @@ var import_viem = require("viem");
25
25
  var import_sdk = require("../../../sdk/index.js");
26
26
  var import_iConvexV1BoosterAdapter = require("../abi/iConvexV1BoosterAdapter.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
28
  var import_transferHelpers = require("../transferHelpers.js");
30
29
  var import_AbstractAdapter = require("./AbstractAdapter.js");
31
30
  const abi = import_iConvexV1BoosterAdapter.iConvexV1BoosterAdapterAbi;
@@ -103,21 +102,21 @@ class ConvexV1BoosterAdapterContract extends import_AbstractAdapter.AbstractAdap
103
102
  }
104
103
  return super.classifyLegacyOperation(parsed, transfers);
105
104
  }
106
- previewDecodedBalanceChanges(balances, decoded) {
105
+ decodeDiffLeftovers(decoded, balances) {
107
106
  switch (decoded.functionName) {
108
107
  // deposit spends the curve LP token, withdraw spends the convex token
109
108
  case "depositDiff": {
110
109
  const [pid, leftoverAmount] = decoded.args;
111
110
  const pool = this.#mustFindPool(Number(pid));
112
- return (0, import_balanceChanges.clampToLeftover)(balances, pool.curveToken, leftoverAmount);
111
+ return [{ tokenIn: pool.curveToken, leftoverAmount }];
113
112
  }
114
113
  case "withdrawDiff": {
115
114
  const [pid, leftoverAmount] = decoded.args;
116
115
  const pool = this.#mustFindPool(Number(pid));
117
- return (0, import_balanceChanges.clampToLeftover)(balances, pool.convexToken, leftoverAmount);
116
+ return [{ tokenIn: pool.convexToken, leftoverAmount }];
118
117
  }
119
118
  default:
120
- return super.previewDecodedBalanceChanges(balances, decoded);
119
+ return super.decodeDiffLeftovers(decoded, balances);
121
120
  }
122
121
  }
123
122
  #mustFindPool(pid) {
@@ -25,12 +25,10 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
- var import_transferHelpers = require("../transferHelpers.js");
30
- var import_AbstractAdapter = require("./AbstractAdapter.js");
28
+ var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
31
29
  const abi = import_integrations_v3.iCurveV1_2AssetsAdapterAbi;
32
30
  const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_2Abi];
33
- class Curve2AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
31
+ class Curve2AssetsAdapterContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
34
32
  #token;
35
33
  #lpToken;
36
34
  #metapoolBase;
@@ -104,36 +102,6 @@ class Curve2AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
104
102
  underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
105
103
  };
106
104
  }
107
- /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
108
- classifyLegacyOperation(parsed, transfers) {
109
- return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
110
- }
111
- previewDecodedBalanceChanges(balances, decoded) {
112
- switch (decoded.functionName) {
113
- case "exchange_diff": {
114
- const [i, , leftoverAmount] = decoded.args;
115
- return (0, import_balanceChanges.clampToLeftover)(
116
- balances,
117
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
118
- leftoverAmount
119
- );
120
- }
121
- case "add_diff_liquidity_one_coin": {
122
- const [leftoverAmount, i] = decoded.args;
123
- return (0, import_balanceChanges.clampToLeftover)(
124
- balances,
125
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
126
- leftoverAmount
127
- );
128
- }
129
- case "remove_diff_liquidity_one_coin": {
130
- const [leftoverAmount] = decoded.args;
131
- return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
132
- }
133
- default:
134
- return super.previewDecodedBalanceChanges(balances, decoded);
135
- }
136
- }
137
105
  }
138
106
  // Annotate the CommonJS export names for ESM import in node:
139
107
  0 && (module.exports = {
@@ -25,12 +25,10 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
- var import_transferHelpers = require("../transferHelpers.js");
30
- var import_AbstractAdapter = require("./AbstractAdapter.js");
28
+ var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
31
29
  const abi = import_integrations_v3.iCurveV1_3AssetsAdapterAbi;
32
30
  const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_3Abi];
33
- class Curve3AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
31
+ class Curve3AssetsAdapterContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
34
32
  #token;
35
33
  #lpToken;
36
34
  #metapoolBase;
@@ -104,36 +102,6 @@ class Curve3AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
104
102
  underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
105
103
  };
106
104
  }
107
- /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
108
- classifyLegacyOperation(parsed, transfers) {
109
- return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
110
- }
111
- previewDecodedBalanceChanges(balances, decoded) {
112
- switch (decoded.functionName) {
113
- case "exchange_diff": {
114
- const [i, , leftoverAmount] = decoded.args;
115
- return (0, import_balanceChanges.clampToLeftover)(
116
- balances,
117
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
118
- leftoverAmount
119
- );
120
- }
121
- case "add_diff_liquidity_one_coin": {
122
- const [leftoverAmount, i] = decoded.args;
123
- return (0, import_balanceChanges.clampToLeftover)(
124
- balances,
125
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
126
- leftoverAmount
127
- );
128
- }
129
- case "remove_diff_liquidity_one_coin": {
130
- const [leftoverAmount] = decoded.args;
131
- return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
132
- }
133
- default:
134
- return super.previewDecodedBalanceChanges(balances, decoded);
135
- }
136
- }
137
105
  }
138
106
  // Annotate the CommonJS export names for ESM import in node:
139
107
  0 && (module.exports = {
@@ -25,12 +25,10 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
- var import_transferHelpers = require("../transferHelpers.js");
30
- var import_AbstractAdapter = require("./AbstractAdapter.js");
28
+ var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
31
29
  const abi = import_integrations_v3.iCurveV1_4AssetsAdapterAbi;
32
30
  const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_4Abi];
33
- class Curve4AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
31
+ class Curve4AssetsAdapterContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
34
32
  #token;
35
33
  #lpToken;
36
34
  #metapoolBase;
@@ -109,36 +107,6 @@ class Curve4AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
109
107
  underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
110
108
  };
111
109
  }
112
- /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
113
- classifyLegacyOperation(parsed, transfers) {
114
- return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
115
- }
116
- previewDecodedBalanceChanges(balances, decoded) {
117
- switch (decoded.functionName) {
118
- case "exchange_diff": {
119
- const [i, , leftoverAmount] = decoded.args;
120
- return (0, import_balanceChanges.clampToLeftover)(
121
- balances,
122
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
123
- leftoverAmount
124
- );
125
- }
126
- case "add_diff_liquidity_one_coin": {
127
- const [leftoverAmount, i] = decoded.args;
128
- return (0, import_balanceChanges.clampToLeftover)(
129
- balances,
130
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
131
- leftoverAmount
132
- );
133
- }
134
- case "remove_diff_liquidity_one_coin": {
135
- const [leftoverAmount] = decoded.args;
136
- return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
137
- }
138
- default:
139
- return super.previewDecodedBalanceChanges(balances, decoded);
140
- }
141
- }
142
110
  }
143
111
  // Annotate the CommonJS export names for ESM import in node:
144
112
  0 && (module.exports = {
@@ -25,11 +25,10 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
- var import_AbstractAdapter = require("./AbstractAdapter.js");
28
+ var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
30
29
  const abi = import_integrations_v3.iCurveV1AdapterAbi;
31
30
  const protocolAbi = import_targetContractAbi.iCurvePoolAbi;
32
- class CurveV1AdapterDeposit extends import_AbstractAdapter.AbstractAdapterContract {
31
+ class CurveV1AdapterDeposit extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
33
32
  #token;
34
33
  #lpToken;
35
34
  #metapoolBase;
@@ -110,32 +109,6 @@ class CurveV1AdapterDeposit extends import_AbstractAdapter.AbstractAdapterContra
110
109
  `classifyLegacyOperation is not supported for legacy adapter: ${this.contractType}`
111
110
  );
112
111
  }
113
- previewDecodedBalanceChanges(balances, decoded) {
114
- switch (decoded.functionName) {
115
- case "exchange_diff": {
116
- const [i, , leftoverAmount] = decoded.args;
117
- return (0, import_balanceChanges.clampToLeftover)(
118
- balances,
119
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
120
- leftoverAmount
121
- );
122
- }
123
- case "add_diff_liquidity_one_coin": {
124
- const [leftoverAmount, i] = decoded.args;
125
- return (0, import_balanceChanges.clampToLeftover)(
126
- balances,
127
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
128
- leftoverAmount
129
- );
130
- }
131
- case "remove_diff_liquidity_one_coin": {
132
- const [leftoverAmount] = decoded.args;
133
- return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
134
- }
135
- default:
136
- return super.previewDecodedBalanceChanges(balances, decoded);
137
- }
138
- }
139
112
  }
140
113
  // Annotate the CommonJS export names for ESM import in node:
141
114
  0 && (module.exports = {
@@ -25,12 +25,10 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
25
  var import_viem = require("viem");
26
26
  var import_sdk = require("../../../sdk/index.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
- var import_balanceChanges = require("../balanceChanges.js");
29
- var import_transferHelpers = require("../transferHelpers.js");
30
- var import_AbstractAdapter = require("./AbstractAdapter.js");
28
+ var import_AbstractCurveAdapter = require("./AbstractCurveAdapter.js");
31
29
  const abi = import_integrations_v3.iCurveV1_2AssetsAdapterAbi;
32
30
  const protocolAbi = [...import_targetContractAbi.iCurvePoolAbi, ...import_targetContractAbi.iCurvePool_2Abi];
33
- class CurveV1AdapterStETHContract extends import_AbstractAdapter.AbstractAdapterContract {
31
+ class CurveV1AdapterStETHContract extends import_AbstractCurveAdapter.AbstractCurveAdapterContract {
34
32
  #token;
35
33
  #lpToken;
36
34
  #metapoolBase;
@@ -87,36 +85,6 @@ class CurveV1AdapterStETHContract extends import_AbstractAdapter.AbstractAdapter
87
85
  if (!this.#tokens) throw new import_sdk.MissingSerializedParamsError("tokens");
88
86
  return this.#tokens;
89
87
  }
90
- /** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
91
- classifyLegacyOperation(parsed, transfers) {
92
- return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
93
- }
94
- previewDecodedBalanceChanges(balances, decoded) {
95
- switch (decoded.functionName) {
96
- case "exchange_diff": {
97
- const [i, , leftoverAmount] = decoded.args;
98
- return (0, import_balanceChanges.clampToLeftover)(
99
- balances,
100
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
101
- leftoverAmount
102
- );
103
- }
104
- case "add_diff_liquidity_one_coin": {
105
- const [leftoverAmount, i] = decoded.args;
106
- return (0, import_balanceChanges.clampToLeftover)(
107
- balances,
108
- (0, import_balanceChanges.curveCoin)(this.tokens, i),
109
- leftoverAmount
110
- );
111
- }
112
- case "remove_diff_liquidity_one_coin": {
113
- const [leftoverAmount] = decoded.args;
114
- return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
115
- }
116
- default:
117
- return super.previewDecodedBalanceChanges(balances, decoded);
118
- }
119
- }
120
88
  }
121
89
  // Annotate the CommonJS export names for ESM import in node:
122
90
  0 && (module.exports = {