From 6f8e03a61495b81924601e427bb3a189910a26ce Mon Sep 17 00:00:00 2001 From: Shargon Date: Fri, 30 Oct 2020 09:50:42 +0100 Subject: [PATCH] Optimize Gas Mint (#2038) --- src/neo/SmartContract/Native/Tokens/GasToken.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/neo/SmartContract/Native/Tokens/GasToken.cs b/src/neo/SmartContract/Native/Tokens/GasToken.cs index 37a5098f04..c3a6ed08f4 100644 --- a/src/neo/SmartContract/Native/Tokens/GasToken.cs +++ b/src/neo/SmartContract/Native/Tokens/GasToken.cs @@ -1,7 +1,6 @@ using Neo.Cryptography.ECC; using Neo.Ledger; using Neo.Network.P2P.Payloads; -using System.Linq; namespace Neo.SmartContract.Native.Tokens { @@ -25,11 +24,15 @@ internal override void Initialize(ApplicationEngine engine) protected override void OnPersist(ApplicationEngine engine) { base.OnPersist(engine); + long totalNetworkFee = 0; foreach (Transaction tx in engine.Snapshot.PersistingBlock.Transactions) + { Burn(engine, tx.Sender, tx.SystemFee + tx.NetworkFee); + totalNetworkFee += tx.NetworkFee; + } ECPoint[] validators = NEO.GetNextBlockValidators(engine.Snapshot); UInt160 primary = Contract.CreateSignatureRedeemScript(validators[engine.Snapshot.PersistingBlock.ConsensusData.PrimaryIndex]).ToScriptHash(); - Mint(engine, primary, engine.Snapshot.PersistingBlock.Transactions.Sum(p => p.NetworkFee)); + Mint(engine, primary, totalNetworkFee); } } }