From 8bd0b462d2163696c52ba660aa5d7a0c094147f7 Mon Sep 17 00:00:00 2001 From: Arihant Bansal <17180950+arihantbansal@users.noreply.github.com> Date: Sat, 4 Jan 2025 23:37:51 +0530 Subject: [PATCH 1/3] feat: update to hermes v2 --- README.md | 9 +-- .../app/api/chat/route.ts | 80 +++++++++---------- .../data/DefaultRetrievalText.ts | 2 +- .../utils/markdownToHTML.ts | 30 +++---- package.json | 1 - src/actions/pythFetchPrice.ts | 10 ++- src/agent/index.ts | 16 ++-- src/langchain/index.ts | 18 +++-- src/tools/batch_order.ts | 24 +----- src/tools/index.ts | 72 +++++++---------- src/tools/pyth_fetch_price.ts | 79 +++++++++++++----- src/types/index.ts | 61 +++++++++++++- 12 files changed, 240 insertions(+), 162 deletions(-) diff --git a/README.md b/README.md index f4d5562..adeab95 100644 --- a/README.md +++ b/README.md @@ -198,11 +198,11 @@ import { PublicKey } from "@solana/web3.js"; ```typescript -const price = await agent.pythFetchPrice( - "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" -); +const priceFeedID = await agent.getPythPriceFeedID("SOL"); -console.log("Price in BTC/USD:", price); +const price = await agent.getPythPrice(priceFeedID); + +console.log("Price of SOL/USD:", price); ``` ## Examples @@ -233,7 +233,6 @@ The toolkit relies on several key Solana and Metaplex libraries: - @metaplex-foundation/umi - @lightprotocol/compressed-token - @lightprotocol/stateless.js -- @pythnetwork/price-service-client ## Contributing diff --git a/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts index 06e6911..badd6b3 100644 --- a/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts +++ b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts @@ -5,24 +5,24 @@ import { createReactAgent } from "@langchain/langgraph/prebuilt"; import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit"; const llm = new ChatOpenAI({ - temperature: 0.7, - model: "gpt-4o-mini", + temperature: 0.7, + model: "gpt-4o-mini", }); const solanaAgent = new SolanaAgentKit( - process.env.SOLANA_PRIVATE_KEY!, - process.env.RPC_URL, - process.env.OPENAI_API_KEY!, + process.env.SOLANA_PRIVATE_KEY!, + process.env.RPC_URL, + process.env.OPENAI_API_KEY!, ); const tools = createSolanaTools(solanaAgent); const memory = new MemorySaver(); const agent = createReactAgent({ - llm, - tools, - checkpointSaver: memory, - messageModifier: ` + llm, + tools, + checkpointSaver: memory, + messageModifier: ` You are a helpful agent that can interact onchain using the Solana Agent Kit. You are empowered to interact onchain using your tools. If you ever need funds, you can request them from the faucet. If not, you can provide your wallet details and request funds from the user. If there is a 5XX @@ -34,38 +34,38 @@ const agent = createReactAgent({ }); export async function POST(req: NextRequest) { - try { - const body = await req.json(); - const messages = body.messages ?? []; + try { + const body = await req.json(); + const messages = body.messages ?? []; - const eventStream = agent.streamEvents( - { - messages, - }, - { - version: "v2", - configurable: { - thread_id: "Solana Agent Kit!", - }, - }, - ); + const eventStream = agent.streamEvents( + { + messages, + }, + { + version: "v2", + configurable: { + thread_id: "Solana Agent Kit!", + }, + }, + ); - const textEncoder = new TextEncoder(); - const transformStream = new ReadableStream({ - async start(controller) { - for await (const { event, data } of eventStream) { - if (event === "on_chat_model_stream") { - if (!!data.chunk.content) { - controller.enqueue(textEncoder.encode(data.chunk.content)); - } - } - } - controller.close(); - }, - }); + const textEncoder = new TextEncoder(); + const transformStream = new ReadableStream({ + async start(controller) { + for await (const { event, data } of eventStream) { + if (event === "on_chat_model_stream") { + if (data.chunk.content) { + controller.enqueue(textEncoder.encode(data.chunk.content)); + } + } + } + controller.close(); + }, + }); - return new Response(transformStream); - } catch (e: any) { - return NextResponse.json({ error: e.message }, { status: e.status ?? 500 }); - } + return new Response(transformStream); + } catch (e: any) { + return NextResponse.json({ error: e.message }, { status: e.status ?? 500 }); + } } diff --git a/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts index 898acba..6973d98 100644 --- a/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts +++ b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts @@ -537,4 +537,4 @@ const executor = await initializeAgentExecutorWithOptions(tools, llm, { }, }); \`\`\` -`; \ No newline at end of file +`; diff --git a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts index dc265b1..135fdd9 100644 --- a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts +++ b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts @@ -2,29 +2,29 @@ import { marked } from "marked"; import DOMPurify from "isomorphic-dompurify"; interface MarkedOptions { - gfm: boolean; - breaks: boolean; - headerIds: boolean; - mangle: false; - highlight?: (code: string, lang: string) => string; + gfm: boolean; + breaks: boolean; + headerIds: boolean; + mangle: false; + highlight?: (code: string, lang: string) => string; } // Configure marked options const markedOptions: MarkedOptions = { - gfm: true, // GitHub Flavored Markdown - breaks: true, // Convert \n to
- headerIds: true, // Add ids to headers - mangle: false, // Don't escape HTML - highlight: function (code: string, lang: string): string { - // You can add syntax highlighting here if needed - return code; - }, + gfm: true, // GitHub Flavored Markdown + breaks: true, // Convert \n to
+ headerIds: true, // Add ids to headers + mangle: false, // Don't escape HTML + highlight: function (code: string, lang: string): string { + // You can add syntax highlighting here if needed + return code; + }, }; marked.setOptions(markedOptions); // Basic markdown to HTML conversion with sanitization export default function markdownToHtml(markdown: string) { - const rawHtml = marked.parse(markdown); - return DOMPurify.sanitize(rawHtml as string); + const rawHtml = marked.parse(markdown); + return DOMPurify.sanitize(rawHtml as string); } diff --git a/package.json b/package.json index 1ee3da7..cb6366f 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "@onsol/tldparser": "^0.6.7", "@orca-so/common-sdk": "0.6.4", "@orca-so/whirlpools-sdk": "^0.13.12", - "@pythnetwork/price-service-client": "^1.9.0", "@raydium-io/raydium-sdk-v2": "0.1.95-alpha", "@solana/spl-token": "^0.4.9", "@tensor-oss/tensorswap-sdk": "^4.5.0", diff --git a/src/actions/pythFetchPrice.ts b/src/actions/pythFetchPrice.ts index 8dc11f6..3f9b9de 100644 --- a/src/actions/pythFetchPrice.ts +++ b/src/actions/pythFetchPrice.ts @@ -1,7 +1,7 @@ import { Action } from "../types/action"; import { SolanaAgentKit } from "../agent"; import { z } from "zod"; -import { pythFetchPrice } from "../tools"; +import { fetchPythPrice, fetchPythPriceFeedID } from "../tools"; const pythFetchPriceAction: Action = { name: "PYTH_FETCH_PRICE", @@ -18,7 +18,7 @@ const pythFetchPriceAction: Action = { [ { input: { - priceFeedId: "Gnt27xtC473ZT2Mw5u8wZ68Z3gULkSTb5DuxJy7eJotD", // SOL/USD price feed + tokenSymbol: "SOL", // SOL/USD price feed }, output: { status: "success", @@ -37,8 +37,10 @@ const pythFetchPriceAction: Action = { }), handler: async (_agent: SolanaAgentKit, input: Record) => { try { - const priceFeedId = input.tokenId as string; - const priceStr = await pythFetchPrice(priceFeedId); + const priceFeedId = await fetchPythPriceFeedID(input.tokenSymbol); + + const priceStr = await fetchPythPrice(priceFeedId); + return { status: "success", price: priceStr, diff --git a/src/agent/index.ts b/src/agent/index.ts index 94f94d4..a4aa87b 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -1,4 +1,5 @@ import { Connection, Keypair, PublicKey } from "@solana/web3.js"; +import { BN } from "@coral-xyz/anchor"; import bs58 from "bs58"; import Decimal from "decimal.js"; import { DEFAULT_OPTIONS } from "../constants"; @@ -37,7 +38,6 @@ import { orcaOpenSingleSidedPosition, FEE_TIERS, fetchPrice, - pythFetchPrice, getAllDomainsTLDs, getAllRegisteredAllDomains, getOwnedDomainsForTLD, @@ -53,9 +53,9 @@ import { cancelListing, fetchTokenReportSummary, fetchTokenDetailedReport, - OrderParams, + fetchPythPrice, + fetchPythPriceFeedID, } from "../tools"; - import { CollectionDeployment, CollectionOptions, @@ -64,8 +64,8 @@ import { MintCollectionNFTResponse, PumpfunLaunchResponse, PumpFunTokenOptions, + OrderParams, } from "../types"; -import { BN } from "@coral-xyz/anchor"; /** * Main class for interacting with Solana blockchain @@ -442,8 +442,12 @@ export class SolanaAgentKit { return manifestCreateMarket(this, baseMint, quoteMint); } - async pythFetchPrice(priceFeedID: string): Promise { - return pythFetchPrice(priceFeedID); + async getPythPriceFeedID(tokenSymbol: string): Promise { + return fetchPythPriceFeedID(tokenSymbol); + } + + async getPythPrice(priceFeedID: string): Promise { + return fetchPythPrice(priceFeedID); } async createGibworkTask( diff --git a/src/langchain/index.ts b/src/langchain/index.ts index 38fd7ec..9f5f56b 100644 --- a/src/langchain/index.ts +++ b/src/langchain/index.ts @@ -1,14 +1,14 @@ import { PublicKey } from "@solana/web3.js"; +import { BN } from "@coral-xyz/anchor"; import Decimal from "decimal.js"; import { Tool } from "langchain/tools"; import { GibworkCreateTaskReponse, + OrderParams, PythFetchPriceResponse, SolanaAgentKit, } from "../index"; -import { create_image } from "../tools/create_image"; -import { BN } from "@coral-xyz/anchor"; -import { FEE_TIERS, generateOrdersfromPattern, OrderParams } from "../tools"; +import { create_image, FEE_TIERS, generateOrdersfromPattern } from "../tools"; export class SolanaBalanceTool extends Tool { name = "solana_balance"; @@ -1497,7 +1497,7 @@ export class SolanaPythFetchPrice extends Tool { description = `Fetch the price of a given price feed from Pyth's Hermes service Inputs: - priceFeedID: string, the price feed ID, e.g., "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" for BTC/USD`; + tokenSymbol: string, e.g., BTC for bitcoin`; constructor(private solanaKit: SolanaAgentKit) { super(); @@ -1505,17 +1505,21 @@ export class SolanaPythFetchPrice extends Tool { async _call(input: string): Promise { try { - const price = await this.solanaKit.pythFetchPrice(input); + const priceFeedID = await this.solanaKit.getPythPriceFeedID(input); + const price = await this.solanaKit.getPythPrice(priceFeedID); + const response: PythFetchPriceResponse = { status: "success", - priceFeedID: input, + tokenSymbol: input, + priceFeedID, price, }; + return JSON.stringify(response); } catch (error: any) { const response: PythFetchPriceResponse = { status: "error", - priceFeedID: input, + tokenSymbol: input, message: error.message, code: error.code || "UNKNOWN_ERROR", }; diff --git a/src/tools/batch_order.ts b/src/tools/batch_order.ts index f788ba4..c27fa98 100644 --- a/src/tools/batch_order.ts +++ b/src/tools/batch_order.ts @@ -4,33 +4,13 @@ import { sendAndConfirmTransaction, TransactionInstruction, } from "@solana/web3.js"; -import { SolanaAgentKit } from "../index"; import { ManifestClient, WrapperPlaceOrderParamsExternal, } from "@cks-systems/manifest-sdk"; import { OrderType } from "@cks-systems/manifest-sdk/client/ts/src/wrapper/types/OrderType"; - -export interface OrderParams { - quantity: number; - side: string; - price: number; -} - -interface BatchOrderPattern { - side: string; - totalQuantity?: number; - priceRange?: { - min?: number; - max?: number; - }; - spacing?: { - type: "percentage" | "fixed"; - value: number; - }; - numberOfOrders?: number; - individualQuantity?: number; -} +import { SolanaAgentKit } from "../index"; +import { BatchOrderPattern, OrderParams } from "../types"; /** * Generates an array of orders based on the specified pattern diff --git a/src/tools/index.ts b/src/tools/index.ts index 9e4a355..f38e328 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,58 +1,46 @@ -import exp from "constants"; - -export * from "./request_faucet_funds"; -export * from "./deploy_token"; -export * from "./deploy_collection"; -export * from "./get_balance"; -export * from "./get_balance_other"; -export * from "./mint_nft"; -export * from "./transfer"; -export * from "./trade"; -export * from "./limit_order"; export * from "./batch_order"; export * from "./cancel_all_orders"; -export * from "./withdraw_all"; -export * from "./register_domain"; -export * from "./resolve_sol_domain"; +export * from "./create_gibwork_task"; +export * from "./create_image"; +export * from "./create_tiplinks"; +export * from "./deploy_collection"; +export * from "./deploy_token"; +export * from "./fetch_price"; +export * from "./get_all_domains_tlds"; +export * from "./get_all_registered_all_domains"; +export * from "./get_balance"; +export * from "./get_balance_other"; +export * from "./get_main_all_domains_domain"; +export * from "./get_owned_all_domains"; +export * from "./get_owned_domains_for_tld"; export * from "./get_primary_domain"; +export * from "./get_token_data"; +export * from "./get_tps"; export * from "./launch_pumpfun_token"; export * from "./lend"; -export * from "./get_tps"; -export * from "./get_token_data"; -export * from "./stake_with_jup"; -export * from "./fetch_price"; -export * from "./send_compressed_airdrop"; +export * from "./limit_order"; +export * from "./manifest_create_market"; +export * from "./mint_nft"; +export * from "./openbook_create_market"; export * from "./orca_close_position"; export * from "./orca_create_clmm"; export * from "./orca_create_single_sided_liquidity_pool"; export * from "./orca_fetch_positions"; export * from "./orca_open_centered_position_with_liquidity"; export * from "./orca_open_single_sided_position"; -export * from "./get_all_domains_tlds"; -export * from "./get_all_registered_all_domains"; -export * from "./get_owned_domains_for_tld"; -export * from "./get_main_all_domains_domain"; -export * from "./get_owned_all_domains"; -export * from "./resolve_domain"; - -export * from "./get_all_domains_tlds"; -export * from "./get_all_registered_all_domains"; -export * from "./get_owned_domains_for_tld"; -export * from "./get_main_all_domains_domain"; -export * from "./get_owned_all_domains"; -export * from "./resolve_domain"; - +export * from "./pyth_fetch_price"; export * from "./raydium_create_ammV4"; export * from "./raydium_create_clmm"; export * from "./raydium_create_cpmm"; -export * from "./openbook_create_market"; -export * from "./manifest_create_market"; -export * from "./pyth_fetch_price"; - -export * from "./create_gibwork_task"; - +export * from "./register_domain"; +export * from "./request_faucet_funds"; +export * from "./resolve_domain"; +export * from "./resolve_sol_domain"; export * from "./rock_paper_scissor"; -export * from "./create_tiplinks"; - -export * from "./tensor_trade"; export * from "./rugcheck"; +export * from "./send_compressed_airdrop"; +export * from "./stake_with_jup"; +export * from "./tensor_trade"; +export * from "./trade"; +export * from "./transfer"; +export * from "./withdraw_all"; diff --git a/src/tools/pyth_fetch_price.ts b/src/tools/pyth_fetch_price.ts index 789cec8..35d619c 100644 --- a/src/tools/pyth_fetch_price.ts +++ b/src/tools/pyth_fetch_price.ts @@ -1,5 +1,51 @@ -import { PriceServiceConnection } from "@pythnetwork/price-service-client"; import BN from "bn.js"; +import { PythPriceFeedIDItem } from "../types"; + +/** + * Fetch the price feed ID for a given token symbol from Pyth + * @param tokenSymbol Token symbol + * @returns Price feed ID + */ +export async function fetchPythPriceFeedID( + tokenSymbol: string, +): Promise { + try { + const stableHermesServiceUrl: string = "https://hermes.pyth.network"; + + const response = await fetch( + `${stableHermesServiceUrl}/v2/price_feeds/?query=${tokenSymbol}&asset_type=crypto`, + ); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + const data = await response.json(); + + if (data.length === 0) { + throw new Error(`No price feed found for ${tokenSymbol}`); + } + + if (data.length > 1) { + const filteredData = data.filter( + (item: PythPriceFeedIDItem) => + item.attributes.base.toLowerCase() === tokenSymbol.toLowerCase(), + ); + + if (filteredData.length === 0) { + throw new Error(`No price feed found for ${tokenSymbol}`); + } + + return filteredData[0].id; + } + + return data[0].id; + } catch (error: any) { + throw new Error( + `Fetching price feed ID from Pyth failed: ${error.message}`, + ); + } +} /** * Fetch the price of a given price feed from Pyth @@ -9,28 +55,25 @@ import BN from "bn.js"; * * You can find priceFeedIDs here: https://www.pyth.network/developers/price-feed-ids#stable */ -export async function pythFetchPrice(priceFeedID: string): Promise { - // get Hermes service URL from https://docs.pyth.network/price-feeds/api-instances-and-providers/hermes - const stableHermesServiceUrl: string = "https://hermes.pyth.network"; - const connection = new PriceServiceConnection(stableHermesServiceUrl); - const feeds = [priceFeedID]; - +export async function fetchPythPrice(feedID: string): Promise { try { - const currentPrice = await connection.getLatestPriceFeeds(feeds); + const stableHermesServiceUrl: string = "https://hermes.pyth.network"; - if (currentPrice === undefined) { - throw new Error("Price data not available for the given token."); + const response = await fetch( + `${stableHermesServiceUrl}/v2/updates/price/latest/?ids[]=${feedID}`, + ); + + const data = await response.json(); + + const parsedData = data.parsed; + + if (parsedData.length === 0) { + throw new Error(`No price data found for ${feedID}`); } - if (currentPrice.length === 0) { - throw new Error("Price data not available for the given token."); - } + const price = new BN(parsedData[0].price.price); + const exponent = new BN(parsedData[0].price.expo); - // get price and exponent from price feed - const price = new BN(currentPrice[0].getPriceUnchecked().price); - const exponent = new BN(currentPrice[0].getPriceUnchecked().expo); - - // convert to scaled price const scaledPrice = price.div(new BN(10).pow(exponent)); return scaledPrice.toString(); diff --git a/src/types/index.ts b/src/types/index.ts index 1dac764..ad88ec8 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -88,7 +88,8 @@ export interface FetchPriceResponse { export interface PythFetchPriceResponse { status: "success" | "error"; - priceFeedID: string; + tokenSymbol: string; + priceFeedID?: string; price?: string; message?: string; code?: string; @@ -165,3 +166,61 @@ export interface TokenCheck { }>; score: number; } + +export interface PythPriceFeedIDItem { + id: string; + attributes: { + asset_type: string; + base: string; + }; +} + +export interface PythPriceItem { + binary: { + data: string[]; + encoding: string; + }; + parsed: [ + Array<{ + id: string; + price: { + price: string; + conf: string; + expo: number; + publish_time: number; + }; + ema_price: { + price: string; + conf: string; + expo: number; + publish_time: number; + }; + metadata: { + slot: number; + proof_available_time: number; + prev_publish_time: number; + }; + }>, + ]; +} + +export interface OrderParams { + quantity: number; + side: string; + price: number; +} + +export interface BatchOrderPattern { + side: string; + totalQuantity?: number; + priceRange?: { + min?: number; + max?: number; + }; + spacing?: { + type: "percentage" | "fixed"; + value: number; + }; + numberOfOrders?: number; + individualQuantity?: number; +} From 42ffa3da29afff96fe88d53653e246d42d546e83 Mon Sep 17 00:00:00 2001 From: Arihant Bansal <17180950+arihantbansal@users.noreply.github.com> Date: Sun, 5 Jan 2025 00:48:31 +0530 Subject: [PATCH 2/3] fix: pyth price feed --- src/tools/pyth_fetch_price.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/tools/pyth_fetch_price.ts b/src/tools/pyth_fetch_price.ts index 3ed87f5..96ed636 100644 --- a/src/tools/pyth_fetch_price.ts +++ b/src/tools/pyth_fetch_price.ts @@ -49,7 +49,6 @@ export async function fetchPythPriceFeedID( /** * Fetch the price of a given price feed from Pyth - * @param agent SolanaAgentKit instance * @param priceFeedID Price feed ID * @returns Latest price value from feed * @@ -72,10 +71,19 @@ export async function fetchPythPrice(feedID: string): Promise { } const price = new BN(parsedData[0].price.price); - const exponent = new BN(parsedData[0].price.expo); + const exponent = parsedData[0].price.expo; - const scaledPrice = price.div(new BN(10).pow(exponent)); + if (exponent < 0) { + const adjustedPrice = price.mul(new BN(100)); + const divisor = new BN(10).pow(new BN(-exponent)); + const scaledPrice = adjustedPrice.div(divisor); + + const priceStr = scaledPrice.toString(); + const formattedPrice = `${priceStr.slice(0, -2)}.${priceStr.slice(-2)}`; + return formattedPrice.startsWith('.') ? `0${formattedPrice}` : formattedPrice; + } + const scaledPrice = price.div(new BN(10).pow(new BN(exponent))); return scaledPrice.toString(); } catch (error: any) { throw new Error(`Fetching price from Pyth failed: ${error.message}`); From 7fc51c530216b6ba71f1a6af3d2c37ec40135c99 Mon Sep 17 00:00:00 2001 From: Arihant Bansal <17180950+arihantbansal@users.noreply.github.com> Date: Sun, 5 Jan 2025 00:50:19 +0530 Subject: [PATCH 3/3] chore: lint + docs --- docs/assets/search.js | 2 +- docs/classes/SolanaAgentKit.html | 16 +++++++--------- docs/functions/createSolanaTools.html | 2 +- docs/functions/createVercelAITools.html | 2 +- docs/functions/executeAction.html | 2 +- docs/functions/findAction.html | 2 +- docs/functions/getActionExamples.html | 2 +- docs/interfaces/Action.html | 14 +++++++------- docs/interfaces/ActionExample.html | 4 ++-- docs/interfaces/BatchOrderPattern.html | 4 ++-- docs/interfaces/CollectionDeployment.html | 4 ++-- docs/interfaces/CollectionOptions.html | 4 ++-- docs/interfaces/Config.html | 4 ++-- docs/interfaces/Creator.html | 4 ++-- docs/interfaces/FetchPriceResponse.html | 4 ++-- docs/interfaces/GibworkCreateTaskReponse.html | 4 ++-- docs/interfaces/JupiterTokenData.html | 4 ++-- docs/interfaces/LuloAccountDetailsResponse.html | 4 ++-- docs/interfaces/MintCollectionNFTResponse.html | 4 ++-- docs/interfaces/OrderParams.html | 4 ++-- docs/interfaces/PumpFunTokenOptions.html | 4 ++-- docs/interfaces/PumpfunLaunchResponse.html | 4 ++-- docs/interfaces/PythFetchPriceResponse.html | 4 ++-- docs/interfaces/PythPriceFeedIDItem.html | 4 ++-- docs/interfaces/PythPriceItem.html | 4 ++-- docs/interfaces/TokenCheck.html | 4 ++-- docs/types/Handler.html | 2 +- docs/variables/actions.html | 2 +- src/tools/pyth_fetch_price.ts | 8 +++++--- 29 files changed, 63 insertions(+), 63 deletions(-) diff --git a/docs/assets/search.js b/docs/assets/search.js index 86069d6..4e1411f 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "eJy1nW1zqzbTx7+L8zbTenkynHc+idPmap6uxKedTqbDEFtOuIKBAs5p7k6/+z0SYK+kBQvbfdXOiXa1SD897R+jv0dF9r0cfXn+e/Qep8vRF7D881Eardnoy+gpS6I0mr6ytPolrkbno02RjL6MFklUlqz8Uf7zD2/VOhmdt38dfRmN/jlvvbpgbb0usrSsis2iygoTl2dyeeT+fJRHBUsrPdJdxTC2HFxzyhZVnKWmFe+KH1Pv9yhJmFH7nW2LHl9fGC2XBSvLAfUikyPbeRW/mrZxXXRgfdbY2XFasD83rKyuos2CVVebdGn2zI3ZSpitGrNj4liyPMk+59k7MwOsLl815Y+v+SJLkgF810YLbHRMDK+s+holUbpgRrW/suplW/w09d5Xb8xsTtlVnjU2x0SwjtPq7mpuVDMvm64OGOFSjVURpeXK8GFR4eNG2WtcVqy4zNZRbEZYa7JsTY6rv8ySD/aUJYMiEEZllpwkhldWPRTxOio+B8Twyqq8NjpJDFURLc2GWFvymNoWfJAk0yS5L5asMJtYa5soSbLW5pgIvsfV27KIvk+TxGwpa8pHSXJkzVnO0gdW5HPejjdZarakcaucFblo/aS2OlkUT29ZYbaTkMIoG7OjSEiykh0QiLD7FyMx7hg5kBP0TMLS5bQsWWU2LHjxqC1+5Cw0f3gynXuq/BT18U3KZVRFXz+nA7aVvHpuuYyq6OXz4N1lTzTzePFuvuijYKrW8JhYVqxavIloHorYcOMjbEQgeWNzFIPRJl28PWzW+dUmNd961mb5Zp2vNukpdqBlFb2bPX9b8si9gHF9u7JHPR9LlxfZOucAs+U0LpZFlps9L0uXi61ltLU8ak0oFtGFmAWzMjbe8HOrehLcWR0dRcGiil3c3N6ahyBMFsl6fbL6n+L0NWFP8ZItb+I/N/Eyrj4fssxsw7CLqRRuSu4mad3ktZtj47zio77tLbPJk5uJySJHZsfGcZ+z9IKlFSvYsg3nt7h62zabcWh8g7FoPLUR8r1XgjydIlrUt4Np5zGiTj0R982hYpo0JxHTdIOwipLmKHKCdfD+e8qWA8N4ZVXGzU4eRxPEVVbMby4HhdLEscqKKlkeH82uQeY3l8aNsmuPKjk6E1RH8dgcfw/poyhJiq35KfvqNorTXTjDjrG87C6W05zqo89lvFnX0/h0vf7VMRtMtVk9bUfr9Ydzyjgu6rVpYBgnWNHkKPKDosiPX1dzlr5k2Xsdxm1UvBtmr1vDOpJ1a3hUbi1K4xUrq8GxtIYnjIVnfz6rN7HVv2JseW08zeWf1ZvY7a8YW8YnmOO2cQyO4Nizt2jOn+KX71nxPo/Kd7Ojt7B6ra2q2uqocZIt3h+inBVPi7gsM8O8FLfKuVW5szq+LeZxnsTpkHaothZH5QFZWmbFTVwa555riyQuT5GBFr4uRKaPxxAbJmFquzpDmGztTnMGf2R5VlRPmzXPtQ48ixfCttzaniaiS1ZFccKWdWQDQ1o2xkVrPDAmz1FIrUvOsyzZjZfVJhXiT/mjVqZX0dWc/8oKnii+7ncvleqtwN4pxtOL+fX93S7h9REVcfSSsPLH5i+9jiRp8rfpzc1sHk4vLx9nT09hbb/H8VkYVp85kyXSMOrXzFoHtW1XOJezh5v738P5/S+zu0HB1NpdKDg5TShfpzfTu4vZoCgaDe00Acwfp3dPV7PHQRG02tZJu+Pi/uZmJgwO6ZOdoHqaoG6v7+bh3dV8UCxcZgzTVXWyrrkcRoZIsZ+m8sfZf7/Nnubh1be7y2EjthH4Q6HtnyqYp/ubX2fh5f3t9HoYHs35P6yPTacJ56fZvJk8Lqfz6aBwXlnVTB88H37CcB6GdZKIIz9R91zN5hc/hw+P1wMnMrHohmJ/fJpAnubTX2bhb9fzn8P/fHsYFIvIVoc8kxb+b5OfPJyn+5vp7wNnWRRSmSXR56nm28fZT9dP89njYcOpzo6cdDzdzO4uw+nT02zYbMuVvVBIe6cJ4+JxNp3Pwp+uv/52//hLOJ8+/TIonnqvFTbnrZAfuE47/T3d3xwzBZZZctJue/h9/nN46NjnJ+Pw5BMAnwrvf7ubXTbt9BRe3T+G85vLwZOjSJE2zVWGq6wIq2R5uiAfHq9vp4+/H9KdPLrmzZaTr2rTm5tty81vBi78PLAoSbaNxjO6p+5WHOBhXYojPOW0cX07/WnYEGjmi3gdvZ4Q/5on1EwHIlaDhRrr32CtXYqO7Fke5i5vf/oufpz+fnn97TZsuvri4fZ22Axcp4rDpsd5svhfCWx6exv+6hwTWrRehx/OSQfG/ePFNHy6vvvpZhY+XV/OLsPffr5+vHm4v785ZLjwNFZYq4uhkBfD729xkXDB+ES7kem3O76kfbt9uPp2d0CWoH7LI2xe8zgyW2C53q5B5Te8Y64Cr6IFK3+s/2KekLl/mN1Nr8Ppw3X4y+z3PR6FwBDFYZTH4TvrTtM14XVU+Z9vD9d80/k4u5o9Pk5531/cf7ub76v8f5s85hvOgq1YUUS8kxfZJu3OzJmFcTWbhV/R61x7al8xFr70vNKlVSr1GycX/e4C11X/ybzn1J8XdPg62/fWVxtTRzU5zximVfTK9tYkFTWtTMa6Td3c5/J7GlKnKIXMm0z8x9jlWVO8q5/VWDsq3RTxgDrr0kdWWWSfUVJ9fo3KuHzI4rQa0JBnjfELN85b4yMDWtTdPiQMZDK8chqqS5EgXLO06o9jV84crV3WUX0/06SKs5353uFKPU5HUGX8mkbVptgDvRoMNjsoCNz8t3Fa7YrfXc0fWZlnaUnG1FnYvCN45nW467PGjH7c7mfoCoJVEU/rHRLIzvTwYHAH4HdTe6ZVoph5o1ff46pi5LrW5fdsZ0M/JxV3V/UsYa9FtB5W/87o6AC+s5cyrkikO+vf2RxdfZzGVRwl23cIn+5vBoXS2G/fHCx7XrkcEFaZxHkevbKv+SDizlq7vm3WgDDyIs6KuPq8YsM6qLVbsUM7SR2Gq016I44EfXMgWdB8KPbO+d2+DSZ9+gkGTsM9EfROwcMqb+bQb/TWqy+GxrJvGzYoFFYU9H6/J4jW5rDqMXQ3mySb1qek+lWIso+87tIDVoKsipJfo2RzSA1nwvqjsaYfv+eROmdHngwqq1lUpGx5SFitB9Z6OFVoBYuSKl6zaf55SFyteZR3n8WHB1Wyir8WRM7Z+yJCtkeEgxH+T33u3v7kiIpKLXOSQzTpdO9pWgt34FGUrrX3JGpaZfm5fkE/ydhb6bb8cdUu2SJeR8mANkYWx1VdRTTFdLVN6eOqTLLX7NvjtXmt3KBvtTFu5ihOPsOPLNkMAUuxOi6EVcHY/7Ew2lRvYuNkHgZheVwo4v2bAwLR7I4LI2fFOkpZWoVLftqI6CMCHQppe1w47C/++mfXCZAOQ7IZXD2eyeufYHGJt28TopcasPetompDPluH17OtBf1kRMid+553ll6Tu4uuuoVJz8vo5pUL3fw6/fZ0eTEkAGEWp5tyuThBEGtWlh1Z4q4AdibHVr7IloNqbsofUK10pvus3syopkueguwez/vo7gi/j/Cnzj1EXxzCdM92YlgwOfEbEMNgTH4HckAwB4VxogB6hl5fCPuG37AguoZgXwS9w3Bv9XgoNr+IqX+mxH8Xw1/57xiMXWVPMRx7fe8bkJ0P0bm/Ld/pNac/DG7XQ//QMHpTTnsaZG/WySAYzMFUZMVnf0XrPCHjkQqY93ic5hsyoaX7O2vLdgj8UoQd1WWbyry+beEjKmR/5fyHJ9Kvu/trlS2GVW2Ngwm4u1+Y/BylywTpB+Kl1x+bf+3tJL3vu8M/XihGfvrP5E0onQNmHSeMnD9wDbtih1SyZOWiiHODJjmTix5SGau7eO8joXIHNdzija3JFJDUbm2pQ6p4U1DsqGNXzLASDKo4KV28scU7Vc3ur0PSruIbOFmXCqb4PGu+f5P1CmAozL5q5/w9JdM6q7rwoRUWcflOQqZW1hY8tKJykdHrmVpRW3BAReoRAv2g+bpitIqpFxuwdpFbhC6XZ3v2xWq0XZnVqiril01FzwmdlUtmhwRBNu7eZh3WoC9xin/h2uvwbFt4z9P0NWYeFSUtXRAVbgsPqxA3nPjY4ENURGuy99CfzRvtz02UVh3JONXhGSpMPwWOsHOVpQ8kWmVNwYMr6jz/aTX1H/roqnC/fI2qxVtTjL88Qa7sWqEh4jHdZLTL/obTY+2TDP/bQ0dH7cJuLyjGYYi+eYxS+hzdEYMwKhqjIwMo82iBf8Zv0P5biyOrTjfrF1bcr5SPjO6PoDbMVnu+NGocSJwu4494uTkIiJ3xUVSgn9av4nSpnCp2v6jf/bF3gHl4l8wWm4p1epT+buqUf+sIH7OoH/9rZSjnf5zz5md/jb78PfpgBc/5j76MrB/sH4LR+WgVM/5dpi/P7eFoka2bVymX2WIj/vePptivbCFe3fzyXJf+cTw6fx6fO/4P7sT644/z59ZY/EH8Q+tj9y/CEEbnz0AZgmYIkqE1On+2KENLM7QkQ3t0/mxThrZmaEuGzuj82aEMHc3QkQzd0fmze+7YPzieIxm6mqErGXqj82ePqtHTDD3JcDI6f55QhhPNcCIZ+qPzZ58y9DVDXzIMRufPAWUYaIaBDADnAUh2QIcHFHoEPjQ/BEAyQcC5AJIh0CECmSLgbADJEegggUwScD6AZAl0mECmCTgj4JLGOlAgEwWcEyCZAh0qkKkCzgqQXIEOFshkAecFSLZAhwtkuoAzAyRfoAMGMmEWZ8YiCbN0wiyZMIszY5GEWTphljJHiUmKnqWIaUomzOLMWCRhlk6YJRNmcWYskjBLJ8ySCbM4MxZJmKUTZsmEWZwZiyTM0gmzZMIszoxFEmbphFkyYRZnxiIJs3TCLJkwizNjkYRZOmGWTJjNmbFJwmydMFsmzObM2CRhtk6YLRNmc2ZskjBbJ8xWVkKxFNJrIbEYyoTZnBmbJMzWCbNlwmzOjE0SZuuE2TJhNmfGJgmzdcJsmTCbM2OThNk6YbZMmM2ZsUnCbJ0wWybM5szYJGG2TpgtE+ZwZhySMEcnzJEJczgzDkmYoxPmyIQ5nBmHJMzRCXNkwhzOjEMS5uiEOcp+S2y46B0XseWSCXM4Mw5JmKMT5siEOZwZhyTM0QlzZMIczoxDEubohDkyYQ5nxiEJc3TCHJkwhzPjkIQ5OmGOTJjLmXFJwlydMFcmzOXMuCRhrk6YKxPmcmZckjBXJ8yVCXM5My5JmKsT5sqEuZwZlyTM1QlzlV292NaThLnExl4mzOXMuCRhrk6YKxPmcmZckjBXJ8yVCXM5My5JmKsT5sqEuZwZlyTM1QlzZcI8zoxHEubphHkyYR5nxiMJ83TCPJkwjzPjkYR5OmGeTJjHmfFIwjydME8mzOPMeCRhnk6YJxPmcWY8kjBPJ8xTzo7i8EifHonjo0yYx5nxSMI8nTBPJszjzHgkYZ5OmCcT5nFmPJIwTyfMkwmbcGYmJGETnbCJTNiEMzMhCZvohE1kwiacmQlJ2EQnbCITNuHMTEjCJjphE5mwCWdmQhI20QmbyIRNODMTkrCJTthEJmzCmZmQhE10wiZKhkKkKOgcBZGkkAmbcGYmJGETnbCJTNiEMzMhCZvohE1kwnzOjE8S5uuE+TJhPmfGJwnzdcJ8mTCfM+OThPk6Yb5MmM+Z8UnCfJ0wXybM58z4JGG+TpgvE+ZzZnySMF8nzJcJ8zkzPkmYrxPmy4T5nBmfJMzXCfOVPJhIhNGZMCIVJhPmc2Z8kjBfJ8yXCQs4MwFJWKATFsiEBdCVagx0wAIZsIAjE5B0BjpggQxYwJEJSDoDHbBABizgyAQknYEOWCADFnBkApLOQAcskAELODIB3WA6YIEMWMCRCUg6Ax2wQAYs4MgEJJ2BDligJFtFttU/d8Y/jINANibyrWrCVRBGJ9PGVMpVybmORdJ13JGyJdKuYyXvOhaJ1zGdth0Tqdexknsdi+TrmE7djon061jJv45FAnZMp2/HRAp2rORgxyIJO3aoLqj/qDpQ8rBjkYgd02ncMZGKHSu52LFIxo49it36j6oDJR87FgnZMZ3OHRMp2bGSkx2LpOyYTumOibTsWAGxSf3TJFLJfy37X6f/aRJJAUAhsZYAugQEgkRVBahlgA4RgRICVCWglgI6hARKDFDVgFoO6BATKEFAVQRqSaBDUKBEAVUVqGWBjrFACQOqMlBLAx0oU+KAqg7U8kCHrEEJBIpCACLpDx3SBiESgKISgFWTSI8FQigARSkAqyaRHguEWACKWgBCAABa5gBCMABFMQAhAgAtdQAhGoCiGoAQAoCWO4AQDkBRDkCIAUBLHkCIB6CoByAEAXo5B0I/AEVAAKEJ0OsqEBICKBoCCFkAaNkFCBkBFB0BhDQAtPQChJQAipYAQh4AWn4BQk4ARU8AuxZF6ZFASAqgaApg1xzSI4GQFUDRFcCuOaRHAiEtgKItgJALgJZjgJAXQNEXQEgGQEsyQEgMoGgMIGQDoGUZIGQGUHQGENIB0NIMEFIDKFoDCPkAbHpOJuQGUPQGEBIC0BINEJIDKJoDCBkBaJkGCNkBFN0BhJQAXKohRjMhPYCiPYBTS/Q+7YAgUdEfQEgKQEs2QEgQoGgQ4Lg9vUDIEKDoECCkBaB1HyCkCFC0CBDyAtDaDxByBCh6BAiJAbj+QzUiQaKiSYAT9HUjQaKiS4A77ulGQpoARZsAITcArUIBIU+Aok+Aa/V0IyFRgKJRgJAdgJaygJApQNEpwHV6tliEVAGKVgFCfgBaDwNCrgBFrwC3JpEezoRkAYpmAW5NIr2wELIFKLoFuDWJ9MJCSBegaBcg5Ajg+hgFEkGiol+AkCSA1siAkDBA0TBAyBId+wtCxQBFxgChTACtswGhZIAiZYBQJ4DW2oBQM0CRM0AoFEDrbUAoGqBIGuDVby/RQ4FQNUCRNcDzenqRUDZAkTZAqBVAC3dAqBugyBsgFAugxTsgFA5QJA4QqgXQAh4QKgcoMgdMahDpoUAoHaBIHSDUC6CFPCDUDlDkDhAKBtBiHhCKByiSBwgVA2hBDwjVAxTZA4SSAbSoB4TyAYr0AULNAFrYA0L9AEX+gEn9Lh2NMqGAgCKBgFA1gBb4gFBBQJFBQCgbQIt8QCghoEghINQNoIU+INQQUOQQEAoHePTiTCgioEgi4EPP/oJQRUCRRcCvSaRRJpQRUKQR8O2+RyBIVOQREIoH0LIjEAoJKBIJCNUDaOkRCJUEFJkEhPIBtPwIhFICilQCfv1mJz0WCLUEFLkEhAICtAwJhGICimQCQgUBWooEQjUBRTYBoYQALUcCoZyAIp2AkEOAliSBkE/afxNv1X+womLL6/rt+ufnUfsN+L9HYfPKPd83iJr42/d8Z/Dl73/+2b1k/+Xvf9B79vxvvLLaDWt/7I68OS7y5roDvJXYj4eCMo2p/UDazkuAggm82o4nV4zcod8DoufzLPR8E8fIlXpbHnpMGz2mbeisWryJX73k7S+xcHgBCs+3zDw2vxPEbhz8lJ6Rm/pqzyhJ2p/kIH8T7M7MW5KVLGdFLi6USzL+Y6OdQwv1gmX2lLLD8k3crIk8AvIIZh7FN0TQU9o+ekzHbnhzzfAlPsSNXI8RKFz0GeZxib4/jp1ilsdm+O2cZrk2agPUz4Fv6K++UGLnBI1ZtzYKTPsjTZk2xDAppm7KqtgsxHUJqLVQW5n56bmLa+d2gppsYjg0qEt7dh59NHZ9Q1LM7zVB9aCpxg8G1CPdBo36HbWwO6SJS3FzbVVfP4v8odHoGsIo39KMfKHh5xoOFOHrQ1x7G8V6dKj13AGtJ0MZoL4OzBbb3fUGeCbAdI/Nxon8BUfkzMLToG3WWrsvb2JHeC9hm02j3XexolUX+fXMWo28dhd5RLOMZ9h8wuMuTmlooZE1wJmITppc0Nxi6Ad9jwXvEfFKYbhRaT4mjbxI2wDLrD93323B4eDV0DOb45qfuBIb4ImHvAWmYaFvEOHtL2bfcNbBH7rEuwnc5rZZ/1G3GSIckMeJGaXCYf1b8+1HBnGMuCNss8ftvucczY6IFHfAozdflxHfOkBbAOTNcPffeT88ihFh45ptkfkPtykA8TxnuJTqH67FEyc+Bdhm46P36kQ0NSGGDM8XhtfjoTpQy/pmLWtyXSCqADW4b7YA9N/eiFyjEeGbTZT77/pE7tG52Debqnou60R+0QbAN9t8ddwjjaYbFOvEPFZ8JzRyhgKcGAco5SmUIylejAxPGNxjkjS9xAcI9uigCJ0h/nbjYudccoyGnGM85Jqkg7RbRJvFgW6y6o3JiznOGhl3Ln+23UPW/5EeFY0ex3j0iMFDt52Nntk2fmjhsPG2yooqWUpBokd3jB+9GYL6M4OUMTN291m9aQsdTuUZph2wq/bbtOhRUfM5xs1XL+5RFb18ErkMvKu3jJ8X+azixbsMo4UWDMt4wahyOS50lrIM18z6JNscG6PyvWD6HgkzDYYH2+1H/rAfvKjXR8bzEVcRTRzK3cr1LZSQMxto1Edu8HyKU4a+2VaQvP4JHxjwFhhMwxSfJMUNh/f3hjs19eIVvLnCM59lFpR2hyealBEegRl23feRIreo6YJBQW5HmvzUmGLDMdZ7Cy0KFTWo4fGr9tw41o69OAFhmZGYsHQZ8i8SVdTeAwFkmAzn/oQ7eYpBjWhIzvaWDtwXeOtim+0Ikk2SNZjUx66SPNABPr8a5sHXURqvWFnV0+A6Kt6ZhCI+Eztm3bH9QDg+a+KnrvdB5yMwXJV2lxviLQz2ODaNDN3ThRsOTzJgGFSsJuSxk/GkeUQwjEy5QQQ3HZ6ybLM1V7hLV9R48FCYhusP97bLdaWriqRvjLdCY3PP6UpuR7y6mTEsiuM5CTEbtGttPZfwRdfQqfKNOrxa4unUN8tJqHdgo2jRAwdm8wF39pJl752DFo0Nxzy+TsUO8O7FbHhI/nTBDjFtmEvk+kYtA2ZlrEKN022Gc6rwJ9pvkazXkjPUvYYZ8J2zWoERAsx2Z8Q1GKkCtNsyTPDwCup0XvP08kEJDT3DGYI75H3Er97mp9fW7/e4etsGLtWB5g3bbHS3daA2ITsP0WqYKm0k9PpLs3hrjOfgidnU234HH2868dpimMJsv5+Lo8EzoqE+iG9DR3MEeq7A2JF2ERReVfA0a9if2pEVcHYDnHaGNcxBdRxbAediwHD6ki4lwo+JgTBM7OCvs+JZH4dlmHiULoPFaxw+bxnmDZoNc717pvd/mDcw7FO0DSdeCuC/xESrutncz3MS4R41A60oE3Ov+xQNvE45ZjOrkkCJxTe/8SDG2y9D4WXrU/eGtw4Ts44nT+ye9FaOWQsW0ecy3qzD5o2BaL0OPxwqn4wlTLNJVHG9yNdryjEK2nDf1Diu/Ubr9YcjbXTQODLsb8mhuvTjF+Acs96R/eWKPzT9OGYDUrqdFZ8b8fRjmOJqk9Pd0gFWrwxxbJ0SyVBJUDR09ueGlVW42qSkYuUhFD1DFGuXq2izYJXwKzlE/gzdlVnywbqbEL+15xkOxMZnmSU9XYMe3XAr0/jtyKYjf4Zqb+OvzBKis/ESZopjWUXv0pSND7eGL4k0d3TgHDxeowzFqiJbvOdRzopyEZel8koNfmPCNZvyi+wzSqrPl6iMyzyL00pZRiXFxWwf0l5Ig58UN7rh2y/NVSPYC14mDfW4kqXLRbbOuSDAllFcLIssl3oSzU+2qc/22mc8z+EtpaHEUN8ogFdHTEQttfJ9qdmchG4Xwz2Im37cvNwI0OZ5XLMhsL2cCXcHntkNX0AqkzjPo1em5KNBmoINh2X9Cl70ytLqPZYOQghas1G1vVoA75txhxq+EaDNE/ilCMtskhU+Qn6eDf+3yakJFrWVoYyCfPJW+2QF5ReRYviSeXvDH15LMW92m8VyWvAMp6X2+kw8wLBjw7asL7nGTvC5ynC4t/cH4jUEx2L4bmbFj7PiAirMPZ5fDdOG/MUtnqLgb74ncVkp4Lr4XWazeaj2yH0pSU08bxvOFOJEtqhv+8KTBT7jeWZ76O2VwRgv7MdQCJev/8JBYRoMt2nS7a4YCdyThntmdEcYjgofkQx3ZsrtMHgaw3EZvpotvH1EyUY5p+P11/AXECKPKq9x+OnMfVA7WNRQpkgVUVquFJFbWrkHuaGCQkPG8C3R6nvMf1QjL9u4rQ3fdVHkoQC7GJu5+B4liZyTx0nlAS5C4iUMfOg9wBXV2GgLYqiPfGcvZawkFWXtxgwBvpgui4iHKPmSdnD7Pf1xPsrjnCVxykZfnv/455//BykydBI="; \ No newline at end of file diff --git a/docs/classes/SolanaAgentKit.html b/docs/classes/SolanaAgentKit.html index a009592..f8872a0 100644 --- a/docs/classes/SolanaAgentKit.html +++ b/docs/classes/SolanaAgentKit.html @@ -1,13 +1,12 @@ SolanaAgentKit | solana-agent-kit

Class SolanaAgentKit

Main class for interacting with Solana blockchain Provides a unified interface for token operations, NFT management, trading and more

SolanaAgentKit

-

Constructors

Constructors

Properties

Methods

Methods

cancelAllOrders closePerpTradeLong closePerpTradeShort createGibworkTask @@ -32,7 +31,6 @@ Provides a unified interface for token operations, NFT management, trading and m getTPS launchPumpFunToken lendAssets -limitOrder manifestCreateMarket mintNFT openbookCreateMarket @@ -65,8 +63,8 @@ Please use the new constructor with Config object instead:

const agent = new SolanaAgentKit(privateKey, rpcUrl, {
OPENAI_API_KEY: 'your-key'
});
-
  • Parameters

    • private_key: string
    • rpc_url: string
    • config: Config

    Returns SolanaAgentKit

  • Properties

    config: Config

    Configuration object

    -
    connection: Connection

    Solana RPC connection

    -
    wallet: Keypair

    Wallet keypair for signing transactions

    -
    wallet_address: PublicKey

    Public key of the wallet

    -

    Methods

    • Parameters

      • marketId: PublicKey

      Returns Promise<string>

    • Parameters

      • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

      Returns Promise<string>

    • Parameters

      • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

      Returns Promise<string>

    • Parameters

      • title: string
      • content: string
      • requirements: string
      • tags: string[]
      • tokenMintAddress: string
      • tokenAmount: number
      • Optionalpayer: string

      Returns Promise<GibworkCreateTaskReponse>

    • Parameters

      • amount: number
      • OptionalsplmintAddress: PublicKey

      Returns Promise<{ signature: string; url: string }>

    • Parameters

      • name: string
      • uri: string
      • symbol: string
      • decimals: number = DEFAULT_OPTIONS.TOKEN_DECIMALS
      • OptionalinitialSupply: number

      Returns Promise<{ mint: PublicKey }>

    • Parameters

      • mint: string

      Returns Promise<string>

    • Returns Promise<string[]>

    • Returns Promise<string[]>

    • Parameters

      • Optionaltoken_address: PublicKey

      Returns Promise<number>

    • Parameters

      • walletAddress: PublicKey
      • OptionaltokenAddress: PublicKey

      Returns Promise<number>

    • Parameters

      • owner: PublicKey

      Returns Promise<null | string>

    • Parameters

      • owner: PublicKey

      Returns Promise<string[]>

    • Parameters

      • tld: string

      Returns Promise<string[]>

    • Parameters

      • account: PublicKey

      Returns Promise<string>

    • Parameters

      • priceFeedID: string

      Returns Promise<string>

    • Parameters

      • tokenSymbol: string

      Returns Promise<string>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • marketId: PublicKey
      • quantity: number
      • side: string
      • price: number

      Returns Promise<string>

    • Parameters

      • baseMint: PublicKey
      • quoteMint: PublicKey

      Returns Promise<string[]>

    • Parameters

      • collectionMint: PublicKey
      • metadata: {
            creators?: { address: string; share: number }[];
            name: string;
            sellerFeeBasisPoints?: number;
            uri: string;
        }
      • Optionalrecipient: PublicKey

      Returns Promise<MintCollectionNFTResponse>

    • Parameters

      • baseMint: PublicKey
      • quoteMint: PublicKey
      • lotSize: number = 1
      • tickSize: number = 0.01

      Returns Promise<string[]>

    • Parameters

      • args: Omit<
            {
                agent: SolanaAgentKit;
                collateralAmount: number;
                collateralMint?: PublicKey;
                leverage?: number;
                price: number;
                slippage?: number;
                tradeMint?: PublicKey;
            },
            "agent",
        >

      Returns Promise<string>

    • Parameters

      • args: Omit<
            {
                agent: SolanaAgentKit;
                collateralAmount: number;
                collateralMint?: PublicKey;
                leverage?: number;
                price: number;
                slippage?: number;
                tradeMint?: PublicKey;
            },
            "agent",
        >

      Returns Promise<string>

    • Parameters

      • positionMintAddress: PublicKey

      Returns Promise<string>

    • Parameters

      • mintDeploy: PublicKey
      • mintPair: PublicKey
      • initialPrice: Decimal
      • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

      Returns Promise<string>

    • Parameters

      • depositTokenAmount: number
      • depositTokenMint: PublicKey
      • otherTokenMint: PublicKey
      • initialPrice: Decimal
      • maxPrice: Decimal
      • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

      Returns Promise<string>

    • Parameters

      • whirlpoolAddress: PublicKey
      • priceOffsetBps: number
      • inputTokenMint: PublicKey
      • inputAmount: Decimal

      Returns Promise<string>

    • Parameters

      • whirlpoolAddress: PublicKey
      • distanceFromCurrentPriceBps: number
      • widthBps: number
      • inputTokenMint: PublicKey
      • inputAmount: Decimal

      Returns Promise<string>

    • Parameters

      • marketId: PublicKey
      • baseAmount: BN
      • quoteAmount: BN
      • startTime: BN

      Returns Promise<string>

    • Parameters

      • mint1: PublicKey
      • mint2: PublicKey
      • configId: PublicKey
      • initialPrice: Decimal
      • startTime: BN

      Returns Promise<string>

    • Parameters

      • mint1: PublicKey
      • mint2: PublicKey
      • configId: PublicKey
      • mintAAmount: BN
      • mintBAmount: BN
      • startTime: BN

      Returns Promise<string>

    • Parameters

      • name: string
      • OptionalspaceKB: number

      Returns Promise<string>

    • Parameters

      • domain: string

      Returns Promise<undefined | PublicKey>

    • Parameters

      • domain: string

      Returns Promise<PublicKey>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • amount: number
      • choice: "rock" | "paper" | "scissors"

      Returns Promise<string>

    • Parameters

      • mintAddress: string
      • amount: number
      • decimals: number
      • recipients: string[]
      • priorityFeeInLamports: number
      • shouldLog: boolean

      Returns Promise<string[]>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • nftMint: PublicKey

      Returns Promise<string>

    • Parameters

      • nftMint: PublicKey
      • price: number

      Returns Promise<string>

    • Parameters

      • outputMint: PublicKey
      • inputAmount: number
      • OptionalinputMint: PublicKey
      • slippageBps: number = DEFAULT_OPTIONS.SLIPPAGE_BPS

      Returns Promise<string>

    • Parameters

      • to: PublicKey
      • amount: number
      • Optionalmint: PublicKey

      Returns Promise<string>

    • Parameters

      • marketId: PublicKey

      Returns Promise<string>

    +
  • Parameters

    • private_key: string
    • rpc_url: string
    • config: Config

    Returns SolanaAgentKit

  • Properties

    config: Config

    Configuration object

    +
    connection: Connection

    Solana RPC connection

    +
    wallet: Keypair

    Wallet keypair for signing transactions

    +
    wallet_address: PublicKey

    Public key of the wallet

    +

    Methods

    • Parameters

      • marketId: PublicKey

      Returns Promise<string>

    • Parameters

      • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

      Returns Promise<string>

    • Parameters

      • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

      Returns Promise<string>

    • Parameters

      • title: string
      • content: string
      • requirements: string
      • tags: string[]
      • tokenMintAddress: string
      • tokenAmount: number
      • Optionalpayer: string

      Returns Promise<GibworkCreateTaskReponse>

    • Parameters

      • amount: number
      • OptionalsplmintAddress: PublicKey

      Returns Promise<{ signature: string; url: string }>

    • Parameters

      • name: string
      • uri: string
      • symbol: string
      • decimals: number = DEFAULT_OPTIONS.TOKEN_DECIMALS
      • OptionalinitialSupply: number

      Returns Promise<{ mint: PublicKey }>

    • Parameters

      • mint: string

      Returns Promise<string>

    • Returns Promise<string[]>

    • Returns Promise<string[]>

    • Parameters

      • Optionaltoken_address: PublicKey

      Returns Promise<number>

    • Parameters

      • walletAddress: PublicKey
      • OptionaltokenAddress: PublicKey

      Returns Promise<number>

    • Parameters

      • owner: PublicKey

      Returns Promise<null | string>

    • Parameters

      • owner: PublicKey

      Returns Promise<string[]>

    • Parameters

      • tld: string

      Returns Promise<string[]>

    • Parameters

      • account: PublicKey

      Returns Promise<string>

    • Parameters

      • priceFeedID: string

      Returns Promise<string>

    • Parameters

      • tokenSymbol: string

      Returns Promise<string>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • baseMint: PublicKey
      • quoteMint: PublicKey

      Returns Promise<string[]>

    • Parameters

      • collectionMint: PublicKey
      • metadata: {
            creators?: { address: string; share: number }[];
            name: string;
            sellerFeeBasisPoints?: number;
            uri: string;
        }
      • Optionalrecipient: PublicKey

      Returns Promise<MintCollectionNFTResponse>

    • Parameters

      • baseMint: PublicKey
      • quoteMint: PublicKey
      • lotSize: number = 1
      • tickSize: number = 0.01

      Returns Promise<string[]>

    • Parameters

      • args: Omit<
            {
                agent: SolanaAgentKit;
                collateralAmount: number;
                collateralMint?: PublicKey;
                leverage?: number;
                price: number;
                slippage?: number;
                tradeMint?: PublicKey;
            },
            "agent",
        >

      Returns Promise<string>

    • Parameters

      • args: Omit<
            {
                agent: SolanaAgentKit;
                collateralAmount: number;
                collateralMint?: PublicKey;
                leverage?: number;
                price: number;
                slippage?: number;
                tradeMint?: PublicKey;
            },
            "agent",
        >

      Returns Promise<string>

    • Parameters

      • positionMintAddress: PublicKey

      Returns Promise<string>

    • Parameters

      • mintDeploy: PublicKey
      • mintPair: PublicKey
      • initialPrice: Decimal
      • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

      Returns Promise<string>

    • Parameters

      • depositTokenAmount: number
      • depositTokenMint: PublicKey
      • otherTokenMint: PublicKey
      • initialPrice: Decimal
      • maxPrice: Decimal
      • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

      Returns Promise<string>

    • Parameters

      • whirlpoolAddress: PublicKey
      • priceOffsetBps: number
      • inputTokenMint: PublicKey
      • inputAmount: Decimal

      Returns Promise<string>

    • Parameters

      • whirlpoolAddress: PublicKey
      • distanceFromCurrentPriceBps: number
      • widthBps: number
      • inputTokenMint: PublicKey
      • inputAmount: Decimal

      Returns Promise<string>

    • Parameters

      • marketId: PublicKey
      • baseAmount: BN
      • quoteAmount: BN
      • startTime: BN

      Returns Promise<string>

    • Parameters

      • mint1: PublicKey
      • mint2: PublicKey
      • configId: PublicKey
      • initialPrice: Decimal
      • startTime: BN

      Returns Promise<string>

    • Parameters

      • mint1: PublicKey
      • mint2: PublicKey
      • configId: PublicKey
      • mintAAmount: BN
      • mintBAmount: BN
      • startTime: BN

      Returns Promise<string>

    • Parameters

      • name: string
      • OptionalspaceKB: number

      Returns Promise<string>

    • Parameters

      • domain: string

      Returns Promise<undefined | PublicKey>

    • Parameters

      • domain: string

      Returns Promise<PublicKey>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • amount: number
      • choice: "rock" | "paper" | "scissors"

      Returns Promise<string>

    • Parameters

      • mintAddress: string
      • amount: number
      • decimals: number
      • recipients: string[]
      • priorityFeeInLamports: number
      • shouldLog: boolean

      Returns Promise<string[]>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • nftMint: PublicKey

      Returns Promise<string>

    • Parameters

      • nftMint: PublicKey
      • price: number

      Returns Promise<string>

    • Parameters

      • outputMint: PublicKey
      • inputAmount: number
      • OptionalinputMint: PublicKey
      • slippageBps: number = DEFAULT_OPTIONS.SLIPPAGE_BPS

      Returns Promise<string>

    • Parameters

      • to: PublicKey
      • amount: number
      • Optionalmint: PublicKey

      Returns Promise<string>

    • Parameters

      • marketId: PublicKey

      Returns Promise<string>

    diff --git a/docs/functions/createSolanaTools.html b/docs/functions/createSolanaTools.html index f949e7f..40c059b 100644 --- a/docs/functions/createSolanaTools.html +++ b/docs/functions/createSolanaTools.html @@ -1 +1 @@ -createSolanaTools | solana-agent-kit

    Function createSolanaTools

    • Parameters

      Returns (
          | SolanaBalanceTool
          | SolanaBalanceOtherTool
          | SolanaTransferTool
          | SolanaDeployTokenTool
          | SolanaDeployCollectionTool
          | SolanaMintNFTTool
          | SolanaPerpCloseTradeTool
          | SolanaPerpOpenTradeTool
          | SolanaTradeTool
          | SolanaLimitOrderTool
          | SolanaBatchOrderTool
          | SolanaCancelAllOrdersTool
          | SolanaWithdrawAllTool
          | SolanaRequestFundsTool
          | SolanaRegisterDomainTool
          | SolanaResolveDomainTool
          | SolanaGetDomainTool
          | SolanaGetWalletAddressTool
          | SolanaPumpfunTokenLaunchTool
          | SolanaCreateImageTool
          | SolanaLendAssetTool
          | SolanaTPSCalculatorTool
          | SolanaStakeTool
          | SolanaRestakeTool
          | SolanaFetchPriceTool
          | SolanaTokenDataTool
          | SolanaTokenDataByTickerTool
          | SolanaCompressedAirdropTool
          | SolanaClosePosition
          | SolanaOrcaCreateCLMM
          | SolanaOrcaCreateSingleSideLiquidityPool
          | SolanaOrcaFetchPositions
          | SolanaOrcaOpenCenteredPosition
          | SolanaOrcaOpenSingleSidedPosition
          | SolanaRaydiumCreateAmmV4
          | SolanaRaydiumCreateClmm
          | SolanaRaydiumCreateCpmm
          | SolanaOpenbookCreateMarket
          | SolanaManifestCreateMarket
          | SolanaPythFetchPrice
          | SolanaResolveAllDomainsTool
          | SolanaGetOwnedDomains
          | SolanaGetOwnedTldDomains
          | SolanaGetAllTlds
          | SolanaGetMainDomain
          | SolanaCreateGibworkTask
          | SolanaRockPaperScissorsTool
          | SolanaTipLinkTool
          | SolanaListNFTForSaleTool
          | SolanaCancelNFTListingTool
          | SolanaFetchTokenReportSummaryTool
          | SolanaFetchTokenDetailedReportTool
      )[]

    +createSolanaTools | solana-agent-kit

    Function createSolanaTools

    • Parameters

      Returns (
          | SolanaBalanceTool
          | SolanaBalanceOtherTool
          | SolanaTransferTool
          | SolanaDeployTokenTool
          | SolanaDeployCollectionTool
          | SolanaMintNFTTool
          | SolanaPerpCloseTradeTool
          | SolanaPerpOpenTradeTool
          | SolanaTradeTool
          | SolanaCancelAllOrdersTool
          | SolanaWithdrawAllTool
          | SolanaRequestFundsTool
          | SolanaRegisterDomainTool
          | SolanaResolveDomainTool
          | SolanaGetDomainTool
          | SolanaGetWalletAddressTool
          | SolanaPumpfunTokenLaunchTool
          | SolanaCreateImageTool
          | SolanaLendAssetTool
          | SolanaTPSCalculatorTool
          | SolanaStakeTool
          | SolanaRestakeTool
          | SolanaFetchPriceTool
          | SolanaTokenDataTool
          | SolanaTokenDataByTickerTool
          | SolanaCompressedAirdropTool
          | SolanaClosePosition
          | SolanaOrcaCreateCLMM
          | SolanaOrcaCreateSingleSideLiquidityPool
          | SolanaOrcaFetchPositions
          | SolanaOrcaOpenCenteredPosition
          | SolanaOrcaOpenSingleSidedPosition
          | SolanaRaydiumCreateAmmV4
          | SolanaRaydiumCreateClmm
          | SolanaRaydiumCreateCpmm
          | SolanaOpenbookCreateMarket
          | SolanaManifestCreateMarket
          | SolanaPythFetchPrice
          | SolanaResolveAllDomainsTool
          | SolanaGetOwnedDomains
          | SolanaGetOwnedTldDomains
          | SolanaGetAllTlds
          | SolanaGetMainDomain
          | SolanaCreateGibworkTask
          | SolanaRockPaperScissorsTool
          | SolanaTipLinkTool
          | SolanaListNFTForSaleTool
          | SolanaCancelNFTListingTool
          | SolanaFetchTokenReportSummaryTool
          | SolanaFetchTokenDetailedReportTool
      )[]

    diff --git a/docs/functions/createVercelAITools.html b/docs/functions/createVercelAITools.html index 255cefb..4900cf6 100644 --- a/docs/functions/createVercelAITools.html +++ b/docs/functions/createVercelAITools.html @@ -1 +1 @@ -createVercelAITools | solana-agent-kit

    Function createVercelAITools

    +createVercelAITools | solana-agent-kit

    Function createVercelAITools

    diff --git a/docs/functions/executeAction.html b/docs/functions/executeAction.html index 94c6c4a..f138d97 100644 --- a/docs/functions/executeAction.html +++ b/docs/functions/executeAction.html @@ -1,2 +1,2 @@ executeAction | solana-agent-kit

    Function executeAction

    • Execute an action with the given input

      -

      Parameters

      Returns Promise<Record<string, any>>

    +

    Parameters

    Returns Promise<Record<string, any>>

    diff --git a/docs/functions/findAction.html b/docs/functions/findAction.html index 92f4899..7532dff 100644 --- a/docs/functions/findAction.html +++ b/docs/functions/findAction.html @@ -1,2 +1,2 @@ findAction | solana-agent-kit

    Function findAction

    • Find an action by its name or one of its similes

      -

      Parameters

      • query: string

      Returns Action | undefined

    +

    Parameters

    • query: string

    Returns Action | undefined

    diff --git a/docs/functions/getActionExamples.html b/docs/functions/getActionExamples.html index 46823a7..1d3478f 100644 --- a/docs/functions/getActionExamples.html +++ b/docs/functions/getActionExamples.html @@ -1,2 +1,2 @@ getActionExamples | solana-agent-kit

    Function getActionExamples

    • Get examples for an action

      -

      Parameters

      • action: Action

      Returns string

    +

    Parameters

    • action: Action

    Returns string

    diff --git a/docs/interfaces/Action.html b/docs/interfaces/Action.html index 35ef6c2..2102f86 100644 --- a/docs/interfaces/Action.html +++ b/docs/interfaces/Action.html @@ -1,16 +1,16 @@ Action | solana-agent-kit

    Interface Action

    Main Action interface inspired by ELIZA This interface makes it easier to implement actions across different frameworks

    -
    interface Action {
        description: string;
        examples: ActionExample[][];
        handler: Handler;
        name: string;
        schema: ZodType;
        similes: string[];
    }

    Properties

    interface Action {
        description: string;
        examples: ActionExample[][];
        handler: Handler;
        name: string;
        schema: ZodType;
        similes: string[];
    }

    Properties

    description: string

    Detailed description of what the action does

    -
    examples: ActionExample[][]

    Array of example inputs and outputs for the action +

    examples: ActionExample[][]

    Array of example inputs and outputs for the action Each inner array represents a group of related examples

    -
    handler: Handler

    Function that executes the action

    -
    name: string

    Unique name of the action

    -
    schema: ZodType

    Zod schema for input validation

    -
    similes: string[]

    Alternative names/phrases that can trigger this action

    -
    +
    handler: Handler

    Function that executes the action

    +
    name: string

    Unique name of the action

    +
    schema: ZodType

    Zod schema for input validation

    +
    similes: string[]

    Alternative names/phrases that can trigger this action

    +
    diff --git a/docs/interfaces/ActionExample.html b/docs/interfaces/ActionExample.html index e1ea07a..5c96b15 100644 --- a/docs/interfaces/ActionExample.html +++ b/docs/interfaces/ActionExample.html @@ -1,5 +1,5 @@ ActionExample | solana-agent-kit

    Interface ActionExample

    Example of an action with input and output

    -
    interface ActionExample {
        explanation: string;
        input: Record<string, any>;
        output: Record<string, any>;
    }

    Properties

    interface ActionExample {
        explanation: string;
        input: Record<string, any>;
        output: Record<string, any>;
    }

    Properties

    explanation: string
    input: Record<string, any>
    output: Record<string, any>
    +

    Properties

    explanation: string
    input: Record<string, any>
    output: Record<string, any>
    diff --git a/docs/interfaces/BatchOrderPattern.html b/docs/interfaces/BatchOrderPattern.html index 2719bbb..31508ed 100644 --- a/docs/interfaces/BatchOrderPattern.html +++ b/docs/interfaces/BatchOrderPattern.html @@ -1,7 +1,7 @@ -BatchOrderPattern | solana-agent-kit

    Interface BatchOrderPattern

    interface BatchOrderPattern {
        individualQuantity?: number;
        numberOfOrders?: number;
        priceRange?: { max?: number; min?: number };
        side: string;
        spacing?: { type: "percentage" | "fixed"; value: number };
        totalQuantity?: number;
    }

    Properties

    individualQuantity? +BatchOrderPattern | solana-agent-kit

    Interface BatchOrderPattern

    interface BatchOrderPattern {
        individualQuantity?: number;
        numberOfOrders?: number;
        priceRange?: { max?: number; min?: number };
        side: string;
        spacing?: { type: "percentage" | "fixed"; value: number };
        totalQuantity?: number;
    }

    Properties

    individualQuantity?: number
    numberOfOrders?: number
    priceRange?: { max?: number; min?: number }
    side: string
    spacing?: { type: "percentage" | "fixed"; value: number }
    totalQuantity?: number
    +

    Properties

    individualQuantity?: number
    numberOfOrders?: number
    priceRange?: { max?: number; min?: number }
    side: string
    spacing?: { type: "percentage" | "fixed"; value: number }
    totalQuantity?: number
    diff --git a/docs/interfaces/CollectionDeployment.html b/docs/interfaces/CollectionDeployment.html index 7881a39..c8bfe83 100644 --- a/docs/interfaces/CollectionDeployment.html +++ b/docs/interfaces/CollectionDeployment.html @@ -1,3 +1,3 @@ -CollectionDeployment | solana-agent-kit

    Interface CollectionDeployment

    interface CollectionDeployment {
        collectionAddress: PublicKey;
        signature: Uint8Array;
    }

    Properties

    collectionAddress +CollectionDeployment | solana-agent-kit

    Interface CollectionDeployment

    interface CollectionDeployment {
        collectionAddress: PublicKey;
        signature: Uint8Array;
    }

    Properties

    collectionAddress: PublicKey
    signature: Uint8Array
    +

    Properties

    collectionAddress: PublicKey
    signature: Uint8Array
    diff --git a/docs/interfaces/CollectionOptions.html b/docs/interfaces/CollectionOptions.html index dbef805..6c3fd74 100644 --- a/docs/interfaces/CollectionOptions.html +++ b/docs/interfaces/CollectionOptions.html @@ -1,5 +1,5 @@ -CollectionOptions | solana-agent-kit

    Interface CollectionOptions

    interface CollectionOptions {
        creators?: Creator[];
        name: string;
        royaltyBasisPoints?: number;
        uri: string;
    }

    Properties

    creators? +CollectionOptions | solana-agent-kit

    Interface CollectionOptions

    interface CollectionOptions {
        creators?: Creator[];
        name: string;
        royaltyBasisPoints?: number;
        uri: string;
    }

    Properties

    creators?: Creator[]
    name: string
    royaltyBasisPoints?: number
    uri: string
    +

    Properties

    creators?: Creator[]
    name: string
    royaltyBasisPoints?: number
    uri: string
    diff --git a/docs/interfaces/Config.html b/docs/interfaces/Config.html index c19e999..5a3ca46 100644 --- a/docs/interfaces/Config.html +++ b/docs/interfaces/Config.html @@ -1,4 +1,4 @@ -Config | solana-agent-kit

    Interface Config

    interface Config {
        JUPITER_FEE_BPS?: number;
        JUPITER_REFERRAL_ACCOUNT?: string;
        OPENAI_API_KEY?: string;
    }

    Properties

    JUPITER_FEE_BPS? +Config | solana-agent-kit

    Interface Config

    interface Config {
        JUPITER_FEE_BPS?: number;
        JUPITER_REFERRAL_ACCOUNT?: string;
        OPENAI_API_KEY?: string;
    }

    Properties

    JUPITER_FEE_BPS?: number
    JUPITER_REFERRAL_ACCOUNT?: string
    OPENAI_API_KEY?: string
    +

    Properties

    JUPITER_FEE_BPS?: number
    JUPITER_REFERRAL_ACCOUNT?: string
    OPENAI_API_KEY?: string
    diff --git a/docs/interfaces/Creator.html b/docs/interfaces/Creator.html index e016a58..2f4ea54 100644 --- a/docs/interfaces/Creator.html +++ b/docs/interfaces/Creator.html @@ -1,3 +1,3 @@ -Creator | solana-agent-kit

    Interface Creator

    interface Creator {
        address: string;
        percentage: number;
    }

    Properties

    address +Creator | solana-agent-kit

    Interface Creator

    interface Creator {
        address: string;
        percentage: number;
    }

    Properties

    Properties

    address: string
    percentage: number
    +

    Properties

    address: string
    percentage: number
    diff --git a/docs/interfaces/FetchPriceResponse.html b/docs/interfaces/FetchPriceResponse.html index 88aa827..923975d 100644 --- a/docs/interfaces/FetchPriceResponse.html +++ b/docs/interfaces/FetchPriceResponse.html @@ -1,6 +1,6 @@ -FetchPriceResponse | solana-agent-kit

    Interface FetchPriceResponse

    interface FetchPriceResponse {
        code?: string;
        message?: string;
        priceInUSDC?: string;
        status: "success" | "error";
        tokenId?: string;
    }

    Properties

    code? +FetchPriceResponse | solana-agent-kit

    Interface FetchPriceResponse

    interface FetchPriceResponse {
        code?: string;
        message?: string;
        priceInUSDC?: string;
        status: "success" | "error";
        tokenId?: string;
    }

    Properties

    code?: string
    message?: string
    priceInUSDC?: string
    status: "success" | "error"
    tokenId?: string
    +

    Properties

    code?: string
    message?: string
    priceInUSDC?: string
    status: "success" | "error"
    tokenId?: string
    diff --git a/docs/interfaces/GibworkCreateTaskReponse.html b/docs/interfaces/GibworkCreateTaskReponse.html index e68d6d1..87ecb48 100644 --- a/docs/interfaces/GibworkCreateTaskReponse.html +++ b/docs/interfaces/GibworkCreateTaskReponse.html @@ -1,4 +1,4 @@ -GibworkCreateTaskReponse | solana-agent-kit

    Interface GibworkCreateTaskReponse

    interface GibworkCreateTaskReponse {
        signature?: string;
        status: "success" | "error";
        taskId?: string;
    }

    Properties

    signature? +GibworkCreateTaskReponse | solana-agent-kit

    Interface GibworkCreateTaskReponse

    interface GibworkCreateTaskReponse {
        signature?: string;
        status: "success" | "error";
        taskId?: string;
    }

    Properties

    signature?: string
    status: "success" | "error"
    taskId?: string
    +

    Properties

    signature?: string
    status: "success" | "error"
    taskId?: string
    diff --git a/docs/interfaces/JupiterTokenData.html b/docs/interfaces/JupiterTokenData.html index 7d6d5cc..36352ec 100644 --- a/docs/interfaces/JupiterTokenData.html +++ b/docs/interfaces/JupiterTokenData.html @@ -1,4 +1,4 @@ -JupiterTokenData | solana-agent-kit

    Interface JupiterTokenData

    interface JupiterTokenData {
        address: string;
        daily_volume: number;
        decimals: number;
        extensions: { coingeckoId?: string };
        freeze_authority: null | string;
        logoURI: string;
        mint_authority: null | string;
        name: string;
        permanent_delegate: null | string;
        symbol: string;
        tags: string[];
    }

    Properties

    address +JupiterTokenData | solana-agent-kit

    Interface JupiterTokenData

    interface JupiterTokenData {
        address: string;
        daily_volume: number;
        decimals: number;
        extensions: { coingeckoId?: string };
        freeze_authority: null | string;
        logoURI: string;
        mint_authority: null | string;
        name: string;
        permanent_delegate: null | string;
        symbol: string;
        tags: string[];
    }

    Properties

    address: string
    daily_volume: number
    decimals: number
    extensions: { coingeckoId?: string }
    freeze_authority: null | string
    logoURI: string
    mint_authority: null | string
    name: string
    permanent_delegate: null | string
    symbol: string
    tags: string[]
    +

    Properties

    address: string
    daily_volume: number
    decimals: number
    extensions: { coingeckoId?: string }
    freeze_authority: null | string
    logoURI: string
    mint_authority: null | string
    name: string
    permanent_delegate: null | string
    symbol: string
    tags: string[]
    diff --git a/docs/interfaces/LuloAccountDetailsResponse.html b/docs/interfaces/LuloAccountDetailsResponse.html index 99bce11..098cdff 100644 --- a/docs/interfaces/LuloAccountDetailsResponse.html +++ b/docs/interfaces/LuloAccountDetailsResponse.html @@ -1,6 +1,6 @@ LuloAccountDetailsResponse | solana-agent-kit

    Interface LuloAccountDetailsResponse

    Lulo Account Details response format

    -
    interface LuloAccountDetailsResponse {
        interestEarned: number;
        realtimeApy: number;
        settings: {
            allowedProtocols: null | string;
            homebase: null | string;
            minimumRate: string;
            owner: string;
        };
        totalValue: number;
    }

    Properties

    interface LuloAccountDetailsResponse {
        interestEarned: number;
        realtimeApy: number;
        settings: {
            allowedProtocols: null | string;
            homebase: null | string;
            minimumRate: string;
            owner: string;
        };
        totalValue: number;
    }

    Properties

    interestEarned: number
    realtimeApy: number
    settings: {
        allowedProtocols: null | string;
        homebase: null | string;
        minimumRate: string;
        owner: string;
    }
    totalValue: number
    +

    Properties

    interestEarned: number
    realtimeApy: number
    settings: {
        allowedProtocols: null | string;
        homebase: null | string;
        minimumRate: string;
        owner: string;
    }
    totalValue: number
    diff --git a/docs/interfaces/MintCollectionNFTResponse.html b/docs/interfaces/MintCollectionNFTResponse.html index 253fb78..d6ac59d 100644 --- a/docs/interfaces/MintCollectionNFTResponse.html +++ b/docs/interfaces/MintCollectionNFTResponse.html @@ -1,3 +1,3 @@ -MintCollectionNFTResponse | solana-agent-kit

    Interface MintCollectionNFTResponse

    interface MintCollectionNFTResponse {
        metadata: PublicKey;
        mint: PublicKey;
    }

    Properties

    metadata +MintCollectionNFTResponse | solana-agent-kit

    Interface MintCollectionNFTResponse

    interface MintCollectionNFTResponse {
        metadata: PublicKey;
        mint: PublicKey;
    }

    Properties

    Properties

    metadata: PublicKey
    mint: PublicKey
    +

    Properties

    metadata: PublicKey
    mint: PublicKey
    diff --git a/docs/interfaces/OrderParams.html b/docs/interfaces/OrderParams.html index 97d2aee..c86dede 100644 --- a/docs/interfaces/OrderParams.html +++ b/docs/interfaces/OrderParams.html @@ -1,4 +1,4 @@ -OrderParams | solana-agent-kit

    Interface OrderParams

    interface OrderParams {
        price: number;
        quantity: number;
        side: string;
    }

    Properties

    price +OrderParams | solana-agent-kit

    Interface OrderParams

    interface OrderParams {
        price: number;
        quantity: number;
        side: string;
    }

    Properties

    Properties

    price: number
    quantity: number
    side: string
    +

    Properties

    price: number
    quantity: number
    side: string
    diff --git a/docs/interfaces/PumpFunTokenOptions.html b/docs/interfaces/PumpFunTokenOptions.html index 00067df..a2d5e9e 100644 --- a/docs/interfaces/PumpFunTokenOptions.html +++ b/docs/interfaces/PumpFunTokenOptions.html @@ -1,7 +1,7 @@ -PumpFunTokenOptions | solana-agent-kit

    Interface PumpFunTokenOptions

    interface PumpFunTokenOptions {
        initialLiquiditySOL?: number;
        priorityFee?: number;
        slippageBps?: number;
        telegram?: string;
        twitter?: string;
        website?: string;
    }

    Properties

    initialLiquiditySOL? +PumpFunTokenOptions | solana-agent-kit

    Interface PumpFunTokenOptions

    interface PumpFunTokenOptions {
        initialLiquiditySOL?: number;
        priorityFee?: number;
        slippageBps?: number;
        telegram?: string;
        twitter?: string;
        website?: string;
    }

    Properties

    initialLiquiditySOL?: number
    priorityFee?: number
    slippageBps?: number
    telegram?: string
    twitter?: string
    website?: string
    +

    Properties

    initialLiquiditySOL?: number
    priorityFee?: number
    slippageBps?: number
    telegram?: string
    twitter?: string
    website?: string
    diff --git a/docs/interfaces/PumpfunLaunchResponse.html b/docs/interfaces/PumpfunLaunchResponse.html index 2caabdc..94ff87e 100644 --- a/docs/interfaces/PumpfunLaunchResponse.html +++ b/docs/interfaces/PumpfunLaunchResponse.html @@ -1,5 +1,5 @@ -PumpfunLaunchResponse | solana-agent-kit

    Interface PumpfunLaunchResponse

    interface PumpfunLaunchResponse {
        error?: string;
        metadataUri?: string;
        mint: string;
        signature: string;
    }

    Properties

    error? +PumpfunLaunchResponse | solana-agent-kit

    Interface PumpfunLaunchResponse

    interface PumpfunLaunchResponse {
        error?: string;
        metadataUri?: string;
        mint: string;
        signature: string;
    }

    Properties

    error?: string
    metadataUri?: string
    mint: string
    signature: string
    +

    Properties

    error?: string
    metadataUri?: string
    mint: string
    signature: string
    diff --git a/docs/interfaces/PythFetchPriceResponse.html b/docs/interfaces/PythFetchPriceResponse.html index 3dc346f..36750a0 100644 --- a/docs/interfaces/PythFetchPriceResponse.html +++ b/docs/interfaces/PythFetchPriceResponse.html @@ -1,7 +1,7 @@ -PythFetchPriceResponse | solana-agent-kit

    Interface PythFetchPriceResponse

    interface PythFetchPriceResponse {
        code?: string;
        message?: string;
        price?: string;
        priceFeedID?: string;
        status: "success" | "error";
        tokenSymbol: string;
    }

    Properties

    code? +PythFetchPriceResponse | solana-agent-kit

    Interface PythFetchPriceResponse

    interface PythFetchPriceResponse {
        code?: string;
        message?: string;
        price?: string;
        priceFeedID?: string;
        status: "success" | "error";
        tokenSymbol: string;
    }

    Properties

    code?: string
    message?: string
    price?: string
    priceFeedID?: string
    status: "success" | "error"
    tokenSymbol: string
    +

    Properties

    code?: string
    message?: string
    price?: string
    priceFeedID?: string
    status: "success" | "error"
    tokenSymbol: string
    diff --git a/docs/interfaces/PythPriceFeedIDItem.html b/docs/interfaces/PythPriceFeedIDItem.html index 360af6b..6930839 100644 --- a/docs/interfaces/PythPriceFeedIDItem.html +++ b/docs/interfaces/PythPriceFeedIDItem.html @@ -1,3 +1,3 @@ -PythPriceFeedIDItem | solana-agent-kit

    Interface PythPriceFeedIDItem

    interface PythPriceFeedIDItem {
        attributes: { asset_type: string; base: string };
        id: string;
    }

    Properties

    attributes +PythPriceFeedIDItem | solana-agent-kit

    Interface PythPriceFeedIDItem

    interface PythPriceFeedIDItem {
        attributes: { asset_type: string; base: string };
        id: string;
    }

    Properties

    Properties

    attributes: { asset_type: string; base: string }
    id: string
    +

    Properties

    attributes: { asset_type: string; base: string }
    id: string
    diff --git a/docs/interfaces/PythPriceItem.html b/docs/interfaces/PythPriceItem.html index 859ba51..477b285 100644 --- a/docs/interfaces/PythPriceItem.html +++ b/docs/interfaces/PythPriceItem.html @@ -1,3 +1,3 @@ -PythPriceItem | solana-agent-kit

    Interface PythPriceItem

    interface PythPriceItem {
        binary: { data: string[]; encoding: string };
        parsed: [
            {
                ema_price: {
                    conf: string;
                    expo: number;
                    price: string;
                    publish_time: number;
                };
                id: string;
                metadata: {
                    prev_publish_time: number;
                    proof_available_time: number;
                    slot: number;
                };
                price: {
                    conf: string;
                    expo: number;
                    price: string;
                    publish_time: number;
                };
            }[],
        ];
    }

    Properties

    binary +PythPriceItem | solana-agent-kit

    Interface PythPriceItem

    interface PythPriceItem {
        binary: { data: string[]; encoding: string };
        parsed: [
            {
                ema_price: {
                    conf: string;
                    expo: number;
                    price: string;
                    publish_time: number;
                };
                id: string;
                metadata: {
                    prev_publish_time: number;
                    proof_available_time: number;
                    slot: number;
                };
                price: {
                    conf: string;
                    expo: number;
                    price: string;
                    publish_time: number;
                };
            }[],
        ];
    }

    Properties

    Properties

    binary: { data: string[]; encoding: string }
    parsed: [
        {
            ema_price: {
                conf: string;
                expo: number;
                price: string;
                publish_time: number;
            };
            id: string;
            metadata: {
                prev_publish_time: number;
                proof_available_time: number;
                slot: number;
            };
            price: { conf: string; expo: number; price: string; publish_time: number };
        }[],
    ]
    +

    Properties

    binary: { data: string[]; encoding: string }
    parsed: [
        {
            ema_price: {
                conf: string;
                expo: number;
                price: string;
                publish_time: number;
            };
            id: string;
            metadata: {
                prev_publish_time: number;
                proof_available_time: number;
                slot: number;
            };
            price: { conf: string; expo: number; price: string; publish_time: number };
        }[],
    ]
    diff --git a/docs/interfaces/TokenCheck.html b/docs/interfaces/TokenCheck.html index 5ce7351..2cc6151 100644 --- a/docs/interfaces/TokenCheck.html +++ b/docs/interfaces/TokenCheck.html @@ -1,5 +1,5 @@ -TokenCheck | solana-agent-kit

    Interface TokenCheck

    interface TokenCheck {
        risks: {
            description: string;
            level: string;
            name: string;
            score: number;
        }[];
        score: number;
        tokenProgram: string;
        tokenType: string;
    }

    Properties

    risks +TokenCheck | solana-agent-kit

    Interface TokenCheck

    interface TokenCheck {
        risks: {
            description: string;
            level: string;
            name: string;
            score: number;
        }[];
        score: number;
        tokenProgram: string;
        tokenType: string;
    }

    Properties

    risks: { description: string; level: string; name: string; score: number }[]
    score: number
    tokenProgram: string
    tokenType: string
    +

    Properties

    risks: { description: string; level: string; name: string; score: number }[]
    score: number
    tokenProgram: string
    tokenType: string
    diff --git a/docs/types/Handler.html b/docs/types/Handler.html index caa75d1..79d7158 100644 --- a/docs/types/Handler.html +++ b/docs/types/Handler.html @@ -1,2 +1,2 @@ Handler | solana-agent-kit

    Type Alias Handler

    Handler: (
        agent: SolanaAgentKit,
        input: Record<string, any>,
    ) => Promise<Record<string, any>>

    Handler function type for executing the action

    -

    Type declaration

      • (
            agent: SolanaAgentKit,
            input: Record<string, any>,
        ): Promise<Record<string, any>>
      • Parameters

        Returns Promise<Record<string, any>>

    +

    Type declaration

      • (
            agent: SolanaAgentKit,
            input: Record<string, any>,
        ): Promise<Record<string, any>>
      • Parameters

        Returns Promise<Record<string, any>>

    diff --git a/docs/variables/actions.html b/docs/variables/actions.html index 7b3f78d..7721160 100644 --- a/docs/variables/actions.html +++ b/docs/variables/actions.html @@ -1 +1 @@ -ACTIONS | solana-agent-kit

    Variable ACTIONSConst

    ACTIONS: {
        BALANCE_ACTION: Action;
        CREATE_GIBWORK_TASK_ACTION: Action;
        CREATE_IMAGE_ACTION: Action;
        CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION: Action;
        DEPLOY_COLLECTION_ACTION: Action;
        DEPLOY_TOKEN_ACTION: Action;
        FETCH_PRICE_ACTION: Action;
        GET_ALL_DOMAINS_TLDS_ACTION: Action;
        GET_ALL_REGISTERED_ALL_DOMAINS_ACTION: Action;
        GET_MAIN_ALL_DOMAINS_DOMAIN_ACTION: Action;
        GET_OWNED_ALL_DOMAINS_ACTION: Action;
        GET_OWNED_DOMAINS_FOR_TLD_ACTION: Action;
        GET_PRIMARY_DOMAIN_ACTION: Action;
        GET_TOKEN_DATA_ACTION: Action;
        GET_TPS_ACTION: Action;
        LAUNCH_PUMPFUN_TOKEN_ACTION: Action;
        LEND_ASSET_ACTION: Action;
        MINT_NFT_ACTION: Action;
        PYTH_FETCH_PRICE_ACTION: Action;
        RAYDIUM_CREATE_AMM_V4_ACTION: Action;
        RAYDIUM_CREATE_CPMM_ACTION: Action;
        REGISTER_DOMAIN_ACTION: Action;
        REQUEST_FUNDS_ACTION: Action;
        RESOLVE_DOMAIN_ACTION: Action;
        RESOLVE_SOL_DOMAIN_ACTION: Action;
        STAKE_WITH_JUP_ACTION: Action;
        STAKE_WITH_SOLAYER_ACTION: Action;
        TRADE_ACTION: Action;
        TRANSFER_ACTION: Action;
        WALLET_ADDRESS_ACTION: Action;
    } = ...

    Type declaration

    • BALANCE_ACTION: Action
    • CREATE_GIBWORK_TASK_ACTION: Action
    • CREATE_IMAGE_ACTION: Action
    • CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION: Action
    • DEPLOY_COLLECTION_ACTION: Action
    • DEPLOY_TOKEN_ACTION: Action
    • FETCH_PRICE_ACTION: Action
    • GET_ALL_DOMAINS_TLDS_ACTION: Action
    • GET_ALL_REGISTERED_ALL_DOMAINS_ACTION: Action
    • GET_MAIN_ALL_DOMAINS_DOMAIN_ACTION: Action
    • GET_OWNED_ALL_DOMAINS_ACTION: Action
    • GET_OWNED_DOMAINS_FOR_TLD_ACTION: Action
    • GET_PRIMARY_DOMAIN_ACTION: Action
    • GET_TOKEN_DATA_ACTION: Action
    • GET_TPS_ACTION: Action
    • LAUNCH_PUMPFUN_TOKEN_ACTION: Action
    • LEND_ASSET_ACTION: Action
    • MINT_NFT_ACTION: Action
    • PYTH_FETCH_PRICE_ACTION: Action
    • RAYDIUM_CREATE_AMM_V4_ACTION: Action
    • RAYDIUM_CREATE_CPMM_ACTION: Action
    • REGISTER_DOMAIN_ACTION: Action
    • REQUEST_FUNDS_ACTION: Action
    • RESOLVE_DOMAIN_ACTION: Action
    • RESOLVE_SOL_DOMAIN_ACTION: Action
    • STAKE_WITH_JUP_ACTION: Action
    • STAKE_WITH_SOLAYER_ACTION: Action
    • TRADE_ACTION: Action
    • TRANSFER_ACTION: Action
    • WALLET_ADDRESS_ACTION: Action
    +ACTIONS | solana-agent-kit

    Variable ACTIONSConst

    ACTIONS: {
        BALANCE_ACTION: Action;
        CREATE_GIBWORK_TASK_ACTION: Action;
        CREATE_IMAGE_ACTION: Action;
        CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION: Action;
        DEPLOY_COLLECTION_ACTION: Action;
        DEPLOY_TOKEN_ACTION: Action;
        FETCH_PRICE_ACTION: Action;
        GET_ALL_DOMAINS_TLDS_ACTION: Action;
        GET_ALL_REGISTERED_ALL_DOMAINS_ACTION: Action;
        GET_MAIN_ALL_DOMAINS_DOMAIN_ACTION: Action;
        GET_OWNED_ALL_DOMAINS_ACTION: Action;
        GET_OWNED_DOMAINS_FOR_TLD_ACTION: Action;
        GET_PRIMARY_DOMAIN_ACTION: Action;
        GET_TOKEN_DATA_ACTION: Action;
        GET_TPS_ACTION: Action;
        LAUNCH_PUMPFUN_TOKEN_ACTION: Action;
        LEND_ASSET_ACTION: Action;
        MINT_NFT_ACTION: Action;
        PYTH_FETCH_PRICE_ACTION: Action;
        RAYDIUM_CREATE_AMM_V4_ACTION: Action;
        RAYDIUM_CREATE_CPMM_ACTION: Action;
        REGISTER_DOMAIN_ACTION: Action;
        REQUEST_FUNDS_ACTION: Action;
        RESOLVE_DOMAIN_ACTION: Action;
        RESOLVE_SOL_DOMAIN_ACTION: Action;
        STAKE_WITH_JUP_ACTION: Action;
        STAKE_WITH_SOLAYER_ACTION: Action;
        TRADE_ACTION: Action;
        TRANSFER_ACTION: Action;
        WALLET_ADDRESS_ACTION: Action;
    } = ...

    Type declaration

    • BALANCE_ACTION: Action
    • CREATE_GIBWORK_TASK_ACTION: Action
    • CREATE_IMAGE_ACTION: Action
    • CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION: Action
    • DEPLOY_COLLECTION_ACTION: Action
    • DEPLOY_TOKEN_ACTION: Action
    • FETCH_PRICE_ACTION: Action
    • GET_ALL_DOMAINS_TLDS_ACTION: Action
    • GET_ALL_REGISTERED_ALL_DOMAINS_ACTION: Action
    • GET_MAIN_ALL_DOMAINS_DOMAIN_ACTION: Action
    • GET_OWNED_ALL_DOMAINS_ACTION: Action
    • GET_OWNED_DOMAINS_FOR_TLD_ACTION: Action
    • GET_PRIMARY_DOMAIN_ACTION: Action
    • GET_TOKEN_DATA_ACTION: Action
    • GET_TPS_ACTION: Action
    • LAUNCH_PUMPFUN_TOKEN_ACTION: Action
    • LEND_ASSET_ACTION: Action
    • MINT_NFT_ACTION: Action
    • PYTH_FETCH_PRICE_ACTION: Action
    • RAYDIUM_CREATE_AMM_V4_ACTION: Action
    • RAYDIUM_CREATE_CPMM_ACTION: Action
    • REGISTER_DOMAIN_ACTION: Action
    • REQUEST_FUNDS_ACTION: Action
    • RESOLVE_DOMAIN_ACTION: Action
    • RESOLVE_SOL_DOMAIN_ACTION: Action
    • STAKE_WITH_JUP_ACTION: Action
    • STAKE_WITH_SOLAYER_ACTION: Action
    • TRADE_ACTION: Action
    • TRANSFER_ACTION: Action
    • WALLET_ADDRESS_ACTION: Action
    diff --git a/src/tools/pyth_fetch_price.ts b/src/tools/pyth_fetch_price.ts index 96ed636..0946af4 100644 --- a/src/tools/pyth_fetch_price.ts +++ b/src/tools/pyth_fetch_price.ts @@ -11,7 +11,7 @@ export async function fetchPythPriceFeedID( ): Promise { try { const stableHermesServiceUrl: string = "https://hermes.pyth.network"; - + const response = await fetch( `${stableHermesServiceUrl}/v2/price_feeds?query=${tokenSymbol}&asset_type=crypto`, ); @@ -77,10 +77,12 @@ export async function fetchPythPrice(feedID: string): Promise { const adjustedPrice = price.mul(new BN(100)); const divisor = new BN(10).pow(new BN(-exponent)); const scaledPrice = adjustedPrice.div(divisor); - + const priceStr = scaledPrice.toString(); const formattedPrice = `${priceStr.slice(0, -2)}.${priceStr.slice(-2)}`; - return formattedPrice.startsWith('.') ? `0${formattedPrice}` : formattedPrice; + return formattedPrice.startsWith(".") + ? `0${formattedPrice}` + : formattedPrice; } const scaledPrice = price.div(new BN(10).pow(new BN(exponent)));