diff --git a/miners/antminer/S9/__init__.py b/miners/antminer/S9/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/miners/antminer/T9/__init__.py b/miners/antminer/T9/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/miners/antminer/X17/__init__.py b/miners/antminer/X17/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/miners/antminer/X17/bmminer.py b/miners/antminer/X17/bmminer.py deleted file mode 100644 index 6eaecbf8..00000000 --- a/miners/antminer/X17/bmminer.py +++ /dev/null @@ -1,9 +0,0 @@ -from miners.bmminer import BMMiner - - -class BMMinerX17(BMMiner): - def __init__(self, ip: str) -> None: - super().__init__(ip) - - def __repr__(self) -> str: - return f"BMMinerX17: {str(self.ip)}" diff --git a/miners/antminer/X19/__init__.py b/miners/antminer/X19/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/miners/antminer/X19/bmminer.py b/miners/antminer/X19/bmminer.py deleted file mode 100644 index 9e76bcef..00000000 --- a/miners/antminer/X19/bmminer.py +++ /dev/null @@ -1,23 +0,0 @@ -from miners.bmminer import BMMiner -import logging - - -class BMMinerX19(BMMiner): - def __init__(self, ip: str) -> None: - super().__init__(ip) - self.nominal_chips = 126 - - def __repr__(self) -> str: - return f"BMMinerX19: {str(self.ip)}" - - async def get_model(self): - if self.model: - logging.debug(f"Found model for {self.ip}: {self.model}") - return self.model - version_data = await self.api.version() - if version_data: - self.model = version_data["VERSION"][0]["Type"].replace("Antminer ", "") - logging.debug(f"Found model for {self.ip}: {self.model}") - return self.model - logging.warning(f"Failed to get model for miner: {self}") - return None diff --git a/miners/antminer/X19/cgminer.py b/miners/antminer/X19/cgminer.py deleted file mode 100644 index 5048a874..00000000 --- a/miners/antminer/X19/cgminer.py +++ /dev/null @@ -1,23 +0,0 @@ -from miners.cgminer import CGMiner -import logging - - -class CGMinerX19(CGMiner): - def __init__(self, ip: str) -> None: - super().__init__(ip) - self.api_type = "CGMiner" - - def __repr__(self) -> str: - return f"CGMinerX19: {str(self.ip)}" - - async def get_model(self): - if self.model: - logging.debug(f"Found model for {self.ip}: {self.model}") - return self.model - version_data = await self.api.version() - if version_data: - self.model = version_data["VERSION"][0]["Type"].replace("Antminer ", "") - logging.debug(f"Found model for {self.ip}: {self.model}") - return self.model - logging.warning(f"Failed to get model for miner: {self}") - return None diff --git a/miners/antminer/__init__.py b/miners/antminer/__init__.py index e69de29b..5569223d 100644 --- a/miners/antminer/__init__.py +++ b/miners/antminer/__init__.py @@ -0,0 +1,4 @@ +from .bmminer import * +from .bosminer import * +from .cgminer import * +from .hiveon import * diff --git a/miners/antminer/bmminer/X17/S17.py b/miners/antminer/bmminer/X17/S17.py new file mode 100644 index 00000000..63d14b7c --- /dev/null +++ b/miners/antminer/bmminer/X17/S17.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS17(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S17" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BMMinerS17: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X17/S17_Plus.py b/miners/antminer/bmminer/X17/S17_Plus.py new file mode 100644 index 00000000..d272fdb9 --- /dev/null +++ b/miners/antminer/bmminer/X17/S17_Plus.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS17Plus(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S17+" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BMMinerS17+: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X17/S17_Pro.py b/miners/antminer/bmminer/X17/S17_Pro.py new file mode 100644 index 00000000..294c6562 --- /dev/null +++ b/miners/antminer/bmminer/X17/S17_Pro.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS17Pro(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S17 Pro" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BMMinerS17Pro: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X17/S17e.py b/miners/antminer/bmminer/X17/S17e.py new file mode 100644 index 00000000..ddb43e25 --- /dev/null +++ b/miners/antminer/bmminer/X17/S17e.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS17e(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S17e" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BMMinerS17e: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X17/T17.py b/miners/antminer/bmminer/X17/T17.py new file mode 100644 index 00000000..fcfd14f3 --- /dev/null +++ b/miners/antminer/bmminer/X17/T17.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerT17(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "T17" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BMMinerT17: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X17/T17_Plus.py b/miners/antminer/bmminer/X17/T17_Plus.py new file mode 100644 index 00000000..31090c02 --- /dev/null +++ b/miners/antminer/bmminer/X17/T17_Plus.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerT17Plus(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "T17+" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BMMinerT17+: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X17/T17e.py b/miners/antminer/bmminer/X17/T17e.py new file mode 100644 index 00000000..c04c7431 --- /dev/null +++ b/miners/antminer/bmminer/X17/T17e.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerT17e(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "T17e" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BMMinerT17e: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X17/__init__.py b/miners/antminer/bmminer/X17/__init__.py new file mode 100644 index 00000000..7f392a81 --- /dev/null +++ b/miners/antminer/bmminer/X17/__init__.py @@ -0,0 +1,8 @@ +from .S17 import BMMinerS17 +from .S17_Plus import BMMinerS17Plus +from .S17_Pro import BMMinerS17Pro +from .S17e import BMMinerS17e + +from .T17 import BMMinerT17 +from .T17_Plus import BMMinerT17Plus +from .T17e import BMMinerT17e diff --git a/miners/antminer/bmminer/X19/S19.py b/miners/antminer/bmminer/X19/S19.py new file mode 100644 index 00000000..a27dc7ec --- /dev/null +++ b/miners/antminer/bmminer/X19/S19.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS19(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S19" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BMMinerS19: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X19/S19_Pro.py b/miners/antminer/bmminer/X19/S19_Pro.py new file mode 100644 index 00000000..fbbb8f5e --- /dev/null +++ b/miners/antminer/bmminer/X19/S19_Pro.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS19Pro(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S19 Pro" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BMMinerS19Pro: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X19/S19j.py b/miners/antminer/bmminer/X19/S19j.py new file mode 100644 index 00000000..fb0394de --- /dev/null +++ b/miners/antminer/bmminer/X19/S19j.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS19j(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S19j" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BMMinerS19j: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X19/S19j_Pro.py b/miners/antminer/bmminer/X19/S19j_Pro.py new file mode 100644 index 00000000..132fb9b9 --- /dev/null +++ b/miners/antminer/bmminer/X19/S19j_Pro.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerS19jPro(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "S19j Pro" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BMMinerS19jPro: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X19/T19.py b/miners/antminer/bmminer/X19/T19.py new file mode 100644 index 00000000..c78bc723 --- /dev/null +++ b/miners/antminer/bmminer/X19/T19.py @@ -0,0 +1,12 @@ +from miners.bmminer import BMMiner + + +class BMMinerT19(BMMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BMMiner" + self.model = "T19" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BMMinerT19: {str(self.ip)}" diff --git a/miners/antminer/bmminer/X19/__init__.py b/miners/antminer/bmminer/X19/__init__.py new file mode 100644 index 00000000..7ecfc42a --- /dev/null +++ b/miners/antminer/bmminer/X19/__init__.py @@ -0,0 +1,7 @@ +from .S19 import BMMinerS19 +from .S19_Pro import BMMinerS19Pro + +from .S19j import BMMinerS19j +from .S19j_Pro import BMMinerS19jPro + +from .T19 import BMMinerT19 diff --git a/miners/antminer/S9/bmminer.py b/miners/antminer/bmminer/X9/S9.py similarity index 100% rename from miners/antminer/S9/bmminer.py rename to miners/antminer/bmminer/X9/S9.py diff --git a/miners/antminer/T9/bmminer.py b/miners/antminer/bmminer/X9/T9.py similarity index 100% rename from miners/antminer/T9/bmminer.py rename to miners/antminer/bmminer/X9/T9.py diff --git a/miners/antminer/bmminer/X9/__init__.py b/miners/antminer/bmminer/X9/__init__.py new file mode 100644 index 00000000..688ed1c2 --- /dev/null +++ b/miners/antminer/bmminer/X9/__init__.py @@ -0,0 +1,2 @@ +from .S9 import BMMinerS9 +from .T9 import BMMinerT9 diff --git a/miners/antminer/bmminer/__init__.py b/miners/antminer/bmminer/__init__.py new file mode 100644 index 00000000..bd492da8 --- /dev/null +++ b/miners/antminer/bmminer/__init__.py @@ -0,0 +1,3 @@ +from .X9 import * +from .X17 import * +from .X19 import * diff --git a/miners/antminer/X17/bosminer.py b/miners/antminer/bosminer/X17/S17.py similarity index 67% rename from miners/antminer/X17/bosminer.py rename to miners/antminer/bosminer/X17/S17.py index 388a8fdb..dac96026 100644 --- a/miners/antminer/X17/bosminer.py +++ b/miners/antminer/bosminer/X17/S17.py @@ -1,11 +1,12 @@ from miners.bosminer import BOSMiner -class BOSMinerX17(BOSMiner): +class BOSMinerS17(BOSMiner): def __init__(self, ip: str) -> None: super().__init__(ip) self.api_type = "BOSMiner" + self.model = "S17" self.nominal_chips = 65 def __repr__(self) -> str: - return f"BOSminerX17: {str(self.ip)}" + return f"BOSMinerS17: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X17/S17_Plus.py b/miners/antminer/bosminer/X17/S17_Plus.py new file mode 100644 index 00000000..8dfe3382 --- /dev/null +++ b/miners/antminer/bosminer/X17/S17_Plus.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerS17Plus(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "S17+" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BOSMinerS17+: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X17/S17_Pro.py b/miners/antminer/bosminer/X17/S17_Pro.py new file mode 100644 index 00000000..7dadc028 --- /dev/null +++ b/miners/antminer/bosminer/X17/S17_Pro.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerS17Pro(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "S17 Pro" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BOSMinerS17Pro: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X17/S17e.py b/miners/antminer/bosminer/X17/S17e.py new file mode 100644 index 00000000..0e130031 --- /dev/null +++ b/miners/antminer/bosminer/X17/S17e.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerS17e(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "S17e" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BOSMinerS17e: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X17/T17.py b/miners/antminer/bosminer/X17/T17.py new file mode 100644 index 00000000..4c3830bd --- /dev/null +++ b/miners/antminer/bosminer/X17/T17.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerT17(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "T17" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BOSMinerT17: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X17/T17_Plus.py b/miners/antminer/bosminer/X17/T17_Plus.py new file mode 100644 index 00000000..61f5bfe7 --- /dev/null +++ b/miners/antminer/bosminer/X17/T17_Plus.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerT17Plus(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "T17+" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BOSMinerT17+: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X17/T17e.py b/miners/antminer/bosminer/X17/T17e.py new file mode 100644 index 00000000..625e4d11 --- /dev/null +++ b/miners/antminer/bosminer/X17/T17e.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerT17e(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "T17e" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"BOSMinerT17e: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X17/__init__.py b/miners/antminer/bosminer/X17/__init__.py new file mode 100644 index 00000000..776e87f2 --- /dev/null +++ b/miners/antminer/bosminer/X17/__init__.py @@ -0,0 +1,8 @@ +from .S17 import BOSMinerS17 +from .S17_Plus import BOSMinerS17Plus +from .S17_Pro import BOSMinerS17Pro +from .S17e import BOSMinerS17e + +from .T17 import BOSMinerT17 +from .T17_Plus import BOSMinerT17Plus +from .T17e import BOSMinerT17e diff --git a/miners/antminer/X19/bosminer.py b/miners/antminer/bosminer/X19/S19.py similarity index 67% rename from miners/antminer/X19/bosminer.py rename to miners/antminer/bosminer/X19/S19.py index 9da5eda6..02e78f39 100644 --- a/miners/antminer/X19/bosminer.py +++ b/miners/antminer/bosminer/X19/S19.py @@ -1,11 +1,12 @@ from miners.bosminer import BOSMiner -class BOSMinerX19(BOSMiner): +class BOSMinerS19(BOSMiner): def __init__(self, ip: str) -> None: super().__init__(ip) self.api_type = "BOSMiner" + self.model = "S19" self.nominal_chips = 114 def __repr__(self) -> str: - return f"BOSminerX19: {str(self.ip)}" + return f"BOSMinerS19: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X19/S19_Pro.py b/miners/antminer/bosminer/X19/S19_Pro.py new file mode 100644 index 00000000..010a0d3c --- /dev/null +++ b/miners/antminer/bosminer/X19/S19_Pro.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerS19Pro(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "S19 Pro" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BOSMinerS19Pro: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X19/S19j.py b/miners/antminer/bosminer/X19/S19j.py new file mode 100644 index 00000000..aa7d5cd0 --- /dev/null +++ b/miners/antminer/bosminer/X19/S19j.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerS19j(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "S19j" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BOSMinerS19j: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X19/S19j_Pro.py b/miners/antminer/bosminer/X19/S19j_Pro.py new file mode 100644 index 00000000..bf13cf2f --- /dev/null +++ b/miners/antminer/bosminer/X19/S19j_Pro.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerS19jPro(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "S19j Pro" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BOSMinerS19jPro: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X19/T19.py b/miners/antminer/bosminer/X19/T19.py new file mode 100644 index 00000000..da7d26c7 --- /dev/null +++ b/miners/antminer/bosminer/X19/T19.py @@ -0,0 +1,12 @@ +from miners.bosminer import BOSMiner + + +class BOSMinerT19(BOSMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "BOSMiner" + self.model = "T19" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"BOSMinerT19: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X19/__init__.py b/miners/antminer/bosminer/X19/__init__.py new file mode 100644 index 00000000..d44975e3 --- /dev/null +++ b/miners/antminer/bosminer/X19/__init__.py @@ -0,0 +1,7 @@ +from .S19 import BOSMinerS19 +from .S19_Pro import BOSMinerS19Pro + +from .S19j import BOSMinerS19j +from .S19j_Pro import BOSMinerS19jPro + +from .T19 import BOSMinerT19 diff --git a/miners/antminer/S9/bosminer.py b/miners/antminer/bosminer/X9/S9.py similarity index 65% rename from miners/antminer/S9/bosminer.py rename to miners/antminer/bosminer/X9/S9.py index 4329ef49..e69ce584 100644 --- a/miners/antminer/S9/bosminer.py +++ b/miners/antminer/bosminer/X9/S9.py @@ -1,8 +1,4 @@ -import logging -import toml - from miners.bosminer import BOSMiner -from config.bos import general_config_convert_bos class BOSMinerS9(BOSMiner): @@ -12,4 +8,4 @@ class BOSMinerS9(BOSMiner): self.api_type = "BOSMiner" def __repr__(self) -> str: - return f"BOSminerS9: {str(self.ip)}" + return f"BOSMinerS9: {str(self.ip)}" diff --git a/miners/antminer/bosminer/X9/__init__.py b/miners/antminer/bosminer/X9/__init__.py new file mode 100644 index 00000000..34c6276d --- /dev/null +++ b/miners/antminer/bosminer/X9/__init__.py @@ -0,0 +1 @@ +from .S9 import BOSMinerS9 diff --git a/miners/antminer/bosminer/__init__.py b/miners/antminer/bosminer/__init__.py new file mode 100644 index 00000000..bd492da8 --- /dev/null +++ b/miners/antminer/bosminer/__init__.py @@ -0,0 +1,3 @@ +from .X9 import * +from .X17 import * +from .X19 import * diff --git a/miners/antminer/X17/cgminer.py b/miners/antminer/cgminer/X17/S17.py similarity index 56% rename from miners/antminer/X17/cgminer.py rename to miners/antminer/cgminer/X17/S17.py index b4e7ab96..e01260c5 100644 --- a/miners/antminer/X17/cgminer.py +++ b/miners/antminer/cgminer/X17/S17.py @@ -1,10 +1,12 @@ from miners.cgminer import CGMiner -class CGMinerX17(CGMiner): +class CGMinerS17(CGMiner): def __init__(self, ip: str) -> None: super().__init__(ip) self.api_type = "CGMiner" + self.model = "S17" + self.nominal_chips = 65 def __repr__(self) -> str: - return f"CGMinerX17: {str(self.ip)}" + return f"CGMinerS17: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X17/S17_Plus.py b/miners/antminer/cgminer/X17/S17_Plus.py new file mode 100644 index 00000000..29c45c24 --- /dev/null +++ b/miners/antminer/cgminer/X17/S17_Plus.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerS17Plus(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "S17+" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"CGMinerS17+: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X17/S17_Pro.py b/miners/antminer/cgminer/X17/S17_Pro.py new file mode 100644 index 00000000..9aaf469d --- /dev/null +++ b/miners/antminer/cgminer/X17/S17_Pro.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerS17Pro(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "S17 Pro" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"CGMinerS17Pro: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X17/S17e.py b/miners/antminer/cgminer/X17/S17e.py new file mode 100644 index 00000000..2d370c80 --- /dev/null +++ b/miners/antminer/cgminer/X17/S17e.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerS17e(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "S17e" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"CGMinerS17e: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X17/T17.py b/miners/antminer/cgminer/X17/T17.py new file mode 100644 index 00000000..efc8e375 --- /dev/null +++ b/miners/antminer/cgminer/X17/T17.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerT17(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "T17" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"CGMinerT17: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X17/T17_Plus.py b/miners/antminer/cgminer/X17/T17_Plus.py new file mode 100644 index 00000000..3ac95dca --- /dev/null +++ b/miners/antminer/cgminer/X17/T17_Plus.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerT17Plus(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "T17+" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"CGMinerT17+: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X17/T17e.py b/miners/antminer/cgminer/X17/T17e.py new file mode 100644 index 00000000..c975bc5b --- /dev/null +++ b/miners/antminer/cgminer/X17/T17e.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerT17e(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "T17e" + self.nominal_chips = 65 + + def __repr__(self) -> str: + return f"CGMinerT17e: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X17/__init__.py b/miners/antminer/cgminer/X17/__init__.py new file mode 100644 index 00000000..44f3dd83 --- /dev/null +++ b/miners/antminer/cgminer/X17/__init__.py @@ -0,0 +1,8 @@ +from .S17 import CGMinerS17 +from .S17_Plus import CGMinerS17Plus +from .S17_Pro import CGMinerS17Pro +from .S17e import CGMinerS17e + +from .T17 import CGMinerT17 +from .T17_Plus import CGMinerT17Plus +from .T17e import CGMinerT17e diff --git a/miners/antminer/cgminer/X19/S19.py b/miners/antminer/cgminer/X19/S19.py new file mode 100644 index 00000000..3ab0b297 --- /dev/null +++ b/miners/antminer/cgminer/X19/S19.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerS19(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "S19" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"CGMinerS19: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X19/S19_Pro.py b/miners/antminer/cgminer/X19/S19_Pro.py new file mode 100644 index 00000000..f4643f73 --- /dev/null +++ b/miners/antminer/cgminer/X19/S19_Pro.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerS19Pro(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "S19 Pro" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"CGMinerS19Pro: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X19/S19j.py b/miners/antminer/cgminer/X19/S19j.py new file mode 100644 index 00000000..85791922 --- /dev/null +++ b/miners/antminer/cgminer/X19/S19j.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerS19j(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "S19j" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"CGMinerS19j: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X19/S19j_Pro.py b/miners/antminer/cgminer/X19/S19j_Pro.py new file mode 100644 index 00000000..3161b47e --- /dev/null +++ b/miners/antminer/cgminer/X19/S19j_Pro.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerS19jPro(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "S19j Pro" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"CGMinerS19jPro: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X19/T19.py b/miners/antminer/cgminer/X19/T19.py new file mode 100644 index 00000000..b383626c --- /dev/null +++ b/miners/antminer/cgminer/X19/T19.py @@ -0,0 +1,12 @@ +from miners.cgminer import CGMiner + + +class CGMinerT19(CGMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.api_type = "CGMiner" + self.model = "T19" + self.nominal_chips = 114 + + def __repr__(self) -> str: + return f"CGMinerT19: {str(self.ip)}" diff --git a/miners/antminer/cgminer/X19/__init__.py b/miners/antminer/cgminer/X19/__init__.py new file mode 100644 index 00000000..f46cc199 --- /dev/null +++ b/miners/antminer/cgminer/X19/__init__.py @@ -0,0 +1,7 @@ +from .S19 import CGMinerS19 +from .S19_Pro import CGMinerS19Pro + +from .S19j import CGMinerS19j +from .S19j_Pro import CGMinerS19jPro + +from .T19 import CGMinerT19 diff --git a/miners/antminer/S9/cgminer.py b/miners/antminer/cgminer/X9/S9.py similarity index 100% rename from miners/antminer/S9/cgminer.py rename to miners/antminer/cgminer/X9/S9.py diff --git a/miners/antminer/T9/cgminer.py b/miners/antminer/cgminer/X9/T9.py similarity index 100% rename from miners/antminer/T9/cgminer.py rename to miners/antminer/cgminer/X9/T9.py diff --git a/miners/antminer/cgminer/X9/__init__.py b/miners/antminer/cgminer/X9/__init__.py new file mode 100644 index 00000000..fb65d2b4 --- /dev/null +++ b/miners/antminer/cgminer/X9/__init__.py @@ -0,0 +1,2 @@ +from .S9 import CGMinerS9 +from .T9 import CGMinerT9 diff --git a/miners/antminer/cgminer/__init__.py b/miners/antminer/cgminer/__init__.py new file mode 100644 index 00000000..bd492da8 --- /dev/null +++ b/miners/antminer/cgminer/__init__.py @@ -0,0 +1,3 @@ +from .X9 import * +from .X17 import * +from .X19 import * diff --git a/miners/antminer/T9/hive.py b/miners/antminer/hiveon/X9/T9.py similarity index 98% rename from miners/antminer/T9/hive.py rename to miners/antminer/hiveon/X9/T9.py index 957f09fd..8c0ca7bf 100644 --- a/miners/antminer/T9/hive.py +++ b/miners/antminer/hiveon/X9/T9.py @@ -6,6 +6,7 @@ class HiveonT9(BMMiner): super().__init__(ip) self.model = "T9" self.api_type = "Hiveon" + self.nominal_chips = 54 def __repr__(self) -> str: return f"HiveonT9: {str(self.ip)}" diff --git a/miners/antminer/hiveon/X9/__init__.py b/miners/antminer/hiveon/X9/__init__.py new file mode 100644 index 00000000..af130116 --- /dev/null +++ b/miners/antminer/hiveon/X9/__init__.py @@ -0,0 +1 @@ +from .T9 import HiveonT9 diff --git a/miners/antminer/hiveon/__init__.py b/miners/antminer/hiveon/__init__.py new file mode 100644 index 00000000..51aa4089 --- /dev/null +++ b/miners/antminer/hiveon/__init__.py @@ -0,0 +1 @@ +from .X9 import * diff --git a/miners/bmminer.py b/miners/bmminer.py index 8a6f1af7..05795ab3 100644 --- a/miners/bmminer.py +++ b/miners/bmminer.py @@ -167,7 +167,6 @@ class BMMiner(BaseMiner): summary = miner_data.get("summary")[0] pools = miner_data.get("pools")[0] stats = miner_data.get("stats")[0] - print(stats) if summary: hr = summary.get("SUMMARY") @@ -181,7 +180,6 @@ class BMMiner(BaseMiner): boards = stats.get("STATS") if boards: if len(boards) > 0: - print(boards) data["Left Board"] = boards[1].get("chain_acn1") data["Center Board"] = boards[1].get("chain_acn2") data["Right Board"] = boards[1].get("chain_acn3") diff --git a/miners/miner_factory.py b/miners/miner_factory.py index 12f276f6..57abae5d 100644 --- a/miners/miner_factory.py +++ b/miners/miner_factory.py @@ -1,24 +1,5 @@ -from miners.antminer.S9.bosminer import BOSMinerS9 -from miners.antminer.S9.bmminer import BMMinerS9 -from miners.antminer.S9.cgminer import CGMinerS9 - -from miners.antminer.T9.hive import HiveonT9 -from miners.antminer.T9.cgminer import CGMinerT9 -from miners.antminer.T9.bmminer import BMMinerT9 - -from miners.antminer.X17.bosminer import BOSMinerX17 -from miners.antminer.X17.bmminer import BMMinerX17 -from miners.antminer.X17.cgminer import CGMinerX17 - -from miners.antminer.X19.bmminer import BMMinerX19 -from miners.antminer.X19.cgminer import CGMinerX19 -from miners.antminer.X19.bosminer import BOSMinerX19 - -from miners.whatsminer.M20 import BTMinerM20 -from miners.whatsminer.M21 import BTMinerM21 -from miners.whatsminer.M30 import BTMinerM30 -from miners.whatsminer.M31 import BTMinerM31 -from miners.whatsminer.M32 import BTMinerM32 +from miners.antminer import * +from miners.whatsminer import * from miners.avalonminer.Avalon8 import CGMinerAvalon8 from miners.avalonminer.Avalon10 import CGMinerAvalon10 @@ -41,6 +22,131 @@ from settings import ( NETWORK_PING_TIMEOUT as PING_TIMEOUT, ) +MINER_CLASSES = { + "Antminer S9": { + "Default": BOSMinerS9, + "BOSMiner": BOSMinerS9, + "BMMiner": BMMinerS9, + "CGMiner": CGMinerS9, + }, + "Antminer S17": { + "Default": BMMinerS17, + "BOSMiner": BOSMinerS17, + "BMMiner": BMMinerS17, + "CGMiner": CGMinerS17, + }, + "Antminer S17+": { + "Default": BMMinerS17Plus, + "BOSMiner": BOSMinerS17Plus, + "BMMiner": BMMinerS17Plus, + "CGMiner": CGMinerS17Plus, + }, + "Antminer S17 Pro": { + "Default": BMMinerS17Pro, + "BOSMiner": BOSMinerS17Pro, + "BMMiner": BMMinerS17Pro, + "CGMiner": CGMinerS17Pro, + }, + "Antminer S17e": { + "Default": BMMinerS17e, + "BOSMiner": BOSMinerS17e, + "BMMiner": BMMinerS17e, + "CGMiner": CGMinerS17e, + }, + "Antminer T17": { + "Default": BMMinerT17, + "BOSMiner": BOSMinerT17, + "BMMiner": BMMinerT17, + "CGMiner": CGMinerT17, + }, + "Antminer T17+": { + "Default": BMMinerT17Plus, + "BOSMiner": BOSMinerT17Plus, + "BMMiner": BMMinerT17Plus, + "CGMiner": CGMinerT17Plus, + }, + "Antminer T17e": { + "Default": BMMinerT17e, + "BOSMiner": BOSMinerT17e, + "BMMiner": BMMinerT17e, + "CGMiner": CGMinerT17e, + }, + "Antminer S19": { + "Default": BMMinerS19, + "BOSMiner": BOSMinerS19, + "BMMiner": BMMinerS19, + "CGMiner": CGMinerS19, + }, + "Antminer S19 Pro": { + "Default": BMMinerS19Pro, + "BOSMiner": BOSMinerS19Pro, + "BMMiner": BMMinerS19Pro, + "CGMiner": CGMinerS19Pro, + }, + "Antminer S19j": { + "Default": BMMinerS19j, + "BOSMiner": BOSMinerS19j, + "BMMiner": BMMinerS19j, + "CGMiner": CGMinerS19j, + }, + "Antminer S19j Pro": { + "Default": BMMinerS19jPro, + "BOSMiner": BOSMinerS19jPro, + "BMMiner": BMMinerS19jPro, + "CGMiner": CGMinerS19jPro, + }, + "Antminer T19": { + "Default": BMMinerT19, + "BOSMiner": BOSMinerT19, + "BMMiner": BMMinerT19, + "CGMiner": CGMinerT19, + }, + "M20S": { + "Default": BTMinerM20S, + "BTMiner": BTMinerM20S, + }, + "M20S+": { + "Default": BTMinerM20SPlus, + "BTMiner": BTMinerM20SPlus, + }, + "M21": { + "Default": BTMinerM21, + "BTMiner": BTMinerM21, + }, + "M21S": { + "Default": BTMinerM21S, + "BTMiner": BTMinerM21S, + }, + "M21S+": { + "Default": BTMinerM21SPlus, + "BTMiner": BTMinerM21SPlus, + }, + "M30S": { + "Default": BTMinerM30S, + "BTMiner": BTMinerM30S, + }, + "M30S+": { + "Default": BTMinerM30SPlus, + "BTMiner": BTMinerM30SPlus, + }, + "M30S++": { + "Default": BTMinerM30SPlusPlus, + "BTMiner": BTMinerM30SPlusPlus, + }, + "M31S": { + "Default": BTMinerM31S, + "BTMiner": BTMinerM31S, + }, + "M31S+": { + "Default": BTMinerM31SPlus, + "BTMiner": BTMinerM31SPlus, + }, + "M32S": { + "Default": BTMinerM32S, + "BTMiner": BTMinerM32S, + }, +} + class Singleton(type): _instances = {} @@ -111,71 +217,23 @@ class MinerFactory(metaclass=Singleton): # make sure we have model information if model: - # check if the miner is an Antminer - if "Antminer" in model: - # S9 logic - if "Antminer S9" in model: - # handle the different API types - if not api: - logging.warning( - f"{str(ip)}: No API data found, using BraiinsOS." - ) - miner = BOSMinerS9(str(ip)) - elif "BOSMiner" in api: - miner = BOSMinerS9(str(ip)) - elif "CGMiner" in api: - miner = CGMinerS9(str(ip)) - elif "BMMiner" in api: - miner = BMMinerS9(str(ip)) - - elif "Antminer T9" in model: - if "BMMiner" in api: - if "Hiveon" in model: - # hiveOS, return T9 Hive - miner = HiveonT9(str(ip)) - else: - miner = BMMinerT9(str(ip)) - elif "CGMiner" in api: - miner = CGMinerT9(str(ip)) - - # X17 model logic - elif "17" in model: - # handle the different API types - if "BOSMiner" in api: - miner = BOSMinerX17(str(ip)) - elif "CGMiner" in api: - miner = CGMinerX17(str(ip)) - elif "BMMiner" in api: - miner = BMMinerX17(str(ip)) - - # X19 logic - elif "19" in model: - # handle the different API types - if "BOSMiner" in api: - miner = BOSMinerX19(str(ip)) - if "CGMiner" in api: - miner = CGMinerX19(str(ip)) - elif "BMMiner" in api: - miner = BMMinerX19(str(ip)) + if not api: + api = "Default" # Avalonminers - elif "avalon" in model: + if "avalon" in model: if model == "avalon10": miner = CGMinerAvalon10(str(ip)) else: miner = CGMinerAvalon8(str(ip)) + else: + if model not in MINER_CLASSES.keys(): + miner = UnknownMiner(str(ip)) + return miner + if api not in MINER_CLASSES[model].keys(): + api = "Default" - # Whatsminers - elif "M20" in model: - miner = BTMinerM20(str(ip)) - elif "M21" in model: - miner = BTMinerM21(str(ip)) - elif "M30" in model: - miner = BTMinerM30(str(ip)) - elif "M31" in model: - miner = BTMinerM31(str(ip)) - elif "M32" in model: - miner = BTMinerM32(str(ip)) + miner = MINER_CLASSES[model][api](str(ip)) # if we cant find a model, check if we found the API else: @@ -260,7 +318,7 @@ class MinerFactory(metaclass=Singleton): api = "BOSMiner" # if all that fails, check the Description to see if it is a whatsminer - elif version.get("Description") and "whatsminer" in version.get("Description"): + if version.get("Description") and "whatsminer" in version.get("Description"): api = "BTMiner" if version and not model: if ( @@ -269,6 +327,11 @@ class MinerFactory(metaclass=Singleton): and not version.get("VERSION") == [] ): model = version["VERSION"][0]["Type"] + + if model: + if "V" in model: + model = model.split("V")[0] + return model, api async def _validate_command(self, data: dict) -> tuple: diff --git a/miners/whatsminer/__init__.py b/miners/whatsminer/__init__.py index e69de29b..6d36bacb 100644 --- a/miners/whatsminer/__init__.py +++ b/miners/whatsminer/__init__.py @@ -0,0 +1 @@ +from .btminer import * diff --git a/miners/whatsminer/M20.py b/miners/whatsminer/btminer/M2X/M20S.py similarity index 68% rename from miners/whatsminer/M20.py rename to miners/whatsminer/btminer/M2X/M20S.py index a781ef09..ad81d6fb 100644 --- a/miners/whatsminer/M20.py +++ b/miners/whatsminer/btminer/M2X/M20S.py @@ -1,10 +1,10 @@ from miners.btminer import BTMiner -class BTMinerM20(BTMiner): +class BTMinerM20S(BTMiner): def __init__(self, ip: str) -> None: super().__init__(ip) self.nominal_chips = 66 def __repr__(self) -> str: - return f"M20 - BTMiner: {str(self.ip)}" + return f"M20S - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/btminer/M2X/M20S_Plus.py b/miners/whatsminer/btminer/M2X/M20S_Plus.py new file mode 100644 index 00000000..6a14f2a0 --- /dev/null +++ b/miners/whatsminer/btminer/M2X/M20S_Plus.py @@ -0,0 +1,10 @@ +from miners.btminer import BTMiner + + +class BTMinerM20SPlus(BTMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.nominal_chips = 66 + + def __repr__(self) -> str: + return f"M20S+ - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/M21.py b/miners/whatsminer/btminer/M2X/M21.py similarity index 100% rename from miners/whatsminer/M21.py rename to miners/whatsminer/btminer/M2X/M21.py diff --git a/miners/whatsminer/btminer/M2X/M21S.py b/miners/whatsminer/btminer/M2X/M21S.py new file mode 100644 index 00000000..3a2cc5ea --- /dev/null +++ b/miners/whatsminer/btminer/M2X/M21S.py @@ -0,0 +1,10 @@ +from miners.btminer import BTMiner + + +class BTMinerM21S(BTMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.nominal_chips = 105 + + def __repr__(self) -> str: + return f"M21S - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/btminer/M2X/M21S_Plus.py b/miners/whatsminer/btminer/M2X/M21S_Plus.py new file mode 100644 index 00000000..a575c35b --- /dev/null +++ b/miners/whatsminer/btminer/M2X/M21S_Plus.py @@ -0,0 +1,10 @@ +from miners.btminer import BTMiner + + +class BTMinerM21SPlus(BTMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.nominal_chips = 105 + + def __repr__(self) -> str: + return f"M21S+ - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/btminer/M2X/__init__.py b/miners/whatsminer/btminer/M2X/__init__.py new file mode 100644 index 00000000..0203852e --- /dev/null +++ b/miners/whatsminer/btminer/M2X/__init__.py @@ -0,0 +1,6 @@ +from .M20S import BTMinerM20S +from .M20S_Plus import BTMinerM20SPlus + +from .M21 import BTMinerM21 +from .M21S import BTMinerM21S +from .M21S_Plus import BTMinerM21SPlus diff --git a/miners/whatsminer/M32.py b/miners/whatsminer/btminer/M3X/M30S.py similarity index 64% rename from miners/whatsminer/M32.py rename to miners/whatsminer/btminer/M3X/M30S.py index 06c00343..980eb66f 100644 --- a/miners/whatsminer/M32.py +++ b/miners/whatsminer/btminer/M3X/M30S.py @@ -1,9 +1,9 @@ from miners.btminer import BTMiner -class BTMinerM32(BTMiner): +class BTMinerM30S(BTMiner): def __init__(self, ip: str) -> None: super().__init__(ip) def __repr__(self) -> str: - return f"M32 - BTMiner: {str(self.ip)}" + return f"M30S - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/M30.py b/miners/whatsminer/btminer/M3X/M30S_Plus.py similarity index 62% rename from miners/whatsminer/M30.py rename to miners/whatsminer/btminer/M3X/M30S_Plus.py index 170d0549..ffd1b60b 100644 --- a/miners/whatsminer/M30.py +++ b/miners/whatsminer/btminer/M3X/M30S_Plus.py @@ -1,9 +1,9 @@ from miners.btminer import BTMiner -class BTMinerM30(BTMiner): +class BTMinerM30SPlus(BTMiner): def __init__(self, ip: str) -> None: super().__init__(ip) def __repr__(self) -> str: - return f"M30- BTMiner: {str(self.ip)}" + return f"M30S+ - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/btminer/M3X/M30S_Plus_Plus.py b/miners/whatsminer/btminer/M3X/M30S_Plus_Plus.py new file mode 100644 index 00000000..5468a1fe --- /dev/null +++ b/miners/whatsminer/btminer/M3X/M30S_Plus_Plus.py @@ -0,0 +1,9 @@ +from miners.btminer import BTMiner + + +class BTMinerM30SPlusPlus(BTMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + + def __repr__(self) -> str: + return f"M30S++ - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/M31.py b/miners/whatsminer/btminer/M3X/M31S.py similarity index 68% rename from miners/whatsminer/M31.py rename to miners/whatsminer/btminer/M3X/M31S.py index f69df916..38848537 100644 --- a/miners/whatsminer/M31.py +++ b/miners/whatsminer/btminer/M3X/M31S.py @@ -1,10 +1,10 @@ from miners.btminer import BTMiner -class BTMinerM31(BTMiner): +class BTMinerM31S(BTMiner): def __init__(self, ip: str) -> None: super().__init__(ip) self.nominal_chips = 78 def __repr__(self) -> str: - return f"M31 - BTMiner: {str(self.ip)}" + return f"M31S - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/btminer/M3X/M31S_Plus.py b/miners/whatsminer/btminer/M3X/M31S_Plus.py new file mode 100644 index 00000000..affc1840 --- /dev/null +++ b/miners/whatsminer/btminer/M3X/M31S_Plus.py @@ -0,0 +1,10 @@ +from miners.btminer import BTMiner + + +class BTMinerM31SPlus(BTMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.nominal_chips = 78 + + def __repr__(self) -> str: + return f"M31S+ - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/btminer/M3X/M32S.py b/miners/whatsminer/btminer/M3X/M32S.py new file mode 100644 index 00000000..6dad8c4c --- /dev/null +++ b/miners/whatsminer/btminer/M3X/M32S.py @@ -0,0 +1,10 @@ +from miners.btminer import BTMiner + + +class BTMinerM32S(BTMiner): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.nominal_chips = 78 + + def __repr__(self) -> str: + return f"M32S - BTMiner: {str(self.ip)}" diff --git a/miners/whatsminer/btminer/M3X/__init__.py b/miners/whatsminer/btminer/M3X/__init__.py new file mode 100644 index 00000000..11b62b31 --- /dev/null +++ b/miners/whatsminer/btminer/M3X/__init__.py @@ -0,0 +1,8 @@ +from .M30S import BTMinerM30S +from .M30S_Plus import BTMinerM30SPlus +from .M30S_Plus_Plus import BTMinerM30SPlusPlus + +from .M31S import BTMinerM31S +from .M31S_Plus import BTMinerM31SPlus + +from .M32S import BTMinerM32S diff --git a/miners/whatsminer/btminer/__init__.py b/miners/whatsminer/btminer/__init__.py new file mode 100644 index 00000000..83439f1a --- /dev/null +++ b/miners/whatsminer/btminer/__init__.py @@ -0,0 +1,2 @@ +from .M2X import * +from .M3X import *