2025-10-20 15:42:12 +02:00
|
|
|
from typing import List, Self
|
|
|
|
|
|
|
|
|
|
from core.models import NbeSchema
|
2025-10-30 11:48:34 +01:00
|
|
|
from core.types import HexBytes
|
|
|
|
|
from models.block import Block
|
|
|
|
|
from models.header.proof_of_leadership import ProofOfLeadership
|
|
|
|
|
from models.transactions.transaction import Transaction
|
2025-10-20 15:42:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class BlockRead(NbeSchema):
|
|
|
|
|
id: int
|
2025-10-30 11:48:34 +01:00
|
|
|
hash: HexBytes
|
|
|
|
|
parent_block_hash: HexBytes
|
2025-10-20 15:42:12 +02:00
|
|
|
slot: int
|
2025-10-30 11:48:34 +01:00
|
|
|
block_root: HexBytes
|
|
|
|
|
proof_of_leadership: ProofOfLeadership
|
2025-10-20 15:42:12 +02:00
|
|
|
transactions: List[Transaction]
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def from_block(cls, block: Block) -> Self:
|
|
|
|
|
return cls(
|
|
|
|
|
id=block.id,
|
2025-10-30 11:48:34 +01:00
|
|
|
hash=block.hash,
|
|
|
|
|
parent_block_hash=block.parent_block,
|
|
|
|
|
slot=block.slot,
|
|
|
|
|
block_root=block.block_root,
|
|
|
|
|
proof_of_leadership=block.proof_of_leadership,
|
2025-10-20 15:42:12 +02:00
|
|
|
transactions=block.transactions,
|
|
|
|
|
)
|