public void Creates_new_snapshot() { SnapshotManager snapshotManager = new SnapshotManager(CliqueConfig.Default, _snapshotDb, _blockTree, NullEthereumEcdsa.Instance, LimboLogs.Instance); Block genesis = CliqueTests.GetRinkebyGenesis(); Snapshot snapshot = snapshotManager.GetOrCreateSnapshot(0, genesis.Hash); Assert.AreEqual(genesis.Hash, snapshot.Hash); }
public void Loads_snapshot() { SnapshotManager snapshotManager = new SnapshotManager(CliqueConfig.Default, _snapshotDb, _blockTree, NullEthereumEcdsa.Instance, LimboLogs.Instance); Block genesis = CliqueTests.GetRinkebyGenesis(); Snapshot snapshot = snapshotManager.GetOrCreateSnapshot(0, genesis.Hash); Assert.NotNull(snapshot); Assert.AreEqual(genesis.Hash, snapshot.Hash); Assert.AreEqual(genesis.Number, snapshot.Number); // Check signers Assert.IsTrue(snapshot.Signers.ContainsKey(_signer1)); Assert.IsTrue(snapshot.Signers.ContainsKey(_signer2)); Assert.IsTrue(snapshot.Signers.ContainsKey(_signer3)); }
public void Setup_chain() { // Import blocks _blockTree = Build.A.BlockTree().TestObject; Block block1 = Rlp.Decode <Block>(new Rlp(Bytes.FromHexString(Block1Rlp))); Block block2 = Rlp.Decode <Block>(new Rlp(Bytes.FromHexString(Block2Rlp))); Block block3 = Rlp.Decode <Block>(new Rlp(Bytes.FromHexString(Block3Rlp))); Block block4 = Rlp.Decode <Block>(new Rlp(Bytes.FromHexString(Block4Rlp))); Block block5 = Rlp.Decode <Block>(new Rlp(Bytes.FromHexString(Block5Rlp))); Block genesisBlock = CliqueTests.GetRinkebyGenesis(); // Add blocks MineBlock(_blockTree, genesisBlock); MineBlock(_blockTree, block1); MineBlock(_blockTree, block2); MineBlock(_blockTree, block3); MineBlock(_blockTree, block4); MineBlock(_blockTree, block5); }
public void Recognises_signer_turn() { SnapshotManager snapshotManager = new SnapshotManager(CliqueConfig.Default, _snapshotDb, _blockTree, NullEthereumEcdsa.Instance, LimboLogs.Instance); Block genesis = CliqueTests.GetRinkebyGenesis(); Snapshot snapshot = snapshotManager.GetOrCreateSnapshot(0, genesis.Hash); SnapshotManager manager = new SnapshotManager(CliqueConfig.Default, _snapshotDb, _blockTree, new EthereumEcdsa(ChainId.Goerli, LimboLogs.Instance), LimboLogs.Instance); // Block 1 Assert.IsTrue(manager.IsInTurn(snapshot, 1, _signer1)); Assert.IsFalse(manager.IsInTurn(snapshot, 1, _signer2)); Assert.IsFalse(manager.IsInTurn(snapshot, 1, _signer3)); // Block 2 Assert.IsFalse(manager.IsInTurn(snapshot, 2, _signer1)); Assert.IsTrue(manager.IsInTurn(snapshot, 2, _signer2)); Assert.IsFalse(manager.IsInTurn(snapshot, 2, _signer3)); // Block 3 Assert.IsFalse(manager.IsInTurn(snapshot, 3, _signer1)); Assert.IsFalse(manager.IsInTurn(snapshot, 3, _signer2)); Assert.IsTrue(manager.IsInTurn(snapshot, 3, _signer3)); }