@1delta/data-sdk 0.0.41 → 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 -382
- package/dist/index.mjs +356 -382
- 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 -1978
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,52 +419,28 @@ 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
|
};
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
var
|
|
371
|
-
var
|
|
372
|
-
var
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
const lower = vault.toLowerCase();
|
|
378
|
-
return llamaLendChainData(lender, chainId)?.markets?.find((m) => m.vault.toLowerCase() === lower);
|
|
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);
|
|
379
436
|
};
|
|
380
|
-
var
|
|
381
|
-
const cfg = getGlobalData2()?.
|
|
437
|
+
var frankencoinLendersByChain = (chainId) => {
|
|
438
|
+
const cfg = getGlobalData2()?.frankencoinConfig ?? {};
|
|
382
439
|
const chain = String(chainId);
|
|
383
|
-
return Object.keys(cfg).filter(
|
|
384
|
-
(lender) => !!(cfg[lender]?.[chain]?.oneWayFactory || cfg[lender]?.[chain]?.lendFactory)
|
|
385
|
-
);
|
|
386
|
-
};
|
|
387
|
-
var llamaLendSupportsDelegation = (lender, chainId, controller) => llamaLendMarketByController(lender, chainId, controller)?.supportsDelegation === true;
|
|
388
|
-
var llamaLendLeverageZap = (lender, chainId, aggregator) => {
|
|
389
|
-
const cfg = llamaLendConfigFor(lender, chainId);
|
|
390
|
-
if (!cfg) return void 0;
|
|
391
|
-
const zap = aggregator === "odos" ? cfg.leverageZapOdos : cfg.leverageZap1inch;
|
|
392
|
-
const router = aggregator === "odos" ? cfg.leverageZapOdosRouter : cfg.leverageZap1inchRouter;
|
|
393
|
-
if (!zap || !router) return void 0;
|
|
394
|
-
return { zap, router };
|
|
395
|
-
};
|
|
396
|
-
var llamaLendSupportsLeverage = (lender, chainId, controller) => {
|
|
397
|
-
const m = llamaLendMarketByController(lender, chainId, controller);
|
|
398
|
-
if (!m?.supportsLeverage) return false;
|
|
399
|
-
const cfg = llamaLendConfigFor(lender, chainId);
|
|
400
|
-
return Boolean(cfg?.leverageZapOdos || cfg?.leverageZap1inch);
|
|
440
|
+
return Object.keys(cfg).filter((lender) => !!cfg[lender]?.[chain]?.mintingHub);
|
|
401
441
|
};
|
|
402
|
-
|
|
442
|
+
|
|
443
|
+
// src/lending/dss.ts
|
|
403
444
|
var usddConfig = () => getGlobalData2()?.usddConfig;
|
|
404
445
|
var usddConfigFor = (lender, chainId) => getGlobalData2()?.usddConfig?.[lender]?.[String(chainId)];
|
|
405
446
|
var usddMarkets = () => getGlobalData2()?.usddMarkets;
|
|
@@ -429,19 +470,56 @@ var dssMarketByIlk = (lender, chainId, ilk) => {
|
|
|
429
470
|
};
|
|
430
471
|
var dssDebtToken = (cfg) => cfg?.debtToken ?? cfg?.usdd;
|
|
431
472
|
var dssDebtJoin = (cfg) => cfg?.debtJoin ?? cfg?.usddJoin;
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
var
|
|
435
|
-
var
|
|
436
|
-
var
|
|
437
|
-
|
|
438
|
-
|
|
473
|
+
|
|
474
|
+
// src/lending/llamalend.ts
|
|
475
|
+
var llamaLendConfig = () => getGlobalData2()?.llamaLendConfig;
|
|
476
|
+
var llamaLendConfigFor = (lender, chainId) => getGlobalData2()?.llamaLendConfig?.[lender]?.[String(chainId)];
|
|
477
|
+
var llamaLendMarkets = () => getGlobalData2()?.llamaLendMarkets;
|
|
478
|
+
var llamaLendChainData = (lender, chainId) => getGlobalData2()?.llamaLendMarkets?.[lender]?.[String(chainId)];
|
|
479
|
+
var llamaLendMarketByController = (lender, chainId, controller) => {
|
|
480
|
+
const lower = controller.toLowerCase();
|
|
481
|
+
return llamaLendChainData(lender, chainId)?.markets?.find((m) => m.controller.toLowerCase() === lower);
|
|
439
482
|
};
|
|
440
|
-
var
|
|
441
|
-
const
|
|
483
|
+
var llamaLendMarketByVault = (lender, chainId, vault) => {
|
|
484
|
+
const lower = vault.toLowerCase();
|
|
485
|
+
return llamaLendChainData(lender, chainId)?.markets?.find((m) => m.vault.toLowerCase() === lower);
|
|
486
|
+
};
|
|
487
|
+
var llamaLendLendersByChain = (chainId) => {
|
|
488
|
+
const cfg = getGlobalData2()?.llamaLendConfig ?? {};
|
|
442
489
|
const chain = String(chainId);
|
|
443
|
-
return Object.keys(cfg).filter(
|
|
490
|
+
return Object.keys(cfg).filter(
|
|
491
|
+
(lender) => !!(cfg[lender]?.[chain]?.oneWayFactory || cfg[lender]?.[chain]?.lendFactory)
|
|
492
|
+
);
|
|
444
493
|
};
|
|
494
|
+
var llamaLendSupportsDelegation = (lender, chainId, controller) => llamaLendMarketByController(lender, chainId, controller)?.supportsDelegation === true;
|
|
495
|
+
var llamaLendLeverageZap = (lender, chainId, aggregator) => {
|
|
496
|
+
const cfg = llamaLendConfigFor(lender, chainId);
|
|
497
|
+
if (!cfg) return void 0;
|
|
498
|
+
const zap = aggregator === "odos" ? cfg.leverageZapOdos : cfg.leverageZap1inch;
|
|
499
|
+
const router = aggregator === "odos" ? cfg.leverageZapOdosRouter : cfg.leverageZap1inchRouter;
|
|
500
|
+
if (!zap || !router) return void 0;
|
|
501
|
+
return { zap, router };
|
|
502
|
+
};
|
|
503
|
+
var llamaLendSupportsLeverage = (lender, chainId, controller) => {
|
|
504
|
+
const m = llamaLendMarketByController(lender, chainId, controller);
|
|
505
|
+
if (!m?.supportsLeverage) return false;
|
|
506
|
+
const cfg = llamaLendConfigFor(lender, chainId);
|
|
507
|
+
return Boolean(cfg?.leverageZapOdos || cfg?.leverageZap1inch);
|
|
508
|
+
};
|
|
509
|
+
var llamaLendApiBaseUrl = (lender, chainId) => llamaLendConfigFor(lender, chainId)?.apiBaseUrl || "https://api.curve.finance";
|
|
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
|
|
445
523
|
var RESUPPLY_ETHEREUM_CONFIG = {
|
|
446
524
|
registry: "0x10101010E0C3171D894B71B3400668aF311e7D94",
|
|
447
525
|
reusd: "0x57aB1E0003F623289CD798B1824Be09a793e4Bec",
|
|
@@ -454,6 +532,18 @@ var RESUPPLY_ETHEREUM_CONFIG = {
|
|
|
454
532
|
insurancePool: "0x00000000efe883b3304aFf71eaCf72Dbc3e1b577",
|
|
455
533
|
sreusd: "0x557AB1e003951A73c12D16F0fEA8490E39C33C35",
|
|
456
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",
|
|
457
547
|
debtDecimals: 18
|
|
458
548
|
};
|
|
459
549
|
var RESUPPLY_BUILTIN = {
|
|
@@ -477,6 +567,8 @@ var resupplyLendersByChain = (chainId) => {
|
|
|
477
567
|
}
|
|
478
568
|
return [...keys];
|
|
479
569
|
};
|
|
570
|
+
|
|
571
|
+
// src/lending/curvance.ts
|
|
480
572
|
var CURVANCE_MONAD_CONFIG = {
|
|
481
573
|
centralRegistry: "0x1310f352f1389969Ece6741671c4B919523912fF",
|
|
482
574
|
oracleManager: "0x65ADF8aE8420A58278De066593E6fF1713A137c5",
|
|
@@ -495,11 +587,17 @@ var CURVANCE_MONAD_CONFIG = {
|
|
|
495
587
|
},
|
|
496
588
|
positionManagers: {
|
|
497
589
|
// muBOND | AUSD
|
|
498
|
-
"0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
|
|
590
|
+
"0x830D40CDFdc494BC1A2729a7381bfCe44326c944": {
|
|
591
|
+
simplePositionManager: "0xA3d212D4705caf42C35d6EaE0C85E94c4cd329E4"
|
|
592
|
+
},
|
|
499
593
|
// loAZND | AUSD
|
|
500
|
-
"0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
|
|
594
|
+
"0x7C822B093A116654F824Ec2A35CD23a3749E4f90": {
|
|
595
|
+
simplePositionManager: "0x9e4638fd67bE15360bfebC5e07AECfF33dfda917"
|
|
596
|
+
},
|
|
501
597
|
// ezETH | WETH
|
|
502
|
-
"0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
|
|
598
|
+
"0x83840d837E7A3E00bBb0B8501E60E989A8987c37": {
|
|
599
|
+
simplePositionManager: "0xd8d3E46E52C3AB8FD98D04143984C763B4Bbc584"
|
|
600
|
+
},
|
|
503
601
|
// shMON | WMON
|
|
504
602
|
"0xE1C24B2E93230FBe33d32Ba38ECA3218284143e2": {
|
|
505
603
|
nativeVaultPositionManager: "0x2fAA792502aC5a329DcCc1580C5308fCc0a772fe",
|
|
@@ -511,38 +609,66 @@ var CURVANCE_MONAD_CONFIG = {
|
|
|
511
609
|
simplePositionManager: "0x669786FF3da7544c98FE74eE1006D787118d1770"
|
|
512
610
|
},
|
|
513
611
|
// sMON | WMON
|
|
514
|
-
"0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
|
|
612
|
+
"0xe5970cDB1916B2cCF6185C86C174EEE2d330D05B": {
|
|
613
|
+
simplePositionManager: "0x3d6ba6C90E1738cb01C46E72F284C7Bd57eB11EC"
|
|
614
|
+
},
|
|
515
615
|
// sAUSD | AUSD
|
|
516
616
|
"0xBBE7A3c45aDBb16F6490767b663428c34aA341Eb": {
|
|
517
617
|
simplePositionManager: "0x491e8712885E4e0b98864F13393ced8c1a61FD57",
|
|
518
618
|
vaultPositionManager: "0xe94AC990873C3B59A417d25C1ec1398807FB41A1"
|
|
519
619
|
},
|
|
520
620
|
// earnAUSD | AUSD
|
|
521
|
-
"0xd6365555f6a697C7C295bA741100AA644cE28545": {
|
|
621
|
+
"0xd6365555f6a697C7C295bA741100AA644cE28545": {
|
|
622
|
+
simplePositionManager: "0xd807efC94376618B4d9CE6eAaf89607006d3B881"
|
|
623
|
+
},
|
|
522
624
|
// WMON | AUSD
|
|
523
|
-
"0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
|
|
625
|
+
"0x05e70717fA8BD0F21a9F826d093d99f6Da4f1554": {
|
|
626
|
+
simplePositionManager: "0x2619BB5Acfe51317c4C36a63578FD56148e68C74"
|
|
627
|
+
},
|
|
524
628
|
// WMON | USDC
|
|
525
|
-
"0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
|
|
629
|
+
"0xa6A2A92F126b79Ee0804845ee6B52899b4491093": {
|
|
630
|
+
simplePositionManager: "0x960c49E523e6A87282D2bC5032d0AeCb35Dc20ef"
|
|
631
|
+
},
|
|
526
632
|
// WBTC | USDC
|
|
527
|
-
"0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
|
|
633
|
+
"0x01C4a0d396EFE982B1B103BE9910321d34e1aEA9": {
|
|
634
|
+
simplePositionManager: "0x8cA51d155C07e91B206Cf11C8D52d5aB082657F6"
|
|
635
|
+
},
|
|
528
636
|
// WETH | USDC
|
|
529
|
-
"0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
|
|
637
|
+
"0xb3E9E0134354cc91b7FB9F9d6C3ab0dE7854BB49": {
|
|
638
|
+
simplePositionManager: "0x3A1B2Dc11a81Fe106eC667BaB4056fC72498ff73"
|
|
639
|
+
},
|
|
530
640
|
// gMON | WMON
|
|
531
|
-
"0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
|
|
641
|
+
"0xb00aFF53a4Df2b4E2f97a3d9ffaDb55564C8E42F": {
|
|
642
|
+
simplePositionManager: "0x77B90040E6dFE8A62293Cd91CAeE35296EC266Ee"
|
|
643
|
+
},
|
|
532
644
|
// syzUSD | AUSD
|
|
533
|
-
"0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
|
|
645
|
+
"0x90fc1A4abC4ee5f8a9560dE069067D9606d2909C": {
|
|
646
|
+
simplePositionManager: "0x9352318f75e8Cb7C47C5B086D56d3e6D761b7419"
|
|
647
|
+
},
|
|
534
648
|
// wsrUSD | AUSD
|
|
535
|
-
"0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
|
|
649
|
+
"0x627a15859d09C1550e2934991AA95aFc6896e3Ef": {
|
|
650
|
+
simplePositionManager: "0xF8613b7b4e8bFb5E7155fb4D3bc9f9B93d895C31"
|
|
651
|
+
},
|
|
536
652
|
// YZM | AUSD
|
|
537
|
-
"0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
|
|
653
|
+
"0x4409e2161B6f9A25ACbC471a37390654Ed272249": {
|
|
654
|
+
simplePositionManager: "0xb85dEf309F7eEEb8f581909c7afB623dDf59AdD9"
|
|
655
|
+
},
|
|
538
656
|
// vUSD | AUSD
|
|
539
|
-
"0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
|
|
657
|
+
"0x2DB9AB1bB00d7000b21A2EbcE7D1a9b91F351E72": {
|
|
658
|
+
simplePositionManager: "0xCb1709fAF66A73b4f6026b531Bef9AF971368f50"
|
|
659
|
+
},
|
|
540
660
|
// eBTC | WBTC
|
|
541
|
-
"0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
|
|
661
|
+
"0xBc4cd7bbd8d38027A88838B88BA04561FA778C35": {
|
|
662
|
+
simplePositionManager: "0x5e339724818c4b46E1Bc6966FeB4ea2924Ca17D9"
|
|
663
|
+
},
|
|
542
664
|
// savUSD | USDC
|
|
543
|
-
"0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
|
|
665
|
+
"0x38104e87Eb96ce5ef1C23a06878dB0D657B4a699": {
|
|
666
|
+
simplePositionManager: "0x7B918FF5EDc44B29ced4d3dc52Fb8b859025325c"
|
|
667
|
+
},
|
|
544
668
|
// savUSD | AUSD
|
|
545
|
-
"0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
|
|
669
|
+
"0x4B0a39eCC3e5A5dA3ce6D492D4D255cD1F0209F7": {
|
|
670
|
+
simplePositionManager: "0xb8F6f480E645dBa96Df9eD3948D900725bA9e9Ec"
|
|
671
|
+
}
|
|
546
672
|
}
|
|
547
673
|
};
|
|
548
674
|
var CURVANCE_BUILTIN = {
|
|
@@ -583,158 +709,6 @@ var curvancePositionManager = (lender, chainId, marketManager, kind) => {
|
|
|
583
709
|
if (kind) return pms[kind];
|
|
584
710
|
return pms.simplePositionManager ?? pms.vaultPositionManager ?? pms.nativeVaultPositionManager ?? pms.pendlePtPositionManager;
|
|
585
711
|
};
|
|
586
|
-
var compoundV3Bulker = () => getGlobalData2()?.compoundV3Bulker;
|
|
587
|
-
var eulerConfigs = () => getGlobalData2()?.eulerConfigs;
|
|
588
|
-
var eulerVaults = () => getGlobalData2()?.eulerVaults;
|
|
589
|
-
var dolomiteConfigs = () => getGlobalData2()?.dolomiteConfigs;
|
|
590
|
-
var dolomiteChains = () => Object.keys(getGlobalData2()?.dolomiteConfigs ?? {});
|
|
591
|
-
var dolomiteEmode = () => getGlobalData2()?.dolomiteEmode;
|
|
592
|
-
var dolomiteMarketIdByToken = (chainId, token) => {
|
|
593
|
-
const markets = getGlobalData2()?.dolomiteConfigs?.[chainId]?.markets;
|
|
594
|
-
if (!markets) return void 0;
|
|
595
|
-
const lower = token.toLowerCase();
|
|
596
|
-
for (const marketId in markets) {
|
|
597
|
-
if (markets[marketId]?.toLowerCase() === lower) return marketId;
|
|
598
|
-
}
|
|
599
|
-
return void 0;
|
|
600
|
-
};
|
|
601
|
-
var aaveV4Spokes = () => getGlobalData2()?.aaveV4Spokes;
|
|
602
|
-
var aaveV4Oracles = () => getGlobalData2()?.aaveV4Oracles;
|
|
603
|
-
var aaveV4Peripherals = () => getGlobalData2()?.aaveV4Peripherals;
|
|
604
|
-
var siloMarkets = () => getGlobalData2()?.siloMarkets;
|
|
605
|
-
var siloPeripherals = () => getGlobalData2()?.siloPeripherals;
|
|
606
|
-
var siloMarketsV3 = () => getGlobalData2()?.siloMarketsV3;
|
|
607
|
-
var siloPeripheralsV3 = () => getGlobalData2()?.siloPeripheralsV3;
|
|
608
|
-
var fluidResolvers = () => getGlobalData2()?.fluidResolvers;
|
|
609
|
-
var fluidVaults = () => getGlobalData2()?.fluidVaults;
|
|
610
|
-
var fluidChains = () => Object.keys(getGlobalData2()?.fluidResolvers ?? {});
|
|
611
|
-
var gearboxResolvers = () => getGlobalData2()?.gearboxResolvers;
|
|
612
|
-
var gearboxChains = () => Object.keys(getGlobalData2()?.gearboxResolvers?.chains ?? {});
|
|
613
|
-
var gearboxMarketCompressor = () => getGlobalData2()?.gearboxResolvers?.marketCompressorV310 || void 0;
|
|
614
|
-
var gearboxAddressProviderV310 = () => getGlobalData2()?.gearboxResolvers?.addressProviderV310 || void 0;
|
|
615
|
-
var gearboxBotListV3 = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.botList || void 0;
|
|
616
|
-
var GEARBOX_ACCOUNT_COMPRESSOR_V310 = "0x4115708Fc8fe6bB392De2e0C21c2C81dA2222394";
|
|
617
|
-
var gearboxAccountCompressor = () => GEARBOX_ACCOUNT_COMPRESSOR_V310;
|
|
618
|
-
var gearboxMarketConfigurators = (chainId) => getGlobalData2()?.gearboxResolvers?.chains?.[chainId]?.marketConfigurators;
|
|
619
|
-
var fluidVaultEntries = (chainId) => Object.entries(getGlobalData2()?.fluidVaults?.[chainId] ?? {});
|
|
620
|
-
function getAaveV4SpokeEntry(chainId, lenderKey) {
|
|
621
|
-
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
622
|
-
if (!parsed) return void 0;
|
|
623
|
-
return getGlobalData2()?.aaveV4Spokes?.[chainId]?.[parsed.spokeAddrLower];
|
|
624
|
-
}
|
|
625
|
-
function getAaveV4GatewayAddresses(chainId, lender, hubOverride) {
|
|
626
|
-
const c = getGlobalData2()?.aaveV4Peripherals?.[chainId];
|
|
627
|
-
if (!c) return {};
|
|
628
|
-
let hubAddr = hubOverride?.toLowerCase();
|
|
629
|
-
if (!hubAddr) {
|
|
630
|
-
const spokeEntry = getAaveV4SpokeEntry(chainId, lender);
|
|
631
|
-
hubAddr = spokeEntry?.reserves?.[0]?.hub?.toLowerCase();
|
|
632
|
-
}
|
|
633
|
-
const perHub = hubAddr && c.perHub?.[hubAddr] || void 0;
|
|
634
|
-
return {
|
|
635
|
-
nativeGateway: perHub?.nativeGateway ?? c.nativeGateway,
|
|
636
|
-
signatureGateway: perHub?.signatureGateway ?? c.signatureGateway
|
|
637
|
-
};
|
|
638
|
-
}
|
|
639
|
-
function getAaveV4SpokePeripherals(chainId, lenderKey) {
|
|
640
|
-
const parsed = parseAaveV4SpokeLenderKey(lenderKey);
|
|
641
|
-
if (!parsed) return void 0;
|
|
642
|
-
return getGlobalData2()?.aaveV4Peripherals?.[chainId]?.perSpoke?.[parsed.spokeAddrLower];
|
|
643
|
-
}
|
|
644
|
-
function getAaveV4PositionManagers(chainId, lenderKey) {
|
|
645
|
-
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
646
|
-
if (!meta?.positionManagers) return [];
|
|
647
|
-
return meta.positionManagers.filter((pm) => pm.active !== false && pm.address).map((pm) => pm.address.toLowerCase());
|
|
648
|
-
}
|
|
649
|
-
function findAaveV4PositionManager(chainId, lenderKey, nameQuery) {
|
|
650
|
-
const meta = getAaveV4SpokePeripherals(chainId, lenderKey);
|
|
651
|
-
if (!meta?.positionManagers) return void 0;
|
|
652
|
-
const q = nameQuery.toLowerCase();
|
|
653
|
-
const hit = meta.positionManagers.find(
|
|
654
|
-
(pm) => pm.active !== false && pm.address && (pm.name ?? "").toLowerCase().includes(q)
|
|
655
|
-
);
|
|
656
|
-
return hit?.address?.toLowerCase();
|
|
657
|
-
}
|
|
658
|
-
function aaveV4SpokeLenderKey(spoke) {
|
|
659
|
-
if (!spoke || !spoke.startsWith("0x") || spoke.length !== 42) {
|
|
660
|
-
throw new Error(`aaveV4SpokeLenderKey: invalid spoke address ${spoke}`);
|
|
661
|
-
}
|
|
662
|
-
return `AAVE_V4_${spoke.slice(2).toUpperCase()}`;
|
|
663
|
-
}
|
|
664
|
-
function parseAaveV4SpokeLenderKey(lenderKey) {
|
|
665
|
-
const match = lenderKey.match(/^AAVE_V4_([0-9A-F]{40})$/);
|
|
666
|
-
if (!match) return void 0;
|
|
667
|
-
return { spokeAddrLower: "0x" + match[1].toLowerCase() };
|
|
668
|
-
}
|
|
669
|
-
function siloV2LenderKey(siloConfig) {
|
|
670
|
-
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
671
|
-
throw new Error(`siloV2LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
672
|
-
}
|
|
673
|
-
return `SILO_V2_${siloConfig.slice(2).toUpperCase()}`;
|
|
674
|
-
}
|
|
675
|
-
function parseSiloV2LenderKey(lenderKey) {
|
|
676
|
-
const match = lenderKey.match(/^SILO_V2_([0-9A-F]{40})$/);
|
|
677
|
-
if (!match) return void 0;
|
|
678
|
-
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
679
|
-
}
|
|
680
|
-
function getSiloV2MarketEntry(chainId, lenderKey) {
|
|
681
|
-
const parsed = parseSiloV2LenderKey(lenderKey);
|
|
682
|
-
if (!parsed) return void 0;
|
|
683
|
-
const list = getGlobalData2()?.siloMarkets?.[chainId];
|
|
684
|
-
if (!list) return void 0;
|
|
685
|
-
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
686
|
-
}
|
|
687
|
-
function siloV3LenderKey(siloConfig) {
|
|
688
|
-
if (!siloConfig || !siloConfig.startsWith("0x") || siloConfig.length !== 42) {
|
|
689
|
-
throw new Error(`siloV3LenderKey: invalid siloConfig address ${siloConfig}`);
|
|
690
|
-
}
|
|
691
|
-
return `SILO_V3_${siloConfig.slice(2).toUpperCase()}`;
|
|
692
|
-
}
|
|
693
|
-
function parseSiloV3LenderKey(lenderKey) {
|
|
694
|
-
const match = lenderKey.match(/^SILO_V3_([0-9A-F]{40})$/);
|
|
695
|
-
if (!match) return void 0;
|
|
696
|
-
return { siloConfigAddrLower: "0x" + match[1].toLowerCase() };
|
|
697
|
-
}
|
|
698
|
-
function getSiloV3MarketEntry(chainId, lenderKey) {
|
|
699
|
-
const parsed = parseSiloV3LenderKey(lenderKey);
|
|
700
|
-
if (!parsed) return void 0;
|
|
701
|
-
const list = getGlobalData2()?.siloMarketsV3?.[chainId];
|
|
702
|
-
if (!list) return void 0;
|
|
703
|
-
return list.find((m) => m.siloConfig.toLowerCase() === parsed.siloConfigAddrLower);
|
|
704
|
-
}
|
|
705
|
-
function gearboxV3LenderKey(creditManager) {
|
|
706
|
-
if (!creditManager || !creditManager.startsWith("0x") || creditManager.length !== 42) {
|
|
707
|
-
throw new Error(`gearboxV3LenderKey: invalid creditManager address ${creditManager}`);
|
|
708
|
-
}
|
|
709
|
-
return `GEARBOX_V3_${creditManager.slice(2).toUpperCase()}`;
|
|
710
|
-
}
|
|
711
|
-
function parseGearboxV3LenderKey(lenderKey) {
|
|
712
|
-
const match = lenderKey.match(/^GEARBOX_V3_([0-9A-F]{40})$/);
|
|
713
|
-
if (!match) return void 0;
|
|
714
|
-
return { creditManagerAddrLower: "0x" + match[1].toLowerCase() };
|
|
715
|
-
}
|
|
716
|
-
function termMaxLenderKey(market) {
|
|
717
|
-
if (!market || !market.startsWith("0x") || market.length !== 42) {
|
|
718
|
-
throw new Error(`termMaxLenderKey: invalid market address ${market}`);
|
|
719
|
-
}
|
|
720
|
-
return `TERMMAX_${market.slice(2).toUpperCase()}`;
|
|
721
|
-
}
|
|
722
|
-
function parseTermMaxLenderKey(lenderKey) {
|
|
723
|
-
const match = lenderKey.match(/^TERMMAX_([0-9A-Fa-f]{40})$/);
|
|
724
|
-
if (!match) return void 0;
|
|
725
|
-
return { marketAddrLower: "0x" + match[1].toLowerCase() };
|
|
726
|
-
}
|
|
727
|
-
function llamaLendLenderKey(controller) {
|
|
728
|
-
if (!controller || !controller.startsWith("0x") || controller.length !== 42) {
|
|
729
|
-
throw new Error(`llamaLendLenderKey: invalid controller address ${controller}`);
|
|
730
|
-
}
|
|
731
|
-
return `LLAMALEND_${controller.slice(2).toUpperCase()}`;
|
|
732
|
-
}
|
|
733
|
-
function parseLlamaLendLenderKey(lenderKey) {
|
|
734
|
-
const match = lenderKey.match(/^LLAMALEND_([0-9A-Fa-f]{40})$/);
|
|
735
|
-
if (!match) return void 0;
|
|
736
|
-
return { controllerAddrLower: "0x" + match[1].toLowerCase() };
|
|
737
|
-
}
|
|
738
712
|
|
|
739
713
|
// src/tokens.ts
|
|
740
714
|
var getListUrl = (chainId) => `https://raw.githubusercontent.com/1delta-DAO/token-lists/main/${chainId}.json`;
|