diff --git a/user/util.go b/user/util.go index e51314f..3022ff9 100644 --- a/user/util.go +++ b/user/util.go @@ -1,17 +1,20 @@ package user import ( + "errors" "fmt" "github.com/nspcc-dev/neo-go/pkg/crypto/keys" neofscrypto "github.com/nspcc-dev/neofs-sdk-go/crypto" ) +var ErrOwnerExtract = errors.New("decode owner failed") + // IDFromKey forms the ID using script hash calculated for the given key. func IDFromKey(id *ID, key []byte) error { var pk keys.PublicKey if err := pk.DecodeBytes(key); err != nil { - return fmt.Errorf("IDFromKey %v", err) + return fmt.Errorf("%w: %v", ErrOwnerExtract, err) } id.SetScriptHash(pk.GetScriptHash()) diff --git a/user/util_test.go b/user/util_test.go index dd2fc22..693ff67 100644 --- a/user/util_test.go +++ b/user/util_test.go @@ -20,4 +20,8 @@ func TestIDFromKey(t *testing.T) { require.NoError(t, user.IDFromKey(&id, rawPub)) require.Equal(t, "NNLi44dJNXtDNSBkofB48aTVYtb1zZrNEs", id.EncodeToString()) + + err := user.IDFromKey(&id, []byte{1}) + require.Error(t, err) + require.ErrorIs(t, err, user.ErrOwnerExtract) }