Skip to content

Commit

Permalink
threads 1
Browse files Browse the repository at this point in the history
  • Loading branch information
keruch committed Oct 10, 2024
1 parent 39edbe8 commit a7e8f4d
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 26 deletions.
16 changes: 14 additions & 2 deletions utils/addressutils/utils.go
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
package addressutils

import (
"fmt"

sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/address"
"github.com/cosmos/cosmos-sdk/types/bech32"
"github.com/tendermint/tendermint/crypto"
)

type AddressType int32

const (
// the 32 bytes length address type of ADR 028.
// AddressType32Bytes is the 32 bytes length address type of ADR 028.
AddressType32Bytes AddressType = 0
// the default 20 bytes length address type.
// AddressType20Bytes is the default 20 bytes length address type.
AddressType20Bytes AddressType = 1
)

Expand All @@ -27,3 +30,12 @@ func DeriveAddress(addressType AddressType, moduleName, name string) sdk.AccAddr
return sdk.AccAddress{}
}
}

// Bech32ToAddr casts an arbitrary-prefixed bech32 string to either sdk.AccAddress or sdk.ValAddress.
func Bech32ToAddr[T sdk.AccAddress | sdk.ValAddress](addr string) (T, error) {
_, bytes, err := bech32.DecodeAndConvert(addr)
if err != nil {
return nil, fmt.Errorf("decoding bech32 addr: %w", err)
}
return bytes, nil
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package types_test
package addressutils_test

import (
"testing"
Expand All @@ -8,7 +8,7 @@ import (
"github.com/stretchr/testify/require"

"github.com/dymensionxyz/dymension-rdk/testutil/utils"
"github.com/dymensionxyz/dymension-rdk/x/sequencers/types"
"github.com/dymensionxyz/dymension-rdk/utils/addressutils"
)

func TestBech32ToAddr(t *testing.T) {
Expand All @@ -29,7 +29,7 @@ func TestBech32ToAddr(t *testing.T) {
require.NoError(t, err)

// convert the random-prefixed bech32 to the current val oper address
valOperAddr, err := types.Bech32ToAddr[sdk.ValAddress](randomPrefixedAddr)
valOperAddr, err := addressutils.Bech32ToAddr[sdk.ValAddress](randomPrefixedAddr)
require.NoError(t, err)

// check results
Expand Down
16 changes: 0 additions & 16 deletions x/sequencers/types/helpers.go

This file was deleted.

12 changes: 7 additions & 5 deletions x/sequencers/types/msgs.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import (
sdk "github.com/cosmos/cosmos-sdk/types"
stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types"
"github.com/dymensionxyz/gerr-cosmos/gerrc"

"github.com/dymensionxyz/dymension-rdk/utils/addressutils"
)

var (
Expand Down Expand Up @@ -130,7 +132,7 @@ func (m *ConsensusMsgUpsertSequencer) UnpackInterfaces(unpacker codectypes.AnyUn
}

func (m *ConsensusMsgUpsertSequencer) ValidateBasic() error {
operAddr, err := Bech32ToAddr[sdk.ValAddress](m.Operator)
operAddr, err := addressutils.Bech32ToAddr[sdk.ValAddress](m.Operator)
if err != nil {
return errorsmod.Wrap(errors.Join(gerrc.ErrInvalidArgument, err), "get operator addr from bech32")
}
Expand All @@ -146,7 +148,7 @@ func (m *ConsensusMsgUpsertSequencer) ValidateBasic() error {
return errorsmod.Wrap(gerrc.ErrInvalidArgument, "pub key cached value is nil")
}

rewardAddr, err := Bech32ToAddr[sdk.AccAddress](m.RewardAddr)
rewardAddr, err := addressutils.Bech32ToAddr[sdk.AccAddress](m.RewardAddr)
if err != nil {
return errorsmod.Wrap(errors.Join(gerrc.ErrInvalidArgument, err), "get reward addr from bech32")
}
Expand All @@ -166,7 +168,7 @@ func (m *ConsensusMsgUpsertSequencer) GetSigners() []sdk.AccAddress {
// has implementations of various useful methods like obtaining various type conversions
// for the public key.
func (m *ConsensusMsgUpsertSequencer) MustValidator() stakingtypes.Validator {
valAddr, err := Bech32ToAddr[sdk.ValAddress](m.Operator)
valAddr, err := addressutils.Bech32ToAddr[sdk.ValAddress](m.Operator)
if err != nil {
panic(err)
}
Expand All @@ -177,15 +179,15 @@ func (m *ConsensusMsgUpsertSequencer) MustValidator() stakingtypes.Validator {
}

func (m *ConsensusMsgUpsertSequencer) MustOperatorAddr() sdk.ValAddress {
operAddr, err := Bech32ToAddr[sdk.ValAddress](m.Operator)
operAddr, err := addressutils.Bech32ToAddr[sdk.ValAddress](m.Operator)
if err != nil {
panic(err)
}
return operAddr
}

func (m *ConsensusMsgUpsertSequencer) MustRewardAddr() sdk.AccAddress {
rewardAddr, err := Bech32ToAddr[sdk.AccAddress](m.RewardAddr)
rewardAddr, err := addressutils.Bech32ToAddr[sdk.AccAddress](m.RewardAddr)
if err != nil {
panic(err)
}
Expand Down

0 comments on commit a7e8f4d

Please sign in to comment.