feature: Add every whatsminer type known to man (or at least microBT).
This commit is contained in:
@@ -15,21 +15,20 @@
|
||||
import asyncio
|
||||
import base64
|
||||
import binascii
|
||||
import datetime
|
||||
import hashlib
|
||||
import json
|
||||
import logging
|
||||
import re
|
||||
from typing import Union
|
||||
import datetime
|
||||
|
||||
|
||||
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
|
||||
from passlib.handlers.md5_crypt import md5_crypt
|
||||
|
||||
from pyasic.API import BaseMinerAPI
|
||||
from pyasic.errors import APIError
|
||||
from pyasic.settings import PyasicSettings
|
||||
from pyasic.misc import api_min_version
|
||||
from pyasic.settings import PyasicSettings
|
||||
|
||||
### IMPORTANT ###
|
||||
# you need to change the password of the miners using the Whatsminer
|
||||
|
||||
@@ -36,6 +36,7 @@ class HashBoard:
|
||||
expected_chips: The ideal chip count of the board as an int.
|
||||
missing: Whether the board is returned from the miners data as a bool.
|
||||
"""
|
||||
|
||||
slot: int = 0
|
||||
hashrate: float = 0.0
|
||||
temp: int = -1
|
||||
|
||||
@@ -52,9 +52,7 @@ class WhatsminerError:
|
||||
elif "n" in select_err_subtype:
|
||||
return select_err_subtype[
|
||||
"n" # noqa: picks up `select_err_subtype["n"]` as not being numeric?
|
||||
].replace(
|
||||
"{n}", str(err_value)
|
||||
)
|
||||
].replace("{n}", str(err_value))
|
||||
else:
|
||||
return "Unknown error type."
|
||||
elif "n" in select_err_type:
|
||||
|
||||
@@ -16,5 +16,5 @@ from .bmminer import BMMiner
|
||||
from .bosminer import BOSMiner
|
||||
from .btminer import BTMiner
|
||||
from .cgminer import CGMiner
|
||||
from .hiveon import Hiveon
|
||||
from .cgminer_avalon import CGMinerAvalon
|
||||
from .hiveon import Hiveon
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
|
||||
import ipaddress
|
||||
import logging
|
||||
from typing import List, Union, Tuple, Optional
|
||||
from collections import namedtuple
|
||||
from typing import List, Optional, Tuple, Union
|
||||
|
||||
import asyncssh
|
||||
|
||||
@@ -332,9 +332,9 @@ class BMMiner(BaseMiner):
|
||||
except KeyError:
|
||||
rate_unit = "GH"
|
||||
if rate_unit == "GH":
|
||||
return round(ideal_rate/1000, 2)
|
||||
return round(ideal_rate / 1000, 2)
|
||||
if rate_unit == "MH":
|
||||
return round(ideal_rate/1000000, 2)
|
||||
return round(ideal_rate / 1000000, 2)
|
||||
else:
|
||||
return round(ideal_rate, 2)
|
||||
except (KeyError, IndexError):
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
import ipaddress
|
||||
import json
|
||||
import logging
|
||||
from typing import List, Union, Tuple, Optional
|
||||
from collections import namedtuple
|
||||
from typing import List, Optional, Tuple, Union
|
||||
|
||||
import asyncssh
|
||||
import httpx
|
||||
@@ -846,7 +846,9 @@ class BOSMiner(BaseMiner):
|
||||
if len(hr_list) == 0:
|
||||
return 0
|
||||
else:
|
||||
return round((sum(hr_list)/len(hr_list))*self.ideal_hashboards, 2)
|
||||
return round(
|
||||
(sum(hr_list) / len(hr_list)) * self.ideal_hashboards, 2
|
||||
)
|
||||
except (IndexError, KeyError):
|
||||
pass
|
||||
|
||||
|
||||
@@ -15,14 +15,13 @@
|
||||
import ipaddress
|
||||
import logging
|
||||
from collections import namedtuple
|
||||
from typing import List, Tuple, Optional
|
||||
from typing import Union
|
||||
from typing import List, Optional, Tuple, Union
|
||||
|
||||
import asyncssh
|
||||
|
||||
from pyasic.API.bosminer import BOSMinerAPI
|
||||
from pyasic.config import MinerConfig
|
||||
from pyasic.data import MinerData, HashBoard
|
||||
from pyasic.data import HashBoard, MinerData
|
||||
from pyasic.data.error_codes import MinerErrorData
|
||||
from pyasic.errors import APIError
|
||||
from pyasic.miners.base import BaseMiner
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
|
||||
import ipaddress
|
||||
import logging
|
||||
from typing import List, Union, Tuple, Optional
|
||||
from collections import namedtuple
|
||||
from typing import List, Optional, Tuple, Union
|
||||
|
||||
import asyncssh
|
||||
|
||||
@@ -380,9 +380,9 @@ class CGMiner(BaseMiner):
|
||||
except KeyError:
|
||||
rate_unit = "GH"
|
||||
if rate_unit == "GH":
|
||||
return round(ideal_rate/1000, 2)
|
||||
return round(ideal_rate / 1000, 2)
|
||||
if rate_unit == "MH":
|
||||
return round(ideal_rate/1000000, 2)
|
||||
return round(ideal_rate / 1000000, 2)
|
||||
else:
|
||||
return round(ideal_rate, 2)
|
||||
except (KeyError, IndexError):
|
||||
|
||||
@@ -14,18 +14,18 @@
|
||||
|
||||
import ipaddress
|
||||
import logging
|
||||
from typing import List, Union, Tuple, Optional
|
||||
from collections import namedtuple
|
||||
import re
|
||||
from collections import namedtuple
|
||||
from typing import List, Optional, Tuple, Union
|
||||
|
||||
from pyasic.API.cgminer import CGMinerAPI
|
||||
from pyasic.config import MinerConfig
|
||||
from pyasic.data import HashBoard, MinerData
|
||||
from pyasic.data.error_codes import MinerErrorData
|
||||
from pyasic.errors import APIError
|
||||
from pyasic.miners._backends import CGMiner
|
||||
from pyasic.miners.base import BaseMiner
|
||||
from pyasic.settings import PyasicSettings
|
||||
from pyasic.miners._backends import CGMiner
|
||||
|
||||
|
||||
class CGMinerAvalon(CGMiner):
|
||||
|
||||
@@ -15,15 +15,6 @@
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M20"
|
||||
self.nominal_chips = 70
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M20V10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
|
||||
@@ -12,18 +12,11 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M20S(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M20S"
|
||||
self.nominal_chips = 66
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M20SV10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
@@ -40,3 +33,15 @@ class M20SV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.model = "M20S V20"
|
||||
self.nominal_chips = 111
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M20SV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M20S V30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M20SV30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
@@ -12,13 +12,18 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M20SPlus(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M20SPlusV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M20S+"
|
||||
self.nominal_chips = 66
|
||||
self.model = "M20S+ V30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M20S+ V30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
@@ -12,13 +12,18 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M21(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M21V10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M21"
|
||||
self.nominal_chips = 105
|
||||
self.model = "M21 V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M21V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
@@ -12,14 +12,16 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M21S(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M21SV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M21S"
|
||||
self.model = "M21S V20"
|
||||
self.nominal_chips = 66
|
||||
self.fan_count = 2
|
||||
|
||||
@@ -33,10 +35,13 @@ class M21SV60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M21SV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M21SV70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M21S V20"
|
||||
self.nominal_chips = 66
|
||||
self.model = "M21S V70"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M21SV70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
@@ -12,13 +12,18 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M21SPlus(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M21SPlusV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M21S+"
|
||||
self.nominal_chips = 105
|
||||
self.model = "M21S+ V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M21S+ V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
29
pyasic/miners/_types/whatsminer/M2X/M29.py
Normal file
29
pyasic/miners/_types/whatsminer/M2X/M29.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M29V10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M29 V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M29V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
@@ -12,9 +12,10 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from .M20 import M20, M20V10
|
||||
from .M20S import M20S, M20SV10, M20SV20
|
||||
from .M20S_Plus import M20SPlus
|
||||
from .M21 import M21
|
||||
from .M21S import M21S, M21SV20, M21SV60
|
||||
from .M21S_Plus import M21SPlus
|
||||
from .M20 import M20V10
|
||||
from .M20S import M20SV10, M20SV20, M20SV30
|
||||
from .M20S_Plus import M20SPlusV30
|
||||
from .M21 import M21V10
|
||||
from .M21S import M21SV20, M21SV60, M21SV70
|
||||
from .M21S_Plus import M21SPlusV20
|
||||
from .M29 import M29V10
|
||||
|
||||
41
pyasic/miners/_types/whatsminer/M3X/M30.py
Normal file
41
pyasic/miners/_types/whatsminer/M3X/M30.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M30V10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30 V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30V20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30 V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
@@ -12,15 +12,56 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M30S(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M30SV10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S"
|
||||
self.nominal_chips = 148
|
||||
self.model = "M30S V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SV10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SV20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S V30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SV30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SV40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S V40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SV40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -33,21 +74,39 @@ class M30SV50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVG20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M30SV60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VG20"
|
||||
self.nominal_chips = 70
|
||||
self.model = "M30S V60"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SV60, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVE20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M30SV70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VE20"
|
||||
self.nominal_chips = 111
|
||||
self.model = "M30S V70"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SV70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SV80(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S V80"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SV80, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -60,6 +119,111 @@ class M30SVE10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVE20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VE20"
|
||||
self.nominal_chips = 111
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVE30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VE30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVE30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVE40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VE40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVE40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVE50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VE50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVE50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVE60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VE60"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVE60, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVE70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VE70"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVE70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVF10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VF10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVF10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVF20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VF20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVF20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVF30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VF30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVF30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVG10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
@@ -67,3 +231,120 @@ class M30SVG10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.model = "M30S VG10"
|
||||
self.nominal_chips = 66
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVG20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VG20"
|
||||
self.nominal_chips = 70
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVG30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VG30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVG30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVG40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VG40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVG40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVH10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VH10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVH10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVH20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VH20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVH20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVH40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VH40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVH40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVH50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VH50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVH50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVH60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VH60"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVH60, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SVI20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S VI20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30SVI20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
@@ -12,33 +12,140 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M30SPlus(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M30SPlusV10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+"
|
||||
self.nominal_chips = 156
|
||||
self.model = "M30S+ V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVG60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M30SPlusV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VG60"
|
||||
self.nominal_chips = 86
|
||||
self.model = "M30S+ V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVG40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M30SPlusV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VG40"
|
||||
self.nominal_chips = 105
|
||||
self.model = "M30S+ V30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusV40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ V40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusV50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ V50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusV60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ V60"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V60, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusV70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ V70"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusV80(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ V80"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V80, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusV90(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ V90"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V90, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusV100(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ V100"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V100, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVE30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VE30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -51,6 +158,78 @@ class M30SPlusVE40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVE50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VE50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVE60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VE60"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE60, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVE70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VE70"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVE80(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VE80"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE80, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVE90(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VE90"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE90, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVE100(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VE100"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE100, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVF20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
@@ -59,6 +238,97 @@ class M30SPlusVF20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.nominal_chips = 111
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVF30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VF30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VF30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M36SPlusVG30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M36S+ VG30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M36SPlusVG30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVG30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VG30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VG30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVG40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VG40"
|
||||
self.nominal_chips = 105
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVG50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VG50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VG50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVG60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VG60"
|
||||
self.nominal_chips = 86
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVH10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VH10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VH10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVH20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VH20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VH20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
@@ -67,6 +337,31 @@ class M30SPlusVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.nominal_chips = 70
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVH40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VH40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VH40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVH50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S+ VH50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VH50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusVH60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
|
||||
@@ -12,15 +12,80 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M30SPlusPlus(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M30SPlusPlusV10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++"
|
||||
self.nominal_chips = 111
|
||||
self.model = "M30S++ V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVE30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VE30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VE30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVE40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VE40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VE40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVE50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VE50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VE50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVF40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VF40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VF40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -42,6 +107,78 @@ class M30SPlusPlusVG40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVG50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VG50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VG50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
@@ -49,3 +186,75 @@ class M30SPlusPlusVH60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.model = "M30S++ VH60"
|
||||
self.nominal_chips = 78
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH70"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH80(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH80"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH80, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH90(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH90"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH90, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVH100(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VH100"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH100, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVJ20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VJ20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VJ20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M30SPlusPlusVJ30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M30S++ VJ30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VJ30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
41
pyasic/miners/_types/whatsminer/M3X/M31.py
Normal file
41
pyasic/miners/_types/whatsminer/M3X/M31.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M31V10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31 V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31V20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31 V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M3X/M31H.py
Normal file
29
pyasic/miners/_types/whatsminer/M3X/M31H.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M31HV40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31H V40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31HV40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
@@ -12,18 +12,11 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M31S(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S"
|
||||
self.nominal_chips = 111
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SV10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
@@ -42,6 +35,42 @@ class M31SV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S V30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SV30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SV40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S V40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SV40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SV50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S V50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SV50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SV60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
@@ -58,3 +87,63 @@ class M31SV70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.model = "M31S V70"
|
||||
self.nominal_chips = 111
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SV80(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S V80"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SV80, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SV90(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S V90"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SV90, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SVE10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S VE10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SVE10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SVE20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S VE20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SVE20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SVE30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S VE30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SVE30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
53
pyasic/miners/_types/whatsminer/M3X/M31SE.py
Normal file
53
pyasic/miners/_types/whatsminer/M3X/M31SE.py
Normal file
@@ -0,0 +1,53 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M31SEV10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31SE V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SEV10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SEV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31SE V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SEV20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SEV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31SE V30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M31SEV30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
@@ -12,24 +12,32 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M31SPlus(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M31SPlusV10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+"
|
||||
self.nominal_chips = 78
|
||||
self.model = "M31S+ V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M31SPlusV20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE20"
|
||||
self.nominal_chips = 78
|
||||
self.model = "M31S+ V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -38,7 +46,10 @@ class M31SPlusV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ V30"
|
||||
self.nominal_chips = 117
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -47,7 +58,22 @@ class M31SPlusV40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ V40"
|
||||
self.nominal_chips = 123
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusV50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ V50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -76,3 +102,162 @@ class M31SPlusV90(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.model = "M31S+ V90"
|
||||
self.nominal_chips = 117
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusV100(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ V100"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ V100, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE20"
|
||||
self.nominal_chips = 78
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE60"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE60, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVE80(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VE80"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VE80, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVF20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VF20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VF20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVF30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VF30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VF30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVG20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VG20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VG20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusVG30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ VG30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VG30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusV30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ V30"
|
||||
self.nominal_chips = 117
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M31SPlusV40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M31S+ V40"
|
||||
self.nominal_chips = 123
|
||||
self.fan_count = 2
|
||||
|
||||
@@ -12,15 +12,20 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M32(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M32V10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M32"
|
||||
self.nominal_chips = 74
|
||||
self.model = "M32 V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M32V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
|
||||
53
pyasic/miners/_types/whatsminer/M3X/M33.py
Normal file
53
pyasic/miners/_types/whatsminer/M3X/M33.py
Normal file
@@ -0,0 +1,53 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M33V10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33 V10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M33V10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M33V20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33 V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M33V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M33V30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33 V30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M33V30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M3X/M33S.py
Normal file
29
pyasic/miners/_types/whatsminer/M3X/M33S.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M33SVG30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33S VG30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M33SVG30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
41
pyasic/miners/_types/whatsminer/M3X/M33S_Plus.py
Normal file
41
pyasic/miners/_types/whatsminer/M3X/M33S_Plus.py
Normal file
@@ -0,0 +1,41 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M33SPlusVH20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33S+ VH20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VH20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M33SPlusVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33S+ VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S+ VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
53
pyasic/miners/_types/whatsminer/M3X/M33S_Plus_Plus.py
Normal file
53
pyasic/miners/_types/whatsminer/M3X/M33S_Plus_Plus.py
Normal file
@@ -0,0 +1,53 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M33SPlusPlusVH20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33S++ VH20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M33SPlusPlusVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33S++ VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M33SPlusPlusVG40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M33S++ VG40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M30S++ VG40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
@@ -15,16 +15,6 @@
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M34SPlus(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M34S+"
|
||||
self.ideal_hashboards = 4
|
||||
self.nominal_chips = 116
|
||||
self.fan_count = 0
|
||||
|
||||
|
||||
class M34SPlusVE10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
|
||||
29
pyasic/miners/_types/whatsminer/M3X/M36S.py
Normal file
29
pyasic/miners/_types/whatsminer/M3X/M36S.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M36SVE10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M36S VE10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M36SVE10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M3X/M36S_Plus.py
Normal file
29
pyasic/miners/_types/whatsminer/M3X/M36S_Plus.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M36SPlusVG30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M36S+ VG30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M36S+ VG30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M3X/M36S_Plus_Plus.py
Normal file
29
pyasic/miners/_types/whatsminer/M3X/M36S_Plus_Plus.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M36SPlusPlusVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M36S++ VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M36S++ VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M3X/M39.py
Normal file
29
pyasic/miners/_types/whatsminer/M3X/M39.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M39V20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M39 V20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M39 V20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
@@ -12,24 +12,140 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from .M30S import M30S, M30SV50, M30SVE10, M30SVE20, M30SVG20, M30SVG10
|
||||
from .M30S_Plus import M30SPlus, M30SPlusVE40, M30SPlusVF20, M30SPlusVG60, M30SPlusVG40, M30SPlusVH30, M30SPlusVH60
|
||||
from .M30 import M30V10, M30V20
|
||||
from .M30S import (
|
||||
M30SV10,
|
||||
M30SV20,
|
||||
M30SV30,
|
||||
M30SV40,
|
||||
M30SV50,
|
||||
M30SV60,
|
||||
M30SV70,
|
||||
M30SV80,
|
||||
M30SVE10,
|
||||
M30SVE20,
|
||||
M30SVE30,
|
||||
M30SVE40,
|
||||
M30SVE50,
|
||||
M30SVE60,
|
||||
M30SVE70,
|
||||
M30SVF10,
|
||||
M30SVF20,
|
||||
M30SVF30,
|
||||
M30SVG10,
|
||||
M30SVG20,
|
||||
M30SVG30,
|
||||
M30SVG40,
|
||||
M30SVH10,
|
||||
M30SVH20,
|
||||
M30SVH30,
|
||||
M30SVH40,
|
||||
M30SVH50,
|
||||
M30SVH60,
|
||||
M30SVI20,
|
||||
)
|
||||
from .M30S_Plus import (
|
||||
M30SPlusV10,
|
||||
M30SPlusV20,
|
||||
M30SPlusV30,
|
||||
M30SPlusV40,
|
||||
M30SPlusV50,
|
||||
M30SPlusV60,
|
||||
M30SPlusV70,
|
||||
M30SPlusV80,
|
||||
M30SPlusV90,
|
||||
M30SPlusV100,
|
||||
M30SPlusVE30,
|
||||
M30SPlusVE40,
|
||||
M30SPlusVE50,
|
||||
M30SPlusVE60,
|
||||
M30SPlusVE70,
|
||||
M30SPlusVE80,
|
||||
M30SPlusVE90,
|
||||
M30SPlusVE100,
|
||||
M30SPlusVF20,
|
||||
M30SPlusVF30,
|
||||
M30SPlusVG30,
|
||||
M30SPlusVG40,
|
||||
M30SPlusVG50,
|
||||
M30SPlusVG60,
|
||||
M30SPlusVH10,
|
||||
M30SPlusVH20,
|
||||
M30SPlusVH30,
|
||||
M30SPlusVH40,
|
||||
M30SPlusVH50,
|
||||
M30SPlusVH60,
|
||||
M36SPlusVG30,
|
||||
)
|
||||
from .M30S_Plus_Plus import (
|
||||
M30SPlusPlus,
|
||||
M30SPlusPlusV10,
|
||||
M30SPlusPlusV20,
|
||||
M30SPlusPlusVE30,
|
||||
M30SPlusPlusVE40,
|
||||
M30SPlusPlusVE50,
|
||||
M30SPlusPlusVF40,
|
||||
M30SPlusPlusVG30,
|
||||
M30SPlusPlusVG40,
|
||||
M30SPlusPlusVG50,
|
||||
M30SPlusPlusVH10,
|
||||
M30SPlusPlusVH20,
|
||||
M30SPlusPlusVH30,
|
||||
M30SPlusPlusVH40,
|
||||
M30SPlusPlusVH50,
|
||||
M30SPlusPlusVH60,
|
||||
M30SPlusPlusVH70,
|
||||
M30SPlusPlusVH80,
|
||||
M30SPlusPlusVH90,
|
||||
M30SPlusPlusVH100,
|
||||
M30SPlusPlusVJ20,
|
||||
M30SPlusPlusVJ30,
|
||||
)
|
||||
from .M31 import M31V10, M31V20
|
||||
from .M31H import M31HV40
|
||||
from .M31S import (
|
||||
M31SV10,
|
||||
M31SV20,
|
||||
M31SV30,
|
||||
M31SV40,
|
||||
M31SV50,
|
||||
M31SV60,
|
||||
M31SV70,
|
||||
M31SV80,
|
||||
M31SV90,
|
||||
M31SVE10,
|
||||
M31SVE20,
|
||||
M31SVE30,
|
||||
)
|
||||
from .M31S import M31S, M31SV10, M31SV20, M31SV60, M31SV70
|
||||
from .M31S_Plus import (
|
||||
M31SPlus,
|
||||
M31SPlusV10,
|
||||
M31SPlusV20,
|
||||
M31SPlusV30,
|
||||
M31SPlusV40,
|
||||
M31SPlusV50,
|
||||
M31SPlusV60,
|
||||
M31SPlusV80,
|
||||
M31SPlusV90,
|
||||
M31SPlusV100,
|
||||
M31SPlusVE10,
|
||||
M31SPlusVE20,
|
||||
M31SPlusVE30,
|
||||
M31SPlusVE40,
|
||||
M31SPlusVE50,
|
||||
M31SPlusVE60,
|
||||
M31SPlusVE80,
|
||||
M31SPlusVF20,
|
||||
M31SPlusVF30,
|
||||
M31SPlusVG20,
|
||||
M31SPlusVG30,
|
||||
)
|
||||
from .M32 import M32, M32V20
|
||||
from .M32S import M32S
|
||||
from .M34S_Plus import M34SPlus, M34SPlusVE10
|
||||
from .M31SE import M31SEV10, M31SEV20, M31SEV30
|
||||
from .M32 import M32V10, M32V20
|
||||
from .M33 import M33V10, M33V20, M33V30
|
||||
from .M33S import M33SVG30
|
||||
from .M33S_Plus import M33SPlusVH20, M33SPlusVH30
|
||||
from .M33S_Plus_Plus import M33SPlusPlusVG40, M33SPlusPlusVH20, M33SPlusPlusVH30
|
||||
from .M34S_Plus import M34SPlusVE10
|
||||
from .M36S import M36SVE10
|
||||
from .M36S_Plus import M36SPlusVG30
|
||||
from .M36S_Plus_Plus import M36SPlusPlusVH30
|
||||
from .M39 import M39V20
|
||||
|
||||
@@ -12,15 +12,68 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import warnings
|
||||
|
||||
from pyasic.miners._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
class M50VG30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50"
|
||||
self.nominal_chips = 105
|
||||
self.model = "M50 VG30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VG30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VH10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VH10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VH10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VH20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VH20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VH20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VH40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VH40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VH40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
@@ -31,3 +84,75 @@ class M50VH50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
self.model = "M50 VH50"
|
||||
self.nominal_chips = 105
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VH60(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VH60"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VH60, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VH70(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VH70"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VH70, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VH80(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VH80"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VH80, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VJ10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VJ10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VJ10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VJ20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VJ20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VJ20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50VJ30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50 VJ30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50 VJ30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
113
pyasic/miners/_types/whatsminer/M5X/M50S.py
Normal file
113
pyasic/miners/_types/whatsminer/M5X/M50S.py
Normal file
@@ -0,0 +1,113 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M50SVJ10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VJ10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VJ10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SVJ20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VJ20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VJ20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SVJ30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VJ30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VJ30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SVH10(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VH10"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VH10, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SVH20(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VH20"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VH20, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SVH40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VH40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VH40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SVH50(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S VH50"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S VH50, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
53
pyasic/miners/_types/whatsminer/M5X/M50S_Plus.py
Normal file
53
pyasic/miners/_types/whatsminer/M5X/M50S_Plus.py
Normal file
@@ -0,0 +1,53 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M50SPlusVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S+ VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S+ VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SPlusVH40(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S+ VH40"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S+ VH40, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
|
||||
|
||||
class M50SPlusVJ30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M50S+ VJ30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M50S+ VJ30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M5X/M53.py
Normal file
29
pyasic/miners/_types/whatsminer/M5X/M53.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M53VH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M53 VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M53 VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M5X/M53S.py
Normal file
29
pyasic/miners/_types/whatsminer/M5X/M53S.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M53SVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M53S VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M53S VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M5X/M53S_Plus.py
Normal file
29
pyasic/miners/_types/whatsminer/M5X/M53S_Plus.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M53SPlusVJ30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M53S+ VJ30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M53S+ VJ30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M5X/M56.py
Normal file
29
pyasic/miners/_types/whatsminer/M5X/M56.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M56VH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M56 VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M56 VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M5X/M56S.py
Normal file
29
pyasic/miners/_types/whatsminer/M5X/M56S.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M56SVH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M56S VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M56S VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M5X/M56S_Plus.py
Normal file
29
pyasic/miners/_types/whatsminer/M5X/M56S_Plus.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M56SPlusVJ30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M56S+ VJ30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M56S+ VJ30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
29
pyasic/miners/_types/whatsminer/M5X/M59.py
Normal file
29
pyasic/miners/_types/whatsminer/M5X/M59.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# Copyright 2022 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._types.makes import WhatsMiner
|
||||
|
||||
|
||||
class M59VH30(WhatsMiner): # noqa - ignore ABC method implementation
|
||||
def __init__(self, ip: str):
|
||||
super().__init__()
|
||||
self.ip = ip
|
||||
self.model = "M59 VH30"
|
||||
self.nominal_chips = 0
|
||||
warnings.warn(
|
||||
"Unknown chip count for miner type M59 VH30, please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
|
||||
)
|
||||
self.fan_count = 2
|
||||
@@ -12,4 +12,35 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from .M50 import M50, M50VH50
|
||||
from .M50 import (
|
||||
M50VG30,
|
||||
M50VH10,
|
||||
M50VH20,
|
||||
M50VH30,
|
||||
M50VH40,
|
||||
M50VH50,
|
||||
M50VH60,
|
||||
M50VH70,
|
||||
M50VH80,
|
||||
M50VJ10,
|
||||
M50VJ20,
|
||||
M50VJ30,
|
||||
)
|
||||
from .M50S import (
|
||||
M50SVH10,
|
||||
M50SVH20,
|
||||
M50SVH30,
|
||||
M50SVH40,
|
||||
M50SVH50,
|
||||
M50SVJ10,
|
||||
M50SVJ20,
|
||||
M50SVJ30,
|
||||
)
|
||||
from .M50S_Plus import M50SPlusVH30, M50SPlusVH40, M50SPlusVJ30
|
||||
from .M53 import M53VH30
|
||||
from .M53S import M53SVH30
|
||||
from .M53S_Plus import M53SPlusVJ30
|
||||
from .M56 import M56VH30
|
||||
from .M56S import M56SVH30
|
||||
from .M56S_Plus import M56SPlusVJ30
|
||||
from .M59 import M59VH30
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from typing import Union, Optional
|
||||
from typing import Optional, Union
|
||||
|
||||
import httpx
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
import asyncio
|
||||
import json
|
||||
from typing import List, Union, Optional
|
||||
from typing import List, Optional, Union
|
||||
|
||||
import httpx
|
||||
|
||||
@@ -165,9 +165,9 @@ class BMMinerX19(BMMiner):
|
||||
except KeyError:
|
||||
rate_unit = "GH"
|
||||
if rate_unit == "GH":
|
||||
return round(ideal_rate/1000, 2)
|
||||
return round(ideal_rate / 1000, 2)
|
||||
if rate_unit == "MH":
|
||||
return round(ideal_rate/1000000, 2)
|
||||
return round(ideal_rate / 1000000, 2)
|
||||
else:
|
||||
return round(ideal_rate, 2)
|
||||
except (KeyError, IndexError):
|
||||
|
||||
@@ -17,10 +17,10 @@ from typing import List, Optional
|
||||
import asyncssh
|
||||
|
||||
from pyasic.data import HashBoard, MinerData
|
||||
from pyasic.errors import APIError
|
||||
from pyasic.miners._backends import Hiveon # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import T9 # noqa - Ignore access to _module
|
||||
from pyasic.settings import PyasicSettings
|
||||
from pyasic.errors import APIError
|
||||
|
||||
|
||||
class HiveonT9(Hiveon, T9):
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
import ipaddress
|
||||
import logging
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import List, TypeVar, Tuple, Optional
|
||||
from typing import List, Optional, Tuple, TypeVar
|
||||
|
||||
import asyncssh
|
||||
|
||||
from pyasic.config import MinerConfig
|
||||
from pyasic.data import MinerData, HashBoard
|
||||
from pyasic.data import HashBoard, MinerData
|
||||
from pyasic.data.error_codes import MinerErrorData
|
||||
|
||||
|
||||
@@ -310,7 +310,6 @@ class BaseMiner(ABC):
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
async def get_data(self, allow_warning: bool = False) -> MinerData:
|
||||
"""Get data from the miner in the form of [`MinerData`][pyasic.data.MinerData].
|
||||
|
||||
|
||||
@@ -14,8 +14,8 @@
|
||||
import json
|
||||
import logging
|
||||
import warnings
|
||||
from typing import List, Union, Optional, Tuple
|
||||
from collections import namedtuple
|
||||
from typing import List, Optional, Tuple, Union
|
||||
|
||||
import httpx
|
||||
|
||||
|
||||
@@ -141,97 +141,310 @@ MINER_CLASSES = {
|
||||
"BMMiner": BMMinerT19,
|
||||
"CGMiner": CGMinerT19,
|
||||
},
|
||||
"M20": {
|
||||
"Default": BTMinerM20,
|
||||
"BTMiner": BTMinerM20,
|
||||
"10": BTMinerM20V10,
|
||||
},
|
||||
"M20": {"Default": BTMinerM20V10, "BTMiner": BTMinerM20V10, "10": BTMinerM20V10},
|
||||
"M20S": {
|
||||
"Default": BTMinerM20S,
|
||||
"BTMiner": BTMinerM20S,
|
||||
"Default": BTMinerM20SV10,
|
||||
"BTMiner": BTMinerM20SV10,
|
||||
"10": BTMinerM20SV10,
|
||||
"20": BTMinerM20SV20,
|
||||
"30": BTMinerM20SV30,
|
||||
},
|
||||
"M20S+": {
|
||||
"Default": BTMinerM20SPlus,
|
||||
"BTMiner": BTMinerM20SPlus,
|
||||
},
|
||||
"M21": {
|
||||
"Default": BTMinerM21,
|
||||
"BTMiner": BTMinerM21,
|
||||
"Default": BTMinerM20SPlusV30,
|
||||
"BTMiner": BTMinerM20SPlusV30,
|
||||
"30": BTMinerM20SPlusV30,
|
||||
},
|
||||
"M21": {"Default": BTMinerM21V10, "BTMiner": BTMinerM21V10, "10": BTMinerM21V10},
|
||||
"M21S": {
|
||||
"Default": BTMinerM21S,
|
||||
"BTMiner": BTMinerM21S,
|
||||
"60": BTMinerM21SV60,
|
||||
"Default": BTMinerM21SV20,
|
||||
"BTMiner": BTMinerM21SV20,
|
||||
"20": BTMinerM21SV20,
|
||||
"60": BTMinerM21SV60,
|
||||
"70": BTMinerM21SV70,
|
||||
},
|
||||
"M21S+": {
|
||||
"Default": BTMinerM21SPlus,
|
||||
"BTMiner": BTMinerM21SPlus,
|
||||
"Default": BTMinerM21SPlusV20,
|
||||
"BTMiner": BTMinerM21SPlusV20,
|
||||
"20": BTMinerM21SPlusV20,
|
||||
},
|
||||
"M29": {"Default": BTMinerM29V10, "BTMiner": BTMinerM29V10, "10": BTMinerM29V10},
|
||||
"M30": {
|
||||
"Default": BTMinerM30V10,
|
||||
"BTMiner": BTMinerM30V10,
|
||||
"10": BTMinerM30V10,
|
||||
"20": BTMinerM30V20,
|
||||
},
|
||||
"M30S": {
|
||||
"Default": BTMinerM30S,
|
||||
"BTMiner": BTMinerM30S,
|
||||
"Default": BTMinerM30SV10,
|
||||
"BTMiner": BTMinerM30SV10,
|
||||
"10": BTMinerM30SV10,
|
||||
"20": BTMinerM30SV20,
|
||||
"30": BTMinerM30SV30,
|
||||
"40": BTMinerM30SV40,
|
||||
"50": BTMinerM30SV50,
|
||||
"G20": BTMinerM30SVG20,
|
||||
"E20": BTMinerM30SVE20,
|
||||
"60": BTMinerM30SV60,
|
||||
"70": BTMinerM30SV70,
|
||||
"80": BTMinerM30SV80,
|
||||
"E10": BTMinerM30SVE10,
|
||||
"G10": BTMinerM30SVG10
|
||||
"E20": BTMinerM30SVE20,
|
||||
"E30": BTMinerM30SVE30,
|
||||
"E40": BTMinerM30SVE40,
|
||||
"E50": BTMinerM30SVE50,
|
||||
"E60": BTMinerM30SVE60,
|
||||
"E70": BTMinerM30SVE70,
|
||||
"F10": BTMinerM30SVF10,
|
||||
"F20": BTMinerM30SVF20,
|
||||
"F30": BTMinerM30SVF30,
|
||||
"G10": BTMinerM30SVG10,
|
||||
"G20": BTMinerM30SVG20,
|
||||
"G30": BTMinerM30SVG30,
|
||||
"G40": BTMinerM30SVG40,
|
||||
"H10": BTMinerM30SVH10,
|
||||
"H20": BTMinerM30SVH20,
|
||||
"H30": BTMinerM30SVH30,
|
||||
"H40": BTMinerM30SVH40,
|
||||
"H50": BTMinerM30SVH50,
|
||||
"H60": BTMinerM30SVH60,
|
||||
"I20": BTMinerM30SVI20,
|
||||
},
|
||||
"M30S+": {
|
||||
"Default": BTMinerM30SPlus,
|
||||
"BTMiner": BTMinerM30SPlus,
|
||||
"F20": BTMinerM30SPlusVF20,
|
||||
"Default": BTMinerM30SPlusV10,
|
||||
"BTMiner": BTMinerM30SPlusV10,
|
||||
"10": BTMinerM30SPlusV10,
|
||||
"20": BTMinerM30SPlusV20,
|
||||
"30": BTMinerM30SPlusV30,
|
||||
"40": BTMinerM30SPlusV40,
|
||||
"50": BTMinerM30SPlusV50,
|
||||
"60": BTMinerM30SPlusV60,
|
||||
"70": BTMinerM30SPlusV70,
|
||||
"80": BTMinerM30SPlusV80,
|
||||
"90": BTMinerM30SPlusV90,
|
||||
"100": BTMinerM30SPlusV100,
|
||||
"E30": BTMinerM30SPlusVE30,
|
||||
"E40": BTMinerM30SPlusVE40,
|
||||
"E50": BTMinerM30SPlusVE50,
|
||||
"E60": BTMinerM30SPlusVE60,
|
||||
"E70": BTMinerM30SPlusVE70,
|
||||
"E80": BTMinerM30SPlusVE80,
|
||||
"E90": BTMinerM30SPlusVE90,
|
||||
"E100": BTMinerM30SPlusVE100,
|
||||
"F20": BTMinerM30SPlusVF20,
|
||||
"F30": BTMinerM30SPlusVF30,
|
||||
"G30": BTMinerM30SPlusVG30,
|
||||
"G40": BTMinerM30SPlusVG40,
|
||||
"G50": BTMinerM30SPlusVG50,
|
||||
"G60": BTMinerM30SPlusVG60,
|
||||
"H10": BTMinerM30SPlusVH10,
|
||||
"H20": BTMinerM30SPlusVH20,
|
||||
"H30": BTMinerM30SPlusVH30,
|
||||
"H40": BTMinerM30SPlusVH40,
|
||||
"H50": BTMinerM30SPlusVH50,
|
||||
"H60": BTMinerM30SPlusVH60,
|
||||
},
|
||||
"M30S++": {
|
||||
"Default": BTMinerM30SPlusPlus,
|
||||
"BTMiner": BTMinerM30SPlusPlus,
|
||||
"G40": BTMinerM30SPlusPlusVG40,
|
||||
"Default": BTMinerM30SPlusPlusV10,
|
||||
"BTMiner": BTMinerM30SPlusPlusV10,
|
||||
"10": BTMinerM30SPlusPlusV10,
|
||||
"20": BTMinerM30SPlusPlusV20,
|
||||
"E30": BTMinerM30SPlusPlusVE30,
|
||||
"E40": BTMinerM30SPlusPlusVE40,
|
||||
"E50": BTMinerM30SPlusPlusVE50,
|
||||
"F40": BTMinerM30SPlusPlusVF40,
|
||||
"G30": BTMinerM30SPlusPlusVG30,
|
||||
"G40": BTMinerM30SPlusPlusVG40,
|
||||
"G50": BTMinerM30SPlusPlusVG50,
|
||||
"H10": BTMinerM30SPlusPlusVH10,
|
||||
"H20": BTMinerM30SPlusPlusVH20,
|
||||
"H30": BTMinerM30SPlusPlusVH30,
|
||||
"H40": BTMinerM30SPlusPlusVH40,
|
||||
"H50": BTMinerM30SPlusPlusVH50,
|
||||
"H60": BTMinerM30SPlusPlusVH60,
|
||||
"H70": BTMinerM30SPlusPlusVH70,
|
||||
"H80": BTMinerM30SPlusPlusVH80,
|
||||
"H90": BTMinerM30SPlusPlusVH90,
|
||||
"H100": BTMinerM30SPlusPlusVH100,
|
||||
"J20": BTMinerM30SPlusPlusVJ20,
|
||||
"J30": BTMinerM30SPlusPlusVJ30,
|
||||
},
|
||||
"M31": {
|
||||
"Default": BTMinerM31V10,
|
||||
"BTMiner": BTMinerM31V10,
|
||||
"10": BTMinerM31V10,
|
||||
"20": BTMinerM31V20,
|
||||
},
|
||||
"M31S": {
|
||||
"Default": BTMinerM31S,
|
||||
"BTMiner": BTMinerM31S,
|
||||
"Default": BTMinerM31SV10,
|
||||
"BTMiner": BTMinerM31SV10,
|
||||
"10": BTMinerM31SV10,
|
||||
"20": BTMinerM31SV20,
|
||||
"30": BTMinerM31SV30,
|
||||
"40": BTMinerM31SV40,
|
||||
"50": BTMinerM31SV50,
|
||||
"60": BTMinerM31SV60,
|
||||
"70": BTMinerM31SV70,
|
||||
"80": BTMinerM31SV80,
|
||||
"90": BTMinerM31SV90,
|
||||
"E10": BTMinerM31SVE10,
|
||||
"E20": BTMinerM31SVE20,
|
||||
"E30": BTMinerM31SVE30,
|
||||
},
|
||||
"M31SE": {
|
||||
"Default": BTMinerM31SEV10,
|
||||
"BTMiner": BTMinerM31SEV10,
|
||||
"10": BTMinerM31SEV10,
|
||||
"20": BTMinerM31SEV20,
|
||||
"30": BTMinerM31SEV30,
|
||||
},
|
||||
"M31H": {
|
||||
"Default": BTMinerM31HV40,
|
||||
"BTMiner": BTMinerM31HV40,
|
||||
"40": BTMinerM31HV40,
|
||||
},
|
||||
"M31S+": {
|
||||
"Default": BTMinerM31SPlus,
|
||||
"BTMiner": BTMinerM31SPlus,
|
||||
"E20": BTMinerM31SPlusVE20,
|
||||
"Default": BTMinerM31SPlusV10,
|
||||
"BTMiner": BTMinerM31SPlusV10,
|
||||
"10": BTMinerM31SPlusV10,
|
||||
"20": BTMinerM31SPlusV20,
|
||||
"30": BTMinerM31SPlusV30,
|
||||
"40": BTMinerM31SPlusV40,
|
||||
"50": BTMinerM31SPlusV50,
|
||||
"60": BTMinerM31SPlusV60,
|
||||
"80": BTMinerM31SPlusV80,
|
||||
"90": BTMinerM31SPlusV90,
|
||||
},
|
||||
"M32S": {
|
||||
"Default": BTMinerM32S,
|
||||
"BTMiner": BTMinerM32S,
|
||||
"100": BTMinerM31SPlusV100,
|
||||
"E10": BTMinerM31SPlusVE10,
|
||||
"E20": BTMinerM31SPlusVE20,
|
||||
"E30": BTMinerM31SPlusVE30,
|
||||
"E40": BTMinerM31SPlusVE40,
|
||||
"E50": BTMinerM31SPlusVE50,
|
||||
"E60": BTMinerM31SPlusVE60,
|
||||
"E80": BTMinerM31SPlusVE80,
|
||||
"F20": BTMinerM31SPlusVF20,
|
||||
"F30": BTMinerM31SPlusVF30,
|
||||
"G20": BTMinerM31SPlusVG20,
|
||||
"G30": BTMinerM31SPlusVG30,
|
||||
},
|
||||
"M32": {
|
||||
"Default": BTMinerM32,
|
||||
"BTMiner": BTMinerM32,
|
||||
"Default": BTMinerM32V10,
|
||||
"BTMiner": BTMinerM32V10,
|
||||
"10": BTMinerM32V10,
|
||||
"20": BTMinerM32V20,
|
||||
},
|
||||
"M33": {
|
||||
"Default": BTMinerM33V10,
|
||||
"BTMiner": BTMinerM33V10,
|
||||
"10": BTMinerM33V10,
|
||||
"20": BTMinerM33V20,
|
||||
"30": BTMinerM33V30,
|
||||
},
|
||||
"M33S": {
|
||||
"Default": BTMinerM33SVG30,
|
||||
"BTMiner": BTMinerM33SVG30,
|
||||
"G30": BTMinerM33SVG30,
|
||||
},
|
||||
"M33S+": {
|
||||
"Default": BTMinerM33SPlusVH20,
|
||||
"BTMiner": BTMinerM33SPlusVH20,
|
||||
"H20": BTMinerM33SPlusVH20,
|
||||
"H30": BTMinerM33SPlusVH30,
|
||||
},
|
||||
"M33S++": {
|
||||
"Default": BTMinerM33SPlusPlusVH20,
|
||||
"BTMiner": BTMinerM33SPlusPlusVH20,
|
||||
"H20": BTMinerM33SPlusPlusVH20,
|
||||
"H30": BTMinerM33SPlusPlusVH30,
|
||||
"G40": BTMinerM33SPlusPlusVG40,
|
||||
},
|
||||
"M34S+": {
|
||||
"Default": BTMinerM34SPlus,
|
||||
"BTMiner": BTMinerM34SPlus,
|
||||
"Default": BTMinerM34SPlusVE10,
|
||||
"BTMiner": BTMinerM34SPlusVE10,
|
||||
"E10": BTMinerM34SPlusVE10,
|
||||
},
|
||||
"M36S": {
|
||||
"Default": BTMinerM36SVE10,
|
||||
"BTMiner": BTMinerM36SVE10,
|
||||
"E10": BTMinerM36SVE10,
|
||||
},
|
||||
"M36S+": {
|
||||
"Default": BTMinerM36SPlusVG30,
|
||||
"BTMiner": BTMinerM36SPlusVG30,
|
||||
"G30": BTMinerM36SPlusVG30,
|
||||
},
|
||||
"M36S++": {
|
||||
"Default": BTMinerM36SPlusPlusVH30,
|
||||
"BTMiner": BTMinerM36SPlusPlusVH30,
|
||||
"H30": BTMinerM36SPlusPlusVH30,
|
||||
},
|
||||
"M39": {"Default": BTMinerM39V20, "BTMiner": BTMinerM39V20, "20": BTMinerM39V20},
|
||||
"M50": {
|
||||
"Default": BTMinerM50,
|
||||
"BTMiner": BTMinerM50,
|
||||
"Default": BTMinerM50VG30,
|
||||
"BTMiner": BTMinerM50VG30,
|
||||
"G30": BTMinerM50VG30,
|
||||
"H10": BTMinerM50VH10,
|
||||
"H20": BTMinerM50VH20,
|
||||
"H30": BTMinerM50VH30,
|
||||
"H40": BTMinerM50VH40,
|
||||
"H50": BTMinerM50VH50,
|
||||
"H60": BTMinerM50VH60,
|
||||
"H70": BTMinerM50VH70,
|
||||
"H80": BTMinerM50VH80,
|
||||
"J10": BTMinerM50VJ10,
|
||||
"J20": BTMinerM50VJ20,
|
||||
"J30": BTMinerM50VJ30,
|
||||
},
|
||||
"M50S": {
|
||||
"Default": BTMinerM50SVJ10,
|
||||
"BTMiner": BTMinerM50SVJ10,
|
||||
"J10": BTMinerM50SVJ10,
|
||||
"J20": BTMinerM50SVJ20,
|
||||
"J30": BTMinerM50SVJ30,
|
||||
"H10": BTMinerM50SVH10,
|
||||
"H20": BTMinerM50SVH20,
|
||||
"H30": BTMinerM50SVH30,
|
||||
"H40": BTMinerM50SVH40,
|
||||
"H50": BTMinerM50SVH50,
|
||||
},
|
||||
"M50S+": {
|
||||
"Default": BTMinerM50SPlusVH30,
|
||||
"BTMiner": BTMinerM50SPlusVH30,
|
||||
"H30": BTMinerM50SPlusVH30,
|
||||
"H40": BTMinerM50SPlusVH40,
|
||||
"J30": BTMinerM50SPlusVJ30,
|
||||
},
|
||||
"M53": {
|
||||
"Default": BTMinerM53VH30,
|
||||
"BTMiner": BTMinerM53VH30,
|
||||
"H30": BTMinerM53VH30,
|
||||
},
|
||||
"M53S": {
|
||||
"Default": BTMinerM53SVH30,
|
||||
"BTMiner": BTMinerM53SVH30,
|
||||
"H30": BTMinerM53SVH30,
|
||||
},
|
||||
"M53S+": {
|
||||
"Default": BTMinerM53SPlusVJ30,
|
||||
"BTMiner": BTMinerM53SPlusVJ30,
|
||||
"J30": BTMinerM53SPlusVJ30,
|
||||
},
|
||||
"M56": {
|
||||
"Default": BTMinerM56VH30,
|
||||
"BTMiner": BTMinerM56VH30,
|
||||
"H30": BTMinerM56VH30,
|
||||
},
|
||||
"M56S": {
|
||||
"Default": BTMinerM56SVH30,
|
||||
"BTMiner": BTMinerM56SVH30,
|
||||
"H30": BTMinerM56SVH30,
|
||||
},
|
||||
"M56S+": {
|
||||
"Default": BTMinerM56SPlusVJ30,
|
||||
"BTMiner": BTMinerM56SPlusVJ30,
|
||||
"J30": BTMinerM56SPlusVJ30,
|
||||
},
|
||||
"M59": {
|
||||
"Default": BTMinerM59VH30,
|
||||
"BTMiner": BTMinerM59VH30,
|
||||
"H30": BTMinerM59VH30,
|
||||
},
|
||||
"AVALONMINER 721": {
|
||||
"Default": CGMinerAvalon721,
|
||||
|
||||
@@ -12,15 +12,15 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from typing import List, Tuple, Optional
|
||||
from collections import namedtuple
|
||||
from typing import List, Optional, Tuple
|
||||
|
||||
from pyasic.API.unknown import UnknownAPI
|
||||
from pyasic.config import MinerConfig
|
||||
from pyasic.data import MinerData, HashBoard
|
||||
from pyasic.data import HashBoard, MinerData
|
||||
from pyasic.data.error_codes import MinerErrorData
|
||||
from pyasic.miners.base import BaseMiner
|
||||
from pyasic.errors import APIError
|
||||
from pyasic.miners.base import BaseMiner
|
||||
|
||||
|
||||
class UnknownMiner(BaseMiner):
|
||||
|
||||
@@ -13,11 +13,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M20, M20V10 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM20(BTMiner, M20):
|
||||
pass
|
||||
from pyasic.miners._types import M20V10 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM20V10(BTMiner, M20V10):
|
||||
|
||||
@@ -14,19 +14,19 @@
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M20S,
|
||||
M20SV10,
|
||||
M20SV20,
|
||||
M20SV30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM20S(BTMiner, M20S):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM20SV10(BTMiner, M20SV10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM20SV20(BTMiner, M20SV20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM20SV30(BTMiner, M20SV30):
|
||||
pass
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M20SPlus # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M20SPlusV30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM20SPlus(BTMiner, M20SPlus):
|
||||
class BTMinerM20SPlusV30(BTMiner, M20SPlusV30):
|
||||
pass
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M21 # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M21V10 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM21(BTMiner, M21):
|
||||
class BTMinerM21V10(BTMiner, M21V10):
|
||||
pass
|
||||
|
||||
@@ -14,19 +14,19 @@
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M21S,
|
||||
M21SV20,
|
||||
M21SV60,
|
||||
M21SV70,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM21S(BTMiner, M21S):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM21SV20(BTMiner, M21SV20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM21SV60(BTMiner, M21SV60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM21SV70(BTMiner, M21SV70):
|
||||
pass
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M21SPlus # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M21SPlusV20 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM21SPlus(BTMiner, M21SPlus):
|
||||
class BTMinerM21SPlusV20(BTMiner, M21SPlusV20):
|
||||
pass
|
||||
|
||||
20
pyasic/miners/whatsminer/btminer/M2X/M29.py
Normal file
20
pyasic/miners/whatsminer/btminer/M2X/M29.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M29V10 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM29V10(BTMiner, M29V10):
|
||||
pass
|
||||
@@ -12,9 +12,10 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from .M20 import BTMinerM20, BTMinerM20V10
|
||||
from .M20S import BTMinerM20S, BTMinerM20SV10, BTMinerM20SV20
|
||||
from .M20S_Plus import BTMinerM20SPlus
|
||||
from .M21 import BTMinerM21
|
||||
from .M21S import BTMinerM21S, BTMinerM21SV20, BTMinerM21SV60
|
||||
from .M21S_Plus import BTMinerM21SPlus
|
||||
from .M20 import BTMinerM20V10
|
||||
from .M20S import BTMinerM20SV10, BTMinerM20SV20, BTMinerM20SV30
|
||||
from .M20S_Plus import BTMinerM20SPlusV30
|
||||
from .M21 import BTMinerM21V10
|
||||
from .M21S import BTMinerM21SV20, BTMinerM21SV60, BTMinerM21SV70
|
||||
from .M21S_Plus import BTMinerM21SPlusV20
|
||||
from .M29 import BTMinerM29V10
|
||||
|
||||
24
pyasic/miners/whatsminer/btminer/M3X/M30.py
Normal file
24
pyasic/miners/whatsminer/btminer/M3X/M30.py
Normal file
@@ -0,0 +1,24 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M30V10, M30V20 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM30V10(BTMiner, M30V10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30V20(BTMiner, M30V20):
|
||||
pass
|
||||
@@ -14,16 +14,67 @@
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M30S,
|
||||
M30SV10,
|
||||
M30SV20,
|
||||
M30SV30,
|
||||
M30SV40,
|
||||
M30SV50,
|
||||
M30SV60,
|
||||
M30SV70,
|
||||
M30SV80,
|
||||
M30SVE10,
|
||||
M30SVE20,
|
||||
M30SVG20,
|
||||
M30SVE30,
|
||||
M30SVE40,
|
||||
M30SVE50,
|
||||
M30SVE60,
|
||||
M30SVE70,
|
||||
M30SVF10,
|
||||
M30SVF20,
|
||||
M30SVF30,
|
||||
M30SVG10,
|
||||
M30SVG20,
|
||||
M30SVG30,
|
||||
M30SVG40,
|
||||
M30SVH10,
|
||||
M30SVH20,
|
||||
M30SVH30,
|
||||
M30SVH40,
|
||||
M30SVH50,
|
||||
M30SVH60,
|
||||
M30SVI20,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM30S(BTMiner, M30S):
|
||||
class BTMinerM30SV10(BTMiner, M30SV10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV20(BTMiner, M30SV20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV30(BTMiner, M30SV30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV40(BTMiner, M30SV40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV50(BTMiner, M30SV50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV60(BTMiner, M30SV60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV70(BTMiner, M30SV70):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV80(BTMiner, M30SV80):
|
||||
pass
|
||||
|
||||
|
||||
@@ -31,6 +82,42 @@ class BTMinerM30SVE10(BTMiner, M30SVE10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVE20(BTMiner, M30SVE20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVE30(BTMiner, M30SVE30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVE40(BTMiner, M30SVE40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVE50(BTMiner, M30SVE50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVE60(BTMiner, M30SVE60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVE70(BTMiner, M30SVE70):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVF10(BTMiner, M30SVF10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVF20(BTMiner, M30SVF20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVF30(BTMiner, M30SVF30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVG10(BTMiner, M30SVG10):
|
||||
pass
|
||||
|
||||
@@ -39,9 +126,37 @@ class BTMinerM30SVG20(BTMiner, M30SVG20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVE20(BTMiner, M30SVE20):
|
||||
class BTMinerM30SVG30(BTMiner, M30SVG30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SV50(BTMiner, M30SV50):
|
||||
class BTMinerM30SVG40(BTMiner, M30SVG40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVH10(BTMiner, M30SVH10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVH20(BTMiner, M30SVH20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVH30(BTMiner, M30SVH30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVH40(BTMiner, M30SVH40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVH50(BTMiner, M30SVH50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVH60(BTMiner, M30SVH60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SVI20(BTMiner, M30SVI20):
|
||||
pass
|
||||
|
||||
@@ -14,21 +14,81 @@
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M30SPlus,
|
||||
M30SPlusV10,
|
||||
M30SPlusV20,
|
||||
M30SPlusV30,
|
||||
M30SPlusV40,
|
||||
M30SPlusV50,
|
||||
M30SPlusV60,
|
||||
M30SPlusV70,
|
||||
M30SPlusV80,
|
||||
M30SPlusV90,
|
||||
M30SPlusV100,
|
||||
M30SPlusVE30,
|
||||
M30SPlusVE40,
|
||||
M30SPlusVE50,
|
||||
M30SPlusVE60,
|
||||
M30SPlusVE70,
|
||||
M30SPlusVE80,
|
||||
M30SPlusVE90,
|
||||
M30SPlusVE100,
|
||||
M30SPlusVF20,
|
||||
M30SPlusVG60,
|
||||
M30SPlusVF30,
|
||||
M30SPlusVG30,
|
||||
M30SPlusVG40,
|
||||
M30SPlusVG50,
|
||||
M30SPlusVG60,
|
||||
M30SPlusVH10,
|
||||
M30SPlusVH20,
|
||||
M30SPlusVH30,
|
||||
M30SPlusVH40,
|
||||
M30SPlusVH50,
|
||||
M30SPlusVH60,
|
||||
M30SPlusVH30
|
||||
M36SPlusVG30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM30SPlus(BTMiner, M30SPlus):
|
||||
class BTMinerM30SPlusV10(BTMiner, M30SPlusV10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVF20(BTMiner, M30SPlusVF20):
|
||||
class BTMinerM30SPlusV20(BTMiner, M30SPlusV20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV30(BTMiner, M30SPlusV30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV40(BTMiner, M30SPlusV40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV50(BTMiner, M30SPlusV50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV60(BTMiner, M30SPlusV60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV70(BTMiner, M30SPlusV70):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV80(BTMiner, M30SPlusV80):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV90(BTMiner, M30SPlusV90):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusV100(BTMiner, M30SPlusV100):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVE30(BTMiner, M30SPlusVE30):
|
||||
pass
|
||||
|
||||
|
||||
@@ -36,13 +96,77 @@ class BTMinerM30SPlusVE40(BTMiner, M30SPlusVE40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVE50(BTMiner, M30SPlusVE50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVE60(BTMiner, M30SPlusVE60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVE70(BTMiner, M30SPlusVE70):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVE80(BTMiner, M30SPlusVE80):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVE90(BTMiner, M30SPlusVE90):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVE100(BTMiner, M30SPlusVE100):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVF20(BTMiner, M30SPlusVF20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVF30(BTMiner, M30SPlusVF30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM36SPlusVG30(BTMiner, M36SPlusVG30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVG30(BTMiner, M30SPlusVG30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVG40(BTMiner, M30SPlusVG40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVG50(BTMiner, M30SPlusVG50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVG60(BTMiner, M30SPlusVG60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVH10(BTMiner, M30SPlusVH10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVH20(BTMiner, M30SPlusVH20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVH30(BTMiner, M30SPlusVH30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVH40(BTMiner, M30SPlusVH40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVH50(BTMiner, M30SPlusVH50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusVH60(BTMiner, M30SPlusVH60):
|
||||
pass
|
||||
|
||||
@@ -14,14 +14,51 @@
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M30SPlusPlus,
|
||||
M30SPlusPlusV10,
|
||||
M30SPlusPlusV20,
|
||||
M30SPlusPlusVE30,
|
||||
M30SPlusPlusVE40,
|
||||
M30SPlusPlusVE50,
|
||||
M30SPlusPlusVF40,
|
||||
M30SPlusPlusVG30,
|
||||
M30SPlusPlusVG40,
|
||||
M30SPlusPlusVG50,
|
||||
M30SPlusPlusVH10,
|
||||
M30SPlusPlusVH20,
|
||||
M30SPlusPlusVH30,
|
||||
M30SPlusPlusVH40,
|
||||
M30SPlusPlusVH50,
|
||||
M30SPlusPlusVH60,
|
||||
M30SPlusPlusVH70,
|
||||
M30SPlusPlusVH80,
|
||||
M30SPlusPlusVH90,
|
||||
M30SPlusPlusVH100,
|
||||
M30SPlusPlusVJ20,
|
||||
M30SPlusPlusVJ30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlus(BTMiner, M30SPlusPlus):
|
||||
class BTMinerM30SPlusPlusV10(BTMiner, M30SPlusPlusV10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusV20(BTMiner, M30SPlusPlusV20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVE30(BTMiner, M30SPlusPlusVE30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVE40(BTMiner, M30SPlusPlusVE40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVE50(BTMiner, M30SPlusPlusVE50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVF40(BTMiner, M30SPlusPlusVF40):
|
||||
pass
|
||||
|
||||
|
||||
@@ -33,5 +70,53 @@ class BTMinerM30SPlusPlusVG40(BTMiner, M30SPlusPlusVG40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVG50(BTMiner, M30SPlusPlusVG50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH10(BTMiner, M30SPlusPlusVH10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH20(BTMiner, M30SPlusPlusVH20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH30(BTMiner, M30SPlusPlusVH30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH40(BTMiner, M30SPlusPlusVH40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH50(BTMiner, M30SPlusPlusVH50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH60(BTMiner, M30SPlusPlusVH60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH70(BTMiner, M30SPlusPlusVH70):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH80(BTMiner, M30SPlusPlusVH80):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH90(BTMiner, M30SPlusPlusVH90):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVH100(BTMiner, M30SPlusPlusVH100):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVJ20(BTMiner, M30SPlusPlusVJ20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM30SPlusPlusVJ30(BTMiner, M30SPlusPlusVJ30):
|
||||
pass
|
||||
|
||||
24
pyasic/miners/whatsminer/btminer/M3X/M31.py
Normal file
24
pyasic/miners/whatsminer/btminer/M3X/M31.py
Normal file
@@ -0,0 +1,24 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M31V10, M31V20 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM31V10(BTMiner, M31V10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31V20(BTMiner, M31V20):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M3X/M31H.py
Normal file
20
pyasic/miners/whatsminer/btminer/M3X/M31H.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M31HV40 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM31HV40(BTMiner, M31HV40):
|
||||
pass
|
||||
@@ -13,16 +13,23 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import (
|
||||
M31S,
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M31SV10,
|
||||
M31SV20,
|
||||
M31SV30,
|
||||
M31SV40,
|
||||
M31SV50,
|
||||
M31SV60,
|
||||
M31SV70,
|
||||
) # noqa - Ignore access to _module
|
||||
M31SV80,
|
||||
M31SV90,
|
||||
M31SVE10,
|
||||
M31SVE20,
|
||||
M31SVE30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM31S(BTMiner, M31S):
|
||||
class BTMinerM31SV10(BTMiner, M31SV10):
|
||||
pass
|
||||
|
||||
|
||||
@@ -30,7 +37,15 @@ class BTMinerM31SV20(BTMiner, M31SV20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SV10(BTMiner, M31SV10):
|
||||
class BTMinerM31SV30(BTMiner, M31SV30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SV40(BTMiner, M31SV40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SV50(BTMiner, M31SV50):
|
||||
pass
|
||||
|
||||
|
||||
@@ -40,3 +55,23 @@ class BTMinerM31SV60(BTMiner, M31SV60):
|
||||
|
||||
class BTMinerM31SV70(BTMiner, M31SV70):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SV80(BTMiner, M31SV80):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SV90(BTMiner, M31SV90):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SVE10(BTMiner, M31SVE10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SVE20(BTMiner, M31SVE20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SVE30(BTMiner, M31SVE30):
|
||||
pass
|
||||
|
||||
32
pyasic/miners/whatsminer/btminer/M3X/M31SE.py
Normal file
32
pyasic/miners/whatsminer/btminer/M3X/M31SE.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M31SEV10,
|
||||
M31SEV20,
|
||||
M31SEV30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM31SEV10(BTMiner, M31SEV10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SEV20(BTMiner, M31SEV20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SEV30(BTMiner, M31SEV30):
|
||||
pass
|
||||
@@ -14,21 +14,34 @@
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M31SPlus,
|
||||
M31SPlusV10,
|
||||
M31SPlusV20,
|
||||
M31SPlusV30,
|
||||
M31SPlusV40,
|
||||
M31SPlusV50,
|
||||
M31SPlusV60,
|
||||
M31SPlusV80,
|
||||
M31SPlusV90,
|
||||
M31SPlusV100,
|
||||
M31SPlusVE10,
|
||||
M31SPlusVE20,
|
||||
M31SPlusVE30,
|
||||
M31SPlusVE40,
|
||||
M31SPlusVE50,
|
||||
M31SPlusVE60,
|
||||
M31SPlusVE80,
|
||||
M31SPlusVF20,
|
||||
M31SPlusVF30,
|
||||
M31SPlusVG20,
|
||||
M31SPlusVG30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM31SPlus(BTMiner, M31SPlus):
|
||||
class BTMinerM31SPlusV10(BTMiner, M31SPlusV10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE20(BTMiner, M31SPlusVE20):
|
||||
class BTMinerM31SPlusV20(BTMiner, M31SPlusV20):
|
||||
pass
|
||||
|
||||
|
||||
@@ -40,6 +53,10 @@ class BTMinerM31SPlusV40(BTMiner, M31SPlusV40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusV50(BTMiner, M31SPlusV50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusV60(BTMiner, M31SPlusV60):
|
||||
pass
|
||||
|
||||
@@ -50,3 +67,51 @@ class BTMinerM31SPlusV80(BTMiner, M31SPlusV80):
|
||||
|
||||
class BTMinerM31SPlusV90(BTMiner, M31SPlusV90):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusV100(BTMiner, M31SPlusV100):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE10(BTMiner, M31SPlusVE10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE20(BTMiner, M31SPlusVE20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE30(BTMiner, M31SPlusVE30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE40(BTMiner, M31SPlusVE40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE50(BTMiner, M31SPlusVE50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE60(BTMiner, M31SPlusVE60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVE80(BTMiner, M31SPlusVE80):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVF20(BTMiner, M31SPlusVF20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVF30(BTMiner, M31SPlusVF30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVG20(BTMiner, M31SPlusVG20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM31SPlusVG30(BTMiner, M31SPlusVG30):
|
||||
pass
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M32, M32V20 # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M32V10, M32V20 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM32(BTMiner, M32):
|
||||
class BTMinerM32V10(BTMiner, M32V10):
|
||||
pass
|
||||
|
||||
|
||||
|
||||
32
pyasic/miners/whatsminer/btminer/M3X/M33.py
Normal file
32
pyasic/miners/whatsminer/btminer/M3X/M33.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M33V10,
|
||||
M33V20,
|
||||
M33V30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM33V10(BTMiner, M33V10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM33V20(BTMiner, M33V20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM33V30(BTMiner, M33V30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M3X/M33S.py
Normal file
20
pyasic/miners/whatsminer/btminer/M3X/M33S.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M33SVG30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM33SVG30(BTMiner, M33SVG30):
|
||||
pass
|
||||
27
pyasic/miners/whatsminer/btminer/M3X/M33S_Plus.py
Normal file
27
pyasic/miners/whatsminer/btminer/M3X/M33S_Plus.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M33SPlusVH20,
|
||||
M33SPlusVH30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM33SPlusVH20(BTMiner, M33SPlusVH20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM33SPlusVH30(BTMiner, M33SPlusVH30):
|
||||
pass
|
||||
32
pyasic/miners/whatsminer/btminer/M3X/M33S_Plus_Plus.py
Normal file
32
pyasic/miners/whatsminer/btminer/M3X/M33S_Plus_Plus.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M33SPlusPlusVG40,
|
||||
M33SPlusPlusVH20,
|
||||
M33SPlusPlusVH30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM33SPlusPlusVH20(BTMiner, M33SPlusPlusVH20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM33SPlusPlusVH30(BTMiner, M33SPlusPlusVH30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM33SPlusPlusVG40(BTMiner, M33SPlusPlusVG40):
|
||||
pass
|
||||
@@ -13,14 +13,7 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M34SPlus,
|
||||
M34SPlusVE10,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM34SPlus(BTMiner, M34SPlus):
|
||||
pass
|
||||
from pyasic.miners._types import M34SPlusVE10 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM34SPlusVE10(BTMiner, M34SPlusVE10):
|
||||
|
||||
20
pyasic/miners/whatsminer/btminer/M3X/M36S.py
Normal file
20
pyasic/miners/whatsminer/btminer/M3X/M36S.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M36SVE10 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM36SVE10(BTMiner, M36SVE10):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M3X/M36S_Plus.py
Normal file
20
pyasic/miners/whatsminer/btminer/M3X/M36S_Plus.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M36SPlusVG30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM36SPlusVG30(BTMiner, M36SPlusVG30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M3X/M36S_Plus_Plus.py
Normal file
20
pyasic/miners/whatsminer/btminer/M3X/M36S_Plus_Plus.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M36SPlusPlusVH30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM36SPlusPlusVH30(BTMiner, M36SPlusPlusVH30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M3X/M39.py
Normal file
20
pyasic/miners/whatsminer/btminer/M3X/M39.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M39V20 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM39V20(BTMiner, M39V20):
|
||||
pass
|
||||
@@ -12,45 +12,144 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from .M30 import BTMinerM30V10, BTMinerM30V20
|
||||
from .M30S import (
|
||||
BTMinerM30S,
|
||||
BTMinerM30SV10,
|
||||
BTMinerM30SV20,
|
||||
BTMinerM30SV30,
|
||||
BTMinerM30SV40,
|
||||
BTMinerM30SV50,
|
||||
BTMinerM30SV60,
|
||||
BTMinerM30SV70,
|
||||
BTMinerM30SV80,
|
||||
BTMinerM30SVE10,
|
||||
BTMinerM30SVE20,
|
||||
BTMinerM30SVG20,
|
||||
BTMinerM30SVE30,
|
||||
BTMinerM30SVE40,
|
||||
BTMinerM30SVE50,
|
||||
BTMinerM30SVE60,
|
||||
BTMinerM30SVE70,
|
||||
BTMinerM30SVF10,
|
||||
BTMinerM30SVF20,
|
||||
BTMinerM30SVF30,
|
||||
BTMinerM30SVG10,
|
||||
BTMinerM30SVG20,
|
||||
BTMinerM30SVG30,
|
||||
BTMinerM30SVG40,
|
||||
BTMinerM30SVH10,
|
||||
BTMinerM30SVH20,
|
||||
BTMinerM30SVH30,
|
||||
BTMinerM30SVH40,
|
||||
BTMinerM30SVH50,
|
||||
BTMinerM30SVH60,
|
||||
BTMinerM30SVI20,
|
||||
)
|
||||
from .M30S_Plus import (
|
||||
BTMinerM30SPlus,
|
||||
BTMinerM30SPlusV10,
|
||||
BTMinerM30SPlusV20,
|
||||
BTMinerM30SPlusV30,
|
||||
BTMinerM30SPlusV40,
|
||||
BTMinerM30SPlusV50,
|
||||
BTMinerM30SPlusV60,
|
||||
BTMinerM30SPlusV70,
|
||||
BTMinerM30SPlusV80,
|
||||
BTMinerM30SPlusV90,
|
||||
BTMinerM30SPlusV100,
|
||||
BTMinerM30SPlusVE30,
|
||||
BTMinerM30SPlusVE40,
|
||||
BTMinerM30SPlusVE50,
|
||||
BTMinerM30SPlusVE60,
|
||||
BTMinerM30SPlusVE70,
|
||||
BTMinerM30SPlusVE80,
|
||||
BTMinerM30SPlusVE90,
|
||||
BTMinerM30SPlusVE100,
|
||||
BTMinerM30SPlusVF20,
|
||||
BTMinerM30SPlusVF30,
|
||||
BTMinerM30SPlusVG30,
|
||||
BTMinerM30SPlusVG40,
|
||||
BTMinerM30SPlusVG50,
|
||||
BTMinerM30SPlusVG60,
|
||||
BTMinerM30SPlusVH10,
|
||||
BTMinerM30SPlusVH20,
|
||||
BTMinerM30SPlusVH30,
|
||||
BTMinerM30SPlusVH60
|
||||
BTMinerM30SPlusVH40,
|
||||
BTMinerM30SPlusVH50,
|
||||
BTMinerM30SPlusVH60,
|
||||
BTMinerM36SPlusVG30,
|
||||
)
|
||||
from .M30S_Plus_Plus import (
|
||||
BTMinerM30SPlusPlus,
|
||||
BTMinerM30SPlusPlusV10,
|
||||
BTMinerM30SPlusPlusV20,
|
||||
BTMinerM30SPlusPlusVE30,
|
||||
BTMinerM30SPlusPlusVE40,
|
||||
BTMinerM30SPlusPlusVE50,
|
||||
BTMinerM30SPlusPlusVF40,
|
||||
BTMinerM30SPlusPlusVG30,
|
||||
BTMinerM30SPlusPlusVG40,
|
||||
BTMinerM30SPlusPlusVG50,
|
||||
BTMinerM30SPlusPlusVH10,
|
||||
BTMinerM30SPlusPlusVH20,
|
||||
BTMinerM30SPlusPlusVH30,
|
||||
BTMinerM30SPlusPlusVH40,
|
||||
BTMinerM30SPlusPlusVH50,
|
||||
BTMinerM30SPlusPlusVH60,
|
||||
BTMinerM30SPlusPlusVH70,
|
||||
BTMinerM30SPlusPlusVH80,
|
||||
BTMinerM30SPlusPlusVH90,
|
||||
BTMinerM30SPlusPlusVH100,
|
||||
BTMinerM30SPlusPlusVJ20,
|
||||
BTMinerM30SPlusPlusVJ30,
|
||||
)
|
||||
from .M31 import BTMinerM31V10, BTMinerM31V20
|
||||
from .M31H import BTMinerM31HV40
|
||||
from .M31S import (
|
||||
BTMinerM31S,
|
||||
BTMinerM31SV10,
|
||||
BTMinerM31SV20,
|
||||
BTMinerM31SV30,
|
||||
BTMinerM31SV40,
|
||||
BTMinerM31SV50,
|
||||
BTMinerM31SV60,
|
||||
BTMinerM31SV70,
|
||||
BTMinerM31SV80,
|
||||
BTMinerM31SV90,
|
||||
BTMinerM31SVE10,
|
||||
BTMinerM31SVE20,
|
||||
BTMinerM31SVE30,
|
||||
)
|
||||
from .M31S_Plus import (
|
||||
BTMinerM31SPlus,
|
||||
BTMinerM31SPlusV10,
|
||||
BTMinerM31SPlusV20,
|
||||
BTMinerM31SPlusV30,
|
||||
BTMinerM31SPlusV40,
|
||||
BTMinerM31SPlusV50,
|
||||
BTMinerM31SPlusV60,
|
||||
BTMinerM31SPlusV80,
|
||||
BTMinerM31SPlusV90,
|
||||
BTMinerM31SPlusV100,
|
||||
BTMinerM31SPlusVE10,
|
||||
BTMinerM31SPlusVE20,
|
||||
BTMinerM31SPlusVE30,
|
||||
BTMinerM31SPlusVE40,
|
||||
BTMinerM31SPlusVE50,
|
||||
BTMinerM31SPlusVE60,
|
||||
BTMinerM31SPlusVE80,
|
||||
BTMinerM31SPlusVF20,
|
||||
BTMinerM31SPlusVF30,
|
||||
BTMinerM31SPlusVG20,
|
||||
BTMinerM31SPlusVG30,
|
||||
)
|
||||
from .M32 import BTMinerM32, BTMinerM32V20
|
||||
from .M32S import BTMinerM32S
|
||||
from .M34S_Plus import BTMinerM34SPlus, BTMinerM34SPlusVE10
|
||||
from .M31SE import BTMinerM31SEV10, BTMinerM31SEV20, BTMinerM31SEV30
|
||||
from .M32 import BTMinerM32V10, BTMinerM32V20
|
||||
from .M33 import BTMinerM33V10, BTMinerM33V20, BTMinerM33V30
|
||||
from .M33S import BTMinerM33SVG30
|
||||
from .M33S_Plus import BTMinerM33SPlusVH20, BTMinerM33SPlusVH30
|
||||
from .M33S_Plus_Plus import (
|
||||
BTMinerM33SPlusPlusVG40,
|
||||
BTMinerM33SPlusPlusVH20,
|
||||
BTMinerM33SPlusPlusVH30,
|
||||
)
|
||||
from .M34S_Plus import BTMinerM34SPlusVE10
|
||||
from .M36S import BTMinerM36SVE10
|
||||
from .M36S_Plus import BTMinerM36SPlusVG30
|
||||
from .M36S_Plus_Plus import BTMinerM36SPlusPlusVH30
|
||||
from .M39 import BTMinerM39V20
|
||||
|
||||
@@ -13,12 +13,65 @@
|
||||
# limitations under the License.
|
||||
|
||||
from pyasic.miners._backends import BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M50, M50VH50 # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M50VG30,
|
||||
M50VH10,
|
||||
M50VH20,
|
||||
M50VH30,
|
||||
M50VH40,
|
||||
M50VH50,
|
||||
M50VH60,
|
||||
M50VH70,
|
||||
M50VH80,
|
||||
M50VJ10,
|
||||
M50VJ20,
|
||||
M50VJ30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM50(BTMiner, M50):
|
||||
class BTMinerM50VG30(BTMiner, M50VG30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH10(BTMiner, M50VH10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH20(BTMiner, M50VH20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH30(BTMiner, M50VH30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH40(BTMiner, M50VH40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH50(BTMiner, M50VH50):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH60(BTMiner, M50VH60):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH70(BTMiner, M50VH70):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VH80(BTMiner, M50VH80):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VJ10(BTMiner, M50VJ10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VJ20(BTMiner, M50VJ20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50VJ30(BTMiner, M50VJ30):
|
||||
pass
|
||||
|
||||
57
pyasic/miners/whatsminer/btminer/M5X/M50S.py
Normal file
57
pyasic/miners/whatsminer/btminer/M5X/M50S.py
Normal file
@@ -0,0 +1,57 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M50SVH10,
|
||||
M50SVH20,
|
||||
M50SVH30,
|
||||
M50SVH40,
|
||||
M50SVH50,
|
||||
M50SVJ10,
|
||||
M50SVJ20,
|
||||
M50SVJ30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM50SVJ10(BTMiner, M50SVJ10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SVJ20(BTMiner, M50SVJ20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SVJ30(BTMiner, M50SVJ30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SVH10(BTMiner, M50SVH10):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SVH20(BTMiner, M50SVH20):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SVH30(BTMiner, M50SVH30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SVH40(BTMiner, M50SVH40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SVH50(BTMiner, M50SVH50):
|
||||
pass
|
||||
32
pyasic/miners/whatsminer/btminer/M5X/M50S_Plus.py
Normal file
32
pyasic/miners/whatsminer/btminer/M5X/M50S_Plus.py
Normal file
@@ -0,0 +1,32 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import ( # noqa - Ignore access to _module
|
||||
M50SPlusVH30,
|
||||
M50SPlusVH40,
|
||||
M50SPlusVJ30,
|
||||
)
|
||||
|
||||
|
||||
class BTMinerM50SPlusVH30(BTMiner, M50SPlusVH30):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SPlusVH40(BTMiner, M50SPlusVH40):
|
||||
pass
|
||||
|
||||
|
||||
class BTMinerM50SPlusVJ30(BTMiner, M50SPlusVJ30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M5X/M53.py
Normal file
20
pyasic/miners/whatsminer/btminer/M5X/M53.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M53VH30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM53VH30(BTMiner, M53VH30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M5X/M53S.py
Normal file
20
pyasic/miners/whatsminer/btminer/M5X/M53S.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M53SVH30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM53SVH30(BTMiner, M53SVH30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M5X/M53S_Plus.py
Normal file
20
pyasic/miners/whatsminer/btminer/M5X/M53S_Plus.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M53SPlusVJ30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM53SPlusVJ30(BTMiner, M53SPlusVJ30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M5X/M56.py
Normal file
20
pyasic/miners/whatsminer/btminer/M5X/M56.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M56VH30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM56VH30(BTMiner, M56VH30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M5X/M56S.py
Normal file
20
pyasic/miners/whatsminer/btminer/M5X/M56S.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M56SVH30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM56SVH30(BTMiner, M56SVH30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M5X/M56S_Plus.py
Normal file
20
pyasic/miners/whatsminer/btminer/M5X/M56S_Plus.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M56SPlusVJ30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM56SPlusVJ30(BTMiner, M56SPlusVJ30):
|
||||
pass
|
||||
20
pyasic/miners/whatsminer/btminer/M5X/M59.py
Normal file
20
pyasic/miners/whatsminer/btminer/M5X/M59.py
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright 2022 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 BTMiner # noqa - Ignore access to _module
|
||||
from pyasic.miners._types import M59VH30 # noqa - Ignore access to _module
|
||||
|
||||
|
||||
class BTMinerM59VH30(BTMiner, M59VH30):
|
||||
pass
|
||||
@@ -12,4 +12,35 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
from .M50 import BTMinerM50, BTMinerM50VH50
|
||||
from .M50 import (
|
||||
BTMinerM50VG30,
|
||||
BTMinerM50VH10,
|
||||
BTMinerM50VH20,
|
||||
BTMinerM50VH30,
|
||||
BTMinerM50VH40,
|
||||
BTMinerM50VH50,
|
||||
BTMinerM50VH60,
|
||||
BTMinerM50VH70,
|
||||
BTMinerM50VH80,
|
||||
BTMinerM50VJ10,
|
||||
BTMinerM50VJ20,
|
||||
BTMinerM50VJ30,
|
||||
)
|
||||
from .M50S import (
|
||||
BTMinerM50SVH10,
|
||||
BTMinerM50SVH20,
|
||||
BTMinerM50SVH30,
|
||||
BTMinerM50SVH40,
|
||||
BTMinerM50SVH50,
|
||||
BTMinerM50SVJ10,
|
||||
BTMinerM50SVJ20,
|
||||
BTMinerM50SVJ30,
|
||||
)
|
||||
from .M50S_Plus import BTMinerM50SPlusVH30, BTMinerM50SPlusVH40, BTMinerM50SPlusVJ30
|
||||
from .M53 import BTMinerM53VH30
|
||||
from .M53S import BTMinerM53SVH30
|
||||
from .M53S_Plus import BTMinerM53SPlusVJ30
|
||||
from .M56 import BTMinerM56VH30
|
||||
from .M56S import BTMinerM56SVH30
|
||||
from .M56S_Plus import BTMinerM56SPlusVJ30
|
||||
from .M59 import BTMinerM59VH30
|
||||
|
||||
Reference in New Issue
Block a user