@gearbox-protocol/sdk 0.0.83 → 0.0.84
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/lib/contracts/contracts.js +7 -2
- package/lib/tokens/token.js +5 -5
- package/package.json +1 -1
- package/src/contracts/contracts.ts +8 -2
- package/src/tokens/token.ts +5 -5
- package/src/utils/multicall.ts +62 -62
|
@@ -52,13 +52,18 @@ exports.contractsByNetwork = {
|
|
|
52
52
|
// LIDO
|
|
53
53
|
LIDO_STETH_GATEWAY: "0x55045Eaae19d92680E02231e4Ce7bBEB4814ca64"
|
|
54
54
|
},
|
|
55
|
+
///
|
|
56
|
+
///
|
|
57
|
+
/// KOVAN
|
|
58
|
+
///
|
|
59
|
+
///
|
|
55
60
|
Kovan: {
|
|
56
61
|
UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
|
|
57
62
|
UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
|
|
58
63
|
SUSHISWAP_ROUTER: "0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506",
|
|
59
64
|
// CURVE
|
|
60
65
|
CURVE_3CRV_POOL: "0x5C07cB1e8510DCC0DA262A71bb532B0e85368250",
|
|
61
|
-
CURVE_STETH_GATEWAY: "",
|
|
66
|
+
CURVE_STETH_GATEWAY: "0xed4439dc6D555b5712E1B3815848B7a80E0bd8a2",
|
|
62
67
|
CURVE_FRAX_POOL: token_1.tokenDataByNetwork.Kovan.FRAX3CRV,
|
|
63
68
|
CURVE_LUSD_POOL: token_1.tokenDataByNetwork.Kovan.LUSD3CRV,
|
|
64
69
|
CURVE_SUSD_POOL: "0xcD0d789E7b0BCCa84ea23F309f9154B186606f4F",
|
|
@@ -80,7 +85,7 @@ exports.contractsByNetwork = {
|
|
|
80
85
|
CONVEX_GUSD_POOL: "0xE7370DA7FD3d511dAB095Dd7d10388653d5cDE21",
|
|
81
86
|
CONVEX_CLAIM_ZAP: "0x1330C2E5Cd8c333683aE511550f82d25918FFdd5",
|
|
82
87
|
// LIDO
|
|
83
|
-
LIDO_STETH_GATEWAY: ""
|
|
88
|
+
LIDO_STETH_GATEWAY: "0x7C1C4eC1f1510E3978a96a1d024D7689F05a7Ca1"
|
|
84
89
|
}
|
|
85
90
|
};
|
|
86
91
|
exports.UNISWAP_V3_QUOTER = "0xb27308f9f90d607463bb33ea1bebb41c27ce5ab6";
|
package/lib/tokens/token.js
CHANGED
|
@@ -141,11 +141,11 @@ exports.tokenDataByNetwork = {
|
|
|
141
141
|
cvxFRAX3CRV: "0xBC523005975D86de9226785DD83e4f8d2A87fA73",
|
|
142
142
|
cvxgusd3CRV: "0xa3aDFDf18d166e26bF1Bc0ee63D26d0d1064b056",
|
|
143
143
|
// CONVEX PHANTOM TOKEN ADDRESSES
|
|
144
|
-
stkcvx3Crv: "",
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
stkcvx3Crv: "0xf4FC4Aa052346fEa87f1e864f10de0f7383e9502",
|
|
145
|
+
stkcvxFRAX3CRV: "0xd726f9684245065B120E1ac18de389f6b05351Ba",
|
|
146
|
+
stkcvxgusd3CRV: "0x9A74e8106f6c28b21b1B6a0F985cf1227BE05F04",
|
|
147
|
+
stkcvxsteCRV: "0xd8bAbB7EfBF7F931a69B209f71b27421F8b18516",
|
|
148
|
+
stkcvxcrvPlain3andSUSD: "0x6b45Cab756B41a7204973b71362ef5F73E67F6DA",
|
|
149
149
|
//GEARBOX
|
|
150
150
|
dDAI: "0x6CFaF95457d7688022FC53e7AbE052ef8DFBbdBA",
|
|
151
151
|
dUSDC: "0xc411dB5f5Eb3f7d552F9B8454B2D74097ccdE6E3",
|
package/package.json
CHANGED
|
@@ -86,6 +86,12 @@ export const contractsByNetwork: Record<
|
|
|
86
86
|
// LIDO
|
|
87
87
|
LIDO_STETH_GATEWAY: "0x55045Eaae19d92680E02231e4Ce7bBEB4814ca64"
|
|
88
88
|
},
|
|
89
|
+
|
|
90
|
+
///
|
|
91
|
+
///
|
|
92
|
+
/// KOVAN
|
|
93
|
+
///
|
|
94
|
+
///
|
|
89
95
|
Kovan: {
|
|
90
96
|
UNISWAP_V2_ROUTER: "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",
|
|
91
97
|
UNISWAP_V3_ROUTER: "0xE592427A0AEce92De3Edee1F18E0157C05861564",
|
|
@@ -93,7 +99,7 @@ export const contractsByNetwork: Record<
|
|
|
93
99
|
|
|
94
100
|
// CURVE
|
|
95
101
|
CURVE_3CRV_POOL: "0x5C07cB1e8510DCC0DA262A71bb532B0e85368250",
|
|
96
|
-
CURVE_STETH_GATEWAY: "",
|
|
102
|
+
CURVE_STETH_GATEWAY: "0xed4439dc6D555b5712E1B3815848B7a80E0bd8a2",
|
|
97
103
|
CURVE_FRAX_POOL: tokenDataByNetwork.Kovan.FRAX3CRV,
|
|
98
104
|
CURVE_LUSD_POOL: tokenDataByNetwork.Kovan.LUSD3CRV,
|
|
99
105
|
CURVE_SUSD_POOL: "0xcD0d789E7b0BCCa84ea23F309f9154B186606f4F",
|
|
@@ -118,7 +124,7 @@ export const contractsByNetwork: Record<
|
|
|
118
124
|
CONVEX_CLAIM_ZAP: "0x1330C2E5Cd8c333683aE511550f82d25918FFdd5",
|
|
119
125
|
|
|
120
126
|
// LIDO
|
|
121
|
-
LIDO_STETH_GATEWAY: ""
|
|
127
|
+
LIDO_STETH_GATEWAY: "0x7C1C4eC1f1510E3978a96a1d024D7689F05a7Ca1"
|
|
122
128
|
}
|
|
123
129
|
};
|
|
124
130
|
|
package/src/tokens/token.ts
CHANGED
|
@@ -203,11 +203,11 @@ export const tokenDataByNetwork: Record<
|
|
|
203
203
|
cvxgusd3CRV: "0xa3aDFDf18d166e26bF1Bc0ee63D26d0d1064b056",
|
|
204
204
|
|
|
205
205
|
// CONVEX PHANTOM TOKEN ADDRESSES
|
|
206
|
-
stkcvx3Crv: "",
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
206
|
+
stkcvx3Crv: "0xf4FC4Aa052346fEa87f1e864f10de0f7383e9502",
|
|
207
|
+
stkcvxFRAX3CRV: "0xd726f9684245065B120E1ac18de389f6b05351Ba",
|
|
208
|
+
stkcvxgusd3CRV: "0x9A74e8106f6c28b21b1B6a0F985cf1227BE05F04",
|
|
209
|
+
stkcvxsteCRV: "0xd8bAbB7EfBF7F931a69B209f71b27421F8b18516",
|
|
210
|
+
stkcvxcrvPlain3andSUSD: "0x6b45Cab756B41a7204973b71362ef5F73E67F6DA",
|
|
211
211
|
|
|
212
212
|
//GEARBOX
|
|
213
213
|
dDAI: "0x6CFaF95457d7688022FC53e7AbE052ef8DFBbdBA",
|
package/src/utils/multicall.ts
CHANGED
|
@@ -1,83 +1,83 @@
|
|
|
1
|
-
import {ethers} from "ethers";
|
|
2
|
-
import {Multicall2, Multicall2__factory} from "../types";
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import { Multicall2, Multicall2__factory } from "../types";
|
|
3
3
|
|
|
4
4
|
export interface CallData<T extends ethers.utils.Interface> {
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
method: keyof T["functions"];
|
|
6
|
+
params?: any;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export interface MCall<T extends ethers.utils.Interface> {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
address: string;
|
|
11
|
+
interface: T;
|
|
12
|
+
method: keyof T["functions"];
|
|
13
|
+
params?: any;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export async function multicall<R extends Array<any>>(
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
calls: Array<MCall<any>>,
|
|
18
|
+
p: ethers.providers.Provider
|
|
19
19
|
): Promise<R> {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const multiCallContract = Multicall2__factory.connect(
|
|
21
|
+
"0x5ba1e12693dc8f9c48aad8770482f4739beed696",
|
|
22
|
+
p
|
|
23
|
+
);
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
const { returnData } = await multiCallContract.callStatic.aggregate(
|
|
26
|
+
calls.map(c => ({
|
|
27
|
+
target: c.address,
|
|
28
|
+
callData: c.interface.encodeFunctionData(c.method as string, c.params)
|
|
29
|
+
}))
|
|
30
|
+
);
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
return returnData
|
|
33
|
+
.map((d, num) =>
|
|
34
|
+
calls[num].interface.decodeFunctionResult(calls[num].method as string, d)
|
|
35
|
+
)
|
|
36
|
+
.map(r => r[0]) as R;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
export class MultiCallContract<T extends ethers.utils.Interface> {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
private readonly _address: string;
|
|
41
|
+
private readonly _interface: T;
|
|
42
|
+
protected _multiCall: Multicall2;
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
constructor(
|
|
45
|
+
address: string,
|
|
46
|
+
intrerface: T,
|
|
47
|
+
provider: ethers.providers.Provider
|
|
48
|
+
) {
|
|
49
|
+
this._address = address;
|
|
50
|
+
this._interface = intrerface;
|
|
51
51
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
this._multiCall = Multicall2__factory.connect(
|
|
53
|
+
"0x5ba1e12693dc8f9c48aad8770482f4739beed696",
|
|
54
|
+
provider
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
58
|
+
async call<R extends Array<any>>(data: Array<CallData<T>>): Promise<R> {
|
|
59
|
+
const { returnData } = await this._multiCall.callStatic.aggregate(
|
|
60
|
+
data.map(c => ({
|
|
61
|
+
target: this._address,
|
|
62
|
+
callData: this._interface.encodeFunctionData(
|
|
63
|
+
c.method as string,
|
|
64
|
+
c.params
|
|
65
|
+
)
|
|
66
|
+
}))
|
|
67
|
+
);
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
return returnData
|
|
70
|
+
.map((d, num) =>
|
|
71
|
+
this._interface.decodeFunctionResult(data[num].method as string, d)
|
|
72
|
+
)
|
|
73
|
+
.map(r => r[0]) as R;
|
|
74
|
+
}
|
|
75
75
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
76
|
+
get address(): string {
|
|
77
|
+
return this._address;
|
|
78
|
+
}
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
get interface(): T {
|
|
81
|
+
return this._interface;
|
|
82
|
+
}
|
|
83
83
|
}
|