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