feat: Improve withdraw-all-rewards UX (#9781)
## Description Related to #9489, this PR improves the UX when using the `withdraw-all-rewards` command by forcing the broadcast mode to `block` if the chunk size is greater than 0. This will ensure that the transactions do not fail even if the user uses invalid broadcast modes for this command (`sync` and `async`). --- ### Author Checklist *All items are required. Please add a note to the item if the item is not applicable and please add links to any relevant follow up issues.* I have... - [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] added `!` to the type prefix if API or client breaking change - [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting)) - [x] provided a link to the relevant issue or specification - [x] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules) - [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing) - [ ] added a changelog entry to `CHANGELOG.md` - [ ] included comments for [documenting Go code](https://blog.golang.org/godoc) - [x] updated the relevant documentation or specification - [x] reviewed "Files changed" and left comments if necessary - [ ] confirmed all CI checks have passed ### Reviewers Checklist *All items are required. Please add a note if the item is not applicable and please add your handle next to the items reviewed if you only reviewed selected items.* I have... - [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title - [ ] confirmed `!` in the type prefix if API or client breaking change - [ ] confirmed all author checklist items have been addressed - [ ] reviewed state machine logic - [ ] reviewed API design and naming - [ ] reviewed documentation is accurate - [ ] reviewed tests and test coverage - [ ] manually tested (if applicable)
This commit is contained in:
parent
f1e64878d8
commit
90157fc5f4
|
@ -65,6 +65,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
|
||||||
### Client Breaking Changes
|
### Client Breaking Changes
|
||||||
|
|
||||||
* [\#9594](https://github.com/cosmos/cosmos-sdk/pull/9594) Remove legacy REST API. Please see the [REST Endpoints Migration guide](https://docs.cosmos.network/master/migrations/rest.html) to migrate to the new REST endpoints.
|
* [\#9594](https://github.com/cosmos/cosmos-sdk/pull/9594) Remove legacy REST API. Please see the [REST Endpoints Migration guide](https://docs.cosmos.network/master/migrations/rest.html) to migrate to the new REST endpoints.
|
||||||
|
* [\#9781](https://github.com/cosmos/cosmos-sdk/pull/9781) Improve`withdraw-all-rewards` UX when broadcast mode `async` or `async` is used.
|
||||||
|
|
||||||
|
|
||||||
### CLI Breaking Changes
|
### CLI Breaking Changes
|
||||||
|
|
|
@ -23,7 +23,7 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
MaxMessagesPerTxDefault = 5
|
MaxMessagesPerTxDefault = 0
|
||||||
)
|
)
|
||||||
|
|
||||||
// NewTxCmd returns a root CLI command handler for all x/distribution transaction commands.
|
// NewTxCmd returns a root CLI command handler for all x/distribution transaction commands.
|
||||||
|
@ -126,11 +126,12 @@ func NewWithdrawAllRewardsCmd() *cobra.Command {
|
||||||
Short: "withdraw all delegations rewards for a delegator",
|
Short: "withdraw all delegations rewards for a delegator",
|
||||||
Long: strings.TrimSpace(
|
Long: strings.TrimSpace(
|
||||||
fmt.Sprintf(`Withdraw all rewards for a single delegator.
|
fmt.Sprintf(`Withdraw all rewards for a single delegator.
|
||||||
|
Note that if you use this command with --%[2]s=%[3]s or --%[2]s=%[4]s, the %[5]s flag will automatically be set to 0.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
$ %s tx distribution withdraw-all-rewards --from mykey
|
$ %[1]s tx distribution withdraw-all-rewards --from mykey
|
||||||
`,
|
`,
|
||||||
version.AppName,
|
version.AppName, flags.FlagBroadcastMode, flags.BroadcastSync, flags.BroadcastAsync, FlagMaxMessagesPerTx,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Args: cobra.NoArgs,
|
Args: cobra.NoArgs,
|
||||||
|
@ -167,6 +168,11 @@ $ %s tx distribution withdraw-all-rewards --from mykey
|
||||||
}
|
}
|
||||||
|
|
||||||
chunkSize, _ := cmd.Flags().GetInt(FlagMaxMessagesPerTx)
|
chunkSize, _ := cmd.Flags().GetInt(FlagMaxMessagesPerTx)
|
||||||
|
if clientCtx.BroadcastMode != flags.BroadcastBlock && chunkSize > 0 {
|
||||||
|
return fmt.Errorf("cannot use broadcast mode %[1]s with %[2]s != 0",
|
||||||
|
clientCtx.BroadcastMode, FlagMaxMessagesPerTx)
|
||||||
|
}
|
||||||
|
|
||||||
return newSplitAndApply(tx.GenerateOrBroadcastTxCLI, clientCtx, cmd.Flags(), msgs, chunkSize)
|
return newSplitAndApply(tx.GenerateOrBroadcastTxCLI, clientCtx, cmd.Flags(), msgs, chunkSize)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue