@gearbox-protocol/sdk 14.12.0-next.6 → 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 (139) 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/index.js +0 -2
  41. package/dist/cjs/preview/preview/errors.js +16 -0
  42. package/dist/cjs/preview/preview/extractExpectedBalanceChanges.js +33 -11
  43. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +46 -7
  44. package/dist/cjs/preview/preview/unwrapNativeCollateral.js +59 -0
  45. package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +31 -0
  46. package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +25 -0
  47. package/dist/esm/plugins/adapters/abi/iConvexV1BoosterAdapter.js +119 -0
  48. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  49. package/dist/esm/plugins/adapters/balanceChanges.js +21 -0
  50. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +35 -0
  51. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +23 -1
  52. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +23 -1
  53. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +19 -1
  54. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +27 -1
  55. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +31 -2
  56. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +30 -1
  57. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +30 -1
  58. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +30 -1
  59. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +30 -1
  60. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +30 -1
  61. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +30 -1
  62. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +18 -1
  63. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +20 -1
  64. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +18 -1
  65. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
  66. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +25 -1
  67. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +14 -1
  68. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +15 -1
  69. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +19 -1
  70. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +19 -1
  71. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +15 -1
  72. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +14 -1
  73. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +16 -1
  74. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +56 -1
  75. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +15 -1
  76. package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +26 -2
  77. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +25 -1
  78. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +14 -1
  79. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +11 -0
  80. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +16 -0
  81. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
  82. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +18 -1
  83. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +14 -1
  84. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +19 -1
  85. package/dist/esm/plugins/adapters/index.js +1 -0
  86. package/dist/esm/preview/index.js +0 -1
  87. package/dist/esm/preview/preview/errors.js +15 -0
  88. package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +33 -11
  89. package/dist/esm/preview/preview/previewOpenCreditAccount.js +54 -8
  90. package/dist/esm/preview/preview/unwrapNativeCollateral.js +35 -0
  91. package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +33 -0
  92. package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +27 -1
  93. package/dist/types/plugins/adapters/abi/iConvexV1BoosterAdapter.d.ts +204 -0
  94. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  95. package/dist/types/plugins/adapters/balanceChanges.d.ts +21 -0
  96. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +22 -2
  97. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +3 -2
  98. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +3 -2
  99. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +3 -2
  100. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +3 -2
  101. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +7 -6
  102. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -2
  103. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -1
  104. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -2
  105. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +3 -2
  106. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -2
  107. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -2
  108. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +3 -2
  109. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +3 -2
  110. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +3 -2
  111. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +3 -2
  112. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +3 -2
  113. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +3 -2
  114. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +3 -2
  115. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +3 -2
  116. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +3 -2
  117. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +3 -2
  118. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +3 -2
  119. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +3 -2
  120. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +3 -2
  121. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +3 -2
  122. package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +14 -3
  123. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +3 -2
  124. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +3 -2
  125. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +2 -1
  126. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +2 -1
  127. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +3 -2
  128. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +3 -2
  129. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +3 -2
  130. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +3 -2
  131. package/dist/types/plugins/adapters/index.d.ts +1 -0
  132. package/dist/types/preview/index.d.ts +0 -1
  133. package/dist/types/preview/preview/errors.d.ts +12 -0
  134. package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +26 -14
  135. package/dist/types/preview/preview/types.d.ts +5 -1
  136. package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
  137. package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +13 -1
  138. package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +13 -1
  139. package/package.json +1 -1
@@ -0,0 +1,143 @@
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 iConvexV1BoosterAdapter_exports = {};
20
+ __export(iConvexV1BoosterAdapter_exports, {
21
+ iConvexV1BoosterAdapterAbi: () => iConvexV1BoosterAdapterAbi
22
+ });
23
+ module.exports = __toCommonJS(iConvexV1BoosterAdapter_exports);
24
+ const iConvexV1BoosterAdapterAbi = [
25
+ {
26
+ type: "function",
27
+ inputs: [],
28
+ name: "contractType",
29
+ outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
30
+ stateMutability: "view"
31
+ },
32
+ {
33
+ type: "function",
34
+ inputs: [],
35
+ name: "creditManager",
36
+ outputs: [{ name: "", internalType: "address", type: "address" }],
37
+ stateMutability: "view"
38
+ },
39
+ {
40
+ type: "function",
41
+ inputs: [
42
+ { name: "_pid", internalType: "uint256", type: "uint256" },
43
+ { name: "", internalType: "uint256", type: "uint256" },
44
+ { name: "_stake", internalType: "bool", type: "bool" }
45
+ ],
46
+ name: "deposit",
47
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
48
+ stateMutability: "nonpayable"
49
+ },
50
+ {
51
+ type: "function",
52
+ inputs: [
53
+ { name: "_pid", internalType: "uint256", type: "uint256" },
54
+ { name: "leftoverAmount", internalType: "uint256", type: "uint256" },
55
+ { name: "_stake", internalType: "bool", type: "bool" }
56
+ ],
57
+ name: "depositDiff",
58
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
59
+ stateMutability: "nonpayable"
60
+ },
61
+ {
62
+ type: "function",
63
+ inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
64
+ name: "pidToConvexToken",
65
+ outputs: [{ name: "", internalType: "address", type: "address" }],
66
+ stateMutability: "view"
67
+ },
68
+ {
69
+ type: "function",
70
+ inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
71
+ name: "pidToCurveToken",
72
+ outputs: [{ name: "", internalType: "address", type: "address" }],
73
+ stateMutability: "view"
74
+ },
75
+ {
76
+ type: "function",
77
+ inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
78
+ name: "pidToPhantomToken",
79
+ outputs: [{ name: "", internalType: "address", type: "address" }],
80
+ stateMutability: "view"
81
+ },
82
+ {
83
+ type: "function",
84
+ inputs: [],
85
+ name: "serialize",
86
+ outputs: [{ name: "serializedData", internalType: "bytes", type: "bytes" }],
87
+ stateMutability: "view"
88
+ },
89
+ {
90
+ type: "function",
91
+ inputs: [],
92
+ name: "targetContract",
93
+ outputs: [{ name: "", internalType: "address", type: "address" }],
94
+ stateMutability: "view"
95
+ },
96
+ {
97
+ type: "function",
98
+ inputs: [],
99
+ name: "updateSupportedPids",
100
+ outputs: [],
101
+ stateMutability: "nonpayable"
102
+ },
103
+ {
104
+ type: "function",
105
+ inputs: [],
106
+ name: "version",
107
+ outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
108
+ stateMutability: "view"
109
+ },
110
+ {
111
+ type: "function",
112
+ inputs: [
113
+ { name: "_pid", internalType: "uint256", type: "uint256" },
114
+ { name: "", internalType: "uint256", type: "uint256" }
115
+ ],
116
+ name: "withdraw",
117
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
118
+ stateMutability: "nonpayable"
119
+ },
120
+ {
121
+ type: "function",
122
+ inputs: [
123
+ { name: "_pid", internalType: "uint256", type: "uint256" },
124
+ { name: "leftoverAmount", internalType: "uint256", type: "uint256" }
125
+ ],
126
+ name: "withdrawDiff",
127
+ outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
128
+ stateMutability: "nonpayable"
129
+ },
130
+ {
131
+ type: "event",
132
+ anonymous: false,
133
+ inputs: [
134
+ { name: "pid", internalType: "uint256", type: "uint256", indexed: true }
135
+ ],
136
+ name: "AddSupportedPid"
137
+ },
138
+ { type: "error", inputs: [], name: "UnsupportedPidException" }
139
+ ];
140
+ // Annotate the CommonJS export names for ESM import in node:
141
+ 0 && (module.exports = {
142
+ iConvexV1BoosterAdapterAbi
143
+ });
@@ -17,6 +17,7 @@ var abi_exports = {};
17
17
  module.exports = __toCommonJS(abi_exports);
18
18
  __reExport(abi_exports, require("./actionAbi.js"), module.exports);
19
19
  __reExport(abi_exports, require("./conctructorAbi.js"), module.exports);
20
+ __reExport(abi_exports, require("./iConvexV1BoosterAdapter.js"), module.exports);
20
21
  __reExport(abi_exports, require("./securitize/index.js"), module.exports);
21
22
  __reExport(abi_exports, require("./targetContractAbi.js"), module.exports);
22
23
  __reExport(abi_exports, require("./utils.js"), module.exports);
@@ -24,6 +25,7 @@ __reExport(abi_exports, require("./utils.js"), module.exports);
24
25
  0 && (module.exports = {
25
26
  ...require("./actionAbi.js"),
26
27
  ...require("./conctructorAbi.js"),
28
+ ...require("./iConvexV1BoosterAdapter.js"),
27
29
  ...require("./securitize/index.js"),
28
30
  ...require("./targetContractAbi.js"),
29
31
  ...require("./utils.js")
@@ -0,0 +1,47 @@
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 balanceChanges_exports = {};
20
+ __export(balanceChanges_exports, {
21
+ clampToLeftover: () => clampToLeftover,
22
+ copyBalances: () => copyBalances,
23
+ curveCoin: () => curveCoin
24
+ });
25
+ module.exports = __toCommonJS(balanceChanges_exports);
26
+ var import_sdk = require("../../sdk/index.js");
27
+ function copyBalances(balances) {
28
+ return new import_sdk.AddressMap(balances.entries());
29
+ }
30
+ function clampToLeftover(balances, tokenIn, leftoverAmount) {
31
+ const next = copyBalances(balances);
32
+ next.upsert(tokenIn, leftoverAmount);
33
+ return next;
34
+ }
35
+ function curveCoin(tokens, i) {
36
+ const token = tokens[Number(i)];
37
+ if (!token) {
38
+ throw new Error(`curve coin index ${i} is out of range`);
39
+ }
40
+ return token;
41
+ }
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ clampToLeftover,
45
+ copyBalances,
46
+ curveCoin
47
+ });
@@ -115,6 +115,41 @@ class AbstractAdapterContract extends import_sdk.BaseContract {
115
115
  return void 0;
116
116
  }
117
117
  }
118
+ /**
119
+ * Applies the balance changes implied by a router-generated diff-style
120
+ * adapter call to a map of credit-account token balances.
121
+ *
122
+ * @param balances - Token balances before the call. Not mutated.
123
+ * @param calldata - Raw ABI-encoded adapter calldata.
124
+ * @returns A new balances map with the call's changes applied.
125
+ * @throws When the calldata cannot be decoded or the adapter (or the
126
+ * specific function) has no balance-changes support.
127
+ */
128
+ previewBalanceChanges(balances, calldata) {
129
+ let decoded;
130
+ try {
131
+ decoded = (0, import_viem.decodeFunctionData)({ abi: this.abi, data: calldata });
132
+ } catch (e) {
133
+ throw new Error(
134
+ `previewBalanceChanges: cannot decode selector ${calldata.slice(0, 10)} on ${this.contractType} adapter at ${this.address}`,
135
+ { cause: e }
136
+ );
137
+ }
138
+ return this.previewDecodedBalanceChanges(balances, decoded);
139
+ }
140
+ /**
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.
144
+ *
145
+ * @throws When the adapter (or the specific function) has no balance-changes
146
+ * support; protocol-specific subclasses override this method.
147
+ */
148
+ previewDecodedBalanceChanges(_balances, decoded) {
149
+ throw new Error(
150
+ `previewBalanceChanges is not supported for ${decoded.functionName} on ${this.contractType} adapter at ${this.address}`
151
+ );
152
+ }
118
153
  /**
119
154
  * Classifies an adapter call into a {@link LegacyAdapterOperation} using the
120
155
  * parsed call and credit-account transfer deltas.
@@ -26,6 +26,7 @@ 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");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
31
  var BalancerV3PoolStatus = /* @__PURE__ */ ((BalancerV3PoolStatus2) => {
31
32
  BalancerV3PoolStatus2[BalancerV3PoolStatus2["NOT_ALLOWED"] = 0] = "NOT_ALLOWED";
@@ -93,6 +94,25 @@ class BalancerV3RouterAdapterContract extends import_AbstractAdapter.AbstractAda
93
94
  }))
94
95
  };
95
96
  }
97
+ previewDecodedBalanceChanges(balances, decoded) {
98
+ switch (decoded.functionName) {
99
+ case "swapSingleTokenDiffIn": {
100
+ const [, tokenIn, , leftoverAmount] = decoded.args;
101
+ return (0, import_balanceChanges.clampToLeftover)(balances, tokenIn, leftoverAmount);
102
+ }
103
+ // BPT (pool token) is spent down to the leftover
104
+ case "removeLiquiditySingleTokenDiff": {
105
+ const [pool, leftoverAmount] = decoded.args;
106
+ return (0, import_balanceChanges.clampToLeftover)(balances, pool, leftoverAmount);
107
+ }
108
+ case "addLiquidityUnbalancedDiff":
109
+ throw new Error(
110
+ `previewBalanceChanges cannot resolve pool tokens for addLiquidityUnbalancedDiff on ${this.contractType} adapter at ${this.address}`
111
+ );
112
+ default:
113
+ return super.previewDecodedBalanceChanges(balances, decoded);
114
+ }
115
+ }
96
116
  }
97
117
  // Annotate the CommonJS export names for ESM import in node:
98
118
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_AbstractAdapter = require("./AbstractAdapter.js");
29
30
  const abi = import_integrations_v3.iBalancerV3WrapperAdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iBalancerV3WrapperAbi;
@@ -55,6 +56,25 @@ class BalancerV3WrapperAdapterContract extends import_AbstractAdapter.AbstractAd
55
56
  balancerPoolToken: this.#balancerPoolToken ? this.labelAddress(this.#balancerPoolToken) : void 0
56
57
  };
57
58
  }
59
+ previewDecodedBalanceChanges(balances, decoded) {
60
+ switch (decoded.functionName) {
61
+ // mint spends the pool token, burn spends the wrapper (target contract)
62
+ case "mintDiff": {
63
+ const [leftoverAmount] = decoded.args;
64
+ return (0, import_balanceChanges.clampToLeftover)(
65
+ balances,
66
+ this.balancerPoolToken,
67
+ leftoverAmount
68
+ );
69
+ }
70
+ case "burnDiff": {
71
+ const [leftoverAmount] = decoded.args;
72
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.targetContract, leftoverAmount);
73
+ }
74
+ default:
75
+ return super.previewDecodedBalanceChanges(balances, decoded);
76
+ }
77
+ }
58
78
  }
59
79
  // Annotate the CommonJS export names for ESM import in node:
60
80
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_AbstractAdapter = require("./AbstractAdapter.js");
29
30
  const abi = import_integrations_v3.iCamelotV3AdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iCamelotV3RouterAbi;
@@ -68,6 +69,21 @@ class CamelotV3AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
68
69
  }))
69
70
  };
70
71
  }
72
+ previewDecodedBalanceChanges(balances, decoded) {
73
+ switch (decoded.functionName) {
74
+ case "exactDiffInputSingle": {
75
+ const [params] = decoded.args;
76
+ return (0, import_balanceChanges.clampToLeftover)(balances, params.tokenIn, params.leftoverAmount);
77
+ }
78
+ case "exactDiffInput": {
79
+ const [params] = decoded.args;
80
+ const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
81
+ return (0, import_balanceChanges.clampToLeftover)(balances, tokenIn, params.leftoverAmount);
82
+ }
83
+ default:
84
+ return super.previewDecodedBalanceChanges(balances, decoded);
85
+ }
86
+ }
71
87
  }
72
88
  // Annotate the CommonJS export names for ESM import in node:
73
89
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_transferHelpers = require("../transferHelpers.js");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
31
  const abi = import_integrations_v3.iConvexV1BaseRewardPoolAdapterAbi;
@@ -128,6 +129,28 @@ class ConvexV1BaseRewardPoolAdapterContract extends import_AbstractAdapter.Abstr
128
129
  withdrawAmount: swap.toAmount
129
130
  };
130
131
  }
132
+ previewDecodedBalanceChanges(balances, decoded) {
133
+ switch (decoded.functionName) {
134
+ case "stakeDiff": {
135
+ const [leftoverAmount] = decoded.args;
136
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.stakingToken, leftoverAmount);
137
+ }
138
+ case "withdrawDiff":
139
+ case "withdrawDiffAndUnwrap": {
140
+ const [leftoverAmount] = decoded.args;
141
+ return (0, import_balanceChanges.clampToLeftover)(
142
+ balances,
143
+ this.stakedPhantomToken,
144
+ leftoverAmount
145
+ );
146
+ }
147
+ // no accrued rewards on a freshly opened account
148
+ case "getReward":
149
+ return (0, import_balanceChanges.copyBalances)(balances);
150
+ default:
151
+ return super.previewDecodedBalanceChanges(balances, decoded);
152
+ }
153
+ }
131
154
  }
132
155
  // Annotate the CommonJS export names for ESM import in node:
133
156
  0 && (module.exports = {
@@ -21,13 +21,14 @@ __export(ConvexV1BoosterAdapterContract_exports, {
21
21
  ConvexV1BoosterAdapterContract: () => ConvexV1BoosterAdapterContract
22
22
  });
23
23
  module.exports = __toCommonJS(ConvexV1BoosterAdapterContract_exports);
24
- var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
25
24
  var import_viem = require("viem");
26
25
  var import_sdk = require("../../../sdk/index.js");
26
+ var import_iConvexV1BoosterAdapter = require("../abi/iConvexV1BoosterAdapter.js");
27
27
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
28
+ var import_balanceChanges = require("../balanceChanges.js");
28
29
  var import_transferHelpers = require("../transferHelpers.js");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
- const abi = import_integrations_v3.iConvexV1BoosterAdapterAbi;
31
+ const abi = import_iConvexV1BoosterAdapter.iConvexV1BoosterAdapterAbi;
31
32
  const protocolAbi = import_targetContractAbi.iBoosterAbi;
32
33
  class ConvexV1BoosterAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
33
34
  #supportedPools;
@@ -102,6 +103,32 @@ class ConvexV1BoosterAdapterContract extends import_AbstractAdapter.AbstractAdap
102
103
  }
103
104
  return super.classifyLegacyOperation(parsed, transfers);
104
105
  }
106
+ previewDecodedBalanceChanges(balances, decoded) {
107
+ switch (decoded.functionName) {
108
+ // deposit spends the curve LP token, withdraw spends the convex token
109
+ case "depositDiff": {
110
+ const [pid, leftoverAmount] = decoded.args;
111
+ const pool = this.#mustFindPool(Number(pid));
112
+ return (0, import_balanceChanges.clampToLeftover)(balances, pool.curveToken, leftoverAmount);
113
+ }
114
+ case "withdrawDiff": {
115
+ const [pid, leftoverAmount] = decoded.args;
116
+ const pool = this.#mustFindPool(Number(pid));
117
+ return (0, import_balanceChanges.clampToLeftover)(balances, pool.convexToken, leftoverAmount);
118
+ }
119
+ default:
120
+ return super.previewDecodedBalanceChanges(balances, decoded);
121
+ }
122
+ }
123
+ #mustFindPool(pid) {
124
+ const pool = this.supportedPools.find((p) => p.pid === pid);
125
+ if (!pool) {
126
+ throw new Error(
127
+ `convex pool with pid ${pid} not found on booster adapter at ${this.address}`
128
+ );
129
+ }
130
+ return pool;
131
+ }
105
132
  }
106
133
  // Annotate the CommonJS export names for ESM import in node:
107
134
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_transferHelpers = require("../transferHelpers.js");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
31
  const abi = import_integrations_v3.iCurveV1_2AssetsAdapterAbi;
@@ -107,6 +108,32 @@ class Curve2AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
107
108
  classifyLegacyOperation(parsed, transfers) {
108
109
  return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
109
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
+ }
110
137
  }
111
138
  // Annotate the CommonJS export names for ESM import in node:
112
139
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_transferHelpers = require("../transferHelpers.js");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
31
  const abi = import_integrations_v3.iCurveV1_3AssetsAdapterAbi;
@@ -107,6 +108,32 @@ class Curve3AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
107
108
  classifyLegacyOperation(parsed, transfers) {
108
109
  return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
109
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
+ }
110
137
  }
111
138
  // Annotate the CommonJS export names for ESM import in node:
112
139
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_transferHelpers = require("../transferHelpers.js");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
31
  const abi = import_integrations_v3.iCurveV1_4AssetsAdapterAbi;
@@ -112,6 +113,32 @@ class Curve4AssetsAdapterContract extends import_AbstractAdapter.AbstractAdapter
112
113
  classifyLegacyOperation(parsed, transfers) {
113
114
  return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
114
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
+ }
115
142
  }
116
143
  // Annotate the CommonJS export names for ESM import in node:
117
144
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_AbstractAdapter = require("./AbstractAdapter.js");
29
30
  const abi = import_integrations_v3.iCurveV1AdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iCurvePoolAbi;
@@ -109,6 +110,32 @@ class CurveV1AdapterDeposit extends import_AbstractAdapter.AbstractAdapterContra
109
110
  `classifyLegacyOperation is not supported for legacy adapter: ${this.contractType}`
110
111
  );
111
112
  }
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
+ }
112
139
  }
113
140
  // Annotate the CommonJS export names for ESM import in node:
114
141
  0 && (module.exports = {
@@ -25,6 +25,7 @@ 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");
28
29
  var import_transferHelpers = require("../transferHelpers.js");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
31
  const abi = import_integrations_v3.iCurveV1_2AssetsAdapterAbi;
@@ -90,6 +91,32 @@ class CurveV1AdapterStETHContract extends import_AbstractAdapter.AbstractAdapter
90
91
  classifyLegacyOperation(parsed, transfers) {
91
92
  return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
92
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
+ }
93
120
  }
94
121
  // Annotate the CommonJS export names for ESM import in node:
95
122
  0 && (module.exports = {