feat: handle `label` restore field from cupcake (#2551)

cyan committed Oct 3, 2025 at 13:58 UTC 9843c3c156b0cef5f6d8a3e7bab09fbfa8caf345
2 files changed +10 -2
lib/src/screens/restore/wallet_restore_from_keys_form.dart
+6 -2
@@ -44,7 +44,9 @@ class WalletRestoreFromKeysFormState extends State<WalletRestoreFromKeysForm> {
44 {required bool displayWalletPassword, RestoredWallet? restoredWallet})
45 : formKey = GlobalKey<FormState>(),
46 blockchainHeightKey = GlobalKey<BlockchainHeightState>(),
47 - nameController = TextEditingController(),
47 + nameController = restoredWallet != null
48 + ? TextEditingController(text: restoredWallet.name)
49 + : TextEditingController(),
50 addressController = restoredWallet != null
51 ? TextEditingController(text: restoredWallet.address)
52 : TextEditingController(),
@@ -57,7 +59,9 @@ class WalletRestoreFromKeysFormState extends State<WalletRestoreFromKeysForm> {
59 privateKeyController = restoredWallet != null
60 ? TextEditingController(text: restoredWallet.privateKey)
61 : TextEditingController(),
60 - nameTextEditingController = TextEditingController(),
62 + nameTextEditingController = restoredWallet != null
63 + ? TextEditingController(text: restoredWallet.name)
64 + : TextEditingController(),
65 passwordTextEditingController = displayWalletPassword ? TextEditingController() : null,
66 repeatedPasswordTextEditingController =
67 displayWalletPassword ? TextEditingController() : null;
lib/view_model/restore/restore_wallet.dart
+4
@@ -9,6 +9,7 @@ class RestoredWallet {
9 {required this.restoreMode,
10 required this.type,
11 required this.address,
12 + this.name,
13 this.txId,
14 this.spendKey,
15 this.viewKey,
@@ -22,6 +23,7 @@ class RestoredWallet {
23
24 final WalletRestoreMode restoreMode;
25 final WalletType type;
26 + final String? name;
27 final String? address;
28 final String? txId;
29 final String? spendKey;
@@ -41,6 +43,7 @@ class RestoredWallet {
43 json['address'] = codeParsed["primaryAddress"];
44 json['view_key'] = codeParsed["privateViewKey"];
45 json['height'] = codeParsed["restoreHeight"].toString();
46 + json['label'] = codeParsed["label"];
47 }
48 } catch (e) {
49 // fine, we don't care, it is only for monero anyway
@@ -51,6 +54,7 @@ class RestoredWallet {
54 json['view_key'] ??= json['xpub'];
55 final height = json['height'] as String?;
56 return RestoredWallet(
57 + name: json['label'] as String?,
58 restoreMode: json['mode'] as WalletRestoreMode,
59 type: json['type'] as WalletType,
60 address: json['address'] as String?,