set seed language if seed_language is in error message (#2135)

cyan committed Mar 30, 2025 at 04:09 UTC 7831b421b1bf1a43320aec5b752f245d0cb79b65
1 file changed +16 -10
cw_monero/lib/api/wallet.dart
+16 -10
@@ -75,22 +75,28 @@ String? getSeedLanguage(String? language) {
75
76 String getSeedLegacy(String? language) {
77 final cakepassphrase = getPassphrase();
78 - var legacy = monero.Wallet_seed(wptr!, seedOffset: cakepassphrase);
78 language = getSeedLanguage(language);
79 + var legacy = monero.Wallet_seed(wptr!, seedOffset: cakepassphrase);
80 if (monero.Wallet_status(wptr!) != 0) {
81 - if (language != null) {
82 - monero.Wallet_setSeedLanguage(wptr!, language: language);
83 - final status = monero.Wallet_status(wptr!);
84 - if (status != 0) {
85 - final err = monero.Wallet_errorString(wptr!);
86 - if (legacy.isNotEmpty) {
87 - return "$err\n\n$legacy";
88 - }
89 - return err;
81 + if (monero.Wallet_errorString(wptr!).contains("seed_language")) {
82 + monero.Wallet_setSeedLanguage(wptr!, language: "English");
83 + legacy = monero.Wallet_seed(wptr!, seedOffset: cakepassphrase);
84 + }
85 + }
86 +
87 + if (language != null) {
88 + monero.Wallet_setSeedLanguage(wptr!, language: language);
89 + final status = monero.Wallet_status(wptr!);
90 + if (status != 0) {
91 + final err = monero.Wallet_errorString(wptr!);
92 + if (legacy.isNotEmpty) {
93 + return "$err\n\n$legacy";
94 }
95 + return err;
96 }
97 legacy = monero.Wallet_seed(wptr!, seedOffset: cakepassphrase);
98 }
99 +
100 if (monero.Wallet_status(wptr!) != 0) {
101 final err = monero.Wallet_errorString(wptr!);
102 if (legacy.isNotEmpty) {