<p><b>@sqrrm</b> commented on this pull request.</p>

<hr>

<p>In <a href="https://github.com/bisq-network/bisq/pull/3413#discussion_r337129376">core/src/main/java/bisq/core/btc/wallet/BsqWalletService.java</a>:</p>
<pre style='color:#555'>>          daoKillSwitch.assertDaoIsNotDisabled();
-        final Transaction tx = new Transaction(params);
-        addInputsAndChangeOutputForTx(tx, fee, bsqCoinSelector, requireChangeOutput);
-        // printTx("getPreparedFeeTx", tx);
-        return tx;
+
+        Transaction tx = new Transaction(params);
+        // We look for inputs covering out BSQ fee we want to pay.
+        CoinSelection coinSelection = bsqCoinSelector.select(fee, wallet.calculateAllSpendCandidates());
</pre>
<p>It would be better to include the dust here in the initial coin selection since it is a requirement that it's included. Then there is no need to do a double take when this initial selection wasn't enough.</p>

<hr>

<p>In <a href="https://github.com/bisq-network/bisq/pull/3413#discussion_r337142189">core/src/main/java/bisq/core/dao/node/parser/TxOutputParser.java</a>:</p>
<pre style='color:#555'>> +                            return false;
+                        }
+
+                        // Burned BSQ output is last output before opReturn.
+                        // We could have also a BSQ change output as last output before opReturn but that will
+                        // be detected at blindVoteFee check.
+                        // We always have the BSQ change before the burned BSQ output if both are present.
+                        checkArgument(optionalOpReturnIndex.isPresent());
+                        if (index != optionalOpReturnIndex.get() - 1) {
+                            return false;
+                        }
+
+                        // Without checking the fee we would not be able to distinguish between 2 structurally same transactions, one
+                        // where the output is burned BSQ and one where it is a BSQ change output.
+                        long blindVoteFee = daoStateService.getParamValueAsCoin(Param.BLIND_VOTE_FEE, tempTxOutput.getBlockHeight()).value;
+                        return availableInputValue == blindVoteFee;
</pre>
<p>What happens with a vote that's using the wrong fee. It would set this output to BSQ, but would it fail to register as a valid vote?</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/bisq/pull/3413?email_source=notifications&email_token=AJFFTNRXEMDUWQ2GKLYHXPLQPYREVA5CNFSM4JBAOB5KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCIUXPLQ#pullrequestreview-304707502">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNVB26FR2JNZF5FBJQLQPYREVANCNFSM4JBAOB5A">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AJFFTNTZPP7IE55O7ST3KQDQPYREVA5CNFSM4JBAOB5KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCIUXPLQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/bisq/pull/3413?email_source=notifications\u0026email_token=AJFFTNRXEMDUWQ2GKLYHXPLQPYREVA5CNFSM4JBAOB5KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCIUXPLQ#pullrequestreview-304707502",
"url": "https://github.com/bisq-network/bisq/pull/3413?email_source=notifications\u0026email_token=AJFFTNRXEMDUWQ2GKLYHXPLQPYREVA5CNFSM4JBAOB5KYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCIUXPLQ#pullrequestreview-304707502",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>