import { Tool } from "langchain/tools" export class SolanaCloseEmptyTokenAccounts extends Tool { name = "close_empty_token_accounts" description = `Close all empty spl-token accounts and reclaim the rent` constructor(solanaKit) { super() this.solanaKit = solanaKit } async _call() { try { const { signature, size } = await this.solanaKit.closeEmptyTokenAccounts() return JSON.stringify({ status: "success", message: `${size} accounts closed successfully. ${ size === 48 ? "48 accounts can be closed in a single transaction try again to close more accounts" : "" }`, signature }) } catch (error) { return JSON.stringify({ status: "error", message: error.message, code: error.code || "UNKNOWN_ERROR" }) } } }