diff --git a/src/Neo.Compiler.MSIL/Neo.Compiler.MSIL.csproj b/src/Neo.Compiler.MSIL/Neo.Compiler.MSIL.csproj
index 22e8051b1..bba99611e 100644
--- a/src/Neo.Compiler.MSIL/Neo.Compiler.MSIL.csproj
+++ b/src/Neo.Compiler.MSIL/Neo.Compiler.MSIL.csproj
@@ -41,7 +41,7 @@
-
+
diff --git a/src/Neo.SmartContract.Framework/Services/Neo/ContractManagement.cs b/src/Neo.SmartContract.Framework/Services/Neo/ContractManagement.cs
index 3e85388c8..6527a93c9 100644
--- a/src/Neo.SmartContract.Framework/Services/Neo/ContractManagement.cs
+++ b/src/Neo.SmartContract.Framework/Services/Neo/ContractManagement.cs
@@ -2,7 +2,7 @@
namespace Neo.SmartContract.Framework.Services.Neo
{
- [Contract("0xbee421fdbb3e791265d2104cb34934f53fcc0e45")]
+ [Contract("0xa501d7d7d10983673b61b7a2d3a813b36f9f0e43")]
public class ContractManagement
{
public static extern UInt160 Hash { [ContractHash] get; }
diff --git a/src/Neo.SmartContract.Framework/Services/Neo/GAS.cs b/src/Neo.SmartContract.Framework/Services/Neo/GAS.cs
index dba4b258b..761ff57dc 100644
--- a/src/Neo.SmartContract.Framework/Services/Neo/GAS.cs
+++ b/src/Neo.SmartContract.Framework/Services/Neo/GAS.cs
@@ -4,7 +4,7 @@
namespace Neo.SmartContract.Framework.Services.Neo
{
- [Contract("0x9ac04cf223f646de5f7faccafe34e30e5d4382a2")]
+ [Contract("0x75844530eb44f4715a42950bb59b4d7ace0b2f3d")]
public class GAS
{
public static extern UInt160 Hash { [ContractHash] get; }
diff --git a/src/Neo.SmartContract.Framework/Services/Neo/NEO.cs b/src/Neo.SmartContract.Framework/Services/Neo/NEO.cs
index 0fb6f6caf..ce548b01b 100644
--- a/src/Neo.SmartContract.Framework/Services/Neo/NEO.cs
+++ b/src/Neo.SmartContract.Framework/Services/Neo/NEO.cs
@@ -5,7 +5,7 @@
namespace Neo.SmartContract.Framework.Services.Neo
{
- [Contract("0x4961bf0ab79370b23dc45cde29f568d0e0fa6e93")]
+ [Contract("0xf617baca689d1abddedda7c3b80675c4ac21e932")]
public class NEO
{
public static extern UInt160 Hash { [ContractHash] get; }
diff --git a/src/Neo.SmartContract.Framework/Services/Neo/NameService.cs b/src/Neo.SmartContract.Framework/Services/Neo/NameService.cs
index eb16890ac..f51ec53d9 100644
--- a/src/Neo.SmartContract.Framework/Services/Neo/NameService.cs
+++ b/src/Neo.SmartContract.Framework/Services/Neo/NameService.cs
@@ -4,7 +4,7 @@
namespace Neo.SmartContract.Framework.Services.Neo
{
- [Contract("0xa92fbe5bf164170a624474841485b20b45a26047")]
+ [Contract("0x1bda60bf76671280ab2ab80d78f7ba95434751b5")]
public class NameService
{
// NonfungibleToken
diff --git a/src/Neo.SmartContract.Framework/Services/Neo/Oracle.cs b/src/Neo.SmartContract.Framework/Services/Neo/Oracle.cs
index 3bef3c296..b99c3a113 100644
--- a/src/Neo.SmartContract.Framework/Services/Neo/Oracle.cs
+++ b/src/Neo.SmartContract.Framework/Services/Neo/Oracle.cs
@@ -2,7 +2,7 @@
namespace Neo.SmartContract.Framework.Services.Neo
{
- [Contract("0x8cd3889136056b3304ec59f6d424b8767710ed79")]
+ [Contract("0xb82bbf650f963dbf71577d10ea4077e711a13e7b")]
public class Oracle
{
public static extern UInt160 Hash { [ContractHash] get; }
diff --git a/src/Neo.SmartContract.Framework/Services/Neo/Policy.cs b/src/Neo.SmartContract.Framework/Services/Neo/Policy.cs
index 34afe9873..fbf845db2 100644
--- a/src/Neo.SmartContract.Framework/Services/Neo/Policy.cs
+++ b/src/Neo.SmartContract.Framework/Services/Neo/Policy.cs
@@ -4,7 +4,7 @@
namespace Neo.SmartContract.Framework.Services.Neo
{
- [Contract("0xc939a4af1c762e5edca36d4b61c06ba82c4c6ff5")]
+ [Contract("0xe21a28cfc1e662e152f668c86198141cc17b6c37")]
public class Policy
{
public static extern UInt160 Hash { [ContractHash] get; }
diff --git a/src/Neo.SmartContract.Framework/Services/Neo/RoleManagement.cs b/src/Neo.SmartContract.Framework/Services/Neo/RoleManagement.cs
index 926b65916..d700f97a6 100644
--- a/src/Neo.SmartContract.Framework/Services/Neo/RoleManagement.cs
+++ b/src/Neo.SmartContract.Framework/Services/Neo/RoleManagement.cs
@@ -2,7 +2,7 @@
namespace Neo.SmartContract.Framework.Services.Neo
{
- [Contract("0xf4bbd95569e8dda2cb84eb609a1488ddd0d9fa91")]
+ [Contract("0x69b1909aaa14143b0624ba0d61d5cd3b8b67529d")]
public class RoleManagement
{
public static extern UInt160 Hash { [ContractHash] get; }
diff --git a/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_Delegate.cs b/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_Delegate.cs
index 4cef1abdb..0b79deff4 100644
--- a/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_Delegate.cs
+++ b/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_Delegate.cs
@@ -4,6 +4,7 @@
using Neo.IO;
using Neo.Ledger;
using Neo.Persistence;
+using Neo.SmartContract.Native;
using Neo.VM;
using Neo.VM.Types;
@@ -35,7 +36,7 @@ public void TestFunc()
[TestMethod]
public void TestDelegateCall()
{
- var token = UInt160.Parse("0x4961bf0ab79370b23dc45cde29f568d0e0fa6e93"); // NEO token
+ var token = NativeContract.NEO.Hash; // NEO token
testengine.Reset();
var result = testengine.ExecuteTestCaseStandard("testDynamicCall", token.ToArray(), "symbol");
diff --git a/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_NativeContracts.cs b/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_NativeContracts.cs
index 9bc2b3185..699131f84 100644
--- a/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_NativeContracts.cs
+++ b/tests/Neo.Compiler.MSIL.UnitTests/UnitTest_NativeContracts.cs
@@ -1,3 +1,4 @@
+using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Neo.Compiler.MSIL.Extensions;
using Neo.Compiler.MSIL.UnitTests.Utils;
@@ -22,14 +23,13 @@ public void Test_Init()
[TestMethod]
public void TestHashes()
{
- // var attr = typeof(Oracle).GetCustomAttribute();
- Assert.AreEqual(NativeContract.ContractManagement.Hash.ToString(), "0xbee421fdbb3e791265d2104cb34934f53fcc0e45");
- Assert.AreEqual(NativeContract.RoleManagement.Hash.ToString(), "0xf4bbd95569e8dda2cb84eb609a1488ddd0d9fa91");
- Assert.AreEqual(NativeContract.NameService.Hash.ToString(), "0xa92fbe5bf164170a624474841485b20b45a26047");
- Assert.AreEqual(NativeContract.Oracle.Hash.ToString(), "0x8cd3889136056b3304ec59f6d424b8767710ed79");
- Assert.AreEqual(NativeContract.NEO.Hash.ToString(), "0x4961bf0ab79370b23dc45cde29f568d0e0fa6e93");
- Assert.AreEqual(NativeContract.GAS.Hash.ToString(), "0x9ac04cf223f646de5f7faccafe34e30e5d4382a2");
- Assert.AreEqual(NativeContract.Policy.Hash.ToString(), "0xc939a4af1c762e5edca36d4b61c06ba82c4c6ff5");
+ Assert.AreEqual(NativeContract.ContractManagement.Hash.ToString(), "0xa501d7d7d10983673b61b7a2d3a813b36f9f0e43");
+ Assert.AreEqual(NativeContract.RoleManagement.Hash.ToString(), "0x69b1909aaa14143b0624ba0d61d5cd3b8b67529d");
+ Assert.AreEqual(NativeContract.NameService.Hash.ToString(), "0x1bda60bf76671280ab2ab80d78f7ba95434751b5");
+ Assert.AreEqual(NativeContract.Oracle.Hash.ToString(), "0xb82bbf650f963dbf71577d10ea4077e711a13e7b");
+ Assert.AreEqual(NativeContract.NEO.Hash.ToString(), "0xf617baca689d1abddedda7c3b80675c4ac21e932");
+ Assert.AreEqual(NativeContract.GAS.Hash.ToString(), "0x75844530eb44f4715a42950bb59b4d7ace0b2f3d");
+ Assert.AreEqual(NativeContract.Policy.Hash.ToString(), "0xe21a28cfc1e662e152f668c86198141cc17b6c37");
}
[TestMethod]
diff --git a/tests/Neo.SmartContract.Framework.UnitTests/Services/Neo/ContractTest.cs b/tests/Neo.SmartContract.Framework.UnitTests/Services/Neo/ContractTest.cs
index d543b930a..42a5cb619 100644
--- a/tests/Neo.SmartContract.Framework.UnitTests/Services/Neo/ContractTest.cs
+++ b/tests/Neo.SmartContract.Framework.UnitTests/Services/Neo/ContractTest.cs
@@ -38,9 +38,10 @@ public void Test_CreateCallDestroy()
var script = _engine.Build("./TestClasses/Contract_Create.cs");
var manifest = ContractManifest.FromJson(JObject.Parse(script.finalManifest));
var nef = new NefFile() { Script = script.finalNEFScript, Compiler = "unit-test-1.0", Tokens = System.Array.Empty() };
- var hash = Helper.GetContractHash((_engine.ScriptContainer as Transaction).Sender, nef.Script);
nef.CheckSum = NefFile.ComputeChecksum(nef);
+ var hash = Helper.GetContractHash((_engine.ScriptContainer as Transaction).Sender, nef.CheckSum, manifest.Name);
+
// Create
_engine.Reset();
@@ -96,9 +97,10 @@ public void Test_Update()
Compiler = "unit-test-1.0",
Tokens = script.nefFile.Tokens
};
- var hash = Helper.GetContractHash((_engine.ScriptContainer as Transaction).Sender, nef.Script);
nef.CheckSum = NefFile.ComputeChecksum(nef);
+ var hash = Helper.GetContractHash((_engine.ScriptContainer as Transaction).Sender, nef.CheckSum, manifest.Name);
+
var scriptUpdate = _engine.Build("./TestClasses/Contract_Update.cs");
var manifestUpdate = ContractManifest.FromJson(JObject.Parse(scriptUpdate.finalManifest));