dev
dart 45 lines 982 Bytes
Raw
1 import 'package:cw_core/crypto_currency.dart';
2
3 class TradeCurrencySnapshot {
4 TradeCurrencySnapshot._();
5
6 static CryptoCurrency? fromLegacyHive({
7 required int raw,
8 String? displayTitleTag,
9 }) {
10 if (raw >= 0) {
11 final curr = CryptoCurrency.safeDeserialize(raw: raw);
12 if (curr != null) return curr;
13 }
14
15 return _parseLegacyTitleTag(displayTitleTag);
16 }
17
18 static CryptoCurrency? _parseLegacyTitleTag(String? titleTag) {
19 if (titleTag == null || titleTag.isEmpty) return null;
20
21 final idx = titleTag.indexOf('_');
22 if (idx < 0) {
23 return CryptoCurrency(
24 title: titleTag,
25 name: '',
26 raw: -1,
27 decimals: 1,
28 );
29 }
30
31 final title = titleTag.substring(0, idx);
32
33 var tag = titleTag.substring(idx + 1);
34
35 if (tag.contains('ARB')) tag = 'ARB';
36
37 return CryptoCurrency(
38 title: title,
39 tag: tag.isNotEmpty ? tag : null,
40 name: '',
41 raw: -1,
42 decimals: 1,
43 );
44 }
45 }