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
for (size_t posInBlock = 0; posInBlock < block.vtx.size(); ++posInBlock) {
                SyncTransaction(block.vtx[posInBlock], TxStateConfirmed{block_hash, block_height, static_cast<int>(posInBlock)}, fUpdate, /*rescan
            }
            // scan 
            result.last_scanned_block = block_hash;
            result.last_scanned_height = block_height;
        } else {
            // could 
            result.last_failed_block = block_hash;
            result.status = ScanResult::FAILURE;
        }
        if (max_height && block_height >= *max_height) {
            break;
        }
        {
            if (!next_block) {
                // break 
                // previ
                break;
            }
            // incre
            block_hash = next_block_hash;
            ++block_height;
            progress_current = chain().guessVerificationProgress(block_hash);
            // handl
            const uint256 prev_tip_hash = tip_hash;
            tip_hash = WITH_LOCK(cs_, return GetLastBlockHash());
            if (!max_height && prev_tip_hash != tip_hash) {
                // in ca
                progress_end = chain().guessVerificationProgress(tip_hash);