@gearbox-protocol/sdk 13.5.1 → 13.5.3
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/actionAbi.js +1 -1
- package/dist/cjs/plugins/adapters/abi/conctructorAbi.js +1 -1
- package/dist/cjs/plugins/adapters/createAdapter.js +1 -1
- package/dist/cjs/plugins/adapters/types.js +1 -1
- package/dist/cjs/sdk/utils/viem/simulateWithPriceUpdates.js +39 -2
- package/dist/esm/plugins/adapters/abi/actionAbi.js +1 -1
- package/dist/esm/plugins/adapters/abi/conctructorAbi.js +1 -1
- package/dist/esm/plugins/adapters/createAdapter.js +1 -1
- package/dist/esm/plugins/adapters/types.js +1 -1
- package/dist/esm/sdk/utils/viem/simulateWithPriceUpdates.js +41 -2
- package/dist/types/plugins/adapters/types.d.ts +2 -2
- package/package.json +1 -1
|
@@ -73,7 +73,7 @@ const adapterActionSignatures = {
|
|
|
73
73
|
310: "function setPairStatusBatch((address,address,address,uint8)[])",
|
|
74
74
|
311: "function setPairStatusBatch((address,address,address,uint8,uint8)[])"
|
|
75
75
|
},
|
|
76
|
-
[import_types.AdapterType.
|
|
76
|
+
[import_types.AdapterType.TRADER_JOE_ROUTER]: {
|
|
77
77
|
310: "function setPoolStatusBatch((address,address,uint256,uint8,bool)[])"
|
|
78
78
|
},
|
|
79
79
|
[import_types.AdapterType.UNISWAP_V2_ROUTER]: {
|
|
@@ -72,7 +72,7 @@ const adapterConstructorAbi = {
|
|
|
72
72
|
[import_types.AdapterType.DAI_USDS_EXCHANGE]: {
|
|
73
73
|
310: import_conctructorAbiPatterns.BASIC_ADAPTER_ABI
|
|
74
74
|
},
|
|
75
|
-
[import_types.AdapterType.
|
|
75
|
+
[import_types.AdapterType.TRADER_JOE_ROUTER]: {
|
|
76
76
|
310: import_conctructorAbiPatterns.BASIC_ADAPTER_ABI
|
|
77
77
|
},
|
|
78
78
|
[import_types.AdapterType.UNISWAP_V2_ROUTER]: {
|
|
@@ -93,7 +93,7 @@ function createAdapter(options, data, strict) {
|
|
|
93
93
|
return new import_contracts.PendleRouterAdapterContract(options, data);
|
|
94
94
|
case "ADAPTER::STAKING_REWARDS":
|
|
95
95
|
return new import_contracts.StakingRewardsAdapterContract(options, data);
|
|
96
|
-
case "ADAPTER::
|
|
96
|
+
case "ADAPTER::TRADER_JOE_ROUTER":
|
|
97
97
|
return new import_contracts.TraderJoeRouterAdapterContract(options, data);
|
|
98
98
|
case "ADAPTER::UNISWAP_V2_ROUTER":
|
|
99
99
|
return new import_contracts.UniswapV2AdapterContract(options, data);
|
|
@@ -59,7 +59,7 @@ var AdapterType = /* @__PURE__ */ ((AdapterType2) => {
|
|
|
59
59
|
AdapterType2["MIDAS_REDEMPTION_VAULT"] = "MIDAS_REDEMPTION_VAULT";
|
|
60
60
|
AdapterType2["PENDLE_ROUTER"] = "PENDLE_ROUTER";
|
|
61
61
|
AdapterType2["STAKING_REWARDS"] = "STAKING_REWARDS";
|
|
62
|
-
AdapterType2["
|
|
62
|
+
AdapterType2["TRADER_JOE_ROUTER"] = "TRADER_JOE_ROUTER";
|
|
63
63
|
AdapterType2["UNISWAP_V2_ROUTER"] = "UNISWAP_V2_ROUTER";
|
|
64
64
|
AdapterType2["UNISWAP_V3_ROUTER"] = "UNISWAP_V3_ROUTER";
|
|
65
65
|
AdapterType2["UNISWAP_V4_GATEWAY"] = "UNISWAP_V4_GATEWAY";
|
|
@@ -24,6 +24,8 @@ __export(simulateWithPriceUpdates_exports, {
|
|
|
24
24
|
});
|
|
25
25
|
module.exports = __toCommonJS(simulateWithPriceUpdates_exports);
|
|
26
26
|
var import_viem = require("viem");
|
|
27
|
+
var import_actions = require("viem/actions");
|
|
28
|
+
var import_utils = require("viem/utils");
|
|
27
29
|
var import_errors = require("../../../abi/errors.js");
|
|
28
30
|
var import_iUpdatablePriceFeed = require("../../../abi/iUpdatablePriceFeed.js");
|
|
29
31
|
var import_cast = require("./cast.js");
|
|
@@ -53,6 +55,41 @@ async function simulateWithPriceUpdates(client, parameters) {
|
|
|
53
55
|
"client chain not configured. multicallAddress is required."
|
|
54
56
|
);
|
|
55
57
|
}
|
|
58
|
+
if (priceUpdates.length === 0 && restContracts.length === 1) {
|
|
59
|
+
const contract = restContracts[0];
|
|
60
|
+
const { abi, address, args, functionName } = contract;
|
|
61
|
+
const callData = (0, import_viem.encodeFunctionData)({ abi, args, functionName });
|
|
62
|
+
const request2 = {
|
|
63
|
+
batch: false,
|
|
64
|
+
data: callData,
|
|
65
|
+
to: address,
|
|
66
|
+
blockNumber: rest.blockNumber,
|
|
67
|
+
blockTag: rest.blockTag,
|
|
68
|
+
gas: rest.gas,
|
|
69
|
+
account: rest.account ? (0, import_utils.parseAccount)(rest.account) : client.account,
|
|
70
|
+
value: rest.value
|
|
71
|
+
};
|
|
72
|
+
try {
|
|
73
|
+
const { data } = await (0, import_utils.getAction)(client, import_actions.call, "call")(request2);
|
|
74
|
+
const result = (0, import_viem.decodeFunctionResult)({
|
|
75
|
+
abi,
|
|
76
|
+
args,
|
|
77
|
+
data: data || "0x",
|
|
78
|
+
functionName
|
|
79
|
+
});
|
|
80
|
+
return [
|
|
81
|
+
result
|
|
82
|
+
];
|
|
83
|
+
} catch (e) {
|
|
84
|
+
throw getSimulateWithPriceUpdatesError(
|
|
85
|
+
e,
|
|
86
|
+
priceUpdates,
|
|
87
|
+
restContracts,
|
|
88
|
+
void 0,
|
|
89
|
+
request2
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
56
93
|
let request;
|
|
57
94
|
try {
|
|
58
95
|
const contracts = [
|
|
@@ -173,8 +210,8 @@ function getSimulateWithPriceUpdatesError(cause, priceUpdates, calls, results, r
|
|
|
173
210
|
return [extractCallError(result), p.pretty, tsValid].filter(Boolean).join(" ");
|
|
174
211
|
});
|
|
175
212
|
const prettyCalls = callsResults.map((c, i) => {
|
|
176
|
-
const
|
|
177
|
-
return [extractCallError(c), `${
|
|
213
|
+
const call2 = calls[i];
|
|
214
|
+
return [extractCallError(c), `${call2.address}.${call2.functionName}`].filter(Boolean).join(" ");
|
|
178
215
|
});
|
|
179
216
|
if (results[0]?.status === "failure") {
|
|
180
217
|
prettyCalls.unshift(
|
|
@@ -48,7 +48,7 @@ const adapterActionSignatures = {
|
|
|
48
48
|
310: "function setPairStatusBatch((address,address,address,uint8)[])",
|
|
49
49
|
311: "function setPairStatusBatch((address,address,address,uint8,uint8)[])"
|
|
50
50
|
},
|
|
51
|
-
[AdapterType.
|
|
51
|
+
[AdapterType.TRADER_JOE_ROUTER]: {
|
|
52
52
|
310: "function setPoolStatusBatch((address,address,uint256,uint8,bool)[])"
|
|
53
53
|
},
|
|
54
54
|
[AdapterType.UNISWAP_V2_ROUTER]: {
|
|
@@ -109,7 +109,7 @@ function createAdapter(options, data, strict) {
|
|
|
109
109
|
return new PendleRouterAdapterContract(options, data);
|
|
110
110
|
case "ADAPTER::STAKING_REWARDS":
|
|
111
111
|
return new StakingRewardsAdapterContract(options, data);
|
|
112
|
-
case "ADAPTER::
|
|
112
|
+
case "ADAPTER::TRADER_JOE_ROUTER":
|
|
113
113
|
return new TraderJoeRouterAdapterContract(options, data);
|
|
114
114
|
case "ADAPTER::UNISWAP_V2_ROUTER":
|
|
115
115
|
return new UniswapV2AdapterContract(options, data);
|
|
@@ -36,7 +36,7 @@ var AdapterType = /* @__PURE__ */ ((AdapterType2) => {
|
|
|
36
36
|
AdapterType2["MIDAS_REDEMPTION_VAULT"] = "MIDAS_REDEMPTION_VAULT";
|
|
37
37
|
AdapterType2["PENDLE_ROUTER"] = "PENDLE_ROUTER";
|
|
38
38
|
AdapterType2["STAKING_REWARDS"] = "STAKING_REWARDS";
|
|
39
|
-
AdapterType2["
|
|
39
|
+
AdapterType2["TRADER_JOE_ROUTER"] = "TRADER_JOE_ROUTER";
|
|
40
40
|
AdapterType2["UNISWAP_V2_ROUTER"] = "UNISWAP_V2_ROUTER";
|
|
41
41
|
AdapterType2["UNISWAP_V3_ROUTER"] = "UNISWAP_V3_ROUTER";
|
|
42
42
|
AdapterType2["UNISWAP_V4_GATEWAY"] = "UNISWAP_V4_GATEWAY";
|
|
@@ -3,8 +3,12 @@ import {
|
|
|
3
3
|
CallExecutionError,
|
|
4
4
|
ContractFunctionRevertedError,
|
|
5
5
|
decodeFunctionData,
|
|
6
|
+
decodeFunctionResult,
|
|
7
|
+
encodeFunctionData,
|
|
6
8
|
parseAbi
|
|
7
9
|
} from "viem";
|
|
10
|
+
import { call } from "viem/actions";
|
|
11
|
+
import { getAction, parseAccount } from "viem/utils";
|
|
8
12
|
import { errorAbis } from "../../../abi/errors.js";
|
|
9
13
|
import { iUpdatablePriceFeedAbi } from "../../../abi/iUpdatablePriceFeed.js";
|
|
10
14
|
import { generateCastTraceCall } from "./cast.js";
|
|
@@ -34,6 +38,41 @@ async function simulateWithPriceUpdates(client, parameters) {
|
|
|
34
38
|
"client chain not configured. multicallAddress is required."
|
|
35
39
|
);
|
|
36
40
|
}
|
|
41
|
+
if (priceUpdates.length === 0 && restContracts.length === 1) {
|
|
42
|
+
const contract = restContracts[0];
|
|
43
|
+
const { abi, address, args, functionName } = contract;
|
|
44
|
+
const callData = encodeFunctionData({ abi, args, functionName });
|
|
45
|
+
const request2 = {
|
|
46
|
+
batch: false,
|
|
47
|
+
data: callData,
|
|
48
|
+
to: address,
|
|
49
|
+
blockNumber: rest.blockNumber,
|
|
50
|
+
blockTag: rest.blockTag,
|
|
51
|
+
gas: rest.gas,
|
|
52
|
+
account: rest.account ? parseAccount(rest.account) : client.account,
|
|
53
|
+
value: rest.value
|
|
54
|
+
};
|
|
55
|
+
try {
|
|
56
|
+
const { data } = await getAction(client, call, "call")(request2);
|
|
57
|
+
const result = decodeFunctionResult({
|
|
58
|
+
abi,
|
|
59
|
+
args,
|
|
60
|
+
data: data || "0x",
|
|
61
|
+
functionName
|
|
62
|
+
});
|
|
63
|
+
return [
|
|
64
|
+
result
|
|
65
|
+
];
|
|
66
|
+
} catch (e) {
|
|
67
|
+
throw getSimulateWithPriceUpdatesError(
|
|
68
|
+
e,
|
|
69
|
+
priceUpdates,
|
|
70
|
+
restContracts,
|
|
71
|
+
void 0,
|
|
72
|
+
request2
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
37
76
|
let request;
|
|
38
77
|
try {
|
|
39
78
|
const contracts = [
|
|
@@ -154,8 +193,8 @@ function getSimulateWithPriceUpdatesError(cause, priceUpdates, calls, results, r
|
|
|
154
193
|
return [extractCallError(result), p.pretty, tsValid].filter(Boolean).join(" ");
|
|
155
194
|
});
|
|
156
195
|
const prettyCalls = callsResults.map((c, i) => {
|
|
157
|
-
const
|
|
158
|
-
return [extractCallError(c), `${
|
|
196
|
+
const call2 = calls[i];
|
|
197
|
+
return [extractCallError(c), `${call2.address}.${call2.functionName}`].filter(Boolean).join(" ");
|
|
159
198
|
});
|
|
160
199
|
if (results[0]?.status === "failure") {
|
|
161
200
|
prettyCalls.unshift(
|
|
@@ -2,7 +2,7 @@ import type { AbiParameter, Address } from "viem";
|
|
|
2
2
|
import type { BaseContractStateHuman } from "../../sdk/types/state-human.js";
|
|
3
3
|
import type { LegacyAdapterOperation } from "./legacyAdapterOperations.js";
|
|
4
4
|
export type VersionedAbi = Record<number, readonly AbiParameter[]>;
|
|
5
|
-
export type AdapterContractType = "ADAPTER::ACCOUNT_MIGRATOR" | "ADAPTER::BALANCER_V3_ROUTER" | "ADAPTER::BALANCER_V3_WRAPPER" | "ADAPTER::BALANCER_VAULT" | "ADAPTER::CAMELOT_V3_ROUTER" | "ADAPTER::CURVE_STABLE_NG" | "ADAPTER::CURVE_V1_2ASSETS" | "ADAPTER::CURVE_V1_3ASSETS" | "ADAPTER::CURVE_V1_4ASSETS" | "ADAPTER::CURVE_V1_STECRV_POOL" | "ADAPTER::CURVE_V1_WRAPPER" | "ADAPTER::CVX_V1_BASE_REWARD_POOL" | "ADAPTER::CVX_V1_BOOSTER" | "ADAPTER::DAI_USDS_EXCHANGE" | "ADAPTER::EQUALIZER_ROUTER" | "ADAPTER::ERC4626_VAULT" | "ADAPTER::ERC4626_VAULT_REFERRAL" | "ADAPTER::FLUID_DEX" | "ADAPTER::INFINIFI_GATEWAY" | "ADAPTER::INFINIFI_UNWINDING" | "ADAPTER::INFRARED_VAULT" | "ADAPTER::KELP_DEPOSIT_POOL" | "ADAPTER::KELP_WITHDRAWAL" | "ADAPTER::KODIAK_ISLAND_GATEWAY" | "ADAPTER::LIDO_V1" | "ADAPTER::LIDO_WSTETH_V1" | "ADAPTER::MELLOW_CLAIMER" | "ADAPTER::MELLOW_DVV" | "ADAPTER::MELLOW_ERC4626_VAULT" | "ADAPTER::MELLOW_LRT_VAULT" | "ADAPTER::MELLOW_WRAPPER" | "ADAPTER::MELLOW_DEPOSIT_QUEUE_QUEUE" | "ADAPTER::MELLOW_REDEEM_QUEUE_QUEUE" | "ADAPTER::MIDAS_ISSUANCE_VAULT" | "ADAPTER::MIDAS_REDEMPTION_VAULT" | "ADAPTER::PENDLE_ROUTER" | "ADAPTER::STAKING_REWARDS" | "ADAPTER::
|
|
5
|
+
export type AdapterContractType = "ADAPTER::ACCOUNT_MIGRATOR" | "ADAPTER::BALANCER_V3_ROUTER" | "ADAPTER::BALANCER_V3_WRAPPER" | "ADAPTER::BALANCER_VAULT" | "ADAPTER::CAMELOT_V3_ROUTER" | "ADAPTER::CURVE_STABLE_NG" | "ADAPTER::CURVE_V1_2ASSETS" | "ADAPTER::CURVE_V1_3ASSETS" | "ADAPTER::CURVE_V1_4ASSETS" | "ADAPTER::CURVE_V1_STECRV_POOL" | "ADAPTER::CURVE_V1_WRAPPER" | "ADAPTER::CVX_V1_BASE_REWARD_POOL" | "ADAPTER::CVX_V1_BOOSTER" | "ADAPTER::DAI_USDS_EXCHANGE" | "ADAPTER::EQUALIZER_ROUTER" | "ADAPTER::ERC4626_VAULT" | "ADAPTER::ERC4626_VAULT_REFERRAL" | "ADAPTER::FLUID_DEX" | "ADAPTER::INFINIFI_GATEWAY" | "ADAPTER::INFINIFI_UNWINDING" | "ADAPTER::INFRARED_VAULT" | "ADAPTER::KELP_DEPOSIT_POOL" | "ADAPTER::KELP_WITHDRAWAL" | "ADAPTER::KODIAK_ISLAND_GATEWAY" | "ADAPTER::LIDO_V1" | "ADAPTER::LIDO_WSTETH_V1" | "ADAPTER::MELLOW_CLAIMER" | "ADAPTER::MELLOW_DVV" | "ADAPTER::MELLOW_ERC4626_VAULT" | "ADAPTER::MELLOW_LRT_VAULT" | "ADAPTER::MELLOW_WRAPPER" | "ADAPTER::MELLOW_DEPOSIT_QUEUE_QUEUE" | "ADAPTER::MELLOW_REDEEM_QUEUE_QUEUE" | "ADAPTER::MIDAS_ISSUANCE_VAULT" | "ADAPTER::MIDAS_REDEMPTION_VAULT" | "ADAPTER::PENDLE_ROUTER" | "ADAPTER::STAKING_REWARDS" | "ADAPTER::TRADER_JOE_ROUTER" | "ADAPTER::UNISWAP_V2_ROUTER" | "ADAPTER::UNISWAP_V3_ROUTER" | "ADAPTER::UNISWAP_V4_GATEWAY" | "ADAPTER::UPSHIFT_VAULT" | "ADAPTER::VELODROME_V2_ROUTER" | "ADAPTER::YEARN_V2";
|
|
6
6
|
export declare enum AdapterType {
|
|
7
7
|
ACCOUNT_MIGRATOR = "ACCOUNT_MIGRATOR",
|
|
8
8
|
BALANCER_V3_ROUTER = "BALANCER_V3_ROUTER",
|
|
@@ -41,7 +41,7 @@ export declare enum AdapterType {
|
|
|
41
41
|
MIDAS_REDEMPTION_VAULT = "MIDAS_REDEMPTION_VAULT",
|
|
42
42
|
PENDLE_ROUTER = "PENDLE_ROUTER",
|
|
43
43
|
STAKING_REWARDS = "STAKING_REWARDS",
|
|
44
|
-
|
|
44
|
+
TRADER_JOE_ROUTER = "TRADER_JOE_ROUTER",
|
|
45
45
|
UNISWAP_V2_ROUTER = "UNISWAP_V2_ROUTER",
|
|
46
46
|
UNISWAP_V3_ROUTER = "UNISWAP_V3_ROUTER",
|
|
47
47
|
UNISWAP_V4_GATEWAY = "UNISWAP_V4_GATEWAY",
|