1use crate::data::device::MinerHardware;
2use crate::data::device::models::antminer::AntMinerModel;
3use crate::data::device::models::avalon::AvalonMinerModel;
4use crate::data::device::models::bitaxe::BitaxeModel;
5use crate::data::device::models::braiins::BraiinsModel;
6use crate::data::device::models::epic::EPicModel;
7use crate::data::device::models::whatsminer::WhatsMinerModel;
8
9impl From<&AvalonMinerModel> for MinerHardware {
10 fn from(value: &AvalonMinerModel) -> Self {
11 match value {
12 AvalonMinerModel::Avalon721 => Self {
13 boards: Some(4),
14 chips: Some(18),
15 fans: Some(1),
16 },
17 AvalonMinerModel::Avalon741 => Self {
18 boards: Some(4),
19 chips: Some(22),
20 fans: Some(1),
21 },
22 AvalonMinerModel::Avalon761 => Self {
23 boards: Some(4),
24 chips: Some(18),
25 fans: Some(1),
26 },
27 AvalonMinerModel::Avalon821 => Self {
28 boards: Some(4),
29 chips: Some(26),
30 fans: Some(1),
31 },
32 AvalonMinerModel::Avalon841 => Self {
33 boards: Some(4),
34 chips: Some(26),
35 fans: Some(1),
36 },
37 AvalonMinerModel::Avalon851 => Self {
38 boards: Some(4),
39 chips: Some(26),
40 fans: Some(1),
41 },
42 AvalonMinerModel::Avalon921 => Self {
43 boards: Some(4),
44 chips: Some(26),
45 fans: Some(1),
46 },
47 AvalonMinerModel::Avalon1026 => Self {
48 boards: Some(3),
49 chips: Some(80),
50 fans: Some(2),
51 },
52 AvalonMinerModel::Avalon1047 => Self {
53 boards: Some(3),
54 chips: Some(80),
55 fans: Some(2),
56 },
57 AvalonMinerModel::Avalon1066 => Self {
58 boards: Some(3),
59 chips: Some(114),
60 fans: Some(4),
61 },
62 AvalonMinerModel::Avalon1126Pro => Self {
63 boards: Some(3),
64 chips: Some(120),
65 fans: Some(4),
66 },
67 AvalonMinerModel::Avalon1166Pro => Self {
68 boards: Some(3),
69 chips: Some(120),
70 fans: Some(4),
71 },
72 AvalonMinerModel::Avalon1246 => Self {
73 boards: Some(3),
74 chips: Some(120),
75 fans: Some(4),
76 },
77 AvalonMinerModel::Avalon1566 => Self {
78 boards: Some(3),
79 chips: Some(160),
80 fans: Some(2),
81 },
82 AvalonMinerModel::AvalonNano3 => Self {
83 boards: Some(1),
84 chips: Some(10),
85 fans: Some(1),
86 },
87 AvalonMinerModel::AvalonNano3s => Self {
88 boards: Some(1),
89 chips: Some(12),
90 fans: Some(1),
91 },
92 AvalonMinerModel::AvalonHomeQ => Self {
93 boards: Some(1),
94 chips: Some(160),
95 fans: Some(4),
96 },
97 }
98 }
99}
100
101impl From<&WhatsMinerModel> for MinerHardware {
102 fn from(value: &WhatsMinerModel) -> Self {
103 match value {
104 WhatsMinerModel::M20PV10 => Self {
105 chips: Some(156),
106 fans: Some(2),
107 boards: Some(3),
108 },
109 WhatsMinerModel::M20PV30 => Self {
110 chips: Some(148),
111 fans: Some(2),
112 boards: Some(3),
113 },
114 WhatsMinerModel::M20SPlusV30 => Self {
115 chips: None,
116 fans: Some(2),
117 boards: Some(3),
118 },
119 WhatsMinerModel::M20SV10 => Self {
120 chips: Some(105),
121 fans: Some(2),
122 boards: Some(3),
123 },
124 WhatsMinerModel::M20SV20 => Self {
125 chips: Some(111),
126 fans: Some(2),
127 boards: Some(3),
128 },
129 WhatsMinerModel::M20SV30 => Self {
130 chips: Some(140),
131 fans: Some(2),
132 boards: Some(3),
133 },
134 WhatsMinerModel::M20V10 => Self {
135 chips: Some(70),
136 fans: Some(2),
137 boards: Some(3),
138 },
139 WhatsMinerModel::M21SPlusV20 => Self {
140 chips: None,
141 fans: Some(2),
142 boards: Some(3),
143 },
144 WhatsMinerModel::M21SV20 => Self {
145 chips: Some(66),
146 fans: Some(2),
147 boards: Some(3),
148 },
149 WhatsMinerModel::M21SV60 => Self {
150 chips: Some(105),
151 fans: Some(2),
152 boards: Some(3),
153 },
154 WhatsMinerModel::M21SV70 => Self {
155 chips: Some(111),
156 fans: Some(2),
157 boards: Some(3),
158 },
159 WhatsMinerModel::M21V10 => Self {
160 chips: Some(33),
161 fans: Some(2),
162 boards: Some(3),
163 },
164 WhatsMinerModel::M29V10 => Self {
165 chips: Some(50),
166 fans: Some(2),
167 boards: Some(3),
168 },
169 WhatsMinerModel::M30KV10 => Self {
170 chips: Some(240),
171 fans: Some(2),
172 boards: Some(4),
173 },
174 WhatsMinerModel::M30LV10 => Self {
175 chips: Some(144),
176 fans: Some(2),
177 boards: Some(4),
178 },
179 WhatsMinerModel::M30SPlusPlusV10 => Self {
180 chips: Some(255),
181 fans: Some(2),
182 boards: Some(4),
183 },
184 WhatsMinerModel::M30SPlusPlusV20 => Self {
185 chips: Some(255),
186 fans: Some(2),
187 boards: Some(4),
188 },
189 WhatsMinerModel::M30SPlusPlusVE30 => Self {
190 chips: Some(215),
191 fans: Some(2),
192 boards: Some(3),
193 },
194 WhatsMinerModel::M30SPlusPlusVE40 => Self {
195 chips: Some(225),
196 fans: Some(2),
197 boards: Some(3),
198 },
199 WhatsMinerModel::M30SPlusPlusVE50 => Self {
200 chips: Some(235),
201 fans: Some(2),
202 boards: Some(3),
203 },
204 WhatsMinerModel::M30SPlusPlusVF40 => Self {
205 chips: Some(156),
206 fans: Some(2),
207 boards: Some(3),
208 },
209 WhatsMinerModel::M30SPlusPlusVG30 => Self {
210 chips: Some(111),
211 fans: Some(2),
212 boards: Some(3),
213 },
214 WhatsMinerModel::M30SPlusPlusVG40 => Self {
215 chips: Some(117),
216 fans: Some(2),
217 boards: Some(3),
218 },
219 WhatsMinerModel::M30SPlusPlusVG50 => Self {
220 chips: Some(123),
221 fans: Some(2),
222 boards: Some(3),
223 },
224 WhatsMinerModel::M30SPlusPlusVH10 => Self {
225 chips: Some(82),
226 fans: Some(2),
227 boards: Some(3),
228 },
229 WhatsMinerModel::M30SPlusPlusVH100 => Self {
230 chips: Some(82),
231 fans: Some(2),
232 boards: Some(3),
233 },
234 WhatsMinerModel::M30SPlusPlusVH110 => Self {
235 chips: Some(105),
236 fans: Some(2),
237 boards: Some(3),
238 },
239 WhatsMinerModel::M30SPlusPlusVH20 => Self {
240 chips: Some(86),
241 fans: Some(2),
242 boards: Some(3),
243 },
244 WhatsMinerModel::M30SPlusPlusVH30 => Self {
245 chips: Some(111),
246 fans: Some(2),
247 boards: Some(3),
248 },
249 WhatsMinerModel::M30SPlusPlusVH40 => Self {
250 chips: Some(70),
251 fans: Some(2),
252 boards: Some(3),
253 },
254 WhatsMinerModel::M30SPlusPlusVH50 => Self {
255 chips: Some(74),
256 fans: Some(2),
257 boards: Some(3),
258 },
259 WhatsMinerModel::M30SPlusPlusVH60 => Self {
260 chips: Some(78),
261 fans: Some(2),
262 boards: Some(3),
263 },
264 WhatsMinerModel::M30SPlusPlusVH70 => Self {
265 chips: Some(70),
266 fans: Some(2),
267 boards: Some(3),
268 },
269 WhatsMinerModel::M30SPlusPlusVH80 => Self {
270 chips: Some(74),
271 fans: Some(2),
272 boards: Some(3),
273 },
274 WhatsMinerModel::M30SPlusPlusVH90 => Self {
275 chips: Some(78),
276 fans: Some(2),
277 boards: Some(3),
278 },
279 WhatsMinerModel::M30SPlusPlusVI30 => Self {
280 chips: Some(111),
281 fans: Some(2),
282 boards: Some(3),
283 },
284 WhatsMinerModel::M30SPlusPlusVJ20 => Self {
285 chips: Some(70),
286 fans: Some(2),
287 boards: Some(3),
288 },
289 WhatsMinerModel::M30SPlusPlusVJ30 => Self {
290 chips: Some(74),
291 fans: Some(2),
292 boards: Some(3),
293 },
294 WhatsMinerModel::M30SPlusPlusVJ50 => Self {
295 chips: Some(82),
296 fans: Some(2),
297 boards: Some(3),
298 },
299 WhatsMinerModel::M30SPlusPlusVJ60 => Self {
300 chips: Some(111),
301 fans: Some(2),
302 boards: Some(3),
303 },
304 WhatsMinerModel::M30SPlusPlusVJ70 => Self {
305 chips: Some(117),
306 fans: Some(2),
307 boards: Some(3),
308 },
309 WhatsMinerModel::M30SPlusPlusVK30 => Self {
310 chips: Some(74),
311 fans: Some(2),
312 boards: Some(2),
313 },
314 WhatsMinerModel::M30SPlusPlusVK40 => Self {
315 chips: Some(105),
316 fans: Some(2),
317 boards: Some(3),
318 },
319 WhatsMinerModel::M30SPlusV10 => Self {
320 chips: Some(215),
321 fans: Some(2),
322 boards: Some(3),
323 },
324 WhatsMinerModel::M30SPlusV100 => Self {
325 chips: Some(215),
326 fans: Some(2),
327 boards: Some(3),
328 },
329 WhatsMinerModel::M30SPlusV20 => Self {
330 chips: Some(255),
331 fans: Some(2),
332 boards: Some(3),
333 },
334 WhatsMinerModel::M30SPlusV30 => Self {
335 chips: None,
336 fans: Some(2),
337 boards: Some(3),
338 },
339 WhatsMinerModel::M30SPlusV40 => Self {
340 chips: Some(235),
341 fans: Some(2),
342 boards: Some(3),
343 },
344 WhatsMinerModel::M30SPlusV50 => Self {
345 chips: Some(225),
346 fans: Some(2),
347 boards: Some(3),
348 },
349 WhatsMinerModel::M30SPlusV60 => Self {
350 chips: Some(245),
351 fans: Some(2),
352 boards: Some(3),
353 },
354 WhatsMinerModel::M30SPlusV70 => Self {
355 chips: Some(235),
356 fans: Some(2),
357 boards: Some(3),
358 },
359 WhatsMinerModel::M30SPlusV80 => Self {
360 chips: Some(245),
361 fans: Some(2),
362 boards: Some(3),
363 },
364 WhatsMinerModel::M30SPlusV90 => Self {
365 chips: Some(225),
366 fans: Some(2),
367 boards: Some(3),
368 },
369 WhatsMinerModel::M30SPlusVE100 => Self {
370 chips: None,
371 fans: Some(2),
372 boards: Some(3),
373 },
374 WhatsMinerModel::M30SPlusVE30 => Self {
375 chips: Some(148),
376 fans: Some(2),
377 boards: Some(3),
378 },
379 WhatsMinerModel::M30SPlusVE40 => Self {
380 chips: Some(156),
381 fans: Some(2),
382 boards: Some(3),
383 },
384 WhatsMinerModel::M30SPlusVE50 => Self {
385 chips: Some(164),
386 fans: Some(2),
387 boards: Some(3),
388 },
389 WhatsMinerModel::M30SPlusVE60 => Self {
390 chips: Some(172),
391 fans: Some(2),
392 boards: Some(3),
393 },
394 WhatsMinerModel::M30SPlusVE70 => Self {
395 chips: None,
396 fans: Some(2),
397 boards: Some(3),
398 },
399 WhatsMinerModel::M30SPlusVE80 => Self {
400 chips: None,
401 fans: Some(2),
402 boards: Some(3),
403 },
404 WhatsMinerModel::M30SPlusVE90 => Self {
405 chips: None,
406 fans: Some(2),
407 boards: Some(3),
408 },
409 WhatsMinerModel::M30SPlusVF20 => Self {
410 chips: Some(111),
411 fans: Some(2),
412 boards: Some(3),
413 },
414 WhatsMinerModel::M30SPlusVF30 => Self {
415 chips: Some(117),
416 fans: Some(2),
417 boards: Some(3),
418 },
419 WhatsMinerModel::M30SPlusVG20 => Self {
420 chips: Some(82),
421 fans: Some(2),
422 boards: Some(3),
423 },
424 WhatsMinerModel::M30SPlusVG30 => Self {
425 chips: Some(78),
426 fans: Some(2),
427 boards: Some(3),
428 },
429 WhatsMinerModel::M30SPlusVG40 => Self {
430 chips: Some(105),
431 fans: Some(2),
432 boards: Some(3),
433 },
434 WhatsMinerModel::M30SPlusVG50 => Self {
435 chips: Some(111),
436 fans: Some(2),
437 boards: Some(3),
438 },
439 WhatsMinerModel::M30SPlusVG60 => Self {
440 chips: Some(86),
441 fans: Some(2),
442 boards: Some(3),
443 },
444 WhatsMinerModel::M30SPlusVH10 => Self {
445 chips: Some(64),
446 fans: Some(2),
447 boards: Some(3),
448 },
449 WhatsMinerModel::M30SPlusVH20 => Self {
450 chips: Some(66),
451 fans: Some(2),
452 boards: Some(3),
453 },
454 WhatsMinerModel::M30SPlusVH30 => Self {
455 chips: Some(70),
456 fans: Some(2),
457 boards: Some(3),
458 },
459 WhatsMinerModel::M30SPlusVH40 => Self {
460 chips: Some(74),
461 fans: Some(2),
462 boards: Some(3),
463 },
464 WhatsMinerModel::M30SPlusVH50 => Self {
465 chips: Some(64),
466 fans: Some(2),
467 boards: Some(3),
468 },
469 WhatsMinerModel::M30SPlusVH60 => Self {
470 chips: Some(66),
471 fans: Some(2),
472 boards: Some(3),
473 },
474 WhatsMinerModel::M30SPlusVH70 => Self {
475 chips: Some(70),
476 fans: Some(2),
477 boards: Some(3),
478 },
479 WhatsMinerModel::M30SPlusVI30 => Self {
480 chips: Some(86),
481 fans: Some(2),
482 boards: Some(3),
483 },
484 WhatsMinerModel::M30SPlusVJ30 => Self {
485 chips: Some(105),
486 fans: Some(2),
487 boards: Some(3),
488 },
489 WhatsMinerModel::M30SPlusVJ40 => Self {
490 chips: Some(117),
491 fans: Some(2),
492 boards: Some(3),
493 },
494 WhatsMinerModel::M30SV10 => Self {
495 chips: Some(148),
496 fans: Some(2),
497 boards: Some(3),
498 },
499 WhatsMinerModel::M30SV20 => Self {
500 chips: Some(156),
501 fans: Some(2),
502 boards: Some(3),
503 },
504 WhatsMinerModel::M30SV30 => Self {
505 chips: Some(164),
506 fans: Some(2),
507 boards: Some(3),
508 },
509 WhatsMinerModel::M30SV40 => Self {
510 chips: Some(172),
511 fans: Some(2),
512 boards: Some(3),
513 },
514 WhatsMinerModel::M30SV50 => Self {
515 chips: Some(156),
516 fans: Some(2),
517 boards: Some(3),
518 },
519 WhatsMinerModel::M30SV60 => Self {
520 chips: Some(164),
521 fans: Some(2),
522 boards: Some(3),
523 },
524 WhatsMinerModel::M30SV70 => Self {
525 chips: None,
526 fans: Some(2),
527 boards: Some(3),
528 },
529 WhatsMinerModel::M30SV80 => Self {
530 chips: Some(129),
531 fans: Some(2),
532 boards: Some(3),
533 },
534 WhatsMinerModel::M30SVE10 => Self {
535 chips: Some(105),
536 fans: Some(2),
537 boards: Some(3),
538 },
539 WhatsMinerModel::M30SVE20 => Self {
540 chips: Some(111),
541 fans: Some(2),
542 boards: Some(3),
543 },
544 WhatsMinerModel::M30SVE30 => Self {
545 chips: Some(117),
546 fans: Some(2),
547 boards: Some(3),
548 },
549 WhatsMinerModel::M30SVE40 => Self {
550 chips: Some(123),
551 fans: Some(2),
552 boards: Some(3),
553 },
554 WhatsMinerModel::M30SVE50 => Self {
555 chips: Some(129),
556 fans: Some(2),
557 boards: Some(3),
558 },
559 WhatsMinerModel::M30SVE60 => Self {
560 chips: None,
561 fans: Some(2),
562 boards: Some(3),
563 },
564 WhatsMinerModel::M30SVE70 => Self {
565 chips: None,
566 fans: Some(2),
567 boards: Some(3),
568 },
569 WhatsMinerModel::M30SVF10 => Self {
570 chips: Some(70),
571 fans: Some(2),
572 boards: Some(3),
573 },
574 WhatsMinerModel::M30SVF20 => Self {
575 chips: Some(74),
576 fans: Some(2),
577 boards: Some(3),
578 },
579 WhatsMinerModel::M30SVF30 => Self {
580 chips: Some(78),
581 fans: Some(2),
582 boards: Some(3),
583 },
584 WhatsMinerModel::M30SVG10 => Self {
585 chips: Some(66),
586 fans: Some(2),
587 boards: Some(3),
588 },
589 WhatsMinerModel::M30SVG20 => Self {
590 chips: Some(70),
591 fans: Some(2),
592 boards: Some(3),
593 },
594 WhatsMinerModel::M30SVG30 => Self {
595 chips: Some(74),
596 fans: Some(2),
597 boards: Some(3),
598 },
599 WhatsMinerModel::M30SVG40 => Self {
600 chips: Some(78),
601 fans: Some(2),
602 boards: Some(3),
603 },
604 WhatsMinerModel::M30SVH10 => Self {
605 chips: Some(64),
606 fans: Some(2),
607 boards: Some(3),
608 },
609 WhatsMinerModel::M30SVH20 => Self {
610 chips: Some(66),
611 fans: Some(2),
612 boards: Some(3),
613 },
614 WhatsMinerModel::M30SVH30 => Self {
615 chips: None,
616 fans: Some(2),
617 boards: Some(3),
618 },
619 WhatsMinerModel::M30SVH40 => Self {
620 chips: Some(64),
621 fans: Some(2),
622 boards: Some(3),
623 },
624 WhatsMinerModel::M30SVH50 => Self {
625 chips: Some(66),
626 fans: Some(2),
627 boards: Some(3),
628 },
629 WhatsMinerModel::M30SVH60 => Self {
630 chips: Some(70),
631 fans: Some(2),
632 boards: Some(3),
633 },
634 WhatsMinerModel::M30SVI20 => Self {
635 chips: Some(70),
636 fans: Some(2),
637 boards: Some(3),
638 },
639 WhatsMinerModel::M30SVJ30 => Self {
640 chips: Some(105),
641 fans: Some(2),
642 boards: Some(3),
643 },
644 WhatsMinerModel::M30V10 => Self {
645 chips: Some(105),
646 fans: Some(2),
647 boards: Some(3),
648 },
649 WhatsMinerModel::M30V20 => Self {
650 chips: Some(111),
651 fans: Some(2),
652 boards: Some(3),
653 },
654 WhatsMinerModel::M31HV10 => Self {
655 chips: Some(114),
656 fans: Some(2),
657 boards: Some(3),
658 },
659 WhatsMinerModel::M31HV40 => Self {
660 chips: Some(136),
661 fans: Some(2),
662 boards: Some(4),
663 },
664 WhatsMinerModel::M31LV10 => Self {
665 chips: Some(144),
666 fans: Some(2),
667 boards: Some(4),
668 },
669 WhatsMinerModel::M31SPlusV10 => Self {
670 chips: Some(105),
671 fans: Some(2),
672 boards: Some(3),
673 },
674 WhatsMinerModel::M31SPlusV100 => Self {
675 chips: Some(111),
676 fans: Some(2),
677 boards: Some(3),
678 },
679 WhatsMinerModel::M31SPlusV20 => Self {
680 chips: Some(111),
681 fans: Some(2),
682 boards: Some(3),
683 },
684 WhatsMinerModel::M31SPlusV30 => Self {
685 chips: Some(117),
686 fans: Some(2),
687 boards: Some(3),
688 },
689 WhatsMinerModel::M31SPlusV40 => Self {
690 chips: Some(123),
691 fans: Some(2),
692 boards: Some(3),
693 },
694 WhatsMinerModel::M31SPlusV50 => Self {
695 chips: Some(148),
696 fans: Some(2),
697 boards: Some(3),
698 },
699 WhatsMinerModel::M31SPlusV60 => Self {
700 chips: Some(156),
701 fans: Some(2),
702 boards: Some(3),
703 },
704 WhatsMinerModel::M31SPlusV80 => Self {
705 chips: Some(129),
706 fans: Some(2),
707 boards: Some(3),
708 },
709 WhatsMinerModel::M31SPlusV90 => Self {
710 chips: Some(117),
711 fans: Some(2),
712 boards: Some(3),
713 },
714 WhatsMinerModel::M31SPlusVE10 => Self {
715 chips: Some(82),
716 fans: Some(2),
717 boards: Some(3),
718 },
719 WhatsMinerModel::M31SPlusVE20 => Self {
720 chips: Some(78),
721 fans: Some(2),
722 boards: Some(3),
723 },
724 WhatsMinerModel::M31SPlusVE30 => Self {
725 chips: Some(105),
726 fans: Some(2),
727 boards: Some(3),
728 },
729 WhatsMinerModel::M31SPlusVE40 => Self {
730 chips: Some(111),
731 fans: Some(2),
732 boards: Some(3),
733 },
734 WhatsMinerModel::M31SPlusVE50 => Self {
735 chips: Some(117),
736 fans: Some(2),
737 boards: Some(3),
738 },
739 WhatsMinerModel::M31SPlusVE60 => Self {
740 chips: None,
741 fans: Some(2),
742 boards: Some(3),
743 },
744 WhatsMinerModel::M31SPlusVE80 => Self {
745 chips: None,
746 fans: Some(2),
747 boards: Some(3),
748 },
749 WhatsMinerModel::M31SPlusVF20 => Self {
750 chips: Some(66),
751 fans: Some(2),
752 boards: Some(3),
753 },
754 WhatsMinerModel::M31SPlusVF30 => Self {
755 chips: None,
756 fans: Some(2),
757 boards: Some(3),
758 },
759 WhatsMinerModel::M31SPlusVG20 => Self {
760 chips: Some(66),
761 fans: Some(2),
762 boards: Some(3),
763 },
764 WhatsMinerModel::M31SPlusVG30 => Self {
765 chips: Some(70),
766 fans: Some(2),
767 boards: Some(3),
768 },
769 WhatsMinerModel::M31SEV10 => Self {
770 chips: Some(82),
771 fans: Some(2),
772 boards: Some(3),
773 },
774 WhatsMinerModel::M31SEV20 => Self {
775 chips: Some(78),
776 fans: Some(2),
777 boards: Some(3),
778 },
779 WhatsMinerModel::M31SEV30 => Self {
780 chips: Some(78),
781 fans: Some(2),
782 boards: Some(3),
783 },
784 WhatsMinerModel::M31SV10 => Self {
785 chips: Some(105),
786 fans: Some(2),
787 boards: Some(3),
788 },
789 WhatsMinerModel::M31SV20 => Self {
790 chips: Some(111),
791 fans: Some(2),
792 boards: Some(3),
793 },
794 WhatsMinerModel::M31SV30 => Self {
795 chips: Some(117),
796 fans: Some(2),
797 boards: Some(3),
798 },
799 WhatsMinerModel::M31SV40 => Self {
800 chips: Some(123),
801 fans: Some(2),
802 boards: Some(3),
803 },
804 WhatsMinerModel::M31SV50 => Self {
805 chips: Some(78),
806 fans: Some(2),
807 boards: Some(3),
808 },
809 WhatsMinerModel::M31SV60 => Self {
810 chips: Some(105),
811 fans: Some(2),
812 boards: Some(3),
813 },
814 WhatsMinerModel::M31SV70 => Self {
815 chips: Some(111),
816 fans: Some(2),
817 boards: Some(3),
818 },
819 WhatsMinerModel::M31SV80 => Self {
820 chips: None,
821 fans: Some(2),
822 boards: Some(3),
823 },
824 WhatsMinerModel::M31SV90 => Self {
825 chips: Some(117),
826 fans: Some(2),
827 boards: Some(3),
828 },
829 WhatsMinerModel::M31SVE10 => Self {
830 chips: Some(70),
831 fans: Some(2),
832 boards: Some(3),
833 },
834 WhatsMinerModel::M31SVE20 => Self {
835 chips: Some(74),
836 fans: Some(2),
837 boards: Some(3),
838 },
839 WhatsMinerModel::M31SVE30 => Self {
840 chips: None,
841 fans: Some(2),
842 boards: Some(3),
843 },
844 WhatsMinerModel::M31V10 => Self {
845 chips: Some(70),
846 fans: Some(2),
847 boards: Some(3),
848 },
849 WhatsMinerModel::M31V20 => Self {
850 chips: Some(74),
851 fans: Some(2),
852 boards: Some(3),
853 },
854 WhatsMinerModel::M32V10 => Self {
855 chips: Some(78),
856 fans: Some(2),
857 boards: Some(3),
858 },
859 WhatsMinerModel::M32V20 => Self {
860 chips: Some(74),
861 fans: Some(2),
862 boards: Some(3),
863 },
864 WhatsMinerModel::M33SPlusPlusVG40 => Self {
865 chips: Some(174),
866 fans: Some(0),
867 boards: Some(4),
868 },
869 WhatsMinerModel::M33SPlusPlusVH20 => Self {
870 chips: Some(112),
871 fans: Some(0),
872 boards: Some(4),
873 },
874 WhatsMinerModel::M33SPlusPlusVH30 => Self {
875 chips: None,
876 fans: Some(0),
877 boards: Some(4),
878 },
879 WhatsMinerModel::M33SPlusVG20 => Self {
880 chips: Some(112),
881 fans: Some(0),
882 boards: Some(4),
883 },
884 WhatsMinerModel::M33SPlusVG30 => Self {
885 chips: Some(162),
886 fans: Some(0),
887 boards: Some(4),
888 },
889 WhatsMinerModel::M33SPlusVH20 => Self {
890 chips: Some(100),
891 fans: Some(0),
892 boards: Some(4),
893 },
894 WhatsMinerModel::M33SPlusVH30 => Self {
895 chips: None,
896 fans: Some(0),
897 boards: Some(4),
898 },
899 WhatsMinerModel::M33SVG30 => Self {
900 chips: Some(116),
901 fans: Some(0),
902 boards: Some(4),
903 },
904 WhatsMinerModel::M33V10 => Self {
905 chips: Some(33),
906 fans: Some(0),
907 boards: Some(3),
908 },
909 WhatsMinerModel::M33V20 => Self {
910 chips: Some(62),
911 fans: Some(0),
912 boards: Some(3),
913 },
914 WhatsMinerModel::M33V30 => Self {
915 chips: Some(66),
916 fans: Some(0),
917 boards: Some(3),
918 },
919 WhatsMinerModel::M34SPlusVE10 => Self {
920 chips: Some(116),
921 fans: Some(0),
922 boards: Some(4),
923 },
924 WhatsMinerModel::M36SPlusPlusVH30 => Self {
925 chips: Some(80),
926 fans: Some(0),
927 boards: Some(4),
928 },
929 WhatsMinerModel::M36SPlusVG30 => Self {
930 chips: Some(108),
931 fans: Some(0),
932 boards: Some(4),
933 },
934 WhatsMinerModel::M36SVE10 => Self {
935 chips: Some(114),
936 fans: Some(0),
937 boards: Some(4),
938 },
939 WhatsMinerModel::M39V10 => Self {
940 chips: Some(50),
941 fans: Some(0),
942 boards: Some(3),
943 },
944 WhatsMinerModel::M39V20 => Self {
945 chips: Some(54),
946 fans: Some(0),
947 boards: Some(3),
948 },
949 WhatsMinerModel::M39V30 => Self {
950 chips: Some(68),
951 fans: Some(0),
952 boards: Some(3),
953 },
954 WhatsMinerModel::M50SPlusPlusVK10 => Self {
955 chips: Some(117),
956 fans: Some(2),
957 boards: Some(3),
958 },
959 WhatsMinerModel::M50SPlusPlusVK20 => Self {
960 chips: Some(123),
961 fans: Some(2),
962 boards: Some(3),
963 },
964 WhatsMinerModel::M50SPlusPlusVK30 => Self {
965 chips: Some(156),
966 fans: Some(2),
967 boards: Some(3),
968 },
969 WhatsMinerModel::M50SPlusPlusVK40 => Self {
970 chips: Some(129),
971 fans: Some(2),
972 boards: Some(3),
973 },
974 WhatsMinerModel::M50SPlusPlusVK50 => Self {
975 chips: Some(135),
976 fans: Some(2),
977 boards: Some(3),
978 },
979 WhatsMinerModel::M50SPlusPlusVK60 => Self {
980 chips: Some(111),
981 fans: Some(2),
982 boards: Some(3),
983 },
984 WhatsMinerModel::M50SPlusPlusVL20 => Self {
985 chips: Some(86),
986 fans: Some(2),
987 boards: Some(3),
988 },
989 WhatsMinerModel::M50SPlusPlusVL30 => Self {
990 chips: Some(111),
991 fans: Some(2),
992 boards: Some(3),
993 },
994 WhatsMinerModel::M50SPlusPlusVL40 => Self {
995 chips: Some(117),
996 fans: Some(2),
997 boards: Some(3),
998 },
999 WhatsMinerModel::M50SPlusPlusVL50 => Self {
1000 chips: Some(105),
1001 fans: Some(2),
1002 boards: Some(3),
1003 },
1004 WhatsMinerModel::M50SPlusPlusVL60 => Self {
1005 chips: Some(111),
1006 fans: Some(2),
1007 boards: Some(3),
1008 },
1009 WhatsMinerModel::M50SPlusVH30 => Self {
1010 chips: Some(172),
1011 fans: Some(2),
1012 boards: Some(3),
1013 },
1014 WhatsMinerModel::M50SPlusVH40 => Self {
1015 chips: Some(180),
1016 fans: Some(2),
1017 boards: Some(3),
1018 },
1019 WhatsMinerModel::M50SPlusVJ30 => Self {
1020 chips: Some(156),
1021 fans: Some(2),
1022 boards: Some(3),
1023 },
1024 WhatsMinerModel::M50SPlusVJ40 => Self {
1025 chips: Some(164),
1026 fans: Some(2),
1027 boards: Some(3),
1028 },
1029 WhatsMinerModel::M50SPlusVJ60 => Self {
1030 chips: Some(164),
1031 fans: Some(2),
1032 boards: Some(3),
1033 },
1034 WhatsMinerModel::M50SPlusVK10 => Self {
1035 chips: Some(111),
1036 fans: Some(2),
1037 boards: Some(3),
1038 },
1039 WhatsMinerModel::M50SPlusVK20 => Self {
1040 chips: Some(117),
1041 fans: Some(2),
1042 boards: Some(3),
1043 },
1044 WhatsMinerModel::M50SPlusVK30 => Self {
1045 chips: Some(123),
1046 fans: Some(2),
1047 boards: Some(3),
1048 },
1049 WhatsMinerModel::M50SPlusVL10 => Self {
1050 chips: Some(82),
1051 fans: Some(2),
1052 boards: Some(3),
1053 },
1054 WhatsMinerModel::M50SPlusVL20 => Self {
1055 chips: Some(86),
1056 fans: Some(2),
1057 boards: Some(3),
1058 },
1059 WhatsMinerModel::M50SPlusVL30 => Self {
1060 chips: Some(105),
1061 fans: Some(2),
1062 boards: Some(3),
1063 },
1064 WhatsMinerModel::M50SVH10 => Self {
1065 chips: None,
1066 fans: Some(2),
1067 boards: Some(3),
1068 },
1069 WhatsMinerModel::M50SVH20 => Self {
1070 chips: Some(135),
1071 fans: Some(2),
1072 boards: Some(3),
1073 },
1074 WhatsMinerModel::M50SVH30 => Self {
1075 chips: Some(156),
1076 fans: Some(2),
1077 boards: Some(3),
1078 },
1079 WhatsMinerModel::M50SVH40 => Self {
1080 chips: Some(148),
1081 fans: Some(2),
1082 boards: Some(3),
1083 },
1084 WhatsMinerModel::M50SVH50 => Self {
1085 chips: Some(135),
1086 fans: Some(2),
1087 boards: Some(3),
1088 },
1089 WhatsMinerModel::M50SVJ10 => Self {
1090 chips: Some(111),
1091 fans: Some(2),
1092 boards: Some(3),
1093 },
1094 WhatsMinerModel::M50SVJ20 => Self {
1095 chips: Some(117),
1096 fans: Some(2),
1097 boards: Some(3),
1098 },
1099 WhatsMinerModel::M50SVJ30 => Self {
1100 chips: Some(123),
1101 fans: Some(2),
1102 boards: Some(3),
1103 },
1104 WhatsMinerModel::M50SVJ40 => Self {
1105 chips: Some(129),
1106 fans: Some(2),
1107 boards: Some(3),
1108 },
1109 WhatsMinerModel::M50SVJ50 => Self {
1110 chips: Some(135),
1111 fans: Some(2),
1112 boards: Some(3),
1113 },
1114 WhatsMinerModel::M50SVK10 => Self {
1115 chips: Some(78),
1116 fans: Some(2),
1117 boards: Some(3),
1118 },
1119 WhatsMinerModel::M50SVK20 => Self {
1120 chips: Some(111),
1121 fans: Some(2),
1122 boards: Some(3),
1123 },
1124 WhatsMinerModel::M50SVK30 => Self {
1125 chips: Some(117),
1126 fans: Some(2),
1127 boards: Some(3),
1128 },
1129 WhatsMinerModel::M50SVK50 => Self {
1130 chips: Some(105),
1131 fans: Some(2),
1132 boards: Some(3),
1133 },
1134 WhatsMinerModel::M50SVK60 => Self {
1135 chips: Some(111),
1136 fans: Some(2),
1137 boards: Some(3),
1138 },
1139 WhatsMinerModel::M50SVK70 => Self {
1140 chips: Some(123),
1141 fans: Some(2),
1142 boards: Some(3),
1143 },
1144 WhatsMinerModel::M50SVK80 => Self {
1145 chips: Some(86),
1146 fans: Some(2),
1147 boards: Some(3),
1148 },
1149 WhatsMinerModel::M50SVL20 => Self {
1150 chips: Some(78),
1151 fans: Some(2),
1152 boards: Some(3),
1153 },
1154 WhatsMinerModel::M50SVL30 => Self {
1155 chips: Some(82),
1156 fans: Some(2),
1157 boards: Some(3),
1158 },
1159 WhatsMinerModel::M50VE30 => Self {
1160 chips: Some(255),
1161 fans: Some(2),
1162 boards: Some(4),
1163 },
1164 WhatsMinerModel::M50VG30 => Self {
1165 chips: Some(156),
1166 fans: Some(2),
1167 boards: Some(3),
1168 },
1169 WhatsMinerModel::M50VH10 => Self {
1170 chips: Some(86),
1171 fans: Some(2),
1172 boards: Some(3),
1173 },
1174 WhatsMinerModel::M50VH20 => Self {
1175 chips: Some(111),
1176 fans: Some(2),
1177 boards: Some(3),
1178 },
1179 WhatsMinerModel::M50VH30 => Self {
1180 chips: Some(117),
1181 fans: Some(2),
1182 boards: Some(3),
1183 },
1184 WhatsMinerModel::M50VH40 => Self {
1185 chips: Some(84),
1186 fans: Some(2),
1187 boards: Some(3),
1188 },
1189 WhatsMinerModel::M50VH50 => Self {
1190 chips: Some(105),
1191 fans: Some(2),
1192 boards: Some(3),
1193 },
1194 WhatsMinerModel::M50VH60 => Self {
1195 chips: Some(84),
1196 fans: Some(2),
1197 boards: Some(3),
1198 },
1199 WhatsMinerModel::M50VH70 => Self {
1200 chips: Some(105),
1201 fans: Some(2),
1202 boards: Some(3),
1203 },
1204 WhatsMinerModel::M50VH80 => Self {
1205 chips: Some(111),
1206 fans: Some(2),
1207 boards: Some(3),
1208 },
1209 WhatsMinerModel::M50VH90 => Self {
1210 chips: Some(117),
1211 fans: Some(2),
1212 boards: Some(3),
1213 },
1214 WhatsMinerModel::M50VJ10 => Self {
1215 chips: Some(86),
1216 fans: Some(2),
1217 boards: Some(3),
1218 },
1219 WhatsMinerModel::M50VJ20 => Self {
1220 chips: Some(111),
1221 fans: Some(2),
1222 boards: Some(3),
1223 },
1224 WhatsMinerModel::M50VJ30 => Self {
1225 chips: Some(117),
1226 fans: Some(2),
1227 boards: Some(3),
1228 },
1229 WhatsMinerModel::M50VJ40 => Self {
1230 chips: Some(123),
1231 fans: Some(2),
1232 boards: Some(3),
1233 },
1234 WhatsMinerModel::M50VJ60 => Self {
1235 chips: Some(164),
1236 fans: Some(2),
1237 boards: Some(3),
1238 },
1239 WhatsMinerModel::M50VK40 => Self {
1240 chips: Some(111),
1241 fans: Some(2),
1242 boards: Some(3),
1243 },
1244 WhatsMinerModel::M50VK50 => Self {
1245 chips: Some(117),
1246 fans: Some(2),
1247 boards: Some(3),
1248 },
1249 WhatsMinerModel::M52SPlusPlusVL10 => Self {
1250 chips: Some(87),
1251 fans: Some(0),
1252 boards: Some(4),
1253 },
1254 WhatsMinerModel::M52SVK30 => Self {
1255 chips: Some(62),
1256 fans: Some(0),
1257 boards: Some(4),
1258 },
1259 WhatsMinerModel::M53HVH10 => Self {
1260 chips: Some(56),
1261 fans: Some(0),
1262 boards: Some(4),
1263 },
1264 WhatsMinerModel::M53SPlusPlusVK10 => Self {
1265 chips: Some(198),
1266 fans: Some(0),
1267 boards: Some(4),
1268 },
1269 WhatsMinerModel::M53SPlusPlusVK20 => Self {
1270 chips: Some(192),
1271 fans: Some(0),
1272 boards: Some(4),
1273 },
1274 WhatsMinerModel::M53SPlusPlusVK30 => Self {
1275 chips: Some(240),
1276 fans: Some(0),
1277 boards: Some(4),
1278 },
1279 WhatsMinerModel::M53SPlusPlusVK50 => Self {
1280 chips: Some(186),
1281 fans: Some(0),
1282 boards: Some(4),
1283 },
1284 WhatsMinerModel::M53SPlusPlusVL10 => Self {
1285 chips: Some(128),
1286 fans: Some(0),
1287 boards: Some(4),
1288 },
1289 WhatsMinerModel::M53SPlusPlusVL30 => Self {
1290 chips: Some(174),
1291 fans: Some(0),
1292 boards: Some(4),
1293 },
1294 WhatsMinerModel::M53SPlusVJ30 => Self {
1295 chips: Some(240),
1296 fans: Some(0),
1297 boards: Some(4),
1298 },
1299 WhatsMinerModel::M53SPlusVJ40 => Self {
1300 chips: Some(248),
1301 fans: Some(0),
1302 boards: Some(4),
1303 },
1304 WhatsMinerModel::M53SPlusVJ50 => Self {
1305 chips: Some(264),
1306 fans: Some(0),
1307 boards: Some(4),
1308 },
1309 WhatsMinerModel::M53SPlusVK30 => Self {
1310 chips: Some(168),
1311 fans: Some(0),
1312 boards: Some(4),
1313 },
1314 WhatsMinerModel::M53SVH20 => Self {
1315 chips: Some(198),
1316 fans: Some(0),
1317 boards: Some(4),
1318 },
1319 WhatsMinerModel::M53SVH30 => Self {
1320 chips: Some(204),
1321 fans: Some(0),
1322 boards: Some(4),
1323 },
1324 WhatsMinerModel::M53SVJ30 => Self {
1325 chips: Some(180),
1326 fans: Some(0),
1327 boards: Some(4),
1328 },
1329 WhatsMinerModel::M53SVJ40 => Self {
1330 chips: Some(192),
1331 fans: Some(0),
1332 boards: Some(4),
1333 },
1334 WhatsMinerModel::M53SVK30 => Self {
1335 chips: Some(128),
1336 fans: Some(0),
1337 boards: Some(4),
1338 },
1339 WhatsMinerModel::M53VH30 => Self {
1340 chips: Some(128),
1341 fans: Some(0),
1342 boards: Some(4),
1343 },
1344 WhatsMinerModel::M53VH40 => Self {
1345 chips: Some(174),
1346 fans: Some(0),
1347 boards: Some(4),
1348 },
1349 WhatsMinerModel::M53VH50 => Self {
1350 chips: Some(162),
1351 fans: Some(0),
1352 boards: Some(4),
1353 },
1354 WhatsMinerModel::M53VK30 => Self {
1355 chips: Some(100),
1356 fans: Some(0),
1357 boards: Some(4),
1358 },
1359 WhatsMinerModel::M53VK60 => Self {
1360 chips: Some(100),
1361 fans: Some(0),
1362 boards: Some(4),
1363 },
1364 WhatsMinerModel::M54SPlusPlusVK30 => Self {
1365 chips: Some(96),
1366 fans: Some(0),
1367 boards: Some(4),
1368 },
1369 WhatsMinerModel::M54SPlusPlusVL30 => Self {
1370 chips: Some(68),
1371 fans: Some(0),
1372 boards: Some(4),
1373 },
1374 WhatsMinerModel::M54SPlusPlusVL40 => Self {
1375 chips: Some(90),
1376 fans: Some(0),
1377 boards: Some(4),
1378 },
1379 WhatsMinerModel::M56SPlusPlusVK10 => Self {
1380 chips: Some(160),
1381 fans: Some(0),
1382 boards: Some(4),
1383 },
1384 WhatsMinerModel::M56SPlusPlusVK30 => Self {
1385 chips: Some(176),
1386 fans: Some(0),
1387 boards: Some(4),
1388 },
1389 WhatsMinerModel::M56SPlusPlusVK40 => Self {
1390 chips: Some(132),
1391 fans: Some(0),
1392 boards: Some(4),
1393 },
1394 WhatsMinerModel::M56SPlusPlusVK50 => Self {
1395 chips: Some(152),
1396 fans: Some(0),
1397 boards: Some(4),
1398 },
1399 WhatsMinerModel::M56SPlusVJ30 => Self {
1400 chips: Some(176),
1401 fans: Some(0),
1402 boards: Some(4),
1403 },
1404 WhatsMinerModel::M56SPlusVK30 => Self {
1405 chips: Some(108),
1406 fans: Some(0),
1407 boards: Some(4),
1408 },
1409 WhatsMinerModel::M56SPlusVK40 => Self {
1410 chips: Some(114),
1411 fans: Some(0),
1412 boards: Some(4),
1413 },
1414 WhatsMinerModel::M56SPlusVK50 => Self {
1415 chips: Some(120),
1416 fans: Some(0),
1417 boards: Some(4),
1418 },
1419 WhatsMinerModel::M56SVH30 => Self {
1420 chips: Some(152),
1421 fans: Some(0),
1422 boards: Some(4),
1423 },
1424 WhatsMinerModel::M56SVJ30 => Self {
1425 chips: Some(132),
1426 fans: Some(0),
1427 boards: Some(4),
1428 },
1429 WhatsMinerModel::M56SVJ40 => Self {
1430 chips: Some(152),
1431 fans: Some(0),
1432 boards: Some(4),
1433 },
1434 WhatsMinerModel::M56VH30 => Self {
1435 chips: Some(108),
1436 fans: Some(0),
1437 boards: Some(4),
1438 },
1439 WhatsMinerModel::M59VH30 => Self {
1440 chips: Some(132),
1441 fans: Some(0),
1442 boards: Some(4),
1443 },
1444 WhatsMinerModel::M60SPlusPlusVL30 => Self {
1445 chips: Some(225),
1446 fans: Some(2),
1447 boards: Some(3),
1448 },
1449 WhatsMinerModel::M60SPlusPlusVL40 => Self {
1450 chips: Some(235),
1451 fans: Some(2),
1452 boards: Some(3),
1453 },
1454 WhatsMinerModel::M60SPlusVK30 => Self {
1455 chips: Some(245),
1456 fans: Some(2),
1457 boards: Some(3),
1458 },
1459 WhatsMinerModel::M60SPlusVK40 => Self {
1460 chips: Some(215),
1461 fans: Some(2),
1462 boards: Some(4),
1463 },
1464 WhatsMinerModel::M60SPlusVK50 => Self {
1465 chips: Some(225),
1466 fans: Some(2),
1467 boards: Some(4),
1468 },
1469 WhatsMinerModel::M60SPlusVK60 => Self {
1470 chips: Some(294),
1471 fans: Some(2),
1472 boards: Some(3),
1473 },
1474 WhatsMinerModel::M60SPlusVK70 => Self {
1475 chips: Some(306),
1476 fans: Some(2),
1477 boards: Some(3),
1478 },
1479 WhatsMinerModel::M60SPlusVL10 => Self {
1480 chips: Some(196),
1481 fans: Some(2),
1482 boards: Some(3),
1483 },
1484 WhatsMinerModel::M60SPlusVL30 => Self {
1485 chips: Some(225),
1486 fans: Some(2),
1487 boards: Some(3),
1488 },
1489 WhatsMinerModel::M60SPlusVL40 => Self {
1490 chips: Some(188),
1491 fans: Some(2),
1492 boards: Some(3),
1493 },
1494 WhatsMinerModel::M60SPlusVL50 => Self {
1495 chips: Some(180),
1496 fans: Some(2),
1497 boards: Some(3),
1498 },
1499 WhatsMinerModel::M60SPlusVL60 => Self {
1500 chips: Some(172),
1501 fans: Some(2),
1502 boards: Some(3),
1503 },
1504 WhatsMinerModel::M60SVK10 => Self {
1505 chips: Some(215),
1506 fans: Some(2),
1507 boards: Some(3),
1508 },
1509 WhatsMinerModel::M60SVK20 => Self {
1510 chips: Some(235),
1511 fans: Some(2),
1512 boards: Some(3),
1513 },
1514 WhatsMinerModel::M60SVK30 => Self {
1515 chips: Some(245),
1516 fans: Some(2),
1517 boards: Some(3),
1518 },
1519 WhatsMinerModel::M60SVK40 => Self {
1520 chips: Some(225),
1521 fans: Some(2),
1522 boards: Some(3),
1523 },
1524 WhatsMinerModel::M60SVL10 => Self {
1525 chips: Some(147),
1526 fans: Some(2),
1527 boards: Some(3),
1528 },
1529 WhatsMinerModel::M60SVL20 => Self {
1530 chips: Some(164),
1531 fans: Some(2),
1532 boards: Some(3),
1533 },
1534 WhatsMinerModel::M60SVL30 => Self {
1535 chips: Some(172),
1536 fans: Some(2),
1537 boards: Some(3),
1538 },
1539 WhatsMinerModel::M60SVL40 => Self {
1540 chips: Some(180),
1541 fans: Some(2),
1542 boards: Some(3),
1543 },
1544 WhatsMinerModel::M60SVL50 => Self {
1545 chips: Some(188),
1546 fans: Some(2),
1547 boards: Some(3),
1548 },
1549 WhatsMinerModel::M60SVL60 => Self {
1550 chips: Some(196),
1551 fans: Some(2),
1552 boards: Some(3),
1553 },
1554 WhatsMinerModel::M60SVL70 => Self {
1555 chips: Some(141),
1556 fans: Some(2),
1557 boards: Some(3),
1558 },
1559 WhatsMinerModel::M60VK10 => Self {
1560 chips: Some(164),
1561 fans: Some(2),
1562 boards: Some(3),
1563 },
1564 WhatsMinerModel::M60VK20 => Self {
1565 chips: Some(172),
1566 fans: Some(2),
1567 boards: Some(3),
1568 },
1569 WhatsMinerModel::M60VK30 => Self {
1570 chips: Some(215),
1571 fans: Some(2),
1572 boards: Some(3),
1573 },
1574 WhatsMinerModel::M60VK40 => Self {
1575 chips: Some(180),
1576 fans: Some(2),
1577 boards: Some(3),
1578 },
1579 WhatsMinerModel::M60VK6A => Self {
1580 chips: Some(172),
1581 fans: Some(2),
1582 boards: Some(3),
1583 },
1584 WhatsMinerModel::M60VL10 => Self {
1585 chips: Some(111),
1586 fans: Some(2),
1587 boards: Some(3),
1588 },
1589 WhatsMinerModel::M60VL20 => Self {
1590 chips: Some(117),
1591 fans: Some(2),
1592 boards: Some(3),
1593 },
1594 WhatsMinerModel::M60VL30 => Self {
1595 chips: Some(123),
1596 fans: Some(2),
1597 boards: Some(3),
1598 },
1599 WhatsMinerModel::M60VL40 => Self {
1600 chips: Some(129),
1601 fans: Some(2),
1602 boards: Some(3),
1603 },
1604 WhatsMinerModel::M60VL50 => Self {
1605 chips: Some(135),
1606 fans: Some(2),
1607 boards: Some(3),
1608 },
1609 WhatsMinerModel::M61SPlusVL30 => Self {
1610 chips: Some(225),
1611 fans: Some(2),
1612 boards: Some(3),
1613 },
1614 WhatsMinerModel::M61SVL10 => Self {
1615 chips: Some(164),
1616 fans: Some(2),
1617 boards: Some(3),
1618 },
1619 WhatsMinerModel::M61SVL20 => Self {
1620 chips: Some(172),
1621 fans: Some(2),
1622 boards: Some(3),
1623 },
1624 WhatsMinerModel::M61SVL30 => Self {
1625 chips: Some(180),
1626 fans: Some(2),
1627 boards: Some(3),
1628 },
1629 WhatsMinerModel::M61VK10 => Self {
1630 chips: Some(180),
1631 fans: Some(2),
1632 boards: Some(3),
1633 },
1634 WhatsMinerModel::M61VK20 => Self {
1635 chips: Some(184),
1636 fans: Some(2),
1637 boards: Some(3),
1638 },
1639 WhatsMinerModel::M61VK30 => Self {
1640 chips: Some(188),
1641 fans: Some(2),
1642 boards: Some(3),
1643 },
1644 WhatsMinerModel::M61VK40 => Self {
1645 chips: Some(192),
1646 fans: Some(2),
1647 boards: Some(3),
1648 },
1649 WhatsMinerModel::M61VL10 => Self {
1650 chips: Some(135),
1651 fans: Some(2),
1652 boards: Some(3),
1653 },
1654 WhatsMinerModel::M61VL30 => Self {
1655 chips: Some(141),
1656 fans: Some(2),
1657 boards: Some(3),
1658 },
1659 WhatsMinerModel::M61VL40 => Self {
1660 chips: Some(144),
1661 fans: Some(2),
1662 boards: Some(3),
1663 },
1664 WhatsMinerModel::M61VL50 => Self {
1665 chips: Some(147),
1666 fans: Some(2),
1667 boards: Some(3),
1668 },
1669 WhatsMinerModel::M61VL60 => Self {
1670 chips: Some(150),
1671 fans: Some(2),
1672 boards: Some(3),
1673 },
1674 WhatsMinerModel::M62SPlusVK30 => Self {
1675 chips: Some(430),
1676 fans: Some(0),
1677 boards: Some(3),
1678 },
1679 WhatsMinerModel::M63SPlusPlusVL20 => Self {
1680 chips: Some(380),
1681 fans: Some(0),
1682 boards: Some(4),
1683 },
1684 WhatsMinerModel::M63SPlusVK30 => Self {
1685 chips: Some(456),
1686 fans: Some(0),
1687 boards: Some(4),
1688 },
1689 WhatsMinerModel::M63SPlusVL10 => Self {
1690 chips: Some(304),
1691 fans: Some(0),
1692 boards: Some(4),
1693 },
1694 WhatsMinerModel::M63SPlusVL20 => Self {
1695 chips: Some(340),
1696 fans: Some(0),
1697 boards: Some(4),
1698 },
1699 WhatsMinerModel::M63SPlusVL30 => Self {
1700 chips: Some(370),
1701 fans: Some(0),
1702 boards: Some(4),
1703 },
1704 WhatsMinerModel::M63SPlusVL50 => Self {
1705 chips: Some(272),
1706 fans: Some(0),
1707 boards: Some(4),
1708 },
1709 WhatsMinerModel::M63SVK10 => Self {
1710 chips: Some(340),
1711 fans: Some(0),
1712 boards: Some(4),
1713 },
1714 WhatsMinerModel::M63SVK20 => Self {
1715 chips: Some(350),
1716 fans: Some(0),
1717 boards: Some(4),
1718 },
1719 WhatsMinerModel::M63SVK30 => Self {
1720 chips: Some(370),
1721 fans: Some(0),
1722 boards: Some(4),
1723 },
1724 WhatsMinerModel::M63SVK60 => Self {
1725 chips: Some(350),
1726 fans: Some(0),
1727 boards: Some(4),
1728 },
1729 WhatsMinerModel::M63SVL10 => Self {
1730 chips: Some(228),
1731 fans: Some(0),
1732 boards: Some(4),
1733 },
1734 WhatsMinerModel::M63SVL50 => Self {
1735 chips: Some(288),
1736 fans: Some(0),
1737 boards: Some(4),
1738 },
1739 WhatsMinerModel::M63SVL60 => Self {
1740 chips: Some(288),
1741 fans: Some(0),
1742 boards: Some(4),
1743 },
1744 WhatsMinerModel::M63VK10 => Self {
1745 chips: None,
1746 fans: Some(0),
1747 boards: Some(4),
1748 },
1749 WhatsMinerModel::M63VK20 => Self {
1750 chips: Some(264),
1751 fans: Some(0),
1752 boards: Some(4),
1753 },
1754 WhatsMinerModel::M63VK30 => Self {
1755 chips: Some(272),
1756 fans: Some(0),
1757 boards: Some(4),
1758 },
1759 WhatsMinerModel::M63VL10 => Self {
1760 chips: Some(174),
1761 fans: Some(0),
1762 boards: Some(4),
1763 },
1764 WhatsMinerModel::M63VL30 => Self {
1765 chips: Some(216),
1766 fans: Some(0),
1767 boards: Some(4),
1768 },
1769 WhatsMinerModel::M64SVL30 => Self {
1770 chips: Some(152),
1771 fans: Some(0),
1772 boards: Some(4),
1773 },
1774 WhatsMinerModel::M64VL30 => Self {
1775 chips: Some(114),
1776 fans: Some(0),
1777 boards: Some(4),
1778 },
1779 WhatsMinerModel::M64VL40 => Self {
1780 chips: Some(120),
1781 fans: Some(0),
1782 boards: Some(4),
1783 },
1784 WhatsMinerModel::M65SPlusVK30 => Self {
1785 chips: Some(456),
1786 fans: Some(0),
1787 boards: Some(4),
1788 },
1789 WhatsMinerModel::M65SVK20 => Self {
1790 chips: Some(350),
1791 fans: Some(0),
1792 boards: Some(4),
1793 },
1794 WhatsMinerModel::M65SVL60 => Self {
1795 chips: Some(288),
1796 fans: Some(0),
1797 boards: Some(4),
1798 },
1799 WhatsMinerModel::M66SPlusPlusVL20 => Self {
1800 chips: Some(368),
1801 fans: Some(0),
1802 boards: Some(3),
1803 },
1804 WhatsMinerModel::M66SPlusVK30 => Self {
1805 chips: Some(440),
1806 fans: Some(0),
1807 boards: Some(3),
1808 },
1809 WhatsMinerModel::M66SPlusVL10 => Self {
1810 chips: Some(220),
1811 fans: Some(0),
1812 boards: Some(4),
1813 },
1814 WhatsMinerModel::M66SPlusVL20 => Self {
1815 chips: Some(230),
1816 fans: Some(0),
1817 boards: Some(4),
1818 },
1819 WhatsMinerModel::M66SPlusVL30 => Self {
1820 chips: Some(240),
1821 fans: Some(0),
1822 boards: Some(4),
1823 },
1824 WhatsMinerModel::M66SPlusVL40 => Self {
1825 chips: Some(250),
1826 fans: Some(0),
1827 boards: Some(4),
1828 },
1829 WhatsMinerModel::M66SPlusVL60 => Self {
1830 chips: Some(200),
1831 fans: Some(0),
1832 boards: Some(4),
1833 },
1834 WhatsMinerModel::M66SVK20 => Self {
1835 chips: Some(368),
1836 fans: Some(0),
1837 boards: Some(3),
1838 },
1839 WhatsMinerModel::M66SVK30 => Self {
1840 chips: Some(384),
1841 fans: Some(0),
1842 boards: Some(3),
1843 },
1844 WhatsMinerModel::M66SVK40 => Self {
1845 chips: Some(240),
1846 fans: Some(0),
1847 boards: Some(4),
1848 },
1849 WhatsMinerModel::M66SVK50 => Self {
1850 chips: Some(250),
1851 fans: Some(0),
1852 boards: Some(4),
1853 },
1854 WhatsMinerModel::M66SVK60 => Self {
1855 chips: Some(250),
1856 fans: Some(0),
1857 boards: Some(4),
1858 },
1859 WhatsMinerModel::M66SVL10 => Self {
1860 chips: Some(168),
1861 fans: Some(0),
1862 boards: Some(4),
1863 },
1864 WhatsMinerModel::M66SVL20 => Self {
1865 chips: Some(176),
1866 fans: Some(0),
1867 boards: Some(4),
1868 },
1869 WhatsMinerModel::M66SVL30 => Self {
1870 chips: Some(192),
1871 fans: Some(0),
1872 boards: Some(4),
1873 },
1874 WhatsMinerModel::M66SVL40 => Self {
1875 chips: Some(200),
1876 fans: Some(0),
1877 boards: Some(4),
1878 },
1879 WhatsMinerModel::M66SVL50 => Self {
1880 chips: Some(210),
1881 fans: Some(0),
1882 boards: Some(4),
1883 },
1884 WhatsMinerModel::M66VK20 => Self {
1885 chips: Some(184),
1886 fans: Some(0),
1887 boards: Some(4),
1888 },
1889 WhatsMinerModel::M66VK30 => Self {
1890 chips: Some(192),
1891 fans: Some(0),
1892 boards: Some(4),
1893 },
1894 WhatsMinerModel::M66VL20 => Self {
1895 chips: Some(160),
1896 fans: Some(0),
1897 boards: Some(4),
1898 },
1899 WhatsMinerModel::M66VL30 => Self {
1900 chips: Some(168),
1901 fans: Some(0),
1902 boards: Some(4),
1903 },
1904 WhatsMinerModel::M67SVK30 => Self {
1905 chips: Some(440),
1906 fans: Some(0),
1907 boards: Some(3),
1908 },
1909 WhatsMinerModel::M70VM30 => Self {
1910 chips: Some(147),
1911 fans: Some(2),
1912 boards: Some(3),
1913 },
1914 }
1915 }
1916}
1917
1918impl From<&BitaxeModel> for MinerHardware {
1919 fn from(_model: &BitaxeModel) -> Self {
1920 Self {
1921 chips: Some(1),
1922 fans: Some(1),
1923 boards: Some(1),
1924 }
1925 }
1926}
1927
1928impl From<&BraiinsModel> for MinerHardware {
1929 fn from(value: &BraiinsModel) -> Self {
1930 match value {
1931 BraiinsModel::BMM100 => Self {
1932 chips: None,
1933 fans: Some(1),
1934 boards: Some(1),
1935 },
1936 BraiinsModel::BMM101 => Self {
1937 chips: None,
1938 fans: Some(1),
1939 boards: Some(1),
1940 },
1941 }
1942 }
1943}
1944
1945impl From<&EPicModel> for MinerHardware {
1946 fn from(value: &EPicModel) -> Self {
1947 match value {
1948 EPicModel::BM520i => Self {
1949 chips: Some(124),
1950 fans: Some(4),
1951 boards: Some(3),
1952 },
1953 EPicModel::S19JProDual => Self {
1954 chips: Some(126),
1955 fans: Some(8),
1956 boards: Some(6),
1957 },
1958 }
1959 }
1960}
1961
1962impl From<&AntMinerModel> for MinerHardware {
1963 fn from(value: &AntMinerModel) -> Self {
1964 match value {
1965 AntMinerModel::D3 => Self {
1966 chips: Some(60),
1967 fans: Some(4),
1968 boards: Some(3),
1969 },
1970 AntMinerModel::HS3 => Self {
1971 chips: Some(92),
1972 fans: Some(4),
1973 boards: Some(3),
1974 },
1975 AntMinerModel::L3Plus => Self {
1976 chips: Some(72),
1977 fans: Some(2),
1978 boards: Some(4),
1979 },
1980 AntMinerModel::KA3 => Self {
1981 chips: Some(92),
1982 fans: Some(4),
1983 boards: Some(3),
1984 },
1985 AntMinerModel::KS3 => Self {
1986 chips: Some(92),
1987 fans: Some(2),
1988 boards: Some(3),
1989 },
1990 AntMinerModel::DR5 => Self {
1991 chips: Some(72),
1992 fans: Some(2),
1993 boards: Some(3),
1994 },
1995 AntMinerModel::KS5 => Self {
1996 chips: Some(92),
1997 fans: Some(4),
1998 boards: Some(3),
1999 },
2000 AntMinerModel::KS5Pro => Self {
2001 chips: Some(92),
2002 fans: Some(4),
2003 boards: Some(3),
2004 },
2005 AntMinerModel::L7 => Self {
2006 chips: Some(120),
2007 fans: Some(4),
2008 boards: Some(3),
2009 },
2010 AntMinerModel::K7 => Self {
2011 chips: Some(92),
2012 fans: Some(2),
2013 boards: Some(3),
2014 },
2015 AntMinerModel::D7 => Self {
2016 chips: Some(70),
2017 fans: Some(4),
2018 boards: Some(3),
2019 },
2020 AntMinerModel::E9Pro => Self {
2021 chips: Some(8),
2022 fans: Some(4),
2023 boards: Some(2),
2024 },
2025 AntMinerModel::D9 => Self {
2026 chips: Some(126),
2027 fans: Some(4),
2028 boards: Some(3),
2029 },
2030 AntMinerModel::S9 => Self {
2031 chips: Some(63),
2032 fans: Some(2),
2033 boards: Some(3),
2034 },
2035 AntMinerModel::S9i => Self {
2036 chips: Some(63),
2037 fans: Some(2),
2038 boards: Some(3),
2039 },
2040 AntMinerModel::S9j => Self {
2041 chips: Some(63),
2042 fans: Some(2),
2043 boards: Some(3),
2044 },
2045 AntMinerModel::T9 => Self {
2046 chips: Some(54),
2047 fans: Some(2),
2048 boards: Some(3),
2049 },
2050 AntMinerModel::L9 => Self {
2051 chips: Some(110),
2052 fans: Some(4),
2053 boards: Some(3),
2054 },
2055 AntMinerModel::Z15 => Self {
2056 chips: Some(3),
2057 fans: Some(2),
2058 boards: Some(3),
2059 },
2060 AntMinerModel::Z15Pro => Self {
2061 chips: Some(6),
2062 fans: Some(2),
2063 boards: Some(3),
2064 },
2065 AntMinerModel::S17 => Self {
2066 chips: Some(48),
2067 fans: Some(4),
2068 boards: Some(3),
2069 },
2070 AntMinerModel::S17Plus => Self {
2071 chips: Some(65),
2072 fans: Some(4),
2073 boards: Some(3),
2074 },
2075 AntMinerModel::S17Pro => Self {
2076 chips: Some(48),
2077 fans: Some(4),
2078 boards: Some(3),
2079 },
2080 AntMinerModel::S17e => Self {
2081 chips: Some(135),
2082 fans: Some(4),
2083 boards: Some(3),
2084 },
2085 AntMinerModel::T17 => Self {
2086 chips: Some(30),
2087 fans: Some(4),
2088 boards: Some(3),
2089 },
2090 AntMinerModel::T17Plus => Self {
2091 chips: Some(44),
2092 fans: Some(4),
2093 boards: Some(3),
2094 },
2095 AntMinerModel::T17e => Self {
2096 chips: Some(78),
2097 fans: Some(4),
2098 boards: Some(3),
2099 },
2100 AntMinerModel::S19 => Self {
2101 chips: Some(76),
2102 fans: Some(4),
2103 boards: Some(3),
2104 },
2105 AntMinerModel::S19L => Self {
2106 chips: Some(76),
2107 fans: Some(4),
2108 boards: Some(3),
2109 },
2110 AntMinerModel::S19Pro => Self {
2111 chips: Some(114),
2112 fans: Some(4),
2113 boards: Some(3),
2114 },
2115 AntMinerModel::S19j => Self {
2116 chips: Some(114),
2117 fans: Some(4),
2118 boards: Some(3),
2119 },
2120 AntMinerModel::S19i => Self {
2121 chips: Some(80),
2122 fans: Some(4),
2123 boards: Some(3),
2124 },
2125 AntMinerModel::S19Plus => Self {
2126 chips: Some(80),
2127 fans: Some(4),
2128 boards: Some(3),
2129 },
2130 AntMinerModel::S19jNoPIC => Self {
2131 chips: Some(88),
2132 fans: Some(4),
2133 boards: Some(3),
2134 },
2135 AntMinerModel::S19ProPlus => Self {
2136 chips: Some(120),
2137 fans: Some(4),
2138 boards: Some(3),
2139 },
2140 AntMinerModel::S19jPro => Self {
2141 chips: Some(126),
2142 fans: Some(4),
2143 boards: Some(3),
2144 },
2145 AntMinerModel::S19jProPlus => Self {
2146 chips: Some(120),
2147 fans: Some(4),
2148 boards: Some(3),
2149 },
2150 AntMinerModel::S19XP => Self {
2151 chips: Some(110),
2152 fans: Some(4),
2153 boards: Some(3),
2154 },
2155 AntMinerModel::S19a => Self {
2156 chips: Some(72),
2157 fans: Some(4),
2158 boards: Some(3),
2159 },
2160 AntMinerModel::S19aPro => Self {
2161 chips: Some(100),
2162 fans: Some(4),
2163 boards: Some(3),
2164 },
2165 AntMinerModel::S19Hydro => Self {
2166 chips: Some(104),
2167 fans: Some(0),
2168 boards: Some(4),
2169 },
2170 AntMinerModel::S19ProHydro => Self {
2171 chips: Some(180),
2172 fans: Some(0),
2173 boards: Some(4),
2174 },
2175 AntMinerModel::S19ProPlusHydro => Self {
2176 chips: Some(180),
2177 fans: Some(0),
2178 boards: Some(4),
2179 },
2180 AntMinerModel::S19KPro => Self {
2181 chips: Some(77),
2182 fans: Some(4),
2183 boards: Some(3),
2184 },
2185 AntMinerModel::S19jXP => Self {
2186 chips: Some(110),
2187 fans: Some(4),
2188 boards: Some(3),
2189 },
2190 AntMinerModel::T19 => Self {
2191 chips: Some(76),
2192 fans: Some(4),
2193 boards: Some(3),
2194 },
2195 AntMinerModel::S21 => Self {
2196 chips: Some(108),
2197 fans: Some(4),
2198 boards: Some(3),
2199 },
2200 AntMinerModel::S21Plus => Self {
2201 chips: Some(55),
2202 fans: Some(4),
2203 boards: Some(3),
2204 },
2205 AntMinerModel::S21PlusHydro => Self {
2206 chips: Some(95),
2207 fans: Some(0),
2208 boards: Some(3),
2209 },
2210 AntMinerModel::S21Pro => Self {
2211 chips: Some(65),
2212 fans: Some(4),
2213 boards: Some(3),
2214 },
2215 AntMinerModel::S21XP => Self {
2216 chips: Some(91),
2217 fans: Some(4),
2218 boards: Some(3),
2219 },
2220 AntMinerModel::T21 => Self {
2221 chips: Some(108),
2222 fans: Some(4),
2223 boards: Some(3),
2224 },
2225 AntMinerModel::S21Hydro => Self {
2226 chips: Some(216),
2227 fans: Some(0),
2228 boards: Some(3),
2229 },
2230 }
2231 }
2232}