diff --git a/src/neo/Ledger/Blockchain.cs b/src/neo/Ledger/Blockchain.cs index dea46ae3e8..07575b895e 100644 --- a/src/neo/Ledger/Blockchain.cs +++ b/src/neo/Ledger/Blockchain.cs @@ -53,7 +53,7 @@ public class FillCompleted { } Transactions = new[] { DeployNativeContracts() } }; - private readonly static byte[] onPersistNativeContractScript; + private readonly static Script onPersistNativeContractScript; private const int MaxTxToReverifyPerIdle = 10; private static readonly object lockObj = new object(); private readonly NeoSystem system; @@ -323,8 +323,7 @@ private RelayResultReason OnNewBlock(Block block) using (Snapshot snapshot = GetSnapshot()) { snapshot.Blocks.Add(block.Hash, block.Header.Trim()); - snapshot.HeaderHashIndex.GetAndChange().Hash = block.Hash; - snapshot.HeaderHashIndex.GetAndChange().Index = block.Index; + snapshot.HeaderHashIndex.GetAndChange().Set(block); SaveHeaderHashList(snapshot); snapshot.Commit(); } diff --git a/src/neo/Network/P2P/Payloads/Header.cs b/src/neo/Network/P2P/Payloads/Header.cs index eaef0dc160..193b6b977e 100644 --- a/src/neo/Network/P2P/Payloads/Header.cs +++ b/src/neo/Network/P2P/Payloads/Header.cs @@ -1,9 +1,7 @@ using Neo.IO.Json; using Neo.Ledger; -using Neo.Wallets; using System; using System.IO; -using System.Linq; namespace Neo.Network.P2P.Payloads { diff --git a/src/neo/SmartContract/Helper.cs b/src/neo/SmartContract/Helper.cs index f8c819dbeb..03e543a5b4 100644 --- a/src/neo/SmartContract/Helper.cs +++ b/src/neo/SmartContract/Helper.cs @@ -284,8 +284,8 @@ internal static bool VerifyWitnesses(this IVerifiable verifiable, Snapshot snaps { engine.LoadScript(verification); engine.LoadScript(verifiable.Witnesses[i].InvocationScript); - if (engine.Execute().HasFlag(VMState.FAULT)) return false; - if (engine.ResultStack.Count != 1 || !engine.ResultStack.Pop().ToBoolean()) return false; + if (engine.Execute() == VMState.FAULT) return false; + if (!engine.ResultStack.TryPop(out var result) || !result.ToBoolean()) return false; } } return true;