Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: create-validator now takes a json file as arg #14864

Merged
merged 43 commits into from
Feb 22, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
4cc3059
wip: take json file as arg for create-validator cmd
likhita-809 Feb 1, 2023
53ab328
wip: cleanup
likhita-809 Feb 1, 2023
98caf65
wip: more cleanup
likhita-809 Feb 1, 2023
545471b
remove unncessary fields from validator struct
likhita-809 Feb 1, 2023
2b2d84c
wip: more cleanup
likhita-809 Feb 1, 2023
0aabe92
wip: refactor code
likhita-809 Feb 1, 2023
c358a48
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 1, 2023
540c20e
add tests
likhita-809 Feb 1, 2023
434e8e9
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 1, 2023
6eeabda
remove unused flags from create-validator cmd
likhita-809 Feb 2, 2023
50e335b
wip: address review comments and add changelog
likhita-809 Feb 2, 2023
f766120
fix relevant tests
likhita-809 Feb 2, 2023
c2b85aa
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 2, 2023
1cf4d15
add optional json fields and remove flags
likhita-809 Feb 2, 2023
1a4ca2e
fix warnings and tests
likhita-809 Feb 2, 2023
139f3d5
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 2, 2023
56861aa
fix tests
likhita-809 Feb 2, 2023
edb60c1
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 2, 2023
09c41c5
use explicit Example cobra field in create-validator cmd
likhita-809 Feb 3, 2023
2f2a81d
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 3, 2023
a769166
wip: use interface for pubkey
likhita-809 Feb 3, 2023
348b947
wip: use json.RawMessage for pubkey type
likhita-809 Feb 6, 2023
47bcc81
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 6, 2023
2bbba8f
fix tests
likhita-809 Feb 6, 2023
e346655
address review comments
likhita-809 Feb 6, 2023
631cf02
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 6, 2023
97ef612
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 6, 2023
bd3a134
Merge branch 'main' into likhita/val-json-wip
atheeshp Feb 6, 2023
0481b64
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 6, 2023
1ba91f6
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 7, 2023
b50b47b
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 7, 2023
41b2a84
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 8, 2023
e4b67f4
Merge branch 'main' into likhita/val-json-wip
atheeshp Feb 9, 2023
42f921b
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 10, 2023
36eceeb
Merge branch 'main' into likhita/val-json-wip
atheeshp Feb 13, 2023
7299331
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 14, 2023
28c516b
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 15, 2023
4a5fc22
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 16, 2023
c825b2f
Merge branch 'main' of https://github.com/cosmos/cosmos-sdk into likh…
likhita-809 Feb 20, 2023
3f67566
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 21, 2023
34f340d
fix tests
likhita-809 Feb 21, 2023
10204a4
Merge branch 'main' into likhita/val-json-wip
atheeshp Feb 21, 2023
cb31f4b
Merge branch 'main' into likhita/val-json-wip
likhita-809 Feb 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
wip: refactor code
  • Loading branch information
likhita-809 committed Feb 1, 2023
commit 0aabe923d18b7abd95e2475c01fe0f4819124de1
18 changes: 9 additions & 9 deletions x/staking/client/cli/tx.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,14 @@ Where validator.json contains:
return err
}

from, amount, pubkey, moniker, rate, maxRate, maxChangeRate, minSelfDel, err := parseValidatorJSON(clientCtx.Codec, args[0])
validator, err := parseValidatorJSON(clientCtx.Codec, args[0])
if err != nil {
return err
}

txf := tx.NewFactoryCLI(clientCtx, cmd.Flags()).
WithTxConfig(clientCtx.TxConfig).WithAccountRetriever(clientCtx.AccountRetriever)
txf, msg, err := newBuildCreateValidatorMsg(clientCtx, txf, cmd.Flags(), from, amount, pubkey, moniker, rate, maxRate, maxChangeRate, minSelfDel)
txf, msg, err := newBuildCreateValidatorMsg(clientCtx, txf, cmd.Flags(), validator)
if err != nil {
return err
}
Expand Down Expand Up @@ -361,16 +361,16 @@ $ %s tx staking cancel-unbond %s1gghjut3ccd8ay0zduzj64hwre2fxs9ldmqhffj 100stake
return cmd
}

func newBuildCreateValidatorMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet, from, amount, pubkey, moniker, rate, maxRate, maxChangeRate, minSelfDel string) (tx.Factory, *types.MsgCreateValidator, error) {
valAmount, err := sdk.ParseCoinNormalized(amount)
func newBuildCreateValidatorMsg(clientCtx client.Context, txf tx.Factory, fs *flag.FlagSet, val validator) (tx.Factory, *types.MsgCreateValidator, error) {
amount, err := sdk.ParseCoinNormalized(val.Amount)
if err != nil {
return txf, nil, err
}

valAddr := clientCtx.GetFromAddress()

var pk cryptotypes.PubKey
if err := clientCtx.Codec.UnmarshalInterfaceJSON([]byte(pubkey), &pk); err != nil {
if err := clientCtx.Codec.UnmarshalInterfaceJSON([]byte(val.PubKey), &pk); err != nil {
likhita-809 marked this conversation as resolved.
Show resolved Hide resolved
return txf, nil, err
}

Expand All @@ -379,25 +379,25 @@ func newBuildCreateValidatorMsg(clientCtx client.Context, txf tx.Factory, fs *fl
security, _ := fs.GetString(FlagSecurityContact)
details, _ := fs.GetString(FlagDetails)
description := types.NewDescription(
moniker,
val.Moniker,
identity,
website,
security,
details,
)

commissionRates, err := buildCommissionRates(rate, maxRate, maxChangeRate)
commissionRates, err := buildCommissionRates(val.CommissionRate, val.CommissionMaxRate, val.CommissionMaxChange)
if err != nil {
return txf, nil, err
}

minSelfDelegation, ok := sdk.NewIntFromString(minSelfDel)
minSelfDelegation, ok := sdk.NewIntFromString(val.MinSelfDelegation)
if !ok {
return txf, nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "minimum self delegation must be a positive integer")
}

msg, err := types.NewMsgCreateValidator(
sdk.ValAddress(valAddr), pk, valAmount, description, commissionRates, minSelfDelegation,
sdk.ValAddress(valAddr), pk, amount, description, commissionRates, minSelfDelegation,
)
if err != nil {
return txf, nil, err
Expand Down
16 changes: 8 additions & 8 deletions x/staking/client/cli/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,24 +23,24 @@ type validator struct {
MinSelfDelegation string `json:"min-self-delegation"`
}

func parseValidatorJSON(cdc codec.Codec, path string) (string, string, string, string, string, string, string, string, error) {
var validator validator
func parseValidatorJSON(cdc codec.Codec, path string) (validator, error) {
var val validator

contents, err := os.ReadFile(path)
Fixed Show fixed Hide fixed
Fixed Show fixed Hide fixed

Check failure

Code scanning / gosec

Potential file inclusion via variable

Potential file inclusion via variable
if err != nil {
return "", "", "", "", "", "", "", "", err
return validator{}, err
}

err = json.Unmarshal(contents, &validator)
err = json.Unmarshal(contents, &val)
if err != nil {
return "", "", "", "", "", "", "", "", err
return validator{}, err
}

if err := validator.validate(); err != nil {
return "", "", "", "", "", "", "", "", err
if err := val.validate(); err != nil {
return validator{}, err
}

return validator.From, validator.Amount, validator.PubKey, validator.Moniker, validator.CommissionRate, validator.CommissionMaxRate, validator.CommissionMaxChange, validator.MinSelfDelegation, nil
return val, nil
}

// validate checks that the required fields are present in the validator json.
Expand Down