cmc-api
Version:
CoinMarketCap RESTful API Wrapper. Supports endpoints cryptocurrency, exchanges (CEX), decentralized exchange (DEX), global metrics, community content and trends, tools and others.
1,337 lines (1,336 loc) • 36.8 kB
TypeScript
import type { Timestamp } from "../types/common.option";
import type { Urls } from "./common.response";
/**
* The aggregated security scan results for a decentralized exchange (DEX) contract.
*/
export interface DexSecurityScanAggregated {
/**
* The contract has been verified.
*/
contract_verified: boolean;
/**
* The contract is identified as a honeypot.
*/
honeypot: boolean;
}
/**
* The security scan results from a third-party for a decentralized exchange (DEX).
*/
export interface DexSecurityScanThirdParty {
/**
* Indicates if the token is involved in an airdrop scam.
*/
airdrop_scam: boolean;
/**
* Indicates if the token has anti-whale mechanisms.
*/
anti_whale: boolean;
/**
* Indicates if the anti-whale mechanisms are modifiable.
*/
anti_whale_modifiable: boolean;
/**
* Indicates if the token is blacklisted.
*/
blacklisted: boolean;
/**
* Indicates if the ownership of the token can be taken back.
*/
can_take_back_ownership: boolean;
/**
* Indicates if the token cannot be bought.
*/
cannot_buy: boolean;
/**
* Indicates if the token cannot be sold completely.
*/
cannot_sell_all: boolean;
/**
* Indicates if the token allows external calls.
*/
external_call: boolean;
/**
* Indicates if the owner of the token is hidden.
*/
hidden_owner: boolean;
/**
* Indicates if the token is a honeypot (a trap set to detect, deflect, or counteract attempts at unauthorized use).
*/
honeypot: boolean;
/**
* Indicates if the token is listed in a decentralized exchange (DEX).
*/
in_dex: boolean;
/**
* Indicates if the token is mintable.
*/
mintable: boolean;
/**
* Indicates if the token is open source.
*/
open_source: boolean;
/**
* Indicates if the owner can change the balance of the token.
*/
owner_change_balance: boolean;
/**
* Indicates if personal slippage is modifiable.
*/
personal_slippage_modifiable: boolean;
/**
* Indicates if the token uses a proxy contract.
*/
proxy: boolean;
/**
* Indicates if the token has a self-destruct function.
*/
self_destruct: boolean;
/**
* Indicates if slippage is modifiable.
*/
slippage_modifiable: boolean;
/**
* Indicates if there is a trading cool-down period.
*/
trading_cool_down: boolean;
/**
* Indicates if the transfer of the token can be paused.
*/
transfer_pausable: boolean;
/**
* Indicates if the token is a true token (not a scam or fake).
*/
true_token: boolean;
/**
* Indicates if the token is on a trust list.
*/
trust_list: boolean;
/**
* Indicates if the token is whitelisted.
*/
whitelisted: boolean;
}
/**
* Represents a security scan for a decentralized exchange (DEX).
* @see {@link DexSecurityScanAggregated}
* @see {@link DexSecurityScanThirdParty}
* @template TAggregated - The type for aggregated security scan data. Defaults to `DexSecurityScanAggregated`.
* @template TThirdParty - The type for third-party security scan data. Defaults to `DexSecurityScanThirdParty`.
*/
export interface DexSecurityScan<TAggregated = DexSecurityScanAggregated, TThirdParty = DexSecurityScanThirdParty> {
/**
* The aggregated security scan data.
*/
aggregated: TAggregated;
/**
* The third-party security scan data.
*/
third_party: TThirdParty;
}
/**
* A mapping values of a decentralized exchange (DEX) with various attributes.
*/
export interface DexIdMap {
/**
* The unique identifier of the DEX
*/
id: number;
/**
* The name of the DEX
*/
name: string;
/**
* The slug representing the network of the DEX
*/
network_slug: string;
/**
* An alternative name for the DEX
*/
alternativeName?: string;
/**
* The identifier of the associated cryptocurrency
*/
cryptocurrencyId?: string;
/**
* The slug representing the associated cryptocurrency
*/
cryptocurrencySlug?: string;
/**
* The URL to explore the DEX pool
*/
poolExplorerUrl?: string;
/**
* The URL to explore the DEX token
*/
tokenExplorerUrl?: string;
/**
* The URL to view the transaction hash
*/
transactionHashUrl?: string;
/**
* The identifier of the wrapped token
*/
wrappedTokenId?: string;
/**
* The slug representing the wrapped token
*/
wrappedTokenSlug?: string;
}
/**
* Represents a response containing a map of Dex IDs.
* @see {@link DexIdMap}
*/
export type DexIdMapResponse = DexIdMap[];
/**
* The metadata of a decentralized exchange (DEX).
*/
export interface DexMetadata {
/**
* Unique identifier for the DEX
*/
id: number;
/**
* Name of the DEX
*/
name: string;
/**
* Slug (URL-friendly name) of the DEX
*/
slug: string;
/**
* URL to the hosted cmc logo of the DEX. *`64px` is default size returned.* \
* Replace `64x64` in the image path with these alternative sizes: `16`, `32`, `64`, `128`, `200`
*/
logo: string;
/**
* Current status of the DEX, either `"active"` or `"inactive"`
*/
status: "active" | "inactive";
/**
* Notice or announcement related to the DEX, can be `null`
*/
notice: string | null;
/**
* Description of the DEX, can be `null`
*/
description: string | null;
/**
* Optional date when the DEX was launched
*/
date_launched?: Timestamp;
/**
* URLs related to the DEX, including chat, twitter, website, fee, and blog
*/
urls: Pick<Urls, "chat" | "twitter" | "website"> & {
fee: string[];
blog: string[];
};
}
/**
* A response containing metadata for multiple decentralized exchanges (DEX).
* @see {@link DexMetadata}
*/
export type DexMetadataResponse = DexMetadata[];
/**
* A market quote for a listing on a decentralized exchange (DEX).
*/
export interface DexListingQuote {
/**
* The id of specified currency
*/
convert_id: string;
/**
* The timestamp of the last update
*/
last_updated: Timestamp;
/**
* The type of market for the quote. \
* *Can be `"spot"`, `"perpetual"`, or `"futures"`.*
*/
market_type: "spot" | "perpetual" | "futures";
/**
* The number of transactions in the last 24 hours. \
* *Can be `null` if the data is not available.*
*/
num_transactions_24h?: number | null;
/**
* The percentage change in volume over the last 24 hours
*/
percent_change_volume_24h?: number;
/**
* Reported 24 hour volume in the specified currency
*/
volume_24h: number;
}
/**
* A decentralized exchange (DEX) listing.
* @see {@link Urls} \
* @see {@link DexListingQuote}
* @template TQuote - The type of the quote object, defaults to `DexListingQuote`.
*/
export interface DexListing<TQuote extends object = DexListingQuote> {
/**
* The unique identifier for the DEX listing
*/
id: number;
/**
* The URL-friendly name of the DEX
*/
slug: string;
/**
* The name of the DEX
*/
name: string;
/**
* The status of the DEX, either `"active"` or `"inactive"`
*/
status: "active" | "inactive";
/**
* The type of the DEX. \
* *Can be `"orderbook"`, `"swap"`, or `"aggregator"`.*
*/
type: "orderbook" | "swap" | "aggregator";
/**
* The URL to the hosted cmc logo of the DEX. *`64px` is default size returned.* \
* *Replace `64x64` in the image path with these alternative sizes: `16`, `32`, `64`, `128`, `200`*
*/
logo: string;
/**
* The description of the DEX, can be `null`
*/
description: string | null;
/**
* Notice or announcement related to the DEX, can be `null`
*/
notice: string | null;
/**
* The 24 hour trading volume in USD
*/
market_share: number;
/**
* The number of market pairs available on the DEX
*/
num_market_pairs: number;
/**
* The date when the DEX was launched
*/
date_launched?: Timestamp;
/**
* The timestamp of the last update
*/
last_updated: Timestamp;
/**
* An array of market quotes
*/
quote: TQuote[];
/**
* Various resource URLs for this DEX
*/
urls?: Pick<Urls, "chat" | "twitter" | "website"> & {
/**
* Array of official web URLs covering exchange fees.
*/
fee: string[];
/**
* Array of official blog URLs
*/
blog: string[];
};
}
/**
* A list of decentralized exchange (DEX) listings.
* @see {@link DexListing}
* @see {@link DexListingQuote}
* @template TQuote - The type of the quote object, which extends the default `DexListingQuote` object.
*/
export type DexListingResponse<TQuote extends object = DexListingQuote> = DexListing<TQuote>[];
/**
* A market quotes in different currency conversions.
*/
export interface DexQuote {
/**
* id of specified currency
*/
convert_id: string;
/**
* The fully diluted value of the asset
*/
fully_diluted_value: number;
/**
* Timestamp (ISO 8601) of when the conversion currency's current value was referenced for this conversion
*/
last_updated: string;
/**
* Total liquidity available currently in the specified currency. \
* *This field will return `null` if not available.*
*/
liquidity: number | null;
/**
* The percentage change in price over the last hour
*/
percent_change_price_1h: number;
/**
* The percentage change in price over the last 24 hours
*/
percent_change_price_24h: number;
/**
* The price in the specified currency for this spot pair
*/
price: number;
/**
* The price of the base asset in quote asset for this spot pair
*/
price_by_quote_asset: number;
/**
* Reported 24 hour volume in the specified spot pair in the specified currency
*/
volume_24h: number;
/**
* The 24 hours buy volume of the asset
*/
"24h_buy_volume"?: number;
/**
* The 24 hours sell volume of the asset
*/
"24h_sell_volume"?: number;
}
/**
* Interface representing the quotes for a decentralized exchange (DEX).
* @see {@link DexQuote}
* @see {@link DexSecurityScan}
* @template TQuote - Type of the quote object, extending `DexQuote`.
* @template TSecurityScan - Type of the security scan object, extending `DexSecurityScan`.
*/
export interface DexQuotes<TQuote extends object = DexQuote, TSecurityScan extends object = DexSecurityScan> {
/**
* The contract addres of this base asset in the spot pair
*/
base_asset_contract_address: string;
/**
* The id of this base asset in the spot pair
*/
base_asset_id: string;
/**
* The name of this base asset in the spot pair
*/
base_asset_name: string;
/**
* The symbol of this base asset in the spot pair
*/
base_asset_symbol: string;
/**
* The ucid of this base asset in the spot pair
*/
base_asset_ucid: string;
/**
* Buy tax on the asset
*/
buy_tax?: number;
/**
* The unique contract address for this spot pair
*/
contract_address: string;
/**
* Timestamp (ISO 8601) when we started tracking this asset
*/
created_at: Timestamp;
/**
* Timestamp (ISO 8601) of the launch date for this exchange
*/
date_launched: Timestamp;
/**
* The id of this dex the spot pair is on
*/
dex_id: string;
/**
* The name of this dex the spot pair is on
*/
dex_slug: string;
/**
* Number of holders of the asset
*/
holders?: number;
/**
* Timestamp (ISO 8601) of the last time this record was updated
*/
last_updated: Timestamp;
/**
* The name of this spot pair
*/
name: string;
/**
* The id of the network the spot pair is on
*/
network_id: string;
/**
* The slug of the network the spot pair is on
*/
network_slug: string;
/**
* Number of transactions in past 24 hours
*/
num_transactions_24h?: number;
/**
* Percentage of the base asset in the pool
*/
percent_pooled_base_asset?: number;
/**
* Base asset in the pool
*/
pool_base_asset?: number;
/**
* When the pool of the asset was created
*/
pool_created?: Timestamp;
/**
* Quote asset in the pool
*/
pool_quote_asset?: number;
/**
* Array of market quotes in different currency conversions
* @see {@link DexQuote}
*/
quote: TQuote[];
/**
* The contract addresss of this quote asset in the spot pair
*/
quote_asset_contract_address: string;
/**
* The id of this quote asset in the spot pair
*/
quote_asset_id: string;
/**
* The name of this quote asset in the spot pair
*/
quote_asset_name: string;
/**
* The symbol of this quote asset in the spot pair
*/
quote_asset_symbol: string;
/**
* The ucid of this quote asset in the spot pair
*/
quote_asset_ucid: string;
/**
* Security scan by Go+ \
* *Only returned if passed in aux*
* @see {@link DexSecurityScan}
*/
security_scan?: TSecurityScan;
/**
* Sell tax on the asset
*/
sell_tax?: number;
/**
* Total supply of the base asset
*/
total_supply_base_asset?: number;
/**
* Total supply of the quote asset
*/
total_supply_quote_asset?: number;
/**
* Number of asset buys in the past 24 hours
*/
"24h_no_of_buys"?: number;
/**
* Number of asset sells in the past 24 hours
*/
"24h_no_of_sells"?: number;
/**
* 24 hours volume of the quote asset
*/
"24h_volume_quote_asset"?: number;
}
/**
* A response containing an array of decentralized exchange (DEX) quotes.
* @template TQuote - The type of the quote object. Defaults to `DexQuote`.
* @template TSecurityScan - The type of the security scan object. Defaults to `DexSecurityScan`.
*/
export type DexQuotesResponse<TQuote extends object = DexQuote, TSecurityScan extends object = DexSecurityScan> = DexQuotes<TQuote, TSecurityScan>[];
/**
* An market quote for a decentralized exchange (DEX) trade. \
* *This type extends a subset of properties from `DexQuote`*
* *and includes additional properties specific to the trade amounts and total value.*
* @see {@link DexQuote}
*/
export type DexTradeQuote = Pick<DexQuote, "convert_id" | "price" | "price_by_quote_asset"> & {
/**
* Amount of base asset traded
*/
amount_base_asset: number;
/**
* Amount of quote asset traded
*/
amount_quote_asset: number;
/**
* Total value of trade in the specified currency
*/
total: number;
};
/**
* A decentralized exchange (DEX) trade.
* @see {@link DexTradeQuote}
* @template TQuote - The type of the quote object, defaults to `DexTradeQuote`.
*/
export interface DexTrade<TQuote extends object = DexTradeQuote> {
/**
* Timestamp (ISO 8601) of specified transaction
*/
date: Timestamp;
/**
* The type of trade, either `"buy"` or `"sell"`
*/
type: "buy" | "sell";
/**
* Transaction hash of the trade. \
* *Only returned if passed in aux*
*/
transaction_hash?: string;
/**
* Link to the transaction on a blockchain explorer if available \
* *Only returned if passed in aux*
*/
blockchain_explorer_link?: string;
/**
* An array of market quotes in different currency conversions.
* @see {@link DexTradeQuote}
*/
quote: TQuote[];
}
/**
* A collection of decentralized exchange (DEX) trades.
* @see {@link DexTrade}
* @see {@link DexTradeQuote}
* @see {@link DexSecurityScan}
* @template TQuote - The type of the quote asset in the trade. Defaults to `DexTradeQuote`.
* @template TTrade - The type of the trade. Defaults to `DexTrade<TQuote>`.
* @template TSecurityScan - The type of the security scan object. Defaults to `DexSecurityScan`.
*/
export interface DexTrades<TQuote extends object = DexTradeQuote, TTrade extends object = DexTrade<TQuote>, TSecurityScan extends object = DexSecurityScan> {
/**
* Number of asset buys in the past 24 hours
*/
"24h_no_of_buys"?: number;
/**
* Number of asset sells in the past 24 hours
*/
"24h_no_of_sells"?: number;
/**
* 24 hours volume of the quote asset
*/
"24h_volume_quote_asset"?: number | null;
/**
* The contract addres of this base asset in the spot pair
*/
base_asset_contract_address: string;
/**
* The id of this base asset in the spot pair
*/
base_asset_id: string;
/**
* The name of this base asset in the spot pair.
*/
base_asset_name: string;
/**
* The symbol of this base asset in the spot pair.
*/
base_asset_symbol: string;
/**
* The ucid of this base asset in the spot pair.
*/
base_asset_ucid: string;
/**
* Buy tax on the asset
*/
buy_tax?: number;
/**
* The unique contract address for this spot pair.
*/
contract_address: string;
/**
* Timestamp (ISO 8601) when we started tracking this asset.
*/
created_at: Timestamp;
/**
* Timestamp (ISO 8601) of the launch date for this exchange.
*/
date_launched: Timestamp;
/**
* The id of this dex the spot pair is on.
*/
dex_id: string;
/**
* The name of this dex the spot pair is on.
*/
dex_slug: string;
/**
* Number of holders of the asset
*/
holders?: number;
/**
* Timestamp (ISO 8601) of the last time this record was updated.
*/
last_updated: Timestamp;
/**
* The name of this spot pair.
*/
name: string;
/**
* The id of the network the spot pair is on.
*/
network_id: string;
/**
* The slug of the network the spot pair is on.
*/
network_slug: string;
/**
* Number of transactions in past 24 hours
*/
num_transactions_24h?: number;
/**
* Percentage of the base asset in the pool
*/
percent_pooled_base_asset?: number;
/**
* Base asset in the pool
*/
pool_base_asset?: number;
/**
* When the pool of the asset was created
*/
pool_created?: Timestamp;
/**
* Quote asset in the pool
*/
pool_quote_asset?: number;
/**
* The contract addresss of this quote asset in the spot pair.
*/
quote_asset_contract_address: string;
/**
* The id of this quote asset in the spot pair.
*/
quote_asset_id: string;
/**
* The name of this quote asset in the spot pair.
*/
quote_asset_name: string;
/**
* The symbol of this quote asset in the spot pair.
*/
quote_asset_symbol: string;
/**
* The ucid of this quote asset in the spot pair.
*/
quote_asset_ucid: string;
/**
* Security scan by Go+
*/
security_scan?: TSecurityScan[];
/**
* Sell tax on the asset
*/
sell_tax?: number;
/**
* Total supply of the quote asset
*/
total_supply_base_asset?: number;
/**
* Total supply of the quote asset
*/
total_supply_quote_asset?: number;
/**
* A array of market quotes in different currency conversions.
*/
trades: TTrade[];
}
/**
* A response containing an array of decentralized exchange (DEX) trades.
* @see {@link DexTrade}
* @see {@link DexTrades}
* @see {@link DexTradeQuote}
* @see {@link DexSecurityScan}
* @template TQuote - The type of the quote object, extending from `DexTradeQuote`.
* @template TTrade - The type of the trade object, extending from `DexTrade` with `TQuote`.
* @template TSecurityScan - The type of the security scan object, extending from `DexSecurityScan`.
*/
export type DexTradesResponse<TQuote extends object = DexTradeQuote, TTrade extends object = DexTrade<TQuote>, TSecurityScan extends object = DexSecurityScan> = DexTrades<TQuote, TTrade, TSecurityScan>[];
/**
* A quote for a DEX (Decentralized Exchange) pair.
*/
export interface DexPairQuote {
/**
* 24 hours buy volume of the asset
*/
"24h_buy_volume"?: number;
/**
* 24 hours sell volume of the asset
*/
"24h_sell_volume"?: number;
/**
* id of specified currency
*/
convert_id: string;
/**
* The fully diluted value of the asset.
*/
fully_diluted_value: number;
/**
* Timestamp (ISO 8601) of when the conversion currency's current value was referenced for this conversion
*/
last_updated: string;
/**
* Total liquidity available currently in the specified currency. \
* *This field will return `null` if not available.*
*/
liquidity?: number | null;
/**
* 1 hour price change percentage in the specified spot pair in the specified currency
*/
percent_change_price_1h: number;
/**
* 24 hour price change percentage in the specified spot pair in the specified currency
*/
percent_change_price_24h: number;
/**
* Price in the specified currency for this spot pair
*/
price: number;
/**
* Price of the base asset in quote asset for this spot pair
*/
price_by_quote_asset: number;
/**
* Reported 24 hour volume in the specified spot pair in the specified currency
*/
volume_24h: number;
}
/**
* A DEX (Decentralized Exchange) pair.
*/
export interface DexPairs<TQuote extends object = DexPairQuote, TSecurityScan extends object = DexSecurityScan> {
/**
* Number of asset buys in the past 24 hours
*/
"24h_no_of_buys"?: number;
/**
* Number of asset sells in the past 24 hours
*/
"24h_no_of_sells"?: number;
/**
* 24 hours volume of the quote asset
*/
"24h_volume_quote_asset"?: number;
/**
* The contract addres of this base asset in the spot pair
*/
base_asset_contract_address: string;
/**
* The id of this base asset in the spot pair
*/
base_asset_id: string;
/**
* The name of this base asset in the spot pair
*/
base_asset_name: string;
/**
* The symbol of this base asset in the spot pair
*/
base_asset_symbol: string;
/**
* The ucid of this base asset in the spot pair
*/
base_asset_ucid: string;
/**
* Buy tax on the asset
*/
buy_tax?: number;
/**
* The unique contract address for this spot pair
*/
contract_address: string;
/**
* Timestamp (ISO 8601) when we started tracking this asset
*/
created_at: Timestamp;
/**
* Timestamp (ISO 8601) of the launch date for this exchange
*/
date_launched: Timestamp;
/**
* The id of this dex the spot pair is on
*/
dex_id: string;
/**
* The short name of this dex the spot pair is on
*/
dex_slug: string;
/**
* Number of holders of the asset
*/
holders?: number;
/**
* Timestamp (ISO 8601) of the last time this record was updated
*/
last_updated: Timestamp;
/**
* The name of this spot pair
*/
name: string;
/**
* The id of the network the spot pair is on
*/
network_id: string;
/**
* The slug of the network the spot pair is on
*/
network_slug: string;
/**
* Number of transactions in past 24 hours
*/
num_transactions_24h?: number;
/**
* Percentage of the base asset in the pool
*/
percent_pooled_base_asset?: number;
/**
* Base asset in the pool
*/
pool_base_asset?: number;
/**
* When the pool of the asset was created
*/
pool_created: Timestamp;
/**
* Quote asset in the pool
*/
pool_quote_asset?: number;
/**
* An array of market quotes in different currency conversions
*/
quote: TQuote[];
/**
* The contract addresss of this quote asset in the spot pair
*/
quote_asset_contract_address: string;
/**
* The id of this quote asset in the spot pair
*/
quote_asset_id: string;
/**
* The name of this quote asset in the spot pair
*/
quote_asset_name: string;
/**
* The symbol of this quote asset in the spot pair
*/
quote_asset_symbol: string;
/**
* The ucid of this quote asset in the spot pair
*/
quote_asset_ucid: string;
/**
* A unique identifier used to fetch the next batch of results from the next API related API call, if applicable. \
* *`scroll_id` is an alternative to traditional pagingation techniques.*
*/
scroll_id: string;
/**
* Security scan by Go+ \
* *Only returned if passed in aux*
* @see {@link DexSecurityScan}
*/
security_scan?: TSecurityScan[];
/**
* Sell tax on the asset
*/
sell_tax?: number;
/**
* Total supply of the quote asset
*/
total_supply_base_asset?: number;
/**
* Total supply of the quote asset
*/
total_supply_quote_asset?: number;
}
/**
* An array response of DEX (Decentralized Exchange) pairs.
* @see {@link DexPairs}
* @see {@link DexPairQuote}
* @see {@link DexSecurityScan}
* @template TQuote - The type of the quote object, extending from `DexPairQuote`.
* @template TSecurityScan - The type of the security scan object, extending from `DexSecurityScan`.
*/
export type DexPairsResponse<TQuote extends object = DexPairQuote, TSecurityScan extends object = DexSecurityScan> = DexPairs<TQuote, TSecurityScan>[];
/**
* Represents a Dex OHLCV (Open, High, Low, Close, Volume) Quote. \
* *This type is a combination of selected properties from `DexQuote` and additional OHLCV properties.*
* @see {@link DexQuote}
*/
export type DexOhlcvQuote = Pick<DexQuote, "24h_buy_volume" | "24h_sell_volume" | "convert_id" | "last_updated"> & {
/**
* Latest price today in UTC time for the convert option requested. \
* *This is not the final price during close as the current day period is not over.*
*/
close: number;
/**
* Highest price so far today in UTC time for the convert option requested.
*/
high: number;
/**
* Lowest price today in UTC time for the convert option requested.
*/
low: number;
/**
* Price from first datapoint of today in UTC time for the convert option requested.
*/
open: number;
/**
* Adjusted volume for this time series interval.
*/
volume: number;
};
/**
* A Dex OHLCV (Open, High, Low, Close, Volume) response.
* @see {@link DexOhlcvQuote}
* @see {@link DexSecurityScan}
* @template TQuote - The type of the quote object, defaults to `DexOhlcvQuote`.
* @template TSecurityScan - The type of the security scan object, defaults to `DexSecurityScan`.
*/
export interface DexOhlcv<TQuote extends object = DexOhlcvQuote, TSecurityScan extends object = DexSecurityScan> {
/**
* Number of asset buys in the past 24 hours.
*/
"24h_no_of_buys"?: number;
/**
* Number of asset sells in the past 24 hours.
*/
"24h_no_of_sells"?: number;
/**
* 24 hours volume of the quote asset.
*/
"24h_volume_quote_asset"?: number | null;
/**
* The contract addres of this base asset in the spot pair.
*/
base_asset_contract_address: string;
/**
* The id of this base asset in the spot pair.
*/
base_asset_id: string;
/**
* The name of this base asset in the spot pair.
*/
base_asset_name: string;
/**
* The symbol of this base asset in the spot pair.
*/
base_asset_symbol: string;
/**
* The ucid of this base asset in the spot pair.
*/
base_asset_ucid: string;
/**
* Buy tax on the asset.
*/
buy_tax?: number;
/**
* The unique contract address for this spot pair.
*/
contract_address: string;
/**
* Timestamp (ISO 8601) when we started tracking this asset.
*/
created_at: Timestamp;
/**
* Timestamp (ISO 8601) of the launch date for this exchange.
*/
date_launched: Timestamp;
/**
* The id of this dex the spot pair is on.
*/
dex_id: string;
/**
* The name of this dex the spot pair is on.
*/
dex_slug: string;
/**
* Number of holders of the asset.
*/
holders?: number;
/**
* Timestamp (ISO 8601) of the last time this record was updated.
*/
last_updated: Timestamp;
/**
* The name of this spot pair.
*/
name: string;
/**
* The id of the network the spot pair is on.
*/
network_id: string;
/**
* The slug of the network the spot pair is on.
*/
network_slug: string;
/**
* Number of transactions in past 24 hours.
*/
num_transactions_24h?: number;
/**
* Percentage of the base asset in the pool.
*/
percent_pooled_base_asset?: number;
/**
* Base asset in the pool.
*/
pool_base_asset?: number;
/**
* When the pool of the asset was created.
*/
pool_created?: Timestamp;
/**
* Quote asset in the pool.
*/
pool_quote_asset?: number;
/**
* Array of market quotes in different currency conversions.
*/
quote: TQuote[];
/**
* The contract addresss of this quote asset in the spot pair.
*/
quote_asset_contract_address: string;
/**
* The id of this quote asset in the spot pair.
*/
quote_asset_id: string;
/**
* The name of this quote asset in the spot pair.
*/
quote_asset_name: string;
/**
* The symbol of this quote asset in the spot pair.
*/
quote_asset_symbol: string;
/**
* The ucid of this quote asset in the spot pair.
*/
quote_asset_ucid: string;
/**
* Security scan by Go+
* @see {@link DexSecurityScan}
*/
security_scan?: TSecurityScan[];
/**
* Sell tax on the asset
*/
sell_tax?: number;
/**
* Timestamp (ISO 8601) of the end of this OHLCV period. \
* *Always `null` as the current day is incomplete.* \
* *See last_updated for the last UTC time included in the current OHLCV calculation.*
*/
time_close: Timestamp | null;
/**
* Timestamp (ISO 8601) of the start of this OHLCV period.
*/
time_open: Timestamp;
/**
* Total supply of the quote asset.
*/
total_supply_base_asset?: number;
/**
* Total supply of the quote asset.
*/
total_supply_quote_asset?: number;
}
/**
* The response type for Dex OHLCV (Open, High, Low, Close, Volume) data.
* @see {@link DexOhlcv}
* @see {@link DexOhlcvQuote}
* @see {@link DexSecurityScan}
* @template TQuote - The type of the quote object, defaults to `DexOhlcvQuote`.
* @template TSecurityScan - The type of the security scan object, defaults to `DexSecurityScan`.
*/
export type DexOhlcvResponse<TQuote extends object = DexOhlcvQuote, TSecurityScan extends object = DexSecurityScan> = DexOhlcv<TQuote, TSecurityScan>[];
/**
* A historical quotes for a decentralized exchange (DEX).
* @see {@link DexOhlcvQuote}
* @template TQuote - The type of the quote objects, extending from `DexOhlcvQuote`.
*/
export interface DexOhlcvHistoricalQuotes<TQuote extends object = DexOhlcvQuote> {
/**
* An array of quote objects
* @see {@link DexOhlcvQuote}
*/
quote: TQuote[];
/**
* Timestamp (ISO 8601) of the end of this OHLCV period. \
* *Always `null` as the current day is incomplete.* \
* *See last_updated for the last UTC time included in the current OHLCV calculation.*
*/
time_close: Timestamp;
/**
* Timestamp (ISO 8601) of the start of this OHLCV period.
*/
time_open: Timestamp;
}
/**
* A historical OHLCV (Open, High, Low, Close, Volume) data for a decentralized exchange (DEX).
* @see {@link DexOhlcvHistoricalQuotes}
* @see {@link DexSecurityScan}
* @template TQuotes - The type of the quote objects, extending from `DexOhlcvHistoricalQuotes`.
* @template TSecurityScan - The type of the security scan object, extending from `DexSecurityScan`.
*/
export interface DexOhlcvHistorical<TQuotes extends object = DexOhlcvHistoricalQuotes, TSecurityScan extends object = DexSecurityScan> {
/**
* Number of asset buys in the past 24 hours.
*/
"24h_no_of_buys"?: number;
/**
* Number of asset sells in the past 24 hours.
*/
"24h_no_of_sells"?: number;
/**
* 24 hours volume of the quote asset.
*/
"24h_volume_quote_asset"?: number;
/**
* The contract addres of this base asset in the spot pair.
*/
base_asset_contract_address: string;
/**
* The id of this base asset in the spot pair.
*/
base_asset_id: string;
/**
* The name of this base asset in the spot pair.
*/
base_asset_name: string;
/**
* The symbol of this base asset in the spot pair.
*/
base_asset_symbol: string;
/**
* The ucid of this base asset in the spot pair.
*/
base_asset_ucid: string;
/**
* Buy tax on the asset.
*/
buy_tax?: number;
/**
* The unique contract address for this spot pair.
*/
contract_address: string;
/**
* Timestamp (ISO 8601) when we started tracking this asset.
*/
created_at: Timestamp;
/**
* Timestamp (ISO 8601) of the launch date for this exchange.
*/
date_launched: Timestamp;
/**
* The id of this dex the spot pair is on.
*/
dex_id: string;
/**
* The name of this dex the spot pair is on.
*/
dex_slug: string;
/**
* Number of holders of the asset
*/
holders?: number;
/**
* Timestamp (ISO 8601) of the last time this record was updated.
*/
last_updated: Timestamp;
/**
* The name of this spot pair.
*/
name: string;
/**
* The id of the network the spot pair is on.
*/
network_id: string;
/**
* The slug of the network the spot pair is on.
*/
network_slug: string;
/**
* Number of transactions in past 24 hours
*/
num_transactions_24h?: number;
/**
* Percentage of the base asset in the pool
*/
percent_pooled_base_asset?: number;
/**
* Base asset in the pool
*/
pool_base_asset?: number;
/**
* When the pool of the asset was created
*/
pool_created?: Timestamp;
/**
* Quote asset in the pool
*/
pool_quote_asset?: number;
/**
* The contract addresss of this quote asset in the spot pair.
*/
quote_asset_contract_address: string;
/**
* The id of this quote asset in the spot pair.
*/
quote_asset_id: string;
/**
* The name of this quote asset in the spot pair.
*/
quote_asset_name: string;
/**
* The symbol of this quote asset in the spot pair.
*/
quote_asset_symbol: string;
/**
* The ucid of this quote asset in the spot pair.
*/
quote_asset_ucid: string;
/**
* An array of historical quotes for the spot pair.
* @see {@link DexOhlcvHistoricalQuotes}
*/
quotes: TQuotes[];
/**
* Security scan by Go+
* @see {@link DexSecurityScan}
*/
security_scan?: TSecurityScan[];
/**
* Sell tax on the asset
*/
sell_tax?: number;
/**
* Total supply of the quote asset
*/
total_supply_base_asset?: number;
/**
* Total supply of the quote asset
*/
total_supply_quote_asset?: number;
}
/**
* The response for historical OHLCV (Open, High, Low, Close, Volume) data from a decentralized exchange (DEX).
* @see {@link DexOhlcvHistorical}
* @see {@link DexOhlcvHistoricalQuotes}
* @see {@link DexSecurityScan}
* @template TQuotes - The type of the quotes object, defaults to `DexOhlcvHistoricalQuotes`.
* @template TSecurityScan - The type of the security scan object, defaults to `DexSecurityScan`.
*/
export type DexOhlcvHistoricalResponse<TQuotes extends object = DexOhlcvHistoricalQuotes, TSecurityScan extends object = DexSecurityScan> = DexOhlcvHistorical<TQuotes, TSecurityScan>[];