Merge PR #6907: Return error when the address is an empty string

This commit is contained in:
dauTT 2020-08-04 21:15:58 +02:00 committed by GitHub
parent 801b64868d
commit f11d0520c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 6 deletions

View File

@ -119,7 +119,7 @@ func VerifyAddressFormat(bz []byte) error {
// AccAddressFromBech32 creates an AccAddress from a Bech32 string.
func AccAddressFromBech32(address string) (addr AccAddress, err error) {
if len(strings.TrimSpace(address)) == 0 {
return AccAddress{}, nil
return AccAddress{}, errors.New("empty address string is not allowed")
}
bech32PrefixAccAddr := GetConfig().GetBech32AccountAddrPrefix()
@ -186,6 +186,10 @@ func (aa *AccAddress) UnmarshalJSON(data []byte) error {
if err != nil {
return err
}
if s == "" {
*aa = AccAddress{}
return nil
}
aa2, err := AccAddressFromBech32(s)
if err != nil {
@ -203,6 +207,10 @@ func (aa *AccAddress) UnmarshalYAML(data []byte) error {
if err != nil {
return err
}
if s == "" {
*aa = AccAddress{}
return nil
}
aa2, err := AccAddressFromBech32(s)
if err != nil {
@ -264,7 +272,7 @@ func ValAddressFromHex(address string) (addr ValAddress, err error) {
// ValAddressFromBech32 creates a ValAddress from a Bech32 string.
func ValAddressFromBech32(address string) (addr ValAddress, err error) {
if len(strings.TrimSpace(address)) == 0 {
return ValAddress{}, nil
return ValAddress{}, errors.New("empty address string is not allowed")
}
bech32PrefixValAddr := GetConfig().GetBech32ValidatorAddrPrefix()
@ -332,6 +340,10 @@ func (va *ValAddress) UnmarshalJSON(data []byte) error {
if err != nil {
return err
}
if s == "" {
*va = ValAddress{}
return nil
}
va2, err := ValAddressFromBech32(s)
if err != nil {
@ -350,6 +362,10 @@ func (va *ValAddress) UnmarshalYAML(data []byte) error {
if err != nil {
return err
}
if s == "" {
*va = ValAddress{}
return nil
}
va2, err := ValAddressFromBech32(s)
if err != nil {
@ -411,7 +427,7 @@ func ConsAddressFromHex(address string) (addr ConsAddress, err error) {
// ConsAddressFromBech32 creates a ConsAddress from a Bech32 string.
func ConsAddressFromBech32(address string) (addr ConsAddress, err error) {
if len(strings.TrimSpace(address)) == 0 {
return ConsAddress{}, nil
return ConsAddress{}, errors.New("empty address string is not allowed")
}
bech32PrefixConsAddr := GetConfig().GetBech32ConsensusAddrPrefix()
@ -484,6 +500,10 @@ func (ca *ConsAddress) UnmarshalJSON(data []byte) error {
if err != nil {
return err
}
if s == "" {
*ca = ConsAddress{}
return nil
}
ca2, err := ConsAddressFromBech32(s)
if err != nil {
@ -502,6 +522,10 @@ func (ca *ConsAddress) UnmarshalYAML(data []byte) error {
if err != nil {
return err
}
if s == "" {
*ca = ConsAddress{}
return nil
}
ca2, err := ConsAddressFromBech32(s)
if err != nil {

View File

@ -46,15 +46,15 @@ func TestEmptyAddresses(t *testing.T) {
accAddr, err := types.AccAddressFromBech32("")
require.True(t, accAddr.Empty())
require.Nil(t, err)
require.Error(t, err)
valAddr, err := types.ValAddressFromBech32("")
require.True(t, valAddr.Empty())
require.Nil(t, err)
require.Error(t, err)
consAddr, err := types.ConsAddressFromBech32("")
require.True(t, consAddr.Empty())
require.Nil(t, err)
require.Error(t, err)
}
func TestRandBech32PubkeyConsistency(t *testing.T) {