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 }