<p>When creating a BSQ transaction (actually at commit time as we can create a tx and then<br>
cancel it in the confirmation popup) we store the change output (only that not the other<br>
possible BSQ output) in a persisted list. The BsqCoinSelector will take that list to<br>
allow spending those coins. We use the txType to find the index of the cahnge output.<br>
We only have one change output in the transactions created in Bisq. Multiple change<br>
outputs would be valid but our goal is only increased usability in the Bisq app and it is<br>
not related to validation rules.</p>
<p>We update out list at each new block confirmation.</p>
<p>With that approach we avoid too much dependencies to the BitcoinJ side.</p>
<ul>
<li>Add UnconfirmedBsqChangeOutputListService and persisted UnconfirmedBsqChangeOutputList<br>
for storing unconfirmed outputs</li>
<li>Add lookup for unconfirmed BSQ change outputs at BsqCoinSelector and allow spending if<br>
found</li>
<li>Pass TxType for walletsManager.publishAndCommitBsqTx calls</li>
<li>Add TxType to bsqWalletService.commitTx</li>
<li>Refactor getPreparedSendTx methods for BSQ and BTC sending to one common method with a<br>
coinselector parameter.</li>
<li>Add getChangeAddress method to BsqWalletService to make change outputs more explicit</li>
<li>Add unconfirmedChangeBalance to onUpdateBalances handlers</li>
<li>Rename availableBalance to availableConfirmedBalance in onUpdateBalances</li>
<li>Unify onUpdateBalances parameter names</li>
</ul>