diff --git a/packages/tendermint-rpc/src/tendermint34/adaptor/responses.spec.ts b/packages/tendermint-rpc/src/tendermint34/adaptor/responses.spec.ts index 9cb3d251..d00a3120 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptor/responses.spec.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptor/responses.spec.ts @@ -67,7 +67,7 @@ describe("Adaptor Responses", () => { algorithm: "ed25519", data: fromBase64("HjSC7VkhKih6xMhudlqfaFE8ZZnP8RKJPv4iqR7RhcE="), }, - votingPower: undefined, + votingPower: 0, }); }); }); diff --git a/packages/tendermint-rpc/src/tendermint34/adaptor/responses.ts b/packages/tendermint-rpc/src/tendermint34/adaptor/responses.ts index 9413696a..f4ac865f 100644 --- a/packages/tendermint-rpc/src/tendermint34/adaptor/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/adaptor/responses.ts @@ -257,13 +257,14 @@ function decodeConsensusParams(data: RpcConsensusParams): responses.ConsensusPar // for block results interface RpcValidatorUpdate { readonly pub_key: RpcPubkey; + // When omitted, this means zero (see https://github.com/cosmos/cosmjs/issues/1177#issuecomment-1160115080) readonly power?: string; } export function decodeValidatorUpdate(data: RpcValidatorUpdate): responses.ValidatorUpdate { return { pubkey: decodePubkey(assertObject(data.pub_key)), - votingPower: data.power ? Integer.parse(data.power) : undefined, + votingPower: Integer.parse(data.power ?? 0), }; } diff --git a/packages/tendermint-rpc/src/tendermint34/responses.ts b/packages/tendermint-rpc/src/tendermint34/responses.ts index 3ae52527..c9d1ec41 100644 --- a/packages/tendermint-rpc/src/tendermint34/responses.ts +++ b/packages/tendermint-rpc/src/tendermint34/responses.ts @@ -356,7 +356,7 @@ export interface Validator { export interface ValidatorUpdate { readonly pubkey: ValidatorPubkey; - readonly votingPower?: number; + readonly votingPower: number; } export interface ConsensusParams { diff --git a/packages/tendermint-rpc/src/tendermint35/adaptor/responses.spec.ts b/packages/tendermint-rpc/src/tendermint35/adaptor/responses.spec.ts index 9cb3d251..d00a3120 100644 --- a/packages/tendermint-rpc/src/tendermint35/adaptor/responses.spec.ts +++ b/packages/tendermint-rpc/src/tendermint35/adaptor/responses.spec.ts @@ -67,7 +67,7 @@ describe("Adaptor Responses", () => { algorithm: "ed25519", data: fromBase64("HjSC7VkhKih6xMhudlqfaFE8ZZnP8RKJPv4iqR7RhcE="), }, - votingPower: undefined, + votingPower: 0, }); }); }); diff --git a/packages/tendermint-rpc/src/tendermint35/adaptor/responses.ts b/packages/tendermint-rpc/src/tendermint35/adaptor/responses.ts index 90b2db0b..3fd99ce3 100644 --- a/packages/tendermint-rpc/src/tendermint35/adaptor/responses.ts +++ b/packages/tendermint-rpc/src/tendermint35/adaptor/responses.ts @@ -259,13 +259,14 @@ function decodeConsensusParams(data: RpcConsensusParams): responses.ConsensusPar // for block results interface RpcValidatorUpdate { readonly pub_key: RpcPubkey; + // When omitted, this means zero (see https://github.com/cosmos/cosmjs/issues/1177#issuecomment-1160115080) readonly power?: string; } export function decodeValidatorUpdate(data: RpcValidatorUpdate): responses.ValidatorUpdate { return { pubkey: decodePubkey(assertObject(data.pub_key)), - votingPower: data.power ? Integer.parse(data.power) : undefined, + votingPower: Integer.parse(data.power ?? 0), }; } diff --git a/packages/tendermint-rpc/src/tendermint35/responses.ts b/packages/tendermint-rpc/src/tendermint35/responses.ts index be2eecca..d1e9f5a8 100644 --- a/packages/tendermint-rpc/src/tendermint35/responses.ts +++ b/packages/tendermint-rpc/src/tendermint35/responses.ts @@ -361,7 +361,7 @@ export interface Validator { export interface ValidatorUpdate { readonly pubkey: ValidatorPubkey; - readonly votingPower?: number; + readonly votingPower: number; } export interface ConsensusParams {