@noves/noves-sdk
Version:
Noves Developer Kit
156 lines (129 loc) • 3.2 kB
Markdown
The Cosmos Pricing API provides functionality to interact with price data for Cosmos-based blockchains.
- [Getting Started](
- [API Reference](
- [Type Definitions](
- [Error Handling](
```typescript
import { Pricing } from "@noves/noves-sdk";
// Initialize the Cosmos pricing client
const cosmosPricing = Pricing.cosmos("YOUR_API_KEY");
```
Returns a list of supported Cosmos chains.
**Returns:** `Promise<COSMOSPricingChainsResponse>`
```typescript
const chains = await cosmosPricing.getChains();
// Returns: [{ name: "secret", ecosystem: "cosmos", nativeCoin: {...} }, ...]
```
**Example Response:**
```typescript
[
{
name: "secret",
ecosystem: "cosmos",
nativeCoin: {
name: "SCRT",
symbol: "SCRT",
address: "SCRT",
decimals: 6
}
}
]
```
Get the price for a token from a specific liquidity pool.
**Parameters:**
- `chain` (string): The name of the chain
- `poolAddress` (string): The address of the pool
- `baseTokenAddress` (string): The address of the base token
**Returns:** `Promise<COSMOSPricingPoolPricing>`
```typescript
const poolPrice = await cosmosPricing.getPriceFromPool(
"secret",
"secret1l34fyc9g23fnlk896693nw57phevnyha7pt6gj", // pool address
"secret153wu605vvp934xhd4k9dtd640zsep5jkesstdm" // base token address
);
```
**Example Response:**
```typescript
{
"chain": "secret",
"exchange": {
"name": null
},
"poolAddress": "secret1l34fyc9g23fnlk896693nw57phevnyha7pt6gj",
"baseToken": {
"address": "secret153wu605vvp934xhd4k9dtd640zsep5jkesstdm",
"symbol": "SHD",
"name": "Shade",
"decimals": 8
},
"quoteToken": {
"address": "secret1fl449muk5yq8dlad7a22nje4p5d2pnsgymhjfd",
"symbol": "SILK",
"name": "Silk Stablecoin",
"decimals": 6
},
"price": {
"amount": "0.613678"
}
}
```
```typescript
interface COSMOSPricingChain {
name: string;
ecosystem: string;
nativeCoin: COSMOSPricingNativeCoin;
}
```
```typescript
interface COSMOSPricingNativeCoin {
name: string;
symbol: string;
address: string;
decimals: number;
}
```
```typescript
interface COSMOSPricingPoolPricing {
chain: string;
exchange: COSMOSPricingExchange;
poolAddress: string;
baseToken: COSMOSPricingToken;
quoteToken: COSMOSPricingToken;
price: COSMOSPricingPrice;
}
```
```typescript
interface COSMOSPricingToken {
address: string;
symbol: string;
name: string;
decimals: number;
}
```
```typescript
interface COSMOSPricingExchange {
name: string | null;
}
```
```typescript
interface COSMOSPricingPrice {
amount: string;
}
```
The SDK throws specific errors for common scenarios:
- `InvalidApiKeyError`: Thrown when an invalid API key is provided
- `RateLimitError`: Thrown when the API rate limit is exceeded