Skip to content

Commit a260a93

Browse files
committed
separated xmw and wow libs. Dirty dirty minimal get-it-running mess
1 parent 64f4076 commit a260a93

22 files changed

Lines changed: 2446 additions & 190 deletions

File tree

lib/main.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ import 'wallets/isar/providers/all_wallets_info_provider.dart';
7676
import 'wallets/wallet/wallet_mixin_interfaces/spark_interface.dart';
7777
import 'widgets/crypto_notifications.dart';
7878
import 'wl_gen/interfaces/cs_monero_interface.dart';
79+
import 'wl_gen/interfaces/cs_wownero_interface.dart';
7980
import 'wl_gen/interfaces/lib_xelis_interface.dart';
8081

8182
final openedFromSWBFileStringStateProvider = StateProvider<String?>(
@@ -161,10 +162,12 @@ void main(List<String> args) async {
161162

162163
DB.instance.hive.registerAdapter(lib_monero_compat.WalletTypeAdapter());
163164

164-
if (AppConfig.coins.whereType<Monero>().isNotEmpty ||
165-
AppConfig.coins.whereType<Wownero>().isNotEmpty) {
165+
if (AppConfig.coins.whereType<Monero>().isNotEmpty) {
166166
csMonero.setUseCsMoneroLoggerInternal(kDebugMode);
167167
}
168+
if (AppConfig.coins.whereType<Wownero>().isNotEmpty) {
169+
csWownero.setUseCsWowneroLoggerInternal(kDebugMode);
170+
}
168171

169172
DB.instance.hive.init(
170173
(await StackFileSystem.applicationHiveDirectory()).path,

lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import '../../../../widgets/textfield_icon_button.dart';
4242
import '../../../../widgets/toggle.dart';
4343
import '../../../../wl_gen/interfaces/cs_monero_interface.dart';
4444
import '../../../../wl_gen/interfaces/cs_salvium_interface.dart';
45+
import '../../../../wl_gen/interfaces/cs_wownero_interface.dart';
4546
import '../../create_or_restore_wallet_view/sub_widgets/coin_image.dart';
4647
import '../restore_view_only_wallet_view.dart';
4748
import '../restore_wallet_view.dart';
@@ -213,10 +214,10 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
213214
int height = 0;
214215
if (date != null) {
215216
if (widget.coin is Monero) {
216-
height = csMonero.getHeightByDate(date, csCoin: CsCoin.monero);
217+
height = csMonero.getHeightByDate(date);
217218
}
218219
if (widget.coin is Wownero) {
219-
height = csMonero.getHeightByDate(date, csCoin: CsCoin.wownero);
220+
height = csWownero.getHeightByDate(date);
220221
}
221222
if (widget.coin is Salvium) {
222223
height = csSalvium.getHeightByDate(

lib/pages/add_wallet_views/restore_wallet_view/restore_wallet_view.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import '../../../widgets/table_view/table_view.dart';
6161
import '../../../widgets/table_view/table_view_cell.dart';
6262
import '../../../widgets/table_view/table_view_row.dart';
6363
import '../../../wl_gen/interfaces/cs_monero_interface.dart';
64+
import '../../../wl_gen/interfaces/cs_wownero_interface.dart';
6465
import '../../../wl_gen/interfaces/lib_xelis_interface.dart';
6566
import '../../home_view/home_view.dart';
6667
import '../add_token_view/edit_wallet_tokens_view.dart';
@@ -189,7 +190,7 @@ class _RestoreWalletViewState extends ConsumerState<RestoreWalletView> {
189190
}
190191
}
191192
if (widget.coin is Wownero) {
192-
final wowneroWordList = csMonero.getWowneroWordList(
193+
final wowneroWordList = csWownero.getWowneroWordList(
193194
"English",
194195
widget.seedWordsLength,
195196
);

lib/pages/add_wallet_views/verify_recovery_phrase_view/verify_recovery_phrase_view.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import '../../../widgets/desktop/desktop_scaffold.dart';
4848
import '../../../widgets/stack_dialog.dart';
4949
import '../../../wl_gen/interfaces/cs_monero_interface.dart';
5050
import '../../../wl_gen/interfaces/cs_salvium_interface.dart';
51+
import '../../../wl_gen/interfaces/cs_wownero_interface.dart';
5152
import '../../home_view/home_view.dart';
5253
import '../add_token_view/edit_wallet_tokens_view.dart';
5354
import '../new_wallet_options/new_wallet_options_view.dart';
@@ -116,13 +117,11 @@ class _VerifyRecoveryPhraseViewState
116117
if (widget.wallet.cryptoCurrency is Monero) {
117118
height = csMonero.getHeightByDate(
118119
DateTime.now().subtract(const Duration(days: 7)),
119-
csCoin: CsCoin.monero,
120120
);
121121
}
122122
if (widget.wallet.cryptoCurrency is Wownero) {
123-
height = csMonero.getHeightByDate(
123+
height = csWownero.getHeightByDate(
124124
DateTime.now().subtract(const Duration(days: 7)),
125-
csCoin: CsCoin.wownero,
126125
);
127126
}
128127
if (widget.wallet.cryptoCurrency is Salvium) {

lib/pages/send_view/send_view.dart

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ import '../../widgets/stack_dialog.dart';
7575
import '../../widgets/stack_text_field.dart';
7676
import '../../widgets/textfield_icon_button.dart';
7777
import '../../wl_gen/interfaces/cs_monero_interface.dart';
78+
import '../../wl_gen/interfaces/cs_wownero_interface.dart';
7879
import '../address_book_views/address_book_view.dart';
7980
import '../coin_control/coin_control_view.dart';
8081
import 'confirm_transaction_view.dart';
@@ -575,6 +576,28 @@ class _SendViewState extends ConsumerState<SendView> {
575576
throw ArgumentError("custom fee not available for monero");
576577
}
577578

579+
fee = await wallet.estimateFeeFor(amount, BigInt.from(specialMoneroId));
580+
cachedFees[amount] = ref
581+
.read(pAmountFormatter(coin))
582+
.format(fee, withUnitName: true, indicatePrecisionLoss: false);
583+
584+
return cachedFees[amount]!;
585+
} else if (coin is Wownero) {
586+
final int specialMoneroId;
587+
switch (ref.read(feeRateTypeMobileStateProvider.state).state) {
588+
case FeeRateType.fast:
589+
specialMoneroId = csWownero.getTxPriorityHigh();
590+
break;
591+
case FeeRateType.average:
592+
specialMoneroId = csWownero.getTxPriorityMedium();
593+
break;
594+
case FeeRateType.slow:
595+
specialMoneroId = csWownero.getTxPriorityNormal();
596+
break;
597+
default:
598+
throw ArgumentError("custom fee not available for monero");
599+
}
600+
578601
fee = await wallet.estimateFeeFor(amount, BigInt.from(specialMoneroId));
579602
cachedFees[amount] = ref
580603
.read(pAmountFormatter(coin))

lib/pages/send_view/sub_widgets/transaction_fee_selection_sheet.dart

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import '../../../wallets/wallet/impl/firo_wallet.dart';
2929
import '../../../wallets/wallet/wallet_mixin_interfaces/electrumx_interface.dart';
3030
import '../../../widgets/animated_text.dart';
3131
import '../../../wl_gen/interfaces/cs_monero_interface.dart';
32+
import '../../../wl_gen/interfaces/cs_wownero_interface.dart';
3233

3334
final feeSheetSessionCacheProvider =
3435
ChangeNotifierProvider<FeeSheetSessionCache>((ref) {
@@ -88,12 +89,18 @@ class _TransactionFeeSelectionSheetState
8889
if (widget.isToken == false) {
8990
final wallet = ref.read(pWallets).getWallet(walletId);
9091

91-
if (coin is Monero || coin is Wownero) {
92+
if (coin is Monero) {
9293
final fee = await wallet.estimateFeeFor(
9394
amount,
9495
BigInt.from(csMonero.getTxPriorityHigh()),
9596
);
9697
ref.read(feeSheetSessionCacheProvider).fast[amount] = fee;
98+
} else if (coin is Wownero) {
99+
final fee = await wallet.estimateFeeFor(
100+
amount,
101+
BigInt.from(csWownero.getTxPriorityHigh()),
102+
);
103+
ref.read(feeSheetSessionCacheProvider).fast[amount] = fee;
97104
} else if (coin is Firo) {
98105
final Amount fee;
99106
switch (ref.read(publicPrivateBalanceStateProvider.state).state) {
@@ -125,12 +132,18 @@ class _TransactionFeeSelectionSheetState
125132
if (ref.read(feeSheetSessionCacheProvider).average[amount] == null) {
126133
if (widget.isToken == false) {
127134
final wallet = ref.read(pWallets).getWallet(walletId);
128-
if (coin is Monero || coin is Wownero) {
135+
if (coin is Monero) {
129136
final fee = await wallet.estimateFeeFor(
130137
amount,
131138
BigInt.from(csMonero.getTxPriorityMedium()),
132139
);
133140
ref.read(feeSheetSessionCacheProvider).average[amount] = fee;
141+
} else if (coin is Wownero) {
142+
final fee = await wallet.estimateFeeFor(
143+
amount,
144+
BigInt.from(csWownero.getTxPriorityMedium()),
145+
);
146+
ref.read(feeSheetSessionCacheProvider).average[amount] = fee;
134147
} else if (coin is Firo) {
135148
final Amount fee;
136149
switch (ref.read(publicPrivateBalanceStateProvider.state).state) {
@@ -161,12 +174,18 @@ class _TransactionFeeSelectionSheetState
161174
if (ref.read(feeSheetSessionCacheProvider).slow[amount] == null) {
162175
if (widget.isToken == false) {
163176
final wallet = ref.read(pWallets).getWallet(walletId);
164-
if (coin is Monero || coin is Wownero) {
177+
if (coin is Monero) {
165178
final fee = await wallet.estimateFeeFor(
166179
amount,
167180
BigInt.from(csMonero.getTxPriorityNormal()),
168181
);
169182
ref.read(feeSheetSessionCacheProvider).slow[amount] = fee;
183+
} else if (coin is Wownero) {
184+
final fee = await wallet.estimateFeeFor(
185+
amount,
186+
BigInt.from(csWownero.getTxPriorityNormal()),
187+
);
188+
ref.read(feeSheetSessionCacheProvider).slow[amount] = fee;
170189
} else if (coin is Firo) {
171190
final Amount fee;
172191
switch (ref.read(publicPrivateBalanceStateProvider.state).state) {

lib/pages/settings_views/wallet_settings_view/wallet_settings_wallet_settings/edit_refresh_height_view.dart

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import '../../../../utilities/text_styles.dart';
1212
import '../../../../utilities/util.dart';
1313
import '../../../../wallets/isar/providers/wallet_info_provider.dart';
1414
import '../../../../wallets/wallet/intermediate/lib_monero_wallet.dart';
15+
import '../../../../wallets/wallet/intermediate/lib_wownero_wallet.dart';
1516
import '../../../../widgets/background.dart';
1617
import '../../../../widgets/conditional_parent.dart';
1718
import '../../../../widgets/custom_buttons/app_bar_icon_button.dart';
@@ -22,6 +23,7 @@ import '../../../../widgets/icon_widgets/x_icon.dart';
2223
import '../../../../widgets/stack_text_field.dart';
2324
import '../../../../widgets/textfield_icon_button.dart';
2425
import '../../../../wl_gen/interfaces/cs_monero_interface.dart';
26+
import '../../../../wl_gen/interfaces/cs_wownero_interface.dart';
2527

2628
class EditRefreshHeightView extends ConsumerStatefulWidget {
2729
const EditRefreshHeightView({super.key, required this.walletId});
@@ -55,10 +57,11 @@ class _EditRefreshHeightViewState extends ConsumerState<EditRefreshHeightView> {
5557
newRestoreHeight: newHeight,
5658
isar: ref.read(mainDBProvider).isar,
5759
);
58-
final wallet =
59-
ref.read(pWallets).getWallet(widget.walletId) as LibMoneroWallet?;
60-
if (wallet?.wallet != null) {
61-
csMonero.setRefreshFromBlockHeight(wallet!.wallet!, newHeight);
60+
final wallet = ref.read(pWallets).getWallet(widget.walletId);
61+
if (wallet is LibMoneroWallet && wallet.wallet != null) {
62+
csMonero.setRefreshFromBlockHeight(wallet.wallet!, newHeight);
63+
} else if (wallet is LibWowneroWallet && wallet.wallet != null) {
64+
csWownero.setRefreshFromBlockHeight(wallet.wallet!, newHeight);
6265
}
6366
} else {
6467
errMessage = "Invalid height: ${_controller.text}";
@@ -96,11 +99,14 @@ class _EditRefreshHeightViewState extends ConsumerState<EditRefreshHeightView> {
9699
void initState() {
97100
super.initState();
98101
_controller = TextEditingController();
99-
final wallet =
100-
ref.read(pWallets).getWallet(widget.walletId) as LibMoneroWallet?;
101-
if (wallet?.wallet != null) {
102+
final wallet = ref.read(pWallets).getWallet(widget.walletId);
103+
if (wallet is LibMoneroWallet && wallet.wallet != null) {
102104
_controller.text = csMonero
103-
.getRefreshFromBlockHeight(wallet!.wallet!)
105+
.getRefreshFromBlockHeight(wallet.wallet!)
106+
.toString();
107+
} else if (wallet is LibWowneroWallet && wallet.wallet != null) {
108+
_controller.text = csWownero
109+
.getRefreshFromBlockHeight(wallet.wallet!)
104110
.toString();
105111
} else {
106112
_controller.text = ref

lib/pages_desktop_specific/my_stack_view/wallet_view/sub_widgets/desktop_send_fee_form.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import '../../../../widgets/desktop/desktop_fee_dialog.dart';
2222
import '../../../../widgets/eth_fee_form.dart';
2323
import '../../../../widgets/fee_slider.dart';
2424
import '../../../../wl_gen/interfaces/cs_monero_interface.dart';
25+
import '../../../../wl_gen/interfaces/cs_wownero_interface.dart';
2526

2627
class DesktopSendFeeForm extends ConsumerStatefulWidget {
2728
const DesktopSendFeeForm({
@@ -171,7 +172,9 @@ class _DesktopSendFeeFormState extends ConsumerState<DesktopSendFeeForm> {
171172
final fee = await wallet.estimateFeeFor(
172173
amount,
173174
BigInt.from(
174-
csMonero.getTxPriorityMedium(),
175+
coin is Monero
176+
? csMonero.getTxPriorityMedium()
177+
: csWownero.getTxPriorityMedium(),
175178
),
176179
);
177180
ref

lib/wallets/crypto_currency/coins/monero.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class Monero extends CryptonoteCurrency {
5252
}
5353
switch (network) {
5454
case CryptoCurrencyNetwork.main:
55-
return csMonero.validateAddress(address, 0, csCoin: CsCoin.monero);
55+
return csMonero.validateAddress(address, 0);
5656
default:
5757
throw Exception("Unsupported network: $network");
5858
}

lib/wallets/crypto_currency/coins/wownero.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import '../../../models/node_model.dart';
22
import '../../../utilities/default_nodes.dart';
33
import '../../../utilities/enums/derive_path_type_enum.dart';
4-
import '../../../wl_gen/interfaces/cs_monero_interface.dart';
4+
import '../../../wl_gen/interfaces/cs_wownero_interface.dart';
55
import '../crypto_currency.dart';
66
import '../intermediate/cryptonote_currency.dart';
77

@@ -52,7 +52,7 @@ class Wownero extends CryptonoteCurrency {
5252
}
5353
switch (network) {
5454
case CryptoCurrencyNetwork.main:
55-
return csMonero.validateAddress(address, 0, csCoin: CsCoin.wownero);
55+
return csWownero.validateAddress(address, 0);
5656
default:
5757
throw Exception("Unsupported network: $network");
5858
}

0 commit comments

Comments
 (0)