github.com/cosmos/cosmos-sdk@v0.50.10/x/auth/types/credentials_test.go (about)

     1  package types_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  
     8  	cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
     9  	sdk "github.com/cosmos/cosmos-sdk/types"
    10  	authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
    11  )
    12  
    13  func TestNewModuleCrendentials(t *testing.T) {
    14  	// wrong derivation keys
    15  	_, err := authtypes.NewModuleCredential("group", []byte{})
    16  	require.Error(t, err, "derivation keys must be non empty")
    17  	_, err = authtypes.NewModuleCredential("group", [][]byte{{0x0, 0x30}, {}}...)
    18  	require.Error(t, err)
    19  
    20  	expected := sdk.MustAccAddressFromBech32("cosmos1fpn0w0yf4x300llf5r66jnfhgj4ul6cfahrvqsskwkhsw6sv84wsmz359y")
    21  
    22  	credential, err := authtypes.NewModuleCredential("group")
    23  	require.NoError(t, err, "must be able to create a Root Module credential (see ADR-33)")
    24  	require.NoError(t, sdk.VerifyAddressFormat(credential.Address()))
    25  
    26  	credential, err = authtypes.NewModuleCredential("group", [][]byte{{0x20}, {0x0}}...)
    27  	require.NoError(t, err)
    28  	require.NoError(t, sdk.VerifyAddressFormat(credential.Address()))
    29  	addr, err := sdk.AccAddressFromHexUnsafe(credential.Address().String())
    30  	require.NoError(t, err)
    31  	require.Equal(t, expected.String(), addr.String())
    32  
    33  	c, err := authtypes.NewModuleCredential("group", [][]byte{{0x20}, {0x0}}...)
    34  	require.NoError(t, err)
    35  	require.True(t, credential.Equals(c))
    36  
    37  	c, err = authtypes.NewModuleCredential("group", [][]byte{{0x20}, {0x1}}...)
    38  	require.NoError(t, err)
    39  	require.False(t, credential.Equals(c))
    40  
    41  	c, err = authtypes.NewModuleCredential("group", []byte{0x20})
    42  	require.NoError(t, err)
    43  	require.False(t, credential.Equals(c))
    44  }
    45  
    46  func TestNewBaseAccountWithPubKey(t *testing.T) {
    47  	expected := sdk.MustAccAddressFromBech32("cosmos1fpn0w0yf4x300llf5r66jnfhgj4ul6cfahrvqsskwkhsw6sv84wsmz359y")
    48  
    49  	credential, err := authtypes.NewModuleCredential("group", [][]byte{{0x20}, {0x0}}...)
    50  	require.NoError(t, err)
    51  	account, err := authtypes.NewBaseAccountWithPubKey(credential)
    52  	require.NoError(t, err)
    53  	require.Equal(t, expected, account.GetAddress())
    54  	require.Equal(t, credential, account.GetPubKey())
    55  }
    56  
    57  func TestNewBaseAccountWithPubKey_WrongCredentials(t *testing.T) {
    58  	_, err := authtypes.NewBaseAccountWithPubKey(cryptotypes.PubKey(nil))
    59  	require.Error(t, err)
    60  }