From 2be11ed4671ee494abc2e0af5a4f687aef9236a8 Mon Sep 17 00:00:00 2001 From: Luke Date: Sat, 16 Dec 2023 21:25:23 +0800 Subject: [PATCH 1/4] feat(address): add MustValAddressFromBech32 function --- CHANGELOG.md | 1 + types/address.go | 10 ++++++++++ types/address_test.go | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5274e00ff7be..3fd54dc8b49e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,6 +50,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/auth/vesting) [#17810](https://github.com/cosmos/cosmos-sdk/pull/17810) Add the ability to specify a start time for continuous vesting accounts. * (runtime) [#18475](https://github.com/cosmos/cosmos-sdk/pull/18475) Adds an implementation for core.branch.Service. * (baseapp) [#18499](https://github.com/cosmos/cosmos-sdk/pull/18499) Add `MsgRouter` response type from message name function. +* (address) [#18768](https://github.com/cosmos/cosmos-sdk/pull/18768) Add MustValAddressFromBech32 function. ### Improvements diff --git a/types/address.go b/types/address.go index fce62a681564..1290d6330091 100644 --- a/types/address.go +++ b/types/address.go @@ -362,6 +362,16 @@ func ValAddressFromBech32(address string) (addr ValAddress, err error) { return ValAddress(bz), nil } +// MustValAddressFromBech32 calls MustValAddressFromBech32 and panics on error. +func MustValAddressFromBech32(address string) ValAddress { + addr, err := ValAddressFromBech32(address) + if err != nil { + panic(err) + } + + return addr +} + // Returns boolean for whether two ValAddresses are Equal func (va ValAddress) Equals(va2 Address) bool { if va.Empty() && va2.Empty() { diff --git a/types/address_test.go b/types/address_test.go index 53b06475079c..77dbd73c2752 100644 --- a/types/address_test.go +++ b/types/address_test.go @@ -567,3 +567,13 @@ func (s *addressTestSuite) TestGetFromBech32() { s.Require().Error(err) s.Require().Equal("invalid Bech32 prefix; expected x, got cosmos", err.Error()) } + +func (s *addressTestSuite) TestMustAccAddressFromBech32() { + address := "cosmosvaloper1780p20ce3quhzqxdq0xfeqtnzrjgdraz0kwwjp" + valAddress1, err := types.ValAddressFromBech32(address) + s.Require().Nil(err) + + valAddress2 := types.MustValAddressFromBech32(address) + + s.Require().Equal(valAddress1, valAddress2) +} From 0c1a63c8bbc262d6123ec78575c0b3be9451703b Mon Sep 17 00:00:00 2001 From: Luke Date: Sat, 16 Dec 2023 21:41:27 +0800 Subject: [PATCH 2/4] chore: update comment --- types/address.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/address.go b/types/address.go index 1290d6330091..eca97cee2973 100644 --- a/types/address.go +++ b/types/address.go @@ -362,7 +362,7 @@ func ValAddressFromBech32(address string) (addr ValAddress, err error) { return ValAddress(bz), nil } -// MustValAddressFromBech32 calls MustValAddressFromBech32 and panics on error. +// MustValAddressFromBech32 calls ValAddressFromBech32 and panics on error. func MustValAddressFromBech32(address string) ValAddress { addr, err := ValAddressFromBech32(address) if err != nil { From 66ad9a7ba9eac68d6b1e543e51fa63b96797fa7d Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Sat, 16 Dec 2023 17:39:28 +0100 Subject: [PATCH 3/4] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fd54dc8b49e..bba783f92b97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,7 +50,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/auth/vesting) [#17810](https://github.com/cosmos/cosmos-sdk/pull/17810) Add the ability to specify a start time for continuous vesting accounts. * (runtime) [#18475](https://github.com/cosmos/cosmos-sdk/pull/18475) Adds an implementation for core.branch.Service. * (baseapp) [#18499](https://github.com/cosmos/cosmos-sdk/pull/18499) Add `MsgRouter` response type from message name function. -* (address) [#18768](https://github.com/cosmos/cosmos-sdk/pull/18768) Add MustValAddressFromBech32 function. +* (types) [#18768](https://github.com/cosmos/cosmos-sdk/pull/18768) Add MustValAddressFromBech32 function. ### Improvements From dc062870de29aa0e361f1e72963964b672508f5c Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 17 Dec 2023 10:47:06 +0800 Subject: [PATCH 4/4] imp(types): fix TestMustAccAddressFromBech32 --- CHANGELOG.md | 2 +- types/address_test.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fd54dc8b49e..bba783f92b97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -50,7 +50,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ * (x/auth/vesting) [#17810](https://github.com/cosmos/cosmos-sdk/pull/17810) Add the ability to specify a start time for continuous vesting accounts. * (runtime) [#18475](https://github.com/cosmos/cosmos-sdk/pull/18475) Adds an implementation for core.branch.Service. * (baseapp) [#18499](https://github.com/cosmos/cosmos-sdk/pull/18499) Add `MsgRouter` response type from message name function. -* (address) [#18768](https://github.com/cosmos/cosmos-sdk/pull/18768) Add MustValAddressFromBech32 function. +* (types) [#18768](https://github.com/cosmos/cosmos-sdk/pull/18768) Add MustValAddressFromBech32 function. ### Improvements diff --git a/types/address_test.go b/types/address_test.go index 77dbd73c2752..414751c7ea9d 100644 --- a/types/address_test.go +++ b/types/address_test.go @@ -569,7 +569,10 @@ func (s *addressTestSuite) TestGetFromBech32() { } func (s *addressTestSuite) TestMustAccAddressFromBech32() { - address := "cosmosvaloper1780p20ce3quhzqxdq0xfeqtnzrjgdraz0kwwjp" + bech32PrefixValAddr := types.GetConfig().GetBech32ValidatorAddrPrefix() + addr20byte := []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} + address := types.MustBech32ifyAddressBytes(bech32PrefixValAddr, addr20byte) + valAddress1, err := types.ValAddressFromBech32(address) s.Require().Nil(err)