v6.3.0 Release Candidate (#3414)

* v6.3.0 Release Candidate
- the new transaction history
- Radar in Apps screen
- Zcash update
- Flutter update
- Parts of the Refactor
  should improve how amounts are handled in the app and fix any issue with amounts
  improve handling sending to aliases

- Improvements for Cake Pay mobile
- Bug fixes

* don't use memo for note/message values

* save message in QR locally in the notes field

* Make stealth addresses generated from silent payment, not reliant on output index (#3420)

* - fix swaps showing only on primary account
- switch tron default node
- privacy fixes

* - enlarge destination tag and make it copiable
- migrate users on hashvault
- minor fix
This commit is contained in:
Omar Hatem
2026-07-21 04:54:48 +03:00
committed by GitHub
parent b336da4a9a
commit 544cbec0e0
15 changed files with 152 additions and 66 deletions
+1 -1
View File
@@ -124,7 +124,7 @@ abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with S
Future<PaymentURI> getPaymentRequestUri(String amount) async {
if (addressPageType is LightningAddressType && lightningWallet != null) {
final amountSats = amount.isNotEmpty ? parseFixed(amount, 8) : null;
final amountSats = amount.isNotEmpty ? tryParseFixed(amount, 8) : null;
final lnUrl = getLnurlOfLightningAddress(address);
if (amountSats == null) {
return LightningPaymentRequest(address: address, lnURL: lnUrl, amount: amount);
+3 -2
View File
@@ -1536,7 +1536,7 @@ abstract class ElectrumWalletBase
network: network,
memo: estimatedTx.memo,
inputOrdering: BitcoinOrdering.shuffle,
outputOrdering: BitcoinOrdering.none,
outputOrdering: BitcoinOrdering.shuffle,
enableRBF: !estimatedTx.spendsUnconfirmedTX,
);
}
@@ -1594,6 +1594,7 @@ abstract class ElectrumWalletBase
isSendAll: estimatedTx.isSendAll,
hasTaprootInputs: hasTaprootInputs,
utxos: estimatedTx.utxos,
derivedOutputs: updatedOutputs,
publicKeys: estimatedTx.publicKeys,
isViewOnly: keys.privateKey.isEmpty,
)..addListener((transaction) async {
@@ -2297,7 +2298,7 @@ abstract class ElectrumWalletBase
network: network,
memo: memo,
inputOrdering: BitcoinOrdering.shuffle,
outputOrdering: BitcoinOrdering.none,
outputOrdering: BitcoinOrdering.shuffle,
enableRBF: true,
);
@@ -31,6 +31,7 @@ class PendingBitcoinTransaction with PendingTransaction {
this.hasTaprootInputs = false,
this.isMweb = false,
this.utxos = const [],
this.derivedOutputs = const [],
this.publicKeys,
this.commitOverride,
this.unsignedPsbt,
@@ -47,6 +48,9 @@ class PendingBitcoinTransaction with PendingTransaction {
final bool hasTaprootInputs;
final bool isViewOnly;
List<UtxoWithAddress> utxos;
final List<BitcoinOutput> derivedOutputs;
bool isMweb;
String? changeAddressOverride;
String? idOverride;
@@ -79,6 +83,13 @@ class PendingBitcoinTransaction with PendingTransaction {
bool get hasSilentPayment => _tx.hasSilentPayment;
List<String?> get stealthAddresses => derivedOutputs
.where((out) => !out.isChange)
.map((out) => out.isSilentPayment
? out.address.toAddress(network ?? BitcoinNetwork.mainnet)
: null)
.toList();
PendingChange? get change {
try {
final change = _tx.outputs.firstWhere((out) => out.isChange);