@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
@@ -6,7 +6,6 @@ import {
6
6
  MissingSerializedParamsError
7
7
  } from "../../../sdk/index.js";
8
8
  import { iMidasIssuanceVaultAbi } from "../abi/targetContractAbi.js";
9
- import { clampToLeftover } from "../balanceChanges.js";
10
9
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
11
10
  const abi = iMidasIssuanceVaultAdapterAbi;
12
11
  const protocolAbi = iMidasIssuanceVaultAbi;
@@ -54,14 +53,14 @@ class MidasIssuanceVaultAdapterContract extends AbstractAdapterContract {
54
53
  allowedTokens: this.#allowedTokens?.map((t) => this.labelAddress(t))
55
54
  };
56
55
  }
57
- previewDecodedBalanceChanges(balances, decoded) {
56
+ decodeDiffLeftovers(decoded, balances) {
58
57
  switch (decoded.functionName) {
59
58
  case "depositInstantDiff": {
60
59
  const [tokenIn, leftoverAmount] = decoded.args;
61
- return clampToLeftover(balances, tokenIn, leftoverAmount);
60
+ return [{ tokenIn, leftoverAmount }];
62
61
  }
63
62
  default:
64
- return super.previewDecodedBalanceChanges(balances, decoded);
63
+ return super.decodeDiffLeftovers(decoded, balances);
65
64
  }
66
65
  }
67
66
  }
@@ -8,7 +8,6 @@ import {
8
8
  import {
9
9
  MissingSerializedParamsError
10
10
  } from "../../../sdk/index.js";
11
- import { clampToLeftover } from "../balanceChanges.js";
12
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
13
12
  const abi = iMidasRedemptionVaultAdapterAbi;
14
13
  const protocolAbi = iMidasRedemptionVaultGatewayAbi;
@@ -62,16 +61,16 @@ class MidasRedemptionVaultAdapterContract extends AbstractAdapterContract {
62
61
  }))
63
62
  };
64
63
  }
65
- previewDecodedBalanceChanges(balances, decoded) {
64
+ decodeDiffLeftovers(decoded, balances) {
66
65
  switch (decoded.functionName) {
67
66
  // redemption spends the mToken down to the leftover, tokenOut arg is
68
67
  // the received token
69
68
  case "redeemInstantDiff": {
70
69
  const [, leftoverAmount] = decoded.args;
71
- return clampToLeftover(balances, this.mToken, leftoverAmount);
70
+ return [{ tokenIn: this.mToken, leftoverAmount }];
72
71
  }
73
72
  default:
74
- return super.previewDecodedBalanceChanges(balances, decoded);
73
+ return super.decodeDiffLeftovers(decoded, balances);
75
74
  }
76
75
  }
77
76
  }
@@ -6,7 +6,6 @@ import {
6
6
  MissingSerializedParamsError
7
7
  } from "../../../sdk/index.js";
8
8
  import { iPendleRouterAbi } from "../abi/targetContractAbi.js";
9
- import { clampToLeftover } from "../balanceChanges.js";
10
9
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
11
10
  var PendleTokenType = /* @__PURE__ */ ((PendleTokenType2) => {
12
11
  PendleTokenType2[PendleTokenType2["PT"] = 0] = "PT";
@@ -97,26 +96,27 @@ class PendleRouterAdapterContract extends AbstractAdapterContract {
97
96
  }))
98
97
  };
99
98
  }
100
- previewDecodedBalanceChanges(balances, decoded) {
99
+ decodeDiffLeftovers(decoded, balances) {
101
100
  switch (decoded.functionName) {
102
101
  case "swapDiffTokenForPt":
103
102
  case "addLiquiditySingleTokenDiff": {
104
103
  const [, , , diffInput] = decoded.args;
105
- return clampToLeftover(
106
- balances,
107
- diffInput.tokenIn,
108
- diffInput.leftoverTokenIn
109
- );
104
+ return [
105
+ {
106
+ tokenIn: diffInput.tokenIn,
107
+ leftoverAmount: diffInput.leftoverTokenIn
108
+ }
109
+ ];
110
110
  }
111
111
  case "swapDiffPtForToken": {
112
112
  const [market, leftoverPt] = decoded.args;
113
113
  const pt = this.#mustFindPendleToken(market, 0 /* PT */);
114
- return clampToLeftover(balances, pt, leftoverPt);
114
+ return [{ tokenIn: pt, leftoverAmount: leftoverPt }];
115
115
  }
116
116
  case "removeLiquiditySingleTokenDiff": {
117
117
  const [market, leftoverLp] = decoded.args;
118
118
  const lp = this.#mustFindPendleToken(market, 1 /* LP */);
119
- return clampToLeftover(balances, lp, leftoverLp);
119
+ return [{ tokenIn: lp, leftoverAmount: leftoverLp }];
120
120
  }
121
121
  case "redeemDiffPyToToken": {
122
122
  const candidates = this.allowedPairs.filter(
@@ -131,10 +131,15 @@ class PendleRouterAdapterContract extends AbstractAdapterContract {
131
131
  );
132
132
  }
133
133
  const [, leftoverPt] = decoded.args;
134
- return clampToLeftover(balances, candidates[0].pendleToken, leftoverPt);
134
+ return [
135
+ {
136
+ tokenIn: candidates[0].pendleToken,
137
+ leftoverAmount: leftoverPt
138
+ }
139
+ ];
135
140
  }
136
141
  default:
137
- return super.previewDecodedBalanceChanges(balances, decoded);
142
+ return super.decodeDiffLeftovers(decoded, balances);
138
143
  }
139
144
  }
140
145
  #mustFindPendleToken(market, type) {
@@ -7,7 +7,6 @@ import {
7
7
  import { iBaseOnRampAbi } from "../abi/securitize/iBaseOnRamp.js";
8
8
  import { iSecuritizeOnRampAbi } from "../abi/securitize/iSecuritizeOnRamp.js";
9
9
  import { iSecuritizeOnRampAdapterAbi } from "../abi/securitize/iSecuritizeOnRampAdapter.js";
10
- import { clampToLeftover } from "../balanceChanges.js";
11
10
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
12
11
  const abi = iSecuritizeOnRampAdapterAbi;
13
12
  const protocolAbi = [...iSecuritizeOnRampAbi, ...iBaseOnRampAbi];
@@ -46,15 +45,15 @@ class SecuritizeOnRampAdapterContract extends AbstractAdapterContract {
46
45
  liquidityToken: this.#liquidityToken ? this.labelAddress(this.#liquidityToken) : void 0
47
46
  };
48
47
  }
49
- previewDecodedBalanceChanges(balances, decoded) {
48
+ decodeDiffLeftovers(decoded, balances) {
50
49
  switch (decoded.functionName) {
51
50
  // swaps the liquidity token into dsToken
52
51
  case "swapDiff": {
53
52
  const [leftoverAmount] = decoded.args;
54
- return clampToLeftover(balances, this.liquidityToken, leftoverAmount);
53
+ return [{ tokenIn: this.liquidityToken, leftoverAmount }];
55
54
  }
56
55
  default:
57
- return super.previewDecodedBalanceChanges(balances, decoded);
56
+ return super.decodeDiffLeftovers(decoded, balances);
58
57
  }
59
58
  }
60
59
  }
@@ -4,7 +4,6 @@ import {
4
4
  import {
5
5
  MissingSerializedParamsError
6
6
  } from "../../../sdk/index.js";
7
- import { clampToLeftover } from "../balanceChanges.js";
8
7
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
8
  const abi = [
10
9
  {
@@ -53,15 +52,15 @@ class SecuritizeSwapAdapterContract extends AbstractAdapterContract {
53
52
  stableCoinToken: this.#stableCoinToken ? this.labelAddress(this.#stableCoinToken) : void 0
54
53
  };
55
54
  }
56
- previewDecodedBalanceChanges(balances, decoded) {
55
+ decodeDiffLeftovers(decoded, balances) {
57
56
  switch (decoded.functionName) {
58
57
  // buys dsToken with the stablecoin
59
58
  case "buyExactInDiff": {
60
59
  const [leftoverAmount] = decoded.args;
61
- return clampToLeftover(balances, this.stableCoinToken, leftoverAmount);
60
+ return [{ tokenIn: this.stableCoinToken, leftoverAmount }];
62
61
  }
63
62
  default:
64
- return super.previewDecodedBalanceChanges(balances, decoded);
63
+ return super.decodeDiffLeftovers(decoded, balances);
65
64
  }
66
65
  }
67
66
  }
@@ -6,7 +6,6 @@ import {
6
6
  MissingSerializedParamsError
7
7
  } from "../../../sdk/index.js";
8
8
  import { iStakingRewardsAbi } from "../abi/targetContractAbi.js";
9
- import { clampToLeftover, copyBalances } from "../balanceChanges.js";
10
9
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
11
10
  const abi = iStakingRewardsAdapterAbi;
12
11
  const protocolAbi = iStakingRewardsAbi;
@@ -82,25 +81,21 @@ class StakingRewardsAdapterContract extends AbstractAdapterContract {
82
81
  referral: this.#referral
83
82
  };
84
83
  }
85
- previewDecodedBalanceChanges(balances, decoded) {
84
+ decodeDiffLeftovers(decoded, balances) {
86
85
  switch (decoded.functionName) {
87
86
  case "stakeDiff": {
88
87
  const [leftoverAmount] = decoded.args;
89
- return clampToLeftover(balances, this.stakingToken, leftoverAmount);
88
+ return [{ tokenIn: this.stakingToken, leftoverAmount }];
90
89
  }
91
90
  case "withdrawDiff": {
92
91
  const [leftoverAmount] = decoded.args;
93
- return clampToLeftover(
94
- balances,
95
- this.stakedPhantomToken,
96
- leftoverAmount
97
- );
92
+ return [{ tokenIn: this.stakedPhantomToken, leftoverAmount }];
98
93
  }
99
94
  // no accrued rewards on a freshly opened account
100
95
  case "getReward":
101
- return copyBalances(balances);
96
+ return [];
102
97
  default:
103
- return super.previewDecodedBalanceChanges(balances, decoded);
98
+ return super.decodeDiffLeftovers(decoded, balances);
104
99
  }
105
100
  }
106
101
  }
@@ -4,7 +4,6 @@ import {
4
4
  } from "viem";
5
5
  import { MissingSerializedParamsError } from "../../../sdk/index.js";
6
6
  import { iTraderJoeRouterAbi } from "../abi/targetContractAbi.js";
7
- import { clampToLeftover } from "../balanceChanges.js";
8
7
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
8
  var TraderJoePoolVersion = /* @__PURE__ */ ((TraderJoePoolVersion2) => {
10
9
  TraderJoePoolVersion2[TraderJoePoolVersion2["V1"] = 0] = "V1";
@@ -61,14 +60,14 @@ class TraderJoeRouterAdapterContract extends AbstractAdapterContract {
61
60
  }))
62
61
  };
63
62
  }
64
- previewDecodedBalanceChanges(balances, decoded) {
63
+ decodeDiffLeftovers(decoded, balances) {
65
64
  switch (decoded.functionName) {
66
65
  case "swapDiffTokensForTokens": {
67
66
  const [leftoverAmount, , path] = decoded.args;
68
- return clampToLeftover(balances, path.tokenPath[0], leftoverAmount);
67
+ return [{ tokenIn: path.tokenPath[0], leftoverAmount }];
69
68
  }
70
69
  default:
71
- return super.previewDecodedBalanceChanges(balances, decoded);
70
+ return super.decodeDiffLeftovers(decoded, balances);
72
71
  }
73
72
  }
74
73
  }
@@ -4,7 +4,6 @@ import {
4
4
  } from "viem";
5
5
  import { formatBN, MissingSerializedParamsError } from "../../../sdk/index.js";
6
6
  import { iUniswapV2Router02Abi } from "../abi/targetContractAbi.js";
7
- import { clampToLeftover } from "../balanceChanges.js";
8
7
  import { swapFromTransfers } from "../transferHelpers.js";
9
8
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
10
9
  const abi = iUniswapV2AdapterAbi;
@@ -73,14 +72,14 @@ class UniswapV2AdapterContract extends AbstractAdapterContract {
73
72
  classifyLegacyOperation(_parsed, transfers) {
74
73
  return { operation: "UniswapSwap", ...swapFromTransfers(transfers) };
75
74
  }
76
- previewDecodedBalanceChanges(balances, decoded) {
75
+ decodeDiffLeftovers(decoded, balances) {
77
76
  switch (decoded.functionName) {
78
77
  case "swapDiffTokensForTokens": {
79
78
  const [leftoverAmount, , path] = decoded.args;
80
- return clampToLeftover(balances, path[0], leftoverAmount);
79
+ return [{ tokenIn: path[0], leftoverAmount }];
81
80
  }
82
81
  default:
83
- return super.previewDecodedBalanceChanges(balances, decoded);
82
+ return super.decodeDiffLeftovers(decoded, balances);
84
83
  }
85
84
  }
86
85
  }
@@ -4,7 +4,6 @@ import {
4
4
  } from "viem";
5
5
  import { formatBN, MissingSerializedParamsError } from "../../../sdk/index.js";
6
6
  import { iUniswapV3Abi } from "../abi/targetContractAbi.js";
7
- import { clampToLeftover } from "../balanceChanges.js";
8
7
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
8
  const abi = iUniswapV3AdapterAbi;
10
9
  const protocolAbi = iUniswapV3Abi;
@@ -51,19 +50,24 @@ class UniswapV3AdapterContract extends AbstractAdapterContract {
51
50
  }))
52
51
  };
53
52
  }
54
- previewDecodedBalanceChanges(balances, decoded) {
53
+ decodeDiffLeftovers(decoded, balances) {
55
54
  switch (decoded.functionName) {
56
55
  case "exactDiffInputSingle": {
57
56
  const [params] = decoded.args;
58
- return clampToLeftover(balances, params.tokenIn, params.leftoverAmount);
57
+ return [
58
+ {
59
+ tokenIn: params.tokenIn,
60
+ leftoverAmount: params.leftoverAmount
61
+ }
62
+ ];
59
63
  }
60
64
  case "exactDiffInput": {
61
65
  const [params] = decoded.args;
62
66
  const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
63
- return clampToLeftover(balances, tokenIn, params.leftoverAmount);
67
+ return [{ tokenIn, leftoverAmount: params.leftoverAmount }];
64
68
  }
65
69
  default:
66
- return super.previewDecodedBalanceChanges(balances, decoded);
70
+ return super.decodeDiffLeftovers(decoded, balances);
67
71
  }
68
72
  }
69
73
  stringifyFunctionParams(params) {
@@ -6,7 +6,6 @@ import {
6
6
  decodeAbiParameters
7
7
  } from "viem";
8
8
  import { MissingSerializedParamsError } from "../../../sdk/index.js";
9
- import { clampToLeftover } from "../balanceChanges.js";
10
9
  import { swapFromTransfers } from "../transferHelpers.js";
11
10
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
12
11
  const abi = iUniswapV4AdapterAbi;
@@ -64,18 +63,19 @@ class UniswapV4AdapterContract extends AbstractAdapterContract {
64
63
  classifyLegacyOperation(_parsed, transfers) {
65
64
  return { operation: "UniswapSwap", ...swapFromTransfers(transfers) };
66
65
  }
67
- previewDecodedBalanceChanges(balances, decoded) {
66
+ decodeDiffLeftovers(decoded, balances) {
68
67
  switch (decoded.functionName) {
69
68
  case "swapExactInputSingleDiff": {
70
69
  const [poolKey, zeroForOne, leftoverAmount] = decoded.args;
71
- return clampToLeftover(
72
- balances,
73
- zeroForOne ? poolKey.token0 : poolKey.token1,
74
- leftoverAmount
75
- );
70
+ return [
71
+ {
72
+ tokenIn: zeroForOne ? poolKey.token0 : poolKey.token1,
73
+ leftoverAmount
74
+ }
75
+ ];
76
76
  }
77
77
  default:
78
- return super.previewDecodedBalanceChanges(balances, decoded);
78
+ return super.decodeDiffLeftovers(decoded, balances);
79
79
  }
80
80
  }
81
81
  }
@@ -8,7 +8,6 @@ import {
8
8
  import {
9
9
  MissingSerializedParamsError
10
10
  } from "../../../sdk/index.js";
11
- import { clampToLeftover } from "../balanceChanges.js";
12
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
13
12
  const abi = iUpshiftVaultAdapterAbi;
14
13
  const protocolAbi = iUpshiftVaultGatewayAbi;
@@ -55,18 +54,18 @@ class UpshiftVaultAdapterContract extends AbstractAdapterContract {
55
54
  stakedPhantomToken: this.#stakedPhantomToken ? this.labelAddress(this.#stakedPhantomToken) : void 0
56
55
  };
57
56
  }
58
- previewDecodedBalanceChanges(balances, decoded) {
57
+ decodeDiffLeftovers(decoded, balances) {
59
58
  switch (decoded.functionName) {
60
59
  case "depositDiff": {
61
60
  const [leftoverAmount] = decoded.args;
62
- return clampToLeftover(balances, this.asset, leftoverAmount);
61
+ return [{ tokenIn: this.asset, leftoverAmount }];
63
62
  }
64
63
  case "redeemDiff": {
65
64
  const [leftoverAmount] = decoded.args;
66
- return clampToLeftover(balances, this.vault, leftoverAmount);
65
+ return [{ tokenIn: this.vault, leftoverAmount }];
67
66
  }
68
67
  default:
69
- return super.previewDecodedBalanceChanges(balances, decoded);
68
+ return super.decodeDiffLeftovers(decoded, balances);
70
69
  }
71
70
  }
72
71
  }
@@ -4,7 +4,6 @@ import {
4
4
  } from "viem";
5
5
  import { MissingSerializedParamsError } from "../../../sdk/index.js";
6
6
  import { iVelodromeV2RouterAbi } from "../abi/targetContractAbi.js";
7
- import { clampToLeftover } from "../balanceChanges.js";
8
7
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
8
  const abi = iVelodromeV2RouterAdapterAbi;
10
9
  const protocolAbi = iVelodromeV2RouterAbi;
@@ -54,14 +53,14 @@ class VelodromeV2RouterAdapterContract extends AbstractAdapterContract {
54
53
  }))
55
54
  };
56
55
  }
57
- previewDecodedBalanceChanges(balances, decoded) {
56
+ decodeDiffLeftovers(decoded, balances) {
58
57
  switch (decoded.functionName) {
59
58
  case "swapDiffTokensForTokens": {
60
59
  const [leftoverAmount, , routes] = decoded.args;
61
- return clampToLeftover(balances, routes[0].from, leftoverAmount);
60
+ return [{ tokenIn: routes[0].from, leftoverAmount }];
62
61
  }
63
62
  default:
64
- return super.previewDecodedBalanceChanges(balances, decoded);
63
+ return super.decodeDiffLeftovers(decoded, balances);
65
64
  }
66
65
  }
67
66
  }
@@ -6,7 +6,6 @@ import {
6
6
  MissingSerializedParamsError
7
7
  } from "../../../sdk/index.js";
8
8
  import { iwstETHAbi } from "../abi/targetContractAbi.js";
9
- import { clampToLeftover } from "../balanceChanges.js";
10
9
  import { swapFromTransfers } from "../transferHelpers.js";
11
10
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
12
11
  const abi = iwstEthv1AdapterAbi;
@@ -47,19 +46,19 @@ class WstETHV1AdapterContract extends AbstractAdapterContract {
47
46
  }
48
47
  return super.classifyLegacyOperation(parsed, transfers);
49
48
  }
50
- previewDecodedBalanceChanges(balances, decoded) {
49
+ decodeDiffLeftovers(decoded, balances) {
51
50
  switch (decoded.functionName) {
52
51
  case "wrapDiff": {
53
52
  const [leftoverAmount] = decoded.args;
54
- return clampToLeftover(balances, this.stETH, leftoverAmount);
53
+ return [{ tokenIn: this.stETH, leftoverAmount }];
55
54
  }
56
55
  // wstETH is the adapter's target contract
57
56
  case "unwrapDiff": {
58
57
  const [leftoverAmount] = decoded.args;
59
- return clampToLeftover(balances, this.targetContract, leftoverAmount);
58
+ return [{ tokenIn: this.targetContract, leftoverAmount }];
60
59
  }
61
60
  default:
62
- return super.previewDecodedBalanceChanges(balances, decoded);
61
+ return super.decodeDiffLeftovers(decoded, balances);
63
62
  }
64
63
  }
65
64
  }
@@ -1,6 +1,5 @@
1
1
  export * from "./AdaptersPlugin.js";
2
2
  export * from "./abi/index.js";
3
- export * from "./balanceChanges.js";
4
3
  export * from "./contracts/index.js";
5
4
  export * from "./createAdapter.js";
6
5
  export * from "./legacyAdapterOperations.js";
@@ -12,7 +12,8 @@ function classifyInnerOperations(calls, props) {
12
12
  version: call.version,
13
13
  label: call.label,
14
14
  adapterFunctionName: call.functionName,
15
- adapterArgs: call.rawArgs
15
+ adapterArgs: call.rawArgs,
16
+ calldata: call.calldata
16
17
  });
17
18
  continue;
18
19
  }
@@ -59,6 +60,18 @@ function classifyFacadeInnerCall(call, underlying) {
59
60
  token: rawArgs.token,
60
61
  change: rawArgs.quotaChange
61
62
  };
63
+ case "storeExpectedBalances": {
64
+ const balanceDeltas = rawArgs.balanceDeltas;
65
+ return {
66
+ operation: "StoreExpectedBalances",
67
+ deltas: balanceDeltas.map(({ token, amount }) => ({
68
+ token,
69
+ balance: amount
70
+ }))
71
+ };
72
+ }
73
+ case "compareBalances":
74
+ return { operation: "CompareBalances" };
62
75
  default:
63
76
  return null;
64
77
  }
@@ -1,6 +1,7 @@
1
1
  import { isAddressEqual } from "viem";
2
2
  import {
3
3
  AddressSet,
4
+ AssetsMap,
4
5
  NATIVE_ADDRESS
5
6
  } from "../../sdk/index.js";
6
7
  import {
@@ -201,24 +202,19 @@ async function buildPrerequisites(input) {
201
202
  }
202
203
  async function collateralPrerequisites(spenderOptions, multicall, ctx) {
203
204
  const { sdk, wallet } = ctx;
204
- const required = /* @__PURE__ */ new Map();
205
+ const required = new AssetsMap();
205
206
  for (const op of multicall) {
206
207
  if (op.operation !== "AddCollateral" || op.amount === 0n) {
207
208
  continue;
208
209
  }
209
- const key = op.token.toLowerCase();
210
- const existing = required.get(key);
211
- required.set(key, {
212
- token: op.token,
213
- amount: (existing?.amount ?? 0n) + op.amount
214
- });
210
+ required.inc(op.token, op.amount);
215
211
  }
216
212
  if (required.size === 0) {
217
213
  return [];
218
214
  }
219
215
  const spender = await sdk.accounts.getApprovalAddress(spenderOptions);
220
216
  const prereqs = [];
221
- for (const { token, amount } of required.values()) {
217
+ for (const [token, amount] of required.entries()) {
222
218
  prereqs.push(
223
219
  new AllowancePrerequisite({
224
220
  token,