diff --git a/pkg/innerring/processors/container/common.go b/pkg/innerring/processors/container/common.go index 46c044a9..e7449fa5 100644 --- a/pkg/innerring/processors/container/common.go +++ b/pkg/innerring/processors/container/common.go @@ -1,6 +1,7 @@ package container import ( + "crypto/ecdsa" "fmt" "github.com/nspcc-dev/neo-go/pkg/crypto/keys" @@ -12,6 +13,20 @@ type ownerIDSource interface { } func (cp *Processor) checkKeyOwnership(ownerIDSrc ownerIDSource, key *keys.PublicKey) error { + // TODO: need more convenient way to do this + w, err := owner.NEO3WalletFromPublicKey(&ecdsa.PublicKey{ + X: key.X, + Y: key.Y, + }) + if err != nil { + return err + } + + // TODO: need Equal method on owner.ID + if ownerIDSrc.OwnerID().String() == owner.NewIDFromNeo3Wallet(w).String() { + return nil + } + ownerKeys, err := cp.idClient.AccountKeys(ownerIDSrc.OwnerID()) if err != nil { return fmt.Errorf("could not received owner keys %s: %w", ownerIDSrc.OwnerID(), err)