Merge PR #6935: Fix Testnet Command
This commit is contained in:
parent
79cee06967
commit
801b64868d
|
@ -21,6 +21,7 @@ import (
|
||||||
"github.com/cosmos/cosmos-sdk/client"
|
"github.com/cosmos/cosmos-sdk/client"
|
||||||
"github.com/cosmos/cosmos-sdk/client/flags"
|
"github.com/cosmos/cosmos-sdk/client/flags"
|
||||||
clientkeys "github.com/cosmos/cosmos-sdk/client/keys"
|
clientkeys "github.com/cosmos/cosmos-sdk/client/keys"
|
||||||
|
"github.com/cosmos/cosmos-sdk/client/tx"
|
||||||
"github.com/cosmos/cosmos-sdk/codec"
|
"github.com/cosmos/cosmos-sdk/codec"
|
||||||
"github.com/cosmos/cosmos-sdk/crypto/keyring"
|
"github.com/cosmos/cosmos-sdk/crypto/keyring"
|
||||||
"github.com/cosmos/cosmos-sdk/server"
|
"github.com/cosmos/cosmos-sdk/server"
|
||||||
|
@ -58,7 +59,6 @@ Example:
|
||||||
`,
|
`,
|
||||||
RunE: func(cmd *cobra.Command, _ []string) error {
|
RunE: func(cmd *cobra.Command, _ []string) error {
|
||||||
clientCtx := client.GetClientContextFromCmd(cmd)
|
clientCtx := client.GetClientContextFromCmd(cmd)
|
||||||
cdc := clientCtx.JSONMarshaler
|
|
||||||
|
|
||||||
serverCtx := server.GetServerContextFromCmd(cmd)
|
serverCtx := server.GetServerContextFromCmd(cmd)
|
||||||
config := serverCtx.Config
|
config := serverCtx.Config
|
||||||
|
@ -74,7 +74,7 @@ Example:
|
||||||
numValidators, _ := cmd.Flags().GetInt(flagNumValidators)
|
numValidators, _ := cmd.Flags().GetInt(flagNumValidators)
|
||||||
|
|
||||||
return InitTestnet(
|
return InitTestnet(
|
||||||
cmd, config, cdc, clientCtx.TxConfig, mbm, genBalIterator, outputDir, chainID, minGasPrices,
|
clientCtx, cmd, config, mbm, genBalIterator, outputDir, chainID, minGasPrices,
|
||||||
nodeDirPrefix, nodeDaemonHome, nodeCLIHome, startingIPAddress, keyringBackend, numValidators,
|
nodeDirPrefix, nodeDaemonHome, nodeCLIHome, startingIPAddress, keyringBackend, numValidators,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
@ -97,8 +97,7 @@ const nodeDirPerm = 0755
|
||||||
|
|
||||||
// Initialize the testnet
|
// Initialize the testnet
|
||||||
func InitTestnet(
|
func InitTestnet(
|
||||||
cmd *cobra.Command, nodeConfig *tmconfig.Config, cdc codec.JSONMarshaler,
|
clientCtx client.Context, cmd *cobra.Command, nodeConfig *tmconfig.Config,
|
||||||
txEncodingConfig client.TxEncodingConfig,
|
|
||||||
mbm module.BasicManager, genBalIterator banktypes.GenesisBalancesIterator,
|
mbm module.BasicManager, genBalIterator banktypes.GenesisBalancesIterator,
|
||||||
outputDir, chainID, minGasPrices, nodeDirPrefix, nodeDaemonHome,
|
outputDir, chainID, minGasPrices, nodeDirPrefix, nodeDaemonHome,
|
||||||
nodeCLIHome, startingIPAddress, keyringBackend string, numValidators int,
|
nodeCLIHome, startingIPAddress, keyringBackend string, numValidators int,
|
||||||
|
@ -198,7 +197,7 @@ func InitTestnet(
|
||||||
genAccounts = append(genAccounts, authtypes.NewBaseAccount(addr, nil, 0, 0))
|
genAccounts = append(genAccounts, authtypes.NewBaseAccount(addr, nil, 0, 0))
|
||||||
|
|
||||||
valTokens := sdk.TokensFromConsensusPower(100)
|
valTokens := sdk.TokensFromConsensusPower(100)
|
||||||
msg := stakingtypes.NewMsgCreateValidator(
|
createValMsg := stakingtypes.NewMsgCreateValidator(
|
||||||
sdk.ValAddress(addr),
|
sdk.ValAddress(addr),
|
||||||
valPubKeys[i],
|
valPubKeys[i],
|
||||||
sdk.NewCoin(sdk.DefaultBondDenom, valTokens),
|
sdk.NewCoin(sdk.DefaultBondDenom, valTokens),
|
||||||
|
@ -207,41 +206,42 @@ func InitTestnet(
|
||||||
sdk.OneInt(),
|
sdk.OneInt(),
|
||||||
)
|
)
|
||||||
|
|
||||||
tx := authtypes.NewStdTx([]sdk.Msg{msg}, authtypes.StdFee{}, []authtypes.StdSignature{}, memo) //nolint:staticcheck // SA1019: authtypes.StdFee is deprecated
|
txBuilder := clientCtx.TxConfig.NewTxBuilder()
|
||||||
txBldr, err := authtypes.NewTxBuilderFromFlags(inBuf, cmd.Flags(), clientDir)
|
if err := txBuilder.SetMsgs(createValMsg); err != nil {
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("error creating tx: %w", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
txBldr = txBldr.WithChainID(chainID).WithMemo(memo).WithKeybase(kb)
|
|
||||||
|
|
||||||
signedTx, err := txBldr.SignStdTx(nodeDirName, tx, false)
|
|
||||||
if err != nil {
|
|
||||||
_ = os.RemoveAll(outputDir)
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
txBytes, err := cdc.MarshalJSON(signedTx)
|
txBuilder.SetMemo(memo)
|
||||||
if err != nil {
|
|
||||||
_ = os.RemoveAll(outputDir)
|
txFactory := tx.Factory{}
|
||||||
|
txFactory = txFactory.
|
||||||
|
WithChainID(chainID).
|
||||||
|
WithMemo(memo).
|
||||||
|
WithKeybase(kb).
|
||||||
|
WithTxConfig(clientCtx.TxConfig)
|
||||||
|
|
||||||
|
if err := tx.Sign(txFactory, nodeDirName, txBuilder); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// gather gentxs folder
|
txBz, err := clientCtx.TxConfig.TxJSONEncoder()(txBuilder.GetTx())
|
||||||
if err := writeFile(fmt.Sprintf("%v.json", nodeDirName), gentxsDir, txBytes); err != nil {
|
if err != nil {
|
||||||
_ = os.RemoveAll(outputDir)
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := writeFile(fmt.Sprintf("%v.json", nodeDirName), gentxsDir, txBz); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
srvconfig.WriteConfigFile(filepath.Join(nodeDir, "config/app.toml"), simappConfig)
|
srvconfig.WriteConfigFile(filepath.Join(nodeDir, "config/app.toml"), simappConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := initGenFiles(cdc, mbm, chainID, genAccounts, genBalances, genFiles, numValidators); err != nil {
|
if err := initGenFiles(clientCtx, mbm, chainID, genAccounts, genBalances, genFiles, numValidators); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err := collectGenFiles(
|
err := collectGenFiles(
|
||||||
cdc, txEncodingConfig, nodeConfig, chainID, nodeIDs, valPubKeys, numValidators,
|
clientCtx, nodeConfig, chainID, nodeIDs, valPubKeys, numValidators,
|
||||||
outputDir, nodeDirPrefix, nodeDaemonHome, genBalIterator,
|
outputDir, nodeDirPrefix, nodeDaemonHome, genBalIterator,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -253,16 +253,16 @@ func InitTestnet(
|
||||||
}
|
}
|
||||||
|
|
||||||
func initGenFiles(
|
func initGenFiles(
|
||||||
cdc codec.JSONMarshaler, mbm module.BasicManager, chainID string,
|
clientCtx client.Context, mbm module.BasicManager, chainID string,
|
||||||
genAccounts []authtypes.GenesisAccount, genBalances []banktypes.Balance,
|
genAccounts []authtypes.GenesisAccount, genBalances []banktypes.Balance,
|
||||||
genFiles []string, numValidators int,
|
genFiles []string, numValidators int,
|
||||||
) error {
|
) error {
|
||||||
|
|
||||||
appGenState := mbm.DefaultGenesis(cdc)
|
appGenState := mbm.DefaultGenesis(clientCtx.JSONMarshaler)
|
||||||
|
|
||||||
// set the accounts in the genesis state
|
// set the accounts in the genesis state
|
||||||
var authGenState authtypes.GenesisState
|
var authGenState authtypes.GenesisState
|
||||||
cdc.MustUnmarshalJSON(appGenState[authtypes.ModuleName], &authGenState)
|
clientCtx.JSONMarshaler.MustUnmarshalJSON(appGenState[authtypes.ModuleName], &authGenState)
|
||||||
|
|
||||||
accounts, err := authtypes.PackAccounts(genAccounts)
|
accounts, err := authtypes.PackAccounts(genAccounts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -270,16 +270,16 @@ func initGenFiles(
|
||||||
}
|
}
|
||||||
|
|
||||||
authGenState.Accounts = accounts
|
authGenState.Accounts = accounts
|
||||||
appGenState[authtypes.ModuleName] = cdc.MustMarshalJSON(authGenState)
|
appGenState[authtypes.ModuleName] = clientCtx.JSONMarshaler.MustMarshalJSON(authGenState)
|
||||||
|
|
||||||
// set the balances in the genesis state
|
// set the balances in the genesis state
|
||||||
var bankGenState banktypes.GenesisState
|
var bankGenState banktypes.GenesisState
|
||||||
cdc.MustUnmarshalJSON(appGenState[banktypes.ModuleName], &bankGenState)
|
clientCtx.JSONMarshaler.MustUnmarshalJSON(appGenState[banktypes.ModuleName], &bankGenState)
|
||||||
|
|
||||||
bankGenState.Balances = genBalances
|
bankGenState.Balances = genBalances
|
||||||
appGenState[banktypes.ModuleName] = cdc.MustMarshalJSON(bankGenState)
|
appGenState[banktypes.ModuleName] = clientCtx.JSONMarshaler.MustMarshalJSON(bankGenState)
|
||||||
|
|
||||||
appGenStateJSON, err := codec.MarshalJSONIndent(cdc, appGenState)
|
appGenStateJSON, err := codec.MarshalJSONIndent(clientCtx.JSONMarshaler, appGenState)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -300,11 +300,9 @@ func initGenFiles(
|
||||||
}
|
}
|
||||||
|
|
||||||
func collectGenFiles(
|
func collectGenFiles(
|
||||||
cdc codec.JSONMarshaler, txEncodingConfig client.TxEncodingConfig,
|
clientCtx client.Context, nodeConfig *tmconfig.Config, chainID string,
|
||||||
nodeConfig *tmconfig.Config, chainID string,
|
nodeIDs []string, valPubKeys []crypto.PubKey, numValidators int,
|
||||||
nodeIDs []string, valPubKeys []crypto.PubKey,
|
outputDir, nodeDirPrefix, nodeDaemonHome string, genBalIterator banktypes.GenesisBalancesIterator,
|
||||||
numValidators int, outputDir, nodeDirPrefix, nodeDaemonHome string,
|
|
||||||
genBalIterator banktypes.GenesisBalancesIterator,
|
|
||||||
) error {
|
) error {
|
||||||
|
|
||||||
var appState json.RawMessage
|
var appState json.RawMessage
|
||||||
|
@ -326,7 +324,7 @@ func collectGenFiles(
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeAppState, err := genutil.GenAppStateFromConfig(cdc, txEncodingConfig, nodeConfig, initCfg, *genDoc, genBalIterator)
|
nodeAppState, err := genutil.GenAppStateFromConfig(clientCtx.JSONMarshaler, clientCtx.TxConfig, nodeConfig, initCfg, *genDoc, genBalIterator)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,8 @@ package tx
|
||||||
import (
|
import (
|
||||||
"github.com/tendermint/tendermint/crypto"
|
"github.com/tendermint/tendermint/crypto"
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/codec/unknownproto"
|
|
||||||
|
|
||||||
"github.com/cosmos/cosmos-sdk/codec"
|
"github.com/cosmos/cosmos-sdk/codec"
|
||||||
|
"github.com/cosmos/cosmos-sdk/codec/unknownproto"
|
||||||
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
|
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
|
||||||
sdk "github.com/cosmos/cosmos-sdk/types"
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
||||||
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
|
||||||
|
|
Loading…
Reference in New Issue