feature: create device_info field for MinerData.
This commit is contained in:
@@ -25,6 +25,7 @@ from pyasic.config import MinerConfig
|
|||||||
from pyasic.config.mining import MiningModePowerTune
|
from pyasic.config.mining import MiningModePowerTune
|
||||||
|
|
||||||
from .boards import HashBoard
|
from .boards import HashBoard
|
||||||
|
from .device import DeviceInfo
|
||||||
from .error_codes import BraiinsOSError, InnosiliconError, WhatsminerError, X19Error
|
from .error_codes import BraiinsOSError, InnosiliconError, WhatsminerError, X19Error
|
||||||
from .fans import Fan
|
from .fans import Fan
|
||||||
|
|
||||||
@@ -71,9 +72,8 @@ class MinerData:
|
|||||||
datetime: str = field(init=False)
|
datetime: str = field(init=False)
|
||||||
timestamp: int = field(init=False)
|
timestamp: int = field(init=False)
|
||||||
uptime: int = None
|
uptime: int = None
|
||||||
|
device_info: DeviceInfo = None
|
||||||
mac: str = None
|
mac: str = None
|
||||||
model: str = None
|
|
||||||
make: str = None
|
|
||||||
api_ver: str = None
|
api_ver: str = None
|
||||||
fw_ver: str = None
|
fw_ver: str = None
|
||||||
hostname: str = None
|
hostname: str = None
|
||||||
|
|||||||
11
pyasic/data/device.py
Normal file
11
pyasic/data/device.py
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
from dataclasses import dataclass
|
||||||
|
|
||||||
|
from pyasic.device.firmware import MinerFirmware
|
||||||
|
from pyasic.device.makes import MinerMake
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class DeviceInfo:
|
||||||
|
make: MinerMake = None
|
||||||
|
model: str = None
|
||||||
|
firmware: MinerFirmware = None
|
||||||
0
pyasic/device/__init__.py
Normal file
0
pyasic/device/__init__.py
Normal file
27
pyasic/device/firmware.py
Normal file
27
pyasic/device/firmware.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Copyright 2022 Upstream Data Inc -
|
||||||
|
# -
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); -
|
||||||
|
# you may not use this file except in compliance with the License. -
|
||||||
|
# You may obtain a copy of the License at -
|
||||||
|
# -
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0 -
|
||||||
|
# -
|
||||||
|
# Unless required by applicable law or agreed to in writing, software -
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, -
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -
|
||||||
|
# See the License for the specific language governing permissions and -
|
||||||
|
# limitations under the License. -
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
from enum import StrEnum
|
||||||
|
|
||||||
|
|
||||||
|
class MinerFirmware(StrEnum):
|
||||||
|
STOCK = "Stock"
|
||||||
|
BRAIINS_OS = "BOS+"
|
||||||
|
VNISH = "VNish"
|
||||||
|
EPIC = "ePIC"
|
||||||
|
HIVEON = "Hive"
|
||||||
|
LUXOS = "LuxOS"
|
||||||
|
MARATHON = "MaraFW"
|
||||||
@@ -30,6 +30,7 @@ from pyasic.miners.data import (
|
|||||||
RPCAPICommand,
|
RPCAPICommand,
|
||||||
WebAPICommand,
|
WebAPICommand,
|
||||||
)
|
)
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.rpc.antminer import AntminerRPCAPI
|
from pyasic.rpc.antminer import AntminerRPCAPI
|
||||||
from pyasic.ssh.antminer import AntminerModernSSH
|
from pyasic.ssh.antminer import AntminerModernSSH
|
||||||
from pyasic.web.antminer import AntminerModernWebAPI, AntminerOldWebAPI
|
from pyasic.web.antminer import AntminerModernWebAPI, AntminerOldWebAPI
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ from pyasic.miners.data import (
|
|||||||
RPCAPICommand,
|
RPCAPICommand,
|
||||||
WebAPICommand,
|
WebAPICommand,
|
||||||
)
|
)
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.rpc.gcminer import GCMinerRPCAPI
|
from pyasic.rpc.gcminer import GCMinerRPCAPI
|
||||||
from pyasic.web.auradine import AuradineWebAPI
|
from pyasic.web.auradine import AuradineWebAPI
|
||||||
|
|
||||||
@@ -113,7 +114,7 @@ class AuradineLEDCodes(Enum):
|
|||||||
return self.value
|
return self.value
|
||||||
|
|
||||||
|
|
||||||
class Auradine(BaseMiner):
|
class Auradine(StockFirmware):
|
||||||
"""Base handler for Auradine miners"""
|
"""Base handler for Auradine miners"""
|
||||||
|
|
||||||
_rpc_cls = GCMinerRPCAPI
|
_rpc_cls = GCMinerRPCAPI
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ from pyasic.data import Fan, HashBoard
|
|||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.miners.backends.cgminer import CGMiner
|
from pyasic.miners.backends.cgminer import CGMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
|
|
||||||
AVALON_DATA_LOC = DataLocations(
|
AVALON_DATA_LOC = DataLocations(
|
||||||
**{
|
**{
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ from pyasic.data import Fan, HashBoard
|
|||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.rpc.bfgminer import BFGMinerRPCAPI
|
from pyasic.rpc.bfgminer import BFGMinerRPCAPI
|
||||||
|
|
||||||
BFGMINER_DATA_LOC = DataLocations(
|
BFGMINER_DATA_LOC = DataLocations(
|
||||||
@@ -53,7 +54,7 @@ BFGMINER_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class BFGMiner(BaseMiner):
|
class BFGMiner(StockFirmware):
|
||||||
"""Base handler for BFGMiner based miners."""
|
"""Base handler for BFGMiner based miners."""
|
||||||
|
|
||||||
_rpc_cls = BFGMinerRPCAPI
|
_rpc_cls = BFGMinerRPCAPI
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ from pyasic.data import Fan, HashBoard
|
|||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.rpc.bmminer import BMMinerRPCAPI
|
from pyasic.rpc.bmminer import BMMinerRPCAPI
|
||||||
|
|
||||||
BMMINER_DATA_LOC = DataLocations(
|
BMMINER_DATA_LOC = DataLocations(
|
||||||
@@ -57,7 +58,7 @@ BMMINER_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class BMMiner(BaseMiner):
|
class BMMiner(StockFirmware):
|
||||||
"""Base handler for BMMiner based miners."""
|
"""Base handler for BMMiner based miners."""
|
||||||
|
|
||||||
_rpc_cls = BMMinerRPCAPI
|
_rpc_cls = BMMinerRPCAPI
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ from pyasic.miners.data import (
|
|||||||
RPCAPICommand,
|
RPCAPICommand,
|
||||||
WebAPICommand,
|
WebAPICommand,
|
||||||
)
|
)
|
||||||
|
from pyasic.miners.device.firmware import BraiinsOSFirmware
|
||||||
from pyasic.rpc.bosminer import BOSMinerRPCAPI
|
from pyasic.rpc.bosminer import BOSMinerRPCAPI
|
||||||
from pyasic.ssh.braiins_os import BOSMinerSSH
|
from pyasic.ssh.braiins_os import BOSMinerSSH
|
||||||
from pyasic.web.braiins_os import BOSerWebAPI, BOSMinerWebAPI
|
from pyasic.web.braiins_os import BOSerWebAPI, BOSMinerWebAPI
|
||||||
@@ -95,7 +96,7 @@ BOSMINER_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class BOSMiner(BaseMiner):
|
class BOSMiner(BraiinsOSFirmware):
|
||||||
"""Handler for old versions of BraiinsOS+ (pre-gRPC)"""
|
"""Handler for old versions of BraiinsOS+ (pre-gRPC)"""
|
||||||
|
|
||||||
_rpc_cls = BOSMinerRPCAPI
|
_rpc_cls = BOSMinerRPCAPI
|
||||||
@@ -105,8 +106,6 @@ class BOSMiner(BaseMiner):
|
|||||||
_ssh_cls = BOSMinerSSH
|
_ssh_cls = BOSMinerSSH
|
||||||
ssh: BOSMinerSSH
|
ssh: BOSMinerSSH
|
||||||
|
|
||||||
firmware = "BOS+"
|
|
||||||
|
|
||||||
data_locations = BOSMINER_DATA_LOC
|
data_locations = BOSMINER_DATA_LOC
|
||||||
|
|
||||||
supports_shutdown = True
|
supports_shutdown = True
|
||||||
@@ -634,7 +633,7 @@ BOSER_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class BOSer(BaseMiner):
|
class BOSer(BraiinsOSFirmware):
|
||||||
"""Handler for new versions of BraiinsOS+ (post-gRPC)"""
|
"""Handler for new versions of BraiinsOS+ (post-gRPC)"""
|
||||||
|
|
||||||
_rpc_cls = BOSMinerRPCAPI
|
_rpc_cls = BOSMinerRPCAPI
|
||||||
@@ -642,8 +641,6 @@ class BOSer(BaseMiner):
|
|||||||
_web_cls = BOSerWebAPI
|
_web_cls = BOSerWebAPI
|
||||||
web: BOSerWebAPI
|
web: BOSerWebAPI
|
||||||
|
|
||||||
firmware = "BOS+"
|
|
||||||
|
|
||||||
data_locations = BOSER_DATA_LOC
|
data_locations = BOSER_DATA_LOC
|
||||||
|
|
||||||
supports_autotuning = True
|
supports_autotuning = True
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ from pyasic.data.error_codes import MinerErrorData, WhatsminerError
|
|||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.rpc.btminer import BTMinerRPCAPI
|
from pyasic.rpc.btminer import BTMinerRPCAPI
|
||||||
|
|
||||||
BTMINER_DATA_LOC = DataLocations(
|
BTMINER_DATA_LOC = DataLocations(
|
||||||
@@ -110,7 +111,7 @@ BTMINER_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class BTMiner(BaseMiner):
|
class BTMiner(StockFirmware):
|
||||||
"""Base handler for BTMiner based miners."""
|
"""Base handler for BTMiner based miners."""
|
||||||
|
|
||||||
_rpc_cls = BTMinerRPCAPI
|
_rpc_cls = BTMinerRPCAPI
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ from pyasic.config import MinerConfig
|
|||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.rpc.cgminer import CGMinerRPCAPI
|
from pyasic.rpc.cgminer import CGMinerRPCAPI
|
||||||
|
|
||||||
CGMINER_DATA_LOC = DataLocations(
|
CGMINER_DATA_LOC = DataLocations(
|
||||||
@@ -56,7 +57,7 @@ CGMINER_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class CGMiner(BaseMiner):
|
class CGMiner(StockFirmware):
|
||||||
"""Base handler for CGMiner based miners"""
|
"""Base handler for CGMiner based miners"""
|
||||||
|
|
||||||
_rpc_cls = CGMinerRPCAPI
|
_rpc_cls = CGMinerRPCAPI
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ from pyasic.errors import APIError
|
|||||||
from pyasic.logger import logger
|
from pyasic.logger import logger
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand
|
||||||
|
from pyasic.miners.device.firmware import ePICFirmware
|
||||||
from pyasic.web.epic import ePICWebAPI
|
from pyasic.web.epic import ePICWebAPI
|
||||||
|
|
||||||
EPIC_DATA_LOC = DataLocations(
|
EPIC_DATA_LOC = DataLocations(
|
||||||
@@ -82,14 +83,12 @@ EPIC_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class ePIC(BaseMiner):
|
class ePIC(ePICFirmware):
|
||||||
"""Handler for miners with the ePIC board"""
|
"""Handler for miners with the ePIC board"""
|
||||||
|
|
||||||
_web_cls = ePICWebAPI
|
_web_cls = ePICWebAPI
|
||||||
web: ePICWebAPI
|
web: ePICWebAPI
|
||||||
|
|
||||||
firmware = "ePIC"
|
|
||||||
|
|
||||||
data_locations = EPIC_DATA_LOC
|
data_locations = EPIC_DATA_LOC
|
||||||
|
|
||||||
supports_shutdown = True
|
supports_shutdown = True
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ from pyasic.miners.data import (
|
|||||||
RPCAPICommand,
|
RPCAPICommand,
|
||||||
WebAPICommand,
|
WebAPICommand,
|
||||||
)
|
)
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.web.goldshell import GoldshellWebAPI
|
from pyasic.web.goldshell import GoldshellWebAPI
|
||||||
|
|
||||||
GOLDSHELL_DATA_LOC = DataLocations(
|
GOLDSHELL_DATA_LOC = DataLocations(
|
||||||
|
|||||||
@@ -15,7 +15,8 @@
|
|||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.backends import BMMiner
|
from pyasic.miners.backends import BMMiner
|
||||||
|
from pyasic.miners.device.firmware import HiveonFirmware
|
||||||
|
|
||||||
|
|
||||||
class Hiveon(BMMiner):
|
class Hiveon(BMMiner, HiveonFirmware):
|
||||||
firmware = "Hive"
|
pass
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ from pyasic.miners.data import (
|
|||||||
RPCAPICommand,
|
RPCAPICommand,
|
||||||
WebAPICommand,
|
WebAPICommand,
|
||||||
)
|
)
|
||||||
|
from pyasic.miners.device.firmware import StockFirmware
|
||||||
from pyasic.web.innosilicon import InnosiliconWebAPI
|
from pyasic.web.innosilicon import InnosiliconWebAPI
|
||||||
|
|
||||||
INNOSILICON_DATA_LOC = DataLocations(
|
INNOSILICON_DATA_LOC = DataLocations(
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ from pyasic.data import Fan, HashBoard
|
|||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, RPCAPICommand
|
||||||
|
from pyasic.miners.device.firmware import LuxOSFirmware
|
||||||
from pyasic.rpc.luxminer import LUXMinerRPCAPI
|
from pyasic.rpc.luxminer import LUXMinerRPCAPI
|
||||||
|
|
||||||
LUXMINER_DATA_LOC = DataLocations(
|
LUXMINER_DATA_LOC = DataLocations(
|
||||||
@@ -55,14 +56,12 @@ LUXMINER_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class LUXMiner(BaseMiner):
|
class LUXMiner(LuxOSFirmware):
|
||||||
"""Handler for LuxOS miners"""
|
"""Handler for LuxOS miners"""
|
||||||
|
|
||||||
_rpc_cls = LUXMinerRPCAPI
|
_rpc_cls = LUXMinerRPCAPI
|
||||||
rpc: LUXMinerRPCAPI
|
rpc: LUXMinerRPCAPI
|
||||||
|
|
||||||
firmware = "LuxOS"
|
|
||||||
|
|
||||||
data_locations = LUXMINER_DATA_LOC
|
data_locations = LUXMINER_DATA_LOC
|
||||||
|
|
||||||
async def _get_session(self) -> Optional[str]:
|
async def _get_session(self) -> Optional[str]:
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ from pyasic.data import Fan, HashBoard
|
|||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.miners.base import BaseMiner
|
from pyasic.miners.base import BaseMiner
|
||||||
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand
|
from pyasic.miners.data import DataFunction, DataLocations, DataOptions, WebAPICommand
|
||||||
|
from pyasic.miners.device.firmware import MaraFirmware, StockFirmware
|
||||||
from pyasic.misc import merge_dicts
|
from pyasic.misc import merge_dicts
|
||||||
from pyasic.web.marathon import MaraWebAPI
|
from pyasic.web.marathon import MaraWebAPI
|
||||||
|
|
||||||
@@ -63,14 +64,12 @@ MARA_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class MaraMiner(BaseMiner):
|
class MaraMiner(MaraFirmware):
|
||||||
_web_cls = MaraWebAPI
|
_web_cls = MaraWebAPI
|
||||||
web: MaraWebAPI
|
web: MaraWebAPI
|
||||||
|
|
||||||
data_locations = MARA_DATA_LOC
|
data_locations = MARA_DATA_LOC
|
||||||
|
|
||||||
firmware = "MaraFW"
|
|
||||||
|
|
||||||
async def fault_light_off(self) -> bool:
|
async def fault_light_off(self) -> bool:
|
||||||
res = await self.web.set_locate_miner(blinking=False)
|
res = await self.web.set_locate_miner(blinking=False)
|
||||||
return res.get("blinking") is False
|
return res.get("blinking") is False
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ from pyasic.miners.data import (
|
|||||||
RPCAPICommand,
|
RPCAPICommand,
|
||||||
WebAPICommand,
|
WebAPICommand,
|
||||||
)
|
)
|
||||||
|
from pyasic.miners.device.firmware import VNishFirmware
|
||||||
from pyasic.web.vnish import VNishWebAPI
|
from pyasic.web.vnish import VNishWebAPI
|
||||||
|
|
||||||
VNISH_DATA_LOC = DataLocations(
|
VNISH_DATA_LOC = DataLocations(
|
||||||
@@ -82,7 +83,7 @@ VNISH_DATA_LOC = DataLocations(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class VNish(BMMiner):
|
class VNish(BMMiner, VNishFirmware):
|
||||||
"""Handler for VNish miners"""
|
"""Handler for VNish miners"""
|
||||||
|
|
||||||
_web_cls = VNishWebAPI
|
_web_cls = VNishWebAPI
|
||||||
@@ -90,8 +91,6 @@ class VNish(BMMiner):
|
|||||||
|
|
||||||
supports_shutdown = True
|
supports_shutdown = True
|
||||||
|
|
||||||
firmware = "VNish"
|
|
||||||
|
|
||||||
data_locations = VNISH_DATA_LOC
|
data_locations = VNISH_DATA_LOC
|
||||||
|
|
||||||
async def restart_backend(self) -> bool:
|
async def restart_backend(self) -> bool:
|
||||||
|
|||||||
@@ -20,7 +20,10 @@ from typing import List, Optional, Protocol, Tuple, Type, TypeVar, Union
|
|||||||
|
|
||||||
from pyasic.config import MinerConfig
|
from pyasic.config import MinerConfig
|
||||||
from pyasic.data import Fan, HashBoard, MinerData
|
from pyasic.data import Fan, HashBoard, MinerData
|
||||||
|
from pyasic.data.device import DeviceInfo
|
||||||
from pyasic.data.error_codes import MinerErrorData
|
from pyasic.data.error_codes import MinerErrorData
|
||||||
|
from pyasic.device.firmware import MinerFirmware
|
||||||
|
from pyasic.device.makes import MinerMake
|
||||||
from pyasic.errors import APIError
|
from pyasic.errors import APIError
|
||||||
from pyasic.logger import logger
|
from pyasic.logger import logger
|
||||||
from pyasic.miners.data import DataLocations, DataOptions, RPCAPICommand, WebAPICommand
|
from pyasic.miners.data import DataLocations, DataOptions, RPCAPICommand, WebAPICommand
|
||||||
@@ -36,9 +39,9 @@ class MinerProtocol(Protocol):
|
|||||||
web: _web_cls = None
|
web: _web_cls = None
|
||||||
ssh: _ssh_cls = None
|
ssh: _ssh_cls = None
|
||||||
|
|
||||||
make: str = None
|
make: MinerMake = None
|
||||||
raw_model: str = None
|
raw_model: str = None
|
||||||
firmware: str = None
|
firmware: MinerFirmware = None
|
||||||
|
|
||||||
expected_hashboards: int = 3
|
expected_hashboards: int = 3
|
||||||
expected_chips: int = None
|
expected_chips: int = None
|
||||||
@@ -79,6 +82,10 @@ class MinerProtocol(Protocol):
|
|||||||
model_data.append(f"({self.firmware})")
|
model_data.append(f"({self.firmware})")
|
||||||
return " ".join(model_data)
|
return " ".join(model_data)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def device_info(self) -> DeviceInfo:
|
||||||
|
return DeviceInfo(make=self.make, model=self.raw_model, firmware=self.firmware)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def api(self):
|
def api(self):
|
||||||
return self.rpc
|
return self.rpc
|
||||||
@@ -183,6 +190,14 @@ class MinerProtocol(Protocol):
|
|||||||
"""
|
"""
|
||||||
return self.model
|
return self.model
|
||||||
|
|
||||||
|
async def get_device_info(self) -> Optional[DeviceInfo]:
|
||||||
|
"""Get device information, including model, make, and firmware.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
A dataclass containing device information.
|
||||||
|
"""
|
||||||
|
return self.device_info
|
||||||
|
|
||||||
async def get_api_ver(self) -> Optional[str]:
|
async def get_api_ver(self) -> Optional[str]:
|
||||||
"""Get the API version of the miner and is as a string.
|
"""Get the API version of the miner and is as a string.
|
||||||
|
|
||||||
@@ -465,8 +480,7 @@ class MinerProtocol(Protocol):
|
|||||||
"""
|
"""
|
||||||
data = MinerData(
|
data = MinerData(
|
||||||
ip=str(self.ip),
|
ip=str(self.ip),
|
||||||
make=self.make,
|
device_info=self.device_info,
|
||||||
model=self.model,
|
|
||||||
expected_chips=(
|
expected_chips=(
|
||||||
self.expected_chips * self.expected_hashboards
|
self.expected_chips * self.expected_hashboards
|
||||||
if self.expected_chips is not None
|
if self.expected_chips is not None
|
||||||
|
|||||||
0
pyasic/miners/device/__init__.py
Normal file
0
pyasic/miners/device/__init__.py
Normal file
46
pyasic/miners/device/firmware.py
Normal file
46
pyasic/miners/device/firmware.py
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# 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.device.firmware import MinerFirmware
|
||||||
|
from pyasic.miners.base import BaseMiner
|
||||||
|
|
||||||
|
|
||||||
|
class StockFirmware(BaseMiner):
|
||||||
|
firmware = MinerFirmware.STOCK
|
||||||
|
|
||||||
|
|
||||||
|
class BraiinsOSFirmware(BaseMiner):
|
||||||
|
firmware = MinerFirmware.BRAIINS_OS
|
||||||
|
|
||||||
|
|
||||||
|
class VNishFirmware(BaseMiner):
|
||||||
|
firmware = MinerFirmware.VNISH
|
||||||
|
|
||||||
|
|
||||||
|
class ePICFirmware(BaseMiner):
|
||||||
|
firmware = MinerFirmware.EPIC
|
||||||
|
|
||||||
|
|
||||||
|
class HiveonFirmware(BaseMiner):
|
||||||
|
firmware = MinerFirmware.HIVEON
|
||||||
|
|
||||||
|
|
||||||
|
class LuxOSFirmware(BaseMiner):
|
||||||
|
firmware = MinerFirmware.LUXOS
|
||||||
|
|
||||||
|
|
||||||
|
class MaraFirmware(BaseMiner):
|
||||||
|
firmware = MinerFirmware.MARATHON
|
||||||
@@ -34,9 +34,9 @@ from pyasic.miners.backends import *
|
|||||||
from pyasic.miners.backends.unknown import UnknownMiner
|
from pyasic.miners.backends.unknown import UnknownMiner
|
||||||
from pyasic.miners.base import AnyMiner
|
from pyasic.miners.base import AnyMiner
|
||||||
from pyasic.miners.blockminer import *
|
from pyasic.miners.blockminer import *
|
||||||
|
from pyasic.miners.device.makes import *
|
||||||
from pyasic.miners.goldshell import *
|
from pyasic.miners.goldshell import *
|
||||||
from pyasic.miners.innosilicon import *
|
from pyasic.miners.innosilicon import *
|
||||||
from pyasic.miners.makes import *
|
|
||||||
from pyasic.miners.whatsminer import *
|
from pyasic.miners.whatsminer import *
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Z15(AntMinerMake):
|
class Z15(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class S17(AntMinerMake):
|
class S17(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class T17(AntMinerMake):
|
class T17(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class S19(AntMinerMake):
|
class S19(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class T19(AntMinerMake):
|
class T19(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class S21(AntMinerMake):
|
class S21(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class T21(AntMinerMake):
|
class T21(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class D3(AntMinerMake):
|
class D3(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class HS3(AntMinerMake):
|
class HS3(AntMinerMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class L3Plus(AntMinerMake):
|
class L3Plus(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class DR5(AntMinerMake):
|
class DR5(AntMinerMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class L7(AntMinerMake):
|
class L7(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class E9Pro(AntMinerMake):
|
class E9Pro(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class S9(AntMinerMake):
|
class S9(AntMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AntMinerMake
|
from pyasic.miners.device.makes import AntMinerMake
|
||||||
|
|
||||||
|
|
||||||
class T9(AntMinerMake):
|
class T9(AntMinerMake):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyasic.miners.makes import AuradineMake
|
from pyasic.miners.device.makes import AuradineMake
|
||||||
|
|
||||||
|
|
||||||
class AuradineAD2500(AuradineMake):
|
class AuradineAD2500(AuradineMake):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyasic.miners.makes import AuradineMake
|
from pyasic.miners.device.makes import AuradineMake
|
||||||
|
|
||||||
|
|
||||||
class AuradineAD3500(AuradineMake):
|
class AuradineAD3500(AuradineMake):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyasic.miners.makes import AuradineMake
|
from pyasic.miners.device.makes import AuradineMake
|
||||||
|
|
||||||
|
|
||||||
class AuradineAI2500(AuradineMake):
|
class AuradineAI2500(AuradineMake):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyasic.miners.makes import AuradineMake
|
from pyasic.miners.device.makes import AuradineMake
|
||||||
|
|
||||||
|
|
||||||
class AuradineAI3680(AuradineMake):
|
class AuradineAI3680(AuradineMake):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyasic.miners.makes import AuradineMake
|
from pyasic.miners.device.makes import AuradineMake
|
||||||
|
|
||||||
|
|
||||||
class AuradineAT1500(AuradineMake):
|
class AuradineAT1500(AuradineMake):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyasic.miners.makes import AuradineMake
|
from pyasic.miners.device.makes import AuradineMake
|
||||||
|
|
||||||
|
|
||||||
class AuradineAT2860(AuradineMake):
|
class AuradineAT2860(AuradineMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon1026(AvalonMinerMake):
|
class Avalon1026(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon1047(AvalonMinerMake):
|
class Avalon1047(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon1066(AvalonMinerMake):
|
class Avalon1066(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon1166Pro(AvalonMinerMake):
|
class Avalon1166Pro(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon1246(AvalonMinerMake):
|
class Avalon1246(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon721(AvalonMinerMake):
|
class Avalon721(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon741(AvalonMinerMake):
|
class Avalon741(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon761(AvalonMinerMake):
|
class Avalon761(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon821(AvalonMinerMake):
|
class Avalon821(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon841(AvalonMinerMake):
|
class Avalon841(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon851(AvalonMinerMake):
|
class Avalon851(AvalonMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import AvalonMinerMake
|
from pyasic.miners.device.makes import AvalonMinerMake
|
||||||
|
|
||||||
|
|
||||||
class Avalon921(AvalonMinerMake):
|
class Avalon921(AvalonMinerMake):
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pyasic.miners.makes import ePICMake
|
from pyasic.miners.device.makes import ePICMake
|
||||||
|
|
||||||
|
|
||||||
class BlockMiner520i(ePICMake):
|
class BlockMiner520i(ePICMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import GoldshellMake
|
from pyasic.miners.device.makes import GoldshellMake
|
||||||
|
|
||||||
|
|
||||||
class CK5(GoldshellMake):
|
class CK5(GoldshellMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import GoldshellMake
|
from pyasic.miners.device.makes import GoldshellMake
|
||||||
|
|
||||||
|
|
||||||
class HS5(GoldshellMake):
|
class HS5(GoldshellMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import GoldshellMake
|
from pyasic.miners.device.makes import GoldshellMake
|
||||||
|
|
||||||
|
|
||||||
class KD5(GoldshellMake):
|
class KD5(GoldshellMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import GoldshellMake
|
from pyasic.miners.device.makes import GoldshellMake
|
||||||
|
|
||||||
|
|
||||||
class KDBoxII(GoldshellMake):
|
class KDBoxII(GoldshellMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import GoldshellMake
|
from pyasic.miners.device.makes import GoldshellMake
|
||||||
|
|
||||||
|
|
||||||
class KDMax(GoldshellMake):
|
class KDMax(GoldshellMake):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
# See the License for the specific language governing permissions and -
|
# See the License for the specific language governing permissions and -
|
||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
from pyasic.miners.makes import InnosiliconMake
|
from pyasic.miners.device.makes import InnosiliconMake
|
||||||
|
|
||||||
|
|
||||||
class A10X(InnosiliconMake):
|
class A10X(InnosiliconMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import InnosiliconMake
|
from pyasic.miners.device.makes import InnosiliconMake
|
||||||
|
|
||||||
|
|
||||||
class T3HPlus(InnosiliconMake):
|
class T3HPlus(InnosiliconMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M20V10(WhatsMinerMake):
|
class M20V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M20PV10(WhatsMinerMake):
|
class M20PV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M20SV10(WhatsMinerMake):
|
class M20SV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M20SPlusV30(WhatsMinerMake):
|
class M20SPlusV30(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M21V10(WhatsMinerMake):
|
class M21V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M21SV20(WhatsMinerMake):
|
class M21SV20(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M21SPlusV20(WhatsMinerMake):
|
class M21SPlusV20(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M29V10(WhatsMinerMake):
|
class M29V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M30V10(WhatsMinerMake):
|
class M30V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M30KV10(WhatsMinerMake):
|
class M30KV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M30LV10(WhatsMinerMake):
|
class M30LV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M30SV10(WhatsMinerMake):
|
class M30SV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M30SPlusV10(WhatsMinerMake):
|
class M30SPlusV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M30SPlusPlusV10(WhatsMinerMake):
|
class M30SPlusPlusV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M31V10(WhatsMinerMake):
|
class M31V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M31HV10(WhatsMinerMake):
|
class M31HV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M31LV10(WhatsMinerMake):
|
class M31LV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M31SV10(WhatsMinerMake):
|
class M31SV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M31SEV10(WhatsMinerMake):
|
class M31SEV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M31SPlusV10(WhatsMinerMake):
|
class M31SPlusV10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M32V10(WhatsMinerMake):
|
class M32V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M32S(WhatsMinerMake):
|
class M32S(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M33V10(WhatsMinerMake):
|
class M33V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M33SVG30(WhatsMinerMake):
|
class M33SVG30(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M33SPlusVG20(WhatsMinerMake):
|
class M33SPlusVG20(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M33SPlusPlusVH20(WhatsMinerMake):
|
class M33SPlusPlusVH20(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M34SPlusVE10(WhatsMinerMake):
|
class M34SPlusVE10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M36SVE10(WhatsMinerMake):
|
class M36SVE10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M36SPlusVG30(WhatsMinerMake):
|
class M36SPlusVG30(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M36SPlusPlusVH30(WhatsMinerMake):
|
class M36SPlusPlusVH30(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M39V10(WhatsMinerMake):
|
class M39V10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M50VE30(WhatsMinerMake):
|
class M50VE30(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M50SVJ10(WhatsMinerMake):
|
class M50SVJ10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M50SPlusVH30(WhatsMinerMake):
|
class M50SPlusVH30(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M50SPlusPlusVK10(WhatsMinerMake):
|
class M50SPlusPlusVK10(WhatsMinerMake):
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
# limitations under the License. -
|
# limitations under the License. -
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
from pyasic.miners.makes import WhatsMinerMake
|
from pyasic.miners.device.makes import WhatsMinerMake
|
||||||
|
|
||||||
|
|
||||||
class M53VH30(WhatsMinerMake):
|
class M53VH30(WhatsMinerMake):
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user