From b50563dd7b15239fbcaa143dc6b7bad4e3992972 Mon Sep 17 00:00:00 2001 From: shivaji43 Date: Thu, 26 Dec 2024 21:45:02 +0530 Subject: [PATCH] fix : input for mint address in json --- src/langchain/index.ts | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/langchain/index.ts b/src/langchain/index.ts index 6b2013c..28e66de 100644 --- a/src/langchain/index.ts +++ b/src/langchain/index.ts @@ -1229,6 +1229,7 @@ export class SolanaCreateGibworkTask extends Tool { } } + export class SolanaTipLinkTool extends Tool { name = "solana_tiplink"; description = `Create a TipLink for transferring SOL or SPL tokens. @@ -1243,19 +1244,25 @@ export class SolanaTipLinkTool extends Tool { protected async _call(input: string): Promise { try { - const parts = input.trim().split(/\s+/); - - // Parse amount from the first part - const amount = parseFloat(parts[0]); + // Parse the input JSON string + let parsedInput: { amountSol: string; splmintAddress?: string }; + try { + parsedInput = JSON.parse(input); + } catch (e) { + throw new Error("Invalid input format. Please provide a valid JSON string."); + } + + // Validate amount + const amount = parseFloat(parsedInput.amountSol); if (isNaN(amount) || amount <= 0) { throw new Error("Invalid amount. Please provide a valid positive number."); } - // Check for optional SPL mint address in the second part + // Handle optional SPL mint address let splmintPublicKey: PublicKey | undefined; - if (parts.length > 1) { + if (parsedInput.splmintAddress) { try { - splmintPublicKey = new PublicKey(parts[1]); + splmintPublicKey = new PublicKey(parsedInput.splmintAddress); } catch (e) { throw new Error("Invalid SPL mint address. Please provide a valid Solana public key."); }