diff --git a/lib/src/bitcoin/script/op_code/constant.dart b/lib/src/bitcoin/script/op_code/constant.dart index 59ac86e..0725415 100644 --- a/lib/src/bitcoin/script/op_code/constant.dart +++ b/lib/src/bitcoin/script/op_code/constant.dart @@ -150,7 +150,7 @@ class BitcoinOpCodeConst { static const List emptyTxSequence = [0x00, 0x00, 0x00, 0x00]; static const List absoluteTimelockSequence = [0xfe, 0xff, 0xff, 0xff]; - static const List replaceByFeeSequence = [0x01, 0x00, 0x00, 0x00]; + static const List replaceByFeeSequence = [0xfd, 0xff, 0xff, 0xff]; /// Script version and Bitcoin-related identifiers static const int leafVersionTapscript = 0xc0; diff --git a/lib/src/transaction_builder/forked_transaction_builder.dart b/lib/src/transaction_builder/forked_transaction_builder.dart index a3c2973..e999905 100644 --- a/lib/src/transaction_builder/forked_transaction_builder.dart +++ b/lib/src/transaction_builder/forked_transaction_builder.dart @@ -259,9 +259,11 @@ that demonstrate the right to spend the bitcoins associated with the correspondi ); } final inputs = sortedUtxos.map((e) => e.utxo.toInput()).toList(); - if (enableRBF && inputs.isNotEmpty) { - inputs[0] = - inputs[0].copyWith(sequence: BitcoinOpCodeConst.replaceByFeeSequence); + if (enableRBF) { + for (int i = 0; i < inputs.length; i++) { + inputs[i] = + inputs[i].copyWith(sequence: BitcoinOpCodeConst.replaceByFeeSequence); + } } return Tuple(List.unmodifiable(inputs), List.unmodifiable(sortedUtxos)); diff --git a/lib/src/transaction_builder/transaction_builder.dart b/lib/src/transaction_builder/transaction_builder.dart index 36ffeac..0e29921 100644 --- a/lib/src/transaction_builder/transaction_builder.dart +++ b/lib/src/transaction_builder/transaction_builder.dart @@ -400,9 +400,11 @@ that demonstrate the right to spend the bitcoins associated with the correspondi ); } final inputs = sortedUtxos.map((e) => e.utxo.toInput()).toList(); - if (enableRBF && inputs.isNotEmpty) { - inputs[0] = - inputs[0].copyWith(sequence: BitcoinOpCodeConst.replaceByFeeSequence); + if (enableRBF) { + for (int i = 0; i < inputs.length; i++) { + inputs[i] = + inputs[i].copyWith(sequence: BitcoinOpCodeConst.replaceByFeeSequence); + } } return Tuple(List.unmodifiable(inputs), List.unmodifiable(sortedUtxos));