From d002d458de78b8cc1f68aa53e8728c7b2ef3c03a Mon Sep 17 00:00:00 2001 From: willclarktech Date: Tue, 30 Mar 2021 10:51:59 +0200 Subject: [PATCH] stargate: Simplify amino types checks --- packages/stargate/src/aminotypes.ts | 119 ++++++------------------ packages/stargate/src/stargateclient.ts | 1 - 2 files changed, 30 insertions(+), 90 deletions(-) diff --git a/packages/stargate/src/aminotypes.ts b/packages/stargate/src/aminotypes.ts index 811c4e3e..d4b31872 100644 --- a/packages/stargate/src/aminotypes.ts +++ b/packages/stargate/src/aminotypes.ts @@ -42,16 +42,11 @@ function createDefaultTypes(prefix: string): Record { return { "/cosmos.bank.v1beta1.MsgSend": { aminoType: "cosmos-sdk/MsgSend", - toAmino: ({ fromAddress, toAddress, amount }: MsgSend): AminoMsgSend["value"] => { - assertDefinedAndNotNull(fromAddress, "missing fromAddress"); - assertDefinedAndNotNull(toAddress, "missing toAddress"); - assertDefinedAndNotNull(amount, "missing amount"); - return { - from_address: fromAddress, - to_address: toAddress, - amount: amount, - }; - }, + toAmino: ({ fromAddress, toAddress, amount }: MsgSend): AminoMsgSend["value"] => ({ + from_address: fromAddress, + to_address: toAddress, + amount: [...amount], + }), fromAmino: ({ from_address, to_address, amount }: AminoMsgSend["value"]): MsgSend => ({ fromAddress: from_address, toAddress: to_address, @@ -60,28 +55,16 @@ function createDefaultTypes(prefix: string): Record { }, "/cosmos.bank.v1beta1.MsgMultiSend": { aminoType: "cosmos-sdk/MsgMultiSend", - toAmino: ({ inputs, outputs }: MsgMultiSend): AminoMsgMultiSend["value"] => { - assertDefinedAndNotNull(inputs, "missing inputs"); - assertDefinedAndNotNull(outputs, "missing outputs"); - return { - inputs: inputs.map((input) => { - assertDefinedAndNotNull(input.address, "missing input.address"); - assertDefinedAndNotNull(input.coins, "missing input.amount"); - return { - address: input.address, - coins: input.coins, - }; - }), - outputs: outputs.map((output) => { - assertDefinedAndNotNull(output.address, "missing output.address"); - assertDefinedAndNotNull(output.coins, "missing output.coins"); - return { - address: output.address, - coins: output.coins, - }; - }), - }; - }, + toAmino: ({ inputs, outputs }: MsgMultiSend): AminoMsgMultiSend["value"] => ({ + inputs: inputs.map((input) => ({ + address: input.address, + coins: [...input.coins], + })), + outputs: outputs.map((output) => ({ + address: output.address, + coins: [...output.coins], + })), + }), fromAmino: ({ inputs, outputs }: AminoMsgMultiSend["value"]): MsgMultiSend => ({ inputs: inputs.map((input) => ({ address: input.address, @@ -95,14 +78,10 @@ function createDefaultTypes(prefix: string): Record { }, "/cosmos.distribution.v1beta1.MsgFundCommunityPool": { aminoType: "cosmos-sdk/MsgFundCommunityPool", - toAmino: ({ amount, depositor }: MsgFundCommunityPool): AminoMsgFundCommunityPool["value"] => { - assertDefinedAndNotNull(amount); - assertDefinedAndNotNull(depositor); - return { - amount: amount, - depositor: depositor, - }; - }, + toAmino: ({ amount, depositor }: MsgFundCommunityPool): AminoMsgFundCommunityPool["value"] => ({ + amount: [...amount], + depositor: depositor, + }), fromAmino: ({ amount, depositor }: AminoMsgFundCommunityPool["value"]): MsgFundCommunityPool => ({ amount: [...amount], depositor: depositor, @@ -113,14 +92,10 @@ function createDefaultTypes(prefix: string): Record { toAmino: ({ delegatorAddress, withdrawAddress, - }: MsgSetWithdrawAddress): AminoMsgSetWithdrawAddress["value"] => { - assertDefinedAndNotNull(delegatorAddress); - assertDefinedAndNotNull(withdrawAddress); - return { - delegator_address: delegatorAddress, - withdraw_address: withdrawAddress, - }; - }, + }: MsgSetWithdrawAddress): AminoMsgSetWithdrawAddress["value"] => ({ + delegator_address: delegatorAddress, + withdraw_address: withdrawAddress, + }), fromAmino: ({ delegator_address, withdraw_address, @@ -134,14 +109,10 @@ function createDefaultTypes(prefix: string): Record { toAmino: ({ delegatorAddress, validatorAddress, - }: MsgWithdrawDelegatorReward): AminoMsgWithdrawDelegatorReward["value"] => { - assertDefinedAndNotNull(delegatorAddress); - assertDefinedAndNotNull(validatorAddress); - return { - delegator_address: delegatorAddress, - validator_address: validatorAddress, - }; - }, + }: MsgWithdrawDelegatorReward): AminoMsgWithdrawDelegatorReward["value"] => ({ + delegator_address: delegatorAddress, + validator_address: validatorAddress, + }), fromAmino: ({ delegator_address, validator_address, @@ -154,12 +125,9 @@ function createDefaultTypes(prefix: string): Record { aminoType: "cosmos-sdk/MsgWithdrawValidatorCommission", toAmino: ({ validatorAddress, - }: MsgWithdrawValidatorCommission): AminoMsgWithdrawValidatorCommission["value"] => { - assertDefinedAndNotNull(validatorAddress); - return { - validator_address: validatorAddress, - }; - }, + }: MsgWithdrawValidatorCommission): AminoMsgWithdrawValidatorCommission["value"] => ({ + validator_address: validatorAddress, + }), fromAmino: ({ validator_address, }: AminoMsgWithdrawValidatorCommission["value"]): MsgWithdrawValidatorCommission => ({ @@ -174,9 +142,6 @@ function createDefaultTypes(prefix: string): Record { validatorDstAddress, amount, }: MsgBeginRedelegate): AminoMsgBeginRedelegate["value"] => { - assertDefinedAndNotNull(delegatorAddress, "missing delegatorAddress"); - assertDefinedAndNotNull(validatorSrcAddress, "missing validatorSrcAddress"); - assertDefinedAndNotNull(validatorDstAddress, "missing validatorDstAddress"); assertDefinedAndNotNull(amount, "missing amount"); return { delegator_address: delegatorAddress, @@ -209,20 +174,8 @@ function createDefaultTypes(prefix: string): Record { value, }: MsgCreateValidator): AminoMsgCreateValidator["value"] => { assertDefinedAndNotNull(description, "missing description"); - assertDefinedAndNotNull(description.moniker, "missing description.moniker"); - assertDefinedAndNotNull(description.identity, "missing description.identity"); - assertDefinedAndNotNull(description.website, "missing description.website"); - assertDefinedAndNotNull(description.securityContact, "missing description.securityContact"); - assertDefinedAndNotNull(description.details, "missing description.details"); assertDefinedAndNotNull(commission, "missing commission"); - assertDefinedAndNotNull(commission.rate, "missing commission.rate"); - assertDefinedAndNotNull(commission.maxRate, "missing commission.maxRate"); - assertDefinedAndNotNull(commission.maxChangeRate, "missing commission.maxChangeRate"); - assertDefinedAndNotNull(minSelfDelegation, "missing minSelfDelegation"); - assertDefinedAndNotNull(delegatorAddress, "missing delegatorAddress"); - assertDefinedAndNotNull(validatorAddress, "missing validatorAddress"); assertDefinedAndNotNull(pubkey, "missing pubkey"); - assertDefinedAndNotNull(pubkey.value, "missing pubkey.value"); assertDefinedAndNotNull(value, "missing value"); return { description: { @@ -290,8 +243,6 @@ function createDefaultTypes(prefix: string): Record { "/cosmos.staking.v1beta1.MsgDelegate": { aminoType: "cosmos-sdk/MsgDelegate", toAmino: ({ delegatorAddress, validatorAddress, amount }: MsgDelegate): AminoMsgDelegate["value"] => { - assertDefinedAndNotNull(delegatorAddress, "missing delegatorAddress"); - assertDefinedAndNotNull(validatorAddress, "missing validatorAddress"); assertDefinedAndNotNull(amount, "missing amount"); return { delegator_address: delegatorAddress, @@ -318,14 +269,6 @@ function createDefaultTypes(prefix: string): Record { validatorAddress, }: MsgEditValidator): AminoMsgEditValidator["value"] => { assertDefinedAndNotNull(description, "missing description"); - assertDefinedAndNotNull(description.moniker, "missing description.moniker"); - assertDefinedAndNotNull(description.identity, "missing description.identity"); - assertDefinedAndNotNull(description.website, "missing description.website"); - assertDefinedAndNotNull(description.securityContact, "missing description.securityContact"); - assertDefinedAndNotNull(description.details, "missing description.details"); - assertDefinedAndNotNull(commissionRate, "missing commissionRate"); - assertDefinedAndNotNull(minSelfDelegation, "missing minSelfDelegation"); - assertDefinedAndNotNull(validatorAddress, "missing validatorAddress"); return { description: { moniker: description.moniker, @@ -364,8 +307,6 @@ function createDefaultTypes(prefix: string): Record { validatorAddress, amount, }: MsgUndelegate): AminoMsgUndelegate["value"] => { - assertDefinedAndNotNull(delegatorAddress, "missing delegatorAddress"); - assertDefinedAndNotNull(validatorAddress, "missing validatorAddress"); assertDefinedAndNotNull(amount, "missing amount"); return { delegator_address: delegatorAddress, diff --git a/packages/stargate/src/stargateclient.ts b/packages/stargate/src/stargateclient.ts index 591ee5e3..a97c7e46 100644 --- a/packages/stargate/src/stargateclient.ts +++ b/packages/stargate/src/stargateclient.ts @@ -6,7 +6,6 @@ import { Tendermint34Client, toRfc3339WithNanoseconds, } from "@cosmjs/tendermint-rpc"; -import { assertDefinedAndNotNull } from "@cosmjs/utils"; import { Account, accountFromAny } from "./accounts"; import { MsgData, TxMsgData } from "./codec/cosmos/base/abci/v1beta1/abci";