diff --git a/examples/cosmos/chain_miscellaneous_test.go b/examples/cosmos/chain_miscellaneous_test.go index 065f72ce4..1b3a69011 100644 --- a/examples/cosmos/chain_miscellaneous_test.go +++ b/examples/cosmos/chain_miscellaneous_test.go @@ -51,6 +51,8 @@ func CosmosChainTestMiscellaneous(t *testing.T, name, version string) { CoinType: "118", ModifyGenesis: cosmos.ModifyGenesis(sdk47Genesis), EncodingConfig: wasmEncoding(), + GasAdjustment: 1.5, + Gas: "auto", }, NumValidators: &numVals, NumFullNodes: &numFullNodes, @@ -94,6 +96,7 @@ func CosmosChainTestMiscellaneous(t *testing.T, name, version string) { testAddingNode(ctx, t, chain) testGetGovernanceAddress(ctx, t, chain) testTXFailsOnBlockInclusion(ctx, t, chain, users) + testTXEncodeDecode(ctx, t, chain, users) } func wasmEncoding() *testutil.TestEncodingConfig { @@ -440,6 +443,40 @@ func testTXFailsOnBlockInclusion(ctx context.Context, t *testing.T, chain *cosmo require.Error(t, err) } +func testTXEncodeDecode(ctx context.Context, t *testing.T, chain *cosmos.CosmosChain, users []ibc.Wallet) { + generate := chain.GetNode().TxCommand(users[0].KeyName(), "bank", "send", users[0].FormattedAddress(), users[1].FormattedAddress(), "1"+chain.Config().Denom, "--generate-only") + + // check if generate contains "--gas" + require.Contains(t, generate, "--gas") + + txJson, _, err := chain.GetNode().Exec(ctx, generate, nil) + require.NoError(t, err) + + // encode + err = chain.GetNode().WriteFile(ctx, txJson, "tx.json") + require.NoError(t, err) + encode := chain.GetNode().TxCommand(users[0].KeyName(), "encode", chain.GetNode().HomeDir()+"/tx.json") + encoded, _, err := chain.GetNode().Exec(ctx, encode, nil) + require.NoError(t, err) + + // decode + decode := chain.GetNode().TxCommand(users[0].KeyName(), "decode", string(encoded)) + decoded, _, err := chain.GetNode().Exec(ctx, decode, nil) + require.NoError(t, err) + + err = chain.GetNode().WriteFile(ctx, decoded, "decoded.json") + require.NoError(t, err) + + sign := chain.GetNode().TxCommand(users[0].KeyName(), "sign", chain.GetNode().HomeDir()+"/decoded.json") + signed, _, err := chain.GetNode().Exec(ctx, sign, nil) + require.NoError(t, err) + + err = chain.GetNode().WriteFile(ctx, signed, "signed.json") + require.NoError(t, err) + _, err = chain.GetNode().ExecTx(ctx, users[0].KeyName(), "broadcast", chain.GetNode().HomeDir()+"/signed.json") + require.NoError(t, err) +} + // helpers func sendTokens(ctx context.Context, chain *cosmos.CosmosChain, from, to ibc.Wallet, token string, amount int64) (ibc.WalletAmount, error) { if token == "" {