Extrinsics Types - JAM

Submodules

Module Contents

Extrinsic types for the JAM protocol.

class jam.types.extrinsics.TicketEnvelope(attempt: U8, signature: ByteArray784)[source]

Bases: Codable, JsonSerde

Ticket entry structure.

attempt: U8
signature: ByteArray784
__init__(attempt: U8, signature: ByteArray784) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.TicketBody(id: ByteArray32, attempt: U8)[source]

Bases: Codable, JsonSerde

Ticket body structure.

id: ByteArray32
attempt: U8
__init__(id: ByteArray32, attempt: U8) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.TicketsAccumulator(initial: Sequence[T] = [], codec: Codec[T] | None = None)[source]

Bases: Array[TicketBody]

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[Any, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

class jam.types.extrinsics.KeysAccumulator(initial: Sequence[T] = [], codec: Codec[T] | None = None)[source]

Bases: Array[ByteArray32]

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[Any, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

class jam.types.extrinsics.TicketsExtrinsic(initial: Sequence[T] = [], codec: Codec[T] | None = None)[source]

Bases: Vector[TicketEnvelope]

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[Vector[T], int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

class jam.types.extrinsics.Verdict(target: ByteArray32, age: U32, votes: JudgementVotes)[source]

Bases: Codable, JsonSerde

Verdict structure.

target: ByteArray32
age: U32
votes: JudgementVotes
__init__(target: ByteArray32, age: U32, votes: JudgementVotes) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.Culprit(target: ByteArray32, key: ByteArray32, signature: ByteArray64)[source]

Bases: Codable, JsonSerde

Culprit structure.

target: ByteArray32
key: ByteArray32
signature: ByteArray64
__init__(target: ByteArray32, key: ByteArray32, signature: ByteArray64) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.Judgement(vote: Boolean, index: U16, signature: ByteArray64)[source]

Bases: Codable, JsonSerde

Judgement structure.

vote: Boolean
index: U16
signature: ByteArray64
__init__(vote: Boolean, index: U16, signature: ByteArray64) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.DisputesExtrinsic(verdicts: Verdicts, culprits: Culprits, faults: Faults)[source]

Bases: Codable, JsonSerde

Disputes extrinsic structure.

verdicts: Verdicts
culprits: Culprits
faults: Faults
__init__(verdicts: Verdicts, culprits: Culprits, faults: Faults) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.Fault(target: ByteArray32, vote: Boolean, key: ByteArray32, signature: ByteArray64)[source]

Bases: Codable, JsonSerde

Fault structure.

target: ByteArray32
vote: Boolean
key: ByteArray32
signature: ByteArray64
__init__(target: ByteArray32, vote: Boolean, key: ByteArray32, signature: ByteArray64) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.DisputesRecords(good: WorkReportHashes, bad: WorkReportHashes, wonky: WorkReportHashes, offenders: Offenders)[source]

Bases: Codable, JsonSerde

Disputes records structure.

good: WorkReportHashes
bad: WorkReportHashes
wonky: WorkReportHashes
offenders: Offenders
__init__(good: WorkReportHashes, bad: WorkReportHashes, wonky: WorkReportHashes, offenders: Offenders) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.ValidatorSignature(validator_index: U16, signature: ByteArray64)[source]

Bases: Codable, JsonSerde

Validator signature structure.

validator_index: U16
signature: ByteArray64
__init__(validator_index: U16, signature: ByteArray64) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.ReportGuarantee(report: WorkReport, slot: U32, signatures: ValidatorSignatures)[source]

Bases: Codable, JsonSerde

Report guarantee structure.

report: WorkReport
slot: U32
signatures: ValidatorSignatures
__init__(report: WorkReport, slot: U32, signatures: ValidatorSignatures) None

Initialize the Codable.

Parameters:
  • codec – Optional codec to use for encoding/decoding

  • enc_sequence – Optional function that returns sequence of fields to encode

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[T, int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

encode_into(buffer: bytearray, offset: int = 0) int

Encode into provided buffer.

encode_size() int

Calculate number of bytes needed to encode.

class jam.types.extrinsics.GuaranteesExtrinsic(initial: Sequence[T] = [], codec: Codec[T] | None = None)[source]

Bases: Vector[ReportGuarantee]

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[Vector[T], int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

class jam.types.extrinsics.PreimagesExtrinsic(initial: Sequence[T] = [], codec: Codec[T] | None = None)[source]

Bases: Vector[Preimage]

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[Vector[T], int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing

class jam.types.extrinsics.AssurancesExtrinsic(initial: Sequence[T] = [], codec: Codec[T] | None = None)[source]

Bases: Vector[AvailAssurance]

static decode_from(buffer: bytes | bytearray | memoryview, offset: int = 0) Tuple[Vector[T], int]

Decode from buffer. Must be implemented by subclasses or added via decorator.

Parameters:
  • buffer – Buffer to decode from

  • offset – Starting position in buffer

Returns:

  • The decoded value

  • Number of bytes read

Return type:

Tuple containing