Crate celestia_types

Source
Expand description

§Celestia types

Core types, traits and constants you may encounter when working with the Celestia ecosystem.

Most of the types are built on top of the celestia-tendermint-rs and celestia-proto and support the serialization and deserialization using protobuf and serde to the format understood by nodes in celestia network.

use celestia_types::{AppVersion, Blob, nmt::Namespace};

let my_namespace = Namespace::new_v0(&[1, 2, 3, 4, 5]).expect("Invalid namespace");
let blob = Blob::new(my_namespace, b"some data to store on blockchain".to_vec(), AppVersion::V2)
    .expect("Failed to create a blob");

assert_eq!(
    &serde_json::to_string_pretty(&blob).unwrap(), 
    indoc::indoc! {r#"{
      "namespace": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIDBAU=",
      "data": "c29tZSBkYXRhIHRvIHN0b3JlIG9uIGJsb2NrY2hhaW4=",
      "share_version": 0,
      "commitment": "m0A4feU6Fqd5Zy9td3M7lntG8A3PKqe6YdugmAsWz28=",
      "index": -1
    }"#},
);

Re-exports§

Modules§

  • Types related to creation and submission of blobs.
  • Blocks within the chains of a Tendermint network
  • Constants used within celestia ecosystem.
  • Types related to EDS.
  • Fraud proof related types and traits.
  • Celestia hash related types and traits.
  • Namespaces and Namespaced Merkle Tree.
  • p2pp2p
    Types related to the p2p layer of nodes in Celestia.
  • Types related to rows
  • Types related to the namespaced data.
  • Types related to samples.
  • Custom serializers to be used with serde.
  • Types and interfaces for accessing Celestia’s state-relevant information.
  • test_utilstest-utils
    Utilities for writing tests.
  • Primitives for the trust level of consensus commits.

Structs§

Enums§

Traits§

Type Aliases§