diff --git a/docs/miners/supported_types.md b/docs/miners/supported_types.md index 01733a16..1e983e3f 100644 --- a/docs/miners/supported_types.md +++ b/docs/miners/supported_types.md @@ -91,6 +91,7 @@ details {
M31S M31SV10 + M31SV20 M31SV60 M31SV70
diff --git a/docs/miners/whatsminer/M3X.md b/docs/miners/whatsminer/M3X.md index 36a7297b..ad6c29d9 100644 --- a/docs/miners/whatsminer/M3X.md +++ b/docs/miners/whatsminer/M3X.md @@ -122,6 +122,14 @@ show_root_heading: false heading_level: 4 +## M31SV20 + +::: pyasic.miners.whatsminer.btminer.M3X.M31S.BTMinerM31SV20 + handler: python + options: + show_root_heading: false + heading_level: 4 + ## M31SV60 ::: pyasic.miners.whatsminer.btminer.M3X.M31S.BTMinerM31SV60 diff --git a/pyasic/miners/_backends/bosminer.py b/pyasic/miners/_backends/bosminer.py index e0985d00..ff0712f7 100644 --- a/pyasic/miners/_backends/bosminer.py +++ b/pyasic/miners/_backends/bosminer.py @@ -28,7 +28,7 @@ from pyasic.errors import APIError from pyasic.miners.base import BaseMiner from pyasic.settings import PyasicSettings - +#TODO: Fix quota splitting in get data class BOSMiner(BaseMiner): def __init__(self, ip: str) -> None: super().__init__(ip) diff --git a/pyasic/miners/_types/whatsminer/M3X/M31S.py b/pyasic/miners/_types/whatsminer/M3X/M31S.py index bd1e2c95..78f3c137 100644 --- a/pyasic/miners/_types/whatsminer/M3X/M31S.py +++ b/pyasic/miners/_types/whatsminer/M3X/M31S.py @@ -32,6 +32,14 @@ class M31SV10(BaseMiner): # noqa - ignore ABC method implementation self.nominal_chips = 105 self.fan_count = 2 +class M31SV20(BaseMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str): + super().__init__() + self.ip = ip + self.model = "M31S V20" + self.nominal_chips = 111 + self.fan_count = 2 + class M31SV60(BaseMiner): # noqa - ignore ABC method implementation def __init__(self, ip: str): super().__init__() diff --git a/pyasic/miners/_types/whatsminer/M3X/__init__.py b/pyasic/miners/_types/whatsminer/M3X/__init__.py index 0a059e29..f2ca04cf 100644 --- a/pyasic/miners/_types/whatsminer/M3X/__init__.py +++ b/pyasic/miners/_types/whatsminer/M3X/__init__.py @@ -20,7 +20,7 @@ from .M30S_Plus_Plus import ( M30SPlusPlusVG40, M30SPlusPlusVH60, ) -from .M31S import M31S, M31SV10, M31SV60, M31SV70 +from .M31S import M31S, M31SV10, M31SV20, M31SV60, M31SV70 from .M31S_Plus import ( M31SPlus, M31SPlusV30, diff --git a/pyasic/miners/miner_factory.py b/pyasic/miners/miner_factory.py index a030c040..2f6e060d 100644 --- a/pyasic/miners/miner_factory.py +++ b/pyasic/miners/miner_factory.py @@ -195,9 +195,10 @@ MINER_CLASSES = { "M31S": { "Default": BTMinerM31S, "BTMiner": BTMinerM31S, - "V10": BTMinerM31SV10, - "V60": BTMinerM31SV60, - "V70": BTMinerM31SV70, + "10": BTMinerM31SV10, + "20": BTMinerM31SV20, + "60": BTMinerM31SV60, + "70": BTMinerM31SV70, }, "M31S+": { "Default": BTMinerM31SPlus, diff --git a/pyasic/miners/whatsminer/btminer/M3X/M31S.py b/pyasic/miners/whatsminer/btminer/M3X/M31S.py index 5367cea9..f1483517 100644 --- a/pyasic/miners/whatsminer/btminer/M3X/M31S.py +++ b/pyasic/miners/whatsminer/btminer/M3X/M31S.py @@ -13,7 +13,7 @@ # limitations under the License. from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module -from pyasic.miners._types import M31S, M31SV10, M31SV60, M31SV70 # noqa - Ignore access to _module +from pyasic.miners._types import M31S, M31SV10, M31SV20, M31SV60, M31SV70 # noqa - Ignore access to _module class BTMinerM31S(BTMiner, M31S): @@ -21,6 +21,11 @@ class BTMinerM31S(BTMiner, M31S): super().__init__(ip) self.ip = ip +class BTMinerM31SV20(BTMiner, M31SV20): + def __init__(self, ip: str) -> None: + super().__init__(ip) + self.ip = ip + class BTMinerM31SV10(BTMiner, M31SV10): def __init__(self, ip: str) -> None: diff --git a/pyasic/miners/whatsminer/btminer/M3X/__init__.py b/pyasic/miners/whatsminer/btminer/M3X/__init__.py index e4ca7e23..662d25a0 100644 --- a/pyasic/miners/whatsminer/btminer/M3X/__init__.py +++ b/pyasic/miners/whatsminer/btminer/M3X/__init__.py @@ -31,7 +31,7 @@ from .M30S_Plus_Plus import ( BTMinerM30SPlusPlusVG40, BTMinerM30SPlusPlusVH60, ) -from .M31S import BTMinerM31S, BTMinerM31SV10, BTMinerM31SV60, BTMinerM31SV70 +from .M31S import BTMinerM31S, BTMinerM31SV10, BTMinerM31SV20, BTMinerM31SV60, BTMinerM31SV70 from .M31S_Plus import ( BTMinerM31SPlus, BTMinerM31SPlusV30,