feature: Add every whatsminer type known to man (or at least microBT).

This commit is contained in:
UpstreamData
2023-01-30 13:07:35 -07:00
parent 6ad750d3e9
commit b9ca810903
94 changed files with 3793 additions and 248 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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):

View File

@@ -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

View File

@@ -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

View File

@@ -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):

View File

@@ -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):

View File

@@ -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__()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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__()

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View 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

View 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

View 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

View 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

View File

@@ -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__()

View 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

View 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

View 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

View 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

View File

@@ -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

View File

@@ -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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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):

View File

@@ -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):

View File

@@ -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].

View File

@@ -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

View File

@@ -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,

View File

@@ -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):

View File

@@ -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):

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View File

@@ -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

View File

@@ -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

View 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

View 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

View 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

View 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

View File

@@ -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):

View 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

View 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

View 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

View 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

View File

@@ -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

View File

@@ -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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@@ -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