From e161e31094901d8c832cfeed597c2eb355c02ab7 Mon Sep 17 00:00:00 2001 From: Hanssen0 Date: Mon, 26 Aug 2024 11:58:27 +0800 Subject: [PATCH] feat(core): extra infos in the response of getTransaction --- packages/core/src/client/clientTypes.ts | 5 +++++ .../core/src/client/jsonRpc/transformers.ts | 19 ++++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/packages/core/src/client/clientTypes.ts b/packages/core/src/client/clientTypes.ts index ed84777b..a5a4ae93 100644 --- a/packages/core/src/client/clientTypes.ts +++ b/packages/core/src/client/clientTypes.ts @@ -28,6 +28,11 @@ export type TransactionStatus = export type ClientTransactionResponse = { transaction: Transaction; status: TransactionStatus; + cycles?: Num; + blockHash?: Hex; + blockNumber?: Num; + txIndex?: Num; + reason?: string; }; /** diff --git a/packages/core/src/client/jsonRpc/transformers.ts b/packages/core/src/client/jsonRpc/transformers.ts index bfa4ae2c..34dbb8a6 100644 --- a/packages/core/src/client/jsonRpc/transformers.ts +++ b/packages/core/src/client/jsonRpc/transformers.ts @@ -19,7 +19,7 @@ import { depTypeFrom, hashTypeFrom, } from "../../ckb/index.js"; -import { Hex } from "../../hex/index.js"; +import { Hex, HexLike, hexFrom } from "../../hex/index.js"; import { NumLike, numFrom, numToHex } from "../../num/index.js"; import { apply } from "../../utils/index.js"; import { @@ -172,10 +172,18 @@ export class JsonRpcTransformers { }); } static transactionResponseTo({ - tx_status: { status }, + cycles, + tx_status: { status, block_number, block_hash, tx_index, reason }, transaction, }: { - tx_status: { status: TransactionStatus }; + cycles?: NumLike; + tx_status: { + status: TransactionStatus; + block_hash?: HexLike; + tx_index?: NumLike; + block_number?: NumLike; + reason?: string; + }; transaction: JsonRpcTransaction | null; }): ClientTransactionResponse | undefined { if (transaction == null) { @@ -185,6 +193,11 @@ export class JsonRpcTransformers { return { transaction: JsonRpcTransformers.transactionTo(transaction), status, + cycles: apply(numFrom, cycles), + blockHash: apply(hexFrom, block_hash), + blockNumber: apply(numFrom, block_number), + txIndex: apply(numFrom, tx_index), + reason, }; } static blockHeaderTo(header: JsonRpcBlockHeader): ClientBlockHeader {