2025-02-17 15:21:20 +07:00

36 lines
878 B
JavaScript

import { Tool } from "langchain/tools"
export class SolanaStakeTool extends Tool {
name = "solana_stake"
description = `This tool can be used to stake your SOL (Solana), also called as SOL staking or liquid staking.
Inputs ( input is a JSON string ):
amount: number, eg 1 or 0.01 (required)`
constructor(solanaKit) {
super()
this.solanaKit = solanaKit
}
async _call(input) {
try {
const parsedInput = JSON.parse(input) || Number(input)
const tx = await this.solanaKit.stake(parsedInput.amount)
return JSON.stringify({
status: "success",
message: "Staked successfully",
transaction: tx,
amount: parsedInput.amount
})
} catch (error) {
return JSON.stringify({
status: "error",
message: error.message,
code: error.code || "UNKNOWN_ERROR"
})
}
}
}