Source code for jam.state.components.psi

from dataclasses import dataclass
from jam.types.base.sequences.vector import Vector, decodable_vector
from jam.types.protocol.crypto import Ed25519Public, WorkReportHash
from jam.utils.codec.codable import Codable
from jam.utils.codec.decorators.dataclasses import decodable_dataclass


[docs] @decodable_vector(element_type=WorkReportHash) class PsiG(Vector[WorkReportHash]): """Good set work report hashes""" ...
[docs] @decodable_vector(element_type=WorkReportHash) class PsiB(Vector[WorkReportHash]): """Bad set work report hashes""" ...
[docs] @decodable_vector(element_type=WorkReportHash) class PsiW(Vector[WorkReportHash]): """Wonky set work report hashes""" ...
[docs] @decodable_vector(element_type=Ed25519Public) class PsiO(Vector[Ed25519Public]): """Offenders""" ...
[docs] @decodable_dataclass @dataclass class Psi(Codable): """Disputes state""" g: PsiG b: PsiB w: PsiW o: PsiO