diff --git a/pkg/core/blockchain.go b/pkg/core/blockchain.go index 4762803a3..a762830f1 100644 --- a/pkg/core/blockchain.go +++ b/pkg/core/blockchain.go @@ -1674,7 +1674,7 @@ func (bc *Blockchain) initVerificationVM(ic *interop.Context, hash util.Uint160, return ErrInvalidVerificationContract } initMD := cs.Manifest.ABI.GetMethod(manifest.MethodInit) - v.LoadScriptWithHash(cs.Script, hash, smartcontract.ReadStates) + v.LoadScriptWithHash(cs.Script, hash, smartcontract.ReadStates|smartcontract.AllowCall) v.Jump(v.Context(), md.Offset) if cs.ID < 0 { diff --git a/pkg/core/native/interop.go b/pkg/core/native/interop.go index fd02c6340..4fbcf2ffa 100644 --- a/pkg/core/native/interop.go +++ b/pkg/core/native/interop.go @@ -58,7 +58,7 @@ func Call(ic *interop.Context) error { return fmt.Errorf("method %s not found", operation) } if !ic.VM.Context().GetCallFlags().Has(m.RequiredFlags) { - return errors.New("missing call flags") + return fmt.Errorf("missing call flags for native %s `%s` operation call: %05b vs %05b", name, operation, ic.VM.Context().GetCallFlags(), m.RequiredFlags) } if !ic.VM.AddGas(m.Price) { return errors.New("gas limit exceeded")