Skip to content

Commit 716f104

Browse files
authored
Merge pull request #53 from curvefi/feat/add-router-adapter
feat: add leverageZapV2 for lendMarkets
2 parents 096f6ae + 56e2c6c commit 716f104

File tree

12 files changed

+1860
-40
lines changed

12 files changed

+1860
-40
lines changed

README.md

Lines changed: 451 additions & 1 deletion
Large diffs are not rendered by default.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@curvefi/llamalend-api",
3-
"version": "1.0.42",
3+
"version": "1.1.0",
44
"description": "JavaScript library for Curve Lending",
55
"main": "lib/index.js",
66
"author": "Macket",
@@ -16,6 +16,7 @@
1616
"scripts": {
1717
"build": "rm -rf lib && tsc --project tsconfig.build.json",
1818
"lint": "eslint src --ext .ts",
19+
"lint:fix": "eslint src --ext .ts --fix",
1920
"watch": "tsc --watch",
2021
"watch:lib": "rm -rf lib && tsc --watch --project tsconfig.build.json"
2122
},

src/cache/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
class Cache {
2-
// eslint-disable-next-line no-use-before-define
2+
33
private static instance: Cache;
44
readonly cache: Map<string, any>;
55

src/constants/aliases.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export const ALIASES_ETHEREUM = lowerCaseValues({
99
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
1010
// "leverage_zap": "0x3294514B78Df4Bb90132567fcf8E5e99f390B687", // 1inch
1111
"leverage_zap": "0xC5898606BdB494a994578453B92e7910a90aA873", // odos
12+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
1213
"leverage_markets_start_id": "9",
1314
"crvUSD": "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E",
1415
"st_crvUSD": "0x0655977FEb2f289A4aB78af67BAB0d17aAb84367",
@@ -20,6 +21,7 @@ export const ALIASES_POLYGON = lowerCaseValues({
2021
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
2122
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
2223
"leverage_zap": "0x0000000000000000000000000000000000000000",
24+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
2325
});
2426

2527
export const ALIASES_FANTOM = lowerCaseValues({
@@ -28,6 +30,7 @@ export const ALIASES_FANTOM = lowerCaseValues({
2830
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
2931
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
3032
"leverage_zap": "0x0000000000000000000000000000000000000000",
33+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
3134
});
3235

3336
export const ALIASES_AVALANCHE = lowerCaseValues({
@@ -36,6 +39,7 @@ export const ALIASES_AVALANCHE = lowerCaseValues({
3639
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
3740
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
3841
"leverage_zap": "0x0000000000000000000000000000000000000000",
42+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
3943
});
4044

4145
export const ALIASES_ARBITRUM = lowerCaseValues({
@@ -45,6 +49,7 @@ export const ALIASES_ARBITRUM = lowerCaseValues({
4549
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
4650
// "leverage_zap": "0x61C404B60ee9c5fB09F70F9A645DD38fE5b3A956", // 1inch
4751
"leverage_zap": "0xb7b240CFa985306563A301bC417Bc9715059a117", // odos
52+
"leverage_zap_v2": "0x5b07Db9a85992c877b9fBeA6DCC4F79292577640",
4853
"leverage_markets_start_id": "9",
4954
});
5055

@@ -55,6 +60,7 @@ export const ALIASES_OPTIMISM = lowerCaseValues({
5560
"gauge_factory_old": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
5661
"gauge_factory": "0x871fBD4E01012e2E8457346059e8C189d664DbA4",
5762
"leverage_zap": "0x273e44B9a1841857d9360e8792bB59f9e1FfE9Da",
63+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
5864
"leverage_markets_start_id": "0",
5965
"gas_oracle": '0xc0d3C0d3C0d3c0D3C0D3C0d3C0d3C0D3C0D3000f',
6066
"gas_oracle_blob": '0x420000000000000000000000000000000000000f',
@@ -66,6 +72,7 @@ export const ALIASES_XDAI = lowerCaseValues({
6672
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
6773
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
6874
"leverage_zap": "0x0000000000000000000000000000000000000000",
75+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
6976
});
7077

7178
export const ALIASES_MOONBEAM = lowerCaseValues({
@@ -74,6 +81,7 @@ export const ALIASES_MOONBEAM = lowerCaseValues({
7481
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
7582
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
7683
"leverage_zap": "0x0000000000000000000000000000000000000000",
84+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
7785
});
7886

7987
export const ALIASES_AURORA = lowerCaseValues({
@@ -89,6 +97,7 @@ export const ALIASES_KAVA = lowerCaseValues({
8997
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
9098
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
9199
"leverage_zap": "0x0000000000000000000000000000000000000000",
100+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
92101
});
93102

94103
export const ALIASES_CELO = lowerCaseValues({
@@ -97,6 +106,7 @@ export const ALIASES_CELO = lowerCaseValues({
97106
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
98107
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
99108
"leverage_zap": "0x0000000000000000000000000000000000000000",
109+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
100110
});
101111

102112
export const ALIASES_ZKSYNC = lowerCaseValues({
@@ -105,6 +115,7 @@ export const ALIASES_ZKSYNC = lowerCaseValues({
105115
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB", // <--- TODO CHANGE
106116
"gauge_factory": "0x0000000000000000000000000000000000000000",
107117
"leverage_zap": "0x0000000000000000000000000000000000000000",
118+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
108119
});
109120

110121
export const ALIASES_BASE = lowerCaseValues({
@@ -113,6 +124,7 @@ export const ALIASES_BASE = lowerCaseValues({
113124
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB", // <--- TODO CHANGE
114125
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
115126
"leverage_zap": "0x0000000000000000000000000000000000000000",
127+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
116128
});
117129

118130
export const ALIASES_BSC = lowerCaseValues({
@@ -121,6 +133,7 @@ export const ALIASES_BSC = lowerCaseValues({
121133
"gauge_controller": "0x0000000000000000000000000000000000000000", // <--- TODO CHANGE
122134
"gauge_factory": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
123135
"leverage_zap": "0x0000000000000000000000000000000000000000",
136+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
124137
});
125138

126139
export const ALIASES_FRAXTAL = lowerCaseValues({
@@ -130,6 +143,7 @@ export const ALIASES_FRAXTAL = lowerCaseValues({
130143
"gauge_factory_old": "0xeF672bD94913CB6f1d2812a6e18c1fFdEd8eFf5c",
131144
"gauge_factory": "0x0b8d6b6cefc7aa1c2852442e518443b1b22e1c52",
132145
"leverage_zap": "0x37c5ab57AF7100Bdc9B668d766e193CCbF6614FD", // odos
146+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
133147
"leverage_markets_start_id": "0",
134148
});
135149

@@ -139,5 +153,6 @@ export const ALIASES_SONIC = lowerCaseValues({
139153
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
140154
"gauge_factory": "0xf3A431008396df8A8b2DF492C913706BDB0874ef",
141155
"leverage_zap": "0x5552b631e2aD801fAa129Aacf4B701071cC9D1f7", // odos
156+
"leverage_zap_v2": "0x0000000000000000000000000000000000000000",
142157
"leverage_markets_start_id": "0",
143158
});

src/external-api.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,9 @@ export const _getUserCollateral = memoize(
118118
)
119119

120120
export const _getUserCollateralForce = async (
121-
network: INetworkName,
122-
controller: string,
123-
user: string,
121+
network: INetworkName,
122+
controller: string,
123+
user: string,
124124
newTx: string
125125
): Promise<void> => {
126126
await fetch(`https://prices.curve.finance/v1/lending/collateral_events/${network}/${controller}/${user}?new_tx=${newTx}`);
@@ -234,4 +234,4 @@ async function fetchJson(url: string): Promise<any> {
234234
async function fetchData(url: string) {
235235
const {data} = await fetchJson(url);
236236
return data;
237-
}
237+
}

src/interfaces.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,3 +230,22 @@ export interface ILlamma {
230230
export interface IResponseApi {
231231
data: any
232232
}
233+
234+
export interface IQuote {
235+
outAmount: string,
236+
priceImpact: number
237+
}
238+
239+
export interface ILeverageMetrics {
240+
priceImpact: number,
241+
bands: [number, number],
242+
prices: string[],
243+
health: string,
244+
}
245+
246+
export type GetExpectedFn = (
247+
fromToken: string,
248+
toToken: string,
249+
amountIn: bigint,
250+
blacklist: string | string[],
251+
) => Promise<IQuote>;

0 commit comments

Comments
 (0)