From 2f762c95db86646d89ee701c97c45ad9e316bad9 Mon Sep 17 00:00:00 2001 From: checksum0 Date: Tue, 12 Dec 2023 23:32:12 -0300 Subject: [PATCH] Add all the currently known Whatsminer M6X machines (#77) * Create new BTMiner M6X backend class to represent Whatsminer new M6X generation * Add all new known types of Whatsminer M6X * Ensure all new types are imported in their respective __init__.py * Create all BTMiner API class for known types of new M6X generation * Ensure all new BTMiner API class are imported in __init__.py * Fix erroneous M6X models data * Ensure M6X miners are imported and add them to their MinerTypes dictionary in miner_factory.py --- pyasic/miners/backends/__init__.py | 2 +- pyasic/miners/backends/whatsminer.py | 6 ++ pyasic/miners/miner_factory.py | 19 ++++++ pyasic/miners/types/whatsminer/M6X/M60.py | 66 +++++++++++++++++++ pyasic/miners/types/whatsminer/M6X/M60S.py | 64 ++++++++++++++++++ pyasic/miners/types/whatsminer/M6X/M63.py | 52 +++++++++++++++ pyasic/miners/types/whatsminer/M6X/M63S.py | 54 +++++++++++++++ pyasic/miners/types/whatsminer/M6X/M66.py | 43 ++++++++++++ pyasic/miners/types/whatsminer/M6X/M66S.py | 53 +++++++++++++++ .../miners/types/whatsminer/M6X/__init__.py | 52 +++++++++++++++ pyasic/miners/types/whatsminer/__init__.py | 1 + pyasic/miners/whatsminer/btminer/M6X/M60.py | 39 +++++++++++ pyasic/miners/whatsminer/btminer/M6X/M60S.py | 39 +++++++++++ pyasic/miners/whatsminer/btminer/M6X/M63.py | 34 ++++++++++ pyasic/miners/whatsminer/btminer/M6X/M63S.py | 34 ++++++++++ pyasic/miners/whatsminer/btminer/M6X/M66.py | 29 ++++++++ pyasic/miners/whatsminer/btminer/M6X/M66S.py | 34 ++++++++++ .../miners/whatsminer/btminer/M6X/__init__.py | 52 +++++++++++++++ pyasic/miners/whatsminer/btminer/__init__.py | 1 + 19 files changed, 673 insertions(+), 1 deletion(-) create mode 100644 pyasic/miners/types/whatsminer/M6X/M60.py create mode 100644 pyasic/miners/types/whatsminer/M6X/M60S.py create mode 100644 pyasic/miners/types/whatsminer/M6X/M63.py create mode 100644 pyasic/miners/types/whatsminer/M6X/M63S.py create mode 100644 pyasic/miners/types/whatsminer/M6X/M66.py create mode 100644 pyasic/miners/types/whatsminer/M6X/M66S.py create mode 100644 pyasic/miners/types/whatsminer/M6X/__init__.py create mode 100644 pyasic/miners/whatsminer/btminer/M6X/M60.py create mode 100644 pyasic/miners/whatsminer/btminer/M6X/M60S.py create mode 100644 pyasic/miners/whatsminer/btminer/M6X/M63.py create mode 100644 pyasic/miners/whatsminer/btminer/M6X/M63S.py create mode 100644 pyasic/miners/whatsminer/btminer/M6X/M66.py create mode 100644 pyasic/miners/whatsminer/btminer/M6X/M66S.py create mode 100644 pyasic/miners/whatsminer/btminer/M6X/__init__.py diff --git a/pyasic/miners/backends/__init__.py b/pyasic/miners/backends/__init__.py index c34fe09f..fab68b27 100644 --- a/pyasic/miners/backends/__init__.py +++ b/pyasic/miners/backends/__init__.py @@ -25,4 +25,4 @@ from .hiveon import Hiveon from .luxminer import LUXMiner from .vnish import VNish from .epic import ePIC -from .whatsminer import M2X, M3X, M5X +from .whatsminer import M2X, M3X, M5X, M6X diff --git a/pyasic/miners/backends/whatsminer.py b/pyasic/miners/backends/whatsminer.py index d7057071..a40d5631 100644 --- a/pyasic/miners/backends/whatsminer.py +++ b/pyasic/miners/backends/whatsminer.py @@ -16,6 +16,12 @@ from pyasic.miners.backends.btminer import BTMiner +class M6X(BTMiner): + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.supports_autotuning = True + + class M5X(BTMiner): def __init__(self, ip: str, api_ver: str = "0.0.0"): super().__init__(ip, api_ver) diff --git a/pyasic/miners/miner_factory.py b/pyasic/miners/miner_factory.py index 841df63d..777842c7 100644 --- a/pyasic/miners/miner_factory.py +++ b/pyasic/miners/miner_factory.py @@ -288,6 +288,25 @@ MINER_CLASSES = { "M56SVH30": BTMinerM56SVH30, "M56S+VJ30": BTMinerM56SPlusVJ30, "M59VH30": BTMinerM59VH30, + "M60VK10": BTMinerM60VK10, + "M60VK20": BTMinerM60VK20, + "M60VK30": BTMinerM60VK30, + "M60VK40": BTMinerM60VK40, + "M60SVK10": BTMinerM60SVK10, + "M60SVK20": BTMinerM60SVK20, + "M60SVK30": BTMinerM60SVK30, + "M60SVK40": BTMinerM60SVK40, + "M63VK10": BTMinerM63VK10, + "M63VK20": BTMinerM63VK20, + "M63VK30": BTMinerM63VK30, + "M63SVK10": BTMinerM63SVK10, + "M63SVK20": BTMinerM63SVK20, + "M63SVK30": BTMinerM63SVK30, + "M66VK20": BTMinerM66VK20, + "M66VK30": BTMinerM66VK30, + "M66SVK20": BTMinerM66SVK20, + "M66SVK30": BTMinerM66SVK30, + "M66SVK40": BTMinerM66SVK40, }, MinerTypes.AVALONMINER: { None: CGMinerAvalon, diff --git a/pyasic/miners/types/whatsminer/M6X/M60.py b/pyasic/miners/types/whatsminer/M6X/M60.py new file mode 100644 index 00000000..77649cd4 --- /dev/null +++ b/pyasic/miners/types/whatsminer/M6X/M60.py @@ -0,0 +1,66 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +import warnings + +from pyasic.miners.makes import WhatsMiner + +class M60VK10(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60 VK10" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M60 VK10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 2 + + +class M60VK20(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60 VK20" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M60 VK20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 2 + + +class M60VK30(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60 VK30" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M60 VK30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 2 + + +class M60VK40(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60 VK40" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M60 VK40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 2 \ No newline at end of file diff --git a/pyasic/miners/types/whatsminer/M6X/M60S.py b/pyasic/miners/types/whatsminer/M6X/M60S.py new file mode 100644 index 00000000..2ec049e8 --- /dev/null +++ b/pyasic/miners/types/whatsminer/M6X/M60S.py @@ -0,0 +1,64 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +import warnings + +from pyasic.miners.makes import WhatsMiner + +class M60SVK10(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60S VK10" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M60S VK10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 2 + + +class M60SVK20(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60S VK20" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M60S VK20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 2 + + +class M60SVK30(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60S VK30" + self.ideal_hashboards = 3 + self.nominal_chips = 78 + self.fan_count = 2 + + +class M60SVK40(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M60S VK40" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M60S VK40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 2 \ No newline at end of file diff --git a/pyasic/miners/types/whatsminer/M6X/M63.py b/pyasic/miners/types/whatsminer/M6X/M63.py new file mode 100644 index 00000000..28310657 --- /dev/null +++ b/pyasic/miners/types/whatsminer/M6X/M63.py @@ -0,0 +1,52 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +import warnings + +from pyasic.miners.makes import WhatsMiner + +class M63VK10(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M63 VK10" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M63 VK10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 + + +class M63VK20(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M63 VK20" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M63 VK20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 + + +class M63VK30(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M63 VK30" + self.nominal_chips = 68 + self.ideal_hashboards = 4 + self.fan_count = 0 \ No newline at end of file diff --git a/pyasic/miners/types/whatsminer/M6X/M63S.py b/pyasic/miners/types/whatsminer/M6X/M63S.py new file mode 100644 index 00000000..704670e9 --- /dev/null +++ b/pyasic/miners/types/whatsminer/M6X/M63S.py @@ -0,0 +1,54 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +import warnings + +from pyasic.miners.makes import WhatsMiner + +class M63SVK10(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M63S VK10" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M63S VK10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 + + +class M63SVK20(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M63S VK20" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M63S VK20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 + + +class M63SVK30(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M63S VK30" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M63S VK30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 \ No newline at end of file diff --git a/pyasic/miners/types/whatsminer/M6X/M66.py b/pyasic/miners/types/whatsminer/M6X/M66.py new file mode 100644 index 00000000..2fc312e3 --- /dev/null +++ b/pyasic/miners/types/whatsminer/M6X/M66.py @@ -0,0 +1,43 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +import warnings + +from pyasic.miners.makes import WhatsMiner + + +class M66VK20(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M66 VK20" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M66 VK20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 + + +class M66VK30(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M66 VK30" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M66 VK30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 \ No newline at end of file diff --git a/pyasic/miners/types/whatsminer/M6X/M66S.py b/pyasic/miners/types/whatsminer/M6X/M66S.py new file mode 100644 index 00000000..b6128d15 --- /dev/null +++ b/pyasic/miners/types/whatsminer/M6X/M66S.py @@ -0,0 +1,53 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +import warnings + +from pyasic.miners.makes import WhatsMiner + + +class M66SVK20(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M66S VK20" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M66S VK20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 + + +class M66SVK30(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M66S VK30" + self.nominal_chips = 96 + self.ideal_hashboards = 4 + self.fan_count = 0 + + +class M66SVK40(WhatsMiner): # noqa - ignore ABC method implementation + def __init__(self, ip: str, api_ver: str = "0.0.0"): + super().__init__(ip, api_ver) + self.ip = ip + self.model = "M66S VK40" + self.nominal_chips = 0 + warnings.warn( + "Unknown chip count for miner type M66 VK30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)." + ) + self.fan_count = 0 \ No newline at end of file diff --git a/pyasic/miners/types/whatsminer/M6X/__init__.py b/pyasic/miners/types/whatsminer/M6X/__init__.py new file mode 100644 index 00000000..f55c8525 --- /dev/null +++ b/pyasic/miners/types/whatsminer/M6X/__init__.py @@ -0,0 +1,52 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from .M60 import ( + M60VK10, + M60VK20, + M60VK30, + M60VK40, +) + +from .M60S import ( + M60SVK10, + M60SVK20, + M60SVK30, + M60SVK40, +) + +from .M63 import ( + M63VK10, + M63VK20, + M63VK30, +) + +from .M63S import ( + M63SVK10, + M63SVK20, + M63SVK30, +) + +from .M66 import ( + M66VK20, + M66VK30, +) + +from .M66S import ( + M66SVK20, + M66SVK30, + M66SVK40, +) \ No newline at end of file diff --git a/pyasic/miners/types/whatsminer/__init__.py b/pyasic/miners/types/whatsminer/__init__.py index 550f58d8..ddcba8b5 100644 --- a/pyasic/miners/types/whatsminer/__init__.py +++ b/pyasic/miners/types/whatsminer/__init__.py @@ -17,3 +17,4 @@ from .M2X import * from .M3X import * from .M5X import * +from .M6X import * diff --git a/pyasic/miners/whatsminer/btminer/M6X/M60.py b/pyasic/miners/whatsminer/btminer/M6X/M60.py new file mode 100644 index 00000000..d5290cef --- /dev/null +++ b/pyasic/miners/whatsminer/btminer/M6X/M60.py @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from pyasic.miners.backends import M6X +from pyasic.miners.types import ( + M60VK10, + M60VK20, + M60VK30, + M60VK40, +) + + +class BTMinerM60VK10(M6X, M60VK10): + pass + + +class BTMinerM60VK20(M6X, M60VK20): + pass + + +class BTMinerM60VK30(M6X, M60VK30): + pass + + +class BTMinerM60VK40(M6X, M60VK40): + pass diff --git a/pyasic/miners/whatsminer/btminer/M6X/M60S.py b/pyasic/miners/whatsminer/btminer/M6X/M60S.py new file mode 100644 index 00000000..ebf05df6 --- /dev/null +++ b/pyasic/miners/whatsminer/btminer/M6X/M60S.py @@ -0,0 +1,39 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from pyasic.miners.backends import M6X +from pyasic.miners.types import ( + M60SVK10, + M60SVK20, + M60SVK30, + M60SVK40, +) + + +class BTMinerM60SVK10(M6X, M60SVK10): + pass + + +class BTMinerM60SVK20(M6X, M60SVK20): + pass + + +class BTMinerM60SVK30(M6X, M60SVK30): + pass + + +class BTMinerM60SVK40(M6X, M60SVK40): + pass diff --git a/pyasic/miners/whatsminer/btminer/M6X/M63.py b/pyasic/miners/whatsminer/btminer/M6X/M63.py new file mode 100644 index 00000000..a34aeb29 --- /dev/null +++ b/pyasic/miners/whatsminer/btminer/M6X/M63.py @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from pyasic.miners.backends import M6X +from pyasic.miners.types import ( + M63VK10, + M63VK20, + M63VK30, +) + + +class BTMinerM63VK10(M6X, M63VK10): + pass + + +class BTMinerM63VK20(M6X, M63VK20): + pass + + +class BTMinerM63VK30(M6X, M63VK30): + pass diff --git a/pyasic/miners/whatsminer/btminer/M6X/M63S.py b/pyasic/miners/whatsminer/btminer/M6X/M63S.py new file mode 100644 index 00000000..bc36d8a9 --- /dev/null +++ b/pyasic/miners/whatsminer/btminer/M6X/M63S.py @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from pyasic.miners.backends import M6X +from pyasic.miners.types import ( + M63SVK10, + M63SVK20, + M63SVK30, +) + + +class BTMinerM63SVK10(M6X, M63SVK10): + pass + + +class BTMinerM63SVK20(M6X, M63SVK20): + pass + + +class BTMinerM63SVK30(M6X, M63SVK30): + pass diff --git a/pyasic/miners/whatsminer/btminer/M6X/M66.py b/pyasic/miners/whatsminer/btminer/M6X/M66.py new file mode 100644 index 00000000..c57b85ea --- /dev/null +++ b/pyasic/miners/whatsminer/btminer/M6X/M66.py @@ -0,0 +1,29 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from pyasic.miners.backends import M6X +from pyasic.miners.types import ( + M66VK20, + M66VK30, +) + + +class BTMinerM66VK20(M6X, M66VK20): + pass + + +class BTMinerM66VK30(M6X, M66VK30): + pass diff --git a/pyasic/miners/whatsminer/btminer/M6X/M66S.py b/pyasic/miners/whatsminer/btminer/M6X/M66S.py new file mode 100644 index 00000000..4d5eb86b --- /dev/null +++ b/pyasic/miners/whatsminer/btminer/M6X/M66S.py @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from pyasic.miners.backends import M6X +from pyasic.miners.types import ( + M66SVK20, + M66SVK30, + M66SVK40, +) + + +class BTMinerM66SVK20(M6X, M66SVK20): + pass + + +class BTMinerM66SVK30(M6X, M66SVK30): + pass + + +class BTMinerM66SVK40(M6X, M66SVK40): + pass \ No newline at end of file diff --git a/pyasic/miners/whatsminer/btminer/M6X/__init__.py b/pyasic/miners/whatsminer/btminer/M6X/__init__.py new file mode 100644 index 00000000..d2e8fee4 --- /dev/null +++ b/pyasic/miners/whatsminer/btminer/M6X/__init__.py @@ -0,0 +1,52 @@ +# ------------------------------------------------------------------------------ +# Copyright 2023 Upstream Data Inc - +# - +# Licensed under the Apache License, Version 2.0 (the "License"); - +# you may not use this file except in compliance with the License. - +# You may obtain a copy of the License at - +# - +# http://www.apache.org/licenses/LICENSE-2.0 - +# - +# Unless required by applicable law or agreed to in writing, software - +# distributed under the License is distributed on an "AS IS" BASIS, - +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - +# See the License for the specific language governing permissions and - +# limitations under the License. - +# ------------------------------------------------------------------------------ + +from .M60 import ( + BTMinerM60VK10, + BTMinerM60VK20, + BTMinerM60VK30, + BTMinerM60VK40, +) + +from .M60S import ( + BTMinerM60SVK10, + BTMinerM60SVK20, + BTMinerM60SVK30, + BTMinerM60SVK40, +) + +from .M63 import ( + BTMinerM63VK10, + BTMinerM63VK20, + BTMinerM63VK30, +) + +from .M63S import ( + BTMinerM63SVK10, + BTMinerM63SVK20, + BTMinerM63SVK30, +) + +from .M66 import ( + BTMinerM66VK20, + BTMinerM66VK30, +) + +from .M66S import ( + BTMinerM66SVK20, + BTMinerM66SVK30, + BTMinerM66SVK40, +) \ No newline at end of file diff --git a/pyasic/miners/whatsminer/btminer/__init__.py b/pyasic/miners/whatsminer/btminer/__init__.py index 550f58d8..e12b787c 100644 --- a/pyasic/miners/whatsminer/btminer/__init__.py +++ b/pyasic/miners/whatsminer/btminer/__init__.py @@ -17,3 +17,4 @@ from .M2X import * from .M3X import * from .M5X import * +from .M6X import * \ No newline at end of file