@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.
- package/dist/cjs/dev/AccountOpener.js +7 -13
- package/dist/cjs/history/classifyMulticallOperations.js +2 -0
- package/dist/cjs/history/mapOperations.js +7 -0
- 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/contracts/AbstractAdapter.js +36 -0
- package/dist/cjs/plugins/adapters/contracts/AbstractCurveAdapter.js +66 -0
- package/dist/cjs/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +19 -0
- package/dist/cjs/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/CamelotV3AdapterContract.js +20 -0
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +18 -0
- package/dist/cjs/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +28 -2
- package/dist/cjs/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
- package/dist/cjs/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
- package/dist/cjs/plugins/adapters/contracts/DaiUsdsAdapterContract.js +14 -0
- package/dist/cjs/plugins/adapters/contracts/ERC4626AdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +14 -0
- package/dist/cjs/plugins/adapters/contracts/FluidDexAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +21 -0
- package/dist/cjs/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/LidoV1AdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/MellowDVVAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/MellowWrapperAdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +12 -0
- package/dist/cjs/plugins/adapters/contracts/PendleRouterAdapterContract.js +58 -0
- package/dist/cjs/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +11 -0
- package/dist/cjs/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +22 -1
- package/dist/cjs/plugins/adapters/contracts/StakingRewardsAdapterContract.js +17 -0
- package/dist/cjs/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
- package/dist/cjs/plugins/adapters/contracts/UniswapV4AdapterContract.js +15 -0
- package/dist/cjs/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +14 -0
- package/dist/cjs/plugins/adapters/contracts/VelodromeV2AdapterContract.js +10 -0
- package/dist/cjs/plugins/adapters/contracts/WstETHV1AdapterContract.js +15 -0
- package/dist/cjs/preview/parse/classifyInnerOperations.js +14 -1
- package/dist/cjs/preview/prerequisites/buildPrerequisites.js +3 -8
- package/dist/cjs/preview/preview/errors.js +16 -0
- package/dist/cjs/preview/preview/previewOpenCreditAccount.js +56 -25
- package/dist/cjs/preview/preview/{extractExpectedBalanceChanges.js → unwrapNativeCollateral.js} +20 -23
- package/dist/cjs/sdk/accounts/CreditAccountsServiceV310.js +3 -4
- package/dist/cjs/sdk/base/BaseContract.js +4 -2
- package/dist/cjs/sdk/base/ChainContractsRegister.js +1 -0
- package/dist/cjs/sdk/router/AbstractRouterContract.js +21 -27
- package/dist/cjs/sdk/router/RouterV310Contract.js +11 -12
- package/dist/cjs/sdk/router/helpers.js +0 -5
- package/dist/cjs/sdk/utils/AddressMap.js +6 -0
- package/dist/cjs/sdk/utils/AssetsMap.js +61 -0
- package/dist/cjs/sdk/utils/index.js +2 -0
- package/dist/esm/dev/AccountOpener.js +8 -13
- package/dist/esm/history/classifyMulticallOperations.js +2 -0
- package/dist/esm/history/mapOperations.js +7 -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/contracts/AbstractAdapter.js +36 -0
- package/dist/esm/plugins/adapters/contracts/AbstractCurveAdapter.js +42 -0
- package/dist/esm/plugins/adapters/contracts/BalancerV3RouterAdapterContract.js +22 -1
- package/dist/esm/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/CamelotV3AdapterContract.js +23 -1
- package/dist/esm/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.js +22 -1
- package/dist/esm/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.js +30 -2
- package/dist/esm/plugins/adapters/contracts/Curve2AssetsAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/Curve3AssetsAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/Curve4AssetsAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterDeposit.js +2 -2
- package/dist/esm/plugins/adapters/contracts/CurveV1AdapterStETHContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/CurveV1StableNGAdapterContract.js +2 -7
- package/dist/esm/plugins/adapters/contracts/DaiUsdsAdapterContract.js +17 -1
- package/dist/esm/plugins/adapters/contracts/ERC4626AdapterContract.js +19 -1
- package/dist/esm/plugins/adapters/contracts/ERC4626ReferralAdapterContract.js +17 -1
- package/dist/esm/plugins/adapters/contracts/FluidDexAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/InfinifiGatewayAdapterContract.js +24 -1
- package/dist/esm/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/LidoV1AdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/MellowDVVAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/MellowWrapperAdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.js +15 -1
- package/dist/esm/plugins/adapters/contracts/PendleRouterAdapterContract.js +61 -1
- package/dist/esm/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.js +14 -1
- package/dist/esm/plugins/adapters/contracts/SecuritizeSwapAdapterContract.js +25 -2
- package/dist/esm/plugins/adapters/contracts/StakingRewardsAdapterContract.js +20 -1
- package/dist/esm/plugins/adapters/contracts/TraderJoeRouterAdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/UniswapV2AdapterContract.js +10 -0
- package/dist/esm/plugins/adapters/contracts/UniswapV3AdapterContract.js +20 -0
- package/dist/esm/plugins/adapters/contracts/UniswapV4AdapterContract.js +18 -1
- package/dist/esm/plugins/adapters/contracts/UpshiftVaultAdapterContract.js +17 -1
- package/dist/esm/plugins/adapters/contracts/VelodromeV2AdapterContract.js +13 -1
- package/dist/esm/plugins/adapters/contracts/WstETHV1AdapterContract.js +18 -1
- package/dist/esm/preview/parse/classifyInnerOperations.js +14 -1
- package/dist/esm/preview/prerequisites/buildPrerequisites.js +4 -8
- package/dist/esm/preview/preview/errors.js +15 -0
- package/dist/esm/preview/preview/previewOpenCreditAccount.js +59 -26
- package/dist/esm/preview/preview/unwrapNativeCollateral.js +21 -0
- package/dist/esm/sdk/accounts/CreditAccountsServiceV310.js +4 -5
- package/dist/esm/sdk/base/BaseContract.js +4 -2
- package/dist/esm/sdk/base/ChainContractsRegister.js +1 -0
- package/dist/esm/sdk/router/AbstractRouterContract.js +25 -29
- package/dist/esm/sdk/router/RouterV310Contract.js +11 -12
- package/dist/esm/sdk/router/helpers.js +0 -4
- package/dist/esm/sdk/utils/AddressMap.js +6 -0
- package/dist/esm/sdk/utils/AssetsMap.js +37 -0
- package/dist/esm/sdk/utils/index.js +1 -0
- package/dist/types/common-utils/utils/strategies/assets/assets.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/credit-managers/get-wallet-balances-allowed-on-cm.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-apy.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/strategy-info/calculate-total-points.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/tokens/add-amount-in-target.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/tokens/get-list-with-amount-in-target.d.ts +1 -1
- package/dist/types/common-utils/utils/strategies/types/strategy-earnings.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-balances.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-open-account.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-quota.d.ts +1 -1
- package/dist/types/common-utils/utils/validation/validate-token-to-obtain.d.ts +1 -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/contracts/AbstractAdapter.d.ts +21 -3
- package/dist/types/plugins/adapters/contracts/AbstractCurveAdapter.d.ts +18 -0
- package/dist/types/plugins/adapters/contracts/BalancerV3RouterAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/BalancerV3WrapperAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/CamelotV3AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BaseRewardPoolAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ConvexV1BoosterAdapterContract.d.ts +8 -6
- package/dist/types/plugins/adapters/contracts/Curve2AssetsAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/Curve3AssetsAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/Curve4AssetsAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterDeposit.d.ts +2 -2
- package/dist/types/plugins/adapters/contracts/CurveV1AdapterStETHContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/CurveV1StableNGAdapterContract.d.ts +3 -6
- package/dist/types/plugins/adapters/contracts/DaiUsdsAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ERC4626AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/ERC4626ReferralAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/FluidDexAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/InfinifiGatewayAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/KelpLRTDepositPoolAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/LidoV1AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MellowDVVAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MellowERC4626VaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MellowWrapperAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MidasIssuanceVaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/MidasRedemptionVaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/PendleRouterAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/SecuritizeOnRampAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/SecuritizeSwapAdapterContract.d.ts +15 -3
- package/dist/types/plugins/adapters/contracts/StakingRewardsAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/TraderJoeRouterAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/UniswapV2AdapterContract.d.ts +3 -1
- package/dist/types/plugins/adapters/contracts/UniswapV3AdapterContract.d.ts +3 -1
- package/dist/types/plugins/adapters/contracts/UniswapV4AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/UpshiftVaultAdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/VelodromeV2AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/contracts/WstETHV1AdapterContract.d.ts +4 -2
- package/dist/types/plugins/adapters/types.d.ts +10 -0
- package/dist/types/preview/parse/types-adapters.d.ts +5 -1
- package/dist/types/preview/parse/types-facades.d.ts +23 -1
- package/dist/types/preview/preview/errors.d.ts +12 -0
- package/dist/types/preview/preview/types.d.ts +9 -1
- package/dist/types/preview/preview/unwrapNativeCollateral.d.ts +20 -0
- package/dist/types/sdk/accounts/CreditAccountsServiceV310.d.ts +1 -1
- package/dist/types/sdk/accounts/types.d.ts +2 -2
- package/dist/types/sdk/base/BaseContract.d.ts +1 -1
- package/dist/types/sdk/base/TokensMeta.d.ts +1 -1
- package/dist/types/sdk/base/types.d.ts +18 -0
- package/dist/types/sdk/pools/types.d.ts +1 -1
- package/dist/types/sdk/router/AbstractRouterContract.d.ts +5 -5
- package/dist/types/sdk/router/helpers.d.ts +1 -2
- package/dist/types/sdk/router/types.d.ts +1 -15
- package/dist/types/sdk/utils/AddressMap.d.ts +4 -0
- package/dist/types/sdk/utils/AssetsMap.d.ts +26 -0
- package/dist/types/sdk/utils/index.d.ts +1 -0
- package/package.json +1 -1
- package/dist/esm/preview/preview/extractExpectedBalanceChanges.js +0 -24
- package/dist/types/preview/preview/extractExpectedBalanceChanges.d.ts +0 -21
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
const iConvexV1BoosterAdapterAbi = [
|
|
2
|
+
{
|
|
3
|
+
type: "function",
|
|
4
|
+
inputs: [],
|
|
5
|
+
name: "contractType",
|
|
6
|
+
outputs: [{ name: "", internalType: "bytes32", type: "bytes32" }],
|
|
7
|
+
stateMutability: "view"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
type: "function",
|
|
11
|
+
inputs: [],
|
|
12
|
+
name: "creditManager",
|
|
13
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
14
|
+
stateMutability: "view"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
type: "function",
|
|
18
|
+
inputs: [
|
|
19
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
20
|
+
{ name: "", internalType: "uint256", type: "uint256" },
|
|
21
|
+
{ name: "_stake", internalType: "bool", type: "bool" }
|
|
22
|
+
],
|
|
23
|
+
name: "deposit",
|
|
24
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
25
|
+
stateMutability: "nonpayable"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
type: "function",
|
|
29
|
+
inputs: [
|
|
30
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
31
|
+
{ name: "leftoverAmount", internalType: "uint256", type: "uint256" },
|
|
32
|
+
{ name: "_stake", internalType: "bool", type: "bool" }
|
|
33
|
+
],
|
|
34
|
+
name: "depositDiff",
|
|
35
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
36
|
+
stateMutability: "nonpayable"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
type: "function",
|
|
40
|
+
inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
41
|
+
name: "pidToConvexToken",
|
|
42
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
43
|
+
stateMutability: "view"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
type: "function",
|
|
47
|
+
inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
48
|
+
name: "pidToCurveToken",
|
|
49
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
50
|
+
stateMutability: "view"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: "function",
|
|
54
|
+
inputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
55
|
+
name: "pidToPhantomToken",
|
|
56
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
57
|
+
stateMutability: "view"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: "function",
|
|
61
|
+
inputs: [],
|
|
62
|
+
name: "serialize",
|
|
63
|
+
outputs: [{ name: "serializedData", internalType: "bytes", type: "bytes" }],
|
|
64
|
+
stateMutability: "view"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: "function",
|
|
68
|
+
inputs: [],
|
|
69
|
+
name: "targetContract",
|
|
70
|
+
outputs: [{ name: "", internalType: "address", type: "address" }],
|
|
71
|
+
stateMutability: "view"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: "function",
|
|
75
|
+
inputs: [],
|
|
76
|
+
name: "updateSupportedPids",
|
|
77
|
+
outputs: [],
|
|
78
|
+
stateMutability: "nonpayable"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
type: "function",
|
|
82
|
+
inputs: [],
|
|
83
|
+
name: "version",
|
|
84
|
+
outputs: [{ name: "", internalType: "uint256", type: "uint256" }],
|
|
85
|
+
stateMutability: "view"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: "function",
|
|
89
|
+
inputs: [
|
|
90
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
91
|
+
{ name: "", internalType: "uint256", type: "uint256" }
|
|
92
|
+
],
|
|
93
|
+
name: "withdraw",
|
|
94
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
95
|
+
stateMutability: "nonpayable"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
type: "function",
|
|
99
|
+
inputs: [
|
|
100
|
+
{ name: "_pid", internalType: "uint256", type: "uint256" },
|
|
101
|
+
{ name: "leftoverAmount", internalType: "uint256", type: "uint256" }
|
|
102
|
+
],
|
|
103
|
+
name: "withdrawDiff",
|
|
104
|
+
outputs: [{ name: "useSafePrices", internalType: "bool", type: "bool" }],
|
|
105
|
+
stateMutability: "nonpayable"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: "event",
|
|
109
|
+
anonymous: false,
|
|
110
|
+
inputs: [
|
|
111
|
+
{ name: "pid", internalType: "uint256", type: "uint256", indexed: true }
|
|
112
|
+
],
|
|
113
|
+
name: "AddSupportedPid"
|
|
114
|
+
},
|
|
115
|
+
{ type: "error", inputs: [], name: "UnsupportedPidException" }
|
|
116
|
+
];
|
|
117
|
+
export {
|
|
118
|
+
iConvexV1BoosterAdapterAbi
|
|
119
|
+
};
|
|
@@ -103,6 +103,42 @@ class AbstractAdapterContract extends BaseContract {
|
|
|
103
103
|
return void 0;
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Applies the balance changes implied by a router-generated diff-style
|
|
108
|
+
* adapter call to a map of credit-account token balances.
|
|
109
|
+
*
|
|
110
|
+
* @param balances - Token balances before the call. Mutated in place.
|
|
111
|
+
* @param calldata - Raw ABI-encoded adapter calldata.
|
|
112
|
+
* @throws When the calldata cannot be decoded or the adapter (or the
|
|
113
|
+
* specific function) has no balance-changes support.
|
|
114
|
+
*/
|
|
115
|
+
previewBalanceChanges(balances, calldata) {
|
|
116
|
+
let decoded;
|
|
117
|
+
try {
|
|
118
|
+
decoded = decodeFunctionData({ abi: this.abi, data: calldata });
|
|
119
|
+
} catch (e) {
|
|
120
|
+
throw new Error(
|
|
121
|
+
`previewBalanceChanges: cannot decode selector ${calldata.slice(0, 10)} on ${this.contractType} adapter at ${this.address}`,
|
|
122
|
+
{ cause: e }
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
const leftovers = this.decodeDiffLeftovers(decoded, balances);
|
|
126
|
+
for (const { tokenIn, leftoverAmount } of leftovers) {
|
|
127
|
+
balances.upsert(tokenIn, leftoverAmount);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Resolves which tokens the diff-style call spends down to which leftovers.
|
|
132
|
+
*
|
|
133
|
+
* @param decoded - The viem-decoded adapter call
|
|
134
|
+
* @param _balances - Token balances before the call
|
|
135
|
+
* @throws When the adapter (or the specific function) has no balance-changes support
|
|
136
|
+
*/
|
|
137
|
+
decodeDiffLeftovers(decoded, _balances) {
|
|
138
|
+
throw new Error(
|
|
139
|
+
`previewBalanceChanges is not supported for ${decoded.functionName} on ${this.contractType} adapter at ${this.address}`
|
|
140
|
+
);
|
|
141
|
+
}
|
|
106
142
|
/**
|
|
107
143
|
* Classifies an adapter call into a {@link LegacyAdapterOperation} using the
|
|
108
144
|
* parsed call and credit-account transfer deltas.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { classifyCurveOperation } from "../transferHelpers.js";
|
|
2
|
+
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
3
|
+
class AbstractCurveAdapterContract extends AbstractAdapterContract {
|
|
4
|
+
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
5
|
+
classifyLegacyOperation(parsed, transfers) {
|
|
6
|
+
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
7
|
+
}
|
|
8
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
9
|
+
const { functionName, args } = decoded;
|
|
10
|
+
switch (functionName) {
|
|
11
|
+
case "exchange_diff": {
|
|
12
|
+
const [i, , leftoverAmount] = args;
|
|
13
|
+
return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
|
|
14
|
+
}
|
|
15
|
+
case "add_diff_liquidity_one_coin": {
|
|
16
|
+
const [leftoverAmount, i] = args;
|
|
17
|
+
return [{ tokenIn: this.curveCoin(i), leftoverAmount }];
|
|
18
|
+
}
|
|
19
|
+
case "remove_diff_liquidity_one_coin": {
|
|
20
|
+
const [leftoverAmount] = args;
|
|
21
|
+
return [{ tokenIn: this.lpToken, leftoverAmount }];
|
|
22
|
+
}
|
|
23
|
+
default:
|
|
24
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Resolves a Curve pool coin index to its token address.
|
|
29
|
+
*
|
|
30
|
+
* @throws When the index is out of range for the pool.
|
|
31
|
+
*/
|
|
32
|
+
curveCoin(i) {
|
|
33
|
+
const token = this.tokens[Number(i)];
|
|
34
|
+
if (!token) {
|
|
35
|
+
throw new Error(`curve coin index ${i} is out of range`);
|
|
36
|
+
}
|
|
37
|
+
return token;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
AbstractCurveAdapterContract
|
|
42
|
+
};
|
|
@@ -1,5 +1,7 @@
|
|
|
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";
|
|
5
7
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
@@ -69,6 +71,25 @@ class BalancerV3RouterAdapterContract extends AbstractAdapterContract {
|
|
|
69
71
|
}))
|
|
70
72
|
};
|
|
71
73
|
}
|
|
74
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
75
|
+
switch (decoded.functionName) {
|
|
76
|
+
case "swapSingleTokenDiffIn": {
|
|
77
|
+
const [, tokenIn, , leftoverAmount] = decoded.args;
|
|
78
|
+
return [{ tokenIn, leftoverAmount }];
|
|
79
|
+
}
|
|
80
|
+
// BPT (pool token) is spent down to the leftover
|
|
81
|
+
case "removeLiquiditySingleTokenDiff": {
|
|
82
|
+
const [pool, leftoverAmount] = decoded.args;
|
|
83
|
+
return [{ tokenIn: pool, leftoverAmount }];
|
|
84
|
+
}
|
|
85
|
+
case "addLiquidityUnbalancedDiff":
|
|
86
|
+
throw new Error(
|
|
87
|
+
`previewBalanceChanges cannot resolve pool tokens for addLiquidityUnbalancedDiff on ${this.contractType} adapter at ${this.address}`
|
|
88
|
+
);
|
|
89
|
+
default:
|
|
90
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
72
93
|
}
|
|
73
94
|
export {
|
|
74
95
|
BalancerV3PoolStatus,
|
|
@@ -1,5 +1,7 @@
|
|
|
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";
|
|
5
7
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
@@ -32,6 +34,21 @@ class BalancerV3WrapperAdapterContract extends AbstractAdapterContract {
|
|
|
32
34
|
balancerPoolToken: this.#balancerPoolToken ? this.labelAddress(this.#balancerPoolToken) : void 0
|
|
33
35
|
};
|
|
34
36
|
}
|
|
37
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
38
|
+
switch (decoded.functionName) {
|
|
39
|
+
// mint spends the pool token, burn spends the wrapper (target contract)
|
|
40
|
+
case "mintDiff": {
|
|
41
|
+
const [leftoverAmount] = decoded.args;
|
|
42
|
+
return [{ tokenIn: this.balancerPoolToken, leftoverAmount }];
|
|
43
|
+
}
|
|
44
|
+
case "burnDiff": {
|
|
45
|
+
const [leftoverAmount] = decoded.args;
|
|
46
|
+
return [{ tokenIn: this.targetContract, leftoverAmount }];
|
|
47
|
+
}
|
|
48
|
+
default:
|
|
49
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
35
52
|
}
|
|
36
53
|
export {
|
|
37
54
|
BalancerV3WrapperAdapterContract
|
|
@@ -1,5 +1,7 @@
|
|
|
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";
|
|
5
7
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
@@ -45,6 +47,26 @@ class CamelotV3AdapterContract extends AbstractAdapterContract {
|
|
|
45
47
|
}))
|
|
46
48
|
};
|
|
47
49
|
}
|
|
50
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
51
|
+
switch (decoded.functionName) {
|
|
52
|
+
case "exactDiffInputSingle": {
|
|
53
|
+
const [params] = decoded.args;
|
|
54
|
+
return [
|
|
55
|
+
{
|
|
56
|
+
tokenIn: params.tokenIn,
|
|
57
|
+
leftoverAmount: params.leftoverAmount
|
|
58
|
+
}
|
|
59
|
+
];
|
|
60
|
+
}
|
|
61
|
+
case "exactDiffInput": {
|
|
62
|
+
const [params] = decoded.args;
|
|
63
|
+
const tokenIn = `0x${params.path.replace("0x", "").slice(0, 40)}`;
|
|
64
|
+
return [{ tokenIn, leftoverAmount: params.leftoverAmount }];
|
|
65
|
+
}
|
|
66
|
+
default:
|
|
67
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
48
70
|
}
|
|
49
71
|
export {
|
|
50
72
|
CamelotV3AdapterContract
|
|
@@ -1,5 +1,8 @@
|
|
|
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";
|
|
@@ -113,6 +116,24 @@ class ConvexV1BaseRewardPoolAdapterContract extends AbstractAdapterContract {
|
|
|
113
116
|
withdrawAmount: swap.toAmount
|
|
114
117
|
};
|
|
115
118
|
}
|
|
119
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
120
|
+
switch (decoded.functionName) {
|
|
121
|
+
case "stakeDiff": {
|
|
122
|
+
const [leftoverAmount] = decoded.args;
|
|
123
|
+
return [{ tokenIn: this.stakingToken, leftoverAmount }];
|
|
124
|
+
}
|
|
125
|
+
case "withdrawDiff":
|
|
126
|
+
case "withdrawDiffAndUnwrap": {
|
|
127
|
+
const [leftoverAmount] = decoded.args;
|
|
128
|
+
return [{ tokenIn: this.stakedPhantomToken, leftoverAmount }];
|
|
129
|
+
}
|
|
130
|
+
// no accrued rewards on a freshly opened account
|
|
131
|
+
case "getReward":
|
|
132
|
+
return [];
|
|
133
|
+
default:
|
|
134
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
116
137
|
}
|
|
117
138
|
export {
|
|
118
139
|
ConvexV1BaseRewardPoolAdapterContract
|
|
@@ -1,8 +1,10 @@
|
|
|
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";
|
|
7
9
|
import { fnSigToName, swapFromTransfers } from "../transferHelpers.js";
|
|
8
10
|
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
@@ -81,6 +83,32 @@ class ConvexV1BoosterAdapterContract extends AbstractAdapterContract {
|
|
|
81
83
|
}
|
|
82
84
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
83
85
|
}
|
|
86
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
87
|
+
switch (decoded.functionName) {
|
|
88
|
+
// deposit spends the curve LP token, withdraw spends the convex token
|
|
89
|
+
case "depositDiff": {
|
|
90
|
+
const [pid, leftoverAmount] = decoded.args;
|
|
91
|
+
const pool = this.#mustFindPool(Number(pid));
|
|
92
|
+
return [{ tokenIn: pool.curveToken, leftoverAmount }];
|
|
93
|
+
}
|
|
94
|
+
case "withdrawDiff": {
|
|
95
|
+
const [pid, leftoverAmount] = decoded.args;
|
|
96
|
+
const pool = this.#mustFindPool(Number(pid));
|
|
97
|
+
return [{ tokenIn: pool.convexToken, leftoverAmount }];
|
|
98
|
+
}
|
|
99
|
+
default:
|
|
100
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
#mustFindPool(pid) {
|
|
104
|
+
const pool = this.supportedPools.find((p) => p.pid === pid);
|
|
105
|
+
if (!pool) {
|
|
106
|
+
throw new Error(
|
|
107
|
+
`convex pool with pid ${pid} not found on booster adapter at ${this.address}`
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
return pool;
|
|
111
|
+
}
|
|
84
112
|
}
|
|
85
113
|
export {
|
|
86
114
|
ConvexV1BoosterAdapterContract
|
|
@@ -4,11 +4,10 @@ import {
|
|
|
4
4
|
MissingSerializedParamsError
|
|
5
5
|
} from "../../../sdk/index.js";
|
|
6
6
|
import { iCurvePool_2Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
7
|
-
import {
|
|
8
|
-
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
7
|
+
import { AbstractCurveAdapterContract } from "./AbstractCurveAdapter.js";
|
|
9
8
|
const abi = iCurveV1_2AssetsAdapterAbi;
|
|
10
9
|
const protocolAbi = [...iCurvePoolAbi, ...iCurvePool_2Abi];
|
|
11
|
-
class Curve2AssetsAdapterContract extends
|
|
10
|
+
class Curve2AssetsAdapterContract extends AbstractCurveAdapterContract {
|
|
12
11
|
#token;
|
|
13
12
|
#lpToken;
|
|
14
13
|
#metapoolBase;
|
|
@@ -82,10 +81,6 @@ class Curve2AssetsAdapterContract extends AbstractAdapterContract {
|
|
|
82
81
|
underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
|
|
83
82
|
};
|
|
84
83
|
}
|
|
85
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
86
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
87
|
-
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
88
|
-
}
|
|
89
84
|
}
|
|
90
85
|
export {
|
|
91
86
|
Curve2AssetsAdapterContract
|
|
@@ -4,11 +4,10 @@ import {
|
|
|
4
4
|
MissingSerializedParamsError
|
|
5
5
|
} from "../../../sdk/index.js";
|
|
6
6
|
import { iCurvePool_3Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
7
|
-
import {
|
|
8
|
-
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
7
|
+
import { AbstractCurveAdapterContract } from "./AbstractCurveAdapter.js";
|
|
9
8
|
const abi = iCurveV1_3AssetsAdapterAbi;
|
|
10
9
|
const protocolAbi = [...iCurvePoolAbi, ...iCurvePool_3Abi];
|
|
11
|
-
class Curve3AssetsAdapterContract extends
|
|
10
|
+
class Curve3AssetsAdapterContract extends AbstractCurveAdapterContract {
|
|
12
11
|
#token;
|
|
13
12
|
#lpToken;
|
|
14
13
|
#metapoolBase;
|
|
@@ -82,10 +81,6 @@ class Curve3AssetsAdapterContract extends AbstractAdapterContract {
|
|
|
82
81
|
underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
|
|
83
82
|
};
|
|
84
83
|
}
|
|
85
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
86
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
87
|
-
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
88
|
-
}
|
|
89
84
|
}
|
|
90
85
|
export {
|
|
91
86
|
Curve3AssetsAdapterContract
|
|
@@ -4,11 +4,10 @@ import {
|
|
|
4
4
|
MissingSerializedParamsError
|
|
5
5
|
} from "../../../sdk/index.js";
|
|
6
6
|
import { iCurvePool_4Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
7
|
-
import {
|
|
8
|
-
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
7
|
+
import { AbstractCurveAdapterContract } from "./AbstractCurveAdapter.js";
|
|
9
8
|
const abi = iCurveV1_4AssetsAdapterAbi;
|
|
10
9
|
const protocolAbi = [...iCurvePoolAbi, ...iCurvePool_4Abi];
|
|
11
|
-
class Curve4AssetsAdapterContract extends
|
|
10
|
+
class Curve4AssetsAdapterContract extends AbstractCurveAdapterContract {
|
|
12
11
|
#token;
|
|
13
12
|
#lpToken;
|
|
14
13
|
#metapoolBase;
|
|
@@ -87,10 +86,6 @@ class Curve4AssetsAdapterContract extends AbstractAdapterContract {
|
|
|
87
86
|
underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
|
|
88
87
|
};
|
|
89
88
|
}
|
|
90
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
91
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
92
|
-
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
93
|
-
}
|
|
94
89
|
}
|
|
95
90
|
export {
|
|
96
91
|
Curve4AssetsAdapterContract
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
MissingSerializedParamsError
|
|
5
5
|
} from "../../../sdk/index.js";
|
|
6
6
|
import { iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
7
|
-
import {
|
|
7
|
+
import { AbstractCurveAdapterContract } from "./AbstractCurveAdapter.js";
|
|
8
8
|
const abi = iCurveV1AdapterAbi;
|
|
9
9
|
const protocolAbi = iCurvePoolAbi;
|
|
10
|
-
class CurveV1AdapterDeposit extends
|
|
10
|
+
class CurveV1AdapterDeposit extends AbstractCurveAdapterContract {
|
|
11
11
|
#token;
|
|
12
12
|
#lpToken;
|
|
13
13
|
#metapoolBase;
|
|
@@ -4,11 +4,10 @@ import {
|
|
|
4
4
|
MissingSerializedParamsError
|
|
5
5
|
} from "../../../sdk/index.js";
|
|
6
6
|
import { iCurvePool_2Abi, iCurvePoolAbi } from "../abi/targetContractAbi.js";
|
|
7
|
-
import {
|
|
8
|
-
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
7
|
+
import { AbstractCurveAdapterContract } from "./AbstractCurveAdapter.js";
|
|
9
8
|
const abi = iCurveV1_2AssetsAdapterAbi;
|
|
10
9
|
const protocolAbi = [...iCurvePoolAbi, ...iCurvePool_2Abi];
|
|
11
|
-
class CurveV1AdapterStETHContract extends
|
|
10
|
+
class CurveV1AdapterStETHContract extends AbstractCurveAdapterContract {
|
|
12
11
|
#token;
|
|
13
12
|
#lpToken;
|
|
14
13
|
#metapoolBase;
|
|
@@ -65,10 +64,6 @@ class CurveV1AdapterStETHContract extends AbstractAdapterContract {
|
|
|
65
64
|
if (!this.#tokens) throw new MissingSerializedParamsError("tokens");
|
|
66
65
|
return this.#tokens;
|
|
67
66
|
}
|
|
68
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
69
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
70
|
-
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
71
|
-
}
|
|
72
67
|
}
|
|
73
68
|
export {
|
|
74
69
|
CurveV1AdapterStETHContract
|
|
@@ -7,11 +7,10 @@ import {
|
|
|
7
7
|
iCurvePoolAbi,
|
|
8
8
|
iCurvePoolStableNGAbi
|
|
9
9
|
} from "../abi/targetContractAbi.js";
|
|
10
|
-
import {
|
|
11
|
-
import { AbstractAdapterContract } from "./AbstractAdapter.js";
|
|
10
|
+
import { AbstractCurveAdapterContract } from "./AbstractCurveAdapter.js";
|
|
12
11
|
const abi = iCurveV1StableNgAdapterAbi;
|
|
13
12
|
const protocolAbi = [...iCurvePoolAbi, ...iCurvePoolStableNGAbi];
|
|
14
|
-
class CurveV1StableNGAdapterContract extends
|
|
13
|
+
class CurveV1StableNGAdapterContract extends AbstractCurveAdapterContract {
|
|
15
14
|
#token;
|
|
16
15
|
#lpToken;
|
|
17
16
|
#metapoolBase;
|
|
@@ -98,10 +97,6 @@ class CurveV1StableNGAdapterContract extends AbstractAdapterContract {
|
|
|
98
97
|
underlyings: this.#underlyings?.map((t) => this.labelAddress(t))
|
|
99
98
|
};
|
|
100
99
|
}
|
|
101
|
-
/** @see https://github.com/Gearbox-protocol/charts_server/blob/master/core/operation_type.go#L132-L164 */
|
|
102
|
-
classifyLegacyOperation(parsed, transfers) {
|
|
103
|
-
return classifyCurveOperation(parsed.functionName, transfers) ?? super.classifyLegacyOperation(parsed, transfers);
|
|
104
|
-
}
|
|
105
100
|
}
|
|
106
101
|
export {
|
|
107
102
|
CurveV1StableNGAdapterContract
|
|
@@ -1,5 +1,7 @@
|
|
|
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";
|
|
@@ -53,6 +55,20 @@ class DaiUsdsAdapterContract extends AbstractAdapterContract {
|
|
|
53
55
|
}
|
|
54
56
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
55
57
|
}
|
|
58
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
59
|
+
switch (decoded.functionName) {
|
|
60
|
+
case "daiToUsdsDiff": {
|
|
61
|
+
const [leftoverAmount] = decoded.args;
|
|
62
|
+
return [{ tokenIn: this.dai, leftoverAmount }];
|
|
63
|
+
}
|
|
64
|
+
case "usdsToDaiDiff": {
|
|
65
|
+
const [leftoverAmount] = decoded.args;
|
|
66
|
+
return [{ tokenIn: this.usds, leftoverAmount }];
|
|
67
|
+
}
|
|
68
|
+
default:
|
|
69
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
56
72
|
}
|
|
57
73
|
export {
|
|
58
74
|
DaiUsdsAdapterContract
|
|
@@ -1,5 +1,8 @@
|
|
|
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";
|
|
@@ -70,6 +73,21 @@ class ERC4626AdapterContract extends AbstractAdapterContract {
|
|
|
70
73
|
}
|
|
71
74
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
72
75
|
}
|
|
76
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
77
|
+
const share = this.#vault && this.#vault !== zeroAddress ? 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
|
+
}
|
|
73
91
|
}
|
|
74
92
|
export {
|
|
75
93
|
ERC4626AdapterContract
|
|
@@ -1,5 +1,7 @@
|
|
|
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";
|
|
@@ -53,6 +55,20 @@ class ERC4626ReferralAdapterContract extends AbstractAdapterContract {
|
|
|
53
55
|
}
|
|
54
56
|
return super.classifyLegacyOperation(parsed, transfers);
|
|
55
57
|
}
|
|
58
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
59
|
+
switch (decoded.functionName) {
|
|
60
|
+
case "depositDiff": {
|
|
61
|
+
const [leftoverAmount] = decoded.args;
|
|
62
|
+
return [{ tokenIn: this.asset, leftoverAmount }];
|
|
63
|
+
}
|
|
64
|
+
case "redeemDiff": {
|
|
65
|
+
const [leftoverAmount] = decoded.args;
|
|
66
|
+
return [{ tokenIn: this.targetContract, leftoverAmount }];
|
|
67
|
+
}
|
|
68
|
+
default:
|
|
69
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
56
72
|
}
|
|
57
73
|
export {
|
|
58
74
|
ERC4626ReferralAdapterContract
|
|
@@ -1,5 +1,7 @@
|
|
|
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";
|
|
@@ -41,6 +43,21 @@ class FluidDexAdapterContract extends AbstractAdapterContract {
|
|
|
41
43
|
token1: this.#token1 ? this.labelAddress(this.#token1) : void 0
|
|
42
44
|
};
|
|
43
45
|
}
|
|
46
|
+
decodeDiffLeftovers(decoded, balances) {
|
|
47
|
+
switch (decoded.functionName) {
|
|
48
|
+
case "swapInDiff": {
|
|
49
|
+
const [swap0to1, leftoverAmount] = decoded.args;
|
|
50
|
+
return [
|
|
51
|
+
{
|
|
52
|
+
tokenIn: swap0to1 ? this.token0 : this.token1,
|
|
53
|
+
leftoverAmount
|
|
54
|
+
}
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
default:
|
|
58
|
+
return super.decodeDiffLeftovers(decoded, balances);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
44
61
|
}
|
|
45
62
|
export {
|
|
46
63
|
FluidDexAdapterContract
|