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