diff --git a/src/ApplicationLogs/LogReader.cs b/src/ApplicationLogs/LogReader.cs
index 74e3a7055..02afd643d 100644
--- a/src/ApplicationLogs/LogReader.cs
+++ b/src/ApplicationLogs/LogReader.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.ApplicationLogs is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.IO.Data.LevelDB;
using Neo.IO.Json;
diff --git a/src/ApplicationLogs/Settings.cs b/src/ApplicationLogs/Settings.cs
index 2ca8cd858..dfa4250be 100644
--- a/src/ApplicationLogs/Settings.cs
+++ b/src/ApplicationLogs/Settings.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.ApplicationLogs is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Microsoft.Extensions.Configuration;
namespace Neo.Plugins
diff --git a/src/DBFTPlugin/Consensus/ConsensusContext.Get.cs b/src/DBFTPlugin/Consensus/ConsensusContext.Get.cs
index 5f1b69560..90ed4d0f4 100644
--- a/src/DBFTPlugin/Consensus/ConsensusContext.Get.cs
+++ b/src/DBFTPlugin/Consensus/ConsensusContext.Get.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Network.P2P.Payloads;
using Neo.SmartContract;
using Neo.Wallets;
diff --git a/src/DBFTPlugin/Consensus/ConsensusContext.MakePayload.cs b/src/DBFTPlugin/Consensus/ConsensusContext.MakePayload.cs
index e8af9f0ad..e69d7a4f7 100644
--- a/src/DBFTPlugin/Consensus/ConsensusContext.MakePayload.cs
+++ b/src/DBFTPlugin/Consensus/ConsensusContext.MakePayload.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Ledger;
using Neo.Network.P2P.Payloads;
using Neo.SmartContract;
diff --git a/src/DBFTPlugin/Consensus/ConsensusContext.cs b/src/DBFTPlugin/Consensus/ConsensusContext.cs
index 990b84961..9ce9e33db 100644
--- a/src/DBFTPlugin/Consensus/ConsensusContext.cs
+++ b/src/DBFTPlugin/Consensus/ConsensusContext.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography;
using Neo.Cryptography.ECC;
using Neo.IO;
diff --git a/src/DBFTPlugin/Consensus/ConsensusService.Check.cs b/src/DBFTPlugin/Consensus/ConsensusService.Check.cs
index aa5878248..bf771bbc8 100644
--- a/src/DBFTPlugin/Consensus/ConsensusService.Check.cs
+++ b/src/DBFTPlugin/Consensus/ConsensusService.Check.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.IO;
using Neo.Network.P2P;
diff --git a/src/DBFTPlugin/Consensus/ConsensusService.OnMessage.cs b/src/DBFTPlugin/Consensus/ConsensusService.OnMessage.cs
index 32d2cce06..24ae8caf8 100644
--- a/src/DBFTPlugin/Consensus/ConsensusService.OnMessage.cs
+++ b/src/DBFTPlugin/Consensus/ConsensusService.OnMessage.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.Cryptography;
using Neo.IO;
diff --git a/src/DBFTPlugin/Consensus/ConsensusService.cs b/src/DBFTPlugin/Consensus/ConsensusService.cs
index a6130c741..899902831 100644
--- a/src/DBFTPlugin/Consensus/ConsensusService.cs
+++ b/src/DBFTPlugin/Consensus/ConsensusService.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.IO;
using Neo.Ledger;
diff --git a/src/DBFTPlugin/DBFTPlugin.cs b/src/DBFTPlugin/DBFTPlugin.cs
index 84f709a89..327534310 100644
--- a/src/DBFTPlugin/DBFTPlugin.cs
+++ b/src/DBFTPlugin/DBFTPlugin.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.ConsoleService;
using Neo.Network.P2P;
diff --git a/src/DBFTPlugin/Messages/ChangeView.cs b/src/DBFTPlugin/Messages/ChangeView.cs
index 607e44cfd..4f3241598 100644
--- a/src/DBFTPlugin/Messages/ChangeView.cs
+++ b/src/DBFTPlugin/Messages/ChangeView.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.IO;
namespace Neo.Consensus
diff --git a/src/DBFTPlugin/Messages/Commit.cs b/src/DBFTPlugin/Messages/Commit.cs
index fce9b8caa..12dc20e6e 100644
--- a/src/DBFTPlugin/Messages/Commit.cs
+++ b/src/DBFTPlugin/Messages/Commit.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System.IO;
diff --git a/src/DBFTPlugin/Messages/ConsensusMessage.cs b/src/DBFTPlugin/Messages/ConsensusMessage.cs
index 3f4d06371..40b1820bd 100644
--- a/src/DBFTPlugin/Messages/ConsensusMessage.cs
+++ b/src/DBFTPlugin/Messages/ConsensusMessage.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.IO;
diff --git a/src/DBFTPlugin/Messages/PrepareRequest.cs b/src/DBFTPlugin/Messages/PrepareRequest.cs
index d0dafa754..1485ab354 100644
--- a/src/DBFTPlugin/Messages/PrepareRequest.cs
+++ b/src/DBFTPlugin/Messages/PrepareRequest.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.IO;
diff --git a/src/DBFTPlugin/Messages/PrepareResponse.cs b/src/DBFTPlugin/Messages/PrepareResponse.cs
index f52f67298..9260c2f48 100644
--- a/src/DBFTPlugin/Messages/PrepareResponse.cs
+++ b/src/DBFTPlugin/Messages/PrepareResponse.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System.IO;
diff --git a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.ChangeViewPayloadCompact.cs b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.ChangeViewPayloadCompact.cs
index cd7114ed6..3070928e3 100644
--- a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.ChangeViewPayloadCompact.cs
+++ b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.ChangeViewPayloadCompact.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System.IO;
diff --git a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.CommitPayloadCompact.cs b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.CommitPayloadCompact.cs
index f52c7932a..56a51bf87 100644
--- a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.CommitPayloadCompact.cs
+++ b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.CommitPayloadCompact.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.IO;
diff --git a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.PreparationPayloadCompact.cs b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.PreparationPayloadCompact.cs
index 65aecdb1f..f6fbe52c1 100644
--- a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.PreparationPayloadCompact.cs
+++ b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.PreparationPayloadCompact.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System.IO;
diff --git a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.cs b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.cs
index 046fae5e3..7032166e1 100644
--- a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.cs
+++ b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryMessage.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.Network.P2P.Payloads;
using System;
diff --git a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryRequest.cs b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryRequest.cs
index 6ea0d7c2f..c6427857f 100644
--- a/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryRequest.cs
+++ b/src/DBFTPlugin/Messages/RecoveryMessage/RecoveryRequest.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.IO;
namespace Neo.Consensus
diff --git a/src/DBFTPlugin/Settings.cs b/src/DBFTPlugin/Settings.cs
index 29064d96f..a67e2e335 100644
--- a/src/DBFTPlugin/Settings.cs
+++ b/src/DBFTPlugin/Settings.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Microsoft.Extensions.Configuration;
namespace Neo.Consensus
diff --git a/src/DBFTPlugin/Types/ChangeViewReason.cs b/src/DBFTPlugin/Types/ChangeViewReason.cs
index 87c88c74c..a1fcd7d2a 100644
--- a/src/DBFTPlugin/Types/ChangeViewReason.cs
+++ b/src/DBFTPlugin/Types/ChangeViewReason.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
namespace Neo.Consensus
{
public enum ChangeViewReason : byte
diff --git a/src/DBFTPlugin/Types/ConsensusMessageType.cs b/src/DBFTPlugin/Types/ConsensusMessageType.cs
index a55846cf5..eef904b25 100644
--- a/src/DBFTPlugin/Types/ConsensusMessageType.cs
+++ b/src/DBFTPlugin/Types/ConsensusMessageType.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Consensus.DBFT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
namespace Neo.Consensus
{
public enum ConsensusMessageType : byte
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 7fa5a9566..a14a784b1 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -14,7 +14,7 @@
-
+
diff --git a/src/LevelDBStore/IO/Data/LevelDB/DB.cs b/src/LevelDBStore/IO/Data/LevelDB/DB.cs
index 56316ec7c..ec1de0ad4 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/DB.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/DB.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.IO;
diff --git a/src/LevelDBStore/IO/Data/LevelDB/Helper.cs b/src/LevelDBStore/IO/Data/LevelDB/Helper.cs
index cad32f0d1..d9c68f0f0 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/Helper.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/Helper.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Persistence;
using System;
using System.Collections.Generic;
diff --git a/src/LevelDBStore/IO/Data/LevelDB/Iterator.cs b/src/LevelDBStore/IO/Data/LevelDB/Iterator.cs
index 58ddb8b01..ae9c65f7f 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/Iterator.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/Iterator.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.IO.Data.LevelDB
diff --git a/src/LevelDBStore/IO/Data/LevelDB/LevelDBException.cs b/src/LevelDBStore/IO/Data/LevelDB/LevelDBException.cs
index 8804f1f7f..67fcc860f 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/LevelDBException.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/LevelDBException.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.Data.Common;
namespace Neo.IO.Data.LevelDB
diff --git a/src/LevelDBStore/IO/Data/LevelDB/Native.cs b/src/LevelDBStore/IO/Data/LevelDB/Native.cs
index 1743989d7..0fb281108 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/Native.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/Native.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
diff --git a/src/LevelDBStore/IO/Data/LevelDB/Options.cs b/src/LevelDBStore/IO/Data/LevelDB/Options.cs
index 53dd6e488..548b61d44 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/Options.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/Options.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.IO.Data.LevelDB
diff --git a/src/LevelDBStore/IO/Data/LevelDB/ReadOptions.cs b/src/LevelDBStore/IO/Data/LevelDB/ReadOptions.cs
index 9c198cfba..25f9bd11b 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/ReadOptions.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/ReadOptions.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.IO.Data.LevelDB
diff --git a/src/LevelDBStore/IO/Data/LevelDB/Snapshot.cs b/src/LevelDBStore/IO/Data/LevelDB/Snapshot.cs
index d65109838..1c8ab8fa2 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/Snapshot.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/Snapshot.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.IO.Data.LevelDB
diff --git a/src/LevelDBStore/IO/Data/LevelDB/WriteBatch.cs b/src/LevelDBStore/IO/Data/LevelDB/WriteBatch.cs
index 8434038ba..b5458b9b6 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/WriteBatch.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/WriteBatch.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.IO.Data.LevelDB
diff --git a/src/LevelDBStore/IO/Data/LevelDB/WriteOptions.cs b/src/LevelDBStore/IO/Data/LevelDB/WriteOptions.cs
index 7fb46cdf6..5b612c7b6 100644
--- a/src/LevelDBStore/IO/Data/LevelDB/WriteOptions.cs
+++ b/src/LevelDBStore/IO/Data/LevelDB/WriteOptions.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.IO.Data.LevelDB
diff --git a/src/LevelDBStore/Plugins/Storage/LevelDBStore.cs b/src/LevelDBStore/Plugins/Storage/LevelDBStore.cs
index b90fcef77..6f1e60b10 100644
--- a/src/LevelDBStore/Plugins/Storage/LevelDBStore.cs
+++ b/src/LevelDBStore/Plugins/Storage/LevelDBStore.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Data.LevelDB;
using Neo.Persistence;
using System;
diff --git a/src/LevelDBStore/Plugins/Storage/Snapshot.cs b/src/LevelDBStore/Plugins/Storage/Snapshot.cs
index 4743affc4..c82acbf36 100644
--- a/src/LevelDBStore/Plugins/Storage/Snapshot.cs
+++ b/src/LevelDBStore/Plugins/Storage/Snapshot.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Data.LevelDB;
using Neo.Persistence;
using System.Collections.Generic;
diff --git a/src/LevelDBStore/Plugins/Storage/Store.cs b/src/LevelDBStore/Plugins/Storage/Store.cs
index 556d69be7..1fd5f2e2a 100644
--- a/src/LevelDBStore/Plugins/Storage/Store.cs
+++ b/src/LevelDBStore/Plugins/Storage/Store.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.LevelDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Data.LevelDB;
using Neo.Persistence;
using System.Collections.Generic;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Cache.cs b/src/MPTTrie/Cryptography/MPTTrie/Cache.cs
index 4600c0566..1918a3af4 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Cache.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Cache.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.Persistence;
using System.Collections.Generic;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Helper.cs b/src/MPTTrie/Cryptography/MPTTrie/Helper.cs
index c3d9ad775..786ed836a 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Helper.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Helper.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.Cryptography.MPTTrie
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Node.Branch.cs b/src/MPTTrie/Cryptography/MPTTrie/Node.Branch.cs
index 948abd5b4..c5c4ed495 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Node.Branch.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Node.Branch.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.IO;
namespace Neo.Cryptography.MPTTrie
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Node.Extension.cs b/src/MPTTrie/Cryptography/MPTTrie/Node.Extension.cs
index ecb799799..9742b25a7 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Node.Extension.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Node.Extension.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.SmartContract;
using System;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Node.Hash.cs b/src/MPTTrie/Cryptography/MPTTrie/Node.Hash.cs
index 0e868b941..1076e51d9 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Node.Hash.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Node.Hash.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.IO;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Node.Leaf.cs b/src/MPTTrie/Cryptography/MPTTrie/Node.Leaf.cs
index 5439a034a..14074a8a3 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Node.Leaf.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Node.Leaf.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.SmartContract;
using System;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Node.cs b/src/MPTTrie/Cryptography/MPTTrie/Node.cs
index c5d3b8b69..5b23930b2 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Node.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Node.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.IO;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/NodeType.cs b/src/MPTTrie/Cryptography/MPTTrie/NodeType.cs
index 48cdbe4da..4305beca2 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/NodeType.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/NodeType.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
namespace Neo.Cryptography.MPTTrie
{
public enum NodeType : byte
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Trie.Delete.cs b/src/MPTTrie/Cryptography/MPTTrie/Trie.Delete.cs
index 941f36e98..cd74905e3 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Trie.Delete.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Trie.Delete.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.Collections.Generic;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Trie.Find.cs b/src/MPTTrie/Cryptography/MPTTrie/Trie.Find.cs
index efbcdbc50..eaf707c93 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Trie.Find.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Trie.Find.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.Collections.Generic;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Trie.Get.cs b/src/MPTTrie/Cryptography/MPTTrie/Trie.Get.cs
index f7fc60375..e95ecac85 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Trie.Get.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Trie.Get.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
using System.Collections.Generic;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Trie.Proof.cs b/src/MPTTrie/Cryptography/MPTTrie/Trie.Proof.cs
index 92ebf9100..e81381f20 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Trie.Proof.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Trie.Proof.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.Persistence;
using System;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Trie.Put.cs b/src/MPTTrie/Cryptography/MPTTrie/Trie.Put.cs
index 9c47cd188..acab5d1cd 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Trie.Put.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Trie.Put.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System;
diff --git a/src/MPTTrie/Cryptography/MPTTrie/Trie.cs b/src/MPTTrie/Cryptography/MPTTrie/Trie.cs
index 40d02faa5..012c0599e 100644
--- a/src/MPTTrie/Cryptography/MPTTrie/Trie.cs
+++ b/src/MPTTrie/Cryptography/MPTTrie/Trie.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.Persistence;
using System;
diff --git a/src/MPTTrie/IO/ByteArrayEqualityComparer.cs b/src/MPTTrie/IO/ByteArrayEqualityComparer.cs
index aeabd947c..54a74f9a6 100644
--- a/src/MPTTrie/IO/ByteArrayEqualityComparer.cs
+++ b/src/MPTTrie/IO/ByteArrayEqualityComparer.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Cryptography.MPT is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.Collections.Generic;
namespace Neo.IO
diff --git a/src/OracleService/Helper.cs b/src/OracleService/Helper.cs
index a8abedebd..d9e8c26d3 100644
--- a/src/OracleService/Helper.cs
+++ b/src/OracleService/Helper.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.OracleService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.Linq;
using System.Net;
diff --git a/src/OracleService/OracleService.cs b/src/OracleService/OracleService.cs
index b7d00b736..68b9216e6 100644
--- a/src/OracleService/OracleService.cs
+++ b/src/OracleService/OracleService.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.OracleService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Akka.Util.Internal;
using Neo.ConsoleService;
diff --git a/src/OracleService/OracleService.csproj b/src/OracleService/OracleService.csproj
index 86c58725e..5a23b647d 100644
--- a/src/OracleService/OracleService.csproj
+++ b/src/OracleService/OracleService.csproj
@@ -6,7 +6,7 @@
-
+
diff --git a/src/OracleService/Protocols/IOracleProtocol.cs b/src/OracleService/Protocols/IOracleProtocol.cs
index 7f7b7c717..bb9a98409 100644
--- a/src/OracleService/Protocols/IOracleProtocol.cs
+++ b/src/OracleService/Protocols/IOracleProtocol.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.OracleService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Network.P2P.Payloads;
using System;
using System.Threading;
diff --git a/src/OracleService/Protocols/OracleHttpsProtocol.cs b/src/OracleService/Protocols/OracleHttpsProtocol.cs
index 3fa20669f..e9d0d23c5 100644
--- a/src/OracleService/Protocols/OracleHttpsProtocol.cs
+++ b/src/OracleService/Protocols/OracleHttpsProtocol.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.OracleService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Network.P2P.Payloads;
using System;
using System.Linq;
@@ -12,7 +22,7 @@ namespace Neo.Plugins
{
class OracleHttpsProtocol : IOracleProtocol
{
- private readonly HttpClient client = new HttpClient();
+ private readonly HttpClient client = new(new HttpClientHandler { MaxAutomaticRedirections = 5 });
public OracleHttpsProtocol()
{
@@ -40,7 +50,7 @@ public void Dispose()
if (!Settings.Default.AllowPrivateHost)
{
- IPHostEntry entry = await Dns.GetHostEntryAsync(uri.Host);
+ IPHostEntry entry = await Dns.GetHostEntryAsync(uri.Host, cancellation);
if (entry.IsInternal())
return (OracleResponseCode.Forbidden, null);
}
@@ -62,6 +72,14 @@ public void Dispose()
return (OracleResponseCode.Error, null);
if (!Settings.Default.AllowedContentTypes.Contains(message.Content.Headers.ContentType.MediaType))
return (OracleResponseCode.ContentTypeNotSupported, null);
+
+ if (!Settings.Default.AllowPrivateHost && message.RequestMessage.RequestUri != uri)
+ {
+ IPHostEntry entry = await Dns.GetHostEntryAsync(message.RequestMessage.RequestUri.Host, cancellation);
+ if (entry.IsInternal())
+ return (OracleResponseCode.Forbidden, null);
+ }
+
return (OracleResponseCode.Success, await message.Content.ReadAsStringAsync(cancellation));
}
}
diff --git a/src/OracleService/Protocols/OracleNeoFSProtocol.cs b/src/OracleService/Protocols/OracleNeoFSProtocol.cs
index 61091b70f..5f2f7af79 100644
--- a/src/OracleService/Protocols/OracleNeoFSProtocol.cs
+++ b/src/OracleService/Protocols/OracleNeoFSProtocol.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.OracleService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography.ECC;
using Neo.FileStorage.API.Client;
using Neo.FileStorage.API.Cryptography;
diff --git a/src/OracleService/Settings.cs b/src/OracleService/Settings.cs
index 600540be2..3fa1a3fd4 100644
--- a/src/OracleService/Settings.cs
+++ b/src/OracleService/Settings.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.OracleService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Microsoft.Extensions.Configuration;
using System;
using System.Linq;
diff --git a/src/RocksDBStore/Plugins/Storage/Options.cs b/src/RocksDBStore/Plugins/Storage/Options.cs
index 56357a0ee..a61bb6bb3 100644
--- a/src/RocksDBStore/Plugins/Storage/Options.cs
+++ b/src/RocksDBStore/Plugins/Storage/Options.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.RocksDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using RocksDbSharp;
namespace Neo.Plugins.Storage
diff --git a/src/RocksDBStore/Plugins/Storage/RocksDBStore.cs b/src/RocksDBStore/Plugins/Storage/RocksDBStore.cs
index 0ed723fa6..5d76a3b91 100644
--- a/src/RocksDBStore/Plugins/Storage/RocksDBStore.cs
+++ b/src/RocksDBStore/Plugins/Storage/RocksDBStore.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.RocksDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Persistence;
namespace Neo.Plugins.Storage
diff --git a/src/RocksDBStore/Plugins/Storage/Snapshot.cs b/src/RocksDBStore/Plugins/Storage/Snapshot.cs
index 38e016e8d..b28f0d73c 100644
--- a/src/RocksDBStore/Plugins/Storage/Snapshot.cs
+++ b/src/RocksDBStore/Plugins/Storage/Snapshot.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.RocksDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Persistence;
using RocksDbSharp;
using System;
diff --git a/src/RocksDBStore/Plugins/Storage/Store.cs b/src/RocksDBStore/Plugins/Storage/Store.cs
index 88fa2ae8b..511563f10 100644
--- a/src/RocksDBStore/Plugins/Storage/Store.cs
+++ b/src/RocksDBStore/Plugins/Storage/Store.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.Storage.RocksDBStore is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Persistence;
using RocksDbSharp;
using System;
diff --git a/src/RpcClient/ContractClient.cs b/src/RpcClient/ContractClient.cs
index 34d3869e8..431bb4ed6 100644
--- a/src/RpcClient/ContractClient.cs
+++ b/src/RpcClient/ContractClient.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Network.P2P.Payloads;
using Neo.Network.RPC.Models;
using Neo.SmartContract;
diff --git a/src/RpcClient/Models/RpcAccount.cs b/src/RpcClient/Models/RpcAccount.cs
index 8a4d78922..ab396279a 100644
--- a/src/RpcClient/Models/RpcAccount.cs
+++ b/src/RpcClient/Models/RpcAccount.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
namespace Neo.Network.RPC.Models
diff --git a/src/RpcClient/Models/RpcApplicationLog.cs b/src/RpcClient/Models/RpcApplicationLog.cs
index 3bc343039..9f2041d10 100644
--- a/src/RpcClient/Models/RpcApplicationLog.cs
+++ b/src/RpcClient/Models/RpcApplicationLog.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.SmartContract;
using Neo.VM;
diff --git a/src/RpcClient/Models/RpcBlock.cs b/src/RpcClient/Models/RpcBlock.cs
index c1e511f46..bcc9fe904 100644
--- a/src/RpcClient/Models/RpcBlock.cs
+++ b/src/RpcClient/Models/RpcBlock.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
diff --git a/src/RpcClient/Models/RpcBlockHeader.cs b/src/RpcClient/Models/RpcBlockHeader.cs
index 62e576369..8ef1f4dd6 100644
--- a/src/RpcClient/Models/RpcBlockHeader.cs
+++ b/src/RpcClient/Models/RpcBlockHeader.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
diff --git a/src/RpcClient/Models/RpcContractState.cs b/src/RpcClient/Models/RpcContractState.cs
index 5475a89de..def5fba55 100644
--- a/src/RpcClient/Models/RpcContractState.cs
+++ b/src/RpcClient/Models/RpcContractState.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.SmartContract;
using Neo.SmartContract.Manifest;
diff --git a/src/RpcClient/Models/RpcFoundStates.cs b/src/RpcClient/Models/RpcFoundStates.cs
index 665e34e9e..755d771c8 100644
--- a/src/RpcClient/Models/RpcFoundStates.cs
+++ b/src/RpcClient/Models/RpcFoundStates.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Linq;
using Neo.IO.Json;
diff --git a/src/RpcClient/Models/RpcInvokeResult.cs b/src/RpcClient/Models/RpcInvokeResult.cs
index 1fc907b1f..4a4fcb2e8 100644
--- a/src/RpcClient/Models/RpcInvokeResult.cs
+++ b/src/RpcClient/Models/RpcInvokeResult.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.VM;
using Neo.VM.Types;
diff --git a/src/RpcClient/Models/RpcMethodToken.cs b/src/RpcClient/Models/RpcMethodToken.cs
index 3b7eea854..7734678b0 100644
--- a/src/RpcClient/Models/RpcMethodToken.cs
+++ b/src/RpcClient/Models/RpcMethodToken.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.SmartContract;
using System;
diff --git a/src/RpcClient/Models/RpcNativeContract.cs b/src/RpcClient/Models/RpcNativeContract.cs
index eadfaee16..996611635 100644
--- a/src/RpcClient/Models/RpcNativeContract.cs
+++ b/src/RpcClient/Models/RpcNativeContract.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.SmartContract;
using Neo.SmartContract.Manifest;
diff --git a/src/RpcClient/Models/RpcNefFile.cs b/src/RpcClient/Models/RpcNefFile.cs
index 3b13eb03b..34663fe13 100644
--- a/src/RpcClient/Models/RpcNefFile.cs
+++ b/src/RpcClient/Models/RpcNefFile.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.SmartContract;
using System;
diff --git a/src/RpcClient/Models/RpcNep17Balances.cs b/src/RpcClient/Models/RpcNep17Balances.cs
index 4776e5c05..af5b3c483 100644
--- a/src/RpcClient/Models/RpcNep17Balances.cs
+++ b/src/RpcClient/Models/RpcNep17Balances.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Wallets;
using System.Collections.Generic;
diff --git a/src/RpcClient/Models/RpcNep17TokenInfo.cs b/src/RpcClient/Models/RpcNep17TokenInfo.cs
index d28873943..4cda5c918 100644
--- a/src/RpcClient/Models/RpcNep17TokenInfo.cs
+++ b/src/RpcClient/Models/RpcNep17TokenInfo.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.Numerics;
namespace Neo.Network.RPC.Models
diff --git a/src/RpcClient/Models/RpcNep17Transfers.cs b/src/RpcClient/Models/RpcNep17Transfers.cs
index 98754835f..3e8da04ea 100644
--- a/src/RpcClient/Models/RpcNep17Transfers.cs
+++ b/src/RpcClient/Models/RpcNep17Transfers.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Wallets;
using System.Collections.Generic;
diff --git a/src/RpcClient/Models/RpcPeers.cs b/src/RpcClient/Models/RpcPeers.cs
index c1cc2adbb..95a41e4d9 100644
--- a/src/RpcClient/Models/RpcPeers.cs
+++ b/src/RpcClient/Models/RpcPeers.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using System.Linq;
diff --git a/src/RpcClient/Models/RpcPlugin.cs b/src/RpcClient/Models/RpcPlugin.cs
index 423b9f266..d75bd0481 100644
--- a/src/RpcClient/Models/RpcPlugin.cs
+++ b/src/RpcClient/Models/RpcPlugin.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using System.Linq;
diff --git a/src/RpcClient/Models/RpcRawMemPool.cs b/src/RpcClient/Models/RpcRawMemPool.cs
index e034020e9..6e2d9cdb6 100644
--- a/src/RpcClient/Models/RpcRawMemPool.cs
+++ b/src/RpcClient/Models/RpcRawMemPool.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using System.Collections.Generic;
using System.Linq;
diff --git a/src/RpcClient/Models/RpcRequest.cs b/src/RpcClient/Models/RpcRequest.cs
index 6165e97f6..e46dde283 100644
--- a/src/RpcClient/Models/RpcRequest.cs
+++ b/src/RpcClient/Models/RpcRequest.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using System.Linq;
diff --git a/src/RpcClient/Models/RpcResponse.cs b/src/RpcClient/Models/RpcResponse.cs
index d44331e95..898eb7f77 100644
--- a/src/RpcClient/Models/RpcResponse.cs
+++ b/src/RpcClient/Models/RpcResponse.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
namespace Neo.Network.RPC.Models
diff --git a/src/RpcClient/Models/RpcStateRoot.cs b/src/RpcClient/Models/RpcStateRoot.cs
index e9069974e..9991c5173 100644
--- a/src/RpcClient/Models/RpcStateRoot.cs
+++ b/src/RpcClient/Models/RpcStateRoot.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.Linq;
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
diff --git a/src/RpcClient/Models/RpcTransaction.cs b/src/RpcClient/Models/RpcTransaction.cs
index fded5738e..b0a0daf06 100644
--- a/src/RpcClient/Models/RpcTransaction.cs
+++ b/src/RpcClient/Models/RpcTransaction.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
using Neo.VM;
diff --git a/src/RpcClient/Models/RpcTransferOut.cs b/src/RpcClient/Models/RpcTransferOut.cs
index 862c3f703..742597068 100644
--- a/src/RpcClient/Models/RpcTransferOut.cs
+++ b/src/RpcClient/Models/RpcTransferOut.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Wallets;
diff --git a/src/RpcClient/Models/RpcUnclaimedGas.cs b/src/RpcClient/Models/RpcUnclaimedGas.cs
index 00b9676b1..eb0c2d719 100644
--- a/src/RpcClient/Models/RpcUnclaimedGas.cs
+++ b/src/RpcClient/Models/RpcUnclaimedGas.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
namespace Neo.Network.RPC.Models
diff --git a/src/RpcClient/Models/RpcValidateAddressResult.cs b/src/RpcClient/Models/RpcValidateAddressResult.cs
index 19eb10296..2c671d289 100644
--- a/src/RpcClient/Models/RpcValidateAddressResult.cs
+++ b/src/RpcClient/Models/RpcValidateAddressResult.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
namespace Neo.Network.RPC.Models
diff --git a/src/RpcClient/Models/RpcValidator.cs b/src/RpcClient/Models/RpcValidator.cs
index 10a07db91..5e357d74e 100644
--- a/src/RpcClient/Models/RpcValidator.cs
+++ b/src/RpcClient/Models/RpcValidator.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using System.Numerics;
diff --git a/src/RpcClient/Models/RpcVersion.cs b/src/RpcClient/Models/RpcVersion.cs
index 92dc80a07..ef5327289 100644
--- a/src/RpcClient/Models/RpcVersion.cs
+++ b/src/RpcClient/Models/RpcVersion.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
namespace Neo.Network.RPC.Models
diff --git a/src/RpcClient/Nep17API.cs b/src/RpcClient/Nep17API.cs
index a122e0655..3b6ae382a 100644
--- a/src/RpcClient/Nep17API.cs
+++ b/src/RpcClient/Nep17API.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography.ECC;
using Neo.Network.P2P.Payloads;
using Neo.Network.RPC.Models;
diff --git a/src/RpcClient/PolicyAPI.cs b/src/RpcClient/PolicyAPI.cs
index baefb03e4..cec95d43d 100644
--- a/src/RpcClient/PolicyAPI.cs
+++ b/src/RpcClient/PolicyAPI.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.SmartContract.Native;
using System.Linq;
using System.Threading.Tasks;
diff --git a/src/RpcClient/Properties/AssemblyInfo.cs b/src/RpcClient/Properties/AssemblyInfo.cs
index 46ff5b88b..145b0d3ee 100644
--- a/src/RpcClient/Properties/AssemblyInfo.cs
+++ b/src/RpcClient/Properties/AssemblyInfo.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Neo.Network.RPC.Tests")]
diff --git a/src/RpcClient/RpcClient.cs b/src/RpcClient/RpcClient.cs
index 9c1809dd3..a6d76fffa 100644
--- a/src/RpcClient/RpcClient.cs
+++ b/src/RpcClient/RpcClient.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
diff --git a/src/RpcClient/RpcException.cs b/src/RpcClient/RpcException.cs
index b5030750c..5e0f1e467 100644
--- a/src/RpcClient/RpcException.cs
+++ b/src/RpcClient/RpcException.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.Network.RPC
diff --git a/src/RpcClient/StateAPI.cs b/src/RpcClient/StateAPI.cs
index d7234cc10..3ffb03b56 100644
--- a/src/RpcClient/StateAPI.cs
+++ b/src/RpcClient/StateAPI.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/src/RpcClient/TransactionManager.cs b/src/RpcClient/TransactionManager.cs
index 921898073..193f9df3b 100644
--- a/src/RpcClient/TransactionManager.cs
+++ b/src/RpcClient/TransactionManager.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography.ECC;
using Neo.IO;
using Neo.Network.P2P.Payloads;
diff --git a/src/RpcClient/TransactionManagerFactory.cs b/src/RpcClient/TransactionManagerFactory.cs
index eddeb4888..ebf5da41d 100644
--- a/src/RpcClient/TransactionManagerFactory.cs
+++ b/src/RpcClient/TransactionManagerFactory.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Network.P2P.Payloads;
using Neo.Network.RPC.Models;
using System;
diff --git a/src/RpcClient/Utility.cs b/src/RpcClient/Utility.cs
index ee0b9e5b6..3a35261e2 100644
--- a/src/RpcClient/Utility.cs
+++ b/src/RpcClient/Utility.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography.ECC;
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
diff --git a/src/RpcClient/WalletAPI.cs b/src/RpcClient/WalletAPI.cs
index 106dd7dce..0d9e95a7b 100644
--- a/src/RpcClient/WalletAPI.cs
+++ b/src/RpcClient/WalletAPI.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography.ECC;
using Neo.Network.P2P.Payloads;
using Neo.Network.RPC.Models;
diff --git a/src/RpcServer/RpcException.cs b/src/RpcServer/RpcException.cs
index dbe03c109..2fbe1d990 100644
--- a/src/RpcServer/RpcException.cs
+++ b/src/RpcServer/RpcException.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.Plugins
diff --git a/src/RpcServer/RpcMethodAttribute.cs b/src/RpcServer/RpcMethodAttribute.cs
index f560ba555..5e3a14412 100644
--- a/src/RpcServer/RpcMethodAttribute.cs
+++ b/src/RpcServer/RpcMethodAttribute.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.Plugins
diff --git a/src/RpcServer/RpcServer.Blockchain.cs b/src/RpcServer/RpcServer.Blockchain.cs
index 9c152a233..e1f1668a0 100644
--- a/src/RpcServer/RpcServer.Blockchain.cs
+++ b/src/RpcServer/RpcServer.Blockchain.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
diff --git a/src/RpcServer/RpcServer.Node.cs b/src/RpcServer/RpcServer.Node.cs
index fd0f7e48e..4b044d756 100644
--- a/src/RpcServer/RpcServer.Node.cs
+++ b/src/RpcServer/RpcServer.Node.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.IO;
using Neo.IO.Json;
diff --git a/src/RpcServer/RpcServer.SmartContract.cs b/src/RpcServer/RpcServer.SmartContract.cs
index b61d9e74a..fe89e9419 100644
--- a/src/RpcServer/RpcServer.SmartContract.cs
+++ b/src/RpcServer/RpcServer.SmartContract.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography.ECC;
using Neo.IO;
using Neo.IO.Json;
@@ -12,6 +22,8 @@
using System;
using System.IO;
using System.Linq;
+using Neo.IO.Caching;
+using Neo.Network.P2P.Payloads.Conditions;
namespace Neo.Plugins
{
@@ -59,7 +71,7 @@ public void SerializeUnsigned(BinaryWriter writer)
}
}
- private JObject GetInvokeResult(byte[] script, Signers signers = null)
+ private JObject GetInvokeResult(byte[] script, Signers signers = null, bool useDiagnostic = false)
{
Transaction tx = signers == null ? null : new Transaction
{
@@ -67,12 +79,28 @@ private JObject GetInvokeResult(byte[] script, Signers signers = null)
Attributes = System.Array.Empty(),
Witnesses = signers.Witnesses,
};
- using ApplicationEngine engine = ApplicationEngine.Run(script, system.StoreView, container: tx, settings: system.Settings, gas: settings.MaxGasInvoke);
+ using ApplicationEngine engine = ApplicationEngine.Run(script, system.StoreView, container: tx, settings: system.Settings, gas: settings.MaxGasInvoke, diagnostic: useDiagnostic ? new Diagnostic() : null);
JObject json = new();
json["script"] = Convert.ToBase64String(script);
json["state"] = engine.State;
json["gasconsumed"] = engine.GasConsumed.ToString();
json["exception"] = GetExceptionMessage(engine.FaultException);
+ json["notifications"] = new JArray(engine.Notifications.Select(n =>
+ {
+ var obj = new JObject();
+ obj["eventname"] = n.EventName;
+ obj["contract"] = n.ScriptHash.ToString();
+ obj["state"] = ToJson(n.State, settings.MaxIteratorResultItems);
+ return obj;
+ }));
+ if (useDiagnostic)
+ {
+ json["diagnostics"] = new JObject()
+ {
+ ["invokedcontracts"] = ToJson(engine.Diagnostic.InvocationTree.Root),
+ ["storagechanges"] = ToJson(engine.Snapshot.GetChangeSet())
+ };
+ }
try
{
json["stack"] = new JArray(engine.ResultStack.Select(p => ToJson(p, settings.MaxIteratorResultItems)));
@@ -88,6 +116,32 @@ private JObject GetInvokeResult(byte[] script, Signers signers = null)
return json;
}
+ private static JObject ToJson(TreeNode node)
+ {
+ JObject json = new();
+ json["hash"] = node.Item.ToString();
+ if (node.Children.Any())
+ {
+ json["call"] = new JArray(node.Children.Select(ToJson));
+ }
+ return json;
+ }
+
+ private static JObject ToJson(System.Collections.Generic.IEnumerable changes)
+ {
+ JArray array = new();
+ foreach (var entry in changes)
+ {
+ array.Add(new JObject
+ {
+ ["state"] = entry.State.ToString(),
+ ["key"] = Convert.ToBase64String(entry.Key.ToArray()),
+ ["value"] = Convert.ToBase64String(entry.Item.Value.ToArray())
+ });
+ }
+ return array;
+ }
+
private static JObject ToJson(StackItem item, int max)
{
JObject json = item.ToJson();
@@ -112,7 +166,8 @@ private static Signers SignersFromJson(JArray _params, ProtocolSettings settings
Account = AddressToScriptHash(u["account"].AsString(), settings.AddressVersion),
Scopes = (WitnessScope)Enum.Parse(typeof(WitnessScope), u["scopes"]?.AsString()),
AllowedContracts = ((JArray)u["allowedcontracts"])?.Select(p => UInt160.Parse(p.AsString())).ToArray(),
- AllowedGroups = ((JArray)u["allowedgroups"])?.Select(p => ECPoint.Parse(p.AsString(), ECCurve.Secp256r1)).ToArray()
+ AllowedGroups = ((JArray)u["allowedgroups"])?.Select(p => ECPoint.Parse(p.AsString(), ECCurve.Secp256r1)).ToArray(),
+ Rules = ((JArray)u["rules"])?.Select(WitnessRule.FromJson).ToArray(),
}).ToArray())
{
Witnesses = _params
@@ -143,13 +198,14 @@ protected virtual JObject InvokeFunction(JArray _params)
string operation = _params[1].AsString();
ContractParameter[] args = _params.Count >= 3 ? ((JArray)_params[2]).Select(p => ContractParameter.FromJson(p)).ToArray() : System.Array.Empty();
Signers signers = _params.Count >= 4 ? SignersFromJson((JArray)_params[3], system.Settings) : null;
+ bool useDiagnostic = _params.Count >= 5 && _params[4].GetBoolean();
byte[] script;
using (ScriptBuilder sb = new())
{
script = sb.EmitDynamicCall(script_hash, operation, args).ToArray();
}
- return GetInvokeResult(script, signers);
+ return GetInvokeResult(script, signers, useDiagnostic);
}
[RpcMethod]
@@ -157,7 +213,8 @@ protected virtual JObject InvokeScript(JArray _params)
{
byte[] script = Convert.FromBase64String(_params[0].AsString());
Signers signers = _params.Count >= 2 ? SignersFromJson((JArray)_params[1], system.Settings) : null;
- return GetInvokeResult(script, signers);
+ bool useDiagnostic = _params.Count >= 3 && _params[2].GetBoolean();
+ return GetInvokeResult(script, signers, useDiagnostic);
}
[RpcMethod]
diff --git a/src/RpcServer/RpcServer.Utilities.cs b/src/RpcServer/RpcServer.Utilities.cs
index 80e76882d..134c4a5c0 100644
--- a/src/RpcServer/RpcServer.Utilities.cs
+++ b/src/RpcServer/RpcServer.Utilities.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Wallets;
using System.Linq;
diff --git a/src/RpcServer/RpcServer.Wallet.cs b/src/RpcServer/RpcServer.Wallet.cs
index 88c81c0c3..f3c94aa25 100644
--- a/src/RpcServer/RpcServer.Wallet.cs
+++ b/src/RpcServer/RpcServer.Wallet.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.IO;
using Neo.IO.Json;
diff --git a/src/RpcServer/RpcServer.cs b/src/RpcServer/RpcServer.cs
index cad415c56..fc26804e3 100644
--- a/src/RpcServer/RpcServer.cs
+++ b/src/RpcServer/RpcServer.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
diff --git a/src/RpcServer/RpcServerPlugin.cs b/src/RpcServer/RpcServerPlugin.cs
index fa939e756..361d27589 100644
--- a/src/RpcServer/RpcServerPlugin.cs
+++ b/src/RpcServer/RpcServerPlugin.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.Collections.Generic;
using System.Linq;
diff --git a/src/RpcServer/Settings.cs b/src/RpcServer/Settings.cs
index 53cc27873..51e57348f 100644
--- a/src/RpcServer/Settings.cs
+++ b/src/RpcServer/Settings.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Microsoft.Extensions.Configuration;
using Neo.SmartContract.Native;
using System;
diff --git a/src/RpcServer/Utility.cs b/src/RpcServer/Utility.cs
index 139ca1461..5d446ba17 100644
--- a/src/RpcServer/Utility.cs
+++ b/src/RpcServer/Utility.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Network.RPC is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO.Json;
using Neo.Network.P2P.Payloads;
using Neo.SmartContract.Native;
diff --git a/src/StateService/Network/MessageType.cs b/src/StateService/Network/MessageType.cs
index 1116f67b1..eaa1ce9f1 100644
--- a/src/StateService/Network/MessageType.cs
+++ b/src/StateService/Network/MessageType.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
namespace Neo.Plugins.StateService.Network
{
enum MessageType : byte
diff --git a/src/StateService/Network/StateRoot.cs b/src/StateService/Network/StateRoot.cs
index 6dd707e8f..2f3b0e1c9 100644
--- a/src/StateService/Network/StateRoot.cs
+++ b/src/StateService/Network/StateRoot.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography;
using Neo.Cryptography.ECC;
using Neo.IO;
diff --git a/src/StateService/Network/Vote.cs b/src/StateService/Network/Vote.cs
index b1225d8c1..b8cc384e0 100644
--- a/src/StateService/Network/Vote.cs
+++ b/src/StateService/Network/Vote.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.IO;
using System.IO;
diff --git a/src/StateService/Settings.cs b/src/StateService/Settings.cs
index 3696d3a67..c07dd8fe0 100644
--- a/src/StateService/Settings.cs
+++ b/src/StateService/Settings.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Microsoft.Extensions.Configuration;
namespace Neo.Plugins.StateService
diff --git a/src/StateService/StatePlugin.cs b/src/StateService/StatePlugin.cs
index 9e834dc15..c86d50c64 100644
--- a/src/StateService/StatePlugin.cs
+++ b/src/StateService/StatePlugin.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.ConsoleService;
using Neo.Cryptography.MPTTrie;
diff --git a/src/StateService/Storage/Keys.cs b/src/StateService/Storage/Keys.cs
index 0a830a838..8a5c05f72 100644
--- a/src/StateService/Storage/Keys.cs
+++ b/src/StateService/Storage/Keys.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Buffers.Binary;
diff --git a/src/StateService/Storage/StateSnapshot.cs b/src/StateService/Storage/StateSnapshot.cs
index 15651758a..ee5743c74 100644
--- a/src/StateService/Storage/StateSnapshot.cs
+++ b/src/StateService/Storage/StateSnapshot.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.Cryptography.MPTTrie;
using Neo.IO;
using Neo.Persistence;
diff --git a/src/StateService/Storage/StateStore.cs b/src/StateService/Storage/StateStore.cs
index 3ebf21aed..ec2adce51 100644
--- a/src/StateService/Storage/StateStore.cs
+++ b/src/StateService/Storage/StateStore.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.IO;
using Neo.Ledger;
diff --git a/src/StateService/Verification/VerificationContext.cs b/src/StateService/Verification/VerificationContext.cs
index 8e0234044..4ec4273a5 100644
--- a/src/StateService/Verification/VerificationContext.cs
+++ b/src/StateService/Verification/VerificationContext.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Neo.Cryptography;
using Neo.Cryptography.ECC;
diff --git a/src/StateService/Verification/VerificationService.cs b/src/StateService/Verification/VerificationService.cs
index 93a5780e1..2deafd257 100644
--- a/src/StateService/Verification/VerificationService.cs
+++ b/src/StateService/Verification/VerificationService.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StateService is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Akka.Actor;
using Akka.Util.Internal;
using Neo.IO;
diff --git a/src/StatesDumper/PersistActions.cs b/src/StatesDumper/PersistActions.cs
index 2359e9a1a..04df2311f 100644
--- a/src/StatesDumper/PersistActions.cs
+++ b/src/StatesDumper/PersistActions.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StatesDumper is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
namespace Neo.Plugins
diff --git a/src/StatesDumper/Settings.cs b/src/StatesDumper/Settings.cs
index ed6f63297..e8361b9ec 100644
--- a/src/StatesDumper/Settings.cs
+++ b/src/StatesDumper/Settings.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StatesDumper is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Microsoft.Extensions.Configuration;
using Neo.SmartContract.Native;
using System.Collections.Generic;
diff --git a/src/StatesDumper/StatesDumper.cs b/src/StatesDumper/StatesDumper.cs
index 39524c848..11f0224b6 100644
--- a/src/StatesDumper/StatesDumper.cs
+++ b/src/StatesDumper/StatesDumper.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.StatesDumper is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using Neo.ConsoleService;
using Neo.IO;
using Neo.IO.Json;
diff --git a/src/TokensTracker/Extensions.cs b/src/TokensTracker/Extensions.cs
index cde477723..4495af66e 100644
--- a/src/TokensTracker/Extensions.cs
+++ b/src/TokensTracker/Extensions.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Collections.Generic;
using System.Numerics;
diff --git a/src/TokensTracker/TokensTracker.cs b/src/TokensTracker/TokensTracker.cs
index c19581dca..73db20d23 100644
--- a/src/TokensTracker/TokensTracker.cs
+++ b/src/TokensTracker/TokensTracker.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/src/TokensTracker/Trackers/NEP-11/Nep11BalanceKey.cs b/src/TokensTracker/Trackers/NEP-11/Nep11BalanceKey.cs
index 96d5059a8..142fad34e 100644
--- a/src/TokensTracker/Trackers/NEP-11/Nep11BalanceKey.cs
+++ b/src/TokensTracker/Trackers/NEP-11/Nep11BalanceKey.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.IO;
using Neo.IO;
diff --git a/src/TokensTracker/Trackers/NEP-11/Nep11Tracker.cs b/src/TokensTracker/Trackers/NEP-11/Nep11Tracker.cs
index 08ca77e99..987ffeae9 100644
--- a/src/TokensTracker/Trackers/NEP-11/Nep11Tracker.cs
+++ b/src/TokensTracker/Trackers/NEP-11/Nep11Tracker.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/src/TokensTracker/Trackers/NEP-11/Nep11TransferKey.cs b/src/TokensTracker/Trackers/NEP-11/Nep11TransferKey.cs
index f615081be..0beb691e6 100644
--- a/src/TokensTracker/Trackers/NEP-11/Nep11TransferKey.cs
+++ b/src/TokensTracker/Trackers/NEP-11/Nep11TransferKey.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.IO;
using Neo.IO;
diff --git a/src/TokensTracker/Trackers/NEP-17/Nep17BalanceKey.cs b/src/TokensTracker/Trackers/NEP-17/Nep17BalanceKey.cs
index 9d0580ce8..08152360c 100644
--- a/src/TokensTracker/Trackers/NEP-17/Nep17BalanceKey.cs
+++ b/src/TokensTracker/Trackers/NEP-17/Nep17BalanceKey.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.IO;
using Neo.IO;
diff --git a/src/TokensTracker/Trackers/NEP-17/Nep17Tracker.cs b/src/TokensTracker/Trackers/NEP-17/Nep17Tracker.cs
index 10d77d1e5..84c2d680a 100644
--- a/src/TokensTracker/Trackers/NEP-17/Nep17Tracker.cs
+++ b/src/TokensTracker/Trackers/NEP-17/Nep17Tracker.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Collections.Generic;
using System.Linq;
diff --git a/src/TokensTracker/Trackers/NEP-17/Nep17TransferKey.cs b/src/TokensTracker/Trackers/NEP-17/Nep17TransferKey.cs
index 3e59377c5..7dff264b4 100644
--- a/src/TokensTracker/Trackers/NEP-17/Nep17TransferKey.cs
+++ b/src/TokensTracker/Trackers/NEP-17/Nep17TransferKey.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using Neo.IO;
diff --git a/src/TokensTracker/Trackers/TokenBalance.cs b/src/TokensTracker/Trackers/TokenBalance.cs
index 58d8c822d..7b62567ca 100644
--- a/src/TokensTracker/Trackers/TokenBalance.cs
+++ b/src/TokensTracker/Trackers/TokenBalance.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.IO;
using System.Numerics;
using Neo.IO;
diff --git a/src/TokensTracker/Trackers/TokenTransfer.cs b/src/TokensTracker/Trackers/TokenTransfer.cs
index c24c0ced1..ff8df2c2a 100644
--- a/src/TokensTracker/Trackers/TokenTransfer.cs
+++ b/src/TokensTracker/Trackers/TokenTransfer.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System.IO;
using System.Numerics;
using Neo.IO;
diff --git a/src/TokensTracker/Trackers/TokenTransferKey.cs b/src/TokensTracker/Trackers/TokenTransferKey.cs
index 81b05d3ab..22d0d36ce 100644
--- a/src/TokensTracker/Trackers/TokenTransferKey.cs
+++ b/src/TokensTracker/Trackers/TokenTransferKey.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Buffers.Binary;
using System.IO;
diff --git a/src/TokensTracker/Trackers/TrackerBase.cs b/src/TokensTracker/Trackers/TrackerBase.cs
index 88e165b6d..35f03f082 100644
--- a/src/TokensTracker/Trackers/TrackerBase.cs
+++ b/src/TokensTracker/Trackers/TrackerBase.cs
@@ -1,3 +1,13 @@
+// Copyright (C) 2015-2021 The Neo Project.
+//
+// The Neo.Plugins.TokensTracker is free software distributed under the MIT software license,
+// see the accompanying file LICENSE in the main directory of the
+// project or http://www.opensource.org/licenses/mit-license.php
+// for more details.
+//
+// Redistribution and use in source and binary forms with or without
+// modifications are permitted.
+
using System;
using System.Buffers.Binary;
using System.Collections.Generic;