> wallet: validationinterface: only handle active chain notifications
> validation: Send correct notification during snapshot completion
>
> If AssumeUtxo background sync is completed in this
> ActivateBestChain() call, the GetRole() function
> returns "normal" instead of "background" for this chainstate.
> This would make the wallet (which ignores BlockConnected
> notifcation for the background chainstate) process it, change
> m_last_block_processed_height, and display an incorrect
> balance.
This is a partial backport of core#27596 and core#31556
https://github.com/bitcoin/bitcoin/pull/31556/commits/226d03dd610dd65938554bcf0abfe79f7ca7fb4d
https://github.com/bitcoin/bitcoin/pull/27596/commits/fbe0a7d7ca680358237b6c2369b3fd2b43221113
The chainstate role must be passed down the function stack to `ActivateBestChainStep` and `ConnectTip` because of the change made in D16539: the BlockConnected signal is send directly by ConnectTip rather than being queued to be sent later in `ActiveBestChain`