@gearbox-protocol/sdk 0.0.83 → 0.0.86
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 +16 -16
- package/package.json +1 -1
- package/src/contracts/contracts.ts +8 -2
- package/src/tokens/token.ts +16 -17
- 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
|
@@ -66,11 +66,11 @@ exports.tokenDataByNetwork = {
|
|
|
66
66
|
cvxcrvPlain3andSUSD: "0x11D200ef1409cecA8D6d23e6496550f707772F11",
|
|
67
67
|
cvxgusd3CRV: "0x15c2471ef46Fa721990730cfa526BcFb45574576",
|
|
68
68
|
// CONVEX PHANTOM TOKEN ADDRESSES
|
|
69
|
-
stkcvx3Crv: "",
|
|
70
|
-
stkcvxsteCRV: "",
|
|
71
|
-
stkcvxFRAX3CRV: "",
|
|
72
|
-
stkcvxcrvPlain3andSUSD: "",
|
|
73
|
-
stkcvxgusd3CRV: "",
|
|
69
|
+
stkcvx3Crv: "0x2eD0f32d7C8b0f7EA7E40277C62Fb9C5DE092003",
|
|
70
|
+
stkcvxsteCRV: "0x2210aa245Bf766eE99325c607807A08e636B5173",
|
|
71
|
+
stkcvxFRAX3CRV: "0x2AF29502110080081FDF726dfBf61ABE3bA9Ef3C",
|
|
72
|
+
stkcvxcrvPlain3andSUSD: "0xd622AD90386BBf0310668175f76eD958030E3635",
|
|
73
|
+
stkcvxgusd3CRV: "0x074f66aE6e28f7e01DFe598ECbfbd3034cf3De47",
|
|
74
74
|
// YEARN TOKENS
|
|
75
75
|
yvDAI: "0xdA816459F1AB5631232FE5e97a05BBBb94970c95",
|
|
76
76
|
yvUSDC: "0xa354f35829ae975e850e23e9615b11da1b3dc4de",
|
|
@@ -121,12 +121,12 @@ exports.tokenDataByNetwork = {
|
|
|
121
121
|
LUNA: "0x9dc1D71fAeE18bF77C6166aBC8b218D3336919F1",
|
|
122
122
|
LQTY: "0xC948BB323d753B37eA8195DeAFE904138Df11fbC",
|
|
123
123
|
// YEARN TOKENS
|
|
124
|
-
yvDAI: "
|
|
125
|
-
yvUSDC: "
|
|
126
|
-
yvWETH: "
|
|
127
|
-
yvWBTC: "
|
|
128
|
-
yvCurve_stETH: "
|
|
129
|
-
yvCurve_FRAX: "
|
|
124
|
+
yvDAI: "0x236Fc952861DD9eB2B5768B858F66a925aD28d65",
|
|
125
|
+
yvUSDC: "0x5C170A7D0Bd8ec9B8c741Aa9Db330D7DD4685b27",
|
|
126
|
+
yvWETH: "0x09Aded0A8e1dfEDA8c086085e525c07ae635Bf58",
|
|
127
|
+
yvWBTC: "0x4FCbB75A117A886d2b09b167A34F6A4477aAD767",
|
|
128
|
+
yvCurve_stETH: "0x215E6a870D06E7aC0DDf2661C443bf5Ab14CAF18",
|
|
129
|
+
yvCurve_FRAX: "0xFa410646B9009866fC9bd39430d052877122FD23",
|
|
130
130
|
// CURVE LP TOKENS
|
|
131
131
|
"3Crv": "0x5640391D2423e9349061DC045B5126A78ddE8CAc",
|
|
132
132
|
steCRV: "0x90F4D460B53F8650413539caB91c397e7b9fbc39",
|
|
@@ -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
|
@@ -118,11 +118,11 @@ export const tokenDataByNetwork: Record<
|
|
|
118
118
|
cvxgusd3CRV: "0x15c2471ef46Fa721990730cfa526BcFb45574576",
|
|
119
119
|
|
|
120
120
|
// CONVEX PHANTOM TOKEN ADDRESSES
|
|
121
|
-
stkcvx3Crv: "",
|
|
122
|
-
stkcvxsteCRV: "",
|
|
123
|
-
stkcvxFRAX3CRV: "",
|
|
124
|
-
stkcvxcrvPlain3andSUSD: "",
|
|
125
|
-
stkcvxgusd3CRV: "",
|
|
121
|
+
stkcvx3Crv: "0x2eD0f32d7C8b0f7EA7E40277C62Fb9C5DE092003",
|
|
122
|
+
stkcvxsteCRV: "0x2210aa245Bf766eE99325c607807A08e636B5173",
|
|
123
|
+
stkcvxFRAX3CRV: "0x2AF29502110080081FDF726dfBf61ABE3bA9Ef3C",
|
|
124
|
+
stkcvxcrvPlain3andSUSD: "0xd622AD90386BBf0310668175f76eD958030E3635",
|
|
125
|
+
stkcvxgusd3CRV: "0x074f66aE6e28f7e01DFe598ECbfbd3034cf3De47",
|
|
126
126
|
|
|
127
127
|
// YEARN TOKENS
|
|
128
128
|
yvDAI: "0xdA816459F1AB5631232FE5e97a05BBBb94970c95",
|
|
@@ -179,13 +179,12 @@ export const tokenDataByNetwork: Record<
|
|
|
179
179
|
LQTY: "0xC948BB323d753B37eA8195DeAFE904138Df11fbC",
|
|
180
180
|
|
|
181
181
|
// YEARN TOKENS
|
|
182
|
-
yvDAI: "
|
|
183
|
-
yvUSDC: "
|
|
184
|
-
yvWETH: "
|
|
185
|
-
yvWBTC: "
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
yvCurve_FRAX: "0xB4AdA607B9d6b2c9Ee07A275e9616B84AC560139",
|
|
182
|
+
yvDAI: "0x236Fc952861DD9eB2B5768B858F66a925aD28d65",
|
|
183
|
+
yvUSDC: "0x5C170A7D0Bd8ec9B8c741Aa9Db330D7DD4685b27",
|
|
184
|
+
yvWETH: "0x09Aded0A8e1dfEDA8c086085e525c07ae635Bf58",
|
|
185
|
+
yvWBTC: "0x4FCbB75A117A886d2b09b167A34F6A4477aAD767",
|
|
186
|
+
yvCurve_stETH: "0x215E6a870D06E7aC0DDf2661C443bf5Ab14CAF18",
|
|
187
|
+
yvCurve_FRAX: "0xFa410646B9009866fC9bd39430d052877122FD23",
|
|
189
188
|
|
|
190
189
|
// CURVE LP TOKENS
|
|
191
190
|
"3Crv": "0x5640391D2423e9349061DC045B5126A78ddE8CAc",
|
|
@@ -203,11 +202,11 @@ export const tokenDataByNetwork: Record<
|
|
|
203
202
|
cvxgusd3CRV: "0xa3aDFDf18d166e26bF1Bc0ee63D26d0d1064b056",
|
|
204
203
|
|
|
205
204
|
// CONVEX PHANTOM TOKEN ADDRESSES
|
|
206
|
-
stkcvx3Crv: "",
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
205
|
+
stkcvx3Crv: "0xf4FC4Aa052346fEa87f1e864f10de0f7383e9502",
|
|
206
|
+
stkcvxFRAX3CRV: "0xd726f9684245065B120E1ac18de389f6b05351Ba",
|
|
207
|
+
stkcvxgusd3CRV: "0x9A74e8106f6c28b21b1B6a0F985cf1227BE05F04",
|
|
208
|
+
stkcvxsteCRV: "0xd8bAbB7EfBF7F931a69B209f71b27421F8b18516",
|
|
209
|
+
stkcvxcrvPlain3andSUSD: "0x6b45Cab756B41a7204973b71362ef5F73E67F6DA",
|
|
211
210
|
|
|
212
211
|
//GEARBOX
|
|
213
212
|
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
|
}
|