From 4587121c7fdf0e732956e6b7b56d8b9384b81be3 Mon Sep 17 00:00:00 2001
From: Roman Khimov <roman@nspcc.ru>
Date: Mon, 9 Mar 2020 14:18:00 +0300
Subject: [PATCH] core: fix error propagation in contract-related interops

Obvious bug that hides failed contract deployments.
---
 pkg/core/interop_neo.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkg/core/interop_neo.go b/pkg/core/interop_neo.go
index 7140b1fa2..4696ffdd7 100644
--- a/pkg/core/interop_neo.go
+++ b/pkg/core/interop_neo.go
@@ -515,7 +515,7 @@ func (ic *interopContext) createContractStateFromVM(v *vm.VM) (*state.Contract,
 func (ic *interopContext) contractCreate(v *vm.VM) error {
 	newcontract, err := ic.createContractStateFromVM(v)
 	if err != nil {
-		return nil
+		return err
 	}
 	contract, err := ic.dao.GetContractState(newcontract.ScriptHash())
 	if err != nil {
@@ -555,7 +555,7 @@ func (ic *interopContext) contractIsPayable(v *vm.VM) error {
 func (ic *interopContext) contractMigrate(v *vm.VM) error {
 	newcontract, err := ic.createContractStateFromVM(v)
 	if err != nil {
-		return nil
+		return err
 	}
 	contract, err := ic.dao.GetContractState(newcontract.ScriptHash())
 	if err != nil {