@missionsquad/mcp-defillama 1.1.0 → 1.2.0

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.
@@ -1,21 +1,37 @@
1
- import { createErrorResponse, createSuccessResponse } from "./utils.js";
1
+ import { createErrorResponse, jsonResponse } from "./utils.js";
2
+ import { parseDateTimeToUnix } from "./datetime.js";
3
+ import { humanizeDates, compactProtocols, compactProtocolTvl, compactSeries, compactChains, compactPools, compactStablecoins, compactStablecoinData, compactStablecoinChains, compactOverview, } from "./transform.js";
2
4
  import { getDefiLlamaClient } from "../clients/defillama.factory.js";
3
5
  // Get the appropriate client (real or mock) based on TEST_MODE
4
6
  const defiLlamaClient = getDefiLlamaClient();
5
7
  const errorMessage = (error) => (error instanceof Error ? error.message : String(error));
6
- /** Pull the shared overview/summary query options out of a handler input. */
7
- const overviewOptions = (input = {}) => ({
8
- excludeTotalDataChart: input.excludeTotalDataChart,
9
- excludeTotalDataChartBreakdown: input.excludeTotalDataChartBreakdown,
10
- dataType: input.dataType,
8
+ /** Pull the compaction controls out of a handler input. */
9
+ const compactOpts = (input = {}) => ({
10
+ full: input.full,
11
+ points: input.points,
12
+ limit: input.limit,
13
+ includeTokens: input.includeTokens,
11
14
  });
15
+ /**
16
+ * Build the query for the DEX/options/fees overview & summary endpoints.
17
+ * Charts are excluded by default (huge); pass `full: true` or the explicit
18
+ * exclude flags to change that.
19
+ */
20
+ const overviewQuery = (input = {}) => {
21
+ const defaultExclude = !input.full;
22
+ return {
23
+ excludeTotalDataChart: input.excludeTotalDataChart ?? defaultExclude,
24
+ excludeTotalDataChartBreakdown: input.excludeTotalDataChartBreakdown ?? defaultExclude,
25
+ dataType: input.dataType,
26
+ };
27
+ };
12
28
  // ---------------------------------------------------------------------------
13
29
  // TVL
14
30
  // ---------------------------------------------------------------------------
15
- export const getProtocolsHandler = async (_input) => {
31
+ export const getProtocolsHandler = async (input) => {
16
32
  try {
17
33
  const data = await defiLlamaClient.getProtocols();
18
- return createSuccessResponse(`Protocols: ${JSON.stringify(data, null, 2)}`);
34
+ return jsonResponse(humanizeDates(compactProtocols(data, compactOpts(input))));
19
35
  }
20
36
  catch (error) {
21
37
  return createErrorResponse(`Error getting protocols: ${errorMessage(error)}`);
@@ -24,16 +40,16 @@ export const getProtocolsHandler = async (_input) => {
24
40
  export const getProtocolTvlHandler = async (input) => {
25
41
  try {
26
42
  const data = await defiLlamaClient.getProtocolTvl(input.protocol);
27
- return createSuccessResponse(`Protocol TVL: ${JSON.stringify(data, null, 2)}`);
43
+ return jsonResponse(humanizeDates(compactProtocolTvl(data, compactOpts(input))));
28
44
  }
29
45
  catch (error) {
30
46
  return createErrorResponse(`Error getting protocol TVL: ${errorMessage(error)}`);
31
47
  }
32
48
  };
33
- export const getHistoricalChainTvlHandler = async (_input) => {
49
+ export const getHistoricalChainTvlHandler = async (input) => {
34
50
  try {
35
51
  const data = await defiLlamaClient.getHistoricalChainTvl();
36
- return createSuccessResponse(`Historical chain TVL: ${JSON.stringify(data, null, 2)}`);
52
+ return jsonResponse(humanizeDates(compactSeries(data, compactOpts(input))));
37
53
  }
38
54
  catch (error) {
39
55
  return createErrorResponse(`Error getting historical chain TVL: ${errorMessage(error)}`);
@@ -42,7 +58,7 @@ export const getHistoricalChainTvlHandler = async (_input) => {
42
58
  export const getChainTvlHandler = async (input) => {
43
59
  try {
44
60
  const data = await defiLlamaClient.getChainTvl(input.chain);
45
- return createSuccessResponse(`Chain TVL: ${JSON.stringify(data, null, 2)}`);
61
+ return jsonResponse(humanizeDates(compactSeries(data, compactOpts(input))));
46
62
  }
47
63
  catch (error) {
48
64
  return createErrorResponse(`Error getting chain TVL: ${errorMessage(error)}`);
@@ -51,16 +67,16 @@ export const getChainTvlHandler = async (input) => {
51
67
  export const getCurrentProtocolTvlHandler = async (input) => {
52
68
  try {
53
69
  const data = await defiLlamaClient.getCurrentProtocolTvl(input.protocol);
54
- return createSuccessResponse(`Current protocol TVL: ${JSON.stringify(data, null, 2)}`);
70
+ return jsonResponse(humanizeDates(data));
55
71
  }
56
72
  catch (error) {
57
73
  return createErrorResponse(`Error getting current protocol TVL: ${errorMessage(error)}`);
58
74
  }
59
75
  };
60
- export const getChainsHandler = async (_input) => {
76
+ export const getChainsHandler = async (input) => {
61
77
  try {
62
78
  const data = await defiLlamaClient.getChains();
63
- return createSuccessResponse(`Chains: ${JSON.stringify(data, null, 2)}`);
79
+ return jsonResponse(humanizeDates(compactChains(data, compactOpts(input))));
64
80
  }
65
81
  catch (error) {
66
82
  return createErrorResponse(`Error getting chains: ${errorMessage(error)}`);
@@ -72,7 +88,7 @@ export const getChainsHandler = async (_input) => {
72
88
  export const getTokenPricesHandler = async (input) => {
73
89
  try {
74
90
  const data = await defiLlamaClient.getTokenPrices(input.coins);
75
- return createSuccessResponse(`Token prices: ${JSON.stringify(data, null, 2)}`);
91
+ return jsonResponse(humanizeDates(data));
76
92
  }
77
93
  catch (error) {
78
94
  return createErrorResponse(`Error getting token prices: ${errorMessage(error)}`);
@@ -80,8 +96,9 @@ export const getTokenPricesHandler = async (input) => {
80
96
  };
81
97
  export const getHistoricalPricesHandler = async (input) => {
82
98
  try {
83
- const data = await defiLlamaClient.getHistoricalPrices(input.coins, input.timestamp);
84
- return createSuccessResponse(`Historical prices: ${JSON.stringify(data, null, 2)}`);
99
+ const timestamp = parseDateTimeToUnix(input.timestamp);
100
+ const data = await defiLlamaClient.getHistoricalPrices(input.coins, timestamp);
101
+ return jsonResponse(humanizeDates(data));
85
102
  }
86
103
  catch (error) {
87
104
  return createErrorResponse(`Error getting historical prices: ${errorMessage(error)}`);
@@ -89,8 +106,12 @@ export const getHistoricalPricesHandler = async (input) => {
89
106
  };
90
107
  export const getBatchHistoricalPricesHandler = async (input) => {
91
108
  try {
92
- const data = await defiLlamaClient.getBatchHistoricalPrices(input.coins, input.searchWidth);
93
- return createSuccessResponse(`Batch historical prices: ${JSON.stringify(data, null, 2)}`);
109
+ const coins = {};
110
+ for (const [coin, times] of Object.entries(input.coins ?? {})) {
111
+ coins[coin] = (times ?? []).map(parseDateTimeToUnix);
112
+ }
113
+ const data = await defiLlamaClient.getBatchHistoricalPrices(coins, input.searchWidth);
114
+ return jsonResponse(humanizeDates(data));
94
115
  }
95
116
  catch (error) {
96
117
  return createErrorResponse(`Error getting batch historical prices: ${errorMessage(error)}`);
@@ -98,9 +119,14 @@ export const getBatchHistoricalPricesHandler = async (input) => {
98
119
  };
99
120
  export const getPriceChartHandler = async (input) => {
100
121
  try {
101
- const { coins, ...options } = input;
102
- const data = await defiLlamaClient.getPriceChart(coins, options);
103
- return createSuccessResponse(`Price chart: ${JSON.stringify(data, null, 2)}`);
122
+ const data = await defiLlamaClient.getPriceChart(input.coins, {
123
+ start: input.start !== undefined ? parseDateTimeToUnix(input.start) : undefined,
124
+ end: input.end !== undefined ? parseDateTimeToUnix(input.end) : undefined,
125
+ span: input.span,
126
+ period: input.period,
127
+ searchWidth: input.searchWidth,
128
+ });
129
+ return jsonResponse(humanizeDates(compactSeries(data, compactOpts(input))));
104
130
  }
105
131
  catch (error) {
106
132
  return createErrorResponse(`Error getting price chart: ${errorMessage(error)}`);
@@ -108,9 +134,12 @@ export const getPriceChartHandler = async (input) => {
108
134
  };
109
135
  export const getPricePercentageChangeHandler = async (input) => {
110
136
  try {
111
- const { coins, ...options } = input;
112
- const data = await defiLlamaClient.getPricePercentageChange(coins, options);
113
- return createSuccessResponse(`Price percentage change: ${JSON.stringify(data, null, 2)}`);
137
+ const data = await defiLlamaClient.getPricePercentageChange(input.coins, {
138
+ timestamp: input.timestamp !== undefined ? parseDateTimeToUnix(input.timestamp) : undefined,
139
+ lookForward: input.lookForward,
140
+ period: input.period,
141
+ });
142
+ return jsonResponse(humanizeDates(data));
114
143
  }
115
144
  catch (error) {
116
145
  return createErrorResponse(`Error getting price percentage change: ${errorMessage(error)}`);
@@ -119,7 +148,7 @@ export const getPricePercentageChangeHandler = async (input) => {
119
148
  export const getFirstPricesHandler = async (input) => {
120
149
  try {
121
150
  const data = await defiLlamaClient.getFirstPrices(input.coins);
122
- return createSuccessResponse(`First prices: ${JSON.stringify(data, null, 2)}`);
151
+ return jsonResponse(humanizeDates(data));
123
152
  }
124
153
  catch (error) {
125
154
  return createErrorResponse(`Error getting first prices: ${errorMessage(error)}`);
@@ -127,8 +156,9 @@ export const getFirstPricesHandler = async (input) => {
127
156
  };
128
157
  export const getBlockHandler = async (input) => {
129
158
  try {
130
- const data = await defiLlamaClient.getBlock(input.chain, input.timestamp);
131
- return createSuccessResponse(`Block: ${JSON.stringify(data, null, 2)}`);
159
+ const timestamp = parseDateTimeToUnix(input.timestamp);
160
+ const data = await defiLlamaClient.getBlock(input.chain, timestamp);
161
+ return jsonResponse(humanizeDates(data));
132
162
  }
133
163
  catch (error) {
134
164
  return createErrorResponse(`Error getting block: ${errorMessage(error)}`);
@@ -140,7 +170,7 @@ export const getBlockHandler = async (input) => {
140
170
  export const getStablecoinsHandler = async (input) => {
141
171
  try {
142
172
  const data = await defiLlamaClient.getStablecoins(input?.includePrices);
143
- return createSuccessResponse(`Stablecoins: ${JSON.stringify(data, null, 2)}`);
173
+ return jsonResponse(humanizeDates(compactStablecoins(data, compactOpts(input))));
144
174
  }
145
175
  catch (error) {
146
176
  return createErrorResponse(`Error getting stablecoins: ${errorMessage(error)}`);
@@ -149,7 +179,7 @@ export const getStablecoinsHandler = async (input) => {
149
179
  export const getStablecoinChartsAllHandler = async (input) => {
150
180
  try {
151
181
  const data = await defiLlamaClient.getStablecoinChartsAll(input?.stablecoin);
152
- return createSuccessResponse(`Stablecoin charts (all): ${JSON.stringify(data, null, 2)}`);
182
+ return jsonResponse(humanizeDates(compactSeries(data, compactOpts(input))));
153
183
  }
154
184
  catch (error) {
155
185
  return createErrorResponse(`Error getting stablecoin charts: ${errorMessage(error)}`);
@@ -158,7 +188,7 @@ export const getStablecoinChartsAllHandler = async (input) => {
158
188
  export const getStablecoinChartsChainHandler = async (input) => {
159
189
  try {
160
190
  const data = await defiLlamaClient.getStablecoinChartsChain(input.chain, input.stablecoin);
161
- return createSuccessResponse(`Stablecoin charts (chain): ${JSON.stringify(data, null, 2)}`);
191
+ return jsonResponse(humanizeDates(compactSeries(data, compactOpts(input))));
162
192
  }
163
193
  catch (error) {
164
194
  return createErrorResponse(`Error getting stablecoin charts for chain: ${errorMessage(error)}`);
@@ -167,25 +197,25 @@ export const getStablecoinChartsChainHandler = async (input) => {
167
197
  export const getStablecoinDataHandler = async (input) => {
168
198
  try {
169
199
  const data = await defiLlamaClient.getStablecoinData(input.asset);
170
- return createSuccessResponse(`Stablecoin data: ${JSON.stringify(data, null, 2)}`);
200
+ return jsonResponse(humanizeDates(compactStablecoinData(data, compactOpts(input))));
171
201
  }
172
202
  catch (error) {
173
203
  return createErrorResponse(`Error getting stablecoin data: ${errorMessage(error)}`);
174
204
  }
175
205
  };
176
- export const getStablecoinChainsHandler = async (_input) => {
206
+ export const getStablecoinChainsHandler = async (input) => {
177
207
  try {
178
208
  const data = await defiLlamaClient.getStablecoinChains();
179
- return createSuccessResponse(`Stablecoin chains: ${JSON.stringify(data, null, 2)}`);
209
+ return jsonResponse(humanizeDates(compactStablecoinChains(data, compactOpts(input))));
180
210
  }
181
211
  catch (error) {
182
212
  return createErrorResponse(`Error getting stablecoin chains: ${errorMessage(error)}`);
183
213
  }
184
214
  };
185
- export const getStablecoinPricesHandler = async (_input) => {
215
+ export const getStablecoinPricesHandler = async (input) => {
186
216
  try {
187
217
  const data = await defiLlamaClient.getStablecoinPrices();
188
- return createSuccessResponse(`Stablecoin prices: ${JSON.stringify(data, null, 2)}`);
218
+ return jsonResponse(humanizeDates(compactSeries(data, compactOpts(input))));
189
219
  }
190
220
  catch (error) {
191
221
  return createErrorResponse(`Error getting stablecoin prices: ${errorMessage(error)}`);
@@ -194,10 +224,10 @@ export const getStablecoinPricesHandler = async (_input) => {
194
224
  // ---------------------------------------------------------------------------
195
225
  // Yields / APY
196
226
  // ---------------------------------------------------------------------------
197
- export const getPoolsHandler = async (_input) => {
227
+ export const getPoolsHandler = async (input) => {
198
228
  try {
199
229
  const data = await defiLlamaClient.getPools();
200
- return createSuccessResponse(`Pools: ${JSON.stringify(data, null, 2)}`);
230
+ return jsonResponse(humanizeDates(compactPools(data, compactOpts(input))));
201
231
  }
202
232
  catch (error) {
203
233
  return createErrorResponse(`Error getting pools: ${errorMessage(error)}`);
@@ -206,7 +236,7 @@ export const getPoolsHandler = async (_input) => {
206
236
  export const getPoolChartHandler = async (input) => {
207
237
  try {
208
238
  const data = await defiLlamaClient.getPoolChart(input.pool);
209
- return createSuccessResponse(`Pool chart: ${JSON.stringify(data, null, 2)}`);
239
+ return jsonResponse(humanizeDates(compactSeries(data, compactOpts(input))));
210
240
  }
211
241
  catch (error) {
212
242
  return createErrorResponse(`Error getting pool chart: ${errorMessage(error)}`);
@@ -217,8 +247,8 @@ export const getPoolChartHandler = async (input) => {
217
247
  // ---------------------------------------------------------------------------
218
248
  export const getDexsOverviewHandler = async (input) => {
219
249
  try {
220
- const data = await defiLlamaClient.getDexsOverview(overviewOptions(input));
221
- return createSuccessResponse(`DEXs overview: ${JSON.stringify(data, null, 2)}`);
250
+ const data = await defiLlamaClient.getDexsOverview(overviewQuery(input));
251
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
222
252
  }
223
253
  catch (error) {
224
254
  return createErrorResponse(`Error getting DEXs overview: ${errorMessage(error)}`);
@@ -226,8 +256,8 @@ export const getDexsOverviewHandler = async (input) => {
226
256
  };
227
257
  export const getDexsOverviewByChainHandler = async (input) => {
228
258
  try {
229
- const data = await defiLlamaClient.getDexsOverviewByChain(input.chain, overviewOptions(input));
230
- return createSuccessResponse(`DEXs overview (chain): ${JSON.stringify(data, null, 2)}`);
259
+ const data = await defiLlamaClient.getDexsOverviewByChain(input.chain, overviewQuery(input));
260
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
231
261
  }
232
262
  catch (error) {
233
263
  return createErrorResponse(`Error getting DEXs overview for chain: ${errorMessage(error)}`);
@@ -235,8 +265,8 @@ export const getDexsOverviewByChainHandler = async (input) => {
235
265
  };
236
266
  export const getDexSummaryHandler = async (input) => {
237
267
  try {
238
- const data = await defiLlamaClient.getDexSummary(input.protocol, overviewOptions(input));
239
- return createSuccessResponse(`DEX summary: ${JSON.stringify(data, null, 2)}`);
268
+ const data = await defiLlamaClient.getDexSummary(input.protocol, overviewQuery(input));
269
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
240
270
  }
241
271
  catch (error) {
242
272
  return createErrorResponse(`Error getting DEX summary: ${errorMessage(error)}`);
@@ -244,8 +274,8 @@ export const getDexSummaryHandler = async (input) => {
244
274
  };
245
275
  export const getOptionsOverviewHandler = async (input) => {
246
276
  try {
247
- const data = await defiLlamaClient.getOptionsOverview(overviewOptions(input));
248
- return createSuccessResponse(`Options overview: ${JSON.stringify(data, null, 2)}`);
277
+ const data = await defiLlamaClient.getOptionsOverview(overviewQuery(input));
278
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
249
279
  }
250
280
  catch (error) {
251
281
  return createErrorResponse(`Error getting options overview: ${errorMessage(error)}`);
@@ -253,8 +283,8 @@ export const getOptionsOverviewHandler = async (input) => {
253
283
  };
254
284
  export const getOptionsOverviewByChainHandler = async (input) => {
255
285
  try {
256
- const data = await defiLlamaClient.getOptionsOverviewByChain(input.chain, overviewOptions(input));
257
- return createSuccessResponse(`Options overview (chain): ${JSON.stringify(data, null, 2)}`);
286
+ const data = await defiLlamaClient.getOptionsOverviewByChain(input.chain, overviewQuery(input));
287
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
258
288
  }
259
289
  catch (error) {
260
290
  return createErrorResponse(`Error getting options overview for chain: ${errorMessage(error)}`);
@@ -262,8 +292,8 @@ export const getOptionsOverviewByChainHandler = async (input) => {
262
292
  };
263
293
  export const getOptionSummaryHandler = async (input) => {
264
294
  try {
265
- const data = await defiLlamaClient.getOptionSummary(input.protocol, overviewOptions(input));
266
- return createSuccessResponse(`Options summary: ${JSON.stringify(data, null, 2)}`);
295
+ const data = await defiLlamaClient.getOptionSummary(input.protocol, overviewQuery(input));
296
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
267
297
  }
268
298
  catch (error) {
269
299
  return createErrorResponse(`Error getting options summary: ${errorMessage(error)}`);
@@ -274,8 +304,8 @@ export const getOptionSummaryHandler = async (input) => {
274
304
  // ---------------------------------------------------------------------------
275
305
  export const getOpenInterestOverviewHandler = async (input) => {
276
306
  try {
277
- const data = await defiLlamaClient.getOpenInterestOverview(overviewOptions(input));
278
- return createSuccessResponse(`Open interest overview: ${JSON.stringify(data, null, 2)}`);
307
+ const data = await defiLlamaClient.getOpenInterestOverview(overviewQuery(input));
308
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
279
309
  }
280
310
  catch (error) {
281
311
  return createErrorResponse(`Error getting open interest overview: ${errorMessage(error)}`);
@@ -286,8 +316,8 @@ export const getOpenInterestOverviewHandler = async (input) => {
286
316
  // ---------------------------------------------------------------------------
287
317
  export const getFeesOverviewHandler = async (input) => {
288
318
  try {
289
- const data = await defiLlamaClient.getFeesOverview(overviewOptions(input));
290
- return createSuccessResponse(`Fees overview: ${JSON.stringify(data, null, 2)}`);
319
+ const data = await defiLlamaClient.getFeesOverview(overviewQuery(input));
320
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
291
321
  }
292
322
  catch (error) {
293
323
  return createErrorResponse(`Error getting fees overview: ${errorMessage(error)}`);
@@ -295,8 +325,8 @@ export const getFeesOverviewHandler = async (input) => {
295
325
  };
296
326
  export const getFeesOverviewByChainHandler = async (input) => {
297
327
  try {
298
- const data = await defiLlamaClient.getFeesOverviewByChain(input.chain, overviewOptions(input));
299
- return createSuccessResponse(`Fees overview (chain): ${JSON.stringify(data, null, 2)}`);
328
+ const data = await defiLlamaClient.getFeesOverviewByChain(input.chain, overviewQuery(input));
329
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
300
330
  }
301
331
  catch (error) {
302
332
  return createErrorResponse(`Error getting fees overview for chain: ${errorMessage(error)}`);
@@ -304,8 +334,8 @@ export const getFeesOverviewByChainHandler = async (input) => {
304
334
  };
305
335
  export const getFeeSummaryHandler = async (input) => {
306
336
  try {
307
- const data = await defiLlamaClient.getFeeSummary(input.protocol, overviewOptions(input));
308
- return createSuccessResponse(`Fees summary: ${JSON.stringify(data, null, 2)}`);
337
+ const data = await defiLlamaClient.getFeeSummary(input.protocol, overviewQuery(input));
338
+ return jsonResponse(humanizeDates(compactOverview(data, compactOpts(input))));
309
339
  }
310
340
  catch (error) {
311
341
  return createErrorResponse(`Error getting fees summary: ${errorMessage(error)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"defillama.js","sourceRoot":"","sources":["../../src/handlers/defillama.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defillama.js","sourceRoot":"","sources":["../../src/handlers/defillama.ts"],"names":[],"mappings":"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"}
@@ -1,46 +1,70 @@
1
+ /** A 12-hour datetime string ("06/15/2024 03:30 PM", UTC assumed) or UNIX seconds. */
2
+ export type DateTimeInput = string | number;
3
+ /** Options that control response compaction (all optional). */
4
+ export interface CompactInput {
5
+ /** Return the complete, untrimmed response instead of the compact default. */
6
+ full?: boolean;
7
+ }
8
+ /** Adds a downsampling control for time-series responses. */
9
+ export interface SeriesCompactInput extends CompactInput {
10
+ /** Max number of data points to keep (default 30). */
11
+ points?: number;
12
+ }
13
+ /** Adds an item cap for list responses. */
14
+ export interface ListCompactInput extends CompactInput {
15
+ /** Max number of items to keep. */
16
+ limit?: number;
17
+ }
1
18
  /** Query options shared by the DEX/options/fees overview & summary endpoints. */
2
- export interface OverviewOptionsInput {
19
+ export interface OverviewOptionsInput extends CompactInput {
3
20
  excludeTotalDataChart?: boolean;
4
21
  excludeTotalDataChartBreakdown?: boolean;
5
22
  dataType?: string;
23
+ /** Max number of chart points to keep (default 30). */
24
+ points?: number;
25
+ /** Max number of protocols to keep in the breakdown. */
26
+ limit?: number;
6
27
  }
7
- export interface GetProtocolsInput {
28
+ export interface GetProtocolsInput extends ListCompactInput {
8
29
  }
9
- export interface GetProtocolTvlInput {
30
+ export interface GetProtocolTvlInput extends SeriesCompactInput {
10
31
  protocol: string;
32
+ /** Include token-level balances/breakdowns in the response. */
33
+ includeTokens?: boolean;
11
34
  }
12
- export interface GetHistoricalChainTvlInput {
35
+ export interface GetHistoricalChainTvlInput extends SeriesCompactInput {
13
36
  }
14
- export interface GetChainTvlInput {
37
+ export interface GetChainTvlInput extends SeriesCompactInput {
15
38
  chain: string;
16
39
  }
17
40
  export interface GetCurrentProtocolTvlInput {
18
41
  protocol: string;
19
42
  }
20
- export interface GetChainsInput {
43
+ export interface GetChainsInput extends ListCompactInput {
21
44
  }
22
45
  export interface GetTokenPricesInput {
23
46
  coins: string[];
24
47
  }
25
48
  export interface GetHistoricalPricesInput {
26
49
  coins: string[];
27
- timestamp: number;
50
+ timestamp: DateTimeInput;
28
51
  }
29
52
  export interface GetBatchHistoricalPricesInput {
30
- coins: Record<string, number[]>;
53
+ /** Map of coin identifier to an array of datetime strings or UNIX seconds. */
54
+ coins: Record<string, DateTimeInput[]>;
31
55
  searchWidth?: string;
32
56
  }
33
- export interface GetPriceChartInput {
57
+ export interface GetPriceChartInput extends SeriesCompactInput {
34
58
  coins: string[];
35
- start?: number;
36
- end?: number;
59
+ start?: DateTimeInput;
60
+ end?: DateTimeInput;
37
61
  span?: number;
38
62
  period?: string;
39
63
  searchWidth?: string;
40
64
  }
41
65
  export interface GetPricePercentageChangeInput {
42
66
  coins: string[];
43
- timestamp?: number;
67
+ timestamp?: DateTimeInput;
44
68
  lookForward?: boolean;
45
69
  period?: string;
46
70
  }
@@ -49,28 +73,30 @@ export interface GetFirstPricesInput {
49
73
  }
50
74
  export interface GetBlockInput {
51
75
  chain: string;
52
- timestamp: number;
76
+ timestamp: DateTimeInput;
53
77
  }
54
- export interface GetStablecoinsInput {
78
+ export interface GetStablecoinsInput extends ListCompactInput {
55
79
  includePrices?: boolean;
56
80
  }
57
- export interface GetStablecoinChartsAllInput {
81
+ export interface GetStablecoinChartsAllInput extends SeriesCompactInput {
58
82
  stablecoin?: number | string;
59
83
  }
60
- export interface GetStablecoinChartsChainInput {
84
+ export interface GetStablecoinChartsChainInput extends SeriesCompactInput {
61
85
  chain: string;
62
86
  stablecoin?: number | string;
63
87
  }
64
- export interface GetStablecoinDataInput {
88
+ export interface GetStablecoinDataInput extends SeriesCompactInput {
65
89
  asset: string;
90
+ /** Include token-level breakdowns in the response. */
91
+ includeTokens?: boolean;
66
92
  }
67
- export interface GetStablecoinChainsInput {
93
+ export interface GetStablecoinChainsInput extends ListCompactInput {
68
94
  }
69
- export interface GetStablecoinPricesInput {
95
+ export interface GetStablecoinPricesInput extends SeriesCompactInput {
70
96
  }
71
- export interface GetPoolsInput {
97
+ export interface GetPoolsInput extends ListCompactInput {
72
98
  }
73
- export interface GetPoolChartInput {
99
+ export interface GetPoolChartInput extends SeriesCompactInput {
74
100
  pool: string;
75
101
  }
76
102
  export interface GetDexsOverviewInput extends OverviewOptionsInput {
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Response transforms that make DefiLlama payloads small and model-friendly.
3
+ *
4
+ * Two passes run on every response:
5
+ * 1. compaction — trim noisy fields, cap list lengths, downsample series.
6
+ * 2. humanizeDates — render UNIX date/timestamp fields as UTC datetime strings.
7
+ *
8
+ * Compaction is opt-out: pass `full: true` to get the untouched response.
9
+ */
10
+ export interface CompactOptions {
11
+ /** Return the complete, untrimmed response. */
12
+ full?: boolean;
13
+ /** Max number of points to keep when downsampling a time series. */
14
+ points?: number;
15
+ /** Max number of items to keep for list endpoints. */
16
+ limit?: number;
17
+ /** Include token-level breakdowns (protocol/stablecoin detail endpoints). */
18
+ includeTokens?: boolean;
19
+ }
20
+ /** Evenly downsample an array to at most `max` items, always keeping the ends. */
21
+ export declare function downsample<T>(arr: T[], max: number): T[];
22
+ /** Recursively render date/timestamp fields as UTC datetime strings. */
23
+ export declare function humanizeDates(value: any): any;
24
+ export declare function compactProtocols(data: any, opts?: CompactOptions): any;
25
+ export declare function compactProtocolTvl(data: any, opts?: CompactOptions): any;
26
+ /** A plain time series (array of dated points), e.g. historical chain TVL. */
27
+ export declare function compactSeries(data: any, opts?: CompactOptions): any;
28
+ export declare function compactChains(data: any, opts?: CompactOptions): any;
29
+ export declare function compactPools(data: any, opts?: CompactOptions): any;
30
+ export declare function compactStablecoins(data: any, opts?: CompactOptions): any;
31
+ /** /stablecoinchains is a per-chain entity list (not a time series). */
32
+ export declare function compactStablecoinChains(data: any, opts?: CompactOptions): any;
33
+ export declare function compactStablecoinData(data: any, opts?: CompactOptions): any;
34
+ export declare function compactOverview(data: any, opts?: CompactOptions): any;