interfaces, refactor: Add more block information to block connected notifications

Add new interfaces::BlockInfo struct to be able to pass extra block
information (file and undo information) to indexes which they are
updated to use high level interfaces::Chain notifications.

This commit does not change behavior in any way.
This commit is contained in:
Ryan Ofsky
2022-01-13 07:55:18 -05:00
parent 8d4a058ac4
commit a0b5b4ae5a
8 changed files with 94 additions and 21 deletions

View File

@@ -137,8 +137,13 @@ FUZZ_TARGET_INIT(wallet_notifications, initialize_setup)
block.vtx.emplace_back(MakeTransactionRef(tx));
}
// Mine block
a.wallet->blockConnected(block, chain.size());
b.wallet->blockConnected(block, chain.size());
const uint256& hash = block.GetHash();
interfaces::BlockInfo info{hash};
info.prev_hash = &block.hashPrevBlock;
info.height = chain.size();
info.data = █
a.wallet->blockConnected(info);
b.wallet->blockConnected(info);
// Store the coins for the next block
Coins coins_new;
for (const auto& tx : block.vtx) {
@@ -154,8 +159,13 @@ FUZZ_TARGET_INIT(wallet_notifications, initialize_setup)
auto& [coins, block]{chain.back()};
if (block.vtx.empty()) return; // Can only disconnect if the block was submitted first
// Disconnect block
a.wallet->blockDisconnected(block, chain.size() - 1);
b.wallet->blockDisconnected(block, chain.size() - 1);
const uint256& hash = block.GetHash();
interfaces::BlockInfo info{hash};
info.prev_hash = &block.hashPrevBlock;
info.height = chain.size() - 1;
info.data = █
a.wallet->blockDisconnected(info);
b.wallet->blockDisconnected(info);
chain.pop_back();
});
auto& [coins, first_block]{chain.front()};