From 11710d5849f64c08309c240002f4eee0aa831aba Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Wed, 12 Feb 2020 14:51:41 +0100 Subject: [PATCH] Pull out parseUnsignedTx --- packages/bcp/src/decode.spec.ts | 9 +++++++++ packages/bcp/src/decode.ts | 18 ++++++++++++------ packages/bcp/types/decode.d.ts | 5 +++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/packages/bcp/src/decode.spec.ts b/packages/bcp/src/decode.spec.ts index 1a5a3840..d721a3db 100644 --- a/packages/bcp/src/decode.spec.ts +++ b/packages/bcp/src/decode.spec.ts @@ -12,6 +12,7 @@ import { parseMsg, parseSignedTx, parseTxsResponse, + parseUnsignedTx, } from "./decode"; import * as testdata from "./testdata.spec"; import cosmoshub from "./testdata/cosmoshub.json"; @@ -157,6 +158,14 @@ describe("decode", () => { }); }); + describe("parseUnsignedTx", () => { + it("works", () => { + expect(parseUnsignedTx(cosmoshub.tx.value, testdata.chainId, defaultTokens)).toEqual( + testdata.sendTxJson, + ); + }); + }); + describe("parseSignedTx", () => { it("works", () => { expect(parseSignedTx(cosmoshub.tx.value, testdata.chainId, testdata.nonce, defaultTokens)).toEqual( diff --git a/packages/bcp/src/decode.ts b/packages/bcp/src/decode.ts index 5b84e914..01a52317 100644 --- a/packages/bcp/src/decode.ts +++ b/packages/bcp/src/decode.ts @@ -109,12 +109,11 @@ export function parseFee(fee: types.StdFee, tokens: BankTokens): Fee { }; } -export function parseSignedTx( +export function parseUnsignedTx( txValue: types.StdTx, chainId: ChainId, - nonce: Nonce, tokens: BankTokens, -): SignedTransaction { +): UnsignedTransaction { if (!types.isStdTx(txValue)) { throw new Error("Only StdTx is supported"); } @@ -122,18 +121,25 @@ export function parseSignedTx( throw new Error("Only single-message transactions currently supported"); } - const [primarySignature] = txValue.signatures.map(signature => decodeFullSignature(signature, nonce)); const msg = parseMsg(txValue.msg[0], txValue.memo, chainId, tokens); const fee = parseFee(txValue.fee, tokens); - const transaction: UnsignedTransaction = { + return { ...msg, chainId: chainId, fee: fee, }; +} +export function parseSignedTx( + txValue: types.StdTx, + chainId: ChainId, + nonce: Nonce, + tokens: BankTokens, +): SignedTransaction { + const [primarySignature] = txValue.signatures.map(signature => decodeFullSignature(signature, nonce)); return { - transaction: transaction, + transaction: parseUnsignedTx(txValue, chainId, tokens), signatures: [primarySignature], }; } diff --git a/packages/bcp/types/decode.d.ts b/packages/bcp/types/decode.d.ts index 7908393f..fb11377f 100644 --- a/packages/bcp/types/decode.d.ts +++ b/packages/bcp/types/decode.d.ts @@ -25,6 +25,11 @@ export declare function parseMsg( tokens: BankTokens, ): UnsignedTransaction; export declare function parseFee(fee: types.StdFee, tokens: BankTokens): Fee; +export declare function parseUnsignedTx( + txValue: types.StdTx, + chainId: ChainId, + tokens: BankTokens, +): UnsignedTransaction; export declare function parseSignedTx( txValue: types.StdTx, chainId: ChainId,