public void Init() { // Deploy native contracts var block = new Network.P2P.Payloads.Block() { Index = 0, ConsensusData = new Network.P2P.Payloads.ConsensusData(), Transactions = new Network.P2P.Payloads.Transaction[0], Witness = new Network.P2P.Payloads.Witness() { InvocationScript = new byte[0], VerificationScript = Contract.CreateSignatureRedeemScript(ECPoint.FromBytes(pubKey, ECCurve.Secp256k1)) }, NextConsensus = UInt160.Zero, MerkleRoot = UInt256.Zero, PrevHash = UInt256.Zero }; _engine = new TestEngine(TriggerType.Application, block); ((TestSnapshot)_engine.Snapshot).SetPersistingBlock(block); using (var script = new ScriptBuilder()) { script.EmitSysCall(TestEngine.Native_Deploy); _engine.LoadScript(script.ToArray()); Assert.AreEqual(VMState.HALT, _engine.Execute()); } _engine.Reset(); _engine.AddEntryScript("./TestClasses/Contract_Native.cs"); }
public void Init() { // Deploy native contracts var block = new Network.P2P.Payloads.Block() { Index = 0, ConsensusData = new Network.P2P.Payloads.ConsensusData(), Transactions = new Network.P2P.Payloads.Transaction[0], Witness = new Network.P2P.Payloads.Witness() { InvocationScript = new byte[0], VerificationScript = Contract.CreateSignatureRedeemScript(ECPoint.FromBytes(pubKey, ECCurve.Secp256k1)) }, NextConsensus = UInt160.Zero, MerkleRoot = UInt256.Zero, PrevHash = UInt256.Zero }; _engine = new TestEngine(TriggerType.Application, block); ((TestSnapshot)_engine.Snapshot).SetPersistingBlock(block); _engine.Snapshot.DeployNativeContracts(); _engine.Reset(); _engine.AddEntryScript("./TestClasses/Contract_Native.cs"); }
public void Init() { var _ = TestBlockchain.TheNeoSystem; var snapshot = Blockchain.Singleton.GetSnapshot(); _block = Blockchain.GenesisBlock; _engine = new TestEngine(snapshot: snapshot.Clone()); _engine.AddEntryScript("./TestClasses/Contract_Blockchain.cs"); }
public void Init() { _store = TestBlockchain.GetStore(); var snapshot = _store.GetSnapshot(); _block = Blockchain.GenesisBlock; _engine = new TestEngine(snapshot: snapshot); _engine.AddEntryScript("./TestClasses/Contract_Blockchain.cs"); }
public void Init() { var _ = TestBlockchain.TheNeoSystem; var snapshot = Blockchain.Singleton.GetSnapshot().Clone(); _block = new Network.P2P.Payloads.Block() { ConsensusData = new Network.P2P.Payloads.ConsensusData(), Index = 1, PrevHash = Blockchain.GenesisBlock.Hash, Witness = new Network.P2P.Payloads.Witness() { InvocationScript = new byte[0], VerificationScript = new byte[0] }, NextConsensus = UInt160.Zero, MerkleRoot = UInt256.Zero, Transactions = new Network.P2P.Payloads.Transaction[] { new Network.P2P.Payloads.Transaction() { Attributes = new Network.P2P.Payloads.TransactionAttribute[0], Signers = new Network.P2P.Payloads.Signer[] { new Network.P2P.Payloads.Signer() { Account = UInt160.Zero } }, Witnesses = new Network.P2P.Payloads.Witness[] { }, Script = new byte[0] } } }; snapshot.SetPersistingBlock(_block); snapshot.BlockHashIndex.GetAndChange().Index = _block.Index; snapshot.BlockHashIndex.GetAndChange().Hash = _block.Hash; snapshot.Blocks.Add(_block.Hash, _block.Trim()); snapshot.Transactions.Add(_block.Transactions[0].Hash, new TransactionState() { BlockIndex = _block.Index, Transaction = _block.Transactions[0], VMState = VMState.HALT }); // Fake header_index var header_index = (List <UInt256>)Blockchain.Singleton.GetType() .GetField("header_index", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(Blockchain.Singleton); header_index.Add(_block.Hash); _engine = new TestEngine(snapshot: snapshot); _engine.AddEntryScript("./TestClasses/Contract_Blockchain.cs"); }
public void Init() { // Deploy native contracts var block = new Network.P2P.Payloads.Block() { Header = new Header() { Index = 0, Witness = new Network.P2P.Payloads.Witness() { InvocationScript = System.Array.Empty <byte>(), VerificationScript = Contract.CreateSignatureRedeemScript(ECPoint.FromBytes(pubKey, ECCurve.Secp256k1)) }, NextConsensus = UInt160.Zero, MerkleRoot = UInt256.Zero, PrevHash = UInt256.Zero }, Transactions = new Network.P2P.Payloads.Transaction[0], }; _engine = new TestEngine(TriggerType.Application, block, new TestDataCache(block)); _engine.Reset(); _engine.AddEntryScript("./TestClasses/Contract_Native.cs"); }