@1delta/data-sdk 0.0.40 → 0.0.42
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 +356 -378
- package/dist/index.mjs +356 -378
- 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/gearbox.d.ts +74 -0
- package/dist/lending/index.d.ts +39 -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 +138 -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 -1968
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,10 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
88
92
|
llamaLendMarkets: {},
|
|
89
93
|
resupplyConfig: {},
|
|
90
94
|
curvanceConfig: {},
|
|
91
|
-
compoundV3Bulker: {},
|
|
92
95
|
eulerConfigs: {},
|
|
93
96
|
eulerVaults: {},
|
|
94
97
|
dolomiteConfigs: {},
|
|
95
98
|
dolomiteEmode: {},
|
|
96
|
-
aaveV4Spokes: {},
|
|
97
|
-
aaveV4Oracles: {},
|
|
98
|
-
aaveV4Peripherals: {},
|
|
99
99
|
siloMarkets: {},
|
|
100
100
|
siloPeripherals: {},
|
|
101
101
|
siloMarketsV3: {},
|
|
@@ -107,166 +107,200 @@ globalThis[GLOBAL_LENDER_DATA_KEY] = {
|
|
|
107
107
|
marketCompressorV310: "",
|
|
108
108
|
chains: {}
|
|
109
109
|
}
|
|
110
|
-
};
|
|
110
|
+
});
|
|
111
|
+
globalThis[GLOBAL_LENDER_DATA_KEY] = LENDER_DATA_DEFAULTS();
|
|
112
|
+
var LENDER_DATA_SLOTS = Object.keys(LENDER_DATA_DEFAULTS());
|
|
111
113
|
function getGlobalData2() {
|
|
112
114
|
return globalThis[GLOBAL_LENDER_DATA_KEY];
|
|
113
115
|
}
|
|
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
|
-
}) {
|
|
116
|
+
function initializeLenderData(overrides) {
|
|
180
117
|
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;
|
|
118
|
+
const given = overrides;
|
|
119
|
+
for (const slot of LENDER_DATA_SLOTS) {
|
|
120
|
+
const value = given[`${slot}Override`];
|
|
121
|
+
if (value) data[slot] = value;
|
|
122
|
+
}
|
|
245
123
|
}
|
|
124
|
+
|
|
125
|
+
// src/lending/aave.ts
|
|
246
126
|
var aaveTokens = () => getGlobalData2()?.aaveTokens;
|
|
247
127
|
var aavePools = () => getGlobalData2()?.aavePools;
|
|
248
128
|
var aaveOracles = () => getGlobalData2()?.aaveOracles;
|
|
129
|
+
var aaveReserves = () => getGlobalData2()?.aaveReserves;
|
|
130
|
+
var aaveOraclesConfig = () => getGlobalData2()?.aaveOraclesConfig;
|
|
131
|
+
var aaveWethGateway = () => getGlobalData2()?.aaveWethGateway;
|
|
132
|
+
|
|
133
|
+
// src/lending/aaveV4.ts
|
|
134
|
+
var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
|
|
135
|
+
var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
|
|
136
|
+
var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
|
|
137
|
+
function getAaveV4SpokeEntry(chainId, lenderKey) {
|
|
138
|
+
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
139
|
+
if (!parsed) return void 0;
|
|
140
|
+
return getGlobalData2()?.aaveV4Spokes?.[chainId]?.[parsed.spokeAddrLower];
|
|
141
|
+
}
|
|
142
|
+
function getAaveV4GatewayAddresses(chainId, lender, hubOverride) {
|
|
143
|
+
const c = getGlobalData2()?.aaveV4Peripherals?.[chainId];
|
|
144
|
+
if (!c) return {};
|
|
145
|
+
let hubAddr = hubOverride?.toLowerCase();
|
|
146
|
+
if (!hubAddr) {
|
|
147
|
+
const spokeEntry = getAaveV4SpokeEntry(chainId, lender);
|
|
148
|
+
hubAddr = spokeEntry?.reserves?.[0]?.hub?.toLowerCase();
|
|
149
|
+
}
|
|
150
|
+
const perHub = hubAddr && c.perHub?.[hubAddr] || void 0;
|
|
151
|
+
return {
|
|
152
|
+
nativeGateway: perHub?.nativeGateway ?? c.nativeGateway,
|
|
153
|
+
signatureGateway: perHub?.signatureGateway ?? c.signatureGateway
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function getAaveV4SpokePeripherals(chainId, lenderKey) {
|
|
157
|
+
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
158
|
+
if (!parsed) return void 0;
|
|
159
|
+
return getGlobalData2()?.aaveV4Peripherals?.[chainId]?.perSpoke?.[parsed.spokeAddrLower];
|
|
160
|
+
}
|
|
161
|
+
function getAaveV4PositionManagers(chainId, lenderKey) {
|
|
162
|
+
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
163
|
+
if (!meta?.positionManagers) return [];
|
|
164
|
+
return meta.positionManagers.filter((pm) => pm.active !== false && pm.address).map((pm) => pm.address.toLowerCase());
|
|
165
|
+
}
|
|
166
|
+
function findAaveV4PositionManager(chainId, lenderKey, nameQuery) {
|
|
167
|
+
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
168
|
+
if (!meta?.positionManagers) return void 0;
|
|
169
|
+
const q = nameQuery.toLowerCase();
|
|
170
|
+
const hit = meta.positionManagers.find(
|
|
171
|
+
(pm) => pm.active !== false && pm.address && (pm.name ?? "").toLowerCase().includes(q)
|
|
172
|
+
);
|
|
173
|
+
return hit?.address?.toLowerCase();
|
|
174
|
+
}
|
|
175
|
+
function aaveV4SpokeLenderKey(spoke) {
|
|
176
|
+
if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
|
|
177
|
+
throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
|
|
178
|
+
}
|
|
179
|
+
return `AAVE_V4_${spoke.slice(2).toUpperCase()}`;
|
|
180
|
+
}
|
|
181
|
+
function parseAaveV4SpokeLenderKey(lenderKey) {
|
|
182
|
+
const match = lenderKey.match(/^AAVE_V4_([0-9A-F]{40})$/);
|
|
183
|
+
if (!match) return void 0;
|
|
184
|
+
return { spokeAddrLower: "0x" + match[1].toLowerCase() };
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// src/lending/compoundV2.ts
|
|
188
|
+
var compoundV2Pools = () => getGlobalData2()?.compoundV2Pools;
|
|
189
|
+
var compoundV2Tokens = () => getGlobalData2()?.compoundV2Tokens;
|
|
190
|
+
var compoundV2TokenArray = () => getGlobalData2()?.compoundV2TokenArray;
|
|
191
|
+
var compoundV2Reserves = () => getGlobalData2()?.compoundV2Reserves;
|
|
249
192
|
var compoundV2Oracles = () => getGlobalData2()?.compoundV2Oracles;
|
|
193
|
+
var compoundV2OraclesConfig = () => getGlobalData2()?.compoundV2OraclesConfig;
|
|
194
|
+
|
|
195
|
+
// src/lending/compoundV3.ts
|
|
196
|
+
var compoundV3Pools = () => getGlobalData2()?.compoundV3Pools;
|
|
197
|
+
var compoundV3BaseData = () => getGlobalData2()?.compoundV3BaseData;
|
|
198
|
+
var compoundV3Reserves = () => getGlobalData2()?.compoundV3Reserves;
|
|
250
199
|
var compoundV3OraclesData = () => getGlobalData2()?.compoundV3OraclesData;
|
|
200
|
+
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
201
|
+
|
|
202
|
+
// src/lending/morpho.ts
|
|
203
|
+
var morphoPools = () => getGlobalData2()?.morphoPools;
|
|
251
204
|
var morphoOracles = () => getGlobalData2()?.morphoOracles;
|
|
252
205
|
var morphoTypeOracles = () => getGlobalData2()?.morphoTypeOracles;
|
|
253
206
|
var morphoTypeMarkets = () => getGlobalData2()?.morphoTypeMarkets;
|
|
254
207
|
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
208
|
var morphoBundler3 = () => getGlobalData2()?.morphoBundler3;
|
|
209
|
+
|
|
210
|
+
// src/lending/euler.ts
|
|
211
|
+
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
212
|
+
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
213
|
+
|
|
214
|
+
// src/lending/silo.ts
|
|
215
|
+
var siloMarkets = () => getGlobalData2()?.siloMarkets;
|
|
216
|
+
var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
|
|
217
|
+
var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
|
|
218
|
+
var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
|
|
219
|
+
function siloV2LenderKey(siloConfig) {
|
|
220
|
+
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
221
|
+
throw new Error(`siloV2LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
222
|
+
}
|
|
223
|
+
return `SILO_V2_${siloConfig.slice(2).toUpperCase()}`;
|
|
224
|
+
}
|
|
225
|
+
function parseSiloV2LenderKey(lenderKey) {
|
|
226
|
+
const match = lenderKey.match(/^SILO_V2_([0-9A-F]{40})$/);
|
|
227
|
+
if (!match) return void 0;
|
|
228
|
+
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
229
|
+
}
|
|
230
|
+
function getSiloV2MarketEntry(chainId, lenderKey) {
|
|
231
|
+
const parsed = parseSiloV2LenderKey(lenderKey);
|
|
232
|
+
if (!parsed) return void 0;
|
|
233
|
+
const list = getGlobalData2()?.siloMarkets?.[chainId];
|
|
234
|
+
if (!list) return void 0;
|
|
235
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
236
|
+
}
|
|
237
|
+
function siloV3LenderKey(siloConfig) {
|
|
238
|
+
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
239
|
+
throw new Error(`siloV3LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
240
|
+
}
|
|
241
|
+
return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
|
|
242
|
+
}
|
|
243
|
+
function parseSiloV3LenderKey(lenderKey) {
|
|
244
|
+
const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
|
|
245
|
+
if (!match) return void 0;
|
|
246
|
+
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
247
|
+
}
|
|
248
|
+
function getSiloV3MarketEntry(chainId, lenderKey) {
|
|
249
|
+
const parsed = parseSiloV3LenderKey(lenderKey);
|
|
250
|
+
if (!parsed) return void 0;
|
|
251
|
+
const list = getGlobalData2()?.siloMarketsV3?.[chainId];
|
|
252
|
+
if (!list) return void 0;
|
|
253
|
+
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// src/lending/fluid.ts
|
|
257
|
+
var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
|
|
258
|
+
var fluidVaults = () => getGlobalData2()?.fluidVaults;
|
|
259
|
+
var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
|
|
260
|
+
var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
|
|
261
|
+
|
|
262
|
+
// src/lending/gearbox.ts
|
|
263
|
+
var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
|
|
264
|
+
var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
|
|
265
|
+
var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
|
|
266
|
+
var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
|
|
267
|
+
var gearboxBotListV3 = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.botList || void 0;
|
|
268
|
+
var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
|
|
269
|
+
var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
|
|
270
|
+
var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
|
|
271
|
+
function gearboxV3LenderKey(creditManager) {
|
|
272
|
+
if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
|
|
273
|
+
throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
|
|
274
|
+
}
|
|
275
|
+
return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
|
|
276
|
+
}
|
|
277
|
+
function parseGearboxV3LenderKey(lenderKey) {
|
|
278
|
+
const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
|
|
279
|
+
if (!match) return void 0;
|
|
280
|
+
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
// src/lending/dolomite.ts
|
|
284
|
+
var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
|
|
285
|
+
var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
|
|
286
|
+
var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
|
|
287
|
+
var dolomiteMarketIdByToken = (chainId, token) => {
|
|
288
|
+
const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
|
|
289
|
+
if (!markets) return void 0;
|
|
290
|
+
const lower = token.toLowerCase();
|
|
291
|
+
for (const marketId in markets) {
|
|
292
|
+
if (markets[marketId]?.toLowerCase() === lower) return marketId;
|
|
293
|
+
}
|
|
294
|
+
return void 0;
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
// src/lending/initProtocol.ts
|
|
298
|
+
var initConfig = () => getGlobalData2()?.initConfig;
|
|
299
|
+
|
|
300
|
+
// src/lending/lista.ts
|
|
269
301
|
var listaNativeProvider = () => getGlobalData2()?.listaNativeProvider;
|
|
302
|
+
|
|
303
|
+
// src/lending/midnight.ts
|
|
270
304
|
var midnightConfig = () => getGlobalData2()?.midnightConfig;
|
|
271
305
|
var MIDNIGHT_API_OVERRIDE_KEY = "__1delta_midnight_api_base__";
|
|
272
306
|
var setMidnightApiBase = (url) => {
|
|
@@ -285,6 +319,8 @@ var midnightMarketById = (chainId, marketId) => {
|
|
|
285
319
|
const lower = marketId.toLowerCase();
|
|
286
320
|
return midnightMarketsByChain(chainId).find((m) => m.marketId.toLowerCase() === lower);
|
|
287
321
|
};
|
|
322
|
+
|
|
323
|
+
// src/lending/term.ts
|
|
288
324
|
var termConfig = () => getGlobalData2()?.termConfig;
|
|
289
325
|
var TERM_API_OVERRIDE_KEY = "__1delta_term_api_base__";
|
|
290
326
|
var setTermApiBase = (url) => {
|
|
@@ -303,6 +339,25 @@ var termMarketById = (chainId, termRepoId) => {
|
|
|
303
339
|
const lower = termRepoId.toLowerCase();
|
|
304
340
|
return termMarketsByChain(chainId).find((m) => m.termRepoId.toLowerCase() === lower);
|
|
305
341
|
};
|
|
342
|
+
|
|
343
|
+
// src/lending/termMax.ts
|
|
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
|
+
function termMaxLenderKey(market) {
|
|
349
|
+
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
350
|
+
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
351
|
+
}
|
|
352
|
+
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
353
|
+
}
|
|
354
|
+
function parseTermMaxLenderKey(lenderKey) {
|
|
355
|
+
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
356
|
+
if (!match) return void 0;
|
|
357
|
+
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// src/lending/exactly.ts
|
|
306
361
|
var exactlyConfig = () => getGlobalData2()?.exactlyConfig;
|
|
307
362
|
var exactlyMarkets = () => getGlobalData2()?.exactlyMarkets;
|
|
308
363
|
var exactlyMarketsByChain = (chainId) => getGlobalData2()?.exactlyMarkets?.[String(chainId)] ?? [];
|
|
@@ -314,6 +369,8 @@ var exactlyMarketByAsset = (chainId, asset) => {
|
|
|
314
369
|
const lower = asset.toLowerCase();
|
|
315
370
|
return exactlyMarketsByChain(chainId).find((m) => m.asset.toLowerCase() === lower);
|
|
316
371
|
};
|
|
372
|
+
|
|
373
|
+
// src/lending/teller.ts
|
|
317
374
|
var tellerConfig = () => getGlobalData2()?.tellerConfig;
|
|
318
375
|
var tellerPools = () => getGlobalData2()?.tellerPools;
|
|
319
376
|
var tellerConfigByChain = (chainId) => getGlobalData2()?.tellerConfig?.[String(chainId)];
|
|
@@ -322,6 +379,8 @@ var tellerPoolByAddress = (chainId, pool) => {
|
|
|
322
379
|
const lower = pool.toLowerCase();
|
|
323
380
|
return tellerPoolsByChain(chainId).find((p) => p.pool.toLowerCase() === lower);
|
|
324
381
|
};
|
|
382
|
+
|
|
383
|
+
// src/lending/liquity.ts
|
|
325
384
|
var liquityConfig = () => getGlobalData2()?.liquityConfig;
|
|
326
385
|
var liquityConfigFor = (lender, chainId) => getGlobalData2()?.liquityConfig?.[lender]?.[String(chainId)];
|
|
327
386
|
var liquityMarkets = () => getGlobalData2()?.liquityMarkets;
|
|
@@ -336,15 +395,21 @@ var liquityLendersByChain = (chainId) => {
|
|
|
336
395
|
const chain = String(chainId);
|
|
337
396
|
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.collateralRegistry);
|
|
338
397
|
};
|
|
398
|
+
|
|
399
|
+
// src/lending/river.ts
|
|
339
400
|
var riverConfig = () => getGlobalData2()?.riverConfig;
|
|
340
401
|
var riverConfigFor = (lender, chainId) => getGlobalData2()?.riverConfig?.[lender]?.[String(chainId)];
|
|
341
402
|
var riverMarkets = () => getGlobalData2()?.riverMarkets;
|
|
342
403
|
var riverChainData = (lender, chainId) => getGlobalData2()?.riverMarkets?.[lender]?.[String(chainId)];
|
|
404
|
+
var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
|
|
405
|
+
var riverLendersByChain = (chainId) => {
|
|
406
|
+
const cfg = getGlobalData2()?.riverConfig ?? {};
|
|
407
|
+
const chain = String(chainId);
|
|
408
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
|
|
409
|
+
};
|
|
410
|
+
|
|
411
|
+
// src/lending/inverse.ts
|
|
343
412
|
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
413
|
var inverseConfigFor = (lender, chainId) => getGlobalData2()?.inverseConfig?.[lender]?.[String(chainId)];
|
|
349
414
|
var inverseMarkets = () => getGlobalData2()?.inverseMarkets;
|
|
350
415
|
var inverseChainData = (lender, chainId) => getGlobalData2()?.inverseMarkets?.[lender]?.[String(chainId)];
|
|
@@ -352,17 +417,59 @@ var inverseMarketByAddress = (lender, chainId, address) => {
|
|
|
352
417
|
const lower = address.toLowerCase();
|
|
353
418
|
return inverseChainData(lender, chainId)?.markets?.find((m) => m.address.toLowerCase() === lower);
|
|
354
419
|
};
|
|
355
|
-
var riverMarketByIndex = (lender, chainId, index) => riverChainData(lender, chainId)?.markets?.find((m) => m.index === Number(index));
|
|
356
|
-
var riverLendersByChain = (chainId) => {
|
|
357
|
-
const cfg = getGlobalData2()?.riverConfig ?? {};
|
|
358
|
-
const chain = String(chainId);
|
|
359
|
-
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.xapp);
|
|
360
|
-
};
|
|
361
420
|
var inverseLendersByChain = (chainId) => {
|
|
362
421
|
const cfg = getGlobalData2()?.inverseConfig ?? {};
|
|
363
422
|
const chain = String(chainId);
|
|
364
423
|
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.dola);
|
|
365
424
|
};
|
|
425
|
+
|
|
426
|
+
// src/lending/frankencoin.ts
|
|
427
|
+
var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
|
|
428
|
+
var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
|
|
429
|
+
var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
|
|
430
|
+
var frankencoinChainData = (lender, chainId) => getGlobalData2()?.frankencoinMarkets?.[lender]?.[String(chainId)];
|
|
431
|
+
var frankencoinMarketByPosition = (lender, chainId, position) => {
|
|
432
|
+
const lower = position.toLowerCase();
|
|
433
|
+
return frankencoinChainData(lender, chainId)?.markets?.find((m) => m.position.toLowerCase() === lower);
|
|
434
|
+
};
|
|
435
|
+
var frankencoinLendersByChain = (chainId) => {
|
|
436
|
+
const cfg = getGlobalData2()?.frankencoinConfig ?? {};
|
|
437
|
+
const chain = String(chainId);
|
|
438
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
// src/lending/dss.ts
|
|
442
|
+
var usddConfig = () => getGlobalData2()?.usddConfig;
|
|
443
|
+
var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
|
|
444
|
+
var usddMarkets = () => getGlobalData2()?.usddMarkets;
|
|
445
|
+
var usddChainData = (lender, chainId) => getGlobalData2()?.usddMarkets?.[lender]?.[String(chainId)];
|
|
446
|
+
var usddMarketByIlk = (lender, chainId, ilk) => usddChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
|
|
447
|
+
var usddLendersByChain = (chainId) => {
|
|
448
|
+
const cfg = getGlobalData2()?.usddConfig ?? {};
|
|
449
|
+
const chain = String(chainId);
|
|
450
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
|
|
451
|
+
};
|
|
452
|
+
var skyConfig = () => getGlobalData2()?.skyConfig;
|
|
453
|
+
var skyConfigFor = (lender, chainId) => getGlobalData2()?.skyConfig?.[lender]?.[String(chainId)];
|
|
454
|
+
var skyMarkets = () => getGlobalData2()?.skyMarkets;
|
|
455
|
+
var skyChainData = (lender, chainId) => getGlobalData2()?.skyMarkets?.[lender]?.[String(chainId)];
|
|
456
|
+
var skyLendersByChain = (chainId) => {
|
|
457
|
+
const cfg = getGlobalData2()?.skyConfig ?? {};
|
|
458
|
+
const chain = String(chainId);
|
|
459
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.vat);
|
|
460
|
+
};
|
|
461
|
+
var isSkyKey = (lender) => lender === "SKY" || !!lender?.startsWith("SKY_");
|
|
462
|
+
var dssConfigFor = (lender, chainId) => isSkyKey(lender) ? skyConfigFor(lender, chainId) : usddConfigFor(lender, chainId);
|
|
463
|
+
var dssChainData = (lender, chainId) => isSkyKey(lender) ? skyChainData(lender, chainId) : usddChainData(lender, chainId);
|
|
464
|
+
var dssMarketByIlk = (lender, chainId, ilk) => {
|
|
465
|
+
const norm = (s) => s.replace(/-/g, "_");
|
|
466
|
+
const want = norm(ilk);
|
|
467
|
+
return dssChainData(lender, chainId)?.markets?.find((m) => norm(m.ilk) === want);
|
|
468
|
+
};
|
|
469
|
+
var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
|
|
470
|
+
var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
|
|
471
|
+
|
|
472
|
+
// src/lending/llamalend.ts
|
|
366
473
|
var llamaLendConfig = () => getGlobalData2()?.llamaLendConfig;
|
|
367
474
|
var llamaLendConfigFor = (lender, chainId) => getGlobalData2()?.llamaLendConfig?.[lender]?.[String(chainId)];
|
|
368
475
|
var llamaLendMarkets = () => getGlobalData2()?.llamaLendMarkets;
|
|
@@ -398,44 +505,19 @@ var llamaLendSupportsLeverage = (lender, chainId, controller) => {
|
|
|
398
505
|
return Boolean(cfg?.leverageZapOdos || cfg?.leverageZap1inch);
|
|
399
506
|
};
|
|
400
507
|
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) => dssChainData(lender, chainId)?.markets?.find((m) => m.ilk === ilk);
|
|
424
|
-
var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
|
|
425
|
-
var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
|
|
426
|
-
var frankencoinConfig = () => getGlobalData2()?.frankencoinConfig;
|
|
427
|
-
var frankencoinConfigFor = (lender, chainId) => getGlobalData2()?.frankencoinConfig?.[lender]?.[String(chainId)];
|
|
428
|
-
var frankencoinMarkets = () => getGlobalData2()?.frankencoinMarkets;
|
|
429
|
-
var frankencoinChainData = (lender, chainId) => getGlobalData2()?.frankencoinMarkets?.[lender]?.[String(chainId)];
|
|
430
|
-
var frankencoinMarketByPosition = (lender, chainId, position) => {
|
|
431
|
-
const lower = position.toLowerCase();
|
|
432
|
-
return frankencoinChainData(lender, chainId)?.markets?.find((m) => m.position.toLowerCase() === lower);
|
|
433
|
-
};
|
|
434
|
-
var frankencoinLendersByChain = (chainId) => {
|
|
435
|
-
const cfg = getGlobalData2()?.frankencoinConfig ?? {};
|
|
436
|
-
const chain = String(chainId);
|
|
437
|
-
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
|
|
438
|
-
};
|
|
508
|
+
function llamaLendLenderKey(controller) {
|
|
509
|
+
if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
|
|
510
|
+
throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
|
|
511
|
+
}
|
|
512
|
+
return `LLAMALEND_${controller.slice(2).toUpperCase()}`;
|
|
513
|
+
}
|
|
514
|
+
function parseLlamaLendLenderKey(lenderKey) {
|
|
515
|
+
const match = lenderKey.match(/^LLAMALEND_([0-9A-Fa-f]{40})$/);
|
|
516
|
+
if (!match) return void 0;
|
|
517
|
+
return { controllerAddrLower: "0x" + match[1].toLowerCase() };
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
// src/lending/resupply.ts
|
|
439
521
|
var RESUPPLY_ETHEREUM_CONFIG = {
|
|
440
522
|
registry: "0x10101010E0C3171D894B71B3400668aF311e7D94",
|
|
441
523
|
reusd: "0x57aB1E0003F623289CD798B1824Be09a793e4Bec",
|
|
@@ -448,6 +530,18 @@ var RESUPPLY_ETHEREUM_CONFIG = {
|
|
|
448
530
|
insurancePool: "0x00000000efe883b3304aFf71eaCf72Dbc3e1b577",
|
|
449
531
|
sreusd: "0x557AB1e003951A73c12D16F0fEA8490E39C33C35",
|
|
450
532
|
priceWatcher: "0xAaaa0013e2ec451F76816d1e0a02ABA596dd9251",
|
|
533
|
+
/**
|
|
534
|
+
* reUSD's own USD price feed — `PriceWatcher.oracle()`, read on-chain
|
|
535
|
+
* 2026-08-08. Its `price()` returns an 18-decimal USD price (0.98983 at
|
|
536
|
+
* the read), and it is the number the protocol itself watches to drive the
|
|
537
|
+
* off-peg amplifier in the borrow rate.
|
|
538
|
+
*
|
|
539
|
+
* Held as config rather than hopped through the PriceWatcher on every
|
|
540
|
+
* refresh (the Inverse `oracle` precedent). Governance-mutable in
|
|
541
|
+
* principle, so re-read `PriceWatcher.oracle()` if reUSD prices ever look
|
|
542
|
+
* frozen.
|
|
543
|
+
*/
|
|
544
|
+
reusdOracle: "0x07Ac1E016D4335FB833666ed5C43846162d2B7e8",
|
|
451
545
|
debtDecimals: 18
|
|
452
546
|
};
|
|
453
547
|
var RESUPPLY_BUILTIN = {
|
|
@@ -471,6 +565,8 @@ var resupplyLendersByChain = (chainId) => {
|
|
|
471
565
|
}
|
|
472
566
|
return [...keys];
|
|
473
567
|
};
|
|
568
|
+
|
|
569
|
+
// src/lending/curvance.ts
|
|
474
570
|
var CURVANCE_MONAD_CONFIG = {
|
|
475
571
|
centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
|
|
476
572
|
oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
|
|
@@ -489,11 +585,17 @@ var CURVANCE_MONAD_CONFIG = {
|
|
|
489
585
|
},
|
|
490
586
|
positionManagers: {
|
|
491
587
|
// muBOND | AUSD
|
|
492
|
-
"0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
|
|
588
|
+
"0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
|
|
589
|
+
simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4"
|
|
590
|
+
},
|
|
493
591
|
// loAZND | AUSD
|
|
494
|
-
"0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
|
|
592
|
+
"0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
|
|
593
|
+
simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917"
|
|
594
|
+
},
|
|
495
595
|
// ezETH | WETH
|
|
496
|
-
"0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
|
|
596
|
+
"0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
|
|
597
|
+
simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584"
|
|
598
|
+
},
|
|
497
599
|
// shMON | WMON
|
|
498
600
|
"0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
|
|
499
601
|
nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
|
|
@@ -505,38 +607,66 @@ var CURVANCE_MONAD_CONFIG = {
|
|
|
505
607
|
simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
|
|
506
608
|
},
|
|
507
609
|
// sMON | WMON
|
|
508
|
-
"0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
|
|
610
|
+
"0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
|
|
611
|
+
simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC"
|
|
612
|
+
},
|
|
509
613
|
// sAUSD | AUSD
|
|
510
614
|
"0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
|
|
511
615
|
simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
|
|
512
616
|
vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
|
|
513
617
|
},
|
|
514
618
|
// earnAUSD | AUSD
|
|
515
|
-
"0xd6365555f6a697C7C295bA741100AA644cE28545": {
|
|
619
|
+
"0xd6365555f6a697C7C295bA741100AA644cE28545": {
|
|
620
|
+
simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881"
|
|
621
|
+
},
|
|
516
622
|
// WMON | AUSD
|
|
517
|
-
"0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
|
|
623
|
+
"0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
|
|
624
|
+
simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74"
|
|
625
|
+
},
|
|
518
626
|
// WMON | USDC
|
|
519
|
-
"0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
|
|
627
|
+
"0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
|
|
628
|
+
simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef"
|
|
629
|
+
},
|
|
520
630
|
// WBTC | USDC
|
|
521
|
-
"0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
|
|
631
|
+
"0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
|
|
632
|
+
simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6"
|
|
633
|
+
},
|
|
522
634
|
// WETH | USDC
|
|
523
|
-
"0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
|
|
635
|
+
"0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
|
|
636
|
+
simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73"
|
|
637
|
+
},
|
|
524
638
|
// gMON | WMON
|
|
525
|
-
"0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
|
|
639
|
+
"0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
|
|
640
|
+
simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee"
|
|
641
|
+
},
|
|
526
642
|
// syzUSD | AUSD
|
|
527
|
-
"0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
|
|
643
|
+
"0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
|
|
644
|
+
simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419"
|
|
645
|
+
},
|
|
528
646
|
// wsrUSD | AUSD
|
|
529
|
-
"0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
|
|
647
|
+
"0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
|
|
648
|
+
simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31"
|
|
649
|
+
},
|
|
530
650
|
// YZM | AUSD
|
|
531
|
-
"0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
|
|
651
|
+
"0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
|
|
652
|
+
simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9"
|
|
653
|
+
},
|
|
532
654
|
// vUSD | AUSD
|
|
533
|
-
"0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
|
|
655
|
+
"0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
|
|
656
|
+
simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50"
|
|
657
|
+
},
|
|
534
658
|
// eBTC | WBTC
|
|
535
|
-
"0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
|
|
659
|
+
"0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
|
|
660
|
+
simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9"
|
|
661
|
+
},
|
|
536
662
|
// savUSD | USDC
|
|
537
|
-
"0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
|
|
663
|
+
"0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
|
|
664
|
+
simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c"
|
|
665
|
+
},
|
|
538
666
|
// savUSD | AUSD
|
|
539
|
-
"0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
|
|
667
|
+
"0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
|
|
668
|
+
simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec"
|
|
669
|
+
}
|
|
540
670
|
}
|
|
541
671
|
};
|
|
542
672
|
var CURVANCE_BUILTIN = {
|
|
@@ -577,158 +707,6 @@ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
|
|
|
577
707
|
if (kind) return pms[kind];
|
|
578
708
|
return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
|
|
579
709
|
};
|
|
580
|
-
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
581
|
-
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
582
|
-
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
583
|
-
var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
|
|
584
|
-
var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
|
|
585
|
-
var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
|
|
586
|
-
var dolomiteMarketIdByToken = (chainId, token) => {
|
|
587
|
-
const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
|
|
588
|
-
if (!markets) return void 0;
|
|
589
|
-
const lower = token.toLowerCase();
|
|
590
|
-
for (const marketId in markets) {
|
|
591
|
-
if (markets[marketId]?.toLowerCase() === lower) return marketId;
|
|
592
|
-
}
|
|
593
|
-
return void 0;
|
|
594
|
-
};
|
|
595
|
-
var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
|
|
596
|
-
var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
|
|
597
|
-
var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
|
|
598
|
-
var siloMarkets = () => getGlobalData2()?.siloMarkets;
|
|
599
|
-
var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
|
|
600
|
-
var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
|
|
601
|
-
var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
|
|
602
|
-
var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
|
|
603
|
-
var fluidVaults = () => getGlobalData2()?.fluidVaults;
|
|
604
|
-
var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
|
|
605
|
-
var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
|
|
606
|
-
var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
|
|
607
|
-
var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
|
|
608
|
-
var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
|
|
609
|
-
var gearboxBotListV3 = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.botList || void 0;
|
|
610
|
-
var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
|
|
611
|
-
var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
|
|
612
|
-
var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
|
|
613
|
-
var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
|
|
614
|
-
function getAaveV4SpokeEntry(chainId, lenderKey) {
|
|
615
|
-
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
616
|
-
if (!parsed) return void 0;
|
|
617
|
-
return getGlobalData2()?.aaveV4Spokes?.[chainId]?.[parsed.spokeAddrLower];
|
|
618
|
-
}
|
|
619
|
-
function getAaveV4GatewayAddresses(chainId, lender, hubOverride) {
|
|
620
|
-
const c = getGlobalData2()?.aaveV4Peripherals?.[chainId];
|
|
621
|
-
if (!c) return {};
|
|
622
|
-
let hubAddr = hubOverride?.toLowerCase();
|
|
623
|
-
if (!hubAddr) {
|
|
624
|
-
const spokeEntry = getAaveV4SpokeEntry(chainId, lender);
|
|
625
|
-
hubAddr = spokeEntry?.reserves?.[0]?.hub?.toLowerCase();
|
|
626
|
-
}
|
|
627
|
-
const perHub = hubAddr && c.perHub?.[hubAddr] || void 0;
|
|
628
|
-
return {
|
|
629
|
-
nativeGateway: perHub?.nativeGateway ?? c.nativeGateway,
|
|
630
|
-
signatureGateway: perHub?.signatureGateway ?? c.signatureGateway
|
|
631
|
-
};
|
|
632
|
-
}
|
|
633
|
-
function getAaveV4SpokePeripherals(chainId, lenderKey) {
|
|
634
|
-
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
635
|
-
if (!parsed) return void 0;
|
|
636
|
-
return getGlobalData2()?.aaveV4Peripherals?.[chainId]?.perSpoke?.[parsed.spokeAddrLower];
|
|
637
|
-
}
|
|
638
|
-
function getAaveV4PositionManagers(chainId, lenderKey) {
|
|
639
|
-
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
640
|
-
if (!meta?.positionManagers) return [];
|
|
641
|
-
return meta.positionManagers.filter((pm) => pm.active !== false && pm.address).map((pm) => pm.address.toLowerCase());
|
|
642
|
-
}
|
|
643
|
-
function findAaveV4PositionManager(chainId, lenderKey, nameQuery) {
|
|
644
|
-
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
645
|
-
if (!meta?.positionManagers) return void 0;
|
|
646
|
-
const q = nameQuery.toLowerCase();
|
|
647
|
-
const hit = meta.positionManagers.find(
|
|
648
|
-
(pm) => pm.active !== false && pm.address && (pm.name ?? "").toLowerCase().includes(q)
|
|
649
|
-
);
|
|
650
|
-
return hit?.address?.toLowerCase();
|
|
651
|
-
}
|
|
652
|
-
function aaveV4SpokeLenderKey(spoke) {
|
|
653
|
-
if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
|
|
654
|
-
throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
|
|
655
|
-
}
|
|
656
|
-
return `AAVE_V4_${spoke.slice(2).toUpperCase()}`;
|
|
657
|
-
}
|
|
658
|
-
function parseAaveV4SpokeLenderKey(lenderKey) {
|
|
659
|
-
const match = lenderKey.match(/^AAVE_V4_([0-9A-F]{40})$/);
|
|
660
|
-
if (!match) return void 0;
|
|
661
|
-
return { spokeAddrLower: "0x" + match[1].toLowerCase() };
|
|
662
|
-
}
|
|
663
|
-
function siloV2LenderKey(siloConfig) {
|
|
664
|
-
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
665
|
-
throw new Error(`siloV2LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
666
|
-
}
|
|
667
|
-
return `SILO_V2_${siloConfig.slice(2).toUpperCase()}`;
|
|
668
|
-
}
|
|
669
|
-
function parseSiloV2LenderKey(lenderKey) {
|
|
670
|
-
const match = lenderKey.match(/^SILO_V2_([0-9A-F]{40})$/);
|
|
671
|
-
if (!match) return void 0;
|
|
672
|
-
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
673
|
-
}
|
|
674
|
-
function getSiloV2MarketEntry(chainId, lenderKey) {
|
|
675
|
-
const parsed = parseSiloV2LenderKey(lenderKey);
|
|
676
|
-
if (!parsed) return void 0;
|
|
677
|
-
const list = getGlobalData2()?.siloMarkets?.[chainId];
|
|
678
|
-
if (!list) return void 0;
|
|
679
|
-
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
680
|
-
}
|
|
681
|
-
function siloV3LenderKey(siloConfig) {
|
|
682
|
-
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
683
|
-
throw new Error(`siloV3LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
684
|
-
}
|
|
685
|
-
return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
|
|
686
|
-
}
|
|
687
|
-
function parseSiloV3LenderKey(lenderKey) {
|
|
688
|
-
const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
|
|
689
|
-
if (!match) return void 0;
|
|
690
|
-
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
691
|
-
}
|
|
692
|
-
function getSiloV3MarketEntry(chainId, lenderKey) {
|
|
693
|
-
const parsed = parseSiloV3LenderKey(lenderKey);
|
|
694
|
-
if (!parsed) return void 0;
|
|
695
|
-
const list = getGlobalData2()?.siloMarketsV3?.[chainId];
|
|
696
|
-
if (!list) return void 0;
|
|
697
|
-
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
698
|
-
}
|
|
699
|
-
function gearboxV3LenderKey(creditManager) {
|
|
700
|
-
if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
|
|
701
|
-
throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
|
|
702
|
-
}
|
|
703
|
-
return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
|
|
704
|
-
}
|
|
705
|
-
function parseGearboxV3LenderKey(lenderKey) {
|
|
706
|
-
const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
|
|
707
|
-
if (!match) return void 0;
|
|
708
|
-
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
709
|
-
}
|
|
710
|
-
function termMaxLenderKey(market) {
|
|
711
|
-
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
712
|
-
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
713
|
-
}
|
|
714
|
-
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
715
|
-
}
|
|
716
|
-
function parseTermMaxLenderKey(lenderKey) {
|
|
717
|
-
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
718
|
-
if (!match) return void 0;
|
|
719
|
-
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
720
|
-
}
|
|
721
|
-
function llamaLendLenderKey(controller) {
|
|
722
|
-
if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
|
|
723
|
-
throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
|
|
724
|
-
}
|
|
725
|
-
return `LLAMALEND_${controller.slice(2).toUpperCase()}`;
|
|
726
|
-
}
|
|
727
|
-
function parseLlamaLendLenderKey(lenderKey) {
|
|
728
|
-
const match = lenderKey.match(/^LLAMALEND_([0-9A-Fa-f]{40})$/);
|
|
729
|
-
if (!match) return void 0;
|
|
730
|
-
return { controllerAddrLower: "0x" + match[1].toLowerCase() };
|
|
731
|
-
}
|
|
732
710
|
|
|
733
711
|
// src/tokens.ts
|
|
734
712
|
var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
|