@1delta/data-sdk 0.0.41 → 0.0.43
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/README.md +116 -0
- package/dist/index.js +479 -380
- package/dist/index.mjs +475 -383
- package/dist/lending/aave.d.ts +44 -0
- package/dist/lending/aaveV4.d.ts +168 -0
- package/dist/lending/common.d.ts +16 -0
- package/dist/lending/compoundV2.d.ts +38 -0
- package/dist/lending/compoundV3.d.ts +35 -0
- package/dist/lending/curvance.d.ts +112 -0
- package/dist/lending/dolomite.d.ts +54 -0
- package/dist/lending/dss.d.ts +139 -0
- package/dist/lending/euler.d.ts +26 -0
- package/dist/lending/exactly.d.ts +53 -0
- package/dist/lending/fluid.d.ts +53 -0
- package/dist/lending/frankencoin.d.ts +76 -0
- package/dist/lending/fraxlend.d.ts +85 -0
- package/dist/lending/gearbox.d.ts +74 -0
- package/dist/lending/index.d.ts +40 -0
- package/dist/lending/initProtocol.d.ts +11 -0
- package/dist/lending/inverse.d.ts +63 -0
- package/dist/lending/liquity.d.ts +120 -0
- package/dist/lending/lista.d.ts +6 -0
- package/dist/lending/llamalend.d.ts +208 -0
- package/dist/lending/midnight.d.ts +72 -0
- package/dist/lending/morpho.d.ts +72 -0
- package/dist/lending/registry.d.ts +140 -0
- package/dist/lending/resupply.d.ts +77 -0
- package/dist/lending/river.d.ts +61 -0
- package/dist/lending/silo.d.ts +129 -0
- package/dist/lending/teller.d.ts +68 -0
- package/dist/lending/term.d.ts +82 -0
- package/dist/lending/termMax.d.ts +65 -0
- package/package.json +1 -1
- package/dist/lending.d.ts +0 -1978
package/dist/index.mjs
CHANGED
|
@@ -36,37 +36,42 @@ function getChainEntries(chainIds) {
|
|
|
36
36
|
return entries;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
// src/lending.ts
|
|
39
|
+
// src/lending/registry.ts
|
|
40
40
|
var GLOBAL_LENDER_DATA_KEY = "__1delta_lender_registry__";
|
|
41
|
-
|
|
41
|
+
var LENDER_DATA_DEFAULTS = () => ({
|
|
42
42
|
aaveTokens: {},
|
|
43
43
|
aavePools: {},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
aaveReserves: {},
|
|
45
|
+
aaveOracles: {},
|
|
46
|
+
aaveOraclesConfig: {},
|
|
47
|
+
aaveWethGateway: {},
|
|
48
|
+
aaveV4Spokes: {},
|
|
49
|
+
aaveV4Oracles: {},
|
|
50
|
+
aaveV4Peripherals: {},
|
|
47
51
|
compoundV2Pools: {},
|
|
48
52
|
compoundV2Tokens: {},
|
|
49
53
|
compoundV2TokenArray: {},
|
|
50
|
-
initConfig: {},
|
|
51
|
-
aaveReserves: {},
|
|
52
54
|
compoundV2Reserves: {},
|
|
53
|
-
compoundV3Reserves: {},
|
|
54
|
-
aaveOracles: {},
|
|
55
55
|
compoundV2Oracles: {},
|
|
56
|
+
compoundV2OraclesConfig: {},
|
|
57
|
+
compoundV3Pools: {},
|
|
58
|
+
compoundV3BaseData: {},
|
|
59
|
+
compoundV3Reserves: {},
|
|
56
60
|
compoundV3OraclesData: {},
|
|
61
|
+
compoundV3Bulker: {},
|
|
62
|
+
morphoPools: {},
|
|
57
63
|
morphoOracles: {},
|
|
58
64
|
morphoTypeOracles: {},
|
|
59
65
|
morphoTypeMarkets: {},
|
|
60
66
|
morphoTypeVaults: {},
|
|
61
|
-
aaveOraclesConfig: {},
|
|
62
|
-
compoundV2OraclesConfig: {},
|
|
63
|
-
aaveWethGateway: {},
|
|
64
67
|
morphoBundler3: {},
|
|
68
|
+
initConfig: {},
|
|
65
69
|
listaNativeProvider: {},
|
|
66
70
|
midnightConfig: {},
|
|
67
71
|
midnightMarkets: {},
|
|
68
72
|
termConfig: {},
|
|
69
73
|
termMarkets: {},
|
|
74
|
+
termMaxConfig: {},
|
|
70
75
|
exactlyConfig: {},
|
|
71
76
|
exactlyMarkets: {},
|
|
72
77
|
tellerConfig: {},
|
|
@@ -76,7 +81,6 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
76
81
|
riverConfig: {},
|
|
77
82
|
riverMarkets: {},
|
|
78
83
|
inverseConfig: {},
|
|
79
|
-
termMaxConfig: {},
|
|
80
84
|
inverseMarkets: {},
|
|
81
85
|
usddConfig: {},
|
|
82
86
|
usddMarkets: {},
|
|
@@ -88,14 +92,11 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
88
92
|
llamaLendMarkets: {},
|
|
89
93
|
resupplyConfig: {},
|
|
90
94
|
curvanceConfig: {},
|
|
91
|
-
|
|
95
|
+
fraxlendConfig: {},
|
|
92
96
|
eulerConfigs: {},
|
|
93
97
|
eulerVaults: {},
|
|
94
98
|
dolomiteConfigs: {},
|
|
95
99
|
dolomiteEmode: {},
|
|
96
|
-
aaveV4Spokes: {},
|
|
97
|
-
aaveV4Oracles: {},
|
|
98
|
-
aaveV4Peripherals: {},
|
|
99
100
|
siloMarkets: {},
|
|
100
101
|
siloPeripherals: {},
|
|
101
102
|
siloMarketsV3: {},
|
|
@@ -107,166 +108,200 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
107
108
|
marketCompressorV310: "",
|
|
108
109
|
chains: {}
|
|
109
110
|
}
|
|
110
|
-
};
|
|
111
|
+
});
|
|
112
|
+
globalThis[GLOBAL_LENDER_DATA_KEY] = LENDER_DATA_DEFAULTS();
|
|
113
|
+
var LENDER_DATA_SLOTS = Object.keys(LENDER_DATA_DEFAULTS());
|
|
111
114
|
function getGlobalData2() {
|
|
112
115
|
return globalThis[GLOBAL_LENDER_DATA_KEY];
|
|
113
116
|
}
|
|
114
|
-
function initializeLenderData({
|
|
115
|
-
aaveTokensOverride,
|
|
116
|
-
aavePoolsOverride,
|
|
117
|
-
aaveOraclesOverride,
|
|
118
|
-
compoundV2OraclesOverride,
|
|
119
|
-
compoundV3OraclesDataOverride,
|
|
120
|
-
compoundV3PoolsOverride,
|
|
121
|
-
compoundV3BaseDataOverride,
|
|
122
|
-
morphoPoolsOverride,
|
|
123
|
-
compoundV2TokensOverride,
|
|
124
|
-
compoundV2TokenArrayOverride,
|
|
125
|
-
compoundV2PoolsOverride,
|
|
126
|
-
initConfigOverride,
|
|
127
|
-
aaveReservesOverride,
|
|
128
|
-
compoundV3ReservesOverride,
|
|
129
|
-
compoundV2ReservesOverride,
|
|
130
|
-
morphoOraclesOverride,
|
|
131
|
-
morphoTypeOraclesOverride,
|
|
132
|
-
morphoTypeMarketsOverride,
|
|
133
|
-
morphoTypeVaultsOverride,
|
|
134
|
-
aaveOraclesConfigOverride,
|
|
135
|
-
compoundV2OraclesConfigOverride,
|
|
136
|
-
aaveWethGatewayOverride,
|
|
137
|
-
morphoBundler3Override,
|
|
138
|
-
listaNativeProviderOverride,
|
|
139
|
-
midnightConfigOverride,
|
|
140
|
-
midnightMarketsOverride,
|
|
141
|
-
termConfigOverride,
|
|
142
|
-
termMarketsOverride,
|
|
143
|
-
exactlyConfigOverride,
|
|
144
|
-
exactlyMarketsOverride,
|
|
145
|
-
tellerConfigOverride,
|
|
146
|
-
tellerPoolsOverride,
|
|
147
|
-
liquityConfigOverride,
|
|
148
|
-
liquityMarketsOverride,
|
|
149
|
-
riverConfigOverride,
|
|
150
|
-
riverMarketsOverride,
|
|
151
|
-
inverseConfigOverride,
|
|
152
|
-
termMaxConfigOverride,
|
|
153
|
-
inverseMarketsOverride,
|
|
154
|
-
usddConfigOverride,
|
|
155
|
-
usddMarketsOverride,
|
|
156
|
-
skyConfigOverride,
|
|
157
|
-
skyMarketsOverride,
|
|
158
|
-
frankencoinConfigOverride,
|
|
159
|
-
frankencoinMarketsOverride,
|
|
160
|
-
llamaLendConfigOverride,
|
|
161
|
-
llamaLendMarketsOverride,
|
|
162
|
-
resupplyConfigOverride,
|
|
163
|
-
curvanceConfigOverride,
|
|
164
|
-
compoundV3BulkerOverride,
|
|
165
|
-
eulerConfigsOverride,
|
|
166
|
-
eulerVaultsOverride,
|
|
167
|
-
dolomiteConfigsOverride,
|
|
168
|
-
dolomiteEmodeOverride,
|
|
169
|
-
aaveV4SpokesOverride,
|
|
170
|
-
aaveV4OraclesOverride,
|
|
171
|
-
aaveV4PeripheralsOverride,
|
|
172
|
-
siloMarketsOverride,
|
|
173
|
-
siloPeripheralsOverride,
|
|
174
|
-
siloMarketsV3Override,
|
|
175
|
-
siloPeripheralsV3Override,
|
|
176
|
-
fluidResolversOverride,
|
|
177
|
-
fluidVaultsOverride,
|
|
178
|
-
gearboxResolversOverride
|
|
179
|
-
}) {
|
|
117
|
+
function initializeLenderData(overrides) {
|
|
180
118
|
const data = getGlobalData2();
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (compoundV3PoolsOverride) data.compoundV3Pools = compoundV3PoolsOverride;
|
|
187
|
-
if (morphoPoolsOverride) data.morphoPools = morphoPoolsOverride;
|
|
188
|
-
if (compoundV3BaseDataOverride) data.compoundV3BaseData = compoundV3BaseDataOverride;
|
|
189
|
-
if (compoundV2TokensOverride) data.compoundV2Tokens = compoundV2TokensOverride;
|
|
190
|
-
if (compoundV2TokenArrayOverride) data.compoundV2TokenArray = compoundV2TokenArrayOverride;
|
|
191
|
-
if (compoundV2PoolsOverride) data.compoundV2Pools = compoundV2PoolsOverride;
|
|
192
|
-
if (initConfigOverride) data.initConfig = initConfigOverride;
|
|
193
|
-
if (aaveReservesOverride) data.aaveReserves = aaveReservesOverride;
|
|
194
|
-
if (compoundV3ReservesOverride) data.compoundV3Reserves = compoundV3ReservesOverride;
|
|
195
|
-
if (compoundV2ReservesOverride) data.compoundV2Reserves = compoundV2ReservesOverride;
|
|
196
|
-
if (morphoOraclesOverride) data.morphoOracles = morphoOraclesOverride;
|
|
197
|
-
if (morphoTypeOraclesOverride) data.morphoTypeOracles = morphoTypeOraclesOverride;
|
|
198
|
-
if (morphoTypeMarketsOverride) data.morphoTypeMarkets = morphoTypeMarketsOverride;
|
|
199
|
-
if (morphoTypeVaultsOverride) data.morphoTypeVaults = morphoTypeVaultsOverride;
|
|
200
|
-
if (aaveOraclesConfigOverride) data.aaveOraclesConfig = aaveOraclesConfigOverride;
|
|
201
|
-
if (compoundV2OraclesConfigOverride) data.compoundV2OraclesConfig = compoundV2OraclesConfigOverride;
|
|
202
|
-
if (aaveWethGatewayOverride) data.aaveWethGateway = aaveWethGatewayOverride;
|
|
203
|
-
if (morphoBundler3Override) data.morphoBundler3 = morphoBundler3Override;
|
|
204
|
-
if (listaNativeProviderOverride) data.listaNativeProvider = listaNativeProviderOverride;
|
|
205
|
-
if (midnightConfigOverride) data.midnightConfig = midnightConfigOverride;
|
|
206
|
-
if (midnightMarketsOverride) data.midnightMarkets = midnightMarketsOverride;
|
|
207
|
-
if (termConfigOverride) data.termConfig = termConfigOverride;
|
|
208
|
-
if (termMarketsOverride) data.termMarkets = termMarketsOverride;
|
|
209
|
-
if (exactlyConfigOverride) data.exactlyConfig = exactlyConfigOverride;
|
|
210
|
-
if (exactlyMarketsOverride) data.exactlyMarkets = exactlyMarketsOverride;
|
|
211
|
-
if (tellerConfigOverride) data.tellerConfig = tellerConfigOverride;
|
|
212
|
-
if (tellerPoolsOverride) data.tellerPools = tellerPoolsOverride;
|
|
213
|
-
if (liquityConfigOverride) data.liquityConfig = liquityConfigOverride;
|
|
214
|
-
if (liquityMarketsOverride) data.liquityMarkets = liquityMarketsOverride;
|
|
215
|
-
if (riverConfigOverride) data.riverConfig = riverConfigOverride;
|
|
216
|
-
if (riverMarketsOverride) data.riverMarkets = riverMarketsOverride;
|
|
217
|
-
if (inverseConfigOverride) data.inverseConfig = inverseConfigOverride;
|
|
218
|
-
if (termMaxConfigOverride) data.termMaxConfig = termMaxConfigOverride;
|
|
219
|
-
if (inverseMarketsOverride) data.inverseMarkets = inverseMarketsOverride;
|
|
220
|
-
if (usddConfigOverride) data.usddConfig = usddConfigOverride;
|
|
221
|
-
if (usddMarketsOverride) data.usddMarkets = usddMarketsOverride;
|
|
222
|
-
if (skyConfigOverride) data.skyConfig = skyConfigOverride;
|
|
223
|
-
if (skyMarketsOverride) data.skyMarkets = skyMarketsOverride;
|
|
224
|
-
if (frankencoinConfigOverride) data.frankencoinConfig = frankencoinConfigOverride;
|
|
225
|
-
if (frankencoinMarketsOverride) data.frankencoinMarkets = frankencoinMarketsOverride;
|
|
226
|
-
if (llamaLendConfigOverride) data.llamaLendConfig = llamaLendConfigOverride;
|
|
227
|
-
if (llamaLendMarketsOverride) data.llamaLendMarkets = llamaLendMarketsOverride;
|
|
228
|
-
if (resupplyConfigOverride) data.resupplyConfig = resupplyConfigOverride;
|
|
229
|
-
if (curvanceConfigOverride) data.curvanceConfig = curvanceConfigOverride;
|
|
230
|
-
if (compoundV3BulkerOverride) data.compoundV3Bulker = compoundV3BulkerOverride;
|
|
231
|
-
if (eulerConfigsOverride) data.eulerConfigs = eulerConfigsOverride;
|
|
232
|
-
if (eulerVaultsOverride) data.eulerVaults = eulerVaultsOverride;
|
|
233
|
-
if (dolomiteConfigsOverride) data.dolomiteConfigs = dolomiteConfigsOverride;
|
|
234
|
-
if (dolomiteEmodeOverride) data.dolomiteEmode = dolomiteEmodeOverride;
|
|
235
|
-
if (aaveV4SpokesOverride) data.aaveV4Spokes = aaveV4SpokesOverride;
|
|
236
|
-
if (aaveV4OraclesOverride) data.aaveV4Oracles = aaveV4OraclesOverride;
|
|
237
|
-
if (aaveV4PeripheralsOverride) data.aaveV4Peripherals = aaveV4PeripheralsOverride;
|
|
238
|
-
if (siloMarketsOverride) data.siloMarkets = siloMarketsOverride;
|
|
239
|
-
if (siloPeripheralsOverride) data.siloPeripherals = siloPeripheralsOverride;
|
|
240
|
-
if (siloMarketsV3Override) data.siloMarketsV3 = siloMarketsV3Override;
|
|
241
|
-
if (siloPeripheralsV3Override) data.siloPeripheralsV3 = siloPeripheralsV3Override;
|
|
242
|
-
if (fluidResolversOverride) data.fluidResolvers = fluidResolversOverride;
|
|
243
|
-
if (fluidVaultsOverride) data.fluidVaults = fluidVaultsOverride;
|
|
244
|
-
if (gearboxResolversOverride) data.gearboxResolvers = gearboxResolversOverride;
|
|
119
|
+
const given = overrides;
|
|
120
|
+
for (const slot of LENDER_DATA_SLOTS) {
|
|
121
|
+
const value = given[`${slot}Override`];
|
|
122
|
+
if (value) data[slot] = value;
|
|
123
|
+
}
|
|
245
124
|
}
|
|
125
|
+
|
|
126
|
+
// src/lending/aave.ts
|
|
246
127
|
var aaveTokens = () => getGlobalData2()?.aaveTokens;
|
|
247
128
|
var aavePools = () => getGlobalData2()?.aavePools;
|
|
248
129
|
var aaveOracles = () => getGlobalData2()?.aaveOracles;
|
|
130
|
+
var aaveReserves = () => getGlobalData2()?.aaveReserves;
|
|
131
|
+
var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
|
|
132
|
+
var aaveWethGateway = () => getGlobalData2()?.aaveWethGateway;
|
|
133
|
+
|
|
134
|
+
// src/lending/aaveV4.ts
|
|
135
|
+
var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
|
|
136
|
+
var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
|
|
137
|
+
var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
|
|
138
|
+
function getAaveV4SpokeEntry(chainId, lenderKey) {
|
|
139
|
+
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
140
|
+
if (!parsed) return void 0;
|
|
141
|
+
return getGlobalData2()?.aaveV4Spokes?.[chainId]?.[parsed.spokeAddrLower];
|
|
142
|
+
}
|
|
143
|
+
function getAaveV4GatewayAddresses(chainId, lender, hubOverride) {
|
|
144
|
+
const c = getGlobalData2()?.aaveV4Peripherals?.[chainId];
|
|
145
|
+
if (!c) return {};
|
|
146
|
+
let hubAddr = hubOverride?.toLowerCase();
|
|
147
|
+
if (!hubAddr) {
|
|
148
|
+
const spokeEntry = getAaveV4SpokeEntry(chainId, lender);
|
|
149
|
+
hubAddr = spokeEntry?.reserves?.[0]?.hub?.toLowerCase();
|
|
150
|
+
}
|
|
151
|
+
const perHub = hubAddr && c.perHub?.[hubAddr] || void 0;
|
|
152
|
+
return {
|
|
153
|
+
nativeGateway: perHub?.nativeGateway ?? c.nativeGateway,
|
|
154
|
+
signatureGateway: perHub?.signatureGateway ?? c.signatureGateway
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
function getAaveV4SpokePeripherals(chainId, lenderKey) {
|
|
158
|
+
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
159
|
+
if (!parsed) return void 0;
|
|
160
|
+
return getGlobalData2()?.aaveV4Peripherals?.[chainId]?.perSpoke?.[parsed.spokeAddrLower];
|
|
161
|
+
}
|
|
162
|
+
function getAaveV4PositionManagers(chainId, lenderKey) {
|
|
163
|
+
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
164
|
+
if (!meta?.positionManagers) return [];
|
|
165
|
+
return meta.positionManagers.filter((pm) => pm.active !== false && pm.address).map((pm) => pm.address.toLowerCase());
|
|
166
|
+
}
|
|
167
|
+
function findAaveV4PositionManager(chainId, lenderKey, nameQuery) {
|
|
168
|
+
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
169
|
+
if (!meta?.positionManagers) return void 0;
|
|
170
|
+
const q = nameQuery.toLowerCase();
|
|
171
|
+
const hit = meta.positionManagers.find(
|
|
172
|
+
(pm) => pm.active !== false && pm.address && (pm.name ?? "").toLowerCase().includes(q)
|
|
173
|
+
);
|
|
174
|
+
return hit?.address?.toLowerCase();
|
|
175
|
+
}
|
|
176
|
+
function aaveV4SpokeLenderKey(spoke) {
|
|
177
|
+
if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
|
|
178
|
+
throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
|
|
179
|
+
}
|
|
180
|
+
return `AAVE_V4_${spoke.slice(2).toUpperCase()}`;
|
|
181
|
+
}
|
|
182
|
+
function parseAaveV4SpokeLenderKey(lenderKey) {
|
|
183
|
+
const match = lenderKey.match(/^AAVE_V4_([0-9A-F]{40})$/);
|
|
184
|
+
if (!match) return void 0;
|
|
185
|
+
return { spokeAddrLower: "0x" + match[1].toLowerCase() };
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// src/lending/compoundV2.ts
|
|
189
|
+
var compoundV2Pools = () => getGlobalData2()?.compoundV2Pools;
|
|
190
|
+
var compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;
|
|
191
|
+
var compoundV2TokenArray = () => getGlobalData2()?.compoundV2TokenArray;
|
|
192
|
+
var compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;
|
|
249
193
|
var compoundV2Oracles = () => getGlobalData2()?.compoundV2Oracles;
|
|
194
|
+
var compoundV2OraclesConfig = () => getGlobalData2()?.compoundV2OraclesConfig;
|
|
195
|
+
|
|
196
|
+
// src/lending/compoundV3.ts
|
|
197
|
+
var compoundV3Pools = () => getGlobalData2()?.compoundV3Pools;
|
|
198
|
+
var compoundV3BaseData = () => getGlobalData2()?.compoundV3BaseData;
|
|
199
|
+
var compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;
|
|
250
200
|
var compoundV3OraclesData = () => getGlobalData2()?.compoundV3OraclesData;
|
|
201
|
+
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
202
|
+
|
|
203
|
+
// src/lending/morpho.ts
|
|
204
|
+
var morphoPools = () => getGlobalData2()?.morphoPools;
|
|
251
205
|
var morphoOracles = () => getGlobalData2()?.morphoOracles;
|
|
252
206
|
var morphoTypeOracles = () => getGlobalData2()?.morphoTypeOracles;
|
|
253
207
|
var morphoTypeMarkets = () => getGlobalData2()?.morphoTypeMarkets;
|
|
254
208
|
var morphoTypeVaults = () => getGlobalData2()?.morphoTypeVaults;
|
|
255
|
-
var aaveReserves = () => getGlobalData2()?.aaveReserves;
|
|
256
|
-
var compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;
|
|
257
|
-
var compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;
|
|
258
|
-
var compoundV3Pools = () => getGlobalData2()?.compoundV3Pools;
|
|
259
|
-
var morphoPools = () => getGlobalData2()?.morphoPools;
|
|
260
|
-
var compoundV3BaseData = () => getGlobalData2()?.compoundV3BaseData;
|
|
261
|
-
var compoundV2Pools = () => getGlobalData2()?.compoundV2Pools;
|
|
262
|
-
var compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;
|
|
263
|
-
var compoundV2TokenArray = () => getGlobalData2()?.compoundV2TokenArray;
|
|
264
|
-
var initConfig = () => getGlobalData2()?.initConfig;
|
|
265
|
-
var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
|
|
266
|
-
var compoundV2OraclesConfig = () => getGlobalData2()?.compoundV2OraclesConfig;
|
|
267
|
-
var aaveWethGateway = () => getGlobalData2()?.aaveWethGateway;
|
|
268
209
|
var morphoBundler3 = () => getGlobalData2()?.morphoBundler3;
|
|
210
|
+
|
|
211
|
+
// src/lending/euler.ts
|
|
212
|
+
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
213
|
+
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
214
|
+
|
|
215
|
+
// src/lending/silo.ts
|
|
216
|
+
var siloMarkets = () => getGlobalData2()?.siloMarkets;
|
|
217
|
+
var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
|
|
218
|
+
var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
|
|
219
|
+
var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
|
|
220
|
+
function siloV2LenderKey(siloConfig) {
|
|
221
|
+
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
222
|
+
throw new Error(`siloV2LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
223
|
+
}
|
|
224
|
+
return `SILO_V2_${siloConfig.slice(2).toUpperCase()}`;
|
|
225
|
+
}
|
|
226
|
+
function parseSiloV2LenderKey(lenderKey) {
|
|
227
|
+
const match = lenderKey.match(/^SILO_V2_([0-9A-F]{40})$/);
|
|
228
|
+
if (!match) return void 0;
|
|
229
|
+
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
230
|
+
}
|
|
231
|
+
function getSiloV2MarketEntry(chainId, lenderKey) {
|
|
232
|
+
const parsed = parseSiloV2LenderKey(lenderKey);
|
|
233
|
+
if (!parsed) return void 0;
|
|
234
|
+
const list = getGlobalData2()?.siloMarkets?.[chainId];
|
|
235
|
+
if (!list) return void 0;
|
|
236
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
237
|
+
}
|
|
238
|
+
function siloV3LenderKey(siloConfig) {
|
|
239
|
+
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
240
|
+
throw new Error(`siloV3LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
241
|
+
}
|
|
242
|
+
return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
|
|
243
|
+
}
|
|
244
|
+
function parseSiloV3LenderKey(lenderKey) {
|
|
245
|
+
const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
|
|
246
|
+
if (!match) return void 0;
|
|
247
|
+
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
248
|
+
}
|
|
249
|
+
function getSiloV3MarketEntry(chainId, lenderKey) {
|
|
250
|
+
const parsed = parseSiloV3LenderKey(lenderKey);
|
|
251
|
+
if (!parsed) return void 0;
|
|
252
|
+
const list = getGlobalData2()?.siloMarketsV3?.[chainId];
|
|
253
|
+
if (!list) return void 0;
|
|
254
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
// src/lending/fluid.ts
|
|
258
|
+
var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
|
|
259
|
+
var fluidVaults = () => getGlobalData2()?.fluidVaults;
|
|
260
|
+
var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
|
|
261
|
+
var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
|
|
262
|
+
|
|
263
|
+
// src/lending/gearbox.ts
|
|
264
|
+
var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
|
|
265
|
+
var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
|
|
266
|
+
var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
|
|
267
|
+
var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
|
|
268
|
+
var gearboxBotListV3 = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.botList || void 0;
|
|
269
|
+
var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
|
|
270
|
+
var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
|
|
271
|
+
var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
|
|
272
|
+
function gearboxV3LenderKey(creditManager) {
|
|
273
|
+
if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
|
|
274
|
+
throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
|
|
275
|
+
}
|
|
276
|
+
return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
|
|
277
|
+
}
|
|
278
|
+
function parseGearboxV3LenderKey(lenderKey) {
|
|
279
|
+
const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
|
|
280
|
+
if (!match) return void 0;
|
|
281
|
+
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// src/lending/dolomite.ts
|
|
285
|
+
var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
|
|
286
|
+
var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
|
|
287
|
+
var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
|
|
288
|
+
var dolomiteMarketIdByToken = (chainId, token) => {
|
|
289
|
+
const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
|
|
290
|
+
if (!markets) return void 0;
|
|
291
|
+
const lower = token.toLowerCase();
|
|
292
|
+
for (const marketId in markets) {
|
|
293
|
+
if (markets[marketId]?.toLowerCase() === lower) return marketId;
|
|
294
|
+
}
|
|
295
|
+
return void 0;
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
// src/lending/initProtocol.ts
|
|
299
|
+
var initConfig = () => getGlobalData2()?.initConfig;
|
|
300
|
+
|
|
301
|
+
// src/lending/lista.ts
|
|
269
302
|
var listaNativeProvider = () => getGlobalData2()?.listaNativeProvider;
|
|
303
|
+
|
|
304
|
+
// src/lending/midnight.ts
|
|
270
305
|
var midnightConfig = () => getGlobalData2()?.midnightConfig;
|
|
271
306
|
var MIDNIGHT_API_OVERRIDE_KEY = "__1delta_midnight_api_base__";
|
|
272
307
|
var setMidnightApiBase = (url) => {
|
|
@@ -285,6 +320,8 @@ var midnightMarketById = (chainId, marketId) => {
|
|
|
285
320
|
const lower = marketId.toLowerCase();
|
|
286
321
|
return midnightMarketsByChain(chainId).find((m) => m.marketId.toLowerCase() === lower);
|
|
287
322
|
};
|
|
323
|
+
|
|
324
|
+
// src/lending/term.ts
|
|
288
325
|
var termConfig = () => getGlobalData2()?.termConfig;
|
|
289
326
|
var TERM_API_OVERRIDE_KEY = "__1delta_term_api_base__";
|
|
290
327
|
var setTermApiBase = (url) => {
|
|
@@ -303,6 +340,25 @@ var termMarketById = (chainId, termRepoId) => {
|
|
|
303
340
|
const lower = termRepoId.toLowerCase();
|
|
304
341
|
return termMarketsByChain(chainId).find((m) => m.termRepoId.toLowerCase() === lower);
|
|
305
342
|
};
|
|
343
|
+
|
|
344
|
+
// src/lending/termMax.ts
|
|
345
|
+
var termMaxConfig = () => getGlobalData2()?.termMaxConfig;
|
|
346
|
+
var termMaxConfigByChain = (chainId) => getGlobalData2()?.termMaxConfig?.[String(chainId)];
|
|
347
|
+
var termMaxChainIds = () => Object.keys(getGlobalData2()?.termMaxConfig ?? {});
|
|
348
|
+
var termMaxApiBaseUrl = (chainId) => termMaxConfigByChain(chainId)?.apiBaseUrl || "https://api.termmax.ts.finance";
|
|
349
|
+
function termMaxLenderKey(market) {
|
|
350
|
+
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
351
|
+
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
352
|
+
}
|
|
353
|
+
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
354
|
+
}
|
|
355
|
+
function parseTermMaxLenderKey(lenderKey) {
|
|
356
|
+
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
357
|
+
if (!match) return void 0;
|
|
358
|
+
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// src/lending/exactly.ts
|
|
306
362
|
var exactlyConfig = () => getGlobalData2()?.exactlyConfig;
|
|
307
363
|
var exactlyMarkets = () => getGlobalData2()?.exactlyMarkets;
|
|
308
364
|
var exactlyMarketsByChain = (chainId) => getGlobalData2()?.exactlyMarkets?.[String(chainId)] ?? [];
|
|
@@ -314,6 +370,8 @@ var exactlyMarketByAsset = (chainId, asset) => {
|
|
|
314
370
|
const lower = asset.toLowerCase();
|
|
315
371
|
return exactlyMarketsByChain(chainId).find((m) => m.asset.toLowerCase() === lower);
|
|
316
372
|
};
|
|
373
|
+
|
|
374
|
+
// src/lending/teller.ts
|
|
317
375
|
var tellerConfig = () => getGlobalData2()?.tellerConfig;
|
|
318
376
|
var tellerPools = () => getGlobalData2()?.tellerPools;
|
|
319
377
|
var tellerConfigByChain = (chainId) => getGlobalData2()?.tellerConfig?.[String(chainId)];
|
|
@@ -322,6 +380,8 @@ var tellerPoolByAddress = (chainId, pool) => {
|
|
|
322
380
|
const lower = pool.toLowerCase();
|
|
323
381
|
return tellerPoolsByChain(chainId).find((p) => p.pool.toLowerCase() === lower);
|
|
324
382
|
};
|
|
383
|
+
|
|
384
|
+
// src/lending/liquity.ts
|
|
325
385
|
var liquityConfig = () => getGlobalData2()?.liquityConfig;
|
|
326
386
|
var liquityConfigFor = (lender, chainId) => getGlobalData2()?.liquityConfig?.[lender]?.[String(chainId)];
|
|
327
387
|
var liquityMarkets = () => getGlobalData2()?.liquityMarkets;
|
|
@@ -336,15 +396,21 @@ var liquityLendersByChain = (chainId) => {
|
|
|
336
396
|
const chain = String(chainId);
|
|
337
397
|
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.collateralRegistry);
|
|
338
398
|
};
|
|
399
|
+
|
|
400
|
+
// src/lending/river.ts
|
|
339
401
|
var riverConfig = () => getGlobalData2()?.riverConfig;
|
|
340
402
|
var riverConfigFor = (lender, chainId) => getGlobalData2()?.riverConfig?.[lender]?.[String(chainId)];
|
|
341
403
|
var riverMarkets = () => getGlobalData2()?.riverMarkets;
|
|
342
404
|
var riverChainData = (lender, chainId) => getGlobalData2()?.riverMarkets?.[lender]?.[String(chainId)];
|
|
405
|
+
var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
|
|
406
|
+
var riverLendersByChain = (chainId) => {
|
|
407
|
+
const cfg = getGlobalData2()?.riverConfig ?? {};
|
|
408
|
+
const chain = String(chainId);
|
|
409
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
|
|
410
|
+
};
|
|
411
|
+
|
|
412
|
+
// src/lending/inverse.ts
|
|
343
413
|
var inverseConfig = () => getGlobalData2()?.inverseConfig;
|
|
344
|
-
var termMaxConfig = () => getGlobalData2()?.termMaxConfig;
|
|
345
|
-
var termMaxConfigByChain = (chainId) => getGlobalData2()?.termMaxConfig?.[String(chainId)];
|
|
346
|
-
var termMaxChainIds = () => Object.keys(getGlobalData2()?.termMaxConfig ?? {});
|
|
347
|
-
var termMaxApiBaseUrl = (chainId) => termMaxConfigByChain(chainId)?.apiBaseUrl || "https://api.termmax.ts.finance";
|
|
348
414
|
var inverseConfigFor = (lender, chainId) => getGlobalData2()?.inverseConfig?.[lender]?.[String(chainId)];
|
|
349
415
|
var inverseMarkets = () => getGlobalData2()?.inverseMarkets;
|
|
350
416
|
var inverseChainData = (lender, chainId) => getGlobalData2()?.inverseMarkets?.[lender]?.[String(chainId)];
|
|
@@ -352,17 +418,59 @@ var inverseMarketByAddress = (lender, chainId, address) => {
|
|
|
352
418
|
const lower = address.toLowerCase();
|
|
353
419
|
return inverseChainData(lender, chainId)?.markets?.find((m) => m.address.toLowerCase() === lower);
|
|
354
420
|
};
|
|
355
|
-
var
|
|
356
|
-
|
|
357
|
-
const
|
|
421
|
+
var inverseLendersByChain = (chainId) => {
|
|
422
|
+
const cfg = getGlobalData2()?.inverseConfig ?? {};
|
|
423
|
+
const chain = String(chainId);
|
|
424
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.dola);
|
|
425
|
+
};
|
|
426
|
+
|
|
427
|
+
// src/lending/frankencoin.ts
|
|
428
|
+
var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
|
|
429
|
+
var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
|
|
430
|
+
var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
|
|
431
|
+
var frankencoinChainData = (lender, chainId) => getGlobalData2()?.frankencoinMarkets?.[lender]?.[String(chainId)];
|
|
432
|
+
var frankencoinMarketByPosition = (lender, chainId, position) => {
|
|
433
|
+
const lower = position.toLowerCase();
|
|
434
|
+
return frankencoinChainData(lender, chainId)?.markets?.find((m) => m.position.toLowerCase() === lower);
|
|
435
|
+
};
|
|
436
|
+
var frankencoinLendersByChain = (chainId) => {
|
|
437
|
+
const cfg = getGlobalData2()?.frankencoinConfig ?? {};
|
|
438
|
+
const chain = String(chainId);
|
|
439
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
|
|
440
|
+
};
|
|
441
|
+
|
|
442
|
+
// src/lending/dss.ts
|
|
443
|
+
var usddConfig = () => getGlobalData2()?.usddConfig;
|
|
444
|
+
var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
|
|
445
|
+
var usddMarkets = () => getGlobalData2()?.usddMarkets;
|
|
446
|
+
var usddChainData = (lender, chainId) => getGlobalData2()?.usddMarkets?.[lender]?.[String(chainId)];
|
|
447
|
+
var usddMarketByIlk = (lender, chainId, ilk) => usddChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
|
|
448
|
+
var usddLendersByChain = (chainId) => {
|
|
449
|
+
const cfg = getGlobalData2()?.usddConfig ?? {};
|
|
450
|
+
const chain = String(chainId);
|
|
451
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
|
|
452
|
+
};
|
|
453
|
+
var skyConfig = () => getGlobalData2()?.skyConfig;
|
|
454
|
+
var skyConfigFor = (lender, chainId) => getGlobalData2()?.skyConfig?.[lender]?.[String(chainId)];
|
|
455
|
+
var skyMarkets = () => getGlobalData2()?.skyMarkets;
|
|
456
|
+
var skyChainData = (lender, chainId) => getGlobalData2()?.skyMarkets?.[lender]?.[String(chainId)];
|
|
457
|
+
var skyLendersByChain = (chainId) => {
|
|
458
|
+
const cfg = getGlobalData2()?.skyConfig ?? {};
|
|
358
459
|
const chain = String(chainId);
|
|
359
|
-
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.
|
|
460
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
|
|
360
461
|
};
|
|
361
|
-
var
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
462
|
+
var isSkyKey = (lender) => lender === "SKY" || !!lender?.startsWith("SKY_");
|
|
463
|
+
var dssConfigFor = (lender, chainId) => isSkyKey(lender) ? skyConfigFor(lender, chainId) : usddConfigFor(lender, chainId);
|
|
464
|
+
var dssChainData = (lender, chainId) => isSkyKey(lender) ? skyChainData(lender, chainId) : usddChainData(lender, chainId);
|
|
465
|
+
var dssMarketByIlk = (lender, chainId, ilk) => {
|
|
466
|
+
const norm = (s) => s.replace(/-/g, "_");
|
|
467
|
+
const want = norm(ilk);
|
|
468
|
+
return dssChainData(lender, chainId)?.markets?.find((m) => norm(m.ilk) === want);
|
|
365
469
|
};
|
|
470
|
+
var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
|
|
471
|
+
var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
|
|
472
|
+
|
|
473
|
+
// src/lending/llamalend.ts
|
|
366
474
|
var llamaLendConfig = () => getGlobalData2()?.llamaLendConfig;
|
|
367
475
|
var llamaLendConfigFor = (lender, chainId) => getGlobalData2()?.llamaLendConfig?.[lender]?.[String(chainId)];
|
|
368
476
|
var llamaLendMarkets = () => getGlobalData2()?.llamaLendMarkets;
|
|
@@ -398,48 +506,19 @@ var llamaLendSupportsLeverage = (lender, chainId, controller) => {
|
|
|
398
506
|
return Boolean(cfg?.leverageZapOdos || cfg?.leverageZap1inch);
|
|
399
507
|
};
|
|
400
508
|
var llamaLendApiBaseUrl = (lender, chainId) => llamaLendConfigFor(lender, chainId)?.apiBaseUrl || "https://api.curve.finance";
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
};
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
var skyChainData = (lender, chainId) => getGlobalData2()?.skyMarkets?.[lender]?.[String(chainId)];
|
|
415
|
-
var skyLendersByChain = (chainId) => {
|
|
416
|
-
const cfg = getGlobalData2()?.skyConfig ?? {};
|
|
417
|
-
const chain = String(chainId);
|
|
418
|
-
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
|
|
419
|
-
};
|
|
420
|
-
var isSkyKey = (lender) => lender === "SKY" || !!lender?.startsWith("SKY_");
|
|
421
|
-
var dssConfigFor = (lender, chainId) => isSkyKey(lender) ? skyConfigFor(lender, chainId) : usddConfigFor(lender, chainId);
|
|
422
|
-
var dssChainData = (lender, chainId) => isSkyKey(lender) ? skyChainData(lender, chainId) : usddChainData(lender, chainId);
|
|
423
|
-
var dssMarketByIlk = (lender, chainId, ilk) => {
|
|
424
|
-
const norm = (s) => s.replace(/-/g, "_");
|
|
425
|
-
const want = norm(ilk);
|
|
426
|
-
return dssChainData(lender, chainId)?.markets?.find((m) => norm(m.ilk) === want);
|
|
427
|
-
};
|
|
428
|
-
var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
|
|
429
|
-
var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
|
|
430
|
-
var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
|
|
431
|
-
var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
|
|
432
|
-
var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
|
|
433
|
-
var frankencoinChainData = (lender, chainId) => getGlobalData2()?.frankencoinMarkets?.[lender]?.[String(chainId)];
|
|
434
|
-
var frankencoinMarketByPosition = (lender, chainId, position) => {
|
|
435
|
-
const lower = position.toLowerCase();
|
|
436
|
-
return frankencoinChainData(lender, chainId)?.markets?.find((m) => m.position.toLowerCase() === lower);
|
|
437
|
-
};
|
|
438
|
-
var frankencoinLendersByChain = (chainId) => {
|
|
439
|
-
const cfg = getGlobalData2()?.frankencoinConfig ?? {};
|
|
440
|
-
const chain = String(chainId);
|
|
441
|
-
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
|
|
442
|
-
};
|
|
509
|
+
function llamaLendLenderKey(controller) {
|
|
510
|
+
if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
|
|
511
|
+
throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
|
|
512
|
+
}
|
|
513
|
+
return `LLAMALEND_${controller.slice(2).toUpperCase()}`;
|
|
514
|
+
}
|
|
515
|
+
function parseLlamaLendLenderKey(lenderKey) {
|
|
516
|
+
const match = lenderKey.match(/^LLAMALEND_([0-9A-Fa-f]{40})$/);
|
|
517
|
+
if (!match) return void 0;
|
|
518
|
+
return { controllerAddrLower: "0x" + match[1].toLowerCase() };
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
// src/lending/resupply.ts
|
|
443
522
|
var RESUPPLY_ETHEREUM_CONFIG = {
|
|
444
523
|
registry: "0x10101010E0C3171D894B71B3400668aF311e7D94",
|
|
445
524
|
reusd: "0x57aB1E0003F623289CD798B1824Be09a793e4Bec",
|
|
@@ -452,6 +531,18 @@ var RESUPPLY_ETHEREUM_CONFIG = {
|
|
|
452
531
|
insurancePool: "0x00000000efe883b3304aFf71eaCf72Dbc3e1b577",
|
|
453
532
|
sreusd: "0x557AB1e003951A73c12D16F0fEA8490E39C33C35",
|
|
454
533
|
priceWatcher: "0xAaaa0013e2ec451F76816d1e0a02ABA596dd9251",
|
|
534
|
+
/**
|
|
535
|
+
* reUSD's own USD price feed — `PriceWatcher.oracle()`, read on-chain
|
|
536
|
+
* 2026-08-08. Its `price()` returns an 18-decimal USD price (0.98983 at
|
|
537
|
+
* the read), and it is the number the protocol itself watches to drive the
|
|
538
|
+
* off-peg amplifier in the borrow rate.
|
|
539
|
+
*
|
|
540
|
+
* Held as config rather than hopped through the PriceWatcher on every
|
|
541
|
+
* refresh (the Inverse `oracle` precedent). Governance-mutable in
|
|
542
|
+
* principle, so re-read `PriceWatcher.oracle()` if reUSD prices ever look
|
|
543
|
+
* frozen.
|
|
544
|
+
*/
|
|
545
|
+
reusdOracle: "0x07Ac1E016D4335FB833666ed5C43846162d2B7e8",
|
|
455
546
|
debtDecimals: 18
|
|
456
547
|
};
|
|
457
548
|
var RESUPPLY_BUILTIN = {
|
|
@@ -475,6 +566,8 @@ var resupplyLendersByChain = (chainId) => {
|
|
|
475
566
|
}
|
|
476
567
|
return [...keys];
|
|
477
568
|
};
|
|
569
|
+
|
|
570
|
+
// src/lending/curvance.ts
|
|
478
571
|
var CURVANCE_MONAD_CONFIG = {
|
|
479
572
|
centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
|
|
480
573
|
oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
|
|
@@ -493,11 +586,17 @@ var CURVANCE_MONAD_CONFIG = {
|
|
|
493
586
|
},
|
|
494
587
|
positionManagers: {
|
|
495
588
|
// muBOND | AUSD
|
|
496
|
-
"0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
|
|
589
|
+
"0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
|
|
590
|
+
simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4"
|
|
591
|
+
},
|
|
497
592
|
// loAZND | AUSD
|
|
498
|
-
"0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
|
|
593
|
+
"0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
|
|
594
|
+
simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917"
|
|
595
|
+
},
|
|
499
596
|
// ezETH | WETH
|
|
500
|
-
"0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
|
|
597
|
+
"0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
|
|
598
|
+
simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584"
|
|
599
|
+
},
|
|
501
600
|
// shMON | WMON
|
|
502
601
|
"0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
|
|
503
602
|
nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
|
|
@@ -509,38 +608,66 @@ var CURVANCE_MONAD_CONFIG = {
|
|
|
509
608
|
simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
|
|
510
609
|
},
|
|
511
610
|
// sMON | WMON
|
|
512
|
-
"0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
|
|
611
|
+
"0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
|
|
612
|
+
simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC"
|
|
613
|
+
},
|
|
513
614
|
// sAUSD | AUSD
|
|
514
615
|
"0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
|
|
515
616
|
simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
|
|
516
617
|
vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
|
|
517
618
|
},
|
|
518
619
|
// earnAUSD | AUSD
|
|
519
|
-
"0xd6365555f6a697C7C295bA741100AA644cE28545": {
|
|
620
|
+
"0xd6365555f6a697C7C295bA741100AA644cE28545": {
|
|
621
|
+
simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881"
|
|
622
|
+
},
|
|
520
623
|
// WMON | AUSD
|
|
521
|
-
"0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
|
|
624
|
+
"0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
|
|
625
|
+
simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74"
|
|
626
|
+
},
|
|
522
627
|
// WMON | USDC
|
|
523
|
-
"0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
|
|
628
|
+
"0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
|
|
629
|
+
simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef"
|
|
630
|
+
},
|
|
524
631
|
// WBTC | USDC
|
|
525
|
-
"0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
|
|
632
|
+
"0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
|
|
633
|
+
simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6"
|
|
634
|
+
},
|
|
526
635
|
// WETH | USDC
|
|
527
|
-
"0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
|
|
636
|
+
"0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
|
|
637
|
+
simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73"
|
|
638
|
+
},
|
|
528
639
|
// gMON | WMON
|
|
529
|
-
"0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
|
|
640
|
+
"0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
|
|
641
|
+
simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee"
|
|
642
|
+
},
|
|
530
643
|
// syzUSD | AUSD
|
|
531
|
-
"0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
|
|
644
|
+
"0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
|
|
645
|
+
simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419"
|
|
646
|
+
},
|
|
532
647
|
// wsrUSD | AUSD
|
|
533
|
-
"0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
|
|
648
|
+
"0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
|
|
649
|
+
simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31"
|
|
650
|
+
},
|
|
534
651
|
// YZM | AUSD
|
|
535
|
-
"0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
|
|
652
|
+
"0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
|
|
653
|
+
simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9"
|
|
654
|
+
},
|
|
536
655
|
// vUSD | AUSD
|
|
537
|
-
"0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
|
|
656
|
+
"0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
|
|
657
|
+
simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50"
|
|
658
|
+
},
|
|
538
659
|
// eBTC | WBTC
|
|
539
|
-
"0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
|
|
660
|
+
"0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
|
|
661
|
+
simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9"
|
|
662
|
+
},
|
|
540
663
|
// savUSD | USDC
|
|
541
|
-
"0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
|
|
664
|
+
"0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
|
|
665
|
+
simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c"
|
|
666
|
+
},
|
|
542
667
|
// savUSD | AUSD
|
|
543
|
-
"0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
|
|
668
|
+
"0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
|
|
669
|
+
simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec"
|
|
670
|
+
}
|
|
544
671
|
}
|
|
545
672
|
};
|
|
546
673
|
var CURVANCE_BUILTIN = {
|
|
@@ -581,158 +708,123 @@ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
|
|
|
581
708
|
if (kind) return pms[kind];
|
|
582
709
|
return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
|
|
583
710
|
};
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
var
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
}
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
}
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
}
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
}
|
|
689
|
-
return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
|
|
690
|
-
}
|
|
691
|
-
function parseSiloV3LenderKey(lenderKey) {
|
|
692
|
-
const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
|
|
693
|
-
if (!match) return void 0;
|
|
694
|
-
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
695
|
-
}
|
|
696
|
-
function getSiloV3MarketEntry(chainId, lenderKey) {
|
|
697
|
-
const parsed = parseSiloV3LenderKey(lenderKey);
|
|
698
|
-
if (!parsed) return void 0;
|
|
699
|
-
const list = getGlobalData2()?.siloMarketsV3?.[chainId];
|
|
700
|
-
if (!list) return void 0;
|
|
701
|
-
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
702
|
-
}
|
|
703
|
-
function gearboxV3LenderKey(creditManager) {
|
|
704
|
-
if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
|
|
705
|
-
throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
|
|
706
|
-
}
|
|
707
|
-
return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
|
|
708
|
-
}
|
|
709
|
-
function parseGearboxV3LenderKey(lenderKey) {
|
|
710
|
-
const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
|
|
711
|
-
if (!match) return void 0;
|
|
712
|
-
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
713
|
-
}
|
|
714
|
-
function termMaxLenderKey(market) {
|
|
715
|
-
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
716
|
-
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
711
|
+
|
|
712
|
+
// src/lending/fraxlend.ts
|
|
713
|
+
var FRAXLEND_ETHEREUM_CONFIG = {
|
|
714
|
+
deployer: "0xD6E9D27C75Afd88ad24Cd5EdccdC76fd2fc3A751",
|
|
715
|
+
/**
|
|
716
|
+
* `0xA49fD918…` — approved on exactly 3 of the 71 pairs (the 95 % LTV
|
|
717
|
+
* yield-bearing-stablecoin carry markets, flagged below). It is NOT an
|
|
718
|
+
* aggregator router: on those pairs the collateral is an ERC-4626 over the
|
|
719
|
+
* pair's own asset, so the "swap" is a vault deposit and `path` is just
|
|
720
|
+
* `[asset, collateral]`.
|
|
721
|
+
*
|
|
722
|
+
* The legacy 2022 grants (`0xc14d5506…` = FraxswapRouterV2, `0x1c6ca5de…`)
|
|
723
|
+
* sit only on dead FraxlendV1 pairs and are deliberately not carried here.
|
|
724
|
+
*/
|
|
725
|
+
leverageSwapper: "0xA49fD918238b1a7003659138Fb91f194306B595b",
|
|
726
|
+
pairs: [
|
|
727
|
+
// --- the book: 62 % of supply, 69 % of borrows, and NO swapper ---
|
|
728
|
+
{
|
|
729
|
+
address: "0xaB3cb84c310186B2Fa4B4503624A5D90b5DcB22D",
|
|
730
|
+
symbol: "ffrxUSD(sfrxETH)-58",
|
|
731
|
+
label: "frxUSD / sfrxETH"
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
address: "0x78bB3aEC3d855431bd9289fD98dA13F9ebB7ef15",
|
|
735
|
+
symbol: "fFRAX(sfrxETH)-16",
|
|
736
|
+
label: "FRAX / sfrxETH"
|
|
737
|
+
},
|
|
738
|
+
// --- LEVERAGE-ENABLED (swapper approved at curation; still probe live) ---
|
|
739
|
+
{
|
|
740
|
+
address: "0xC045A53936D793839BFCA146058976ef4285161E",
|
|
741
|
+
symbol: "ffrxUSD(sfrxUSD)-69",
|
|
742
|
+
label: "frxUSD / sfrxUSD"
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
address: "0x28Cdf6Ce79702AAeFbF217cF98cbD11f5639B9f1",
|
|
746
|
+
symbol: "ffrxUSD(sUSDe)-59",
|
|
747
|
+
label: "frxUSD / sUSDe"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
address: "0x8087346b8865e5B0bF9F8A49742c2D83f6a50a6c",
|
|
751
|
+
symbol: "ffrxUSD(scrvUSD)-61",
|
|
752
|
+
label: "frxUSD / scrvUSD"
|
|
753
|
+
},
|
|
754
|
+
// --- the rest of the listed set ---
|
|
755
|
+
{
|
|
756
|
+
address: "0x470c677AF6CCE089ac38245332BfA03b22b4caeD",
|
|
757
|
+
symbol: "ffrxUSD(WFRAX)-68",
|
|
758
|
+
label: "frxUSD / WFRAX"
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
// A Frax BOND collateral with a real maturity, and it sits at ~100 %
|
|
762
|
+
// utilization — withdrawals will revert on liquidity, which is a
|
|
763
|
+
// supply-side UX problem, not a config error.
|
|
764
|
+
address: "0x1c0C222989a37247D974937782cebc8bF4f25733",
|
|
765
|
+
symbol: "fFRAX(FXB_20261231)-24",
|
|
766
|
+
label: "FRAX / FXB Dec-2026"
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
address: "0x8E5f09de0cD7841239410F929A905E214443d9E0",
|
|
770
|
+
symbol: "ffrxUSD(WBTC)-62",
|
|
771
|
+
label: "frxUSD / WBTC"
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
address: "0xb5a46f712F03808aE5c4B885C6F598fA06442684",
|
|
775
|
+
symbol: "fFRAX(wstETH)-28",
|
|
776
|
+
label: "FRAX / wstETH"
|
|
777
|
+
},
|
|
778
|
+
{
|
|
779
|
+
address: "0xc6CadA314389430d396C7b0C70c6281e99ca7fe8",
|
|
780
|
+
symbol: "fFRAX(UNI)-19",
|
|
781
|
+
label: "FRAX / UNI"
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
address: "0xb5Ae5b75C0DF5632c572A657109375646Ce66f90",
|
|
785
|
+
symbol: "fFRAX(sUSDe)-31",
|
|
786
|
+
label: "FRAX / sUSDe"
|
|
787
|
+
},
|
|
788
|
+
{
|
|
789
|
+
address: "0xA201E7bBb7Ca60ab88514d12dD91fC6748E6D050",
|
|
790
|
+
symbol: "ffrxUSD(srRoyUSDC)-70",
|
|
791
|
+
label: "frxUSD / srRoyUSDC"
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
address: "0x7093F6141293F7C4F67E5efD922aC934402E452d",
|
|
795
|
+
symbol: "fFRAX(LINK)-27",
|
|
796
|
+
label: "FRAX / LINK"
|
|
797
|
+
}
|
|
798
|
+
]
|
|
799
|
+
};
|
|
800
|
+
var FRAXLEND_BUILTIN = {
|
|
801
|
+
FRAXLEND: { "1": FRAXLEND_ETHEREUM_CONFIG }
|
|
802
|
+
};
|
|
803
|
+
var fraxlendConfig = () => getGlobalData2()?.fraxlendConfig;
|
|
804
|
+
var fraxlendConfigFor = (lender, chainId) => {
|
|
805
|
+
const published = getGlobalData2()?.fraxlendConfig?.[lender]?.[String(chainId)];
|
|
806
|
+
if (published?.pairs?.length) return published;
|
|
807
|
+
return FRAXLEND_BUILTIN[lender]?.[String(chainId)];
|
|
808
|
+
};
|
|
809
|
+
var fraxlendLendersByChain = (chainId) => {
|
|
810
|
+
const chain = String(chainId);
|
|
811
|
+
const cfg = getGlobalData2()?.fraxlendConfig ?? {};
|
|
812
|
+
const keys = /* @__PURE__ */ new Set();
|
|
813
|
+
for (const lender of Object.keys(cfg)) {
|
|
814
|
+
if (cfg[lender]?.[chain]?.pairs?.length) keys.add(lender);
|
|
717
815
|
}
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
function parseTermMaxLenderKey(lenderKey) {
|
|
721
|
-
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
722
|
-
if (!match) return void 0;
|
|
723
|
-
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
724
|
-
}
|
|
725
|
-
function llamaLendLenderKey(controller) {
|
|
726
|
-
if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
|
|
727
|
-
throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
|
|
816
|
+
for (const lender of Object.keys(FRAXLEND_BUILTIN)) {
|
|
817
|
+
if (FRAXLEND_BUILTIN[lender]?.[chain]?.pairs?.length) keys.add(lender);
|
|
728
818
|
}
|
|
729
|
-
return
|
|
730
|
-
}
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
819
|
+
return [...keys];
|
|
820
|
+
};
|
|
821
|
+
var fraxlendPairsFor = (lender, chainId) => fraxlendConfigFor(lender, chainId)?.pairs ?? [];
|
|
822
|
+
var fraxlendPairKey = (chainId, pair) => `FRAXLEND_${String(chainId)}_${pair.toLowerCase()}`;
|
|
823
|
+
var parseFraxlendPairKey = (lender) => {
|
|
824
|
+
const m = /^FRAXLEND_(\d+)_(0x[0-9a-fA-F]{40})$/.exec(lender);
|
|
825
|
+
if (!m) return void 0;
|
|
826
|
+
return { chainId: m[1], pair: m[2].toLowerCase() };
|
|
827
|
+
};
|
|
736
828
|
|
|
737
829
|
// src/tokens.ts
|
|
738
830
|
var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
|
|
@@ -765,4 +857,4 @@ async function fetchMainTokensMap() {
|
|
|
765
857
|
return await data.json();
|
|
766
858
|
}
|
|
767
859
|
|
|
768
|
-
export { CURVANCE_MONAD_CONFIG, GEARBOX_ACCOUNT_COMPRESSOR_V310, RESUPPLY_ETHEREUM_CONFIG, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, chainLogoURI, chains, compoundV2Oracles, compoundV2OraclesConfig, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, curvanceConfig, curvanceConfigFor, curvanceLendersByChain, curvancePositionManager, curvancePositionManagersFor, dolomiteChains, dolomiteConfigs, dolomiteEmode, dolomiteMarketIdByToken, dssChainData, dssConfigFor, dssDebtJoin, dssDebtToken, dssMarketByIlk, eulerConfigs, eulerVaults, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, fetchMainTokensMap, fetchTokenList, fetchTokenListFile, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, frankencoinChainData, frankencoinConfig, frankencoinConfigFor, frankencoinLendersByChain, frankencoinMarketByPosition, frankencoinMarkets, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, inverseChainData, inverseConfig, inverseConfigFor, inverseLendersByChain, inverseMarketByAddress, inverseMarkets, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaNativeProvider, llamaLendApiBaseUrl, llamaLendChainData, llamaLendConfig, llamaLendConfigFor, llamaLendLenderKey, llamaLendLendersByChain, llamaLendLeverageZap, llamaLendMarketByController, llamaLendMarketByVault, llamaLendMarkets, llamaLendSupportsDelegation, llamaLendSupportsLeverage, midnightApiBaseOverride, midnightConfig, midnightMarketById, midnightMarkets, midnightMarketsByChain, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseGearboxV3LenderKey, parseLlamaLendLenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, parseTermMaxLenderKey, resolveMidnightApiBase, resolveTermApiBase, resupplyConfig, resupplyConfigFor, resupplyLendersByChain, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setTermApiBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, skyChainData, skyConfig, skyConfigFor, skyLendersByChain, skyMarkets, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain, termMaxApiBaseUrl, termMaxChainIds, termMaxConfig, termMaxConfigByChain, termMaxLenderKey, usddChainData, usddConfig, usddConfigFor, usddLendersByChain, usddMarketByIlk, usddMarkets };
|
|
860
|
+
export { CURVANCE_MONAD_CONFIG, FRAXLEND_ETHEREUM_CONFIG, GEARBOX_ACCOUNT_COMPRESSOR_V310, RESUPPLY_ETHEREUM_CONFIG, aaveOracles, aaveOraclesConfig, aavePools, aaveReserves, aaveTokens, aaveV4Oracles, aaveV4Peripherals, aaveV4SpokeLenderKey, aaveV4Spokes, aaveWethGateway, chainLogoURI, chains, compoundV2Oracles, compoundV2OraclesConfig, compoundV2Pools, compoundV2Reserves, compoundV2TokenArray, compoundV2Tokens, compoundV3BaseData, compoundV3Bulker, compoundV3OraclesData, compoundV3Pools, compoundV3Reserves, curvanceConfig, curvanceConfigFor, curvanceLendersByChain, curvancePositionManager, curvancePositionManagersFor, dolomiteChains, dolomiteConfigs, dolomiteEmode, dolomiteMarketIdByToken, dssChainData, dssConfigFor, dssDebtJoin, dssDebtToken, dssMarketByIlk, eulerConfigs, eulerVaults, exactlyConfig, exactlyMarketByAddress, exactlyMarketByAsset, exactlyMarkets, exactlyMarketsByChain, fetchMainTokensMap, fetchTokenList, fetchTokenListFile, fetchTokenLists, findAaveV4PositionManager, fluidChains, fluidResolvers, fluidVaultEntries, fluidVaults, frankencoinChainData, frankencoinConfig, frankencoinConfigFor, frankencoinLendersByChain, frankencoinMarketByPosition, frankencoinMarkets, fraxlendConfig, fraxlendConfigFor, fraxlendLendersByChain, fraxlendPairKey, fraxlendPairsFor, gearboxAccountCompressor, gearboxAddressProviderV310, gearboxBotListV3, gearboxChains, gearboxMarketCompressor, gearboxMarketConfigurators, gearboxResolvers, gearboxV3LenderKey, getAaveV4GatewayAddresses, getAaveV4PositionManagers, getAaveV4SpokeEntry, getAaveV4SpokePeripherals, getChainEntries, getSiloV2MarketEntry, getSiloV3MarketEntry, initConfig, initializeChainData, initializeLenderData, inverseChainData, inverseConfig, inverseConfigFor, inverseLendersByChain, inverseMarketByAddress, inverseMarkets, liquityBranchByIndex, liquityBranchByTroveManager, liquityBranchesByChain, liquityConfig, liquityConfigFor, liquityLendersByChain, liquityMarkets, listaNativeProvider, llamaLendApiBaseUrl, llamaLendChainData, llamaLendConfig, llamaLendConfigFor, llamaLendLenderKey, llamaLendLendersByChain, llamaLendLeverageZap, llamaLendMarketByController, llamaLendMarketByVault, llamaLendMarkets, llamaLendSupportsDelegation, llamaLendSupportsLeverage, midnightApiBaseOverride, midnightConfig, midnightMarketById, midnightMarkets, midnightMarketsByChain, morphoBundler3, morphoOracles, morphoPools, morphoTypeMarkets, morphoTypeOracles, morphoTypeVaults, parseAaveV4SpokeLenderKey, parseFraxlendPairKey, parseGearboxV3LenderKey, parseLlamaLendLenderKey, parseSiloV2LenderKey, parseSiloV3LenderKey, parseTermMaxLenderKey, resolveMidnightApiBase, resolveTermApiBase, resupplyConfig, resupplyConfigFor, resupplyLendersByChain, riverChainData, riverConfig, riverConfigFor, riverLendersByChain, riverMarketByIndex, riverMarkets, setMidnightApiBase, setTermApiBase, siloMarkets, siloMarketsV3, siloPeripherals, siloPeripheralsV3, siloV2LenderKey, siloV3LenderKey, skyChainData, skyConfig, skyConfigFor, skyLendersByChain, skyMarkets, tellerConfig, tellerConfigByChain, tellerPoolByAddress, tellerPools, tellerPoolsByChain, termApiBaseOverride, termConfig, termMarketById, termMarkets, termMarketsByChain, termMaxApiBaseUrl, termMaxChainIds, termMaxConfig, termMaxConfigByChain, termMaxLenderKey, usddChainData, usddConfig, usddConfigFor, usddLendersByChain, usddMarketByIlk, usddMarkets };
|