@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.
- package/dist/cjs/plugins/adapters/abi/iConvexV1BoosterAdapter.js +143 -0
- package/dist/cjs/plugins/adapters/abi/index.js +2 -0
- package/dist/cjs/plugins/adapters/balanceChanges.js +47 -0
- package/dist/cjs/plugins/adapters/contracts/AbstractAdapter.js +35 -0
- package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +20 -0
- package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +20 -0
- package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +16 -0
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +23 -0
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +29 -2
- package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +27 -0
- package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +27 -0
- package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +27 -0
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +27 -0
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +27 -0
- package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +27 -0
- package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +16 -0
- package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +22 -0
- package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +12 -0
- package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +16 -0
- package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +16 -0
- package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +12 -0
- package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +13 -0
- package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +53 -0
- package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +12 -0
- package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +23 -1
- package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +22 -0
- package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +16 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +16 -0
- package/dist/cjs/plugins/adapters/index.js +2 -0
- package/dist/cjs/preview/index.js +0 -2
- package/dist/cjs/preview/preview/errors.js +16 -0
- package/dist/cjs/preview/preview/extractExpectedBalanceChanges.js +33 -11
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +46 -7
- package/dist/cjs/preview/preview/unwrapNativeCollateral.js +59 -0
- package/dist/cjs/sdk/market/credit/CreditFacadeV310BaseContract.js +31 -0
- package/dist/cjs/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +25 -0
- package/dist/esm/plugins/adapters/abi/iConvexV1BoosterAdapter.js +119 -0
- package/dist/esm/plugins/adapters/abi/index.js +1 -0
- package/dist/esm/plugins/adapters/balanceChanges.js +21 -0
- package/dist/esm/plugins/adapters/contracts/AbstractAdapter.js +35 -0
- package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +23 -1
- package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +23 -1
- package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +19 -1
- package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +27 -1
- package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +31 -2
- package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +30 -1
- package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +30 -1
- package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +30 -1
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +30 -1
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +30 -1
- package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +30 -1
- package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +20 -1
- package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +25 -1
- package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +15 -1
- package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +19 -1
- package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +19 -1
- package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +15 -1
- package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +16 -1
- package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +56 -1
- package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +15 -1
- package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +26 -2
- package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +25 -1
- package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +11 -0
- package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +16 -0
- package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +19 -1
- package/dist/esm/plugins/adapters/index.js +1 -0
- package/dist/esm/preview/index.js +0 -1
- package/dist/esm/preview/preview/errors.js +15 -0
- package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +33 -11
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +54 -8
- package/dist/esm/preview/preview/unwrapNativeCollateral.js +35 -0
- package/dist/esm/sdk/market/credit/CreditFacadeV310BaseContract.js +33 -0
- package/dist/esm/sdk/market/rwa/securitize/SecuritizeRWAFactory.js +27 -1
- package/dist/types/plugins/adapters/abi/iConvexV1BoosterAdapter.d.ts +204 -0
- package/dist/types/plugins/adapters/abi/index.d.ts +1 -0
- package/dist/types/plugins/adapters/balanceChanges.d.ts +21 -0
- package/dist/types/plugins/adapters/contracts/AbstractAdapter.d.ts +22 -2
- package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +7 -6
- package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -1
- package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +14 -3
- package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +2 -1
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +3 -2
- package/dist/types/plugins/adapters/index.d.ts +1 -0
- package/dist/types/preview/index.d.ts +0 -1
- package/dist/types/preview/preview/errors.d.ts +12 -0
- package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +26 -14
- package/dist/types/preview/preview/types.d.ts +5 -1
- package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
- package/dist/types/sdk/market/credit/CreditFacadeV310BaseContract.d.ts +13 -1
- package/dist/types/sdk/market/rwa/securitize/SecuritizeRWAFactory.d.ts +13 -1
- package/package.json +1 -1
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { iBalancerV3RouterAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import { MissingSerializedParamsError } from "../../../sdk/index.js";
|
|
4
6
|
import { iBalancerV3RouterAbi } from "../abi/targetContractAbi.js";
|
|
7
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
5
8
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
6
9
|
var BalancerV3PoolStatus = /* @__PURE__ */ ((BalancerV3PoolStatus2) => {
|
|
7
10
|
BalancerV3PoolStatus2[BalancerV3PoolStatus2["NOT_ALLOWED"] = 0] = "NOT_ALLOWED";
|
|
@@ -69,6 +72,25 @@ class BalancerV3RouterAdapterContract extends AbstractAdapterContract {
|
|
|
69
72
|
}))
|
|
70
73
|
};
|
|
71
74
|
}
|
|
75
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
76
|
+
switch (decoded.functionName) {
|
|
77
|
+
case "swapSingleTokenDiffIn": {
|
|
78
|
+
const [, tokenIn, , leftoverAmount] = decoded.args;
|
|
79
|
+
return clampToLeftover(balances, tokenIn, leftoverAmount);
|
|
80
|
+
}
|
|
81
|
+
// BPT (pool token) is spent down to the leftover
|
|
82
|
+
case "removeLiquiditySingleTokenDiff": {
|
|
83
|
+
const [pool, leftoverAmount] = decoded.args;
|
|
84
|
+
return clampToLeftover(balances, pool, leftoverAmount);
|
|
85
|
+
}
|
|
86
|
+
case "addLiquidityUnbalancedDiff":
|
|
87
|
+
throw new Error(
|
|
88
|
+
`previewBalanceChanges cannot resolve pool tokens for addLiquidityUnbalancedDiff on ${this.contractType} adapter at ${this.address}`
|
|
89
|
+
);
|
|
90
|
+
default:
|
|
91
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
72
94
|
}
|
|
73
95
|
export {
|
|
74
96
|
BalancerV3PoolStatus,
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { iBalancerV3WrapperAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import { MissingSerializedParamsError } from "../../../sdk/index.js";
|
|
4
6
|
import { iBalancerV3WrapperAbi } from "../abi/targetContractAbi.js";
|
|
7
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
5
8
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
6
9
|
const abi = iBalancerV3WrapperAdapterAbi;
|
|
7
10
|
const protocolAbi = iBalancerV3WrapperAbi;
|
|
@@ -32,6 +35,25 @@ class BalancerV3WrapperAdapterContract extends AbstractAdapterContract {
|
|
|
32
35
|
balancerPoolToken: this.#balancerPoolToken ? this.labelAddress(this.#balancerPoolToken) : void 0
|
|
33
36
|
};
|
|
34
37
|
}
|
|
38
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
39
|
+
switch (decoded.functionName) {
|
|
40
|
+
// mint spends the pool token, burn spends the wrapper (target contract)
|
|
41
|
+
case "mintDiff": {
|
|
42
|
+
const [leftoverAmount] = decoded.args;
|
|
43
|
+
return clampToLeftover(
|
|
44
|
+
balances,
|
|
45
|
+
this.balancerPoolToken,
|
|
46
|
+
leftoverAmount
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
case "burnDiff": {
|
|
50
|
+
const [leftoverAmount] = decoded.args;
|
|
51
|
+
return clampToLeftover(balances, this.targetContract, leftoverAmount);
|
|
52
|
+
}
|
|
53
|
+
default:
|
|
54
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
35
57
|
}
|
|
36
58
|
export {
|
|
37
59
|
BalancerV3WrapperAdapterContract
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { iCamelotV3AdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import { MissingSerializedParamsError } from "../../../sdk/index.js";
|
|
4
6
|
import { iCamelotV3RouterAbi } from "../abi/targetContractAbi.js";
|
|
7
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
5
8
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
6
9
|
const abi = iCamelotV3AdapterAbi;
|
|
7
10
|
const protocolAbi = iCamelotV3RouterAbi;
|
|
@@ -45,6 +48,21 @@ class CamelotV3AdapterContract extends AbstractAdapterContract {
|
|
|
45
48
|
}))
|
|
46
49
|
};
|
|
47
50
|
}
|
|
51
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
52
|
+
switch (decoded.functionName) {
|
|
53
|
+
case "exactDiffInputSingle": {
|
|
54
|
+
const [params] = decoded.args;
|
|
55
|
+
return clampToLeftover(balances, params.tokenIn, params.leftoverAmount);
|
|
56
|
+
}
|
|
57
|
+
case "exactDiffInput": {
|
|
58
|
+
const [params] = decoded.args;
|
|
59
|
+
const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
|
|
60
|
+
return clampToLeftover(balances, tokenIn, params.leftoverAmount);
|
|
61
|
+
}
|
|
62
|
+
default:
|
|
63
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
48
66
|
}
|
|
49
67
|
export {
|
|
50
68
|
CamelotV3AdapterContract
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { iConvexV1BaseRewardPoolAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters,
|
|
4
|
+
zeroAddress
|
|
5
|
+
} from "viem";
|
|
3
6
|
import {
|
|
4
7
|
MissingSerializedParamsError
|
|
5
8
|
} from "../../../sdk/index.js";
|
|
6
9
|
import { iBaseRewardPoolAbi } from "../abi/targetContractAbi.js";
|
|
10
|
+
import { clampToLeftover, copyBalances } from "../balanceChanges.js";
|
|
7
11
|
import {
|
|
8
12
|
allTransfersAsTokenAmounts,
|
|
9
13
|
fnSigToName,
|
|
@@ -113,6 +117,28 @@ class ConvexV1BaseRewardPoolAdapterContract extends AbstractAdapterContract {
|
|
|
113
117
|
withdrawAmount: swap.toAmount
|
|
114
118
|
};
|
|
115
119
|
}
|
|
120
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
121
|
+
switch (decoded.functionName) {
|
|
122
|
+
case "stakeDiff": {
|
|
123
|
+
const [leftoverAmount] = decoded.args;
|
|
124
|
+
return clampToLeftover(balances, this.stakingToken, leftoverAmount);
|
|
125
|
+
}
|
|
126
|
+
case "withdrawDiff":
|
|
127
|
+
case "withdrawDiffAndUnwrap": {
|
|
128
|
+
const [leftoverAmount] = decoded.args;
|
|
129
|
+
return clampToLeftover(
|
|
130
|
+
balances,
|
|
131
|
+
this.stakedPhantomToken,
|
|
132
|
+
leftoverAmount
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
// no accrued rewards on a freshly opened account
|
|
136
|
+
case "getReward":
|
|
137
|
+
return copyBalances(balances);
|
|
138
|
+
default:
|
|
139
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
116
142
|
}
|
|
117
143
|
export {
|
|
118
144
|
ConvexV1BaseRewardPoolAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
decodeAbiParameters
|
|
3
|
+
} from "viem";
|
|
3
4
|
import {
|
|
4
5
|
MissingSerializedParamsError
|
|
5
6
|
} from "../../../sdk/index.js";
|
|
7
|
+
import { iConvexV1BoosterAdapterAbi } from "../abi/iConvexV1BoosterAdapter.js";
|
|
6
8
|
import { iBoosterAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
7
10
|
import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
|
|
8
11
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
12
|
const abi = iConvexV1BoosterAdapterAbi;
|
|
@@ -81,6 +84,32 @@ class ConvexV1BoosterAdapterContract extends AbstractAdapterContract {
|
|
|
81
84
|
}
|
|
82
85
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
83
86
|
}
|
|
87
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
88
|
+
switch (decoded.functionName) {
|
|
89
|
+
// deposit spends the curve LP token, withdraw spends the convex token
|
|
90
|
+
case "depositDiff": {
|
|
91
|
+
const [pid, leftoverAmount] = decoded.args;
|
|
92
|
+
const pool = this.#mustFindPool(Number(pid));
|
|
93
|
+
return clampToLeftover(balances, pool.curveToken, leftoverAmount);
|
|
94
|
+
}
|
|
95
|
+
case "withdrawDiff": {
|
|
96
|
+
const [pid, leftoverAmount] = decoded.args;
|
|
97
|
+
const pool = this.#mustFindPool(Number(pid));
|
|
98
|
+
return clampToLeftover(balances, pool.convexToken, leftoverAmount);
|
|
99
|
+
}
|
|
100
|
+
default:
|
|
101
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
#mustFindPool(pid) {
|
|
105
|
+
const pool = this.supportedPools.find((p) => p.pid === pid);
|
|
106
|
+
if (!pool) {
|
|
107
|
+
throw new Error(
|
|
108
|
+
`convex pool with pid ${pid} not found on booster adapter at ${this.address}`
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
return pool;
|
|
112
|
+
}
|
|
84
113
|
}
|
|
85
114
|
export {
|
|
86
115
|
ConvexV1BoosterAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iCurveV1_2AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iCurvePool_2Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover, curveCoin } from "../balanceChanges.js";
|
|
7
10
|
import { classifyCurveOperation } from "../transferHelpers.js";
|
|
8
11
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
12
|
const abi = iCurveV1_2AssetsAdapterAbi;
|
|
@@ -86,6 +89,32 @@ class Curve2AssetsAdapterContract extends AbstractAdapterContract {
|
|
|
86
89
|
classifyLegacyOperation(parsed, transfers) {
|
|
87
90
|
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
88
91
|
}
|
|
92
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
93
|
+
switch (decoded.functionName) {
|
|
94
|
+
case "exchange_diff": {
|
|
95
|
+
const [i, , leftoverAmount] = decoded.args;
|
|
96
|
+
return clampToLeftover(
|
|
97
|
+
balances,
|
|
98
|
+
curveCoin(this.tokens, i),
|
|
99
|
+
leftoverAmount
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
case "add_diff_liquidity_one_coin": {
|
|
103
|
+
const [leftoverAmount, i] = decoded.args;
|
|
104
|
+
return clampToLeftover(
|
|
105
|
+
balances,
|
|
106
|
+
curveCoin(this.tokens, i),
|
|
107
|
+
leftoverAmount
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
case "remove_diff_liquidity_one_coin": {
|
|
111
|
+
const [leftoverAmount] = decoded.args;
|
|
112
|
+
return clampToLeftover(balances, this.lpToken, leftoverAmount);
|
|
113
|
+
}
|
|
114
|
+
default:
|
|
115
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
89
118
|
}
|
|
90
119
|
export {
|
|
91
120
|
Curve2AssetsAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iCurveV1_3AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iCurvePool_3Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover, curveCoin } from "../balanceChanges.js";
|
|
7
10
|
import { classifyCurveOperation } from "../transferHelpers.js";
|
|
8
11
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
12
|
const abi = iCurveV1_3AssetsAdapterAbi;
|
|
@@ -86,6 +89,32 @@ class Curve3AssetsAdapterContract extends AbstractAdapterContract {
|
|
|
86
89
|
classifyLegacyOperation(parsed, transfers) {
|
|
87
90
|
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
88
91
|
}
|
|
92
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
93
|
+
switch (decoded.functionName) {
|
|
94
|
+
case "exchange_diff": {
|
|
95
|
+
const [i, , leftoverAmount] = decoded.args;
|
|
96
|
+
return clampToLeftover(
|
|
97
|
+
balances,
|
|
98
|
+
curveCoin(this.tokens, i),
|
|
99
|
+
leftoverAmount
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
case "add_diff_liquidity_one_coin": {
|
|
103
|
+
const [leftoverAmount, i] = decoded.args;
|
|
104
|
+
return clampToLeftover(
|
|
105
|
+
balances,
|
|
106
|
+
curveCoin(this.tokens, i),
|
|
107
|
+
leftoverAmount
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
case "remove_diff_liquidity_one_coin": {
|
|
111
|
+
const [leftoverAmount] = decoded.args;
|
|
112
|
+
return clampToLeftover(balances, this.lpToken, leftoverAmount);
|
|
113
|
+
}
|
|
114
|
+
default:
|
|
115
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
89
118
|
}
|
|
90
119
|
export {
|
|
91
120
|
Curve3AssetsAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iCurveV1_4AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iCurvePool_4Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover, curveCoin } from "../balanceChanges.js";
|
|
7
10
|
import { classifyCurveOperation } from "../transferHelpers.js";
|
|
8
11
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
12
|
const abi = iCurveV1_4AssetsAdapterAbi;
|
|
@@ -91,6 +94,32 @@ class Curve4AssetsAdapterContract extends AbstractAdapterContract {
|
|
|
91
94
|
classifyLegacyOperation(parsed, transfers) {
|
|
92
95
|
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
93
96
|
}
|
|
97
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
98
|
+
switch (decoded.functionName) {
|
|
99
|
+
case "exchange_diff": {
|
|
100
|
+
const [i, , leftoverAmount] = decoded.args;
|
|
101
|
+
return clampToLeftover(
|
|
102
|
+
balances,
|
|
103
|
+
curveCoin(this.tokens, i),
|
|
104
|
+
leftoverAmount
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
case "add_diff_liquidity_one_coin": {
|
|
108
|
+
const [leftoverAmount, i] = decoded.args;
|
|
109
|
+
return clampToLeftover(
|
|
110
|
+
balances,
|
|
111
|
+
curveCoin(this.tokens, i),
|
|
112
|
+
leftoverAmount
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
case "remove_diff_liquidity_one_coin": {
|
|
116
|
+
const [leftoverAmount] = decoded.args;
|
|
117
|
+
return clampToLeftover(balances, this.lpToken, leftoverAmount);
|
|
118
|
+
}
|
|
119
|
+
default:
|
|
120
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
94
123
|
}
|
|
95
124
|
export {
|
|
96
125
|
Curve4AssetsAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iCurveV1AdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover, curveCoin } from "../balanceChanges.js";
|
|
7
10
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
8
11
|
const abi = iCurveV1AdapterAbi;
|
|
9
12
|
const protocolAbi = iCurvePoolAbi;
|
|
@@ -88,6 +91,32 @@ class CurveV1AdapterDeposit extends AbstractAdapterContract {
|
|
|
88
91
|
`classifyLegacyOperation is not supported for legacy adapter: ${this.contractType}`
|
|
89
92
|
);
|
|
90
93
|
}
|
|
94
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
95
|
+
switch (decoded.functionName) {
|
|
96
|
+
case "exchange_diff": {
|
|
97
|
+
const [i, , leftoverAmount] = decoded.args;
|
|
98
|
+
return clampToLeftover(
|
|
99
|
+
balances,
|
|
100
|
+
curveCoin(this.tokens, i),
|
|
101
|
+
leftoverAmount
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
case "add_diff_liquidity_one_coin": {
|
|
105
|
+
const [leftoverAmount, i] = decoded.args;
|
|
106
|
+
return clampToLeftover(
|
|
107
|
+
balances,
|
|
108
|
+
curveCoin(this.tokens, i),
|
|
109
|
+
leftoverAmount
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
case "remove_diff_liquidity_one_coin": {
|
|
113
|
+
const [leftoverAmount] = decoded.args;
|
|
114
|
+
return clampToLeftover(balances, this.lpToken, leftoverAmount);
|
|
115
|
+
}
|
|
116
|
+
default:
|
|
117
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
91
120
|
}
|
|
92
121
|
export {
|
|
93
122
|
CurveV1AdapterDeposit
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iCurveV1_2AssetsAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iCurvePool_2Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover, curveCoin } from "../balanceChanges.js";
|
|
7
10
|
import { classifyCurveOperation } from "../transferHelpers.js";
|
|
8
11
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
12
|
const abi = iCurveV1_2AssetsAdapterAbi;
|
|
@@ -69,6 +72,32 @@ class CurveV1AdapterStETHContract extends AbstractAdapterContract {
|
|
|
69
72
|
classifyLegacyOperation(parsed, transfers) {
|
|
70
73
|
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
71
74
|
}
|
|
75
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
76
|
+
switch (decoded.functionName) {
|
|
77
|
+
case "exchange_diff": {
|
|
78
|
+
const [i, , leftoverAmount] = decoded.args;
|
|
79
|
+
return clampToLeftover(
|
|
80
|
+
balances,
|
|
81
|
+
curveCoin(this.tokens, i),
|
|
82
|
+
leftoverAmount
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
case "add_diff_liquidity_one_coin": {
|
|
86
|
+
const [leftoverAmount, i] = decoded.args;
|
|
87
|
+
return clampToLeftover(
|
|
88
|
+
balances,
|
|
89
|
+
curveCoin(this.tokens, i),
|
|
90
|
+
leftoverAmount
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
case "remove_diff_liquidity_one_coin": {
|
|
94
|
+
const [leftoverAmount] = decoded.args;
|
|
95
|
+
return clampToLeftover(balances, this.lpToken, leftoverAmount);
|
|
96
|
+
}
|
|
97
|
+
default:
|
|
98
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
72
101
|
}
|
|
73
102
|
export {
|
|
74
103
|
CurveV1AdapterStETHContract
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { iCurveV1StableNgAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
@@ -7,6 +9,7 @@ import {
|
|
|
7
9
|
iCurvePoolAbi,
|
|
8
10
|
iCurvePoolStableNGAbi
|
|
9
11
|
} from "../abi/targetContractAbi.js";
|
|
12
|
+
import { clampToLeftover, curveCoin } from "../balanceChanges.js";
|
|
10
13
|
import { classifyCurveOperation } from "../transferHelpers.js";
|
|
11
14
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
12
15
|
const abi = iCurveV1StableNgAdapterAbi;
|
|
@@ -102,6 +105,32 @@ class CurveV1StableNGAdapterContract extends AbstractAdapterContract {
|
|
|
102
105
|
classifyLegacyOperation(parsed, transfers) {
|
|
103
106
|
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
104
107
|
}
|
|
108
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
109
|
+
switch (decoded.functionName) {
|
|
110
|
+
case "exchange_diff": {
|
|
111
|
+
const [i, , leftoverAmount] = decoded.args;
|
|
112
|
+
return clampToLeftover(
|
|
113
|
+
balances,
|
|
114
|
+
curveCoin(this.tokens, i),
|
|
115
|
+
leftoverAmount
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
case "add_diff_liquidity_one_coin": {
|
|
119
|
+
const [leftoverAmount, i] = decoded.args;
|
|
120
|
+
return clampToLeftover(
|
|
121
|
+
balances,
|
|
122
|
+
curveCoin(this.tokens, i),
|
|
123
|
+
leftoverAmount
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
case "remove_diff_liquidity_one_coin": {
|
|
127
|
+
const [leftoverAmount] = decoded.args;
|
|
128
|
+
return clampToLeftover(balances, this.lpToken, leftoverAmount);
|
|
129
|
+
}
|
|
130
|
+
default:
|
|
131
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
105
134
|
}
|
|
106
135
|
export {
|
|
107
136
|
CurveV1StableNGAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iDaiUsdsAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iDaiUsdsAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
7
10
|
import { swapFromTransfers } from "../transferHelpers.js";
|
|
8
11
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
12
|
const abi = iDaiUsdsAdapterAbi;
|
|
@@ -53,6 +56,20 @@ class DaiUsdsAdapterContract extends AbstractAdapterContract {
|
|
|
53
56
|
}
|
|
54
57
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
55
58
|
}
|
|
59
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
60
|
+
switch (decoded.functionName) {
|
|
61
|
+
case "daiToUsdsDiff": {
|
|
62
|
+
const [leftoverAmount] = decoded.args;
|
|
63
|
+
return clampToLeftover(balances, this.dai, leftoverAmount);
|
|
64
|
+
}
|
|
65
|
+
case "usdsToDaiDiff": {
|
|
66
|
+
const [leftoverAmount] = decoded.args;
|
|
67
|
+
return clampToLeftover(balances, this.usds, leftoverAmount);
|
|
68
|
+
}
|
|
69
|
+
default:
|
|
70
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
56
73
|
}
|
|
57
74
|
export {
|
|
58
75
|
DaiUsdsAdapterContract
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { ierc4626AdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters,
|
|
4
|
+
zeroAddress
|
|
5
|
+
} from "viem";
|
|
3
6
|
import {
|
|
4
7
|
MissingSerializedParamsError
|
|
5
8
|
} from "../../../sdk/index.js";
|
|
6
9
|
import { iERC4626Abi } from "../abi/targetContractAbi.js";
|
|
10
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
7
11
|
import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
|
|
8
12
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
13
|
const abi = ierc4626AdapterAbi;
|
|
@@ -70,6 +74,21 @@ class ERC4626AdapterContract extends AbstractAdapterContract {
|
|
|
70
74
|
}
|
|
71
75
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
72
76
|
}
|
|
77
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
78
|
+
const share = this.#vault && this.#vault !== zeroAddress ? this.#vault : this.targetContract;
|
|
79
|
+
switch (decoded.functionName) {
|
|
80
|
+
case "depositDiff": {
|
|
81
|
+
const [leftoverAmount] = decoded.args;
|
|
82
|
+
return clampToLeftover(balances, this.asset, leftoverAmount);
|
|
83
|
+
}
|
|
84
|
+
case "redeemDiff": {
|
|
85
|
+
const [leftoverAmount] = decoded.args;
|
|
86
|
+
return clampToLeftover(balances, share, leftoverAmount);
|
|
87
|
+
}
|
|
88
|
+
default:
|
|
89
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
73
92
|
}
|
|
74
93
|
export {
|
|
75
94
|
ERC4626AdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { erc4626ReferralAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iERC4626ReferralAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
7
10
|
import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
|
|
8
11
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
9
12
|
const abi = erc4626ReferralAdapterAbi;
|
|
@@ -53,6 +56,20 @@ class ERC4626ReferralAdapterContract extends AbstractAdapterContract {
|
|
|
53
56
|
}
|
|
54
57
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
55
58
|
}
|
|
59
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
60
|
+
switch (decoded.functionName) {
|
|
61
|
+
case "depositDiff": {
|
|
62
|
+
const [leftoverAmount] = decoded.args;
|
|
63
|
+
return clampToLeftover(balances, this.asset, leftoverAmount);
|
|
64
|
+
}
|
|
65
|
+
case "redeemDiff": {
|
|
66
|
+
const [leftoverAmount] = decoded.args;
|
|
67
|
+
return clampToLeftover(balances, this.targetContract, leftoverAmount);
|
|
68
|
+
}
|
|
69
|
+
default:
|
|
70
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
56
73
|
}
|
|
57
74
|
export {
|
|
58
75
|
ERC4626ReferralAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iFluidDexAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iFluidDexAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
7
10
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
8
11
|
const abi = iFluidDexAdapterAbi;
|
|
9
12
|
const protocolAbi = iFluidDexAbi;
|
|
@@ -41,6 +44,20 @@ class FluidDexAdapterContract extends AbstractAdapterContract {
|
|
|
41
44
|
token1: this.#token1 ? this.labelAddress(this.#token1) : void 0
|
|
42
45
|
};
|
|
43
46
|
}
|
|
47
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
48
|
+
switch (decoded.functionName) {
|
|
49
|
+
case "swapInDiff": {
|
|
50
|
+
const [swap0to1, leftoverAmount] = decoded.args;
|
|
51
|
+
return clampToLeftover(
|
|
52
|
+
balances,
|
|
53
|
+
swap0to1 ? this.token0 : this.token1,
|
|
54
|
+
leftoverAmount
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
default:
|
|
58
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
44
61
|
}
|
|
45
62
|
export {
|
|
46
63
|
FluidDexAdapterContract
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { iInfinifiGatewayAdapterAbi } from "@gearbox-protocol/integrations-v3";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
decodeAbiParameters
|
|
4
|
+
} from "viem";
|
|
3
5
|
import {
|
|
4
6
|
MissingSerializedParamsError
|
|
5
7
|
} from "../../../sdk/index.js";
|
|
6
8
|
import { iInfinifiGatewayAbi } from "../abi/targetContractAbi.js";
|
|
9
|
+
import { clampToLeftover } from "../balanceChanges.js";
|
|
7
10
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
8
11
|
const abi = iInfinifiGatewayAdapterAbi;
|
|
9
12
|
const protocolAbi = iInfinifiGatewayAbi;
|
|
@@ -63,6 +66,27 @@ class InfinifiGatewayAdapterContract extends AbstractAdapterContract {
|
|
|
63
66
|
)
|
|
64
67
|
};
|
|
65
68
|
}
|
|
69
|
+
previewDecodedBalanceChanges(balances, decoded) {
|
|
70
|
+
switch (decoded.functionName) {
|
|
71
|
+
case "mintDiff": {
|
|
72
|
+
const [leftoverAmount] = decoded.args;
|
|
73
|
+
return clampToLeftover(balances, this.usdc, leftoverAmount);
|
|
74
|
+
}
|
|
75
|
+
// redeem, stake and lock all spend iUSD
|
|
76
|
+
case "redeemDiff":
|
|
77
|
+
case "stakeDiff":
|
|
78
|
+
case "createPositionDiff": {
|
|
79
|
+
const [leftoverAmount] = decoded.args;
|
|
80
|
+
return clampToLeftover(balances, this.iusd, leftoverAmount);
|
|
81
|
+
}
|
|
82
|
+
case "unstakeDiff": {
|
|
83
|
+
const [leftoverAmount] = decoded.args;
|
|
84
|
+
return clampToLeftover(balances, this.siusd, leftoverAmount);
|
|
85
|
+
}
|
|
86
|
+
default:
|
|
87
|
+
return super.previewDecodedBalanceChanges(balances, decoded);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
66
90
|
}
|
|
67
91
|
export {
|
|
68
92
|
InfinifiGatewayAdapterContract
|