get_quote.tsā¢1.07 kB
import { createOKXClient } from "./../../shared/common/okxClient";
import { BaseWallet } from "./../../shared/common/wallet";
import { ENV } from "./../../shared/env";
import {
APIResponse,
OKXDexClient,
QuoteData,
QuoteParams,
} from "@okx-dex/okx-dex-sdk";
import { Connection, Keypair } from "@solana/web3.js";
import bs58 from "bs58";
export async function get_quote(params: QuoteParams): Promise<string> {
try {
const connection = new Connection(ENV.RPC_ENDPOINT_URI);
const keypair = Keypair.fromSecretKey(bs58.decode(ENV.WALLET_PRIVATE_KEY));
const baseWallet = new BaseWallet(keypair, connection);
const client: OKXDexClient = createOKXClient(baseWallet);
const quotes: APIResponse<QuoteData> = await client.dex.getQuote({
...params,
});
return JSON.stringify({
status: "success",
data: quotes,
message: "OKX_DEX_GET_SWAP_DATA_SUCCEEDED",
});
} catch (error: any) {
return JSON.stringify({
status: "error",
error,
message: "OKX_DEX_GET_SWAP_DATA_ERROR",
});
}
}