diff --git a/class/hd-segwit-bech32-wallet.js b/class/hd-segwit-bech32-wallet.js
index 1dc0b894d..cfbe55bfe 100644
--- a/class/hd-segwit-bech32-wallet.js
+++ b/class/hd-segwit-bech32-wallet.js
@@ -727,7 +727,11 @@ export class HDSegwitBech32Wallet extends AbstractHDWallet {
*/
createTransaction(utxos, targets, feeRate, changeAddress, sequence, skipSigning = false) {
if (!changeAddress) throw new Error('No change address provided');
- sequence = sequence || HDSegwitBech32Wallet.defaultRBFSequence;
+ if (sequence === false) {
+ sequence = undefined;
+ } else {
+ sequence = sequence || HDSegwitBech32Wallet.defaultRBFSequence;
+ }
let algo = coinSelectAccumulative;
if (targets.length === 1 && targets[0] && !targets[0].value) {
diff --git a/screen/send/details.js b/screen/send/details.js
index 9c04a5fdc..31e2f68d9 100644
--- a/screen/send/details.js
+++ b/screen/send/details.js
@@ -84,6 +84,7 @@ export default class SendDetails extends Component {
showSendMax: false,
isFeeSelectionModalVisible: false,
isAdvancedTransactionOptionsVisible: false,
+ isTransactionReplaceable: fromWallet.type === HDSegwitBech32Wallet.type,
recipientsScrollIndex: 0,
fromAddress,
fromWallet,
@@ -535,7 +536,13 @@ export default class SendDetails extends Component {
targets = [{ address: firstTransaction.address, amount: BitcoinUnit.MAX }];
}
- let { tx, fee, psbt } = wallet.createTransaction(wallet.getUtxo(), targets, requestedSatPerByte, changeAddress);
+ let { tx, fee, psbt } = wallet.createTransaction(
+ wallet.getUtxo(),
+ targets,
+ requestedSatPerByte,
+ changeAddress,
+ this.state.isTransactionReplaceable === true ? HDSegwitBech32Wallet.defaultRBFSequence : false,
+ );
if (wallet.type === WatchOnlyWallet.type) {
// watch-only wallets with enabled HW wallet support have different flow. we have to show PSBT to user as QR code
@@ -720,6 +727,15 @@ export default class SendDetails extends Component {
onPress={this.onUseAllPressed}
/>
)}
+ {this.state.fromWallet.type === HDSegwitBech32Wallet.type && (
+
+ )}
{this.state.fromWallet.allowBatchSend() && (
<>
{
+ this.setState({ isTransactionReplaceable: value });
+ };
+
renderCreateButton = () => {
return (