from pyasic.device.algorithm import MinerAlgo
from pyasic.device.models import MinerModel
from pyasic.miners.device.makes import WhatsMinerMake


class M30SPlusV10(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV10

    expected_chips = 215
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV100(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV100

    expected_chips = 215
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV20(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV20

    expected_chips = 255
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV30(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV30

    expected_chips = None
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV40(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV40

    expected_chips = 235
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV50(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV50

    expected_chips = 225
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV60(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV60

    expected_chips = 245
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV70(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV70

    expected_chips = 235
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV80(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV80

    expected_chips = 245
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusV90(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusV90

    expected_chips = 225
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE100(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE100

    expected_chips = None
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE30(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE30

    expected_chips = 148
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE40(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE40

    expected_chips = 156
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE50(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE50

    expected_chips = 164
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE60(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE60

    expected_chips = 172
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE70(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE70

    expected_chips = None
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE80(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE80

    expected_chips = None
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVE90(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVE90

    expected_chips = None
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVF20(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVF20

    expected_chips = 111
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVF30(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVF30

    expected_chips = 117
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVG20(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVG20

    expected_chips = 82
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVG30(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVG30

    expected_chips = 78
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVG40(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVG40

    expected_chips = 105
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVG50(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVG50

    expected_chips = 111
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVG60(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVG60

    expected_chips = 86
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVH10(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVH10

    expected_chips = 64
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVH20(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVH20

    expected_chips = 66
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVH30(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVH30

    expected_chips = 70
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVH40(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVH40

    expected_chips = 74
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVH50(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVH50

    expected_chips = 64
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVH60(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVH60

    expected_chips = 66
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVH70(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVH70

    expected_chips = 70
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVI30(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVI30

    expected_chips = 86
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVJ30(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVJ30

    expected_chips = 105
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256


class M30SPlusVJ40(WhatsMinerMake):
    raw_model = MinerModel.WHATSMINER.M30SPlusVJ40

    expected_chips = 117
    expected_fans = 2
    expected_hashboards = 3
    algo = MinerAlgo.SHA256
