Steps:
1. Send transaction (A) to a different wallet
2. Using the change, create another transaction (B) to a different wallet
3. `abandontransaction` B
4. `bumpfee` A fails with `Transaction has descendants in the wallet`
if (nOrderPos == -1)
        {
            nOrderPos = nOrderPosNext++;
            nOrderPosOffsets.push_back(nOrderPos);
            if (!batch.WriteTx(*pwtx))
                return DBErrorsLOAD_FAIL;
        }
        else
        {
            int64_t nOrderPosOff = 0;
            for (const int64_t& nOffsetStart  nOrderPosOffsets)
            {
                if (nOrderPos >= nOffsetStart)
                    ++nOrderPosOff;
            }
            nOrderPos += nOrderPosOff;
            nOrderPosNext = stdmax(nOrderPosNext, nOrderPos + 1);
            if (!nOrderPosOff)
                continue;
            // S
            if (!batch.WriteTx(*pwtx))
                return DBErrorsLOAD_FAIL;
        }
    }
    batch.WriteOrderPosNext(nOrderPosNext);
    return DBErrorsLOAD_OK;
}
int64_t CWalletIncOrderPosNext(WalletBatch* batch)
{
    AssertLockHeld(cs_);