m_valid implies the block solution has been checked, which is not the case. It only means the txs could be parsed. C++17 comes with std::optional, so just use that instead.
Co-authored-by: Anthony Towns <aj@erisian.com.au>