get_swap_data.tsā¢1.06 kB
import { createOKXClient } from "./../../shared/common/okxClient";
import { BaseWallet } from "./../../shared/common/wallet";
import { ENV } from "./../../shared/env";
import {
OKXDexClient,
SwapParams,
SwapResponseData,
} from "@okx-dex/okx-dex-sdk";
import { Connection, Keypair } from "@solana/web3.js";
import bs58 from "bs58";
export async function get_swap_data(params: SwapParams): 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 swap_data: SwapResponseData = await client.dex.getSwapData({
...params,
});
return JSON.stringify({
status: "success",
data: swap_data,
message: "OKX_DEX_GET_QUOTE_SUCCEEDED",
});
} catch (error: any) {
return JSON.stringify({
status: "error",
error,
message: "OKX_DEX_GET_QUOTE_ERROR",
});
}
}