dataclass: PoolUrl

This commit is contained in:
ytemiloluwa
2024-06-27 09:54:57 +01:00
parent 30f385c2d9
commit a751efe7d5

View File

@@ -1,4 +1,24 @@
from dataclasses import dataclass, field from dataclasses import dataclass, field
from enum import Enum
from typing import Optional
class Scheme (Enum):
STRATUM_V1 = "stratum+tcp"
STRATUM_V2 = "stratum2+tcp"
@dataclass
class PoolUrl:
scheme: Scheme
host: str
port: int
pubKey: Optional[str] = None
def __str__(self) -> str:
if self.scheme == Scheme.STRATUM_V2 and self.pubKey:
return f"{self.scheme.value}://{self.host}:{self.port}/{self.pubKey}"
else:
return f"{self.scheme.value}://{self.host}:{self.port}"
@dataclass @dataclass
@@ -19,15 +39,15 @@ class PoolMetrics:
pool_stale_percent: Percentage of stale shares by the pool. pool_stale_percent: Percentage of stale shares by the pool.
""" """
accepted: int = None accepted: int
rejected: int = None rejected: int
get_failures: int = None get_failures: int
remote_failures: int = None remote_failures: int
active: bool = None active: bool
alive: bool = None alive: bool
url: str = None url: PoolUrl
index: int = None index: int
user: str = None user: str
pool_rejected_percent: float = field(init=False) pool_rejected_percent: float = field(init=False)
pool_stale_percent: float = field(init=False) pool_stale_percent: float = field(init=False)