Source code for jam.types.extrinsics.disputes

from dataclasses import dataclass
from jam.types.base.boolean import Boolean
from jam.types.base.integers.fixed import U32
from jam.types.base.sequences.array import Array, decodable_array
from jam.types.base.sequences.vector import Vector, decodable_vector
from jam.utils.codec.codable import Codable
from jam.utils.codec.decorators.dataclasses import decodable_dataclass
from jam.types.protocol.crypto import Ed25519Public, Ed25519Signature, WorkReportHash
from jam.types.protocol.core import ValidatorIndex
from jam.utils.constants import VALIDATORS_SUPER_MAJORITY
from jam.utils.json.serde import JsonSerde


[docs] @decodable_dataclass @dataclass class Judgement(Codable, JsonSerde): """Judgement structure.""" vote: Boolean index: ValidatorIndex signature: Ed25519Signature
[docs] @decodable_dataclass @dataclass class Culprit(Codable, JsonSerde): """Culprit structure.""" target: WorkReportHash key: Ed25519Public signature: Ed25519Signature
[docs] @decodable_dataclass @dataclass class Fault(Codable, JsonSerde): """Fault structure.""" target: WorkReportHash vote: Boolean key: Ed25519Public signature: Ed25519Signature
[docs] @decodable_array(length=VALIDATORS_SUPER_MAJORITY, element_type=Judgement) class JudgementVotes(Array[Judgement]): ...
[docs] @decodable_dataclass @dataclass class Verdict(Codable, JsonSerde): """Verdict structure.""" target: WorkReportHash age: U32 votes: JudgementVotes
[docs] @decodable_vector(WorkReportHash) class WorkReportHashes(Vector[WorkReportHash]): ...
[docs] @decodable_vector(Ed25519Public) class Offenders(Vector[Ed25519Public]): ...
[docs] @decodable_dataclass @dataclass class DisputesRecords(Codable, JsonSerde): """Disputes records structure.""" good: WorkReportHashes bad: WorkReportHashes wonky: WorkReportHashes offenders: Offenders
[docs] @decodable_vector(Verdict) class Verdicts(Vector[Verdict]): ...
[docs] @decodable_vector(Culprit) class Culprits(Vector[Culprit]): ...
[docs] @decodable_vector(Fault) class Faults(Vector[Fault]): ...
[docs] @decodable_dataclass @dataclass class DisputesExtrinsic(Codable, JsonSerde): """Disputes extrinsic structure.""" verdicts: Verdicts culprits: Culprits faults: Faults