Since #13666 our fee calculation assumes that ECSDA signatures are a maximum of 71 bytes, rather than 72. However, not all hardware wallets implement R-value grinding.

This can cause us to underpay fees when using an external signer. That's especially problematic when the user picks 1 sat/vbyte as the fee, because it won't even get into our own mempool.

The easiest solution would be to modify `ExternalSignerScriptPubKeyMan` to assume 72 bytes for ECSDA signatures.

Slightly more advanced would be to expand HWI to keep track of which devices and firmware versions (if any) support R-value grinding. We'd then have to store that in the wallet in some new field. Personally I'd rather work on better Taproot support, which thanks to Schnorr avoids this issue altogether. 
}
    // Add the s to wal, remove LegacyScriptPubKeyMan, and cleanup txs and address book data
    if (!wal.ApplyMigrationData(*data, error)) {
        return false;
    }
    return true;
}
utilResult<MigrationResult> MigrateLegacyToDescriptor(const stdstring& wal_name, const SecureString& passphrase, WalContext& context)
{
    MigrationResult res;
    bilingual_str error;
    stdvector<bilingual_str> warnings;
    //  th is still loaded, unload it so that nothing else tries to use it while we're changing it
    if (auto wal = GetWal(context, wal_name)) {
        if (!RemoveWal(context, wal, /*load_on_st, warnings)) {
            return utilError{_("Unable to unload th before migrating")};
        }
        UnloadWal(stdmove(wal));
    }
    // Load th but only in the context of this function.
    // No signals should be connected nor should anything else be aware of this wal
    WalContext empty_context;
    empty_context.args = context.args;
    DatabaseOptions options;
    options.require_existing = true;
    DatabaseStatus status;
    stdunique_ptr<WalDatabase> database = MakeWalDatabase(wal_name, options, status, error);
    if (!database) {
        return utilError{Untranslated("Wal file verification failed.") + Untranslated(" ") + error};
    }