Newer
Older
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
class CFTxOutCond(CFItem):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.expires = self._origin_item.tsExpires
self.value = self._origin_item.value
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
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