Skip to content
Snippets Groups Projects
items.py 2.42 KiB
Newer Older
boo's avatar
boo committed
from __future__ import annotations
from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from .net import CFNet
    from .types import OriginItemTypes
    from ..common.types import ItemTypes

from .crypto import CFSign


class CFItem:
    def __init__(self, origin_item: OriginItemTypes, type: ItemTypes, net: CFNet):
        self._origin_item = origin_item
        self.type = type.value
        self.net = net


class CFTxIn(CFItem):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.prev_hash = str(self._origin_item.prevHash)
        self.prev_idx = self._origin_item.prevIdx


class CFTxInCond(CFItem):
    pass


class CFTxOut(CFItem):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.address = str(self._origin_item.addr)
        self.value = self._origin_item.value
boo's avatar
boo committed


class CFTxOutCond(CFItem):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.expires = self._origin_item.tsExpires
        self.value = self._origin_item.value
boo's avatar
boo committed
        self.subtype = str(self._origin_item.typeSubtype)


class CFTxPkey(CFItem):
    pass


class CFTxSig(CFItem):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.size = self._origin_item.sigSize
        self.sign = CFSign(self._origin_item.sign, self.net)


class CFTxToken(CFItem):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.ticker = self._origin_item.ticker
        self.emission_hash = str(self._origin_item.tokenEmissionHash)
        self.emission_chain_id = str(self._origin_item.tokenEmissionChainId)


class CFTxReceipt(CFItem):
    pass


class CFTxOutExt(CFItem):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.address = str(self._origin_item.addr)
        self.ticker = self._origin_item.token
        self.value = self._origin_item.value
boo's avatar
boo committed


class CFTxTSD(CFItem):
    pass


class CFTxOutCondSubtypeSrvPay(CFItem):
    pass


class CFTxOutCondSubtypeSrvXchange(CFItem):
    pass


class CFTxOutCondSubtypeSrvStakeLock(CFItem):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.unlock = self._origin_item.timeUnlock
        self.value = self._origin_item.value
boo's avatar
boo committed
        self.reinvest_percent = self._origin_item.reinvestPercent


class CFTxOutCondSubtypeSrvStakePosDelegate(CFItem):
    pass