diff --git a/packages/stargate/src/index.ts b/packages/stargate/src/index.ts index 7ded909a..63f8c3a0 100644 --- a/packages/stargate/src/index.ts +++ b/packages/stargate/src/index.ts @@ -1,5 +1,6 @@ export * as codec from "./codec"; export { getMsgType, getMsgTypeUrl } from "./encoding"; +export { parseRawLog } from "./logs"; export { AuthExtension, BankExtension, diff --git a/packages/stargate/src/logs.ts b/packages/stargate/src/logs.ts new file mode 100644 index 00000000..2738b412 --- /dev/null +++ b/packages/stargate/src/logs.ts @@ -0,0 +1,11 @@ +/* eslint-disable @typescript-eslint/naming-convention */ +import { logs } from "@cosmjs/launchpad"; + +export function parseRawLog(input = "[]"): readonly logs.Log[] { + const logsToParse = JSON.parse(input).map(({ events }: { events: readonly unknown[] }, i: number) => ({ + msg_index: i, + events, + log: "", + })); + return logs.parseLogs(logsToParse); +} diff --git a/packages/stargate/types/index.d.ts b/packages/stargate/types/index.d.ts index 7ded909a..63f8c3a0 100644 --- a/packages/stargate/types/index.d.ts +++ b/packages/stargate/types/index.d.ts @@ -1,5 +1,6 @@ export * as codec from "./codec"; export { getMsgType, getMsgTypeUrl } from "./encoding"; +export { parseRawLog } from "./logs"; export { AuthExtension, BankExtension, diff --git a/packages/stargate/types/logs.d.ts b/packages/stargate/types/logs.d.ts new file mode 100644 index 00000000..258dd322 --- /dev/null +++ b/packages/stargate/types/logs.d.ts @@ -0,0 +1,2 @@ +import { logs } from "@cosmjs/launchpad"; +export declare function parseRawLog(input?: string): readonly logs.Log[];