public void MineBlocks(int blockCount, CoreNode node, string accountName, string toWalletName, string withPassword, long expectedFees = 0) { this.WaitForNodeToSync(node); var address = node.FullNode.WalletManager().GetUnusedAddress(new WalletAccountReference(toWalletName, accountName)); var balanceBeforeMining = node.FullNode.WalletManager() .GetSpendableTransactionsInWallet(toWalletName) .Where(x => x.Address == address) .Sum(s => s.Transaction.Amount); var wallet = node.FullNode.WalletManager().GetWalletByName(toWalletName); var extendedPrivateKey = wallet.GetExtendedPrivateKeyForAddress(withPassword, address).PrivateKey; node.SetDummyMinerSecret(new BitcoinSecret(extendedPrivateKey, node.FullNode.Network)); node.GenerateStratisWithMiner(blockCount); var balanceAfterMining = node.FullNode.WalletManager() .GetSpendableTransactionsInWallet(toWalletName) .Where(x => x.Address == address) .Sum(s => s.Transaction.Amount); var balanceIncrease = balanceAfterMining - balanceBeforeMining; this.WaitForNodeToSync(node); balanceIncrease.Should().Be(node.GetProofOfWorkRewardForMinedBlocks(blockCount) + expectedFees); }
public void GetProofOfWorkRewardForMinedBlocksTest() { using (NodeBuilder builder = NodeBuilder.Create(this)) { CoreNode node = builder.CreateStratisPowNode(KnownNetworks.RegTest).WithDummyWallet().Start(); TestHelper.MineBlocks(node, 10); node.GetProofOfWorkRewardForMinedBlocks(10).Should().Be(Money.Coins(500)); TestHelper.MineBlocks(node, 90); node.GetProofOfWorkRewardForMinedBlocks(100).Should().Be(Money.Coins(5000)); TestHelper.MineBlocks(node, 100); node.GetProofOfWorkRewardForMinedBlocks(200).Should().Be(Money.Coins(8725)); TestHelper.MineBlocks(node, 200); node.GetProofOfWorkRewardForMinedBlocks(400).Should().Be(Money.Coins((decimal)12462.50)); } }
public void GetProofOfWorkRewardForMinedBlocksTest() { using (NodeBuilder builder = NodeBuilder.Create(this)) { CoreNode node = builder.CreateStratisPowNode(KnownNetworks.RegTest).NotInIBD(); builder.StartAll(); node.SetDummyMinerSecret(new BitcoinSecret(new Key(), node.FullNode.Network)); TestHelper.MineBlocks(node, 10); node.GetProofOfWorkRewardForMinedBlocks(10).Should().Be(Money.Coins(500)); TestHelper.MineBlocks(node, 90); node.GetProofOfWorkRewardForMinedBlocks(100).Should().Be(Money.Coins(5000)); TestHelper.MineBlocks(node, 100); node.GetProofOfWorkRewardForMinedBlocks(200).Should().Be(Money.Coins(8725)); TestHelper.MineBlocks(node, 200); node.GetProofOfWorkRewardForMinedBlocks(400).Should().Be(Money.Coins((decimal)12462.50)); } }