コード例 #1
0
        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();
        }
コード例 #2
0
        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());
        }