public void TestOnSysCall() { InteropDescriptor descriptor = new InteropDescriptor("System.Blockchain.GetHeight", Blockchain_GetHeight, 0_00000400, TriggerType.Application); TestApplicationEngine engine = new TestApplicationEngine(TriggerType.Application, null, null, 0); byte[] SyscallSystemRuntimeCheckWitnessHash = new byte[] { 0x68, 0xf8, 0x27, 0xec, 0x8c }; engine.LoadScript(SyscallSystemRuntimeCheckWitnessHash); engine.GetOnSysCall(descriptor.Hash).Should().BeFalse(); var mockSnapshot = new Mock <Snapshot>(); TestMetaDataCache <HashIndexState> testCache = new TestMetaDataCache <HashIndexState>(); mockSnapshot.SetupGet(p => p.BlockHashIndex).Returns(testCache); engine = new TestApplicationEngine(TriggerType.Application, null, mockSnapshot.Object, 0, true); engine.LoadScript(SyscallSystemRuntimeCheckWitnessHash); engine.GetOnSysCall(descriptor.Hash).Should().BeTrue(); }
public void TestCreateDummyBlock() { var mockSnapshot = new Mock <Snapshot>(); UInt256 currentBlockHash = UInt256.Parse("0x0000000000000000000000000000000000000000000000000000000000000000"); TrimmedBlock block = new TrimmedBlock(); var cache = new TestDataCache <UInt256, TrimmedBlock>(); cache.Add(currentBlockHash, block); mockSnapshot.SetupGet(p => p.Blocks).Returns(cache); TestMetaDataCache <HashIndexState> testCache = new TestMetaDataCache <HashIndexState>(); mockSnapshot.SetupGet(p => p.BlockHashIndex).Returns(testCache); byte[] SyscallSystemRuntimeCheckWitnessHash = new byte[] { 0x68, 0xf8, 0x27, 0xec, 0x8c }; ApplicationEngine.Run(SyscallSystemRuntimeCheckWitnessHash, mockSnapshot.Object); mockSnapshot.Object.PersistingBlock.Version.Should().Be(0); mockSnapshot.Object.PersistingBlock.PrevHash.Should().Be(currentBlockHash); mockSnapshot.Object.PersistingBlock.MerkleRoot.Should().Be(new UInt256()); }