From dde7d591ba5b35eb77f8a809ae51f408877a22af Mon Sep 17 00:00:00 2001 From: Daniele Ricci Date: Tue, 19 Nov 2024 15:48:02 +0100 Subject: [PATCH] feat: add optional CBOR representation to GET_TRANSACTION --- README.md | 4 +++- src/methods/get-transaction.ts | 9 +++++++-- src/server.ts | 2 +- src/types/message.ts | 1 + src/utils/message.ts | 1 + 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3d9aba0e..eabb6179 100644 --- a/README.md +++ b/README.md @@ -550,7 +550,7 @@ Payload contains [block data](https://docs.blockfrost.io/#tag/cardano--blocks/GE ### GET_TRANSACTION -Returns information about a specified transaction. +Returns information about a specified transaction, optionally with CBOR representation. Input message: @@ -560,6 +560,7 @@ Input message: "command": "GET_TRANSACTION"; "params": { "txId": string; // transaction id + "cbor":? boolean; } } ``` @@ -601,6 +602,7 @@ Payload contains [transaction data](https://docs.blockfrost.io/#tag/cardano--tra asset_mint_or_burn_count: number; redeemer_count: number; valid_contract: boolean; + cbor?: string; }; } ``` diff --git a/src/methods/get-transaction.ts b/src/methods/get-transaction.ts index a9cd9d2f..5a5ea3a5 100644 --- a/src/methods/get-transaction.ts +++ b/src/methods/get-transaction.ts @@ -2,8 +2,13 @@ import { prepareMessage } from '../utils/message.js'; import { fetchTransactionData } from '../utils/transaction.js'; import { MessageId } from '../types/message.js'; -export default async (id: MessageId, clientId: string, txId: string): Promise => { - const data = await fetchTransactionData(txId); +export default async ( + id: MessageId, + clientId: string, + txId: string, + cbor?: boolean, +): Promise => { + const data = await fetchTransactionData(txId, cbor); const message = prepareMessage({ id, clientId, data }); return message; diff --git a/src/server.ts b/src/server.ts index bc247ca6..28850b11 100644 --- a/src/server.ts +++ b/src/server.ts @@ -208,7 +208,7 @@ wss.on('connection', async (ws: Server.Ws) => { case 'GET_TRANSACTION': { validators.GET_TRANSACTION(params); - response = await getTransaction(id, clientId, params.txId); + response = await getTransaction(id, clientId, params.txId, params.cbor); break; } diff --git a/src/types/message.ts b/src/types/message.ts index 0a025c58..050200db 100644 --- a/src/types/message.ts +++ b/src/types/message.ts @@ -41,6 +41,7 @@ export type Messages = BaseMessage & command: 'GET_TRANSACTION'; params: { txId: string; + cbor?: boolean; }; } | { diff --git a/src/utils/message.ts b/src/utils/message.ts index 9b414f67..a299dbd5 100644 --- a/src/utils/message.ts +++ b/src/utils/message.ts @@ -52,6 +52,7 @@ const schemas: { [k in Validators]: { properties: unknown; required?: string[] } GET_TRANSACTION: { properties: { txId: { type: 'string' }, + cbor: { type: 'boolean' }, }, required: ['txId'], },