@coinbase/agentkit
Version:
Coinbase AgentKit core primitives
74 lines (73 loc) • 1.96 kB
TypeScript
/**
* Interface representing a DeFi protocol from DefiLlama
*/
export interface Protocol {
name: string;
address?: string;
symbol?: string;
url?: string;
description?: string;
chain?: string;
logo?: string;
audits?: string;
category?: string;
tvl?: number;
}
/**
* Interface representing a time-series data point with a date
*/
export interface TimeSeriesDataPoint {
date: number;
totalLiquidityUSD: number;
}
/**
* Interface representing a time-series data point with tokens
*/
export interface TokenTimeSeriesDataPoint {
date: number;
tokens: Record<string, number>;
}
/**
* Type for representing generic metadata values that can be returned by DefiLlama API
*/
export type MetadataValue = string | number | boolean | null | Record<string, unknown> | unknown[];
/**
* Interface representing DefiLlama protocol response
*/
export interface ProtocolResponse {
id: string;
name: string;
address?: string;
symbol?: string;
url?: string;
description?: string;
chain?: string;
logo?: string;
audits?: string;
audit_note?: string | null;
gecko_id?: string | null;
cmcId?: string | null;
category?: string;
chains?: string[];
oracles?: string[];
forkedFrom?: string[];
audit_links?: string[];
github?: string[];
tvl?: TimeSeriesDataPoint[];
tokensInUsd?: TokenTimeSeriesDataPoint[];
tokens?: TokenTimeSeriesDataPoint[];
chainTvls?: Record<string, {
tvl?: TimeSeriesDataPoint[];
tokensInUsd?: TokenTimeSeriesDataPoint[];
tokens?: TokenTimeSeriesDataPoint[];
}>;
currentChainTvls?: Record<string, number>;
raises?: Record<string, MetadataValue>[];
metrics?: Record<string, MetadataValue>;
mcap?: number;
methodology?: string;
}
/**
* Type for the pruned protocol response - same structure as the input
*/
export type PrunedProtocolResponse = ProtocolResponse;