@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
@@ -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.iCurveV1StableNgAdapterAbi;
@@ -120,6 +121,32 @@ class CurveV1StableNGAdapterContract extends import_AbstractAdapter.AbstractAdap
120
121
  classifyLegacyOperation(parsed, transfers) {
121
122
  return (0, import_transferHelpers.classifyCurveOperation)(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
122
123
  }
124
+ previewDecodedBalanceChanges(balances, decoded) {
125
+ switch (decoded.functionName) {
126
+ case "exchange_diff": {
127
+ const [i, , leftoverAmount] = decoded.args;
128
+ return (0, import_balanceChanges.clampToLeftover)(
129
+ balances,
130
+ (0, import_balanceChanges.curveCoin)(this.tokens, i),
131
+ leftoverAmount
132
+ );
133
+ }
134
+ case "add_diff_liquidity_one_coin": {
135
+ const [leftoverAmount, i] = decoded.args;
136
+ return (0, import_balanceChanges.clampToLeftover)(
137
+ balances,
138
+ (0, import_balanceChanges.curveCoin)(this.tokens, i),
139
+ leftoverAmount
140
+ );
141
+ }
142
+ case "remove_diff_liquidity_one_coin": {
143
+ const [leftoverAmount] = decoded.args;
144
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.lpToken, leftoverAmount);
145
+ }
146
+ default:
147
+ return super.previewDecodedBalanceChanges(balances, decoded);
148
+ }
149
+ }
123
150
  }
124
151
  // Annotate the CommonJS export names for ESM import in node:
125
152
  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.iDaiUsdsAdapterAbi;
@@ -74,6 +75,20 @@ class DaiUsdsAdapterContract extends import_AbstractAdapter.AbstractAdapterContr
74
75
  }
75
76
  return super.classifyLegacyOperation(parsed, transfers);
76
77
  }
78
+ previewDecodedBalanceChanges(balances, decoded) {
79
+ switch (decoded.functionName) {
80
+ case "daiToUsdsDiff": {
81
+ const [leftoverAmount] = decoded.args;
82
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.dai, leftoverAmount);
83
+ }
84
+ case "usdsToDaiDiff": {
85
+ const [leftoverAmount] = decoded.args;
86
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.usds, leftoverAmount);
87
+ }
88
+ default:
89
+ return super.previewDecodedBalanceChanges(balances, decoded);
90
+ }
91
+ }
77
92
  }
78
93
  // Annotate the CommonJS export names for ESM import in node:
79
94
  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.ierc4626AdapterAbi;
@@ -91,6 +92,21 @@ class ERC4626AdapterContract extends import_AbstractAdapter.AbstractAdapterContr
91
92
  }
92
93
  return super.classifyLegacyOperation(parsed, transfers);
93
94
  }
95
+ previewDecodedBalanceChanges(balances, decoded) {
96
+ const share = this.#vault && this.#vault !== import_viem.zeroAddress ? this.#vault : this.targetContract;
97
+ switch (decoded.functionName) {
98
+ case "depositDiff": {
99
+ const [leftoverAmount] = decoded.args;
100
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.asset, leftoverAmount);
101
+ }
102
+ case "redeemDiff": {
103
+ const [leftoverAmount] = decoded.args;
104
+ return (0, import_balanceChanges.clampToLeftover)(balances, share, leftoverAmount);
105
+ }
106
+ default:
107
+ return super.previewDecodedBalanceChanges(balances, decoded);
108
+ }
109
+ }
94
110
  }
95
111
  // Annotate the CommonJS export names for ESM import in node:
96
112
  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.erc4626ReferralAdapterAbi;
@@ -74,6 +75,20 @@ class ERC4626ReferralAdapterContract extends import_AbstractAdapter.AbstractAdap
74
75
  }
75
76
  return super.classifyLegacyOperation(parsed, transfers);
76
77
  }
78
+ previewDecodedBalanceChanges(balances, decoded) {
79
+ switch (decoded.functionName) {
80
+ case "depositDiff": {
81
+ const [leftoverAmount] = decoded.args;
82
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.asset, leftoverAmount);
83
+ }
84
+ case "redeemDiff": {
85
+ const [leftoverAmount] = decoded.args;
86
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.targetContract, leftoverAmount);
87
+ }
88
+ default:
89
+ return super.previewDecodedBalanceChanges(balances, decoded);
90
+ }
91
+ }
77
92
  }
78
93
  // Annotate the CommonJS export names for ESM import in node:
79
94
  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.iFluidDexAdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iFluidDexAbi;
@@ -62,6 +63,20 @@ class FluidDexAdapterContract extends import_AbstractAdapter.AbstractAdapterCont
62
63
  token1: this.#token1 ? this.labelAddress(this.#token1) : void 0
63
64
  };
64
65
  }
66
+ previewDecodedBalanceChanges(balances, decoded) {
67
+ switch (decoded.functionName) {
68
+ case "swapInDiff": {
69
+ const [swap0to1, leftoverAmount] = decoded.args;
70
+ return (0, import_balanceChanges.clampToLeftover)(
71
+ balances,
72
+ swap0to1 ? this.token0 : this.token1,
73
+ leftoverAmount
74
+ );
75
+ }
76
+ default:
77
+ return super.previewDecodedBalanceChanges(balances, decoded);
78
+ }
79
+ }
65
80
  }
66
81
  // Annotate the CommonJS export names for ESM import in node:
67
82
  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.iInfinifiGatewayAdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iInfinifiGatewayAbi;
@@ -84,6 +85,27 @@ class InfinifiGatewayAdapterContract extends import_AbstractAdapter.AbstractAdap
84
85
  )
85
86
  };
86
87
  }
88
+ previewDecodedBalanceChanges(balances, decoded) {
89
+ switch (decoded.functionName) {
90
+ case "mintDiff": {
91
+ const [leftoverAmount] = decoded.args;
92
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.usdc, leftoverAmount);
93
+ }
94
+ // redeem, stake and lock all spend iUSD
95
+ case "redeemDiff":
96
+ case "stakeDiff":
97
+ case "createPositionDiff": {
98
+ const [leftoverAmount] = decoded.args;
99
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.iusd, leftoverAmount);
100
+ }
101
+ case "unstakeDiff": {
102
+ const [leftoverAmount] = decoded.args;
103
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.siusd, leftoverAmount);
104
+ }
105
+ default:
106
+ return super.previewDecodedBalanceChanges(balances, decoded);
107
+ }
108
+ }
87
109
  }
88
110
  // Annotate the CommonJS export names for ESM import in node:
89
111
  0 && (module.exports = {
@@ -24,6 +24,7 @@ module.exports = __toCommonJS(KelpLRTDepositPoolAdapterContract_exports);
24
24
  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
+ var import_balanceChanges = require("../balanceChanges.js");
27
28
  var import_AbstractAdapter = require("./AbstractAdapter.js");
28
29
  const abi = import_integrations_v3.iKelpLrtDepositPoolAdapterAbi;
29
30
  const protocolAbi = import_integrations_v3.iKelpLrtDepositPoolGatewayAbi;
@@ -54,6 +55,16 @@ class KelpLRTDepositPoolAdapterContract extends import_AbstractAdapter.AbstractA
54
55
  allowedAssets: this.#allowedAssets?.map((a) => this.labelAddress(a))
55
56
  };
56
57
  }
58
+ previewDecodedBalanceChanges(balances, decoded) {
59
+ switch (decoded.functionName) {
60
+ case "depositAssetDiff": {
61
+ const [asset, leftoverAmount] = decoded.args;
62
+ return (0, import_balanceChanges.clampToLeftover)(balances, asset, leftoverAmount);
63
+ }
64
+ default:
65
+ return super.previewDecodedBalanceChanges(balances, decoded);
66
+ }
67
+ }
57
68
  }
58
69
  // Annotate the CommonJS export names for ESM import in node:
59
70
  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.iLidoV1AdapterAbi;
@@ -75,6 +76,17 @@ class LidoV1AdapterContract extends import_AbstractAdapter.AbstractAdapterContra
75
76
  classifyLegacyOperation(_parsed, transfers) {
76
77
  return { operation: "LidoSubmit", ...(0, import_transferHelpers.swapFromTransfers)(transfers) };
77
78
  }
79
+ previewDecodedBalanceChanges(balances, decoded) {
80
+ switch (decoded.functionName) {
81
+ // the adapter targets the WETH gateway, so WETH is spent
82
+ case "submitDiff": {
83
+ const [leftoverAmount] = decoded.args;
84
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.weth, leftoverAmount);
85
+ }
86
+ default:
87
+ return super.previewDecodedBalanceChanges(balances, decoded);
88
+ }
89
+ }
78
90
  }
79
91
  // Annotate the CommonJS export names for ESM import in node:
80
92
  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.mellowDvvAdapterAbi;
@@ -73,6 +74,21 @@ class MellowDVVAdapterContract extends import_AbstractAdapter.AbstractAdapterCon
73
74
  }
74
75
  return super.classifyLegacyOperation(parsed, transfers);
75
76
  }
77
+ previewDecodedBalanceChanges(balances, decoded) {
78
+ const share = this.#vault ?? this.targetContract;
79
+ switch (decoded.functionName) {
80
+ case "depositDiff": {
81
+ const [leftoverAmount] = decoded.args;
82
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.asset, leftoverAmount);
83
+ }
84
+ case "redeemDiff": {
85
+ const [leftoverAmount] = decoded.args;
86
+ return (0, import_balanceChanges.clampToLeftover)(balances, share, leftoverAmount);
87
+ }
88
+ default:
89
+ return super.previewDecodedBalanceChanges(balances, decoded);
90
+ }
91
+ }
76
92
  }
77
93
  // Annotate the CommonJS export names for ESM import in node:
78
94
  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.iMellow4626VaultAdapterAbi;
@@ -108,6 +109,21 @@ class MellowERC4626VaultAdapterContract extends import_AbstractAdapter.AbstractA
108
109
  }
109
110
  return super.classifyLegacyOperation(parsed, transfers);
110
111
  }
112
+ previewDecodedBalanceChanges(balances, decoded) {
113
+ const share = this.#vault ?? this.targetContract;
114
+ switch (decoded.functionName) {
115
+ case "depositDiff": {
116
+ const [leftoverAmount] = decoded.args;
117
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.asset, leftoverAmount);
118
+ }
119
+ case "redeemDiff": {
120
+ const [leftoverAmount] = decoded.args;
121
+ return (0, import_balanceChanges.clampToLeftover)(balances, share, leftoverAmount);
122
+ }
123
+ default:
124
+ return super.previewDecodedBalanceChanges(balances, decoded);
125
+ }
126
+ }
111
127
  }
112
128
  // Annotate the CommonJS export names for ESM import in node:
113
129
  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.iMellowWrapperAdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iMellowWrapperAbi;
@@ -55,6 +56,17 @@ class MellowWrapperAdapterContract extends import_AbstractAdapter.AbstractAdapte
55
56
  allowedVaults: this.#allowedVaults?.map((v) => this.labelAddress(v))
56
57
  };
57
58
  }
59
+ previewDecodedBalanceChanges(balances, decoded) {
60
+ switch (decoded.functionName) {
61
+ case "depositDiff": {
62
+ const weth = this.tokensMeta.mustFindBySymbol("WETH").addr;
63
+ const [leftoverAmount] = decoded.args;
64
+ return (0, import_balanceChanges.clampToLeftover)(balances, weth, leftoverAmount);
65
+ }
66
+ default:
67
+ return super.previewDecodedBalanceChanges(balances, decoded);
68
+ }
69
+ }
58
70
  }
59
71
  // Annotate the CommonJS export names for ESM import in node:
60
72
  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.iMidasIssuanceVaultAdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iMidasIssuanceVaultAbi;
@@ -72,6 +73,16 @@ class MidasIssuanceVaultAdapterContract extends import_AbstractAdapter.AbstractA
72
73
  allowedTokens: this.#allowedTokens?.map((t) => this.labelAddress(t))
73
74
  };
74
75
  }
76
+ previewDecodedBalanceChanges(balances, decoded) {
77
+ switch (decoded.functionName) {
78
+ case "depositInstantDiff": {
79
+ const [tokenIn, leftoverAmount] = decoded.args;
80
+ return (0, import_balanceChanges.clampToLeftover)(balances, tokenIn, leftoverAmount);
81
+ }
82
+ default:
83
+ return super.previewDecodedBalanceChanges(balances, decoded);
84
+ }
85
+ }
75
86
  }
76
87
  // Annotate the CommonJS export names for ESM import in node:
77
88
  0 && (module.exports = {
@@ -24,6 +24,7 @@ module.exports = __toCommonJS(MidasRedemptionVaultAdapterContract_exports);
24
24
  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
+ var import_balanceChanges = require("../balanceChanges.js");
27
28
  var import_AbstractAdapter = require("./AbstractAdapter.js");
28
29
  const abi = import_integrations_v3.iMidasRedemptionVaultAdapterAbi;
29
30
  const protocolAbi = import_integrations_v3.iMidasRedemptionVaultGatewayAbi;
@@ -77,6 +78,18 @@ class MidasRedemptionVaultAdapterContract extends import_AbstractAdapter.Abstrac
77
78
  }))
78
79
  };
79
80
  }
81
+ previewDecodedBalanceChanges(balances, decoded) {
82
+ switch (decoded.functionName) {
83
+ // redemption spends the mToken down to the leftover, tokenOut arg is
84
+ // the received token
85
+ case "redeemInstantDiff": {
86
+ const [, leftoverAmount] = decoded.args;
87
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.mToken, leftoverAmount);
88
+ }
89
+ default:
90
+ return super.previewDecodedBalanceChanges(balances, decoded);
91
+ }
92
+ }
80
93
  }
81
94
  // Annotate the CommonJS export names for ESM import in node:
82
95
  0 && (module.exports = {
@@ -27,6 +27,7 @@ var import_integrations_v3 = require("@gearbox-protocol/integrations-v3");
27
27
  var import_viem = require("viem");
28
28
  var import_sdk = require("../../../sdk/index.js");
29
29
  var import_targetContractAbi = require("../abi/targetContractAbi.js");
30
+ var import_balanceChanges = require("../balanceChanges.js");
30
31
  var import_AbstractAdapter = require("./AbstractAdapter.js");
31
32
  var PendleTokenType = /* @__PURE__ */ ((PendleTokenType2) => {
32
33
  PendleTokenType2[PendleTokenType2["PT"] = 0] = "PT";
@@ -117,6 +118,58 @@ class PendleRouterAdapterContract extends import_AbstractAdapter.AbstractAdapter
117
118
  }))
118
119
  };
119
120
  }
121
+ previewDecodedBalanceChanges(balances, decoded) {
122
+ switch (decoded.functionName) {
123
+ case "swapDiffTokenForPt":
124
+ case "addLiquiditySingleTokenDiff": {
125
+ const [, , , diffInput] = decoded.args;
126
+ return (0, import_balanceChanges.clampToLeftover)(
127
+ balances,
128
+ diffInput.tokenIn,
129
+ diffInput.leftoverTokenIn
130
+ );
131
+ }
132
+ case "swapDiffPtForToken": {
133
+ const [market, leftoverPt] = decoded.args;
134
+ const pt = this.#mustFindPendleToken(market, 0 /* PT */);
135
+ return (0, import_balanceChanges.clampToLeftover)(balances, pt, leftoverPt);
136
+ }
137
+ case "removeLiquiditySingleTokenDiff": {
138
+ const [market, leftoverLp] = decoded.args;
139
+ const lp = this.#mustFindPendleToken(market, 1 /* LP */);
140
+ return (0, import_balanceChanges.clampToLeftover)(balances, lp, leftoverLp);
141
+ }
142
+ case "redeemDiffPyToToken": {
143
+ const candidates = this.allowedPairs.filter(
144
+ (p) => (p.pendleTokenType === void 0 || p.pendleTokenType === 0 /* PT */) && (balances.get(p.pendleToken) ?? 0n) > 1n
145
+ );
146
+ const ptTokens = new Set(
147
+ candidates.map((p) => p.pendleToken.toLowerCase())
148
+ );
149
+ if (ptTokens.size !== 1) {
150
+ throw new Error(
151
+ `cannot recover PT token for redeemDiffPyToToken on pendle adapter at ${this.address}: ${ptTokens.size} candidates`
152
+ );
153
+ }
154
+ const [, leftoverPt] = decoded.args;
155
+ return (0, import_balanceChanges.clampToLeftover)(balances, candidates[0].pendleToken, leftoverPt);
156
+ }
157
+ default:
158
+ return super.previewDecodedBalanceChanges(balances, decoded);
159
+ }
160
+ }
161
+ #mustFindPendleToken(market, type) {
162
+ const marketLC = market.toLowerCase();
163
+ const pair = this.allowedPairs.find(
164
+ (p) => p.market.toLowerCase() === marketLC && (p.pendleTokenType === void 0 || p.pendleTokenType === type)
165
+ );
166
+ if (!pair) {
167
+ throw new Error(
168
+ `pendle pair for market ${market} not found on adapter at ${this.address}`
169
+ );
170
+ }
171
+ return pair.pendleToken;
172
+ }
120
173
  }
121
174
  // Annotate the CommonJS export names for ESM import in node:
122
175
  0 && (module.exports = {
@@ -26,6 +26,7 @@ var import_sdk = require("../../../sdk/index.js");
26
26
  var import_iBaseOnRamp = require("../abi/securitize/iBaseOnRamp.js");
27
27
  var import_iSecuritizeOnRamp = require("../abi/securitize/iSecuritizeOnRamp.js");
28
28
  var import_iSecuritizeOnRampAdapter = require("../abi/securitize/iSecuritizeOnRampAdapter.js");
29
+ var import_balanceChanges = require("../balanceChanges.js");
29
30
  var import_AbstractAdapter = require("./AbstractAdapter.js");
30
31
  const abi = import_iSecuritizeOnRampAdapter.iSecuritizeOnRampAdapterAbi;
31
32
  const protocolAbi = [...import_iSecuritizeOnRamp.iSecuritizeOnRampAbi, ...import_iBaseOnRamp.iBaseOnRampAbi];
@@ -64,6 +65,17 @@ class SecuritizeOnRampAdapterContract extends import_AbstractAdapter.AbstractAda
64
65
  liquidityToken: this.#liquidityToken ? this.labelAddress(this.#liquidityToken) : void 0
65
66
  };
66
67
  }
68
+ previewDecodedBalanceChanges(balances, decoded) {
69
+ switch (decoded.functionName) {
70
+ // swaps the liquidity token into dsToken
71
+ case "swapDiff": {
72
+ const [leftoverAmount] = decoded.args;
73
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.liquidityToken, leftoverAmount);
74
+ }
75
+ default:
76
+ return super.previewDecodedBalanceChanges(balances, decoded);
77
+ }
78
+ }
67
79
  }
68
80
  // Annotate the CommonJS export names for ESM import in node:
69
81
  0 && (module.exports = {
@@ -23,8 +23,19 @@ __export(SecuritizeSwapAdapterContract_exports, {
23
23
  module.exports = __toCommonJS(SecuritizeSwapAdapterContract_exports);
24
24
  var import_viem = require("viem");
25
25
  var import_sdk = require("../../../sdk/index.js");
26
+ var import_balanceChanges = require("../balanceChanges.js");
26
27
  var import_AbstractAdapter = require("./AbstractAdapter.js");
27
- const abi = [];
28
+ const abi = [
29
+ {
30
+ type: "function",
31
+ name: "buyExactInDiff",
32
+ inputs: [
33
+ { name: "leftoverAmount", type: "uint256", internalType: "uint256" }
34
+ ],
35
+ outputs: [],
36
+ stateMutability: "nonpayable"
37
+ }
38
+ ];
28
39
  const protocolAbi = [];
29
40
  class SecuritizeSwapAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
30
41
  #dsToken;
@@ -61,6 +72,17 @@ class SecuritizeSwapAdapterContract extends import_AbstractAdapter.AbstractAdapt
61
72
  stableCoinToken: this.#stableCoinToken ? this.labelAddress(this.#stableCoinToken) : void 0
62
73
  };
63
74
  }
75
+ previewDecodedBalanceChanges(balances, decoded) {
76
+ switch (decoded.functionName) {
77
+ // buys dsToken with the stablecoin
78
+ case "buyExactInDiff": {
79
+ const [leftoverAmount] = decoded.args;
80
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.stableCoinToken, leftoverAmount);
81
+ }
82
+ default:
83
+ return super.previewDecodedBalanceChanges(balances, decoded);
84
+ }
85
+ }
64
86
  }
65
87
  // Annotate the CommonJS export names for ESM import in node:
66
88
  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.iStakingRewardsAdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iStakingRewardsAbi;
@@ -100,6 +101,27 @@ class StakingRewardsAdapterContract extends import_AbstractAdapter.AbstractAdapt
100
101
  referral: this.#referral
101
102
  };
102
103
  }
104
+ previewDecodedBalanceChanges(balances, decoded) {
105
+ switch (decoded.functionName) {
106
+ case "stakeDiff": {
107
+ const [leftoverAmount] = decoded.args;
108
+ return (0, import_balanceChanges.clampToLeftover)(balances, this.stakingToken, leftoverAmount);
109
+ }
110
+ case "withdrawDiff": {
111
+ const [leftoverAmount] = decoded.args;
112
+ return (0, import_balanceChanges.clampToLeftover)(
113
+ balances,
114
+ this.stakedPhantomToken,
115
+ leftoverAmount
116
+ );
117
+ }
118
+ // no accrued rewards on a freshly opened account
119
+ case "getReward":
120
+ return (0, import_balanceChanges.copyBalances)(balances);
121
+ default:
122
+ return super.previewDecodedBalanceChanges(balances, decoded);
123
+ }
124
+ }
103
125
  }
104
126
  // Annotate the CommonJS export names for ESM import in node:
105
127
  0 && (module.exports = {
@@ -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 TraderJoePoolVersion = /* @__PURE__ */ ((TraderJoePoolVersion2) => {
31
32
  TraderJoePoolVersion2[TraderJoePoolVersion2["V1"] = 0] = "V1";
@@ -82,6 +83,16 @@ class TraderJoeRouterAdapterContract extends import_AbstractAdapter.AbstractAdap
82
83
  }))
83
84
  };
84
85
  }
86
+ previewDecodedBalanceChanges(balances, decoded) {
87
+ switch (decoded.functionName) {
88
+ case "swapDiffTokensForTokens": {
89
+ const [leftoverAmount, , path] = decoded.args;
90
+ return (0, import_balanceChanges.clampToLeftover)(balances, path.tokenPath[0], leftoverAmount);
91
+ }
92
+ default:
93
+ return super.previewDecodedBalanceChanges(balances, decoded);
94
+ }
95
+ }
85
96
  }
86
97
  // Annotate the CommonJS export names for ESM import in node:
87
98
  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.iUniswapV2AdapterAbi;
@@ -93,6 +94,16 @@ class UniswapV2AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
93
94
  classifyLegacyOperation(_parsed, transfers) {
94
95
  return { operation: "UniswapSwap", ...(0, import_transferHelpers.swapFromTransfers)(transfers) };
95
96
  }
97
+ previewDecodedBalanceChanges(balances, decoded) {
98
+ switch (decoded.functionName) {
99
+ case "swapDiffTokensForTokens": {
100
+ const [leftoverAmount, , path] = decoded.args;
101
+ return (0, import_balanceChanges.clampToLeftover)(balances, path[0], leftoverAmount);
102
+ }
103
+ default:
104
+ return super.previewDecodedBalanceChanges(balances, decoded);
105
+ }
106
+ }
96
107
  }
97
108
  // Annotate the CommonJS export names for ESM import in node:
98
109
  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.iUniswapV3AdapterAbi;
30
31
  const protocolAbi = import_targetContractAbi.iUniswapV3Abi;
@@ -71,6 +72,21 @@ class UniswapV3AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
71
72
  }))
72
73
  };
73
74
  }
75
+ previewDecodedBalanceChanges(balances, decoded) {
76
+ switch (decoded.functionName) {
77
+ case "exactDiffInputSingle": {
78
+ const [params] = decoded.args;
79
+ return (0, import_balanceChanges.clampToLeftover)(balances, params.tokenIn, params.leftoverAmount);
80
+ }
81
+ case "exactDiffInput": {
82
+ const [params] = decoded.args;
83
+ const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
84
+ return (0, import_balanceChanges.clampToLeftover)(balances, tokenIn, params.leftoverAmount);
85
+ }
86
+ default:
87
+ return super.previewDecodedBalanceChanges(balances, decoded);
88
+ }
89
+ }
74
90
  stringifyFunctionParams(params) {
75
91
  switch (params.functionName) {
76
92
  case "exactInputSingle": {