mirror of
https://github.com/d0zingcat/solana-agent-kit.git
synced 2026-06-07 23:26:49 +00:00
feat: add jup list fetch
This commit is contained in:
42
src/tools/get_token_data.ts
Normal file
42
src/tools/get_token_data.ts
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
import { PublicKey } from "@solana/web3.js";
|
||||||
|
import { JupiterTokenData } from "../types";
|
||||||
|
|
||||||
|
export async function fetchTokenDataByMint(
|
||||||
|
mint: PublicKey,
|
||||||
|
): Promise<JupiterTokenData | undefined> {
|
||||||
|
try {
|
||||||
|
const response = await fetch("https://tokens.jup.ag/tokens?tags=verified", {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = (await response.json()) as JupiterTokenData[];
|
||||||
|
const token = data.find(
|
||||||
|
(token: JupiterTokenData) => token.address === mint.toString(),
|
||||||
|
);
|
||||||
|
return token;
|
||||||
|
} catch (error: any) {
|
||||||
|
throw new Error(`Error fetching token data: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function fetchTokenDataByName(
|
||||||
|
name: string,
|
||||||
|
): Promise<JupiterTokenData | undefined> {
|
||||||
|
try {
|
||||||
|
const response = await fetch("https://tokens.jup.ag/tokens?tags=verified", {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const data = (await response.json()) as JupiterTokenData[];
|
||||||
|
const token = data.find((token: JupiterTokenData) => token.name === name);
|
||||||
|
return token;
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error(`Error fetching token data: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -39,7 +39,6 @@ export interface PumpfunLaunchResponse {
|
|||||||
error?: string;
|
error?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lulo Account Details response format
|
* Lulo Account Details response format
|
||||||
*/
|
*/
|
||||||
@@ -54,3 +53,19 @@ export interface LuloAccountDetailsResponse {
|
|||||||
minimumRate: string;
|
minimumRate: string;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface JupiterTokenData {
|
||||||
|
address: string;
|
||||||
|
name: string;
|
||||||
|
symbol: string;
|
||||||
|
decimals: number;
|
||||||
|
tags: string[];
|
||||||
|
logoURI: string;
|
||||||
|
daily_volume: number;
|
||||||
|
freeze_authority: string | null;
|
||||||
|
mint_authority: string | null;
|
||||||
|
permanent_delegate: string | null;
|
||||||
|
extensions: {
|
||||||
|
coingeckoId?: string;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user