diff --git a/Cargo.lock b/Cargo.lock
index 4bccc03a..3e1272c7 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",
@@ -872,7 +872,7 @@ dependencies = [
[[package]]
name = "celestia-grpc-macros"
-version = "0.1.0"
+version = "0.2.0"
dependencies = [
"proc-macro2",
"quote",
@@ -881,7 +881,7 @@ dependencies = [
[[package]]
name = "celestia-proto"
-version = "0.6.0"
+version = "0.7.0"
dependencies = [
"bytes",
"prost",
@@ -899,7 +899,7 @@ dependencies = [
[[package]]
name = "celestia-rpc"
-version = "0.8.0"
+version = "0.9.0"
dependencies = [
"anyhow",
"async-trait",
@@ -922,7 +922,7 @@ dependencies = [
[[package]]
name = "celestia-types"
-version = "0.9.0"
+version = "0.10.0"
dependencies = [
"base64",
"bech32",
@@ -3495,7 +3495,7 @@ dependencies = [
[[package]]
name = "lumina-cli"
-version = "0.5.2"
+version = "0.6.0"
dependencies = [
"anyhow",
"axum",
@@ -3520,7 +3520,7 @@ dependencies = [
[[package]]
name = "lumina-node"
-version = "0.8.0"
+version = "0.9.0"
dependencies = [
"async-trait",
"backoff",
@@ -3587,7 +3587,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 8bbc8681..7b2301c8 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..e0981f31 100644
--- a/cli/CHANGELOG.md
+++ b/cli/CHANGELOG.md
@@ -6,6 +6,24 @@ 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-27
+
+### Added
+
+- *(grpc,node-wasm)* add javascript bindings for tx client (#510)
+- 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..8b17753b 100644
--- a/grpc/CHANGELOG.md
+++ b/grpc/CHANGELOG.md
@@ -7,6 +7,18 @@ 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-27
+
+### Added
+
+- *(grpc,node-wasm)* add javascript bindings for tx client (#510)
+- *(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 08c8d383..77993efb 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"
@@ -22,7 +22,7 @@ categories = [
crate-type = ["cdylib", "lib"]
[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..397163d4 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-27
+
+### 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..e4c06b31 100644
--- a/node-wasm/CHANGELOG.md
+++ b/node-wasm/CHANGELOG.md
@@ -6,6 +6,22 @@ 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-27
+
+### Added
+
+- *(grpc,node-wasm)* add javascript bindings for tx client (#510)
+- *(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 27c2e268..9485a26b 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..a5565606 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,51 +55,53 @@ 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
-### Constructors
+### Properties
-#### new BlockRange()
+#### V1
-> **new BlockRange**(): [`BlockRange`](#classesblockrangemd)
+> `readonly` `static` **V1**: [`AppVersion`](#classesappversionmd)
-##### Returns
+App v1
+
+##### Defined in
-[`BlockRange`](#classesblockrangemd)
+lumina\_node\_wasm.d.ts:154
-### Properties
+***
-#### end
+#### V2
-> **end**: `bigint`
+> `readonly` `static` **V2**: [`AppVersion`](#classesappversionmd)
-Last block height in range
+App v2
##### Defined in
-lumina\_node\_wasm.d.ts:44
+lumina\_node\_wasm.d.ts:158
***
-#### start
+#### V3
-> **start**: `bigint`
+> `readonly` `static` **V3**: [`AppVersion`](#classesappversionmd)
-First block height in range
+App v3
##### Defined in
-lumina\_node\_wasm.d.ts:48
+lumina\_node\_wasm.d.ts:162
### Methods
@@ -113,146 +115,168 @@ lumina\_node\_wasm.d.ts:48
##### Defined in
-lumina\_node\_wasm.d.ts:40
+lumina\_node\_wasm.d.ts:146
***
-#### toJSON()
+#### latest()
-> **toJSON**(): `Object`
+> `static` **latest**(): [`AppVersion`](#classesappversionmd)
-* Return copy of self without private attributes.
+Latest App version variant.
##### Returns
-`Object`
+[`AppVersion`](#classesappversionmd)
##### Defined in
-lumina\_node\_wasm.d.ts:35
+lumina\_node\_wasm.d.ts:150
-***
-#### toString()
+
-> **toString**(): `string`
+[**lumina-node-wasm**](#readmemd)
-Return stringified version of self.
+***
-##### Returns
+[lumina-node-wasm](#globalsmd) / Blob
-`string`
+## Class: Blob
-##### Defined in
+Arbitrary data that can be stored in the network within certain [`Namespace`].
-lumina\_node\_wasm.d.ts:39
+### Constructors
+#### new Blob()
-
+> **new Blob**(`namespace`, `data`, `app_version`): [`Blob`](#classesblobmd)
-[**lumina-node-wasm**](#readmemd) • **Docs**
+Create a new blob with the given data within the [`Namespace`].
-***
+##### Parameters
-[lumina-node-wasm](#globalsmd) / ConnectionCountersSnapshot
+###### namespace
-## Class: ConnectionCountersSnapshot
+[`Namespace`](#classesnamespacemd)
-### Constructors
+###### data
-#### new ConnectionCountersSnapshot()
+`Uint8Array`\<`ArrayBuffer`\>
-> **new ConnectionCountersSnapshot**(): [`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd)
+###### app\_version
+
+[`AppVersion`](#classesappversionmd)
##### Returns
-[`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd)
+[`Blob`](#classesblobmd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:180
### Properties
-#### num\_connections
+#### commitment
-> **num\_connections**: `number`
+> **commitment**: [`Commitment`](#classescommitmentmd)
-The total number of connections, both pending and established.
+A [`Commitment`] computed from the [`Blob`]s data.
##### Defined in
-lumina\_node\_wasm.d.ts:65
+lumina\_node\_wasm.d.ts:202
***
-#### num\_established
+#### data
-> **num\_established**: `number`
+> **data**: `Uint8Array`\<`ArrayBuffer`\>
-The number of outgoing connections being established.
+Data stored within the [`Blob`].
##### Defined in
-lumina\_node\_wasm.d.ts:69
+lumina\_node\_wasm.d.ts:192
***
-#### num\_established\_incoming
+#### namespace
-> **num\_established\_incoming**: `number`
+> **namespace**: [`Namespace`](#classesnamespacemd)
-The number of established incoming connections.
+A [`Namespace`] the [`Blob`] belongs to.
##### Defined in
-lumina\_node\_wasm.d.ts:73
+lumina\_node\_wasm.d.ts:188
***
-#### num\_established\_outgoing
+#### share\_version
-> **num\_established\_outgoing**: `number`
+> **share\_version**: `number`
-The number of established outgoing connections.
+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:77
+lumina\_node\_wasm.d.ts:198
-***
+### Accessors
-#### num\_pending
+#### index
-> **num\_pending**: `number`
+##### Get Signature
-The total number of pending connections, both incoming and outgoing.
+> **get** **index**(): `bigint`
-##### Defined in
+Index of the blob's first share in the EDS. Only set for blobs retrieved from chain.
-lumina\_node\_wasm.d.ts:81
+###### Returns
-***
+`bigint`
-#### num\_pending\_incoming
+##### Set Signature
-> **num\_pending\_incoming**: `number`
+> **set** **index**(`value`): `void`
-The total number of pending connections, both incoming and outgoing.
+Index of the blob's first share in the EDS. Only set for blobs retrieved from chain.
+
+###### Parameters
+
+####### value
+
+`bigint`
+
+###### Returns
+
+`void`
##### Defined in
-lumina\_node\_wasm.d.ts:85
+lumina\_node\_wasm.d.ts:206
-***
+### Methods
-#### num\_pending\_outgoing
+#### clone()
-> **num\_pending\_outgoing**: `number`
+> **clone**(): [`Blob`](#classesblobmd)
-The number of outgoing connections being established.
+Clone a blob creating a new deep copy of it.
+
+##### Returns
+
+[`Blob`](#classesblobmd)
##### Defined in
-lumina\_node\_wasm.d.ts:89
+lumina\_node\_wasm.d.ts:184
-### Methods
+***
#### free()
@@ -264,7 +288,7 @@ lumina\_node\_wasm.d.ts:89
##### Defined in
-lumina\_node\_wasm.d.ts:61
+lumina\_node\_wasm.d.ts:176
***
@@ -280,7 +304,7 @@ lumina\_node\_wasm.d.ts:61
##### Defined in
-lumina\_node\_wasm.d.ts:56
+lumina\_node\_wasm.d.ts:171
***
@@ -296,54 +320,44 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:60
+lumina\_node\_wasm.d.ts:175
-
+
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
-[lumina-node-wasm](#globalsmd) / NetworkInfoSnapshot
-
-## Class: NetworkInfoSnapshot
-
-Information about the connections
-
-### Constructors
-
-#### new NetworkInfoSnapshot()
-
-> **new NetworkInfoSnapshot**(): [`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)
+[lumina-node-wasm](#globalsmd) / BlockRange
-##### Returns
+## Class: BlockRange
-[`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)
+A range of blocks between `start` and `end` height, inclusive
### Properties
-#### connection\_counters
+#### end
-> **connection\_counters**: [`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd)
+> **end**: `bigint`
-Gets counters for ongoing network connections.
+Last block height in range
##### Defined in
-lumina\_node\_wasm.d.ts:107
+lumina\_node\_wasm.d.ts:233
***
-#### num\_peers
+#### start
-> **num\_peers**: `number`
+> **start**: `bigint`
-The number of connected peers, i.e. peers with whom at least one established connection exists.
+First block height in range
##### Defined in
-lumina\_node\_wasm.d.ts:111
+lumina\_node\_wasm.d.ts:229
### Methods
@@ -357,7 +371,7 @@ lumina\_node\_wasm.d.ts:111
##### Defined in
-lumina\_node\_wasm.d.ts:103
+lumina\_node\_wasm.d.ts:225
***
@@ -373,7 +387,7 @@ lumina\_node\_wasm.d.ts:103
##### Defined in
-lumina\_node\_wasm.d.ts:98
+lumina\_node\_wasm.d.ts:220
***
@@ -389,600 +403,640 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:102
+lumina\_node\_wasm.d.ts:224
-
+
-[**lumina-node-wasm**](#readmemd) • **Docs**
+[**lumina-node-wasm**](#readmemd)
***
-[lumina-node-wasm](#globalsmd) / NodeClient
-
-## Class: NodeClient
+[lumina-node-wasm](#globalsmd) / Commitment
-`NodeClient` is responsible for steering [`NodeWorker`] by sending it commands and receiving
-responses over the provided port.
+## Class: Commitment
-[`NodeWorker`]: crate::worker::NodeWorker
+A merkle hash used to identify the [`Blob`]s data.
-### Constructors
+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.
-#### new NodeClient()
+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:
-> **new NodeClient**(`port`): [`NodeClient`](#classesnodeclientmd)
+```text
+NMT: row root
+ / \
+ o subtree root
+ / \ / \
+ _________________
+EDS row: | s | s | s1 | s2 |
+```
-Create a new connection to a Lumina node running in [`NodeWorker`]. Provided `port` is
-expected to have `MessagePort`-like interface for sending and receiving messages.
+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
-##### Parameters
+#### free()
-• **port**: `any`
+> **free**(): `void`
##### Returns
-[`NodeClient`](#classesnodeclientmd)
+`void`
##### Defined in
-lumina\_node\_wasm.d.ts:126
-
-### Methods
-
-#### addConnectionToWorker()
+lumina\_node\_wasm.d.ts:283
-> **addConnectionToWorker**(`port`): `Promise`\<`void`\>
+***
-Establish a new connection to the existing worker over provided port
+#### hash()
-##### Parameters
+> **hash**(): `Uint8Array`\<`ArrayBuffer`\>
-• **port**: `any`
+Hash of the commitment
##### Returns
-`Promise`\<`void`\>
+`Uint8Array`\<`ArrayBuffer`\>
##### Defined in
-lumina\_node\_wasm.d.ts:132
+lumina\_node\_wasm.d.ts:287
***
-#### connectedPeers()
+#### toJSON()
-> **connectedPeers**(): `Promise`\<`any`[]\>
+> **toJSON**(): `Object`
-Get all the peers that node is connected to.
+* Return copy of self without private attributes.
##### Returns
-`Promise`\<`any`[]\>
+`Object`
##### Defined in
-lumina\_node\_wasm.d.ts:182
+lumina\_node\_wasm.d.ts:278
***
-#### eventsChannel()
+#### toString()
-> **eventsChannel**(): `Promise`\<`BroadcastChannel`\>
+> **toString**(): `string`
-Returns a [`BroadcastChannel`] for events generated by [`Node`].
+Return stringified version of self.
##### Returns
-`Promise`\<`BroadcastChannel`\>
+`string`
##### Defined in
-lumina\_node\_wasm.d.ts:298
+lumina\_node\_wasm.d.ts:282
-***
-#### free()
+
-> **free**(): `void`
+[**lumina-node-wasm**](#readmemd)
-##### Returns
+***
-`void`
+[lumina-node-wasm](#globalsmd) / ConnectionCountersSnapshot
-##### Defined in
+## Class: ConnectionCountersSnapshot
-lumina\_node\_wasm.d.ts:120
+### Properties
-***
+#### num\_connections
-#### getHeaderByHash()
+> **num\_connections**: `number`
-> **getHeaderByHash**(`hash`): `Promise`\<`any`\>
+The total number of connections, both pending and established.
-Get a synced header for the block with a given hash.
+##### Defined in
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+lumina\_node\_wasm.d.ts:303
-##### Parameters
+***
-• **hash**: `string`
+#### num\_established
-##### Returns
+> **num\_established**: `number`
-`Promise`\<`any`\>
+The number of outgoing connections being established.
##### Defined in
-lumina\_node\_wasm.d.ts:257
+lumina\_node\_wasm.d.ts:319
***
-#### getHeaderByHeight()
+#### num\_established\_incoming
-> **getHeaderByHeight**(`height`): `Promise`\<`any`\>
+> **num\_established\_incoming**: `number`
-Get a synced header for the block with a given height.
+The number of established incoming connections.
+
+##### Defined in
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+lumina\_node\_wasm.d.ts:323
-##### Parameters
+***
-• **height**: `bigint`
+#### num\_established\_outgoing
-##### Returns
+> **num\_established\_outgoing**: `number`
-`Promise`\<`any`\>
+The number of established outgoing connections.
##### Defined in
-lumina\_node\_wasm.d.ts:266
+lumina\_node\_wasm.d.ts:327
***
-#### getHeaders()
+#### num\_pending
-> **getHeaders**(`start_height`?, `end_height`?): `Promise`\<`any`[]\>
+> **num\_pending**: `number`
-Get synced headers from the given heights range.
+The total number of pending connections, both incoming and outgoing.
-If start of the range is undefined (None), the first returned header will be of height 1.
-If end of the range is undefined (None), the last returned header will be the last header in the
-store.
+##### Defined in
-## Errors
+lumina\_node\_wasm.d.ts:307
-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
+#### num\_pending\_incoming
-##### Parameters
+> **num\_pending\_incoming**: `number`
+
+The total number of pending connections, both incoming and outgoing.
-• **start\_height?**: `bigint`
+##### Defined in
-• **end\_height?**: `bigint`
+lumina\_node\_wasm.d.ts:311
-##### Returns
+***
-`Promise`\<`any`[]\>
+#### num\_pending\_outgoing
-##### Defined in
+> **num\_pending\_outgoing**: `number`
-lumina\_node\_wasm.d.ts:284
+The number of outgoing connections being established.
-***
+##### Defined in
-#### getLocalHeadHeader()
+lumina\_node\_wasm.d.ts:315
-> **getLocalHeadHeader**(): `Promise`\<`any`\>
+### Methods
-Get the latest locally synced header.
+#### free()
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+> **free**(): `void`
##### Returns
-`Promise`\<`any`\>
+`void`
##### Defined in
-lumina\_node\_wasm.d.ts:248
+lumina\_node\_wasm.d.ts:299
***
-#### getNetworkHeadHeader()
-
-> **getNetworkHeadHeader**(): `Promise`\<`any`\>
+#### toJSON()
-Get the latest header announced in the network.
+> **toJSON**(): `Object`
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+* Return copy of self without private attributes.
##### Returns
-`Promise`\<`any`\>
+`Object`
##### Defined in
-lumina\_node\_wasm.d.ts:240
+lumina\_node\_wasm.d.ts:294
***
-#### getSamplingMetadata()
+#### toString()
-> **getSamplingMetadata**(`height`): `Promise`\<`any`\>
+> **toString**(): `string`
-Get data sampling metadata of an already sampled height.
+Return stringified version of self.
-Returns a javascript object with given structure:
-https://docs.rs/lumina-node/latest/lumina_node/store/struct.SamplingMetadata.html
+##### Returns
-##### Parameters
+`string`
-• **height**: `bigint`
+##### Defined in
-##### Returns
+lumina\_node\_wasm.d.ts:298
-`Promise`\<`any`\>
-##### Defined in
+
-lumina\_node\_wasm.d.ts:293
+[**lumina-node-wasm**](#readmemd)
***
-#### isRunning()
-
-> **isRunning**(): `Promise`\<`boolean`\>
-
-Check whether Lumina is currently running
+[lumina-node-wasm](#globalsmd) / DataAvailabilityHeader
-##### Returns
+## Class: DataAvailabilityHeader
-`Promise`\<`boolean`\>
+Header with commitments of the data availability.
-##### Defined in
+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.
-lumina\_node\_wasm.d.ts:137
+The hash of this header is a hash of all rows and columns and thus a
+data commitment of the block.
-***
+## Example
-#### listeners()
+```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);
-> **listeners**(): `Promise`\<`any`[]\>
+// get the data commitment for a given row
+let dah = eh.dah;
+let root = dah.row_root(0).unwrap();
-Get all the multiaddresses on which the node listens.
+// verify a proof of the inclusion of the shares
+assert!(proof.verify_complete_namespace(&root, &shares, *namespace).is_ok());
+```
-##### Returns
+[`ExtendedDataSquare`]: crate::eds::ExtendedDataSquare
-`Promise`\<`any`[]\>
+### Methods
-##### Defined in
+#### columnRoot()
-lumina\_node\_wasm.d.ts:177
+> **columnRoot**(`column`): `any`
-***
+Get the a root of the column with the given index.
-#### localPeerId()
+##### Parameters
-> **localPeerId**(): `Promise`\<`string`\>
+###### column
-Get node's local peer ID.
+`number`
##### Returns
-`Promise`\<`string`\>
+`any`
##### Defined in
-lumina\_node\_wasm.d.ts:152
+lumina\_node\_wasm.d.ts:391
***
-#### networkInfo()
+#### columnRoots()
-> **networkInfo**(): `Promise`\<[`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)\>
+> **columnRoots**(): `any`[]
-Get current network info.
+Merkle roots of the [`ExtendedDataSquare`] columns.
##### Returns
-`Promise`\<[`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)\>
+`any`[]
##### Defined in
-lumina\_node\_wasm.d.ts:172
+lumina\_node\_wasm.d.ts:383
***
-#### peerTrackerInfo()
-
-> **peerTrackerInfo**(): `Promise`\<[`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)\>
+#### free()
-Get current [`PeerTracker`] info.
+> **free**(): `void`
##### Returns
-`Promise`\<[`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)\>
+`void`
##### Defined in
-lumina\_node\_wasm.d.ts:157
+lumina\_node\_wasm.d.ts:375
***
-#### requestHeaderByHash()
-
-> **requestHeaderByHash**(`hash`): `Promise`\<`any`\>
-
-Request a header for the block with a given hash from the network.
+#### hash()
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+> **hash**(): `any`
-##### Parameters
+Compute the combined hash of all rows and columns.
-• **hash**: `string`
+This is the data commitment for the block.
##### Returns
-`Promise`\<`any`\>
+`any`
##### Defined in
-lumina\_node\_wasm.d.ts:206
+lumina\_node\_wasm.d.ts:397
***
-#### requestHeaderByHeight()
-
-> **requestHeaderByHeight**(`height`): `Promise`\<`any`\>
+#### rowRoot()
-Request a header for the block with a given height from the network.
+> **rowRoot**(`row`): `any`
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+Get a root of the row with the given index.
##### Parameters
-• **height**: `bigint`
+###### row
+
+`number`
##### Returns
-`Promise`\<`any`\>
+`any`
##### Defined in
-lumina\_node\_wasm.d.ts:215
+lumina\_node\_wasm.d.ts:387
***
-#### requestHeadHeader()
-
-> **requestHeadHeader**(): `Promise`\<`any`\>
+#### rowRoots()
-Request the head header from the network.
+> **rowRoots**(): `any`[]
-Returns a javascript object with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+Merkle roots of the [`ExtendedDataSquare`] rows.
##### Returns
-`Promise`\<`any`\>
+`any`[]
##### Defined in
-lumina\_node\_wasm.d.ts:197
+lumina\_node\_wasm.d.ts:379
***
-#### requestVerifiedHeaders()
+#### squareWidth()
-> **requestVerifiedHeaders**(`from_header`, `amount`): `Promise`\<`any`[]\>
+> **squareWidth**(): `number`
-Request headers in range (from, from + amount] from the network.
+Get the size of the [`ExtendedDataSquare`] for which this header was built.
-The headers will be verified with the `from` header.
+##### Returns
-Returns an array of javascript objects with given structure:
-https://docs.rs/celestia-types/latest/celestia_types/struct.ExtendedHeader.html
+`number`
-##### Parameters
+##### Defined in
+
+lumina\_node\_wasm.d.ts:401
+
+***
+
+#### toJSON()
-• **from\_header**: `any`
+> **toJSON**(): `Object`
-• **amount**: `bigint`
+* Return copy of self without private attributes.
##### Returns
-`Promise`\<`any`[]\>
+`Object`
##### Defined in
-lumina\_node\_wasm.d.ts:227
+lumina\_node\_wasm.d.ts:370
***
-#### setPeerTrust()
+#### toString()
-> **setPeerTrust**(`peer_id`, `is_trusted`): `Promise`\<`void`\>
+> **toString**(): `string`
-Trust or untrust the peer with a given ID.
+Return stringified version of self.
-##### Parameters
+##### Returns
-• **peer\_id**: `string`
+`string`
-• **is\_trusted**: `boolean`
+##### Defined in
-##### Returns
+lumina\_node\_wasm.d.ts:374
-`Promise`\<`void`\>
-##### Defined in
+
-lumina\_node\_wasm.d.ts:189
+[**lumina-node-wasm**](#readmemd)
***
-#### start()
+[lumina-node-wasm](#globalsmd) / ExtendedHeader
-> **start**(`config`): `Promise`\<`void`\>
+## Class: ExtendedHeader
-Start a node with the provided config, if it's not running
+Block header together with the relevant Data Availability metadata.
-##### Parameters
+[`ExtendedHeader`]s are used to announce and describe the blocks
+in the Celestia network.
-• **config**: [`NodeConfig`](#classesnodeconfigmd)
+Before being used, each header should be validated and verified with a header you trust.
-##### Returns
+## Example
-`Promise`\<`void`\>
+```
+## 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:143
+lumina\_node\_wasm.d.ts:532
***
-#### stop()
-
-> **stop**(): `Promise`\<`void`\>
+#### dah
-##### Returns
+> **dah**: [`DataAvailabilityHeader`](#classesdataavailabilityheadermd)
-`Promise`\<`void`\>
+Header of the block data availability.
##### Defined in
-lumina\_node\_wasm.d.ts:147
+lumina\_node\_wasm.d.ts:524
***
-#### syncerInfo()
-
-> **syncerInfo**(): `Promise`\<[`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)\>
-
-Get current header syncing info.
+#### header
-##### Returns
+> `readonly` **header**: `any`
-`Promise`\<[`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)\>
+Tendermint block header.
##### Defined in
-lumina\_node\_wasm.d.ts:232
+lumina\_node\_wasm.d.ts:528
***
-#### waitConnected()
-
-> **waitConnected**(): `Promise`\<`void`\>
-
-Wait until the node is connected to at least 1 peer.
+#### validatorSet
-##### Returns
+> `readonly` **validatorSet**: `any`
-`Promise`\<`void`\>
+Information about the set of validators commiting the block.
##### Defined in
-lumina\_node\_wasm.d.ts:162
+lumina\_node\_wasm.d.ts:536
-***
+### Methods
-#### waitConnectedTrusted()
+#### clone()
-> **waitConnectedTrusted**(): `Promise`\<`void`\>
+> **clone**(): [`ExtendedHeader`](#classesextendedheadermd)
-Wait until the node is connected to at least 1 trusted peer.
+Clone a header producing a deep copy of it.
##### Returns
-`Promise`\<`void`\>
+[`ExtendedHeader`](#classesextendedheadermd)
##### Defined in
-lumina\_node\_wasm.d.ts:167
-
-
-
-
-[**lumina-node-wasm**](#readmemd) • **Docs**
+lumina\_node\_wasm.d.ts:446
***
-[lumina-node-wasm](#globalsmd) / NodeConfig
+#### free()
-## Class: NodeConfig
+> **free**(): `void`
-Config for the lumina wasm node.
+##### Returns
-### Constructors
+`void`
-#### new NodeConfig()
+##### Defined in
-> **new NodeConfig**(): [`NodeConfig`](#classesnodeconfigmd)
+lumina\_node\_wasm.d.ts:442
-##### Returns
+***
-[`NodeConfig`](#classesnodeconfigmd)
+#### hash()
-### Properties
+> **hash**(): `string`
-#### bootnodes
+Get the block hash.
-> **bootnodes**: `string`[]
+##### Returns
-A list of bootstrap peers to connect to.
+`string`
##### Defined in
-lumina\_node\_wasm.d.ts:322
+lumina\_node\_wasm.d.ts:458
***
-#### custom\_syncing\_window\_secs?
+#### height()
-> `optional` **custom\_syncing\_window\_secs**: `number`
+> **height**(): `bigint`
-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.
+Get the block height.
+
+##### Returns
+
+`bigint`
##### Defined in
-lumina\_node\_wasm.d.ts:327
+lumina\_node\_wasm.d.ts:450
***
-#### network
+#### previousHeaderHash()
-> **network**: [`Network`](#enumerationsnetworkmd)
+> **previousHeaderHash**(): `string`
-A network to connect to.
+Get the hash of the previous header.
+
+##### Returns
+
+`string`
##### Defined in
-lumina\_node\_wasm.d.ts:331
+lumina\_node\_wasm.d.ts:462
-### Methods
+***
-#### free()
+#### time()
-> **free**(): `void`
+> **time**(): `number`
+
+Get the block time.
##### Returns
-`void`
+`number`
##### Defined in
-lumina\_node\_wasm.d.ts:312
+lumina\_node\_wasm.d.ts:454
***
@@ -998,7 +1052,7 @@ lumina\_node\_wasm.d.ts:312
##### Defined in
-lumina\_node\_wasm.d.ts:307
+lumina\_node\_wasm.d.ts:437
***
@@ -1014,67 +1068,83 @@ Return stringified version of self.
##### Defined in
-lumina\_node\_wasm.d.ts:311
+lumina\_node\_wasm.d.ts:441
***
-#### default()
-
-> `static` **default**(`network`): [`NodeConfig`](#classesnodeconfigmd)
-
-Get the configuration with default bootnodes for provided network
+#### validate()
-##### Parameters
+> **validate**(): `void`
-• **network**: [`Network`](#enumerationsnetworkmd)
+Decode protobuf encoded header and then validate it.
##### Returns
-[`NodeConfig`](#classesnodeconfigmd)
+`void`
##### Defined in
-lumina\_node\_wasm.d.ts:318
+lumina\_node\_wasm.d.ts:466
+***
-
+#### verify()
-[**lumina-node-wasm**](#readmemd) • **Docs**
+> **verify**(`untrusted`): `void`
-***
+Verify a chain of adjacent untrusted headers and make sure
+they are adjacent to `self`.
-[lumina-node-wasm](#globalsmd) / NodeWorker
+## Errors
-## Class: NodeWorker
+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
-`NodeWorker` is responsible for receiving commands from connected [`NodeClient`]s, executing
-them and sending a response back, as well as accepting new `NodeClient` connections.
+##### Parameters
-[`NodeClient`]: crate::client::NodeClient
+###### untrusted
-### Constructors
+[`ExtendedHeader`](#classesextendedheadermd)
-#### new NodeWorker()
+##### Returns
-> **new NodeWorker**(`port_like_object`): [`NodeWorker`](#classesnodeworkermd)
+`void`
-##### Parameters
+##### Defined in
-• **port\_like\_object**: `any`
+lumina\_node\_wasm.d.ts:476
-##### Returns
+***
-[`NodeWorker`](#classesnodeworkermd)
+#### verifyAdjacentRange()
-##### Defined in
+> **verifyAdjacentRange**(`untrusted`): `void`
-lumina\_node\_wasm.d.ts:344
+Verify a chain of adjacent untrusted headers and make sure
+they are adjacent to `self`.
-### Methods
+## Note
-#### free()
+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()`.
-> **free**(): `void`
+```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
@@ -1082,74 +1152,84 @@ lumina\_node\_wasm.d.ts:344
##### Defined in
-lumina\_node\_wasm.d.ts:340
+lumina\_node\_wasm.d.ts:520
***
-#### run()
+#### verifyRange()
-> **run**(): `Promise`\<`void`\>
+> **verifyRange**(`untrusted`): `void`
-##### Returns
+Verify a chain of adjacent untrusted headers.
-`Promise`\<`void`\>
+## Note
-##### Defined in
+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()`.
-lumina\_node\_wasm.d.ts:348
+```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.
-[**lumina-node-wasm**](#readmemd) • **Docs**
+##### Parameters
-***
+###### untrusted
-[lumina-node-wasm](#globalsmd) / PeerTrackerInfoSnapshot
+[`ExtendedHeader`](#classesextendedheadermd)[]
-## Class: PeerTrackerInfoSnapshot
+##### Returns
-Statistics of the connected peers
+`void`
-### Constructors
+##### Defined in
-#### new PeerTrackerInfoSnapshot()
+lumina\_node\_wasm.d.ts:498
-> **new PeerTrackerInfoSnapshot**(): [`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)
-##### Returns
+
-[`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)
+[**lumina-node-wasm**](#readmemd)
-### Properties
+***
-#### num\_connected\_peers
+[lumina-node-wasm](#globalsmd) / IntoUnderlyingByteSource
-> **num\_connected\_peers**: `bigint`
+## Class: IntoUnderlyingByteSource
-Number of the connected peers.
+### Properties
+
+#### autoAllocateChunkSize
+
+> `readonly` **autoAllocateChunkSize**: `number`
##### Defined in
-lumina\_node\_wasm.d.ts:366
+lumina\_node\_wasm.d.ts:545
***
-#### num\_connected\_trusted\_peers
-
-> **num\_connected\_trusted\_peers**: `bigint`
+#### type
-Number of the connected trusted peers.
+> `readonly` **type**: `"bytes"`
##### Defined in
-lumina\_node\_wasm.d.ts:370
+lumina\_node\_wasm.d.ts:544
### Methods
-#### free()
+#### cancel()
-> **free**(): `void`
+> **cancel**(): `void`
##### Returns
@@ -1157,89 +1237,168 @@ lumina\_node\_wasm.d.ts:370
##### Defined in
-lumina\_node\_wasm.d.ts:362
+lumina\_node\_wasm.d.ts:543
***
-#### toJSON()
-
-> **toJSON**(): `Object`
+#### free()
-* Return copy of self without private attributes.
+> **free**(): `void`
##### Returns
-`Object`
+`void`
##### Defined in
-lumina\_node\_wasm.d.ts:357
+lumina\_node\_wasm.d.ts:540
***
-#### toString()
+#### pull()
-> **toString**(): `string`
+> **pull**(`controller`): `Promise`\<`any`\>
-Return stringified version of self.
+##### Parameters
+
+###### controller
+
+`ReadableByteStreamController`
##### Returns
-`string`
+`Promise`\<`any`\>
##### Defined in
-lumina\_node\_wasm.d.ts:361
+lumina\_node\_wasm.d.ts:542
+***
-
+#### start()
-[**lumina-node-wasm**](#readmemd) • **Docs**
+> **start**(`controller`): `void`
-***
+##### Parameters
-[lumina-node-wasm](#globalsmd) / SyncingInfoSnapshot
+###### controller
-## Class: SyncingInfoSnapshot
+`ReadableByteStreamController`
-Status of the synchronization.
+##### Returns
-### Constructors
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:541
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / IntoUnderlyingSink
-#### new SyncingInfoSnapshot()
+## Class: IntoUnderlyingSink
-> **new SyncingInfoSnapshot**(): [`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)
+### Methods
+
+#### abort()
+
+> **abort**(`reason`): `Promise`\<`any`\>
+
+##### Parameters
+
+###### reason
+
+`any`
##### Returns
-[`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)
+`Promise`\<`any`\>
+
+##### Defined in
-### Properties
+lumina\_node\_wasm.d.ts:552
-#### stored\_headers
+***
-> **stored\_headers**: [`BlockRange`](#classesblockrangemd)[]
+#### close()
-Ranges of headers that are already synchronised
+> **close**(): `Promise`\<`any`\>
+
+##### Returns
+
+`Promise`\<`any`\>
##### Defined in
-lumina\_node\_wasm.d.ts:388
+lumina\_node\_wasm.d.ts:551
***
-#### subjective\_head
+#### free()
-> **subjective\_head**: `bigint`
+> **free**(): `void`
-Syncing target. The latest height seen in the network that was successfully verified.
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:549
+
+***
+
+#### write()
+
+> **write**(`chunk`): `Promise`\<`any`\>
+
+##### Parameters
+
+###### chunk
+
+`any`
+
+##### Returns
+
+`Promise`\<`any`\>
##### Defined in
-lumina\_node\_wasm.d.ts:392
+lumina\_node\_wasm.d.ts:550
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / IntoUnderlyingSource
+
+## Class: IntoUnderlyingSource
### Methods
+#### cancel()
+
+> **cancel**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:558
+
+***
+
#### free()
> **free**(): `void`
@@ -1250,152 +1409,2408 @@ lumina\_node\_wasm.d.ts:392
##### Defined in
-lumina\_node\_wasm.d.ts:384
+lumina\_node\_wasm.d.ts:556
***
-#### toJSON()
+#### pull()
-> **toJSON**(): `Object`
+> **pull**(`controller`): `Promise`\<`any`\>
-* Return copy of self without private attributes.
+##### Parameters
+
+###### controller
+
+`ReadableStreamDefaultController`\<`any`\>
##### Returns
-`Object`
+`Promise`\<`any`\>
##### Defined in
-lumina\_node\_wasm.d.ts:379
+lumina\_node\_wasm.d.ts:557
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
***
-#### toString()
+[lumina-node-wasm](#globalsmd) / Namespace
-> **toString**(): `string`
+## Class: Namespace
-Return stringified version of self.
+Namespace of the data published to the celestia network.
-##### Returns
+The [`Namespace`] is a single byte defining the version
+followed by 28 bytes specifying concrete ID of the namespace.
-`string`
+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:383
+lumina\_node\_wasm.d.ts:667
-# Enumerations
+***
+#### 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:663
***
-[lumina-node-wasm](#globalsmd) / Network
+#### MAX\_PRIMARY\_RESERVED
-## Enumeration: Network
+> `readonly` `static` **MAX\_PRIMARY\_RESERVED**: [`Namespace`](#classesnamespacemd)
-Supported Celestia networks.
+Maximal primary reserved [`Namespace`].
-### Enumeration Members
+Used to indicate the end of the primary reserved group.
-#### Arabica
+##### Defined in
-> **Arabica**: `1`
+lumina\_node\_wasm.d.ts:638
-Arabica testnet.
+***
+
+#### MIN\_SECONDARY\_RESERVED
+
+> `readonly` `static` **MIN\_SECONDARY\_RESERVED**: [`Namespace`](#classesnamespacemd)
+
+Minimal secondary reserved [`Namespace`].
+
+Used to indicate the beginning of the secondary reserved group.
##### Defined in
-lumina\_node\_wasm.d.ts:18
+lumina\_node\_wasm.d.ts:644
***
-#### Mainnet
+#### NS\_SIZE
-> **Mainnet**: `0`
+> `readonly` `static` **NS\_SIZE**: `number`
-Celestia mainnet.
+Namespace size in bytes.
##### Defined in
-lumina\_node\_wasm.d.ts:14
+lumina\_node\_wasm.d.ts:617
***
-#### Mocha
+#### PARITY\_SHARE
-> **Mocha**: `2`
+> `readonly` `static` **PARITY\_SHARE**: [`Namespace`](#classesnamespacemd)
-Mocha testnet.
+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:22
+lumina\_node\_wasm.d.ts:659
***
-#### Private
+#### PAY\_FOR\_BLOB
-> **Private**: `3`
+> `readonly` `static` **PAY\_FOR\_BLOB**: [`Namespace`](#classesnamespacemd)
-Private local network.
+Primary reserved [`Namespace`] for the compact Shares with MsgPayForBlobs transactions.
##### Defined in
-lumina\_node\_wasm.d.ts:26
+lumina\_node\_wasm.d.ts:625
-# Functions
+***
+#### PRIMARY\_RESERVED\_PADDING
-
+> `readonly` `static` **PRIMARY\_RESERVED\_PADDING**: [`Namespace`](#classesnamespacemd)
+
+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**](#readmemd) • **Docs**
+lumina\_node\_wasm.d.ts:632
***
-[lumina-node-wasm](#globalsmd) / setup\_logging
+#### TAIL\_PADDING
-## Function: setup\_logging()
+> `readonly` `static` **TAIL\_PADDING**: [`Namespace`](#classesnamespacemd)
-> **setup\_logging**(): `void`
+Secondary reserved [`Namespace`] used for padding after the blobs.
-Set up a logging layer that direct logs to the browser's console.
+It is used to fill up the `original data square` after all user-submitted
+blobs before the parity data is generated for the `ExtendedDataSquare`.
-### Returns
+##### Defined in
+
+lumina\_node\_wasm.d.ts:651
+
+***
+
+#### TRANSACTION
+
+> `readonly` `static` **TRANSACTION**: [`Namespace`](#classesnamespacemd)
+
+Primary reserved [`Namespace`] for the compact `Share`s with `cosmos SDK` transactions.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:621
+
+### Methods
+
+#### asBytes()
+
+> **asBytes**(): `Uint8Array`\<`ArrayBuffer`\>
+
+Converts the [`Namespace`] to a byte slice.
+
+##### Returns
+
+`Uint8Array`\<`ArrayBuffer`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:613
+
+***
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
`void`
-### Defined in
+##### Defined in
-lumina\_node\_wasm.d.ts:6
+lumina\_node\_wasm.d.ts:591
+***
-
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
-[**lumina-node-wasm**](#readmemd) • **Docs**
+lumina\_node\_wasm.d.ts:586
***
-# lumina-node-wasm
+#### toString()
-## Enumerations
+> **toString**(): `string`
-- [Network](#enumerationsnetworkmd)
+Return stringified version of self.
-## Classes
+##### Returns
-- [BlockRange](#classesblockrangemd)
-- [ConnectionCountersSnapshot](#classesconnectioncounterssnapshotmd)
-- [NetworkInfoSnapshot](#classesnetworkinfosnapshotmd)
-- [NodeClient](#classesnodeclientmd)
-- [NodeConfig](#classesnodeconfigmd)
-- [NodeWorker](#classesnodeworkermd)
-- [PeerTrackerInfoSnapshot](#classespeertrackerinfosnapshotmd)
-- [SyncingInfoSnapshot](#classessyncinginfosnapshotmd)
+`string`
-## Functions
+##### Defined in
-- [setup\_logging](#functionssetup_loggingmd)
+lumina\_node\_wasm.d.ts:590
+
+***
+
+#### 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)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:609
+
+***
+
+#### newV0()
+
+> `static` **newV0**(`id`): [`Namespace`](#classesnamespacemd)
+
+Create a new [`Namespace`] version `0` with given id.
+
+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
+
+###### id
+
+`Uint8Array`\<`ArrayBuffer`\>
+
+##### Returns
+
+[`Namespace`](#classesnamespacemd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:599
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / NetworkInfoSnapshot
+
+## Class: NetworkInfoSnapshot
+
+Information about the connections
+
+### Properties
+
+#### connection\_counters
+
+> **connection\_counters**: [`ConnectionCountersSnapshot`](#classesconnectioncounterssnapshotmd)
+
+Gets counters for ongoing network connections.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:690
+
+***
+
+#### num\_peers
+
+> **num\_peers**: `number`
+
+The number of connected peers, i.e. peers with whom at least one established connection exists.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:686
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:682
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:677
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:681
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / NodeClient
+
+## Class: NodeClient
+
+`NodeClient` is responsible for steering [`NodeWorker`] by sending it commands and receiving
+responses over the provided port.
+
+[`NodeWorker`]: crate::worker::NodeWorker
+
+### Constructors
+
+#### new NodeClient()
+
+> **new NodeClient**(`port`): [`NodeClient`](#classesnodeclientmd)
+
+Create a new connection to a Lumina node running in [`NodeWorker`]. Provided `port` is
+expected to have `MessagePort`-like interface for sending and receiving messages.
+
+##### Parameters
+
+###### port
+
+`any`
+
+##### Returns
+
+[`NodeClient`](#classesnodeclientmd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:704
+
+### Methods
+
+#### addConnectionToWorker()
+
+> **addConnectionToWorker**(`port`): `Promise`\<`void`\>
+
+Establish a new connection to the existing worker over provided port
+
+##### Parameters
+
+###### port
+
+`any`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:708
+
+***
+
+#### connectedPeers()
+
+> **connectedPeers**(): `Promise`\<`any`[]\>
+
+Get all the peers that node is connected to.
+
+##### Returns
+
+`Promise`\<`any`[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:745
+
+***
+
+#### eventsChannel()
+
+> **eventsChannel**(): `Promise`\<`BroadcastChannel`\>
+
+Returns a [`BroadcastChannel`] for events generated by [`Node`].
+
+##### Returns
+
+`Promise`\<`BroadcastChannel`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:812
+
+***
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:699
+
+***
+
+#### getHeaderByHash()
+
+> **getHeaderByHash**(`hash`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+Get a synced header for the block with a given hash.
+
+##### Parameters
+
+###### hash
+
+`string`
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:788
+
+***
+
+#### getHeaderByHeight()
+
+> **getHeaderByHeight**(`height`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+Get a synced header for the block with a given height.
+
+##### Parameters
+
+###### height
+
+`bigint`
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:792
+
+***
+
+#### getHeaders()
+
+> **getHeaders**(`start_height`?, `end_height`?): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\>
+
+Get synced headers from the given heights range.
+
+If start of the range is undefined (None), the first returned header will be of height 1.
+If end of the range is undefined (None), the last returned header will be the last header in the
+store.
+
+## Errors
+
+If range contains a height of a header that is not found in the store.
+
+##### Parameters
+
+###### start\_height?
+
+`bigint`
+
+###### end\_height?
+
+`bigint`
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:804
+
+***
+
+#### getLocalHeadHeader()
+
+> **getLocalHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+Get the latest locally synced header.
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:784
+
+***
+
+#### getNetworkHeadHeader()
+
+> **getNetworkHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+Get the latest header announced in the network.
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:780
+
+***
+
+#### getSamplingMetadata()
+
+> **getSamplingMetadata**(`height`): `Promise`\<[`SamplingMetadata`](#classessamplingmetadatamd)\>
+
+Get data sampling metadata of an already sampled height.
+
+##### Parameters
+
+###### height
+
+`bigint`
+
+##### Returns
+
+`Promise`\<[`SamplingMetadata`](#classessamplingmetadatamd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:808
+
+***
+
+#### isRunning()
+
+> **isRunning**(): `Promise`\<`boolean`\>
+
+Check whether Lumina is currently running
+
+##### Returns
+
+`Promise`\<`boolean`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:712
+
+***
+
+#### listeners()
+
+> **listeners**(): `Promise`\<`any`[]\>
+
+Get all the multiaddresses on which the node listens.
+
+##### Returns
+
+`Promise`\<`any`[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:741
+
+***
+
+#### localPeerId()
+
+> **localPeerId**(): `Promise`\<`string`\>
+
+Get node's local peer ID.
+
+##### Returns
+
+`Promise`\<`string`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:721
+
+***
+
+#### networkInfo()
+
+> **networkInfo**(): `Promise`\<[`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)\>
+
+Get current network info.
+
+##### Returns
+
+`Promise`\<[`NetworkInfoSnapshot`](#classesnetworkinfosnapshotmd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:737
+
+***
+
+#### peerTrackerInfo()
+
+> **peerTrackerInfo**(): `Promise`\<[`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)\>
+
+Get current [`PeerTracker`] info.
+
+##### Returns
+
+`Promise`\<[`PeerTrackerInfoSnapshot`](#classespeertrackerinfosnapshotmd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:725
+
+***
+
+#### 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:772
+
+***
+
+#### requestHeaderByHash()
+
+> **requestHeaderByHash**(`hash`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+Request a header for the block with a given hash from the network.
+
+##### Parameters
+
+###### hash
+
+`string`
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:757
+
+***
+
+#### requestHeaderByHeight()
+
+> **requestHeaderByHeight**(`height`): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+Request a header for the block with a given height from the network.
+
+##### Parameters
+
+###### height
+
+`bigint`
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:761
+
+***
+
+#### requestHeadHeader()
+
+> **requestHeadHeader**(): `Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+Request the head header from the network.
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:753
+
+***
+
+#### requestVerifiedHeaders()
+
+> **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.
+
+##### Parameters
+
+###### from
+
+[`ExtendedHeader`](#classesextendedheadermd)
+
+###### amount
+
+`bigint`
+
+##### Returns
+
+`Promise`\<[`ExtendedHeader`](#classesextendedheadermd)[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:767
+
+***
+
+#### setPeerTrust()
+
+> **setPeerTrust**(`peer_id`, `is_trusted`): `Promise`\<`void`\>
+
+Trust or untrust the peer with a given ID.
+
+##### Parameters
+
+###### peer\_id
+
+`string`
+
+###### is\_trusted
+
+`boolean`
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:749
+
+***
+
+#### start()
+
+> **start**(`config`): `Promise`\<`void`\>
+
+Start a node with the provided config, if it's not running
+
+##### Parameters
+
+###### config
+
+[`NodeConfig`](#classesnodeconfigmd)
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:716
+
+***
+
+#### stop()
+
+> **stop**(): `Promise`\<`void`\>
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:717
+
+***
+
+#### syncerInfo()
+
+> **syncerInfo**(): `Promise`\<[`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)\>
+
+Get current header syncing info.
+
+##### Returns
+
+`Promise`\<[`SyncingInfoSnapshot`](#classessyncinginfosnapshotmd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:776
+
+***
+
+#### waitConnected()
+
+> **waitConnected**(): `Promise`\<`void`\>
+
+Wait until the node is connected to at least 1 peer.
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:729
+
+***
+
+#### waitConnectedTrusted()
+
+> **waitConnectedTrusted**(): `Promise`\<`void`\>
+
+Wait until the node is connected to at least 1 trusted peer.
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:733
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / NodeConfig
+
+## Class: NodeConfig
+
+Config for the lumina wasm node.
+
+### Properties
+
+#### bootnodes
+
+> **bootnodes**: `string`[]
+
+A list of bootstrap peers to connect to.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:839
+
+***
+
+#### network
+
+> **network**: [`Network`](#enumerationsnetworkmd)
+
+A network to connect to.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:835
+
+***
+
+#### 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:845
+
+### Accessors
+
+#### custom\_pruning\_delay\_secs
+
+##### Get Signature
+
+> **get** **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.
+
+###### Returns
+
+`number`
+
+##### Set Signature
+
+> **set** **custom\_pruning\_delay\_secs**(`value`): `void`
+
+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.
+
+###### Parameters
+
+####### value
+
+`number`
+
+###### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:879
+
+***
+
+#### custom\_sampling\_window\_secs
+
+##### Get Signature
+
+> **get** **custom\_sampling\_window\_secs**(): `number`
+
+Sampling window defines maximum age of a block considered for syncing and sampling.
+
+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.
+
+###### Returns
+
+`number`
+
+##### Set Signature
+
+> **set** **custom\_sampling\_window\_secs**(`value`): `void`
+
+Sampling window defines maximum age of a block considered for syncing and sampling.
+
+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.
+
+###### Parameters
+
+####### value
+
+`number`
+
+###### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:856
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:827
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:822
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:826
+
+***
+
+#### default()
+
+> `static` **default**(`network`): [`NodeConfig`](#classesnodeconfigmd)
+
+Get the configuration with default bootnodes for provided network
+
+##### Parameters
+
+###### network
+
+[`Network`](#enumerationsnetworkmd)
+
+##### Returns
+
+[`NodeConfig`](#classesnodeconfigmd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:831
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / NodeWorker
+
+## Class: NodeWorker
+
+`NodeWorker` is responsible for receiving commands from connected [`NodeClient`]s, executing
+them and sending a response back, as well as accepting new `NodeClient` connections.
+
+[`NodeClient`]: crate::client::NodeClient
+
+### Constructors
+
+#### new NodeWorker()
+
+> **new NodeWorker**(`port_like_object`): [`NodeWorker`](#classesnodeworkermd)
+
+##### Parameters
+
+###### port\_like\_object
+
+`any`
+
+##### Returns
+
+[`NodeWorker`](#classesnodeworkermd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:901
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:900
+
+***
+
+#### run()
+
+> **run**(): `Promise`\<`void`\>
+
+##### Returns
+
+`Promise`\<`void`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:902
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / PeerTrackerInfoSnapshot
+
+## Class: PeerTrackerInfoSnapshot
+
+Statistics of the connected peers
+
+### Properties
+
+#### num\_connected\_peers
+
+> **num\_connected\_peers**: `bigint`
+
+Number of the connected peers.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:921
+
+***
+
+#### num\_connected\_trusted\_peers
+
+> **num\_connected\_trusted\_peers**: `bigint`
+
+Number of the connected trusted peers.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:925
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:917
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:912
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:916
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / SamplingMetadata
+
+## Class: SamplingMetadata
+
+Sampling metadata for a block.
+
+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:942
+
+***
+
+#### status
+
+> **status**: [`SamplingStatus`](#enumerationssamplingstatusmd)
+
+Indicates whether this node was able to successfuly sample the block
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:938
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:934
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / SyncingInfoSnapshot
+
+## Class: SyncingInfoSnapshot
+
+Status of the synchronization.
+
+### Properties
+
+#### stored\_headers
+
+> **stored\_headers**: [`BlockRange`](#classesblockrangemd)[]
+
+Ranges of headers that are already synchronised
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:961
+
+***
+
+#### subjective\_head
+
+> **subjective\_head**: `bigint`
+
+Syncing target. The latest height seen in the network that was successfully verified.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:965
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:957
+
+***
+
+#### toJSON()
+
+> **toJSON**(): `Object`
+
+* Return copy of self without private attributes.
+
+##### Returns
+
+`Object`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:952
+
+***
+
+#### toString()
+
+> **toString**(): `string`
+
+Return stringified version of self.
+
+##### Returns
+
+`string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:956
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / TxClient
+
+## Class: TxClient
+
+Celestia grpc transaction client.
+
+### Constructors
+
+#### new TxClient()
+
+> **new TxClient**(`url`, `bech32_address`, `pubkey`, `signer_fn`): [`TxClient`](#classestxclientmd)
+
+Create a new transaction client with the specified account.
+
+Url must point to a [grpc-web proxy](https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-WEB.md).
+
+## Example with noble/curves
+```js
+import { secp256k1 } from "@noble/curves/secp256k1";
+
+const address = "celestia169s50psyj2f4la9a2235329xz7rk6c53zhw9mm";
+const privKey = "fdc8ac75dfa1c142dbcba77938a14dd03078052ce0b49a529dcf72a9885a3abb";
+const pubKey = secp256k1.getPublicKey(privKey);
+
+const signer = (signDoc) => {
+ const bytes = protoEncodeSignDoc(signDoc);
+ const sig = secp256k1.sign(bytes, privKey, { prehash: true });
+ return sig.toCompactRawBytes();
+};
+
+const txClient = await new TxClient("http://127.0.0.1:18080", address, pubKey, signer);
+```
+
+## Example with leap wallet
+```js
+await window.leap.enable("mocha-4")
+const keys = await window.leap.getKey("mocha-4")
+
+const signer = (signDoc) => {
+ return window.leap.signDirect("mocha-4", keys.bech32Address, signDoc, { preferNoSetFee: true })
+ .then(sig => Uint8Array.from(atob(sig.signature.signature), c => c.charCodeAt(0)))
+}
+
+const tx_client = await new TxClient("http://127.0.0.1:18080", keys.bech32Address, keys.pubKey, signer)
+```
+
+##### Parameters
+
+###### url
+
+`string`
+
+###### bech32\_address
+
+`string`
+
+###### pubkey
+
+`Uint8Array`\<`ArrayBuffer`\>
+
+###### signer\_fn
+
+[`SignerFn`](#type-aliasessignerfnmd)
+
+##### Returns
+
+[`TxClient`](#classestxclientmd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1007
+
+### Properties
+
+#### appVersion
+
+> `readonly` **appVersion**: [`AppVersion`](#classesappversionmd)
+
+AppVersion of the client
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1102
+
+***
+
+#### chainId
+
+> `readonly` **chainId**: `string`
+
+Chain id of the client
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1098
+
+### Methods
+
+#### free()
+
+> **free**(): `void`
+
+##### Returns
+
+`void`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:971
+
+***
+
+#### getAccount()
+
+> **getAccount**(`account`): `Promise`\<[`BaseAccount`](#interfacesbaseaccountmd)\>
+
+Get account
+
+##### Parameters
+
+###### account
+
+`string`
+
+##### Returns
+
+`Promise`\<[`BaseAccount`](#interfacesbaseaccountmd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1074
+
+***
+
+#### getAccounts()
+
+> **getAccounts**(): `Promise`\<[`BaseAccount`](#interfacesbaseaccountmd)[]\>
+
+Get accounts
+
+##### Returns
+
+`Promise`\<[`BaseAccount`](#interfacesbaseaccountmd)[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1078
+
+***
+
+#### getAllBalances()
+
+> **getAllBalances**(`address`): `Promise`\<[`Coin`](#interfacescoinmd)[]\>
+
+Get balance of all coins
+
+##### Parameters
+
+###### address
+
+`string`
+
+##### Returns
+
+`Promise`\<[`Coin`](#interfacescoinmd)[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1086
+
+***
+
+#### getAuthParams()
+
+> **getAuthParams**(): `Promise`\<[`AuthParams`](#interfacesauthparamsmd)\>
+
+Get auth params
+
+##### Returns
+
+`Promise`\<[`AuthParams`](#interfacesauthparamsmd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1070
+
+***
+
+#### getBalance()
+
+> **getBalance**(`address`, `denom`): `Promise`\<[`Coin`](#interfacescoinmd)\>
+
+Get balance of coins with given denom
+
+##### Parameters
+
+###### address
+
+`string`
+
+###### denom
+
+`string`
+
+##### Returns
+
+`Promise`\<[`Coin`](#interfacescoinmd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1082
+
+***
+
+#### getSpendableBalances()
+
+> **getSpendableBalances**(`address`): `Promise`\<[`Coin`](#interfacescoinmd)[]\>
+
+Get balance of all spendable coins
+
+##### Parameters
+
+###### address
+
+`string`
+
+##### Returns
+
+`Promise`\<[`Coin`](#interfacescoinmd)[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1090
+
+***
+
+#### getTotalSupply()
+
+> **getTotalSupply**(): `Promise`\<[`Coin`](#interfacescoinmd)[]\>
+
+Get total supply
+
+##### Returns
+
+`Promise`\<[`Coin`](#interfacescoinmd)[]\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1094
+
+***
+
+#### lastSeenGasPrice()
+
+> **lastSeenGasPrice**(): `number`
+
+Last gas price fetched by the client
+
+##### Returns
+
+`number`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1011
+
+***
+
+#### submitBlobs()
+
+> **submitBlobs**(`blobs`, `tx_config`?): `Promise`\<[`TxInfo`](#interfacestxinfomd)\>
+
+Submit blobs to the celestia network.
+
+When no `TxConfig` is provided, client will automatically calculate needed
+gas and update the `gasPrice`, if network agreed on a new minimal value.
+To enforce specific values use a `TxConfig`.
+
+## Example
+```js
+const ns = Namespace.newV0(new Uint8Array([97, 98, 99]));
+const data = new Uint8Array([100, 97, 116, 97]);
+const blob = new Blob(ns, data, AppVersion.latest());
+
+const txInfo = await txClient.submitBlobs([blob]);
+await txClient.submitBlobs([blob], { gasLimit: 100000n, gasPrice: 0.02 });
+```
+
+## Note
+
+Provided blobs will be consumed by this method, meaning
+they will no longer be accessible. If this behavior is not desired,
+consider using `Blob.clone()`.
+
+```js
+const blobs = [blob1, blob2, blob3];
+await txClient.submitBlobs(blobs.map(b => b.clone()));
+```
+
+##### Parameters
+
+###### blobs
+
+[`Blob`](#classesblobmd)[]
+
+###### tx\_config?
+
+[`TxConfig`](#interfacestxconfigmd)
+
+##### Returns
+
+`Promise`\<[`TxInfo`](#interfacestxinfomd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1040
+
+***
+
+#### submitMessage()
+
+> **submitMessage**(`message`, `tx_config`?): `Promise`\<[`TxInfo`](#interfacestxinfomd)\>
+
+Submit message to the celestia network.
+
+When no `TxConfig` is provided, client will automatically calculate needed
+gas and update the `gasPrice`, if network agreed on a new minimal value.
+To enforce specific values use a `TxConfig`.
+
+## Example
+```js
+import { Registry } from "@cosmjs/proto-signing";
+
+const registry = new Registry();
+const sendMsg = {
+ typeUrl: "/cosmos.bank.v1beta1.MsgSend",
+ value: {
+ fromAddress: "celestia169s50psyj2f4la9a2235329xz7rk6c53zhw9mm",
+ toAddress: "celestia1t52q7uqgnjfzdh3wx5m5phvma3umrq8k6tq2p9",
+ amount: [{ denom: "utia", amount: "10000" }],
+ },
+};
+const sendMsgAny = registry.encodeAsAny(sendMsg);
+
+const txInfo = await txClient.submitMessage(sendMsgAny);
+```
+
+##### Parameters
+
+###### message
+
+[`ProtoAny`](#interfacesprotoanymd)
+
+###### tx\_config?
+
+[`TxConfig`](#interfacestxconfigmd)
+
+##### Returns
+
+`Promise`\<[`TxInfo`](#interfacestxinfomd)\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:1066
+
+# Enumerations
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / Network
+
+## Enumeration: Network
+
+Supported Celestia networks.
+
+### Enumeration Members
+
+#### Arabica
+
+> **Arabica**: `1`
+
+Arabica testnet.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:22
+
+***
+
+#### Mainnet
+
+> **Mainnet**: `0`
+
+Celestia mainnet.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:18
+
+***
+
+#### Mocha
+
+> **Mocha**: `2`
+
+Mocha testnet.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:26
+
+***
+
+#### Private
+
+> **Private**: `3`
+
+Private local network.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:30
+
+
+
+
+[**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:43
+
+***
+
+#### Rejected
+
+> **Rejected**: `2`
+
+Sampling is done and block is rejected.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:47
+
+***
+
+#### Unknown
+
+> **Unknown**: `0`
+
+Sampling is not done.
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:39
+
+# Functions
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / protoEncodeSignDoc
+
+## Function: protoEncodeSignDoc()
+
+> **protoEncodeSignDoc**(`sign_doc`): `Uint8Array`
+
+A helper to encode the SignDoc with protobuf to get bytes to sign directly.
+
+### Parameters
+
+#### sign\_doc
+
+[`SignDoc`](#interfacessigndocmd)
+
+### Returns
+
+`Uint8Array`
+
+### Defined in
+
+lumina\_node\_wasm.d.ts:10
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / setup\_logging
+
+## Function: setup\_logging()
+
+> **setup\_logging**(): `void`
+
+Set up a logging layer that direct logs to the browser's console.
+
+### Returns
+
+`void`
+
+### Defined in
+
+lumina\_node\_wasm.d.ts:6
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+# lumina-node-wasm
+
+## Enumerations
+
+- [Network](#enumerationsnetworkmd)
+- [SamplingStatus](#enumerationssamplingstatusmd)
+
+## Classes
+
+- [AppVersion](#classesappversionmd)
+- [Blob](#classesblobmd)
+- [BlockRange](#classesblockrangemd)
+- [Commitment](#classescommitmentmd)
+- [ConnectionCountersSnapshot](#classesconnectioncounterssnapshotmd)
+- [DataAvailabilityHeader](#classesdataavailabilityheadermd)
+- [ExtendedHeader](#classesextendedheadermd)
+- [IntoUnderlyingByteSource](#classesintounderlyingbytesourcemd)
+- [IntoUnderlyingSink](#classesintounderlyingsinkmd)
+- [IntoUnderlyingSource](#classesintounderlyingsourcemd)
+- [Namespace](#classesnamespacemd)
+- [NetworkInfoSnapshot](#classesnetworkinfosnapshotmd)
+- [NodeClient](#classesnodeclientmd)
+- [NodeConfig](#classesnodeconfigmd)
+- [NodeWorker](#classesnodeworkermd)
+- [PeerTrackerInfoSnapshot](#classespeertrackerinfosnapshotmd)
+- [SamplingMetadata](#classessamplingmetadatamd)
+- [SyncingInfoSnapshot](#classessyncinginfosnapshotmd)
+- [TxClient](#classestxclientmd)
+
+## Interfaces
+
+- [AuthParams](#interfacesauthparamsmd)
+- [BaseAccount](#interfacesbaseaccountmd)
+- [Coin](#interfacescoinmd)
+- [ProtoAny](#interfacesprotoanymd)
+- [PublicKey](#interfacespublickeymd)
+- [SignDoc](#interfacessigndocmd)
+- [TxConfig](#interfacestxconfigmd)
+- [TxInfo](#interfacestxinfomd)
+
+## Type Aliases
+
+- [ReadableStreamType](#type-aliasesreadablestreamtypemd)
+- [SignerFn](#type-aliasessignerfnmd)
+
+## Functions
+
+- [protoEncodeSignDoc](#functionsprotoencodesigndocmd)
+- [setup\_logging](#functionssetup_loggingmd)
+
+# Interfaces
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / AuthParams
+
+## Interface: AuthParams
+
+Auth module parameters
+
+### Properties
+
+#### maxMemoCharacters
+
+> **maxMemoCharacters**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:78
+
+***
+
+#### sigVerifyCostEd25519
+
+> **sigVerifyCostEd25519**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:81
+
+***
+
+#### sigVerifyCostSecp256k1
+
+> **sigVerifyCostSecp256k1**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:82
+
+***
+
+#### txSigLimit
+
+> **txSigLimit**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:79
+
+***
+
+#### txSizeCostPerByte
+
+> **txSizeCostPerByte**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:80
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / BaseAccount
+
+## Interface: BaseAccount
+
+Common data of all account types
+
+### Properties
+
+#### accountNumber
+
+> **accountNumber**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:70
+
+***
+
+#### address
+
+> **address**: `string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:68
+
+***
+
+#### pubkey?
+
+> `optional` **pubkey**: [`PublicKey`](#interfacespublickeymd)
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:69
+
+***
+
+#### sequence
+
+> **sequence**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:71
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / Coin
+
+## Interface: Coin
+
+Coin
+
+### Properties
+
+#### amount
+
+> **amount**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:92
+
+***
+
+#### denom
+
+> **denom**: `string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:91
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / ProtoAny
+
+## Interface: ProtoAny
+
+Protobuf Any type
+
+### Properties
+
+#### typeUrl
+
+> **typeUrl**: `string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:136
+
+***
+
+#### value
+
+> **value**: `Uint8Array`\<`ArrayBuffer`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:137
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / PublicKey
+
+## Interface: PublicKey
+
+Public key
+
+### Properties
+
+#### type
+
+> **type**: `"ed25519"` \| `"secp256k1"`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:60
+
+***
+
+#### value
+
+> **value**: `Uint8Array`\<`ArrayBuffer`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:61
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / SignDoc
+
+## Interface: SignDoc
+
+A payload to be signed
+
+### Properties
+
+#### accountNumber
+
+> **accountNumber**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:122
+
+***
+
+#### authInfoBytes
+
+> **authInfoBytes**: `Uint8Array`\<`ArrayBuffer`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:120
+
+***
+
+#### bodyBytes
+
+> **bodyBytes**: `Uint8Array`\<`ArrayBuffer`\>
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:119
+
+***
+
+#### chainId
+
+> **chainId**: `string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:121
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / TxConfig
+
+## Interface: TxConfig
+
+Transaction config.
+
+### Properties
+
+#### gasLimit?
+
+> `optional` **gasLimit**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:109
+
+***
+
+#### gasPrice?
+
+> `optional` **gasPrice**: `number`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:110
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / TxInfo
+
+## Interface: TxInfo
+
+Transaction info
+
+### Properties
+
+#### hash
+
+> **hash**: `string`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:101
+
+***
+
+#### height
+
+> **height**: `bigint`
+
+##### Defined in
+
+lumina\_node\_wasm.d.ts:102
+
+# Type Aliases
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / ReadableStreamType
+
+## Type Alias: ReadableStreamType
+
+> **ReadableStreamType**: `"bytes"`
+
+The `ReadableStreamType` enum.
+
+*This API requires the following crate features to be activated: `ReadableStreamType`*
+
+### Defined in
+
+lumina\_node\_wasm.d.ts:54
+
+
+
+
+[**lumina-node-wasm**](#readmemd)
+
+***
+
+[lumina-node-wasm](#globalsmd) / SignerFn
+
+## Type Alias: SignerFn
+
+> **SignerFn**: (`arg`) => `Uint8Array` \| (`arg`) => `Promise`\<`Uint8Array`\>
+
+A function that produces a signature of a payload
+
+### Defined in
+
+lumina\_node\_wasm.d.ts:128
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..8f39b75a 100644
--- a/node/CHANGELOG.md
+++ b/node/CHANGELOG.md
@@ -6,6 +6,24 @@ 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-27
+
+### 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
+
+- *(node)* update bootstrap peers (#520)
+- Update wasm-bindgen, remove cfg_attr wasm-bindgen workaround (#507)
+- *(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..880f871c 100644
--- a/proto/CHANGELOG.md
+++ b/proto/CHANGELOG.md
@@ -6,6 +6,18 @@ 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-27
+
+### Added
+
+- *(grpc,node-wasm)* add javascript bindings for tx client (#510)
+- *(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..593cdd1d 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-27
+
+### 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..0862a865 100644
--- a/types/CHANGELOG.md
+++ b/types/CHANGELOG.md
@@ -6,6 +6,26 @@ 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-27
+
+### Added
+
+- *(grpc,node-wasm)* add javascript bindings for tx client (#510)
+- *(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
+
+- Update wasm-bindgen, remove cfg_attr wasm-bindgen workaround (#507)
+- *(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"