diff --git a/Cargo.lock b/Cargo.lock
index acea15be..31182a06 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -842,7 +842,7 @@ dependencies = [
[[package]]
name = "celestia-grpc"
-version = "0.1.0"
+version = "0.2.0"
dependencies = [
"bytes",
"celestia-grpc-macros",
@@ -870,7 +870,7 @@ dependencies = [
[[package]]
name = "celestia-grpc-macros"
-version = "0.1.0"
+version = "0.2.0"
dependencies = [
"proc-macro2",
"quote",
@@ -879,7 +879,7 @@ dependencies = [
[[package]]
name = "celestia-proto"
-version = "0.6.0"
+version = "0.7.0"
dependencies = [
"bytes",
"prost",
@@ -897,7 +897,7 @@ dependencies = [
[[package]]
name = "celestia-rpc"
-version = "0.8.0"
+version = "0.9.0"
dependencies = [
"anyhow",
"async-trait",
@@ -920,7 +920,7 @@ dependencies = [
[[package]]
name = "celestia-types"
-version = "0.9.0"
+version = "0.10.0"
dependencies = [
"base64",
"bech32",
@@ -3493,7 +3493,7 @@ dependencies = [
[[package]]
name = "lumina-cli"
-version = "0.5.2"
+version = "0.6.0"
dependencies = [
"anyhow",
"axum",
@@ -3518,7 +3518,7 @@ dependencies = [
[[package]]
name = "lumina-node"
-version = "0.8.0"
+version = "0.9.0"
dependencies = [
"async-trait",
"backoff",
@@ -3585,7 +3585,7 @@ dependencies = [
[[package]]
name = "lumina-node-wasm"
-version = "0.7.0"
+version = "0.8.0"
dependencies = [
"anyhow",
"blockstore",
diff --git a/Cargo.toml b/Cargo.toml
index 748fedf1..b715d21d 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,12 +4,12 @@ members = ["cli", "grpc", "node", "node-wasm", "node-uniffi", "proto", "rpc", "t
[workspace.dependencies]
blockstore = "0.7.1"
-lumina-node = { version = "0.8.0", path = "node" }
-lumina-node-wasm = { version = "0.7.0", path = "node-wasm" }
-celestia-proto = { version = "0.6.0", path = "proto" }
-celestia-grpc = { version = "0.1.0", path = "grpc" }
-celestia-rpc = { version = "0.8.0", path = "rpc", default-features = false }
-celestia-types = { version = "0.9.0", path = "types", default-features = false }
+lumina-node = { version = "0.9.0", path = "node" }
+lumina-node-wasm = { version = "0.8.0", path = "node-wasm" }
+celestia-proto = { version = "0.7.0", path = "proto" }
+celestia-grpc = { version = "0.2.0", path = "grpc" }
+celestia-rpc = { version = "0.9.0", path = "rpc", default-features = false }
+celestia-types = { version = "0.10.0", path = "types", default-features = false }
tendermint = { version = "0.40.0", default-features = false }
tendermint-proto = "0.40.0"
diff --git a/cli/CHANGELOG.md b/cli/CHANGELOG.md
index 4ae456ec..986ffb4a 100644
--- a/cli/CHANGELOG.md
+++ b/cli/CHANGELOG.md
@@ -6,6 +6,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.6.0](https://github.com/eigerco/lumina/compare/lumina-cli-v0.5.2...lumina-cli-v0.6.0) - 2025-01-14
+
+### Added
+
+- Add remaining node types for wasm (#476)
+- *(cli)* Add `in-memory-store` and `pruning-delay` parameters (#490)
+- *(node)* [**breaking**] Implement `NodeBuilder` and remove `NodeConfig` (#472)
+
+### Fixed
+
+- *(cli)* align with dah javascript breaking changes (#501)
+
+### Other
+
+- *(ci)* migrate toolchain action, parallelize (#503)
+- *(node,node-wasm)* [**breaking**] Rename `syncing_window` to `sampling_window` (#477)
+
## [0.5.2](https://github.com/eigerco/lumina/compare/lumina-cli-v0.5.1...lumina-cli-v0.5.2) - 2024-12-02
### Added
diff --git a/cli/Cargo.toml b/cli/Cargo.toml
index bebb050e..9dde4760 100644
--- a/cli/Cargo.toml
+++ b/cli/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "lumina-cli"
-version = "0.5.2"
+version = "0.6.0"
edition = "2021"
license = "Apache-2.0"
description = "Celestia data availability node implementation in Rust"
diff --git a/grpc/CHANGELOG.md b/grpc/CHANGELOG.md
index b1809e85..b70f6822 100644
--- a/grpc/CHANGELOG.md
+++ b/grpc/CHANGELOG.md
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.2.0](https://github.com/eigerco/lumina/compare/celestia-grpc-v0.1.0...celestia-grpc-v0.2.0) - 2025-01-14
+
+### Added
+
+- *(grpc)* [**breaking**] add wasm support and transaction client (#474)
+
+### Other
+
+- *(ci)* migrate toolchain action, parallelize (#503)
+- *(grpc)* Increase sleep before blob submission validation to reduce test flakyness (#481)
+
## [0.1.0](https://github.com/eigerco/lumina/releases/tag/celestia-grpc-v0.1.0) - 2024-12-02
### Added
diff --git a/grpc/Cargo.toml b/grpc/Cargo.toml
index 622f802b..10622307 100644
--- a/grpc/Cargo.toml
+++ b/grpc/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "celestia-grpc"
-version = "0.1.0"
+version = "0.2.0"
edition = "2021"
license = "Apache-2.0"
description = "A client for interacting with Celestia validator nodes gRPC"
@@ -19,7 +19,7 @@ categories = [
]
[dependencies]
-celestia-grpc-macros = { version = "0.1.0", path = "grpc-macros" }
+celestia-grpc-macros = { version = "0.2.0", path = "grpc-macros" }
celestia-proto = { workspace = true, features = ["tonic"] }
celestia-types.workspace = true
prost.workspace = true
diff --git a/grpc/grpc-macros/CHANGELOG.md b/grpc/grpc-macros/CHANGELOG.md
index 3103d3e5..09e6a497 100644
--- a/grpc/grpc-macros/CHANGELOG.md
+++ b/grpc/grpc-macros/CHANGELOG.md
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.2.0](https://github.com/eigerco/lumina/compare/celestia-grpc-macros-v0.1.0...celestia-grpc-macros-v0.2.0) - 2025-01-14
+
+### Added
+
+- *(grpc)* [**breaking**] add wasm support and transaction client (#474)
+
## [0.1.0](https://github.com/eigerco/lumina/releases/tag/celestia-grpc-macros-v0.1.0) - 2024-12-02
### Added
diff --git a/grpc/grpc-macros/Cargo.toml b/grpc/grpc-macros/Cargo.toml
index 2c94b255..38526be9 100644
--- a/grpc/grpc-macros/Cargo.toml
+++ b/grpc/grpc-macros/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "celestia-grpc-macros"
-version = "0.1.0"
+version = "0.2.0"
edition = "2021"
license = "Apache-2.0"
description = "Helper crate for grpc_method macro for creating gRPC client, used by celestia-grpc"
diff --git a/node-wasm/CHANGELOG.md b/node-wasm/CHANGELOG.md
index 9795d898..7de82247 100644
--- a/node-wasm/CHANGELOG.md
+++ b/node-wasm/CHANGELOG.md
@@ -6,6 +6,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.8.0](https://github.com/eigerco/lumina/compare/lumina-node-wasm-v0.7.0...lumina-node-wasm-v0.8.0) - 2025-01-14
+
+### Added
+
+- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468)
+- Add remaining node types for wasm (#476)
+- *(node-wasm)* Add more configuration options in `NodeConfig` (#487)
+- *(node)* [**breaking**] Implement `NodeBuilder` and remove `NodeConfig` (#472)
+
+### Other
+
+- *(ci)* migrate toolchain action, parallelize (#503)
+- *(node-wasm)* Update js build dependencies, commit package lock (#478)
+- *(node,node-wasm)* [**breaking**] Rename `syncing_window` to `sampling_window` (#477)
+
## [0.7.0](https://github.com/eigerco/lumina/compare/lumina-node-wasm-v0.6.1...lumina-node-wasm-v0.7.0) - 2024-12-02
### Added
diff --git a/node-wasm/Cargo.toml b/node-wasm/Cargo.toml
index 81698edc..fcb65935 100644
--- a/node-wasm/Cargo.toml
+++ b/node-wasm/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "lumina-node-wasm"
-version = "0.7.0"
+version = "0.8.0"
edition = "2021"
license = "Apache-2.0"
description = "Browser compatibility layer for the Lumina node"
diff --git a/node-wasm/js/README.md b/node-wasm/js/README.md
index 87274c34..4a6046aa 100644
--- a/node-wasm/js/README.md
+++ b/node-wasm/js/README.md
@@ -1,7 +1,7 @@
-**lumina-node-wasm** • [**Docs**](#globalsmd)
+**lumina-node-wasm**
***
@@ -55,27 +55,247 @@ For comprehensive and fully typed interface documentation, see [lumina-node](htt
# Classes
-
+
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
-[lumina-node-wasm](#globalsmd) / BlockRange
+[lumina-node-wasm](#globalsmd) / AppVersion
-## Class: BlockRange
+## Class: AppVersion
-A range of blocks between `start` and `end` height, inclusive
+Version of the App
+
+### Properties
+
+#### V1
+
+> `readonly` `static` **V1**: [`AppVersion`](#classesappversionmd)
+
+App v1
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:58
+
+***
+
+#### V2
+
+> `readonly` `static` **V2**: [`AppVersion`](#classesappversionmd)
+
+App v2
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:62
+
+***
+
+#### V3
+
+> `readonly` `static` **V3**: [`AppVersion`](#classesappversionmd)
+
+App v3
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:66
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:50
+
+***
+
+#### latest()
+
+> `static` **latest**(): [`AppVersion`](#classesappversionmd)
+
+Latest App version variant.
+
+##### Returns
+
+[`AppVersion`](#classesappversionmd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:54
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / Blob
+
+## Class: Blob
+
+Arbitrary data that can be stored in the network within certain [`Namespace`].
### Constructors
-#### new BlockRange()
+#### new Blob()
+
+> **new Blob**(`namespace`, `data`, `app_version`): [`Blob`](#classesblobmd)
+
+Create a new blob with the given data within the [`Namespace`].
+
+##### Parameters
+
+###### namespace
+
+[`Namespace`](#classesnamespacemd)
+
+###### data
+
+`Uint8Array`\<`ArrayBuffer`\>
+
+###### app\_version
+
+[`AppVersion`](#classesappversionmd)
+
+##### Returns
+
+[`Blob`](#classesblobmd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:84
+
+### Properties
+
+#### commitment
+
+> **commitment**: [`Commitment`](#classescommitmentmd)
+
+A [`Commitment`] computed from the [`Blob`]s data.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:102
+
+***
+
+#### data
+
+> **data**: `Uint8Array`\<`ArrayBuffer`\>
+
+Data stored within the [`Blob`].
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:92
+
+***
+
+#### index?
+
+> `optional` **index**: `bigint`
+
+Index of the blob's first share in the EDS. Only set for blobs retrieved from chain.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:106
+
+***
+
+#### namespace
+
+> **namespace**: [`Namespace`](#classesnamespacemd)
+
+A [`Namespace`] the [`Blob`] belongs to.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:88
+
+***
+
+#### share\_version
+
+> **share\_version**: `number`
+
+Version indicating the format in which [`Share`]s should be created from this [`Blob`].
+
+[`Share`]: crate::share::Share
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:98
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:80
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
-> **new BlockRange**(): [`BlockRange`](#classesblockrangemd)
+##### Defined in
+
+lumina\_node\_wasm.d.ts:75
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
##### Returns
-[`BlockRange`](#classesblockrangemd)
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:79
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / BlockRange
+
+## Class: BlockRange
+
+A range of blocks between `start` and `end` height, inclusive
### Properties
@@ -87,7 +307,7 @@ Last block height in range
##### Defined in
-lumina\_node\_wasm.d.ts:44
+lumina\_node\_wasm.d.ts:129
***
@@ -99,7 +319,7 @@ First block height in range
##### Defined in
-lumina\_node\_wasm.d.ts:48
+lumina\_node\_wasm.d.ts:125
### Methods
@@ -113,7 +333,7 @@ lumina\_node\_wasm.d.ts:48
##### Defined in
-lumina\_node\_wasm.d.ts:40
+lumina\_node\_wasm.d.ts:121
***
@@ -129,7 +349,116 @@ lumina\_node\_wasm.d.ts:40
##### Defined in
-lumina\_node\_wasm.d.ts:35
+lumina\_node\_wasm.d.ts:116
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:120
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / Commitment
+
+## Class: Commitment
+
+A merkle hash used to identify the [`Blob`]s data.
+
+In Celestia network, the transaction which pays for the blob's inclusion
+is separated from the data itself. The reason for that is to allow verifying
+the blockchain's state without the need to pull the actual data which got stored.
+To achieve that, the [`MsgPayForBlobs`] transaction only includes the [`Commitment`]s
+of the blobs it is paying for, not the data itself.
+
+The algorithm of computing the [`Commitment`] of the [`Blob`]'s [`Share`]s is
+designed in a way to allow easy and cheap proving of the [`Share`]s inclusion in the
+block. It is computed as a [`merkle hash`] of all the [`Nmt`] subtree roots created from
+the blob shares included in the [`ExtendedDataSquare`] rows. Assuming the `s1` and `s2`
+are the only shares of some blob posted to the celestia, they'll result in a single subtree
+root as shown below:
+
+```text
+NMT: row root
+ / \
+ o subtree root
+ / \ / \
+ _________________
+EDS row: | s | s | s1 | s2 |
+```
+
+Using subtree roots as a base for [`Commitment`] computation allows for much smaller
+inclusion proofs than when the [`Share`]s would be used directly, but it imposes some
+constraints on how the [`Blob`]s can be placed in the [`ExtendedDataSquare`]. You can
+read more about that in the [`share commitment rules`].
+
+[`Blob`]: crate::Blob
+[`Share`]: crate::share::Share
+[`MsgPayForBlobs`]: celestia_proto::celestia::blob::v1::MsgPayForBlobs
+[`merkle hash`]: tendermint::merkle::simple_hash_from_byte_vectors
+[`Nmt`]: crate::nmt::Nmt
+[`ExtendedDataSquare`]: crate::ExtendedDataSquare
+[`share commitment rules`]: https://github.com/celestiaorg/celestia-app/blob/main/specs/src/specs/data_square_layout.md#blob-share-commitment-rules
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:179
+
+***
+
+#### hash()
+
+> **hash**(): `Uint8Array`\<`ArrayBuffer`\>
+
+Hash of the commitment
+
+##### Returns
+
+`Uint8Array`\<`ArrayBuffer`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:183
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:174
***
@@ -141,119 +470,875 @@ Return stringified version of self.
##### Returns
-`string`
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:178
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / ConnectionCountersSnapshot
+
+## Class: ConnectionCountersSnapshot
+
+### Properties
+
+#### num\_connections
+
+> **num\_connections**: `number`
+
+The total number of connections, both pending and established.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:199
+
+***
+
+#### num\_established
+
+> **num\_established**: `number`
+
+The number of outgoing connections being established.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:215
+
+***
+
+#### num\_established\_incoming
+
+> **num\_established\_incoming**: `number`
+
+The number of established incoming connections.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:219
+
+***
+
+#### num\_established\_outgoing
+
+> **num\_established\_outgoing**: `number`
+
+The number of established outgoing connections.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:223
+
+***
+
+#### num\_pending
+
+> **num\_pending**: `number`
+
+The total number of pending connections, both incoming and outgoing.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:203
+
+***
+
+#### num\_pending\_incoming
+
+> **num\_pending\_incoming**: `number`
+
+The total number of pending connections, both incoming and outgoing.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:207
+
+***
+
+#### num\_pending\_outgoing
+
+> **num\_pending\_outgoing**: `number`
+
+The number of outgoing connections being established.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:211
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:195
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:190
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:194
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / DataAvailabilityHeader
+
+## Class: DataAvailabilityHeader
+
+Header with commitments of the data availability.
+
+It consists of the root hashes of the merkle trees created from each
+row and column of the [`ExtendedDataSquare`]. Those are used to prove
+the inclusion of the data in a block.
+
+The hash of this header is a hash of all rows and columns and thus a
+data commitment of the block.
+
+## Example
+
+```no_run
+## use celestia_types::{ExtendedHeader, Height, Share};
+## use celestia_types::nmt::{Namespace, NamespaceProof};
+## fn extended_header() -> ExtendedHeader {
+## unimplemented!();
+## }
+## fn shares_with_proof(_: Height, _: &Namespace) -> (Vec, NamespaceProof) {
+## unimplemented!();
+## }
+// fetch the block header and data for your namespace
+let namespace = Namespace::new_v0(&[1, 2, 3, 4]).unwrap();
+let eh = extended_header();
+let (shares, proof) = shares_with_proof(eh.height(), &namespace);
+
+// get the data commitment for a given row
+let dah = eh.dah;
+let root = dah.row_root(0).unwrap();
+
+// verify a proof of the inclusion of the shares
+assert!(proof.verify_complete_namespace(&root, &shares, *namespace).is_ok());
+```
+
+[`ExtendedDataSquare`]: crate::eds::ExtendedDataSquare
+
+### Methods
+
+#### columnRoot()
+
+> **columnRoot**(`column`): `any`
+
+Get the a root of the column with the given index.
+
+##### Parameters
+
+###### column
+
+`number`
+
+##### Returns
+
+`any`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:287
+
+***
+
+#### columnRoots()
+
+> **columnRoots**(): `any`[]
+
+Merkle roots of the [`ExtendedDataSquare`] columns.
+
+##### Returns
+
+`any`[]
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:279
+
+***
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:271
+
+***
+
+#### hash()
+
+> **hash**(): `any`
+
+Compute the combined hash of all rows and columns.
+
+This is the data commitment for the block.
+
+##### Returns
+
+`any`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:293
+
+***
+
+#### rowRoot()
+
+> **rowRoot**(`row`): `any`
+
+Get a root of the row with the given index.
+
+##### Parameters
+
+###### row
+
+`number`
+
+##### Returns
+
+`any`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:283
+
+***
+
+#### rowRoots()
+
+> **rowRoots**(): `any`[]
+
+Merkle roots of the [`ExtendedDataSquare`] rows.
+
+##### Returns
+
+`any`[]
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:275
+
+***
+
+#### squareWidth()
+
+> **squareWidth**(): `number`
+
+Get the size of the [`ExtendedDataSquare`] for which this header was built.
+
+##### Returns
+
+`number`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:297
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:266
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:270
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / ExtendedHeader
+
+## Class: ExtendedHeader
+
+Block header together with the relevant Data Availability metadata.
+
+[`ExtendedHeader`]s are used to announce and describe the blocks
+in the Celestia network.
+
+Before being used, each header should be validated and verified with a header you trust.
+
+## Example
+
+```
+## use celestia_types::ExtendedHeader;
+## fn trusted_genesis_header() -> ExtendedHeader {
+## let s = include_str!("../test_data/chain1/extended_header_block_1.json");
+## serde_json::from_str(s).unwrap()
+## }
+## fn some_untrusted_header() -> ExtendedHeader {
+## let s = include_str!("../test_data/chain1/extended_header_block_27.json");
+## serde_json::from_str(s).unwrap()
+## }
+let genesis_header = trusted_genesis_header();
+
+// fetch new header
+let fetched_header = some_untrusted_header();
+
+fetched_header.validate().expect("Invalid block header");
+genesis_header.verify(&fetched_header).expect("Malicious header received");
+```
+
+### Properties
+
+#### commit
+
+> `readonly` **commit**: `any`
+
+Commit metadata and signatures from validators committing the block.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:428
+
+***
+
+#### dah
+
+> **dah**: [`DataAvailabilityHeader`](#classesdataavailabilityheadermd)
+
+Header of the block data availability.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:420
+
+***
+
+#### header
+
+> `readonly` **header**: `any`
+
+Tendermint block header.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:424
+
+***
+
+#### validatorSet
+
+> `readonly` **validatorSet**: `any`
+
+Information about the set of validators commiting the block.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:432
+
+### Methods
+
+#### clone()
+
+> **clone**(): [`ExtendedHeader`](#classesextendedheadermd)
+
+Clone a header producing a deep copy of it.
+
+##### Returns
+
+[`ExtendedHeader`](#classesextendedheadermd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:342
+
+***
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:338
+
+***
+
+#### hash()
+
+> **hash**(): `string`
+
+Get the block hash.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:354
+
+***
+
+#### height()
+
+> **height**(): `bigint`
+
+Get the block height.
+
+##### Returns
+
+`bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:346
+
+***
+
+#### previousHeaderHash()
+
+> **previousHeaderHash**(): `string`
+
+Get the hash of the previous header.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:358
+
+***
+
+#### time()
+
+> **time**(): `number`
+
+Get the block time.
+
+##### Returns
+
+`number`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:350
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:333
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:337
+
+***
+
+#### validate()
+
+> **validate**(): `void`
+
+Decode protobuf encoded header and then validate it.
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:362
+
+***
+
+#### verify()
+
+> **verify**(`untrusted`): `void`
+
+Verify a chain of adjacent untrusted headers and make sure
+they are adjacent to `self`.
+
+## Errors
+
+If verification fails, this function will return an error with a reason of failure.
+This function will also return an error if untrusted headers and `self` don't form contiguous range
+
+##### Parameters
+
+###### untrusted
+
+[`ExtendedHeader`](#classesextendedheadermd)
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:372
+
+***
+
+#### verifyAdjacentRange()
+
+> **verifyAdjacentRange**(`untrusted`): `void`
+
+Verify a chain of adjacent untrusted headers and make sure
+they are adjacent to `self`.
+
+## Note
+
+Provided headers will be consumed by this method, meaning
+they will no longer be accessible. If this behavior is not desired,
+consider using `ExtendedHeader.clone()`.
+
+```js
+const genesis = hdr0;
+const headers = [hrd1, hdr2, hdr3];
+genesis.verifyAdjacentRange(headers.map(h => h.clone()));
+```
+
+## Errors
+
+If verification fails, this function will return an error with a reason of failure.
+This function will also return an error if untrusted headers and `self` don't form contiguous range
+
+##### Parameters
+
+###### untrusted
+
+[`ExtendedHeader`](#classesextendedheadermd)[]
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:416
+
+***
+
+#### verifyRange()
+
+> **verifyRange**(`untrusted`): `void`
+
+Verify a chain of adjacent untrusted headers.
+
+## Note
+
+Provided headers will be consumed by this method, meaning
+they will no longer be accessible. If this behavior is not desired,
+consider using `ExtendedHeader.clone()`.
+
+```js
+const genesis = hdr0;
+const headers = [hrd1, hdr2, hdr3];
+genesis.verifyRange(headers.map(h => h.clone()));
+```
+
+## Errors
+
+If verification fails, this function will return an error with a reason of failure.
+This function will also return an error if untrusted headers are not adjacent
+to each other.
+
+##### Parameters
+
+###### untrusted
+
+[`ExtendedHeader`](#classesextendedheadermd)[]
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:394
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / Namespace
+
+## Class: Namespace
+
+Namespace of the data published to the celestia network.
+
+The [`Namespace`] is a single byte defining the version
+followed by 28 bytes specifying concrete ID of the namespace.
+
+Currently there are two versions of namespaces:
+
+ - version `0` - the one allowing for the custom namespace ids. It requires an id to start
+ with 18 `0x00` bytes followed by a user specified suffix (except reserved ones, see below).
+ - version `255` - for secondary reserved namespaces. It requires an id to start with 27
+ `0xff` bytes followed by a single byte indicating the id.
+
+Some namespaces are reserved for the block creation purposes and cannot be used
+when submitting the blobs to celestia. Those fall into one of the two categories:
+
+ - primary reserved namespaces - those use version `0` and have id lower or equal to `0xff`
+ so they are always placed in blocks before user-submitted data.
+ - secondary reserved namespaces - those use version `0xff` so they are always placed after
+ user-submitted data.
+
+### Properties
+
+#### id
+
+> `readonly` **id**: `Uint8Array`\<`ArrayBuffer`\>
+
+Returns the trailing 28 bytes indicating the id of the [`Namespace`].
##### Defined in
-lumina\_node\_wasm.d.ts:39
+lumina\_node\_wasm.d.ts:541
+***
-
+#### version
+
+> `readonly` **version**: `number`
+
+Returns the first byte indicating the version of the [`Namespace`].
+
+##### Defined in
-[**lumina-node-wasm**](#readmemd) • **Docs**
+lumina\_node\_wasm.d.ts:537
***
-[lumina-node-wasm](#globalsmd) / ConnectionCountersSnapshot
+#### MAX\_PRIMARY\_RESERVED
-## Class: ConnectionCountersSnapshot
+> `readonly` `static` **MAX\_PRIMARY\_RESERVED**: [`Namespace`](#classesnamespacemd)
-### Constructors
+Maximal primary reserved [`Namespace`].
-#### new ConnectionCountersSnapshot()
+Used to indicate the end of the primary reserved group.
-> **new ConnectionCountersSnapshot**(): [`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd)
+##### Defined in
-##### Returns
+lumina\_node\_wasm.d.ts:512
-[`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd)
+***
-### Properties
+#### MIN\_SECONDARY\_RESERVED
-#### num\_connections
+> `readonly` `static` **MIN\_SECONDARY\_RESERVED**: [`Namespace`](#classesnamespacemd)
-> **num\_connections**: `number`
+Minimal secondary reserved [`Namespace`].
-The total number of connections, both pending and established.
+Used to indicate the beginning of the secondary reserved group.
##### Defined in
-lumina\_node\_wasm.d.ts:65
+lumina\_node\_wasm.d.ts:518
***
-#### num\_established
+#### NS\_SIZE
-> **num\_established**: `number`
+> `readonly` `static` **NS\_SIZE**: `number`
-The number of outgoing connections being established.
+Namespace size in bytes.
##### Defined in
-lumina\_node\_wasm.d.ts:69
+lumina\_node\_wasm.d.ts:491
***
-#### num\_established\_incoming
+#### PARITY\_SHARE
-> **num\_established\_incoming**: `number`
+> `readonly` `static` **PARITY\_SHARE**: [`Namespace`](#classesnamespacemd)
-The number of established incoming connections.
+The [`Namespace`] for `parity shares`.
+
+It is the namespace with which all the `parity shares` from
+`ExtendedDataSquare` are inserted to the `Nmt` when computing
+merkle roots.
##### Defined in
-lumina\_node\_wasm.d.ts:73
+lumina\_node\_wasm.d.ts:533
***
-#### num\_established\_outgoing
+#### PAY\_FOR\_BLOB
-> **num\_established\_outgoing**: `number`
+> `readonly` `static` **PAY\_FOR\_BLOB**: [`Namespace`](#classesnamespacemd)
-The number of established outgoing connections.
+Primary reserved [`Namespace`] for the compact Shares with MsgPayForBlobs transactions.
##### Defined in
-lumina\_node\_wasm.d.ts:77
+lumina\_node\_wasm.d.ts:499
***
-#### num\_pending
+#### PRIMARY\_RESERVED\_PADDING
-> **num\_pending**: `number`
+> `readonly` `static` **PRIMARY\_RESERVED\_PADDING**: [`Namespace`](#classesnamespacemd)
-The total number of pending connections, both incoming and outgoing.
+Primary reserved [`Namespace`] for the `Share`s used for padding.
+
+`Share`s with this namespace are inserted after other shares from primary reserved namespace
+so that user-defined namespaces are correctly aligned in `ExtendedDataSquare`
##### Defined in
-lumina\_node\_wasm.d.ts:81
+lumina\_node\_wasm.d.ts:506
***
-#### num\_pending\_incoming
+#### TAIL\_PADDING
-> **num\_pending\_incoming**: `number`
+> `readonly` `static` **TAIL\_PADDING**: [`Namespace`](#classesnamespacemd)
-The total number of pending connections, both incoming and outgoing.
+Secondary reserved [`Namespace`] used for padding after the blobs.
+
+It is used to fill up the `original data square` after all user-submitted
+blobs before the parity data is generated for the `ExtendedDataSquare`.
##### Defined in
-lumina\_node\_wasm.d.ts:85
+lumina\_node\_wasm.d.ts:525
***
-#### num\_pending\_outgoing
+#### TRANSACTION
-> **num\_pending\_outgoing**: `number`
+> `readonly` `static` **TRANSACTION**: [`Namespace`](#classesnamespacemd)
-The number of outgoing connections being established.
+Primary reserved [`Namespace`] for the compact `Share`s with `cosmos SDK` transactions.
##### Defined in
-lumina\_node\_wasm.d.ts:89
+lumina\_node\_wasm.d.ts:495
### Methods
+#### asBytes()
+
+> **asBytes**(): `Uint8Array`\<`ArrayBuffer`\>
+
+Converts the [`Namespace`] to a byte slice.
+
+##### Returns
+
+`Uint8Array`\<`ArrayBuffer`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:487
+
+***
+
#### free()
> **free**(): `void`
@@ -264,7 +1349,7 @@ lumina\_node\_wasm.d.ts:89
##### Defined in
-lumina\_node\_wasm.d.ts:61
+lumina\_node\_wasm.d.ts:465
***
@@ -280,7 +1365,7 @@ lumina\_node\_wasm.d.ts:61
##### Defined in
-lumina\_node\_wasm.d.ts:56
+lumina\_node\_wasm.d.ts:460
***
@@ -296,30 +1381,73 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:60
+lumina\_node\_wasm.d.ts:464
+***
-
+#### fromRaw()
+
+> `static` **fromRaw**(`raw`): [`Namespace`](#classesnamespacemd)
+
+Create a new [`Namespace`] from the raw bytes.
+
+## Errors
+
+This function will return an error if the slice length is different than
+[`NS_SIZE`] or if the namespace is invalid. If you are constructing the
+version `0` namespace, check [`newV0`].
+
+##### Parameters
+
+###### raw
+
+`Uint8Array`\<`ArrayBuffer`\>
+
+##### Returns
+
+[`Namespace`](#classesnamespacemd)
-[**lumina-node-wasm**](#readmemd) • **Docs**
+##### Defined in
+
+lumina\_node\_wasm.d.ts:483
***
-[lumina-node-wasm](#globalsmd) / NetworkInfoSnapshot
+#### newV0()
-## Class: NetworkInfoSnapshot
+> `static` **newV0**(`id`): [`Namespace`](#classesnamespacemd)
-Information about the connections
+Create a new [`Namespace`] version `0` with given id.
-### Constructors
+Check [`Namespace::new_v0`] for more details.
+
+[`Namespace::new_v0`]: https://docs.rs/celestia-types/latest/celestia_types/nmt/struct.Namespace.html#method.new_v0
+##### Parameters
-#### new NetworkInfoSnapshot()
+###### id
-> **new NetworkInfoSnapshot**(): [`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)
+`Uint8Array`\<`ArrayBuffer`\>
##### Returns
-[`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)
+[`Namespace`](#classesnamespacemd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:473
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / NetworkInfoSnapshot
+
+## Class: NetworkInfoSnapshot
+
+Information about the connections
### Properties
@@ -331,7 +1459,7 @@ Gets counters for ongoing network connections.
##### Defined in
-lumina\_node\_wasm.d.ts:107
+lumina\_node\_wasm.d.ts:564
***
@@ -343,7 +1471,7 @@ The number of connected peers, i.e. peers with whom at least one established con
##### Defined in
-lumina\_node\_wasm.d.ts:111
+lumina\_node\_wasm.d.ts:560
### Methods
@@ -357,7 +1485,7 @@ lumina\_node\_wasm.d.ts:111
##### Defined in
-lumina\_node\_wasm.d.ts:103
+lumina\_node\_wasm.d.ts:556
***
@@ -373,7 +1501,7 @@ lumina\_node\_wasm.d.ts:103
##### Defined in
-lumina\_node\_wasm.d.ts:98
+lumina\_node\_wasm.d.ts:551
***
@@ -389,12 +1517,12 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:102
+lumina\_node\_wasm.d.ts:555
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
@@ -418,7 +1546,9 @@ expected to have `MessagePort`-like interface for sending and receiving messages
##### Parameters
-• **port**: `any`
+###### port
+
+`any`
##### Returns
@@ -426,7 +1556,7 @@ expected to have `MessagePort`-like interface for sending and receiving messages
##### Defined in
-lumina\_node\_wasm.d.ts:126
+lumina\_node\_wasm.d.ts:578
### Methods
@@ -438,7 +1568,9 @@ Establish a new connection to the existing worker over provided port
##### Parameters
-• **port**: `any`
+###### port
+
+`any`
##### Returns
@@ -446,7 +1578,7 @@ Establish a new connection to the existing worker over provided port
##### Defined in
-lumina\_node\_wasm.d.ts:132
+lumina\_node\_wasm.d.ts:582
***
@@ -462,7 +1594,7 @@ Get all the peers that node is connected to.
##### Defined in
-lumina\_node\_wasm.d.ts:182
+lumina\_node\_wasm.d.ts:619
***
@@ -478,7 +1610,7 @@ Returns a [`BroadcastChannel`] for events generated by [`Node`].
##### Defined in
-lumina\_node\_wasm.d.ts:298
+lumina\_node\_wasm.d.ts:686
***
@@ -492,59 +1624,57 @@ lumina\_node\_wasm.d.ts:298
##### Defined in
-lumina\_node\_wasm.d.ts:120
+lumina\_node\_wasm.d.ts:573
***
#### getHeaderByHash()
-> **getHeaderByHash**(`hash`): `Promise`\<`any`\>
+> **getHeaderByHash**(`hash`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
Get a synced header for the block with a given hash.
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Parameters
-• **hash**: `string`
+###### hash
+
+`string`
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:257
+lumina\_node\_wasm.d.ts:662
***
#### getHeaderByHeight()
-> **getHeaderByHeight**(`height`): `Promise`\<`any`\>
+> **getHeaderByHeight**(`height`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
Get a synced header for the block with a given height.
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Parameters
-• **height**: `bigint`
+###### height
+
+`bigint`
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:266
+lumina\_node\_wasm.d.ts:666
***
#### getHeaders()
-> **getHeaders**(`start_height`?, `end_height`?): `Promise`\<`any`[]\>
+> **getHeaders**(`start_height`?, `end_height`?): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\>
Get synced headers from the given heights range.
@@ -556,83 +1686,77 @@ store.
If range contains a height of a header that is not found in the store.
-Returns an array of javascript objects with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Parameters
-• **start\_height?**: `bigint`
+###### start\_height?
+
+`bigint`
-• **end\_height?**: `bigint`
+###### end\_height?
+
+`bigint`
##### Returns
-`Promise`\<`any`[]\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\>
##### Defined in
-lumina\_node\_wasm.d.ts:284
+lumina\_node\_wasm.d.ts:678
***
#### getLocalHeadHeader()
-> **getLocalHeadHeader**(): `Promise`\<`any`\>
+> **getLocalHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
Get the latest locally synced header.
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:248
+lumina\_node\_wasm.d.ts:658
***
#### getNetworkHeadHeader()
-> **getNetworkHeadHeader**(): `Promise`\<`any`\>
+> **getNetworkHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
Get the latest header announced in the network.
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:240
+lumina\_node\_wasm.d.ts:654
***
#### getSamplingMetadata()
-> **getSamplingMetadata**(`height`): `Promise`\<`any`\>
+> **getSamplingMetadata**(`height`): `Promise`\<[`SamplingMetadata`](#classessamplingmetadatamd)\>
Get data sampling metadata of an already sampled height.
-Returns a javascript object with given structure:
-https://docs.rs/lumina-node/latest/lumina_node/store/struct.SamplingMetadata.html
-
##### Parameters
-• **height**: `bigint`
+###### height
+
+`bigint`
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`SamplingMetadata`](#classessamplingmetadatamd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:293
+lumina\_node\_wasm.d.ts:682
***
@@ -648,7 +1772,7 @@ Check whether Lumina is currently running
##### Defined in
-lumina\_node\_wasm.d.ts:137
+lumina\_node\_wasm.d.ts:586
***
@@ -664,7 +1788,7 @@ Get all the multiaddresses on which the node listens.
##### Defined in
-lumina\_node\_wasm.d.ts:177
+lumina\_node\_wasm.d.ts:615
***
@@ -680,7 +1804,7 @@ Get node's local peer ID.
##### Defined in
-lumina\_node\_wasm.d.ts:152
+lumina\_node\_wasm.d.ts:595
***
@@ -696,7 +1820,7 @@ Get current network info.
##### Defined in
-lumina\_node\_wasm.d.ts:172
+lumina\_node\_wasm.d.ts:611
***
@@ -712,99 +1836,126 @@ Get current [`PeerTracker`] info.
##### Defined in
-lumina\_node\_wasm.d.ts:157
+lumina\_node\_wasm.d.ts:599
+
+***
+
+#### requestAllBlobs()
+
+> **requestAllBlobs**(`header`, `namespace`, `timeout_secs`?): `Promise`\<[`Blob`](#classesblobmd)[]\>
+
+Request all blobs with provided namespace in the block corresponding to this header
+using bitswap protocol.
+
+##### Parameters
+
+###### header
+
+[`ExtendedHeader`](#classesextendedheadermd)
+
+###### namespace
+
+[`Namespace`](#classesnamespacemd)
+
+###### timeout\_secs?
+
+`number`
+
+##### Returns
+
+`Promise`\<[`Blob`](#classesblobmd)[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:646
***
#### requestHeaderByHash()
-> **requestHeaderByHash**(`hash`): `Promise`\<`any`\>
+> **requestHeaderByHash**(`hash`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
Request a header for the block with a given hash from the network.
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Parameters
-• **hash**: `string`
+###### hash
+
+`string`
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:206
+lumina\_node\_wasm.d.ts:631
***
#### requestHeaderByHeight()
-> **requestHeaderByHeight**(`height`): `Promise`\<`any`\>
+> **requestHeaderByHeight**(`height`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
Request a header for the block with a given height from the network.
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Parameters
-• **height**: `bigint`
+###### height
+
+`bigint`
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:215
+lumina\_node\_wasm.d.ts:635
***
#### requestHeadHeader()
-> **requestHeadHeader**(): `Promise`\<`any`\>
+> **requestHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
Request the head header from the network.
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Returns
-`Promise`\<`any`\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
##### Defined in
-lumina\_node\_wasm.d.ts:197
+lumina\_node\_wasm.d.ts:627
***
#### requestVerifiedHeaders()
-> **requestVerifiedHeaders**(`from_header`, `amount`): `Promise`\<`any`[]\>
+> **requestVerifiedHeaders**(`from`, `amount`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\>
Request headers in range (from, from + amount] from the network.
The headers will be verified with the `from` header.
-Returns an array of javascript objects with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
-
##### Parameters
-• **from\_header**: `any`
+###### from
+
+[`ExtendedHeader`](#classesextendedheadermd)
+
+###### amount
-• **amount**: `bigint`
+`bigint`
##### Returns
-`Promise`\<`any`[]\>
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\>
##### Defined in
-lumina\_node\_wasm.d.ts:227
+lumina\_node\_wasm.d.ts:641
***
@@ -816,9 +1967,13 @@ Trust or untrust the peer with a given ID.
##### Parameters
-• **peer\_id**: `string`
+###### peer\_id
+
+`string`
+
+###### is\_trusted
-• **is\_trusted**: `boolean`
+`boolean`
##### Returns
@@ -826,7 +1981,7 @@ Trust or untrust the peer with a given ID.
##### Defined in
-lumina\_node\_wasm.d.ts:189
+lumina\_node\_wasm.d.ts:623
***
@@ -838,7 +1993,9 @@ Start a node with the provided config, if it's not running
##### Parameters
-• **config**: [`NodeConfig`](#classesnodeconfigmd)
+###### config
+
+[`NodeConfig`](#classesnodeconfigmd)
##### Returns
@@ -846,7 +2003,7 @@ Start a node with the provided config, if it's not running
##### Defined in
-lumina\_node\_wasm.d.ts:143
+lumina\_node\_wasm.d.ts:590
***
@@ -860,7 +2017,7 @@ lumina\_node\_wasm.d.ts:143
##### Defined in
-lumina\_node\_wasm.d.ts:147
+lumina\_node\_wasm.d.ts:591
***
@@ -876,7 +2033,7 @@ Get current header syncing info.
##### Defined in
-lumina\_node\_wasm.d.ts:232
+lumina\_node\_wasm.d.ts:650
***
@@ -892,7 +2049,7 @@ Wait until the node is connected to at least 1 peer.
##### Defined in
-lumina\_node\_wasm.d.ts:162
+lumina\_node\_wasm.d.ts:603
***
@@ -908,12 +2065,12 @@ Wait until the node is connected to at least 1 trusted peer.
##### Defined in
-lumina\_node\_wasm.d.ts:167
+lumina\_node\_wasm.d.ts:607
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
@@ -923,40 +2080,56 @@ lumina\_node\_wasm.d.ts:167
Config for the lumina wasm node.
-### Constructors
+### Properties
-#### new NodeConfig()
+#### bootnodes
-> **new NodeConfig**(): [`NodeConfig`](#classesnodeconfigmd)
+> **bootnodes**: `string`[]
-##### Returns
+A list of bootstrap peers to connect to.
-[`NodeConfig`](#classesnodeconfigmd)
+##### Defined in
-### Properties
+lumina\_node\_wasm.d.ts:713
-#### bootnodes
+***
-> **bootnodes**: `string`[]
+#### custom\_pruning\_delay\_secs?
-A list of bootstrap peers to connect to.
+> `optional` **custom\_pruning\_delay\_secs**: `number`
+
+Pruning delay defines how much time the pruner should wait after sampling window in
+order to prune the block.
+
+If this is not set, then default value will apply:
+
+* If `use_persistent_memory == true`, default value is 1 hour.
+* If `use_persistent_memory == false`, default value is 60 seconds.
+
+The minimum value that can be set is 60 seconds.
##### Defined in
-lumina\_node\_wasm.d.ts:322
+lumina\_node\_wasm.d.ts:742
***
-#### custom\_syncing\_window\_secs?
+#### custom\_sampling\_window\_secs?
+
+> `optional` **custom\_sampling\_window\_secs**: `number`
-> `optional` **custom\_syncing\_window\_secs**: `number`
+Sampling window defines maximum age of a block considered for syncing and sampling.
-Syncing window size, defines maximum age of headers considered for syncing and sampling.
-Headers older than syncing window by more than an hour are eligible for pruning.
+If this is not set, then default value will apply:
+
+* If `use_persistent_memory == true`, default value is 30 days.
+* If `use_persistent_memory == false`, default value is 60 seconds.
+
+The minimum value that can be set is 60 seconds.
##### Defined in
-lumina\_node\_wasm.d.ts:327
+lumina\_node\_wasm.d.ts:730
***
@@ -968,7 +2141,21 @@ A network to connect to.
##### Defined in
-lumina\_node\_wasm.d.ts:331
+lumina\_node\_wasm.d.ts:709
+
+***
+
+#### use\_persistent\_memory
+
+> **use\_persistent\_memory**: `boolean`
+
+Whether to store data in persistent memory or not.
+
+**Default value:** true
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:719
### Methods
@@ -982,7 +2169,7 @@ lumina\_node\_wasm.d.ts:331
##### Defined in
-lumina\_node\_wasm.d.ts:312
+lumina\_node\_wasm.d.ts:701
***
@@ -998,7 +2185,7 @@ lumina\_node\_wasm.d.ts:312
##### Defined in
-lumina\_node\_wasm.d.ts:307
+lumina\_node\_wasm.d.ts:696
***
@@ -1014,7 +2201,7 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:311
+lumina\_node\_wasm.d.ts:700
***
@@ -1026,7 +2213,9 @@ Get the configuration with default bootnodes for provided network
##### Parameters
-• **network**: [`Network`](#enumerationsnetworkmd)
+###### network
+
+[`Network`](#enumerationsnetworkmd)
##### Returns
@@ -1034,12 +2223,12 @@ Get the configuration with default bootnodes for provided network
##### Defined in
-lumina\_node\_wasm.d.ts:318
+lumina\_node\_wasm.d.ts:705
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
@@ -1060,7 +2249,9 @@ them and sending a response back, as well as accepting new `NodeClient` connecti
##### Parameters
-• **port\_like\_object**: `any`
+###### port\_like\_object
+
+`any`
##### Returns
@@ -1068,7 +2259,7 @@ them and sending a response back, as well as accepting new `NodeClient` connecti
##### Defined in
-lumina\_node\_wasm.d.ts:344
+lumina\_node\_wasm.d.ts:752
### Methods
@@ -1082,7 +2273,7 @@ lumina\_node\_wasm.d.ts:344
##### Defined in
-lumina\_node\_wasm.d.ts:340
+lumina\_node\_wasm.d.ts:751
***
@@ -1096,12 +2287,12 @@ lumina\_node\_wasm.d.ts:340
##### Defined in
-lumina\_node\_wasm.d.ts:348
+lumina\_node\_wasm.d.ts:753
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
@@ -1111,16 +2302,6 @@ lumina\_node\_wasm.d.ts:348
Statistics of the connected peers
-### Constructors
-
-#### new PeerTrackerInfoSnapshot()
-
-> **new PeerTrackerInfoSnapshot**(): [`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)
-
-##### Returns
-
-[`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)
-
### Properties
#### num\_connected\_peers
@@ -1131,7 +2312,7 @@ Number of the connected peers.
##### Defined in
-lumina\_node\_wasm.d.ts:366
+lumina\_node\_wasm.d.ts:772
***
@@ -1143,7 +2324,7 @@ Number of the connected trusted peers.
##### Defined in
-lumina\_node\_wasm.d.ts:370
+lumina\_node\_wasm.d.ts:776
### Methods
@@ -1157,7 +2338,7 @@ lumina\_node\_wasm.d.ts:370
##### Defined in
-lumina\_node\_wasm.d.ts:362
+lumina\_node\_wasm.d.ts:768
***
@@ -1173,7 +2354,7 @@ lumina\_node\_wasm.d.ts:362
##### Defined in
-lumina\_node\_wasm.d.ts:357
+lumina\_node\_wasm.d.ts:763
***
@@ -1189,30 +2370,73 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:361
+lumina\_node\_wasm.d.ts:767
-
+
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
-[lumina-node-wasm](#globalsmd) / SyncingInfoSnapshot
+[lumina-node-wasm](#globalsmd) / SamplingMetadata
-## Class: SyncingInfoSnapshot
+## Class: SamplingMetadata
-Status of the synchronization.
+Sampling metadata for a block.
-### Constructors
+This struct persists DAS-ing information in a header store for future reference.
+
+### Properties
+
+#### cids
+
+> `readonly` **cids**: `Uint8Array`\<`ArrayBuffer`\>[]
+
+Return Array of cids
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:793
+
+***
+
+#### status
+
+> **status**: [`SamplingStatus`](#enumerationssamplingstatusmd)
+
+Indicates whether this node was able to successfuly sample the block
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:789
+
+### Methods
-#### new SyncingInfoSnapshot()
+#### free()
-> **new SyncingInfoSnapshot**(): [`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)
+> **free**(): `void`
##### Returns
-[`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:785
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / SyncingInfoSnapshot
+
+## Class: SyncingInfoSnapshot
+
+Status of the synchronization.
### Properties
@@ -1224,7 +2448,7 @@ Ranges of headers that are already synchronised
##### Defined in
-lumina\_node\_wasm.d.ts:388
+lumina\_node\_wasm.d.ts:812
***
@@ -1236,7 +2460,7 @@ Syncing target. The latest height seen in the network that was successfully veri
##### Defined in
-lumina\_node\_wasm.d.ts:392
+lumina\_node\_wasm.d.ts:816
### Methods
@@ -1250,7 +2474,7 @@ lumina\_node\_wasm.d.ts:392
##### Defined in
-lumina\_node\_wasm.d.ts:384
+lumina\_node\_wasm.d.ts:808
***
@@ -1266,7 +2490,7 @@ lumina\_node\_wasm.d.ts:384
##### Defined in
-lumina\_node\_wasm.d.ts:379
+lumina\_node\_wasm.d.ts:803
***
@@ -1282,14 +2506,14 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:383
+lumina\_node\_wasm.d.ts:807
# Enumerations
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
@@ -1347,12 +2571,61 @@ Private local network.
lumina\_node\_wasm.d.ts:26
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / SamplingStatus
+
+## Enumeration: SamplingStatus
+
+Sampling status for a block.
+
+### Enumeration Members
+
+#### Accepted
+
+> **Accepted**: `1`
+
+Sampling is done and block is accepted.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:39
+
+***
+
+#### Rejected
+
+> **Rejected**: `2`
+
+Sampling is done and block is rejected.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:43
+
+***
+
+#### Unknown
+
+> **Unknown**: `0`
+
+Sampling is not done.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:35
+
# Functions
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
@@ -1375,7 +2648,7 @@ lumina\_node\_wasm.d.ts:6
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
@@ -1384,16 +2657,24 @@ lumina\_node\_wasm.d.ts:6
## Enumerations
- [Network](#enumerationsnetworkmd)
+- [SamplingStatus](#enumerationssamplingstatusmd)
## Classes
+- [AppVersion](#classesappversionmd)
+- [Blob](#classesblobmd)
- [BlockRange](#classesblockrangemd)
+- [Commitment](#classescommitmentmd)
- [ConnectionCountersSnapshot](#classesconnectioncounterssnapshotmd)
+- [DataAvailabilityHeader](#classesdataavailabilityheadermd)
+- [ExtendedHeader](#classesextendedheadermd)
+- [Namespace](#classesnamespacemd)
- [NetworkInfoSnapshot](#classesnetworkinfosnapshotmd)
- [NodeClient](#classesnodeclientmd)
- [NodeConfig](#classesnodeconfigmd)
- [NodeWorker](#classesnodeworkermd)
- [PeerTrackerInfoSnapshot](#classespeertrackerinfosnapshotmd)
+- [SamplingMetadata](#classessamplingmetadatamd)
- [SyncingInfoSnapshot](#classessyncinginfosnapshotmd)
## Functions
diff --git a/node-wasm/js/package.json b/node-wasm/js/package.json
index 06b00155..123aff11 100644
--- a/node-wasm/js/package.json
+++ b/node-wasm/js/package.json
@@ -5,7 +5,7 @@
"Eiger "
],
"description": "Lumina node for Celestia, running in browser",
- "version": "0.7.0",
+ "version": "0.8.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -19,7 +19,7 @@
"main": "index.js",
"homepage": "https://www.eiger.co",
"dependencies": {
- "lumina-node-wasm": "0.7.0"
+ "lumina-node-wasm": "0.8.0"
},
"keywords": [
"blockchain",
diff --git a/node/CHANGELOG.md b/node/CHANGELOG.md
index b5a159b3..a4b1f4bb 100644
--- a/node/CHANGELOG.md
+++ b/node/CHANGELOG.md
@@ -6,6 +6,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.9.0](https://github.com/eigerco/lumina/compare/lumina-node-v0.8.0...lumina-node-v0.9.0) - 2025-01-14
+
+### Added
+
+- adding uniffi bindings to support android and ios (#473)
+- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468)
+- Add remaining node types for wasm (#476)
+- *(types,rpc)* [**breaking**] move TxConfig to celestia-rpc (#485)
+- *(node)* Implement `EitherStore` combinator struct (#484)
+- *(node)* [**breaking**] Implement `NodeBuilder` and remove `NodeConfig` (#472)
+
+### Other
+
+- *(ci)* migrate toolchain action, parallelize (#503)
+- *(node,node-wasm)* [**breaking**] Rename `syncing_window` to `sampling_window` (#477)
+
## [0.8.0](https://github.com/eigerco/lumina/compare/lumina-node-v0.7.0...lumina-node-v0.8.0) - 2024-12-02
### Added
diff --git a/node/Cargo.toml b/node/Cargo.toml
index 2235740d..e7aa0188 100644
--- a/node/Cargo.toml
+++ b/node/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "lumina-node"
-version = "0.8.0"
+version = "0.9.0"
edition = "2021"
license = "Apache-2.0"
description = "Celestia data availability node implementation in Rust"
diff --git a/proto/CHANGELOG.md b/proto/CHANGELOG.md
index bbcbad77..038894aa 100644
--- a/proto/CHANGELOG.md
+++ b/proto/CHANGELOG.md
@@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.7.0](https://github.com/eigerco/lumina/compare/celestia-proto-v0.6.0...celestia-proto-v0.7.0) - 2025-01-14
+
+### Added
+
+- *(grpc)* [**breaking**] add wasm support and transaction client (#474)
+
+### Other
+
+- *(ci)* migrate toolchain action, parallelize (#503)
+- [**breaking**] Add notes about Celestia's Tendermint modifications (#471)
+
## [0.6.0](https://github.com/eigerco/lumina/compare/celestia-proto-v0.5.0...celestia-proto-v0.6.0) - 2024-12-02
### Added
diff --git a/proto/Cargo.toml b/proto/Cargo.toml
index 01222b8c..9c4f535a 100644
--- a/proto/Cargo.toml
+++ b/proto/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "celestia-proto"
-version = "0.6.0"
+version = "0.7.0"
edition = "2021"
license = "Apache-2.0"
description = "Rust implementation of proto structs used in celestia ecosystem"
diff --git a/rpc/CHANGELOG.md b/rpc/CHANGELOG.md
index 42198d0c..bd1c441b 100644
--- a/rpc/CHANGELOG.md
+++ b/rpc/CHANGELOG.md
@@ -6,6 +6,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.9.0](https://github.com/eigerco/lumina/compare/celestia-rpc-v0.8.0...celestia-rpc-v0.9.0) - 2025-01-14
+
+### Added
+
+- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468)
+- *(types,rpc)* [**breaking**] move TxConfig to celestia-rpc (#485)
+
+### Other
+
+- *(ci)* migrate toolchain action, parallelize (#503)
+
## [0.8.0](https://github.com/eigerco/lumina/compare/celestia-rpc-v0.7.1...celestia-rpc-v0.8.0) - 2024-12-02
### Added
diff --git a/rpc/Cargo.toml b/rpc/Cargo.toml
index 334a73df..9d5bd466 100644
--- a/rpc/Cargo.toml
+++ b/rpc/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "celestia-rpc"
-version = "0.8.0"
+version = "0.9.0"
edition = "2021"
license = "Apache-2.0"
description = "A collection of traits for interacting with Celestia data availability nodes RPC"
diff --git a/types/CHANGELOG.md b/types/CHANGELOG.md
index 05ea888e..45874912 100644
--- a/types/CHANGELOG.md
+++ b/types/CHANGELOG.md
@@ -6,6 +6,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
+## [0.10.0](https://github.com/eigerco/lumina/compare/celestia-types-v0.9.0...celestia-types-v0.10.0) - 2025-01-14
+
+### Added
+
+- *(grpc)* [**breaking**] add wasm support and transaction client (#474)
+- *(types)* add serde feature for nmt-rs (#480)
+- *(node-wasm, types)* [**breaking**] Add method to get blobs for wasm (#468)
+- Add remaining node types for wasm (#476)
+- *(types,rpc)* [**breaking**] move TxConfig to celestia-rpc (#485)
+
+### Fixed
+
+- *(types)* RowNamespaceData binary deserialization (#493)
+
+### Other
+
+- *(ci)* migrate toolchain action, parallelize (#503)
+
## [0.9.0](https://github.com/eigerco/lumina/compare/celestia-types-v0.8.0...celestia-types-v0.9.0) - 2024-12-02
### Added
diff --git a/types/Cargo.toml b/types/Cargo.toml
index 113233fc..00357f40 100644
--- a/types/Cargo.toml
+++ b/types/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "celestia-types"
-version = "0.9.0"
+version = "0.10.0"
edition = "2021"
license = "Apache-2.0"
description = "Core types, traits and constants for working with the Celestia ecosystem"