For the 0.22 release we'll want to start hardcoding Torv3 addresses instead of (or in addition to) Torv2.

The biggest challenge here is not how to hardcode them, although that will require a few minor script and code changes, but how to collect them. The release process is to get the addresses from DNS seeders, however these currently don't support the `addrv2` message nor Torv3 addresses in the first place. Nor do they really have a need to.
assert(globalChainParams);
    return *globalChainParams;
}
std::unique_ptr<const CChainParams> CreateChainParams(const ArgsManager& args, const std::string& chain)
{
    if (chain == CBaseChainParams::MAIN) {
        return std::unique_ptr<CChainParams>(new CMainParams());
    } else if (chain == CBaseChainParams::TESTNET) {
        return std::unique_ptr<CChainParams>(new CTestNetParams());
    } else if (chain == CBaseChainParams::SIGNET) {
        return std::unique_ptr<CChainParams>(new SigNetParams(args));
    } else if (chain == CBaseChainParams::REGTEST) {
        return std::unique_ptr<CChainParams>(new CRegTestParams(args));
    }
    throw std::runtime_error(strprintf("%s: Unknown chain %s.", __func__, chain));
}
void SelectParams(const std::string& network)
{
    SelectBaseParams(network);
    globalChainParams = CreateChainParams(gArgs, network);
}
std::ostream& operator<<(std::ostream& o, const AssumeutxoData& aud)
{
    o << strprintf("AssumeutxoData(%s, %s)", aud.hash_serialized.ToString(), aud.nChainTx);
    return o;
}