Use NEO3 based address generation

With neo-go v0.90.0 there are new event subscription component
and new verification script routines based on NEO3. These features
allow to avoid using low-level neo-vm code in NeoFS and corresponding
projects.

This commit removes unused function:
- FetchPublicKeys (used in neofs indexer),
- VerificationScript (used in KeysToAddress),
- Address (used in KeysToAddress),
- ReversedScriptHashToAddress (used in neofs indexer),
- IsAddress (used in neofs indexer),
- ReverseBytes (used in neofs indexer),
- DecodeScriptHash (used in neofs indexer).

KeysToAddress changed into KeyToAddress because NeoFS won't work with
multisignature owners for now and it is not supported in neo-go library.
This commit is contained in:
alexvanin 2020-07-17 17:59:19 +03:00
parent 3dff202073
commit 1958ff8c37
7 changed files with 124 additions and 442 deletions

View file

@ -9,18 +9,22 @@ import (
"github.com/pkg/errors"
)
// NewOwnerID returns generated OwnerID from passed public keys.
func NewOwnerID(keys ...*ecdsa.PublicKey) (owner OwnerID, err error) {
if len(keys) == 0 {
// NewOwnerID returns generated OwnerID from passed public key.
func NewOwnerID(key *ecdsa.PublicKey) (owner OwnerID, err error) {
if key == nil {
return
}
var d []byte
d, err = base58.Decode(chain.KeysToAddress(keys...))
d, err = base58.Decode(chain.KeyToAddress(key))
if err != nil {
return
}
copy(owner[:], d)
return owner, nil
return
}
// Size returns OwnerID size in bytes (OwnerIDSize).

View file

@ -66,7 +66,7 @@ func TestOwnerID(t *testing.T) {
t.Run("check that marshal/unmarshal works like expected", func(t *testing.T) {
var u1, u2 OwnerID
owner, err := NewOwnerID()
owner, err := NewOwnerID(nil)
require.NoError(t, err)
require.True(t, owner.Empty())