dev
dart 81 lines 2.56 KB
Raw
1 import 'package:cake_wallet/buy/buy_provider.dart';
2 import 'package:cake_wallet/buy/dfx/dfx_buy_provider.dart';
3 import 'package:cake_wallet/buy/kryptonim/kryptonim.dart';
4 import 'package:cake_wallet/buy/meld/meld_buy_provider.dart';
5 import 'package:cake_wallet/buy/moonpay/moonpay_provider.dart';
6 import 'package:cake_wallet/buy/onramper/onramper_buy_provider.dart';
7 import 'package:cake_wallet/buy/robinhood/robinhood_buy_provider.dart';
8 import 'package:cake_wallet/di.dart';
9
10 enum ProviderType { robinhood, dfx, onramper, moonpay, meld, kriptonim }
11
12 extension ProviderTypeName on ProviderType {
13 String get title {
14 switch (this) {
15 case ProviderType.robinhood:
16 return 'Robinhood Connect';
17 case ProviderType.dfx:
18 return 'DFX.swiss';
19 case ProviderType.onramper:
20 return 'Onramper';
21 case ProviderType.moonpay:
22 return 'MoonPay';
23 case ProviderType.meld:
24 return 'Meld';
25 case ProviderType.kriptonim:
26 return 'Kriptonim';
27 }
28 }
29
30 String get id {
31 switch (this) {
32 case ProviderType.robinhood:
33 return 'robinhood_connect_provider';
34 case ProviderType.dfx:
35 return 'dfx_connect_provider';
36 case ProviderType.onramper:
37 return 'onramper_provider';
38 case ProviderType.moonpay:
39 return 'moonpay_provider';
40 case ProviderType.meld:
41 return 'meld_provider';
42 case ProviderType.kriptonim:
43 return 'kriptonim_provider';
44 }
45 }
46 }
47
48 class ProvidersHelper {
49 static List<ProviderType> getAvailableBuyProviderTypes() => [
50 ProviderType.robinhood,
51 ProviderType.dfx,
52 ProviderType.onramper,
53 ProviderType.moonpay,
54 ProviderType.kriptonim
55 ];
56
57 static List<ProviderType> getAvailableSellProviderTypes() => [
58 // ProviderType.robinhood, // ToDo: (Konsti) Enable once fixed in Exchange Helper, but still waiting for new Docs
59 ProviderType.dfx,
60 ProviderType.onramper,
61 ProviderType.moonpay,
62 ProviderType.kriptonim
63 ];
64
65 static BuyProvider getProviderByType(ProviderType type) {
66 switch (type) {
67 case ProviderType.robinhood:
68 return getIt.get<RobinhoodBuyProvider>();
69 case ProviderType.dfx:
70 return getIt.get<DFXBuyProvider>();
71 case ProviderType.onramper:
72 return getIt.get<OnRamperBuyProvider>();
73 case ProviderType.moonpay:
74 return getIt.get<MoonPayProvider>();
75 case ProviderType.meld:
76 return getIt.get<MeldBuyProvider>();
77 case ProviderType.kriptonim:
78 return getIt.get<KryptonimBuyProvider>();
79 }
80 }
81 }