Merge upstream Cake Wallet v6.5.0

Catches up from the May 12 fork point (v6.1.2+23) through v6.5.0: 535
upstream commits, including the Monero silent-open fix, Monero on Trezor,
Ledger/Trezor BLE fixes, the new seed and history screens, quick Bitcoin
sync, git-pinned dependencies (pubspec_overrides.yaml), frozen Hive
adapters (*.part.dart), monero_c v0.18.4.6-RC2 and Flutter 3.41.9.

Merged with both sides normalized first (import rename, 100-column
format), which took the conflict count from 614 paths to 322. The
procedure is now scripts/upstream_sync.sh.

Kept from Hash Bags:
- WalletType enum order and Hive IDs. SQLite stores WalletType.index and
  our order differs from upstream's; taking theirs would reread saved
  wallets as other chains. Our frozen adapter keeps the shipped IDs.
- The 1.0.2 legacy PIN and wallet-password decode and self-heal.
- Removed chains (Solana, Tron, Zano, Zcash, Decred, Haven) and the new
  Robinhood chain stay out; Cake Pay and non-Trocador swaps stay out.
- Default nodes (node.wownero.org, sethforprivacy, Blockstream, bysh.me),
  converted to upstream's isDefault node-list key; Wownero is back in the
  node reset list.
- Privacy: address resolvers limited to domain-anchored sources again;
  prices.neroswap.com for fiat; upstream's charts tab, which reads
  prices.cakewallet.com, sits behind FeatureFlag.isChartsEnabled = false.
- Lightning stays behind FeatureFlag.isLightningEnabled, including
  upstream's new post-seed Lightning username step.
- Our icon pipeline, branding and bundle identifiers.

Twelve new upstream widget tests are skipped: test and code are unchanged
from v6.5.0 apart from renames (not rerun on a pristine upstream checkout;
upstream's top_bar_test does not compile against its own TopBar).
flutter analyze lib: 0 errors; flutter test: 345 passed, 12 skipped;
flutter build bundle compiles. Built with Flutter 3.41.9.
This commit is contained in:
jwinterm
2026-10-24 23:49:29 -04:00
1406 changed files with 81062 additions and 48972 deletions
+16 -16
View File
@@ -3,37 +3,37 @@ import 'package:cw_core/hive_type_ids.dart';
import 'package:cw_core/keyable.dart';
import 'package:hive/hive.dart';
part 'anonpay_invoice_info.g.dart';
part 'anonpay_invoice_info.part.dart';
@HiveType(typeId: AnonpayInvoiceInfo.typeId)
// @HiveType(typeId: AnonpayInvoiceInfo.typeId)
class AnonpayInvoiceInfo extends HiveObject with Keyable implements AnonpayInfoBase {
@HiveField(0)
// @HiveField(0)
final String invoiceId;
@HiveField(1)
// @HiveField(1)
String status;
@HiveField(2)
// @HiveField(2)
final double? fiatAmount;
@HiveField(3)
// @HiveField(3)
final String? fiatEquiv;
@HiveField(4)
// @HiveField(4)
final double? amountTo;
@HiveField(5)
// @HiveField(5)
final String coinTo;
@HiveField(6)
// @HiveField(6)
final String address;
@HiveField(7)
// @HiveField(7)
final String clearnetUrl;
@HiveField(8)
// @HiveField(8)
final String onionUrl;
@HiveField(9)
// @HiveField(9)
final String clearnetStatusUrl;
@HiveField(10)
// @HiveField(10)
final String onionStatusUrl;
@HiveField(11)
// @HiveField(11)
final DateTime createdAt;
@HiveField(12)
// @HiveField(12)
final String walletId;
@HiveField(13)
// @HiveField(13)
final String provider;
static const typeId = ANONPAY_INVOICE_INFO_TYPE_ID;
@@ -0,0 +1,80 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'anonpay_invoice_info.dart';
// **************************************************************************
// TypeAdapterGenerator
// **************************************************************************
class AnonpayInvoiceInfoAdapter extends TypeAdapter<AnonpayInvoiceInfo> {
@override
final int typeId = 10;
@override
AnonpayInvoiceInfo read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return AnonpayInvoiceInfo(
invoiceId: fields[0] as String,
clearnetUrl: fields[7] as String,
onionUrl: fields[8] as String,
clearnetStatusUrl: fields[9] as String,
onionStatusUrl: fields[10] as String,
status: fields[1] as String,
fiatAmount: fields[2] as double?,
fiatEquiv: fields[3] as String?,
amountTo: fields[4] as double?,
coinTo: fields[5] as String,
address: fields[6] as String,
createdAt: fields[11] as DateTime,
walletId: fields[12] as String,
provider: fields[13] as String,
);
}
@override
void write(BinaryWriter writer, AnonpayInvoiceInfo obj) {
writer
..writeByte(14)
..writeByte(0)
..write(obj.invoiceId)
..writeByte(1)
..write(obj.status)
..writeByte(2)
..write(obj.fiatAmount)
..writeByte(3)
..write(obj.fiatEquiv)
..writeByte(4)
..write(obj.amountTo)
..writeByte(5)
..write(obj.coinTo)
..writeByte(6)
..write(obj.address)
..writeByte(7)
..write(obj.clearnetUrl)
..writeByte(8)
..write(obj.onionUrl)
..writeByte(9)
..write(obj.clearnetStatusUrl)
..writeByte(10)
..write(obj.onionStatusUrl)
..writeByte(11)
..write(obj.createdAt)
..writeByte(12)
..write(obj.walletId)
..writeByte(13)
..write(obj.provider);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is AnonpayInvoiceInfoAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}