dev
dart 147 lines 5.17 KB
Raw
1 import 'package:cw_core/enumerable_item.dart';
2
3 class TradeState extends EnumerableItem<String> with Serializable<String> {
4 const TradeState({required String raw, required String title}) : super(raw: raw, title: title);
5
6 @override
7 bool operator ==(Object other) => other is TradeState && other.raw == raw;
8
9 static const pending = TradeState(raw: 'pending', title: 'Pending');
10 static const awaiting = TradeState(raw: 'awaiting', title: 'Awaiting');
11 static const confirming = TradeState(raw: 'confirming', title: 'Confirming');
12 static const trading = TradeState(raw: 'trading', title: 'Trading');
13 static const traded = TradeState(raw: 'traded', title: 'Traded');
14 static const complete = TradeState(raw: 'complete', title: 'Complete');
15 static const toBeCreated = TradeState(raw: 'TO_BE_CREATED', title: 'To be created');
16 static const unpaid = TradeState(raw: 'UNPAID', title: 'Unpaid');
17 static const underpaid = TradeState(raw: 'UNDERPAID', title: 'Underpaid');
18 static const paidUnconfirmed = TradeState(raw: 'PAID_UNCONFIRMED', title: 'Paid unconfirmed');
19 static const paid = TradeState(raw: 'PAID', title: 'Paid');
20 static const btcSent = TradeState(raw: 'BTC_SENT', title: 'Btc sent');
21 static const timeout = TradeState(raw: 'TIMED_OUT', title: 'Timeout');
22 static const notFound = TradeState(raw: 'NOT_FOUND', title: 'Not found');
23 static const created = TradeState(raw: 'created', title: 'Created');
24 static const finished = TradeState(raw: 'finished', title: 'Finished');
25 static const waiting = TradeState(raw: 'waiting', title: 'Waiting');
26 static const processing = TradeState(raw: 'processing', title: 'Processing');
27 static const waitingPayment = TradeState(raw: 'waitingPayment', title: 'Waiting payment');
28 static const waitingAuthorization =
29 TradeState(raw: 'waitingAuthorization', title: 'Waiting authorization');
30 static const failed = TradeState(raw: 'failed', title: 'Failed');
31 static const completed = TradeState(raw: 'completed', title: 'Completed');
32 static const expired = TradeState(raw: 'expired', title: 'Expired');
33 static const settling = TradeState(raw: 'settling', title: 'Settlement in progress');
34 static const settled = TradeState(raw: 'settled', title: 'Settlement completed');
35 static const wait = TradeState(raw: 'wait', title: 'Waiting');
36 static const overdue = TradeState(raw: 'overdue', title: 'Overdue');
37 static const refund = TradeState(raw: 'refund', title: 'Refund');
38 static const refunded = TradeState(raw: 'refunded', title: 'Refunded');
39 static const confirmation = TradeState(raw: 'confirmation', title: 'Confirmation');
40 static const confirmed = TradeState(raw: 'confirmed', title: 'Confirmed');
41 static const exchanging = TradeState(raw: 'exchanging', title: 'Exchanging');
42 static const sending = TradeState(raw: 'sending', title: 'Sending');
43 static const success = TradeState(raw: 'success', title: 'Success');
44
45 static TradeState deserialize({required String raw}) {
46 switch (raw) {
47 case '1':
48 return unpaid;
49 case '2':
50 return paidUnconfirmed;
51 case '3':
52 return sending;
53 case '4':
54 return confirmed;
55 case '5':
56 case '6':
57 return exchanging;
58 case '7':
59 return sending;
60 case '8':
61 return complete;
62 case '9':
63 return expired;
64 case '10':
65 return underpaid;
66 case '11':
67 return failed;
68 }
69
70 switch (raw) {
71 case 'NOT_FOUND':
72 return notFound;
73 case 'pending':
74 return pending;
75 case 'confirming':
76 return confirming;
77 case 'trading':
78 return trading;
79 case 'traded':
80 return traded;
81 case 'complete':
82 return complete;
83 case 'TO_BE_CREATED':
84 return toBeCreated;
85 case 'UNPAID':
86 return unpaid;
87 case 'UNDERPAID':
88 return underpaid;
89 case 'PAID_UNCONFIRMED':
90 return paidUnconfirmed;
91 case 'PAID':
92 return paid;
93 case 'BTC_SENT':
94 return btcSent;
95 case 'TIMED_OUT':
96 return timeout;
97 case 'created':
98 return created;
99 case 'finished':
100 return finished;
101 case 'waiting':
102 return waiting;
103 case 'processing':
104 case 'inProgress':
105 return processing;
106 case 'waitingPayment':
107 return waitingPayment;
108 case 'waitingAuthorization':
109 return waitingAuthorization;
110 case 'failed':
111 case 'error':
112 return failed;
113 case 'completed':
114 return completed;
115 case 'wait':
116 return wait;
117 case 'overdue':
118 return overdue;
119 case 'refund':
120 return refund;
121 case 'refunded':
122 return refunded;
123 case 'confirmation':
124 case 'verifying':
125 return confirmation;
126 case 'confirmed':
127 return confirmed;
128 case 'exchanging':
129 return exchanging;
130 case 'sending':
131 case 'sending_confirmation':
132 return sending;
133 case 'success':
134 case 'done':
135 return success;
136 case 'expired':
137 return expired;
138 case 'awaiting':
139 return awaiting;
140 default:
141 return TradeState(raw: raw, title: raw);
142 }
143 }
144
145 @override
146 int get hashCode => raw.hashCode ^ title.hashCode;
147 }