From 3d46a76eaf6f8fc4364fbaa75ea6d6041097d98b Mon Sep 17 00:00:00 2001 From: willclarktech Date: Wed, 7 Apr 2021 17:56:13 +0200 Subject: [PATCH 1/3] tendermint-rpc: Fix incorrect RPC types for v0.34 --- .../src/tendermint34/adaptors/v0-34/responses.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts index 4a72eb8b..860c1de2 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts @@ -263,7 +263,7 @@ interface RpcBlockId { /** hex encoded */ readonly hash: string; readonly parts: { - readonly total: string; + readonly total: number; /** hex encoded */ readonly hash: string; }; @@ -273,7 +273,7 @@ function decodeBlockId(data: RpcBlockId): responses.BlockId { return { hash: fromHex(assertNotEmpty(data.hash)), parts: { - total: Integer.parse(assertNotEmpty(data.parts.total)), + total: assertNotEmpty(data.parts.total), hash: fromHex(assertNotEmpty(data.parts.hash)), }, }; @@ -296,8 +296,6 @@ interface RpcHeader { readonly chain_id: string; readonly height: string; readonly time: string; - readonly num_txs: string; - readonly total_txs: string; readonly last_block_id: RpcBlockId; From 230ae04dd3d205c3992c5a6f169d7a1b487c3c37 Mon Sep 17 00:00:00 2001 From: willclarktech Date: Wed, 7 Apr 2021 17:56:40 +0200 Subject: [PATCH 2/3] tendermint-rpc: Fill out RPC BlockMeta type for v0.34 --- .../src/tendermint34/adaptors/v0-34/responses.ts | 4 ++++ packages/tendermint-rpc/src/tendermint34/responses.ts | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts index 860c1de2..cd3e12e7 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptors/v0-34/responses.ts @@ -346,13 +346,17 @@ function decodeHeader(data: RpcHeader): responses.Header { interface RpcBlockMeta { readonly block_id: RpcBlockId; + readonly block_size: string; readonly header: RpcHeader; + readonly num_txs: string; } function decodeBlockMeta(data: RpcBlockMeta): responses.BlockMeta { return { blockId: decodeBlockId(data.block_id), + blockSize: Integer.parse(assertNotEmpty(data.block_size)), header: decodeHeader(data.header), + numTxs: Integer.parse(assertNotEmpty(data.num_txs)), }; } diff --git a/packages/tendermint-rpc/src/tendermint34/responses.ts b/packages/tendermint-rpc/src/tendermint34/responses.ts index 55f1dbcd..229db65a 100644 --- a/packages/tendermint-rpc/src/tendermint34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/responses.ts @@ -195,9 +195,9 @@ export interface TxProof { export interface BlockMeta { readonly blockId: BlockId; + readonly blockSize: number; readonly header: Header; - // TODO: Add blockSize (e.g "block_size": "471") - // TODO: Add numTxs (e.g "num_txs": "0") + readonly numTxs: number; } export interface BlockId { From 0f78af8ef0afbfa8eda60440bf3cea72199c0b8a Mon Sep 17 00:00:00 2001 From: willclarktech Date: Wed, 7 Apr 2021 18:07:07 +0200 Subject: [PATCH 3/3] tendermint-rpc: Update tests for block meta --- .../src/tendermint34/tendermint34client.spec.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts index 90598acc..1f5b1666 100644 --- a/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/tendermint34client.spec.ts @@ -275,19 +275,18 @@ function defaultTestSuite(rpcFactory: () => RpcClient, expected: ExpectedValues) expect(blockchain.blockMetas.length).toBeGreaterThanOrEqual(1); const meta = blockchain.blockMetas[0]; - // TODO: check all the fields - expect(meta).toEqual({ - blockId: jasmine.objectContaining({}), - // block_size: jasmine.stringMatching(nonNegativeIntegerMatcher), - // num_txs: jasmine.stringMatching(nonNegativeIntegerMatcher), - header: jasmine.objectContaining({ + expect(meta.blockId).toEqual(jasmine.objectContaining({})); + expect(meta.blockSize).toBeInstanceOf(Number); + expect(meta.header).toEqual( + jasmine.objectContaining({ version: { block: expected.blockVersion, app: expected.appVersion, }, chainId: jasmine.stringMatching(chainIdMatcher), }), - }); + ); + expect(meta.numTxs).toBeInstanceOf(Number); client.disconnect(); });