diff --git a/src/agent/index.ts b/src/agent/index.ts index 9fe2c17..c4a32db 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -38,7 +38,6 @@ import { rock_paper_scissor, create_TipLink, listNFTForSale, - buyNFT, cancelListing, } from "../tools"; import { @@ -360,10 +359,6 @@ export class SolanaAgentKit { return listNFTForSale(this, nftMint, price); } - async tensorBuyNFT(nftMint: PublicKey, maxPrice: number): Promise { - return buyNFT(this, nftMint, maxPrice); - } - async tensorCancelListing(nftMint: PublicKey): Promise { return cancelListing(this, nftMint); } diff --git a/src/langchain/index.ts b/src/langchain/index.ts index 27e5cc1..2feab35 100644 --- a/src/langchain/index.ts +++ b/src/langchain/index.ts @@ -1380,43 +1380,6 @@ export class SolanaListNFTForSaleTool extends Tool { } } -export class SolanaBuyNFTTool extends Tool { - name = "solana_buy_nft"; - description = `Buy an NFT listed on Tensor Trade. - - Inputs (input is a JSON string): - nftMint: string, the mint address of the NFT (required) - maxPrice: number, maximum price willing to pay in SOL (required)`; - - constructor(private solanaKit: SolanaAgentKit) { - super(); - } - - protected async _call(input: string): Promise { - try { - const parsedInput = JSON.parse(input); - - const tx = await this.solanaKit.tensorBuyNFT( - new PublicKey(parsedInput.nftMint), - parsedInput.maxPrice, - ); - - return JSON.stringify({ - status: "success", - message: "NFT purchased successfully", - transaction: tx, - maxPrice: parsedInput.maxPrice, - nftMint: parsedInput.nftMint, - }); - } catch (error: any) { - return JSON.stringify({ - status: "error", - message: error.message, - code: error.code || "UNKNOWN_ERROR", - }); - } - } -} export class SolanaCancelNFTListingTool extends Tool { name = "solana_cancel_nft_listing"; @@ -1490,7 +1453,6 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) { new SolanaRockPaperScissorsTool(solanaKit), new SolanaTipLinkTool(solanaKit), new SolanaListNFTForSaleTool(solanaKit), - new SolanaBuyNFTTool(solanaKit), new SolanaCancelNFTListingTool(solanaKit), ]; } diff --git a/src/tools/tensor_trade.ts b/src/tools/tensor_trade.ts index 030536f..9be8a97 100644 --- a/src/tools/tensor_trade.ts +++ b/src/tools/tensor_trade.ts @@ -72,44 +72,6 @@ export async function listNFTForSale( } } -export async function buyNFT( - agent: SolanaAgentKit, - nftMint: PublicKey, - maxPrice: number, -): Promise { - const provider = new AnchorProvider( - agent.connection, - new Wallet(agent.wallet), - AnchorProvider.defaultOptions(), - ); - - const tensorSwapSdk = new TensorSwapSDK({ provider }); - const maxPriceInLamports = new BN(maxPrice * 1e9); - const nftBuyerAcc = await getAssociatedTokenAddress( - nftMint, - agent.wallet_address, - ); - - const { tx } = await tensorSwapSdk.buySingleListingT22({ - nftMint, - nftBuyerAcc, - owner: agent.wallet_address, - buyer: agent.wallet_address, - maxPrice: maxPriceInLamports, - takerBroker: null, - compute: null, - priorityMicroLamports: null, - transferHook: null, - }); - - const transaction = new Transaction(); - transaction.add(...tx.ixs); - return await agent.connection.sendTransaction(transaction, [ - agent.wallet, - ...tx.extraSigners, - ]); -} - export async function cancelListing( agent: SolanaAgentKit, nftMint: PublicKey,