Skip to content

Commit 08fdfec

Browse files
mergify[bot]mmsqejulienrbrt
authored
feat(client): add consensus address for debug cmd (backport #20328) (#20366)
Co-authored-by: mmsqe <mavis@crypto.com> Co-authored-by: Julien Robert <julien@rbrt.fr>
1 parent 5b6045c commit 08fdfec

2 files changed

Lines changed: 29 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Ref: https://keepachangelog.com/en/1.0.0/
4040

4141
### Improvements
4242

43+
* (debug) [#20328](https://github.com/cosmos/cosmos-sdk/pull/20328) Add consensus address for debug cmd.
4344
* (runtime) [#20264](https://github.com/cosmos/cosmos-sdk/pull/20264) Expose grpc query router via depinject.
4445

4546
### Bug Fixes

client/debug/main.go

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -253,28 +253,43 @@ $ %s debug addr cosmos1e0jnq2sun3dzjh8p2xq95kk0expwmd7shwjpfg
253253
Args: cobra.ExactArgs(1),
254254
RunE: func(cmd *cobra.Command, args []string) error {
255255
addrString := args[0]
256-
var addr []byte
257-
258256
// try hex, then bech32
259-
var err error
260-
addr, err = hex.DecodeString(addrString)
261-
if err != nil {
262-
var err2 error
263-
addr, err2 = sdk.AccAddressFromBech32(addrString)
264-
if err2 != nil {
265-
var err3 error
266-
addr, err3 = sdk.ValAddressFromBech32(addrString)
267-
268-
if err3 != nil {
269-
return fmt.Errorf("expected hex or bech32. Got errors: hex: %v, bech32 acc: %v, bech32 val: %v", err, err2, err3)
257+
var (
258+
addr []byte
259+
err error
260+
)
261+
decodeFns := []func(text string) ([]byte, error){
262+
hex.DecodeString,
263+
func(text string) ([]byte, error) { return sdk.AccAddressFromBech32(text) },
264+
func(text string) ([]byte, error) { return sdk.ValAddressFromBech32(text) },
265+
func(text string) ([]byte, error) { return sdk.ConsAddressFromBech32(text) },
266+
}
267+
errs := make([]any, 0, len(decodeFns))
268+
for _, fn := range decodeFns {
269+
if addr, err = fn(addrString); err == nil {
270+
break
271+
}
272+
errs = append(errs, err)
273+
}
274+
if len(errs) == len(decodeFns) {
275+
errTags := []string{
276+
"hex", "bech32 acc", "bech32 val", "bech32 con",
277+
}
278+
format := ""
279+
for i := range errs {
280+
if format != "" {
281+
format += ", "
270282
}
283+
format += errTags[i] + ": %w"
271284
}
285+
return fmt.Errorf("expected hex or bech32. Got errors: "+format, errs...)
272286
}
273287

274288
cmd.Println("Address:", addr)
275289
cmd.Printf("Address (hex): %X\n", addr)
276290
cmd.Printf("Bech32 Acc: %s\n", sdk.AccAddress(addr))
277291
cmd.Printf("Bech32 Val: %s\n", sdk.ValAddress(addr))
292+
cmd.Printf("Bech32 Con: %s\n", sdk.ConsAddress(addr))
278293
return nil
279294
},
280295
}

0 commit comments

Comments
 (0)