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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/dist/cjs/dev/AccountOpener.js +7 -13
  2. package/dist/cjs/history/classifyMulticallOperations.js +2 -0
  3. package/dist/cjs/history/mapOperations.js +7 -0
  4. package/dist/cjs/plugins/adapters/abi/iConvexV1BoosterAdapter.js +143 -0
  5. package/dist/cjs/plugins/adapters/abi/index.js +2 -0
  6. package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +36 -0
  7. package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
  8. package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +19 -0
  9. package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +15 -0
  10. package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +20 -0
  11. package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +18 -0
  12. package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +28 -2
  13. package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
  14. package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
  15. package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
  16. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  17. package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
  18. package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
  19. package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +14 -0
  20. package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +15 -0
  21. package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +14 -0
  22. package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +15 -0
  23. package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +21 -0
  24. package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +10 -0
  25. package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +11 -0
  26. package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +15 -0
  27. package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +15 -0
  28. package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +11 -0
  29. package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +10 -0
  30. package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +12 -0
  31. package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +58 -0
  32. package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +11 -0
  33. package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +22 -1
  34. package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +17 -0
  35. package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +10 -0
  36. package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
  37. package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
  38. package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +15 -0
  39. package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +14 -0
  40. package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +10 -0
  41. package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +15 -0
  42. package/dist/cjs/preview/parse/classifyInnerOperations.js +14 -1
  43. package/dist/cjs/preview/prerequisites/buildPrerequisites.js +3 -8
  44. package/dist/cjs/preview/preview/errors.js +16 -0
  45. package/dist/cjs/preview/preview/previewOpenCreditAccount.js +56 -25
  46. package/dist/cjs/preview/preview/{extractExpectedBalanceChanges.js → unwrapNativeCollateral.js} +20 -23
  47. package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +3 -4
  48. package/dist/cjs/sdk/base/BaseContract.js +4 -2
  49. package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -0
  50. package/dist/cjs/sdk/router/AbstractRouterContract.js +21 -27
  51. package/dist/cjs/sdk/router/RouterV310Contract.js +11 -12
  52. package/dist/cjs/sdk/router/helpers.js +0 -5
  53. package/dist/cjs/sdk/utils/AddressMap.js +6 -0
  54. package/dist/cjs/sdk/utils/AssetsMap.js +61 -0
  55. package/dist/cjs/sdk/utils/index.js +2 -0
  56. package/dist/esm/dev/AccountOpener.js +8 -13
  57. package/dist/esm/history/classifyMulticallOperations.js +2 -0
  58. package/dist/esm/history/mapOperations.js +7 -0
  59. package/dist/esm/plugins/adapters/abi/iConvexV1BoosterAdapter.js +119 -0
  60. package/dist/esm/plugins/adapters/abi/index.js +1 -0
  61. package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +36 -0
  62. package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
  63. package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +22 -1
  64. package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +18 -1
  65. package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +23 -1
  66. package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +22 -1
  67. package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +30 -2
  68. package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
  69. package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
  70. package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
  71. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
  72. package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
  73. package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
  74. package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +17 -1
  75. package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +19 -1
  76. package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +17 -1
  77. package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
  78. package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +24 -1
  79. package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +13 -1
  80. package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +14 -1
  81. package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +18 -1
  82. package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +18 -1
  83. package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +14 -1
  84. package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +13 -1
  85. package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +15 -1
  86. package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +61 -1
  87. package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +14 -1
  88. package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +25 -2
  89. package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +20 -1
  90. package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +13 -1
  91. package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
  92. package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
  93. package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
  94. package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +17 -1
  95. package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +13 -1
  96. package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +18 -1
  97. package/dist/esm/preview/parse/classifyInnerOperations.js +14 -1
  98. package/dist/esm/preview/prerequisites/buildPrerequisites.js +4 -8
  99. package/dist/esm/preview/preview/errors.js +15 -0
  100. package/dist/esm/preview/preview/previewOpenCreditAccount.js +59 -26
  101. package/dist/esm/preview/preview/unwrapNativeCollateral.js +21 -0
  102. package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +4 -5
  103. package/dist/esm/sdk/base/BaseContract.js +4 -2
  104. package/dist/esm/sdk/base/ChainContractsRegister.js +1 -0
  105. package/dist/esm/sdk/router/AbstractRouterContract.js +25 -29
  106. package/dist/esm/sdk/router/RouterV310Contract.js +11 -12
  107. package/dist/esm/sdk/router/helpers.js +0 -4
  108. package/dist/esm/sdk/utils/AddressMap.js +6 -0
  109. package/dist/esm/sdk/utils/AssetsMap.js +37 -0
  110. package/dist/esm/sdk/utils/index.js +1 -0
  111. package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +1 -1
  112. package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +1 -1
  113. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +1 -1
  114. package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +1 -1
  115. package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +1 -1
  116. package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +1 -1
  117. package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +1 -1
  118. package/dist/types/common-utils/utils/validation/validate-balances.d.ts +1 -1
  119. package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +1 -1
  120. package/dist/types/common-utils/utils/validation/validate-quota.d.ts +1 -1
  121. package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +1 -1
  122. package/dist/types/plugins/adapters/abi/iConvexV1BoosterAdapter.d.ts +204 -0
  123. package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
  124. package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +21 -3
  125. package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
  126. package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +4 -2
  127. package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +4 -2
  128. package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +4 -2
  129. package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +4 -2
  130. package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +8 -6
  131. package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -6
  132. package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -6
  133. package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -6
  134. package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
  135. package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -6
  136. package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -6
  137. package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +4 -2
  138. package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +4 -2
  139. package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +4 -2
  140. package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +4 -2
  141. package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +4 -2
  142. package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +4 -2
  143. package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +4 -2
  144. package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +4 -2
  145. package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +4 -2
  146. package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +4 -2
  147. package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +4 -2
  148. package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +4 -2
  149. package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +4 -2
  150. package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +4 -2
  151. package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +15 -3
  152. package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +4 -2
  153. package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +4 -2
  154. package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -1
  155. package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -1
  156. package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +4 -2
  157. package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +4 -2
  158. package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +4 -2
  159. package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +4 -2
  160. package/dist/types/plugins/adapters/types.d.ts +10 -0
  161. package/dist/types/preview/parse/types-adapters.d.ts +5 -1
  162. package/dist/types/preview/parse/types-facades.d.ts +23 -1
  163. package/dist/types/preview/preview/errors.d.ts +12 -0
  164. package/dist/types/preview/preview/types.d.ts +9 -1
  165. package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
  166. package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
  167. package/dist/types/sdk/accounts/types.d.ts +2 -2
  168. package/dist/types/sdk/base/BaseContract.d.ts +1 -1
  169. package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
  170. package/dist/types/sdk/base/types.d.ts +18 -0
  171. package/dist/types/sdk/pools/types.d.ts +1 -1
  172. package/dist/types/sdk/router/AbstractRouterContract.d.ts +5 -5
  173. package/dist/types/sdk/router/helpers.d.ts +1 -2
  174. package/dist/types/sdk/router/types.d.ts +1 -15
  175. package/dist/types/sdk/utils/AddressMap.d.ts +4 -0
  176. package/dist/types/sdk/utils/AssetsMap.d.ts +26 -0
  177. package/dist/types/sdk/utils/index.d.ts +1 -0
  178. package/package.json +1 -1
  179. package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +0 -24
  180. package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +0 -21
@@ -74,6 +74,20 @@ class DaiUsdsAdapterContract extends import_AbstractAdapter.AbstractAdapterContr
74
74
  }
75
75
  return super.classifyLegacyOperation(parsed, transfers);
76
76
  }
77
+ decodeDiffLeftovers(decoded, balances) {
78
+ switch (decoded.functionName) {
79
+ case "daiToUsdsDiff": {
80
+ const [leftoverAmount] = decoded.args;
81
+ return [{ tokenIn: this.dai, leftoverAmount }];
82
+ }
83
+ case "usdsToDaiDiff": {
84
+ const [leftoverAmount] = decoded.args;
85
+ return [{ tokenIn: this.usds, leftoverAmount }];
86
+ }
87
+ default:
88
+ return super.decodeDiffLeftovers(decoded, balances);
89
+ }
90
+ }
77
91
  }
78
92
  // Annotate the CommonJS export names for ESM import in node:
79
93
  0 && (module.exports = {
@@ -91,6 +91,21 @@ class ERC4626AdapterContract extends import_AbstractAdapter.AbstractAdapterContr
91
91
  }
92
92
  return super.classifyLegacyOperation(parsed, transfers);
93
93
  }
94
+ decodeDiffLeftovers(decoded, balances) {
95
+ const share = this.#vault && this.#vault !== import_viem.zeroAddress ? this.#vault : this.targetContract;
96
+ switch (decoded.functionName) {
97
+ case "depositDiff": {
98
+ const [leftoverAmount] = decoded.args;
99
+ return [{ tokenIn: this.asset, leftoverAmount }];
100
+ }
101
+ case "redeemDiff": {
102
+ const [leftoverAmount] = decoded.args;
103
+ return [{ tokenIn: share, leftoverAmount }];
104
+ }
105
+ default:
106
+ return super.decodeDiffLeftovers(decoded, balances);
107
+ }
108
+ }
94
109
  }
95
110
  // Annotate the CommonJS export names for ESM import in node:
96
111
  0 && (module.exports = {
@@ -74,6 +74,20 @@ class ERC4626ReferralAdapterContract extends import_AbstractAdapter.AbstractAdap
74
74
  }
75
75
  return super.classifyLegacyOperation(parsed, transfers);
76
76
  }
77
+ decodeDiffLeftovers(decoded, balances) {
78
+ switch (decoded.functionName) {
79
+ case "depositDiff": {
80
+ const [leftoverAmount] = decoded.args;
81
+ return [{ tokenIn: this.asset, leftoverAmount }];
82
+ }
83
+ case "redeemDiff": {
84
+ const [leftoverAmount] = decoded.args;
85
+ return [{ tokenIn: this.targetContract, leftoverAmount }];
86
+ }
87
+ default:
88
+ return super.decodeDiffLeftovers(decoded, balances);
89
+ }
90
+ }
77
91
  }
78
92
  // Annotate the CommonJS export names for ESM import in node:
79
93
  0 && (module.exports = {
@@ -62,6 +62,21 @@ class FluidDexAdapterContract extends import_AbstractAdapter.AbstractAdapterCont
62
62
  token1: this.#token1 ? this.labelAddress(this.#token1) : void 0
63
63
  };
64
64
  }
65
+ decodeDiffLeftovers(decoded, balances) {
66
+ switch (decoded.functionName) {
67
+ case "swapInDiff": {
68
+ const [swap0to1, leftoverAmount] = decoded.args;
69
+ return [
70
+ {
71
+ tokenIn: swap0to1 ? this.token0 : this.token1,
72
+ leftoverAmount
73
+ }
74
+ ];
75
+ }
76
+ default:
77
+ return super.decodeDiffLeftovers(decoded, balances);
78
+ }
79
+ }
65
80
  }
66
81
  // Annotate the CommonJS export names for ESM import in node:
67
82
  0 && (module.exports = {
@@ -84,6 +84,27 @@ class InfinifiGatewayAdapterContract extends import_AbstractAdapter.AbstractAdap
84
84
  )
85
85
  };
86
86
  }
87
+ decodeDiffLeftovers(decoded, balances) {
88
+ switch (decoded.functionName) {
89
+ case "mintDiff": {
90
+ const [leftoverAmount] = decoded.args;
91
+ return [{ tokenIn: this.usdc, leftoverAmount }];
92
+ }
93
+ // redeem, stake and lock all spend iUSD
94
+ case "redeemDiff":
95
+ case "stakeDiff":
96
+ case "createPositionDiff": {
97
+ const [leftoverAmount] = decoded.args;
98
+ return [{ tokenIn: this.iusd, leftoverAmount }];
99
+ }
100
+ case "unstakeDiff": {
101
+ const [leftoverAmount] = decoded.args;
102
+ return [{ tokenIn: this.siusd, leftoverAmount }];
103
+ }
104
+ default:
105
+ return super.decodeDiffLeftovers(decoded, balances);
106
+ }
107
+ }
87
108
  }
88
109
  // Annotate the CommonJS export names for ESM import in node:
89
110
  0 && (module.exports = {
@@ -54,6 +54,16 @@ class KelpLRTDepositPoolAdapterContract extends import_AbstractAdapter.AbstractA
54
54
  allowedAssets: this.#allowedAssets?.map((a) => this.labelAddress(a))
55
55
  };
56
56
  }
57
+ decodeDiffLeftovers(decoded, balances) {
58
+ switch (decoded.functionName) {
59
+ case "depositAssetDiff": {
60
+ const [tokenIn, leftoverAmount] = decoded.args;
61
+ return [{ tokenIn, leftoverAmount }];
62
+ }
63
+ default:
64
+ return super.decodeDiffLeftovers(decoded, balances);
65
+ }
66
+ }
57
67
  }
58
68
  // Annotate the CommonJS export names for ESM import in node:
59
69
  0 && (module.exports = {
@@ -75,6 +75,17 @@ class LidoV1AdapterContract extends import_AbstractAdapter.AbstractAdapterContra
75
75
  classifyLegacyOperation(_parsed, transfers) {
76
76
  return { operation: "LidoSubmit", ...(0, import_transferHelpers.swapFromTransfers)(transfers) };
77
77
  }
78
+ decodeDiffLeftovers(decoded, balances) {
79
+ switch (decoded.functionName) {
80
+ // the adapter targets the WETH gateway, so WETH is spent
81
+ case "submitDiff": {
82
+ const [leftoverAmount] = decoded.args;
83
+ return [{ tokenIn: this.weth, leftoverAmount }];
84
+ }
85
+ default:
86
+ return super.decodeDiffLeftovers(decoded, balances);
87
+ }
88
+ }
78
89
  }
79
90
  // Annotate the CommonJS export names for ESM import in node:
80
91
  0 && (module.exports = {
@@ -73,6 +73,21 @@ class MellowDVVAdapterContract extends import_AbstractAdapter.AbstractAdapterCon
73
73
  }
74
74
  return super.classifyLegacyOperation(parsed, transfers);
75
75
  }
76
+ decodeDiffLeftovers(decoded, balances) {
77
+ const share = this.#vault ?? this.targetContract;
78
+ switch (decoded.functionName) {
79
+ case "depositDiff": {
80
+ const [leftoverAmount] = decoded.args;
81
+ return [{ tokenIn: this.asset, leftoverAmount }];
82
+ }
83
+ case "redeemDiff": {
84
+ const [leftoverAmount] = decoded.args;
85
+ return [{ tokenIn: share, leftoverAmount }];
86
+ }
87
+ default:
88
+ return super.decodeDiffLeftovers(decoded, balances);
89
+ }
90
+ }
76
91
  }
77
92
  // Annotate the CommonJS export names for ESM import in node:
78
93
  0 && (module.exports = {
@@ -108,6 +108,21 @@ class MellowERC4626VaultAdapterContract extends import_AbstractAdapter.AbstractA
108
108
  }
109
109
  return super.classifyLegacyOperation(parsed, transfers);
110
110
  }
111
+ decodeDiffLeftovers(decoded, balances) {
112
+ const share = this.#vault ?? this.targetContract;
113
+ switch (decoded.functionName) {
114
+ case "depositDiff": {
115
+ const [leftoverAmount] = decoded.args;
116
+ return [{ tokenIn: this.asset, leftoverAmount }];
117
+ }
118
+ case "redeemDiff": {
119
+ const [leftoverAmount] = decoded.args;
120
+ return [{ tokenIn: share, leftoverAmount }];
121
+ }
122
+ default:
123
+ return super.decodeDiffLeftovers(decoded, balances);
124
+ }
125
+ }
111
126
  }
112
127
  // Annotate the CommonJS export names for ESM import in node:
113
128
  0 && (module.exports = {
@@ -55,6 +55,17 @@ class MellowWrapperAdapterContract extends import_AbstractAdapter.AbstractAdapte
55
55
  allowedVaults: this.#allowedVaults?.map((v) => this.labelAddress(v))
56
56
  };
57
57
  }
58
+ decodeDiffLeftovers(decoded, balances) {
59
+ switch (decoded.functionName) {
60
+ case "depositDiff": {
61
+ const weth = this.tokensMeta.mustFindBySymbol("WETH").addr;
62
+ const [leftoverAmount] = decoded.args;
63
+ return [{ tokenIn: weth, leftoverAmount }];
64
+ }
65
+ default:
66
+ return super.decodeDiffLeftovers(decoded, balances);
67
+ }
68
+ }
58
69
  }
59
70
  // Annotate the CommonJS export names for ESM import in node:
60
71
  0 && (module.exports = {
@@ -72,6 +72,16 @@ class MidasIssuanceVaultAdapterContract extends import_AbstractAdapter.AbstractA
72
72
  allowedTokens: this.#allowedTokens?.map((t) => this.labelAddress(t))
73
73
  };
74
74
  }
75
+ decodeDiffLeftovers(decoded, balances) {
76
+ switch (decoded.functionName) {
77
+ case "depositInstantDiff": {
78
+ const [tokenIn, leftoverAmount] = decoded.args;
79
+ return [{ tokenIn, leftoverAmount }];
80
+ }
81
+ default:
82
+ return super.decodeDiffLeftovers(decoded, balances);
83
+ }
84
+ }
75
85
  }
76
86
  // Annotate the CommonJS export names for ESM import in node:
77
87
  0 && (module.exports = {
@@ -77,6 +77,18 @@ class MidasRedemptionVaultAdapterContract extends import_AbstractAdapter.Abstrac
77
77
  }))
78
78
  };
79
79
  }
80
+ decodeDiffLeftovers(decoded, balances) {
81
+ switch (decoded.functionName) {
82
+ // redemption spends the mToken down to the leftover, tokenOut arg is
83
+ // the received token
84
+ case "redeemInstantDiff": {
85
+ const [, leftoverAmount] = decoded.args;
86
+ return [{ tokenIn: this.mToken, leftoverAmount }];
87
+ }
88
+ default:
89
+ return super.decodeDiffLeftovers(decoded, balances);
90
+ }
91
+ }
80
92
  }
81
93
  // Annotate the CommonJS export names for ESM import in node:
82
94
  0 && (module.exports = {
@@ -117,6 +117,64 @@ class PendleRouterAdapterContract extends import_AbstractAdapter.AbstractAdapter
117
117
  }))
118
118
  };
119
119
  }
120
+ decodeDiffLeftovers(decoded, balances) {
121
+ switch (decoded.functionName) {
122
+ case "swapDiffTokenForPt":
123
+ case "addLiquiditySingleTokenDiff": {
124
+ const [, , , diffInput] = decoded.args;
125
+ return [
126
+ {
127
+ tokenIn: diffInput.tokenIn,
128
+ leftoverAmount: diffInput.leftoverTokenIn
129
+ }
130
+ ];
131
+ }
132
+ case "swapDiffPtForToken": {
133
+ const [market, leftoverPt] = decoded.args;
134
+ const pt = this.#mustFindPendleToken(market, 0 /* PT */);
135
+ return [{ tokenIn: pt, leftoverAmount: leftoverPt }];
136
+ }
137
+ case "removeLiquiditySingleTokenDiff": {
138
+ const [market, leftoverLp] = decoded.args;
139
+ const lp = this.#mustFindPendleToken(market, 1 /* LP */);
140
+ return [{ tokenIn: lp, leftoverAmount: 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 [
156
+ {
157
+ tokenIn: candidates[0].pendleToken,
158
+ leftoverAmount: leftoverPt
159
+ }
160
+ ];
161
+ }
162
+ default:
163
+ return super.decodeDiffLeftovers(decoded, balances);
164
+ }
165
+ }
166
+ #mustFindPendleToken(market, type) {
167
+ const marketLC = market.toLowerCase();
168
+ const pair = this.allowedPairs.find(
169
+ (p) => p.market.toLowerCase() === marketLC && (p.pendleTokenType === void 0 || p.pendleTokenType === type)
170
+ );
171
+ if (!pair) {
172
+ throw new Error(
173
+ `pendle pair for market ${market} not found on adapter at ${this.address}`
174
+ );
175
+ }
176
+ return pair.pendleToken;
177
+ }
120
178
  }
121
179
  // Annotate the CommonJS export names for ESM import in node:
122
180
  0 && (module.exports = {
@@ -64,6 +64,17 @@ class SecuritizeOnRampAdapterContract extends import_AbstractAdapter.AbstractAda
64
64
  liquidityToken: this.#liquidityToken ? this.labelAddress(this.#liquidityToken) : void 0
65
65
  };
66
66
  }
67
+ decodeDiffLeftovers(decoded, balances) {
68
+ switch (decoded.functionName) {
69
+ // swaps the liquidity token into dsToken
70
+ case "swapDiff": {
71
+ const [leftoverAmount] = decoded.args;
72
+ return [{ tokenIn: this.liquidityToken, leftoverAmount }];
73
+ }
74
+ default:
75
+ return super.decodeDiffLeftovers(decoded, balances);
76
+ }
77
+ }
67
78
  }
68
79
  // Annotate the CommonJS export names for ESM import in node:
69
80
  0 && (module.exports = {
@@ -24,7 +24,17 @@ module.exports = __toCommonJS(SecuritizeSwapAdapterContract_exports);
24
24
  var import_viem = require("viem");
25
25
  var import_sdk = require("../../../sdk/index.js");
26
26
  var import_AbstractAdapter = require("./AbstractAdapter.js");
27
- const abi = [];
27
+ const abi = [
28
+ {
29
+ type: "function",
30
+ name: "buyExactInDiff",
31
+ inputs: [
32
+ { name: "leftoverAmount", type: "uint256", internalType: "uint256" }
33
+ ],
34
+ outputs: [],
35
+ stateMutability: "nonpayable"
36
+ }
37
+ ];
28
38
  const protocolAbi = [];
29
39
  class SecuritizeSwapAdapterContract extends import_AbstractAdapter.AbstractAdapterContract {
30
40
  #dsToken;
@@ -61,6 +71,17 @@ class SecuritizeSwapAdapterContract extends import_AbstractAdapter.AbstractAdapt
61
71
  stableCoinToken: this.#stableCoinToken ? this.labelAddress(this.#stableCoinToken) : void 0
62
72
  };
63
73
  }
74
+ decodeDiffLeftovers(decoded, balances) {
75
+ switch (decoded.functionName) {
76
+ // buys dsToken with the stablecoin
77
+ case "buyExactInDiff": {
78
+ const [leftoverAmount] = decoded.args;
79
+ return [{ tokenIn: this.stableCoinToken, leftoverAmount }];
80
+ }
81
+ default:
82
+ return super.decodeDiffLeftovers(decoded, balances);
83
+ }
84
+ }
64
85
  }
65
86
  // Annotate the CommonJS export names for ESM import in node:
66
87
  0 && (module.exports = {
@@ -100,6 +100,23 @@ class StakingRewardsAdapterContract extends import_AbstractAdapter.AbstractAdapt
100
100
  referral: this.#referral
101
101
  };
102
102
  }
103
+ decodeDiffLeftovers(decoded, balances) {
104
+ switch (decoded.functionName) {
105
+ case "stakeDiff": {
106
+ const [leftoverAmount] = decoded.args;
107
+ return [{ tokenIn: this.stakingToken, leftoverAmount }];
108
+ }
109
+ case "withdrawDiff": {
110
+ const [leftoverAmount] = decoded.args;
111
+ return [{ tokenIn: this.stakedPhantomToken, leftoverAmount }];
112
+ }
113
+ // no accrued rewards on a freshly opened account
114
+ case "getReward":
115
+ return [];
116
+ default:
117
+ return super.decodeDiffLeftovers(decoded, balances);
118
+ }
119
+ }
103
120
  }
104
121
  // Annotate the CommonJS export names for ESM import in node:
105
122
  0 && (module.exports = {
@@ -82,6 +82,16 @@ class TraderJoeRouterAdapterContract extends import_AbstractAdapter.AbstractAdap
82
82
  }))
83
83
  };
84
84
  }
85
+ decodeDiffLeftovers(decoded, balances) {
86
+ switch (decoded.functionName) {
87
+ case "swapDiffTokensForTokens": {
88
+ const [leftoverAmount, , path] = decoded.args;
89
+ return [{ tokenIn: path.tokenPath[0], leftoverAmount }];
90
+ }
91
+ default:
92
+ return super.decodeDiffLeftovers(decoded, balances);
93
+ }
94
+ }
85
95
  }
86
96
  // Annotate the CommonJS export names for ESM import in node:
87
97
  0 && (module.exports = {
@@ -93,6 +93,16 @@ class UniswapV2AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
93
93
  classifyLegacyOperation(_parsed, transfers) {
94
94
  return { operation: "UniswapSwap", ...(0, import_transferHelpers.swapFromTransfers)(transfers) };
95
95
  }
96
+ decodeDiffLeftovers(decoded, balances) {
97
+ switch (decoded.functionName) {
98
+ case "swapDiffTokensForTokens": {
99
+ const [leftoverAmount, , path] = decoded.args;
100
+ return [{ tokenIn: path[0], leftoverAmount }];
101
+ }
102
+ default:
103
+ return super.decodeDiffLeftovers(decoded, balances);
104
+ }
105
+ }
96
106
  }
97
107
  // Annotate the CommonJS export names for ESM import in node:
98
108
  0 && (module.exports = {
@@ -71,6 +71,26 @@ class UniswapV3AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
71
71
  }))
72
72
  };
73
73
  }
74
+ decodeDiffLeftovers(decoded, balances) {
75
+ switch (decoded.functionName) {
76
+ case "exactDiffInputSingle": {
77
+ const [params] = decoded.args;
78
+ return [
79
+ {
80
+ tokenIn: params.tokenIn,
81
+ leftoverAmount: params.leftoverAmount
82
+ }
83
+ ];
84
+ }
85
+ case "exactDiffInput": {
86
+ const [params] = decoded.args;
87
+ const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
88
+ return [{ tokenIn, leftoverAmount: params.leftoverAmount }];
89
+ }
90
+ default:
91
+ return super.decodeDiffLeftovers(decoded, balances);
92
+ }
93
+ }
74
94
  stringifyFunctionParams(params) {
75
95
  switch (params.functionName) {
76
96
  case "exactInputSingle": {
@@ -81,6 +81,21 @@ class UniswapV4AdapterContract extends import_AbstractAdapter.AbstractAdapterCon
81
81
  classifyLegacyOperation(_parsed, transfers) {
82
82
  return { operation: "UniswapSwap", ...(0, import_transferHelpers.swapFromTransfers)(transfers) };
83
83
  }
84
+ decodeDiffLeftovers(decoded, balances) {
85
+ switch (decoded.functionName) {
86
+ case "swapExactInputSingleDiff": {
87
+ const [poolKey, zeroForOne, leftoverAmount] = decoded.args;
88
+ return [
89
+ {
90
+ tokenIn: zeroForOne ? poolKey.token0 : poolKey.token1,
91
+ leftoverAmount
92
+ }
93
+ ];
94
+ }
95
+ default:
96
+ return super.decodeDiffLeftovers(decoded, balances);
97
+ }
98
+ }
84
99
  }
85
100
  // Annotate the CommonJS export names for ESM import in node:
86
101
  0 && (module.exports = {
@@ -70,6 +70,20 @@ class UpshiftVaultAdapterContract extends import_AbstractAdapter.AbstractAdapter
70
70
  stakedPhantomToken: this.#stakedPhantomToken ? this.labelAddress(this.#stakedPhantomToken) : void 0
71
71
  };
72
72
  }
73
+ decodeDiffLeftovers(decoded, balances) {
74
+ switch (decoded.functionName) {
75
+ case "depositDiff": {
76
+ const [leftoverAmount] = decoded.args;
77
+ return [{ tokenIn: this.asset, leftoverAmount }];
78
+ }
79
+ case "redeemDiff": {
80
+ const [leftoverAmount] = decoded.args;
81
+ return [{ tokenIn: this.vault, leftoverAmount }];
82
+ }
83
+ default:
84
+ return super.decodeDiffLeftovers(decoded, balances);
85
+ }
86
+ }
73
87
  }
74
88
  // Annotate the CommonJS export names for ESM import in node:
75
89
  0 && (module.exports = {
@@ -74,6 +74,16 @@ class VelodromeV2RouterAdapterContract extends import_AbstractAdapter.AbstractAd
74
74
  }))
75
75
  };
76
76
  }
77
+ decodeDiffLeftovers(decoded, balances) {
78
+ switch (decoded.functionName) {
79
+ case "swapDiffTokensForTokens": {
80
+ const [leftoverAmount, , routes] = decoded.args;
81
+ return [{ tokenIn: routes[0].from, leftoverAmount }];
82
+ }
83
+ default:
84
+ return super.decodeDiffLeftovers(decoded, balances);
85
+ }
86
+ }
77
87
  }
78
88
  // Annotate the CommonJS export names for ESM import in node:
79
89
  0 && (module.exports = {
@@ -65,6 +65,21 @@ class WstETHV1AdapterContract extends import_AbstractAdapter.AbstractAdapterCont
65
65
  }
66
66
  return super.classifyLegacyOperation(parsed, transfers);
67
67
  }
68
+ decodeDiffLeftovers(decoded, balances) {
69
+ switch (decoded.functionName) {
70
+ case "wrapDiff": {
71
+ const [leftoverAmount] = decoded.args;
72
+ return [{ tokenIn: this.stETH, leftoverAmount }];
73
+ }
74
+ // wstETH is the adapter's target contract
75
+ case "unwrapDiff": {
76
+ const [leftoverAmount] = decoded.args;
77
+ return [{ tokenIn: this.targetContract, leftoverAmount }];
78
+ }
79
+ default:
80
+ return super.decodeDiffLeftovers(decoded, balances);
81
+ }
82
+ }
68
83
  }
69
84
  // Annotate the CommonJS export names for ESM import in node:
70
85
  0 && (module.exports = {
@@ -35,7 +35,8 @@ function classifyInnerOperations(calls, props) {
35
35
  version: call.version,
36
36
  label: call.label,
37
37
  adapterFunctionName: call.functionName,
38
- adapterArgs: call.rawArgs
38
+ adapterArgs: call.rawArgs,
39
+ calldata: call.calldata
39
40
  });
40
41
  continue;
41
42
  }
@@ -82,6 +83,18 @@ function classifyFacadeInnerCall(call, underlying) {
82
83
  token: rawArgs.token,
83
84
  change: rawArgs.quotaChange
84
85
  };
86
+ case "storeExpectedBalances": {
87
+ const balanceDeltas = rawArgs.balanceDeltas;
88
+ return {
89
+ operation: "StoreExpectedBalances",
90
+ deltas: balanceDeltas.map(({ token, amount }) => ({
91
+ token,
92
+ balance: amount
93
+ }))
94
+ };
95
+ }
96
+ case "compareBalances":
97
+ return { operation: "CompareBalances" };
85
98
  default:
86
99
  return null;
87
100
  }
@@ -219,24 +219,19 @@ async function buildPrerequisites(input) {
219
219
  }
220
220
  async function collateralPrerequisites(spenderOptions, multicall, ctx) {
221
221
  const { sdk, wallet } = ctx;
222
- const required = /* @__PURE__ */ new Map();
222
+ const required = new import_sdk.AssetsMap();
223
223
  for (const op of multicall) {
224
224
  if (op.operation !== "AddCollateral" || op.amount === 0n) {
225
225
  continue;
226
226
  }
227
- const key = op.token.toLowerCase();
228
- const existing = required.get(key);
229
- required.set(key, {
230
- token: op.token,
231
- amount: (existing?.amount ?? 0n) + op.amount
232
- });
227
+ required.inc(op.token, op.amount);
233
228
  }
234
229
  if (required.size === 0) {
235
230
  return [];
236
231
  }
237
232
  const spender = await sdk.accounts.getApprovalAddress(spenderOptions);
238
233
  const prereqs = [];
239
- for (const { token, amount } of required.values()) {
234
+ for (const [token, amount] of required.entries()) {
240
235
  prereqs.push(
241
236
  new import_AllowancePrerequisite.AllowancePrerequisite({
242
237
  token,
@@ -18,9 +18,24 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var errors_exports = {};
20
20
  __export(errors_exports, {
21
+ InvalidTransactionValueError: () => InvalidTransactionValueError,
21
22
  UnsupportedOperationError: () => UnsupportedOperationError
22
23
  });
23
24
  module.exports = __toCommonJS(errors_exports);
25
+ class InvalidTransactionValueError extends Error {
26
+ /** Transaction `msg.value`. */
27
+ value;
28
+ /** Amount of wrapped native token added as collateral. */
29
+ wethCollateral;
30
+ constructor(value, wethCollateral) {
31
+ super(
32
+ `transaction value ${value} exceeds WETH collateral ${wethCollateral}`
33
+ );
34
+ this.name = "InvalidTransactionValueError";
35
+ this.value = value;
36
+ this.wethCollateral = wethCollateral;
37
+ }
38
+ }
24
39
  class UnsupportedOperationError extends Error {
25
40
  /** The parsed operation kind (the `operation` discriminant). */
26
41
  operation;
@@ -32,5 +47,6 @@ class UnsupportedOperationError extends Error {
32
47
  }
33
48
  // Annotate the CommonJS export names for ESM import in node:
34
49
  0 && (module.exports = {
50
+ InvalidTransactionValueError,
35
51
  UnsupportedOperationError
36
52
  });