Source code for jam.types.work.package

"""Work package types for the JAM protocol."""
from dataclasses import dataclass
from jam.types.base import Bytes
from jam.types.base import Vector
from jam.types.base.sequences.vector import decodable_vector
from jam.utils.codec.codable import Codable
from jam.utils.codec.decorators.dataclasses import decodable_dataclass
from jam.types.protocol.crypto import OpaqueHash
from jam.types.protocol.core import ServiceId
from jam.types.work.item import WorkItem
from jam.types.work.refine_context import RefineContext
from jam.utils.json.serde import JsonSerde


[docs] @decodable_dataclass @dataclass class Authorizer(Codable, JsonSerde): """Authorizer structure.""" code_hash: OpaqueHash params: Bytes
[docs] @decodable_vector(WorkItem) class WorkItems(Vector[WorkItem]): ...
[docs] @decodable_dataclass @dataclass class WorkPackage(Codable, JsonSerde): """Work package structure.""" authorization: Bytes auth_code_host: ServiceId authorizer: Authorizer context: RefineContext items: WorkItems