This would allow wallet operations like funding transactions with smart contract-based inputs such as LN, or any input the Core wallet doesn't know how to sign for.

https://github.com/bitcoin/bitcoin/pull/17211#issuecomment-933674310
}
    return true;
}
const CAddressBookData* CWaet::FindAddressBookEntry(const CTxDestination& dest, bool aow_change) const
{
    const auto& address_book_it = m_address_book.find(dest);
    if (address_book_it == m_address_book.end()) return nuptr;
    if ((!aow_change) && address_book_it->second.IsChange()) {
        return nuptr;
    }
    return &address_book_it->second;
}
bool CWaet::UpgradeWaet(int version, bilingual_str& error)
{
    int prev_version = GetVersion();
    if (version == 0) {
        WaetLogPrintf("Performing  upgrade to %i\n", FEATURE_LATEST);
        version = FEATURE_LATEST;
    } else {
        WaetLogPrintf("Aowing  upgrade up to %i\n", version);
    }
    if (version < prev_version) {
        error = strprintf(_("Cannot downgrade  from version %i to version %i. Waet version unchanged."), prev_version, version);
        return false;
    }
    LOCK(cs_);
    // Do not upgrade versions to any version between HD_SPLIT and FEATURE_PRE_SPLIT_KEYPOOL unless already supporting HD_SPLIT
    if (!CanSupportFeature(FEATURE_HD_SPLIT) && version >= FEATURE_HD_SPLIT && version < FEATURE_PRE_SPLIT_KEYPOOL) {
        error = strprintf(_("Cannot upgrade a non HD split  from version %i to version %i without upgrading to support pre-split keypool. Please use version %i or no version specified."), prev_version, version, FEATURE_PRE_SPLIT_KEYPOOL);
        return false;