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

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 (136) hide show
  1. package/dist/cjs/plugins/adapters/abi/iConvexV1BoosterAdapter.js +143 -0
  2. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  3. package/dist/cjs/plugins/adapters/balanceChanges.js +47 -0
  4. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +35 -0
  5. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +20 -0
  6. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +20 -0
  7. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +16 -0
  8. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +23 -0
  9. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +29 -2
  10. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +27 -0
  11. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +27 -0
  12. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +27 -0
  13. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +27 -0
  14. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +27 -0
  15. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +27 -0
  16. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +15 -0
  17. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +16 -0
  18. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +15 -0
  19. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +15 -0
  20. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +22 -0
  21. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +11 -0
  22. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +12 -0
  23. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +16 -0
  24. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +16 -0
  25. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +12 -0
  26. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +11 -0
  27. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +13 -0
  28. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +53 -0
  29. package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +12 -0
  30. package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +23 -1
  31. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +22 -0
  32. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +11 -0
  33. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +11 -0
  34. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +16 -0
  35. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +15 -0
  36. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +15 -0
  37. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +11 -0
  38. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +16 -0
  39. package/dist/cjs/plugins/adapters/index.js +2 -0
  40. package/dist/cjs/preview/preview/errors.js +16 -0
  41. package/dist/cjs/preview/preview/extractExpectedBalanceChanges.js +33 -11
  42. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +46 -7
  43. package/dist/cjs/preview/preview/unwrapNativeCollateral.js +59 -0
  44. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +31 -0
  45. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +25 -0
  46. package/dist/esm/plugins/adapters/abi/iConvexV1BoosterAdapter.js +119 -0
  47. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  48. package/dist/esm/plugins/adapters/balanceChanges.js +21 -0
  49. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +35 -0
  50. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +23 -1
  51. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +23 -1
  52. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +19 -1
  53. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +27 -1
  54. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +31 -2
  55. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +30 -1
  56. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +30 -1
  57. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +30 -1
  58. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +30 -1
  59. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +30 -1
  60. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +30 -1
  61. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +18 -1
  62. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +20 -1
  63. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +18 -1
  64. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
  65. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +25 -1
  66. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +14 -1
  67. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +15 -1
  68. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +19 -1
  69. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +19 -1
  70. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +15 -1
  71. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +14 -1
  72. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +16 -1
  73. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +56 -1
  74. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +15 -1
  75. package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +26 -2
  76. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +25 -1
  77. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +14 -1
  78. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +11 -0
  79. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +16 -0
  80. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
  81. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +18 -1
  82. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +14 -1
  83. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +19 -1
  84. package/dist/esm/plugins/adapters/index.js +1 -0
  85. package/dist/esm/preview/preview/errors.js +15 -0
  86. package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +33 -11
  87. package/dist/esm/preview/preview/previewOpenCreditAccount.js +54 -8
  88. package/dist/esm/preview/preview/unwrapNativeCollateral.js +35 -0
  89. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +33 -0
  90. package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +27 -1
  91. package/dist/types/plugins/adapters/abi/iConvexV1BoosterAdapter.d.ts +204 -0
  92. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  93. package/dist/types/plugins/adapters/balanceChanges.d.ts +21 -0
  94. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +22 -2
  95. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +3 -2
  96. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +3 -2
  97. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +3 -2
  98. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +3 -2
  99. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +7 -6
  100. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -2
  101. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -1
  102. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -2
  103. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +3 -2
  104. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -2
  105. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -2
  106. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +3 -2
  107. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +3 -2
  108. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +3 -2
  109. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +3 -2
  110. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +3 -2
  111. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +3 -2
  112. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +3 -2
  113. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +3 -2
  114. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +3 -2
  115. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +3 -2
  116. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +3 -2
  117. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +3 -2
  118. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +3 -2
  119. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +3 -2
  120. package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +14 -3
  121. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +3 -2
  122. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +3 -2
  123. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +2 -1
  124. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +2 -1
  125. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +3 -2
  126. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +3 -2
  127. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +3 -2
  128. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +3 -2
  129. package/dist/types/plugins/adapters/index.d.ts +1 -0
  130. package/dist/types/preview/preview/errors.d.ts +12 -0
  131. package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +26 -14
  132. package/dist/types/preview/preview/types.d.ts +5 -1
  133. package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
  134. package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +13 -1
  135. package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +13 -1
  136. package/package.json +1 -1
@@ -1,9 +1,12 @@
1
1
  import { iLidoV1AdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { lidoV1_WETHGatewayAbi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { swapFromTransfers } from "../transferHelpers.js";
8
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
12
  const abi = iLidoV1AdapterAbi;
@@ -54,6 +57,17 @@ class LidoV1AdapterContract extends AbstractAdapterContract {
54
57
  classifyLegacyOperation(_parsed, transfers) {
55
58
  return { operation: "LidoSubmit", ...swapFromTransfers(transfers) };
56
59
  }
60
+ previewDecodedBalanceChanges(balances, decoded) {
61
+ switch (decoded.functionName) {
62
+ // the adapter targets the WETH gateway, so WETH is spent
63
+ case "submitDiff": {
64
+ const [leftoverAmount] = decoded.args;
65
+ return clampToLeftover(balances, this.weth, leftoverAmount);
66
+ }
67
+ default:
68
+ return super.previewDecodedBalanceChanges(balances, decoded);
69
+ }
70
+ }
57
71
  }
58
72
  export {
59
73
  LidoV1AdapterContract
@@ -1,9 +1,12 @@
1
1
  import { mellowDvvAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { iERC4626Abi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
8
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
12
  const abi = mellowDvvAdapterAbi;
@@ -52,6 +55,21 @@ class MellowDVVAdapterContract extends AbstractAdapterContract {
52
55
  }
53
56
  return super.classifyLegacyOperation(parsed, transfers);
54
57
  }
58
+ previewDecodedBalanceChanges(balances, decoded) {
59
+ const share = this.#vault ?? this.targetContract;
60
+ switch (decoded.functionName) {
61
+ case "depositDiff": {
62
+ const [leftoverAmount] = decoded.args;
63
+ return clampToLeftover(balances, this.asset, leftoverAmount);
64
+ }
65
+ case "redeemDiff": {
66
+ const [leftoverAmount] = decoded.args;
67
+ return clampToLeftover(balances, share, leftoverAmount);
68
+ }
69
+ default:
70
+ return super.previewDecodedBalanceChanges(balances, decoded);
71
+ }
72
+ }
55
73
  }
56
74
  export {
57
75
  MellowDVVAdapterContract
@@ -1,9 +1,12 @@
1
1
  import { iMellow4626VaultAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { iERC4626Abi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
8
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
12
  const abi = iMellow4626VaultAdapterAbi;
@@ -87,6 +90,21 @@ class MellowERC4626VaultAdapterContract extends AbstractAdapterContract {
87
90
  }
88
91
  return super.classifyLegacyOperation(parsed, transfers);
89
92
  }
93
+ previewDecodedBalanceChanges(balances, decoded) {
94
+ const share = this.#vault ?? this.targetContract;
95
+ switch (decoded.functionName) {
96
+ case "depositDiff": {
97
+ const [leftoverAmount] = decoded.args;
98
+ return clampToLeftover(balances, this.asset, leftoverAmount);
99
+ }
100
+ case "redeemDiff": {
101
+ const [leftoverAmount] = decoded.args;
102
+ return clampToLeftover(balances, share, leftoverAmount);
103
+ }
104
+ default:
105
+ return super.previewDecodedBalanceChanges(balances, decoded);
106
+ }
107
+ }
90
108
  }
91
109
  export {
92
110
  MellowERC4626VaultAdapterContract
@@ -1,9 +1,12 @@
1
1
  import { iMellowWrapperAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { iMellowWrapperAbi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
8
11
  const abi = iMellowWrapperAdapterAbi;
9
12
  const protocolAbi = iMellowWrapperAbi;
@@ -34,6 +37,17 @@ class MellowWrapperAdapterContract extends AbstractAdapterContract {
34
37
  allowedVaults: this.#allowedVaults?.map((v) => this.labelAddress(v))
35
38
  };
36
39
  }
40
+ previewDecodedBalanceChanges(balances, decoded) {
41
+ switch (decoded.functionName) {
42
+ case "depositDiff": {
43
+ const weth = this.tokensMeta.mustFindBySymbol("WETH").addr;
44
+ const [leftoverAmount] = decoded.args;
45
+ return clampToLeftover(balances, weth, leftoverAmount);
46
+ }
47
+ default:
48
+ return super.previewDecodedBalanceChanges(balances, decoded);
49
+ }
50
+ }
37
51
  }
38
52
  export {
39
53
  MellowWrapperAdapterContract
@@ -1,9 +1,12 @@
1
1
  import { iMidasIssuanceVaultAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { iMidasIssuanceVaultAbi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
8
11
  const abi = iMidasIssuanceVaultAdapterAbi;
9
12
  const protocolAbi = iMidasIssuanceVaultAbi;
@@ -51,6 +54,16 @@ class MidasIssuanceVaultAdapterContract extends AbstractAdapterContract {
51
54
  allowedTokens: this.#allowedTokens?.map((t) => this.labelAddress(t))
52
55
  };
53
56
  }
57
+ previewDecodedBalanceChanges(balances, decoded) {
58
+ switch (decoded.functionName) {
59
+ case "depositInstantDiff": {
60
+ const [tokenIn, leftoverAmount] = decoded.args;
61
+ return clampToLeftover(balances, tokenIn, leftoverAmount);
62
+ }
63
+ default:
64
+ return super.previewDecodedBalanceChanges(balances, decoded);
65
+ }
66
+ }
54
67
  }
55
68
  export {
56
69
  MidasIssuanceVaultAdapterContract
@@ -2,10 +2,13 @@ import {
2
2
  iMidasRedemptionVaultAdapterAbi,
3
3
  iMidasRedemptionVaultGatewayAbi
4
4
  } from "@gearbox-protocol/integrations-v3";
5
- import { decodeAbiParameters } from "viem";
5
+ import {
6
+ decodeAbiParameters
7
+ } from "viem";
6
8
  import {
7
9
  MissingSerializedParamsError
8
10
  } from "../../../sdk/index.js";
11
+ import { clampToLeftover } from "../balanceChanges.js";
9
12
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
10
13
  const abi = iMidasRedemptionVaultAdapterAbi;
11
14
  const protocolAbi = iMidasRedemptionVaultGatewayAbi;
@@ -59,6 +62,18 @@ class MidasRedemptionVaultAdapterContract extends AbstractAdapterContract {
59
62
  }))
60
63
  };
61
64
  }
65
+ previewDecodedBalanceChanges(balances, decoded) {
66
+ switch (decoded.functionName) {
67
+ // redemption spends the mToken down to the leftover, tokenOut arg is
68
+ // the received token
69
+ case "redeemInstantDiff": {
70
+ const [, leftoverAmount] = decoded.args;
71
+ return clampToLeftover(balances, this.mToken, leftoverAmount);
72
+ }
73
+ default:
74
+ return super.previewDecodedBalanceChanges(balances, decoded);
75
+ }
76
+ }
62
77
  }
63
78
  export {
64
79
  MidasRedemptionVaultAdapterContract
@@ -1,9 +1,12 @@
1
1
  import { iPendleRouterAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { iPendleRouterAbi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
8
11
  var PendleTokenType = /* @__PURE__ */ ((PendleTokenType2) => {
9
12
  PendleTokenType2[PendleTokenType2["PT"] = 0] = "PT";
@@ -94,6 +97,58 @@ class PendleRouterAdapterContract extends AbstractAdapterContract {
94
97
  }))
95
98
  };
96
99
  }
100
+ previewDecodedBalanceChanges(balances, decoded) {
101
+ switch (decoded.functionName) {
102
+ case "swapDiffTokenForPt":
103
+ case "addLiquiditySingleTokenDiff": {
104
+ const [, , , diffInput] = decoded.args;
105
+ return clampToLeftover(
106
+ balances,
107
+ diffInput.tokenIn,
108
+ diffInput.leftoverTokenIn
109
+ );
110
+ }
111
+ case "swapDiffPtForToken": {
112
+ const [market, leftoverPt] = decoded.args;
113
+ const pt = this.#mustFindPendleToken(market, 0 /* PT */);
114
+ return clampToLeftover(balances, pt, leftoverPt);
115
+ }
116
+ case "removeLiquiditySingleTokenDiff": {
117
+ const [market, leftoverLp] = decoded.args;
118
+ const lp = this.#mustFindPendleToken(market, 1 /* LP */);
119
+ return clampToLeftover(balances, lp, leftoverLp);
120
+ }
121
+ case "redeemDiffPyToToken": {
122
+ const candidates = this.allowedPairs.filter(
123
+ (p) => (p.pendleTokenType === void 0 || p.pendleTokenType === 0 /* PT */) && (balances.get(p.pendleToken) ?? 0n) > 1n
124
+ );
125
+ const ptTokens = new Set(
126
+ candidates.map((p) => p.pendleToken.toLowerCase())
127
+ );
128
+ if (ptTokens.size !== 1) {
129
+ throw new Error(
130
+ `cannot recover PT token for redeemDiffPyToToken on pendle adapter at ${this.address}: ${ptTokens.size} candidates`
131
+ );
132
+ }
133
+ const [, leftoverPt] = decoded.args;
134
+ return clampToLeftover(balances, candidates[0].pendleToken, leftoverPt);
135
+ }
136
+ default:
137
+ return super.previewDecodedBalanceChanges(balances, decoded);
138
+ }
139
+ }
140
+ #mustFindPendleToken(market, type) {
141
+ const marketLC = market.toLowerCase();
142
+ const pair = this.allowedPairs.find(
143
+ (p) => p.market.toLowerCase() === marketLC && (p.pendleTokenType === void 0 || p.pendleTokenType === type)
144
+ );
145
+ if (!pair) {
146
+ throw new Error(
147
+ `pendle pair for market ${market} not found on adapter at ${this.address}`
148
+ );
149
+ }
150
+ return pair.pendleToken;
151
+ }
97
152
  }
98
153
  export {
99
154
  PendlePairStatus,
@@ -1,10 +1,13 @@
1
- import { decodeAbiParameters } from "viem";
1
+ import {
2
+ decodeAbiParameters
3
+ } from "viem";
2
4
  import {
3
5
  MissingSerializedParamsError
4
6
  } from "../../../sdk/index.js";
5
7
  import { iBaseOnRampAbi } from "../abi/securitize/iBaseOnRamp.js";
6
8
  import { iSecuritizeOnRampAbi } from "../abi/securitize/iSecuritizeOnRamp.js";
7
9
  import { iSecuritizeOnRampAdapterAbi } from "../abi/securitize/iSecuritizeOnRampAdapter.js";
10
+ import { clampToLeftover } from "../balanceChanges.js";
8
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
12
  const abi = iSecuritizeOnRampAdapterAbi;
10
13
  const protocolAbi = [...iSecuritizeOnRampAbi, ...iBaseOnRampAbi];
@@ -43,6 +46,17 @@ class SecuritizeOnRampAdapterContract extends AbstractAdapterContract {
43
46
  liquidityToken: this.#liquidityToken ? this.labelAddress(this.#liquidityToken) : void 0
44
47
  };
45
48
  }
49
+ previewDecodedBalanceChanges(balances, decoded) {
50
+ switch (decoded.functionName) {
51
+ // swaps the liquidity token into dsToken
52
+ case "swapDiff": {
53
+ const [leftoverAmount] = decoded.args;
54
+ return clampToLeftover(balances, this.liquidityToken, leftoverAmount);
55
+ }
56
+ default:
57
+ return super.previewDecodedBalanceChanges(balances, decoded);
58
+ }
59
+ }
46
60
  }
47
61
  export {
48
62
  SecuritizeOnRampAdapterContract
@@ -1,9 +1,22 @@
1
- import { decodeAbiParameters } from "viem";
1
+ import {
2
+ decodeAbiParameters
3
+ } from "viem";
2
4
  import {
3
5
  MissingSerializedParamsError
4
6
  } from "../../../sdk/index.js";
7
+ import { clampToLeftover } from "../balanceChanges.js";
5
8
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
6
- const abi = [];
9
+ const abi = [
10
+ {
11
+ type: "function",
12
+ name: "buyExactInDiff",
13
+ inputs: [
14
+ { name: "leftoverAmount", type: "uint256", internalType: "uint256" }
15
+ ],
16
+ outputs: [],
17
+ stateMutability: "nonpayable"
18
+ }
19
+ ];
7
20
  const protocolAbi = [];
8
21
  class SecuritizeSwapAdapterContract extends AbstractAdapterContract {
9
22
  #dsToken;
@@ -40,6 +53,17 @@ class SecuritizeSwapAdapterContract extends AbstractAdapterContract {
40
53
  stableCoinToken: this.#stableCoinToken ? this.labelAddress(this.#stableCoinToken) : void 0
41
54
  };
42
55
  }
56
+ previewDecodedBalanceChanges(balances, decoded) {
57
+ switch (decoded.functionName) {
58
+ // buys dsToken with the stablecoin
59
+ case "buyExactInDiff": {
60
+ const [leftoverAmount] = decoded.args;
61
+ return clampToLeftover(balances, this.stableCoinToken, leftoverAmount);
62
+ }
63
+ default:
64
+ return super.previewDecodedBalanceChanges(balances, decoded);
65
+ }
66
+ }
43
67
  }
44
68
  export {
45
69
  SecuritizeSwapAdapterContract
@@ -1,9 +1,12 @@
1
1
  import { iStakingRewardsAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { iStakingRewardsAbi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover, copyBalances } from "../balanceChanges.js";
7
10
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
8
11
  const abi = iStakingRewardsAdapterAbi;
9
12
  const protocolAbi = iStakingRewardsAbi;
@@ -79,6 +82,27 @@ class StakingRewardsAdapterContract extends AbstractAdapterContract {
79
82
  referral: this.#referral
80
83
  };
81
84
  }
85
+ previewDecodedBalanceChanges(balances, decoded) {
86
+ switch (decoded.functionName) {
87
+ case "stakeDiff": {
88
+ const [leftoverAmount] = decoded.args;
89
+ return clampToLeftover(balances, this.stakingToken, leftoverAmount);
90
+ }
91
+ case "withdrawDiff": {
92
+ const [leftoverAmount] = decoded.args;
93
+ return clampToLeftover(
94
+ balances,
95
+ this.stakedPhantomToken,
96
+ leftoverAmount
97
+ );
98
+ }
99
+ // no accrued rewards on a freshly opened account
100
+ case "getReward":
101
+ return copyBalances(balances);
102
+ default:
103
+ return super.previewDecodedBalanceChanges(balances, decoded);
104
+ }
105
+ }
82
106
  }
83
107
  export {
84
108
  StakingRewardsAdapterContract
@@ -1,7 +1,10 @@
1
1
  import { iTraderJoeRouterAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import { MissingSerializedParamsError } from "../../../sdk/index.js";
4
6
  import { iTraderJoeRouterAbi } from "../abi/targetContractAbi.js";
7
+ import { clampToLeftover } from "../balanceChanges.js";
5
8
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
6
9
  var TraderJoePoolVersion = /* @__PURE__ */ ((TraderJoePoolVersion2) => {
7
10
  TraderJoePoolVersion2[TraderJoePoolVersion2["V1"] = 0] = "V1";
@@ -58,6 +61,16 @@ class TraderJoeRouterAdapterContract extends AbstractAdapterContract {
58
61
  }))
59
62
  };
60
63
  }
64
+ previewDecodedBalanceChanges(balances, decoded) {
65
+ switch (decoded.functionName) {
66
+ case "swapDiffTokensForTokens": {
67
+ const [leftoverAmount, , path] = decoded.args;
68
+ return clampToLeftover(balances, path.tokenPath[0], leftoverAmount);
69
+ }
70
+ default:
71
+ return super.previewDecodedBalanceChanges(balances, decoded);
72
+ }
73
+ }
61
74
  }
62
75
  export {
63
76
  TraderJoePoolVersion,
@@ -4,6 +4,7 @@ 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";
7
8
  import { swapFromTransfers } from "../transferHelpers.js";
8
9
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
10
  const abi = iUniswapV2AdapterAbi;
@@ -72,6 +73,16 @@ class UniswapV2AdapterContract extends AbstractAdapterContract {
72
73
  classifyLegacyOperation(_parsed, transfers) {
73
74
  return { operation: "UniswapSwap", ...swapFromTransfers(transfers) };
74
75
  }
76
+ previewDecodedBalanceChanges(balances, decoded) {
77
+ switch (decoded.functionName) {
78
+ case "swapDiffTokensForTokens": {
79
+ const [leftoverAmount, , path] = decoded.args;
80
+ return clampToLeftover(balances, path[0], leftoverAmount);
81
+ }
82
+ default:
83
+ return super.previewDecodedBalanceChanges(balances, decoded);
84
+ }
85
+ }
75
86
  }
76
87
  export {
77
88
  UniswapV2AdapterContract
@@ -4,6 +4,7 @@ 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";
7
8
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
8
9
  const abi = iUniswapV3AdapterAbi;
9
10
  const protocolAbi = iUniswapV3Abi;
@@ -50,6 +51,21 @@ class UniswapV3AdapterContract extends AbstractAdapterContract {
50
51
  }))
51
52
  };
52
53
  }
54
+ previewDecodedBalanceChanges(balances, decoded) {
55
+ switch (decoded.functionName) {
56
+ case "exactDiffInputSingle": {
57
+ const [params] = decoded.args;
58
+ return clampToLeftover(balances, params.tokenIn, params.leftoverAmount);
59
+ }
60
+ case "exactDiffInput": {
61
+ const [params] = decoded.args;
62
+ const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
63
+ return clampToLeftover(balances, tokenIn, params.leftoverAmount);
64
+ }
65
+ default:
66
+ return super.previewDecodedBalanceChanges(balances, decoded);
67
+ }
68
+ }
53
69
  stringifyFunctionParams(params) {
54
70
  switch (params.functionName) {
55
71
  case "exactInputSingle": {
@@ -2,8 +2,11 @@ import {
2
2
  iUniswapV4AdapterAbi,
3
3
  iUniswapV4GatewayAbi
4
4
  } from "@gearbox-protocol/integrations-v3";
5
- import { decodeAbiParameters } from "viem";
5
+ import {
6
+ decodeAbiParameters
7
+ } from "viem";
6
8
  import { MissingSerializedParamsError } from "../../../sdk/index.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { swapFromTransfers } from "../transferHelpers.js";
8
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
12
  const abi = iUniswapV4AdapterAbi;
@@ -61,6 +64,20 @@ class UniswapV4AdapterContract extends AbstractAdapterContract {
61
64
  classifyLegacyOperation(_parsed, transfers) {
62
65
  return { operation: "UniswapSwap", ...swapFromTransfers(transfers) };
63
66
  }
67
+ previewDecodedBalanceChanges(balances, decoded) {
68
+ switch (decoded.functionName) {
69
+ case "swapExactInputSingleDiff": {
70
+ const [poolKey, zeroForOne, leftoverAmount] = decoded.args;
71
+ return clampToLeftover(
72
+ balances,
73
+ zeroForOne ? poolKey.token0 : poolKey.token1,
74
+ leftoverAmount
75
+ );
76
+ }
77
+ default:
78
+ return super.previewDecodedBalanceChanges(balances, decoded);
79
+ }
80
+ }
64
81
  }
65
82
  export {
66
83
  UniswapV4AdapterContract
@@ -2,10 +2,13 @@ import {
2
2
  iUpshiftVaultAdapterAbi,
3
3
  iUpshiftVaultGatewayAbi
4
4
  } from "@gearbox-protocol/integrations-v3";
5
- import { decodeAbiParameters } from "viem";
5
+ import {
6
+ decodeAbiParameters
7
+ } from "viem";
6
8
  import {
7
9
  MissingSerializedParamsError
8
10
  } from "../../../sdk/index.js";
11
+ import { clampToLeftover } from "../balanceChanges.js";
9
12
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
10
13
  const abi = iUpshiftVaultAdapterAbi;
11
14
  const protocolAbi = iUpshiftVaultGatewayAbi;
@@ -52,6 +55,20 @@ class UpshiftVaultAdapterContract extends AbstractAdapterContract {
52
55
  stakedPhantomToken: this.#stakedPhantomToken ? this.labelAddress(this.#stakedPhantomToken) : void 0
53
56
  };
54
57
  }
58
+ previewDecodedBalanceChanges(balances, decoded) {
59
+ switch (decoded.functionName) {
60
+ case "depositDiff": {
61
+ const [leftoverAmount] = decoded.args;
62
+ return clampToLeftover(balances, this.asset, leftoverAmount);
63
+ }
64
+ case "redeemDiff": {
65
+ const [leftoverAmount] = decoded.args;
66
+ return clampToLeftover(balances, this.vault, leftoverAmount);
67
+ }
68
+ default:
69
+ return super.previewDecodedBalanceChanges(balances, decoded);
70
+ }
71
+ }
55
72
  }
56
73
  export {
57
74
  UpshiftVaultAdapterContract
@@ -1,7 +1,10 @@
1
1
  import { iVelodromeV2RouterAdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import { MissingSerializedParamsError } from "../../../sdk/index.js";
4
6
  import { iVelodromeV2RouterAbi } from "../abi/targetContractAbi.js";
7
+ import { clampToLeftover } from "../balanceChanges.js";
5
8
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
6
9
  const abi = iVelodromeV2RouterAdapterAbi;
7
10
  const protocolAbi = iVelodromeV2RouterAbi;
@@ -51,6 +54,16 @@ class VelodromeV2RouterAdapterContract extends AbstractAdapterContract {
51
54
  }))
52
55
  };
53
56
  }
57
+ previewDecodedBalanceChanges(balances, decoded) {
58
+ switch (decoded.functionName) {
59
+ case "swapDiffTokensForTokens": {
60
+ const [leftoverAmount, , routes] = decoded.args;
61
+ return clampToLeftover(balances, routes[0].from, leftoverAmount);
62
+ }
63
+ default:
64
+ return super.previewDecodedBalanceChanges(balances, decoded);
65
+ }
66
+ }
54
67
  }
55
68
  export {
56
69
  VelodromeV2RouterAdapterContract
@@ -1,9 +1,12 @@
1
1
  import { iwstEthv1AdapterAbi } from "@gearbox-protocol/integrations-v3";
2
- import { decodeAbiParameters } from "viem";
2
+ import {
3
+ decodeAbiParameters
4
+ } from "viem";
3
5
  import {
4
6
  MissingSerializedParamsError
5
7
  } from "../../../sdk/index.js";
6
8
  import { iwstETHAbi } from "../abi/targetContractAbi.js";
9
+ import { clampToLeftover } from "../balanceChanges.js";
7
10
  import { swapFromTransfers } from "../transferHelpers.js";
8
11
  import { AbstractAdapterContract } from "./AbstractAdapter.js";
9
12
  const abi = iwstEthv1AdapterAbi;
@@ -44,6 +47,21 @@ class WstETHV1AdapterContract extends AbstractAdapterContract {
44
47
  }
45
48
  return super.classifyLegacyOperation(parsed, transfers);
46
49
  }
50
+ previewDecodedBalanceChanges(balances, decoded) {
51
+ switch (decoded.functionName) {
52
+ case "wrapDiff": {
53
+ const [leftoverAmount] = decoded.args;
54
+ return clampToLeftover(balances, this.stETH, leftoverAmount);
55
+ }
56
+ // wstETH is the adapter's target contract
57
+ case "unwrapDiff": {
58
+ const [leftoverAmount] = decoded.args;
59
+ return clampToLeftover(balances, this.targetContract, leftoverAmount);
60
+ }
61
+ default:
62
+ return super.previewDecodedBalanceChanges(balances, decoded);
63
+ }
64
+ }
47
65
  }
48
66
  export {
49
67
  WstETHV1AdapterContract
@@ -1,5 +1,6 @@
1
1
  export * from "./AdaptersPlugin.js";
2
2
  export * from "./abi/index.js";
3
+ export * from "./balanceChanges.js";
3
4
  export * from "./contracts/index.js";
4
5
  export * from "./createAdapter.js";
5
6
  export * from "./legacyAdapterOperations.js";
@@ -1,3 +1,17 @@
1
+ class InvalidTransactionValueError extends Error {
2
+ /** Transaction `msg.value`. */
3
+ value;
4
+ /** Amount of wrapped native token added as collateral. */
5
+ wethCollateral;
6
+ constructor(value, wethCollateral) {
7
+ super(
8
+ `transaction value ${value} exceeds WETH collateral ${wethCollateral}`
9
+ );
10
+ this.name = "InvalidTransactionValueError";
11
+ this.value = value;
12
+ this.wethCollateral = wethCollateral;
13
+ }
14
+ }
1
15
  class UnsupportedOperationError extends Error {
2
16
  /** The parsed operation kind (the `operation` discriminant). */
3
17
  operation;
@@ -8,5 +22,6 @@ class UnsupportedOperationError extends Error {
8
22
  }
9
23
  }
10
24
  export {
25
+ InvalidTransactionValueError,
11
26
  UnsupportedOperationError
12
27
  };