From c81c356fe3f1d6144d8602d1f08778b228a97d13 Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Sat, 1 Feb 2020 16:29:08 +0100 Subject: [PATCH] Simplify decodeAmount --- packages/bcp/src/cosmwasmconnection.ts | 2 +- packages/bcp/src/decode.spec.ts | 2 +- packages/bcp/src/decode.ts | 9 ++++----- packages/bcp/src/types.ts | 1 - packages/bcp/types/decode.d.ts | 2 +- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/bcp/src/cosmwasmconnection.ts b/packages/bcp/src/cosmwasmconnection.ts index 2cd19fe1..68a416b3 100644 --- a/packages/bcp/src/cosmwasmconnection.ts +++ b/packages/bcp/src/cosmwasmconnection.ts @@ -160,7 +160,7 @@ export class CosmWasmConnection implements BlockchainConnection { }; return { address: address, - balance: supportedCoins.map(decodeAmount(this.tokenInfo)), + balance: supportedCoins.map(coin => decodeAmount(this.tokenInfo, coin)), pubkey: pubkey, }; } diff --git a/packages/bcp/src/decode.spec.ts b/packages/bcp/src/decode.spec.ts index cf2b2dd7..51103289 100644 --- a/packages/bcp/src/decode.spec.ts +++ b/packages/bcp/src/decode.spec.ts @@ -97,7 +97,7 @@ describe("decode", () => { denom: "uatom", amount: "11657995", }; - expect(decodeAmount(defaultTokens)(amount)).toEqual(defaultAmount); + expect(decodeAmount(defaultTokens, amount)).toEqual(defaultAmount); }); }); diff --git a/packages/bcp/src/decode.ts b/packages/bcp/src/decode.ts index a6c40170..9fb0869a 100644 --- a/packages/bcp/src/decode.ts +++ b/packages/bcp/src/decode.ts @@ -42,10 +42,9 @@ export function decodeFullSignature(signature: amino.StdSignature, nonce: number }; } -// TODO: return null vs throw exception for undefined??? -export const decodeAmount = (tokens: TokenInfos) => (coin: amino.Coin): Amount => { +export function decodeAmount(tokens: TokenInfos, coin: amino.Coin): Amount { return coinToAmount(tokens, coin); -}; +} export function parseMsg(msg: amino.Msg, chainId: ChainId, tokens: TokenInfos): SendTransaction { if (msg.type !== "cosmos-sdk/MsgSend") { @@ -63,7 +62,7 @@ export function parseMsg(msg: amino.Msg, chainId: ChainId, tokens: TokenInfos): chainId: chainId, sender: msgValue.from_address as Address, recipient: msgValue.to_address as Address, - amount: decodeAmount(tokens)(msgValue.amount[0]), + amount: decodeAmount(tokens, msgValue.amount[0]), }; } @@ -72,7 +71,7 @@ export function parseFee(fee: amino.StdFee, tokens: TokenInfos): Fee { throw new Error("Only fee with one amount is supported"); } return { - tokens: decodeAmount(tokens)(fee.amount[0]), + tokens: decodeAmount(tokens, fee.amount[0]), gasLimit: fee.gas, }; } diff --git a/packages/bcp/src/types.ts b/packages/bcp/src/types.ts index 26b080b7..d4035e6c 100644 --- a/packages/bcp/src/types.ts +++ b/packages/bcp/src/types.ts @@ -16,7 +16,6 @@ export function amountToCoin(lookup: ReadonlyArray, amount: Amount): }; } -// TODO: return null vs throw exception for undefined??? export function coinToAmount(tokens: TokenInfos, coin: amino.Coin): Amount { const match = tokens.find(({ denom }) => denom === coin.denom); if (!match) { diff --git a/packages/bcp/types/decode.d.ts b/packages/bcp/types/decode.d.ts index 7c4e96f8..68122fd9 100644 --- a/packages/bcp/types/decode.d.ts +++ b/packages/bcp/types/decode.d.ts @@ -17,7 +17,7 @@ import { TokenInfos } from "./types"; export declare function decodePubkey(pubkey: amino.PubKey): PubkeyBundle; export declare function decodeSignature(signature: string): SignatureBytes; export declare function decodeFullSignature(signature: amino.StdSignature, nonce: number): FullSignature; -export declare const decodeAmount: (tokens: TokenInfos) => (coin: amino.Coin) => Amount; +export declare function decodeAmount(tokens: TokenInfos, coin: amino.Coin): Amount; export declare function parseMsg(msg: amino.Msg, chainId: ChainId, tokens: TokenInfos): SendTransaction; export declare function parseFee(fee: amino.StdFee, tokens: TokenInfos): Fee; export declare function parseTx(