diff --git a/packages/plugin-iq6900/src/functions/bringIQData.ts b/packages/plugin-iq6900/src/functions/bringIQData.ts index a87c85200c9..b4139726895 100644 --- a/packages/plugin-iq6900/src/functions/bringIQData.ts +++ b/packages/plugin-iq6900/src/functions/bringIQData.ts @@ -17,6 +17,12 @@ interface TransactionData { before_tx: string; } +interface TransactionDataResponse { + code: string; + method: string; + decode_break: number; +} + interface CodeResult { json_data: string; commit_message: string; @@ -82,7 +88,7 @@ async function fetchDBPDA(): Promise { } async function getTransactionData(transactionData: TransactionData): Promise<{ - data: any; + data: TransactionDataResponse | "fail"; before_tx: string; }> { if (!transactionData || !("code" in transactionData)) { @@ -115,6 +121,10 @@ async function extractCommitMessage(dataTxid: string): Promise { return null; } +function isTransactionDataResponse(data: TransactionDataResponse | "fail"): data is TransactionDataResponse { + return data !== "fail" && typeof data === "object" && "code" in data; +} + async function bringCode(dataTxid: string): Promise { const txInfo = await fetchTransactionInfo(dataTxid); if (!txInfo || !txInfo.tail_tx) return ERROR_RESULT; @@ -142,8 +152,8 @@ async function bringCode(dataTxid: string): Promise { const chunkData = await getTransactionData( chunk as TransactionData ); - if (!chunkData.data || chunkData.data === null) { - elizaLogger.error("Chunk data undefined"); + if (!chunkData.data || !isTransactionDataResponse(chunkData.data)) { + elizaLogger.error("Chunk data undefined or invalid"); return ERROR_RESULT; }