diff --git a/testutil/integration/onomy_chain.go b/testutil/integration/onomy_chain.go index d09e653d..fa77707e 100644 --- a/testutil/integration/onomy_chain.go +++ b/testutil/integration/onomy_chain.go @@ -17,6 +17,7 @@ import ( "time" "unsafe" + "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/crypto/keyring" svrcmd "github.com/cosmos/cosmos-sdk/server/cmd" sdkTypes "github.com/cosmos/cosmos-sdk/types" @@ -150,6 +151,24 @@ func (oc *OnomyChain) GetAccountBalance(address string) ([]sdkTypes.Coin, error) return balances.Balances, nil } +// ExecuteValidatorTx executes the chain CLI tx command from validator account. +// Example of usage: +// onomyChain.ExecuteValidatorTx("tx dao fund-account onomy1qe082nde7s9jpcw02emkz8256frd86mazg007y 1anom --title=T --deposit=1anom --description=D") . +func (oc *OnomyChain) ExecuteValidatorTx(cmd string) { + argsSlice := make([]string, 0) + + argsSlice = append(argsSlice, []string{ + fmt.Sprintf("--%s=%s", flags.FlagFrom, TestChainValidator1Name), + fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock), + fmt.Sprintf("--%s=%s", flags.FlagFees, fmt.Sprintf("%d%s", 1000, ChainDenom)), // nolint:gomnd //test constant + fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation), + KeyRingFlag, + oc.homeFlag, + }...) + + ExecuteChainCmd(cmd, argsSlice...) +} + // ExecuteChainCmd executes any cmd on the onomyd cli. func ExecuteChainCmd(cmd string, args ...string) string { oldArgs := os.Args diff --git a/x/dao/client/cli/tx.go b/x/dao/client/cli/tx.go index 023b3ef4..afb21466 100644 --- a/x/dao/client/cli/tx.go +++ b/x/dao/client/cli/tx.go @@ -6,6 +6,7 @@ import ( "strings" "github.com/cosmos/cosmos-sdk/client" + "github.com/cosmos/cosmos-sdk/client/flags" "github.com/cosmos/cosmos-sdk/client/tx" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/version" @@ -23,6 +24,11 @@ type proposalGeneric struct { Deposit string } +func addTxFlags(cmd *cobra.Command) *cobra.Command { + flags.AddTxFlagsToCmd(cmd) + return cmd +} + // GetTxCmd returns the transaction commands for this module. func GetTxCmd() *cobra.Command { cmd := &cobra.Command{ @@ -33,9 +39,9 @@ func GetTxCmd() *cobra.Command { RunE: client.ValidateCmd, } - cmd.AddCommand(CmdFundTreasuryProposal()) - cmd.AddCommand(CmdExchangeWithTreasuryProposal()) - cmd.AddCommand(CmdFundAccountProposal()) + cmd.AddCommand(addTxFlags(CmdFundTreasuryProposal())) + cmd.AddCommand(addTxFlags(CmdExchangeWithTreasuryProposal())) + cmd.AddCommand(addTxFlags((CmdFundAccountProposal()))) return cmd }