dev
dart 50 lines 1.55 KB
Raw
1 import 'dart:async';
2 import 'package:mobx/mobx.dart';
3 import 'package:hive/hive.dart';
4 import 'package:cake_wallet/exchange/exchange_template.dart';
5
6 part 'exchange_template_store.g.dart';
7
8 class ExchangeTemplateStore = ExchangeTemplateBase with _$ExchangeTemplateStore;
9
10 abstract class ExchangeTemplateBase with Store {
11 ExchangeTemplateBase({required this.templateSource})
12 : templates = ObservableList<ExchangeTemplate>() {
13 templates = ObservableList<ExchangeTemplate>();
14 update();
15 }
16
17 @observable
18 ObservableList<ExchangeTemplate> templates;
19
20 Box<ExchangeTemplate> templateSource;
21
22 @action
23 void update() => templates.replaceRange(0, templates.length, templateSource.values.toList());
24
25 @action
26 Future<void> addTemplate({
27 required String amount,
28 required String depositCurrency,
29 required String receiveCurrency,
30 required String provider,
31 required String depositAddress,
32 required String receiveAddress,
33 required String depositCurrencyTitle,
34 required String receiveCurrencyTitle,
35 }) async {
36 final template = ExchangeTemplate(
37 amountRaw: amount,
38 depositCurrencyRaw: depositCurrency,
39 receiveCurrencyRaw: receiveCurrency,
40 providerRaw: provider,
41 depositAddressRaw: depositAddress,
42 receiveAddressRaw: receiveAddress,
43 depositCurrencyTitleRaw: depositCurrencyTitle,
44 receiveCurrencyTitleRaw: receiveCurrencyTitle);
45 await templateSource.add(template);
46 }
47
48 @action
49 Future<void> remove({required ExchangeTemplate template}) async => await template.delete();
50 }