Skip to content

Commit 0292ace

Browse files
authored
Add Hardfork for StrictMode (#2881)
* init * rename
1 parent ab21451 commit 0292ace

File tree

3 files changed

+5
-4
lines changed

3 files changed

+5
-4
lines changed

src/Neo/Hardfork.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ namespace Neo
1212
{
1313
public enum Hardfork : byte
1414
{
15-
HF_Aspidochelone
15+
HF_Aspidochelone,
16+
HF_Basilisk
1617
}
1718
}

src/Neo/SmartContract/ApplicationEngine.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ public void SetState<T>(T state)
610610
states[typeof(T)] = state;
611611
}
612612

613-
private bool IsHardforkEnabled(Hardfork hardfork)
613+
public bool IsHardforkEnabled(Hardfork hardfork)
614614
{
615615
if (PersistingBlock is null)
616616
return true;

src/Neo/SmartContract/Native/ContractManagement.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ private async ContractTask<ContractState> Deploy(ApplicationEngine engine, byte[
231231

232232
NefFile nef = nefFile.AsSerializable<NefFile>();
233233
ContractManifest parsedManifest = ContractManifest.Parse(manifest);
234-
Helper.Check(new VM.Script(nef.Script, true), parsedManifest.Abi);
234+
Helper.Check(new VM.Script(nef.Script, engine.IsHardforkEnabled(Hardfork.HF_Basilisk)), parsedManifest.Abi);
235235
UInt160 hash = Helper.GetContractHash(tx.Sender, nef.CheckSum, parsedManifest.Name);
236236

237237
if (Policy.IsBlocked(engine.Snapshot, hash))
@@ -295,7 +295,7 @@ private ContractTask Update(ApplicationEngine engine, byte[] nefFile, byte[] man
295295
throw new InvalidOperationException($"Invalid Manifest Hash: {contract.Hash}");
296296
contract.Manifest = manifest_new;
297297
}
298-
Helper.Check(new VM.Script(contract.Nef.Script, true), contract.Manifest.Abi);
298+
Helper.Check(new VM.Script(contract.Nef.Script, engine.IsHardforkEnabled(Hardfork.HF_Basilisk)), contract.Manifest.Abi);
299299
contract.UpdateCounter++; // Increase update counter
300300
return OnDeploy(engine, contract, data, true);
301301
}

0 commit comments

Comments
 (0)