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 }