Source code for celestia.types.share

from dataclasses import dataclass

from celestia.types.blob import RowProof, Proof
from celestia.types.common_types import Base64, Namespace


[docs] @dataclass class SampleCoords: """ A class representing coordinates for a sample, specifically the row and column. Attributes: row (int): The row index of the sample. col (int): The column index of the sample. """ row: int col: int
[docs] @dataclass class ShareProof: """ A class representing a share proof, which consists of a namespace ID, namespace version, row proof, data, and share proofs. Attributes: namespace_id (Namespace): The namespace identifier. namespace_version (int): The version of the namespace. row_proof (RowProof): The proof related to the row. data (tuple[Base64, ...]): The data associated with the share proof. share_proofs (tuple[Proof, ...]): Additional share proofs. """ namespace_id: Namespace namespace_version: int row_proof: RowProof data: tuple[Base64, ...] share_proofs: tuple[Proof, ...] def __init__(self, namespace_id: Namespace, namespace_version: int, row_proof: dict, data: tuple[Base64, ...], share_proofs: list[dict]): self.namespace_id = Namespace.ensure_type(namespace_id) self.namespace_version = int(namespace_version) self.row_proof = RowProof(**row_proof) self.data = tuple(data_unit for data_unit in data) self.share_proofs = tuple(Proof(**share_proof) for share_proof in share_proofs)
[docs] @dataclass class GetRangeResult: """ A class representing the result of a range retrieval, including shares and proof. Attributes: shares (tuple[Base64, ...]): The shares related to the range. proof (ShareProof): The proof associated with the range retrieval. """ shares: tuple[Base64, ...] proof: ShareProof def __init__(self, Shares: list[Base64], Proof: dict): self.shares = tuple(share for share in Shares) self.proof = ShareProof(**Proof)
[docs] @staticmethod def deserializer(result: dict) -> 'GetRangeResult': """ Deserialize a result dictionary into a GetRangeResult object. Args: result (dict): The dictionary representation of a GetRangeResult. Returns: GetRangeResult: The deserialized GetRangeResult object. """ if result is not None: return GetRangeResult(**result)
[docs] @dataclass class ExtendedDataSquare: """ A class representing an extended data square, including the data square and codec. Attributes: data_square (tuple[Base64, ...]): The data square. codec (str): The codec used for the data. """ data_square: tuple[Base64, ...] codec: str
[docs] @staticmethod def deserializer(result: dict) -> 'ExtendedDataSquare': """ Deserialize a result dictionary into an ExtendedDataSquare object. Args: result (dict): The dictionary representation of a ExtendedDataSquare. Returns: ExtendedDataSquare: The deserialized ExtendedDataSquare object. """ if result is not None: return ExtendedDataSquare(**result)
[docs] @dataclass class NamespaceData: """ A class representing namespace data, consisting of shares and proof. Attributes: shares (tuple[Base64, ...]): The shares related to the namespace. proof (Proof): The proof associated with the namespace data. """ shares: tuple[Base64, ...] proof: Proof def __init__(self, shares: list[Base64], proof: dict): self.shares = tuple(share for share in shares) self.proof = Proof(**proof)
[docs] @staticmethod def deserializer(result: dict) -> 'NamespaceData': """ Deserialize a result dictionary into a NamespaceData object. Args: result (dict): The dictionary representation of a NamespaceData. Returns: NamespaceData: The deserialized NamespaceData object. """ if result is not None: return NamespaceData(**result)