From 874612b0df1282481c100f148e44f6380378b6b1 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Fri, 8 Mar 2024 12:26:53 +0100 Subject: [PATCH] Let `parseRawLog` gracefully handle empty strings --- CHANGELOG.md | 5 +++++ packages/stargate/src/logs.ts | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eff4050d..f2390277 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,11 @@ and this project adheres to import { parseCoins } from "@cosmjs/amino"; ``` +- @cosmjs/stargate: Let `parseRawLog` gracefully handle empty strings to better + support Cosmos SDK 0.50 inputs. ([#1564]) + +[#1564]: https://github.com/cosmos/cosmjs/pull/1564 + ### Fixed - @cosmjs/encoding: Avoid using replacement character in doc comment to make diff --git a/packages/stargate/src/logs.ts b/packages/stargate/src/logs.ts index f899c8fe..1e97d560 100644 --- a/packages/stargate/src/logs.ts +++ b/packages/stargate/src/logs.ts @@ -54,7 +54,10 @@ export function parseLogs(input: unknown): readonly Log[] { return input.map(parseLog); } -export function parseRawLog(input = "[]"): readonly Log[] { +export function parseRawLog(input: string | undefined): readonly Log[] { + // Cosmos SDK >= 0.50 gives us an empty string here. This should be handled like undefined. + if (!input) return []; + const logsToParse = JSON.parse(input).map(({ events }: { events: readonly unknown[] }, i: number) => ({ msg_index: i, events,