Skip to content

Commit

Permalink
Remove legacy-submit-proposal consumer-modification
Browse files Browse the repository at this point in the history
  • Loading branch information
bermuell committed Aug 6, 2024
1 parent 7577eb6 commit 2833350
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 99 deletions.
2 changes: 0 additions & 2 deletions app/provider/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,6 @@ var (
gov.NewAppModuleBasic(
[]govclient.ProposalHandler{
paramsclient.ProposalHandler,
ibcproviderclient.ConsumerModificationProposalHandler,
ibcproviderclient.ChangeRewardDenomsProposalHandler,
},
),
Expand Down Expand Up @@ -577,7 +576,6 @@ func New(
govtypes.ModuleName: gov.NewAppModuleBasic(
[]govclient.ProposalHandler{
paramsclient.ProposalHandler,
ibcproviderclient.ConsumerModificationProposalHandler,
ibcproviderclient.ChangeRewardDenomsProposalHandler,
},
),
Expand Down
75 changes: 46 additions & 29 deletions tests/e2e/actions.go
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,7 @@ func (tr Chain) submitConsumerRemovalProposal(
}
],
"metadata": "ipfs://CID",
"deposit": "100000stake",
"deposit": "%sstake",
"title": "%s",
"summary": "It was a great chain",
"expedited": false
Expand Down Expand Up @@ -461,31 +461,48 @@ func (tr Chain) submitConsumerModificationProposal(
action SubmitConsumerModificationProposalAction,
verbose bool,
) {
prop := client.ConsumerModificationProposalJSON{
Title: "Propose the modification of the PSS parameters of a chain",
Summary: "summary of a modification proposal",
ChainId: string(tr.testConfig.chainConfigs[action.ConsumerChain].ChainId),
Deposit: fmt.Sprint(action.Deposit) + `stake`,
TopN: action.TopN,
ValidatorsPowerCap: action.ValidatorsPowerCap,
ValidatorSetCap: action.ValidatorSetCap,
Allowlist: action.Allowlist,
Denylist: action.Denylist,
}

bz, err := json.Marshal(prop)
if err != nil {
log.Fatal(err)
}
template := `
jsonStr := string(bz)
if strings.Contains(jsonStr, "'") {
log.Fatal("prop json contains single quote")
}
{
"messages": [
{
"@type": "/interchain_security.ccv.provider.v1.MsgConsumerModification",
"title": "Propose the modification of the PSS parameters of a chain",
"description": "description of the consumer modification proposal",
"chain_id": "%s",
"top_N": %d,
"validators_power_cap": %d,
"validator_set_cap": %d,
"allowlist": %s,
"denylist": %s,
"authority": "cosmos10d07y265gmmuvt4z0w9aw880jnsr700j6zn9kn",
"min_stake": "0",
"allow_inactive_vals": false
}
],
"metadata": "ipfs://CID",
"deposit": "%sstake",
"title": "Propose the modification of the PSS parameters of a chain",
"summary": "summary of a modification proposal",
"expedited": false
}
`

//#nosec G204 -- bypass unsafe quoting warning (no production code)
bz, err = tr.target.ExecCommand(
"/bin/bash", "-c", fmt.Sprintf(`echo '%s' > %s`, jsonStr, "/temp-proposal.json"),
jsonStr := fmt.Sprintf(template,
string(tr.testConfig.chainConfigs[action.ConsumerChain].ChainId),
action.TopN,
action.ValidatorsPowerCap,
action.ValidatorSetCap,
action.Allowlist,
action.Denylist,
action.Deposit,
)

// #nosec G204 -- bypass unsafe quoting warning (no production code)
proposalFile := "/consumer-mod.proposal"
bz, err := tr.target.ExecCommand(
"/bin/bash", "-c", fmt.Sprintf(`echo '%s' > %s`, jsonStr, proposalFile),
).CombinedOutput()
if err != nil {
log.Fatal(err, "\n", string(bz))
Expand All @@ -494,7 +511,7 @@ func (tr Chain) submitConsumerModificationProposal(
// CONSUMER MODIFICATION PROPOSAL
cmd := tr.target.ExecCommand(
tr.testConfig.chainConfigs[action.Chain].BinaryName,
"tx", "gov", "submit-legacy-proposal", "consumer-modification", "/temp-proposal.json",
"tx", "gov", "submit-proposal", proposalFile,
`--from`, `validator`+fmt.Sprint(action.From),
`--chain-id`, string(tr.testConfig.chainConfigs[action.Chain].ChainId),
`--home`, tr.getValidatorHome(action.Chain, action.From),
Expand All @@ -503,18 +520,18 @@ func (tr Chain) submitConsumerModificationProposal(
`--keyring-backend`, `test`,
`-y`,
)

if verbose {
log.Println("submitConsumerModificationProposal cmd: ", cmd.String())
log.Println("submitConsumerModificationProposal json: ", jsonStr)
fmt.Println("submitConsumerModificationProposal cmd:", cmd.String())
fmt.Println("submitConsumerModificationProposal json:", jsonStr)
}

bz, err = cmd.CombinedOutput()
if err != nil {
log.Fatal(err, "\n", string(bz))
log.Fatal("submit consumer modification proposal failed:", err, "\n", string(bz))
}

if verbose {
log.Println("submitConsumerModificationProposal output: ", string(bz))
fmt.Println("submitConsumerModificationProposal output:", string(bz))
}

// wait for inclusion in a block -> '--broadcast-mode block' is deprecated
Expand Down
69 changes: 1 addition & 68 deletions x/ccv/provider/client/legacy_proposal_handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,7 @@ import (
)

var (
ChangeRewardDenomsProposalHandler = govclient.NewProposalHandler(SubmitChangeRewardDenomsProposalTxCmd)
ConsumerModificationProposalHandler = govclient.NewProposalHandler(SubmitConsumerModificationProposalTxCmd)
ChangeRewardDenomsProposalHandler = govclient.NewProposalHandler(SubmitChangeRewardDenomsProposalTxCmd)
)

// SubmitChangeRewardDenomsProposalTxCmd returns a CLI command handler for submitting
Expand Down Expand Up @@ -75,69 +74,3 @@ func SubmitChangeRewardDenomsProposalTxCmd() *cobra.Command {
},
}
}

// SubmitConsumerModificationProposalTxCmd returns a CLI command handler for submitting
// a consumer modification proposal via a transaction.
func SubmitConsumerModificationProposalTxCmd() *cobra.Command {
return &cobra.Command{
Use: "consumer-modification [proposal-file]",
Args: cobra.ExactArgs(1),
Short: "Submit a consumer modification proposal",
Long: `
Submit a consumer modification proposal along with an initial deposit.
The proposal details must be supplied via a JSON file.
Example:
$ <appd> tx gov submit-legacy-proposal consumer-modification <path/to/proposal.json> --from=<key_or_address>
Where proposal.json contains:
{
"title": "Modify FooChain",
"summary": "Make it an Opt In chain",
"chain_id": "foochain",
"top_n": 0,
"validators_power_cap": 32,
"validator_set_cap": 50,
"allowlist": [],
"denylist": ["validatorAConsensusAddress", "validatorBConsensusAddress"],
"min_stake": 100000000000,
"allow_inactive_vals": false
}
`,
RunE: func(cmd *cobra.Command, args []string) error {
clientCtx, err := client.GetClientTxContext(cmd)
if err != nil {
return err
}

proposal, err := ParseConsumerModificationProposalJSON(args[0])
if err != nil {
return err
}

content := types.NewConsumerModificationProposal(
proposal.Title, proposal.Summary, proposal.ChainId, proposal.TopN,
proposal.ValidatorsPowerCap, proposal.ValidatorSetCap, proposal.Allowlist, proposal.Denylist, proposal.MinStake, proposal.AllowInactiveVals)

from := clientCtx.GetFromAddress()

deposit, err := sdk.ParseCoinsNormalized(proposal.Deposit)
if err != nil {
return err
}

msgContent, err := govv1.NewLegacyContent(content, authtypes.NewModuleAddress(govtypes.ModuleName).String())
if err != nil {
return err
}

msg, err := govv1.NewMsgSubmitProposal([]sdk.Msg{msgContent}, deposit, from.String(), "", content.GetTitle(), proposal.Summary, false)
if err != nil {
return err
}

return tx.GenerateOrBroadcastTxCLI(clientCtx, cmd.Flags(), msg)
},
}
}

0 comments on commit 2833350

Please sign in to comment.