public static CreateFakeBlock ( NetworkParameters @params, IBlockStore blockStore ) : BlockPair | ||
@params | NetworkParameters | |
blockStore | IBlockStore | |
return | BlockPair |
public static BlockPair CreateFakeBlock(NetworkParameters @params, IBlockStore blockStore, params Transaction[] transactions)
{
var b = MakeTestBlock(@params, blockStore);
// Coinbase tx was already added.
foreach (var tx in transactions)
b.AddTransaction(tx);
b.Solve();
var pair = new BlockPair();
pair.Block = b;
pair.StoredBlock = blockStore.GetChainHead().Build(b);
blockStore.Put(pair.StoredBlock);
blockStore.SetChainHead(pair.StoredBlock);
return pair;
}
public void TestRunUnconnectedBlock() { var b1 = TestUtils.CreateFakeBlock(_unitTestParams, _blockStore).Block; _blockChain.Add(b1); var prev = TestUtils.MakeSolvedTestBlock(_unitTestParams, _blockStore); var block = TestUtils.MakeSolvedTestBlock(_unitTestParams, prev); _control.Setup(x => x.ReadMessage()).Returns(() => block, ReadFinalMessage).Verifiable(); var message = CaptureGetBlocksMessage(); RunPeerAndVerify(); var expectedLocator = new List <Sha256Hash>(); expectedLocator.Add(b1.Hash); expectedLocator.Add(_unitTestParams.GenesisBlock.Hash); Assert.AreEqual(message.Value.Locator, expectedLocator); Assert.AreEqual(message.Value.StopHash, block.Hash); }