github.com/gravity-devs/liquidity@v1.5.3/x/liquidity/client/testutil/cli_helpers.go (about)

     1  package testutil
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/cosmos/cosmos-sdk/baseapp"
     7  	"github.com/cosmos/cosmos-sdk/client"
     8  	"github.com/cosmos/cosmos-sdk/client/flags"
     9  	servertypes "github.com/cosmos/cosmos-sdk/server/types"
    10  	"github.com/cosmos/cosmos-sdk/simapp"
    11  	"github.com/cosmos/cosmos-sdk/simapp/params"
    12  	storetypes "github.com/cosmos/cosmos-sdk/store/types"
    13  	"github.com/cosmos/cosmos-sdk/testutil"
    14  	clitestutil "github.com/cosmos/cosmos-sdk/testutil/cli"
    15  	"github.com/cosmos/cosmos-sdk/testutil/network"
    16  	sdk "github.com/cosmos/cosmos-sdk/types"
    17  	govcli "github.com/cosmos/cosmos-sdk/x/gov/client/cli"
    18  	paramscli "github.com/cosmos/cosmos-sdk/x/params/client/cli"
    19  
    20  	liquidityapp "github.com/gravity-devs/liquidity/app"
    21  	liquiditycli "github.com/gravity-devs/liquidity/x/liquidity/client/cli"
    22  
    23  	dbm "github.com/tendermint/tm-db"
    24  )
    25  
    26  // NewConfig returns config that defines the necessary testing requirements
    27  // used to bootstrap and start an in-process local testing network.
    28  func NewConfig(dbm *dbm.MemDB) network.Config {
    29  	encCfg := simapp.MakeTestEncodingConfig()
    30  
    31  	cfg := network.DefaultConfig()
    32  	cfg.AppConstructor = NewAppConstructor(encCfg, dbm)                    // the ABCI application constructor
    33  	cfg.GenesisState = liquidityapp.ModuleBasics.DefaultGenesis(cfg.Codec) // liquidity genesis state to provide
    34  	return cfg
    35  }
    36  
    37  // NewAppConstructor returns a new network AppConstructor.
    38  func NewAppConstructor(encodingCfg params.EncodingConfig, db *dbm.MemDB) network.AppConstructor {
    39  	return func(val network.Validator) servertypes.Application {
    40  		return liquidityapp.NewLiquidityApp(
    41  			val.Ctx.Logger, db, nil, true, make(map[int64]bool), val.Ctx.Config.RootDir, 0,
    42  			liquidityapp.MakeEncodingConfig(),
    43  			simapp.EmptyAppOptions{},
    44  			baseapp.SetPruning(storetypes.NewPruningOptionsFromString(val.AppConfig.Pruning)),
    45  			baseapp.SetMinGasPrices(val.AppConfig.MinGasPrices),
    46  		)
    47  	}
    48  }
    49  
    50  var commonArgs = []string{
    51  	fmt.Sprintf("--%s=true", flags.FlagSkipConfirmation),
    52  	fmt.Sprintf("--%s=%s", flags.FlagBroadcastMode, flags.BroadcastBlock),
    53  	fmt.Sprintf("--%s=%s", flags.FlagFees, sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(10))).String()),
    54  }
    55  
    56  // MsgCreatePoolExec creates a transaction for creating liquidity pool.
    57  func MsgCreatePoolExec(clientCtx client.Context, from, poolID, depositCoins string,
    58  	extraArgs ...string) (testutil.BufferWriter, error) {
    59  
    60  	args := append([]string{
    61  		poolID,
    62  		depositCoins,
    63  		fmt.Sprintf("--%s=%s", flags.FlagFrom, from),
    64  	}, commonArgs...)
    65  
    66  	args = append(args, commonArgs...)
    67  
    68  	return clitestutil.ExecTestCLICmd(clientCtx, liquiditycli.NewCreatePoolCmd(), args)
    69  }
    70  
    71  // MsgDepositWithinBatchExec creates a transaction to deposit new amounts to the pool.
    72  func MsgDepositWithinBatchExec(clientCtx client.Context, from, poolID, depositCoins string,
    73  	extraArgs ...string) (testutil.BufferWriter, error) {
    74  
    75  	args := append([]string{
    76  		poolID,
    77  		depositCoins,
    78  		fmt.Sprintf("--%s=%s", flags.FlagFrom, from),
    79  	}, commonArgs...)
    80  
    81  	args = append(args, commonArgs...)
    82  
    83  	return clitestutil.ExecTestCLICmd(clientCtx, liquiditycli.NewDepositWithinBatchCmd(), args)
    84  }
    85  
    86  // MsgWithdrawWithinBatchExec creates a transaction to withraw pool coin amount from the pool.
    87  func MsgWithdrawWithinBatchExec(clientCtx client.Context, from, poolID, poolCoin string,
    88  	extraArgs ...string) (testutil.BufferWriter, error) {
    89  
    90  	args := append([]string{
    91  		poolID,
    92  		poolCoin,
    93  		fmt.Sprintf("--%s=%s", flags.FlagFrom, from),
    94  	}, commonArgs...)
    95  
    96  	args = append(args, commonArgs...)
    97  
    98  	return clitestutil.ExecTestCLICmd(clientCtx, liquiditycli.NewWithdrawWithinBatchCmd(), args)
    99  }
   100  
   101  // MsgSwapWithinBatchExec creates a transaction to swap coins in the pool.
   102  func MsgSwapWithinBatchExec(clientCtx client.Context, from, poolID, swapTypeID,
   103  	offerCoin, demandCoinDenom, orderPrice, swapFeeRate string, extraArgs ...string) (testutil.BufferWriter, error) {
   104  
   105  	args := append([]string{
   106  		poolID,
   107  		swapTypeID,
   108  		offerCoin,
   109  		demandCoinDenom,
   110  		orderPrice,
   111  		swapFeeRate,
   112  		fmt.Sprintf("--%s=%s", flags.FlagFrom, from),
   113  	}, commonArgs...)
   114  
   115  	args = append(args, commonArgs...)
   116  
   117  	return clitestutil.ExecTestCLICmd(clientCtx, liquiditycli.NewSwapWithinBatchCmd(), args)
   118  }
   119  
   120  // MsgParamChangeProposalExec creates a transaction for submitting param change proposal
   121  func MsgParamChangeProposalExec(clientCtx client.Context, from string, file string) (testutil.BufferWriter, error) {
   122  
   123  	args := append([]string{
   124  		file,
   125  		fmt.Sprintf("--%s=%s", flags.FlagFrom, from),
   126  	}, commonArgs...)
   127  
   128  	paramChangeCmd := paramscli.NewSubmitParamChangeProposalTxCmd()
   129  	flags.AddTxFlagsToCmd(paramChangeCmd)
   130  
   131  	return clitestutil.ExecTestCLICmd(clientCtx, paramChangeCmd, args)
   132  }
   133  
   134  // MsgVote votes for a proposal
   135  func MsgVote(clientCtx client.Context, from, id, vote string, extraArgs ...string) (testutil.BufferWriter, error) {
   136  	args := append([]string{
   137  		id,
   138  		vote,
   139  		fmt.Sprintf("--%s=%s", flags.FlagFrom, from),
   140  	}, commonArgs...)
   141  
   142  	args = append(args, extraArgs...)
   143  
   144  	return clitestutil.ExecTestCLICmd(clientCtx, govcli.NewCmdWeightedVote(), args)
   145  }