From c6e5b7f5e3a3040bce4262fe5fba5c21a2637b52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20Zwoli=C5=84ski?= Date: Wed, 29 Jan 2025 13:08:56 +0100 Subject: [PATCH] chore: release (#529) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Maciej Zwoliński --- Cargo.lock | 16 +- Cargo.toml | 12 +- cli/CHANGELOG.md | 18 + cli/Cargo.toml | 2 +- grpc/CHANGELOG.md | 12 + grpc/Cargo.toml | 4 +- grpc/grpc-macros/CHANGELOG.md | 6 + grpc/grpc-macros/Cargo.toml | 2 +- node-wasm/CHANGELOG.md | 34 + node-wasm/Cargo.toml | 2 +- node-wasm/js/README.md | 3451 ++++++++++++++++++++++++++++----- node-wasm/js/package.json | 4 +- node/CHANGELOG.md | 18 + node/Cargo.toml | 2 +- proto/CHANGELOG.md | 12 + proto/Cargo.toml | 2 +- rpc/CHANGELOG.md | 11 + rpc/Cargo.toml | 2 +- types/CHANGELOG.md | 20 + types/Cargo.toml | 2 +- 20 files changed, 3089 insertions(+), 543 deletions(-) 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..8cd7901c 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-28 + +### 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..2b61ee1f 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-28 + +### 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..18e7b6f8 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-28 + +### 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..9170c8ba 100644 --- a/node-wasm/CHANGELOG.md +++ b/node-wasm/CHANGELOG.md @@ -6,6 +6,40 @@ 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-28 + +Summary: + +- New options on `NodeConfig`, disabling usage of indexeddb with `usePersistentMemory` and pruning configuration with `customPruningDelaySecs`. +- Added `AppVersion`, `Blob`, `Namespace` types and support for fetching blobs from network using `NodeClient.requestAllBlobs`. +- Added grpc `TxClient` for blob and cosmos messages submission to the network, as well as basic queries for `auth` and `bank`. +- `ExtendedHeader` and `DataAvailabilityHeader` are now exposed as classes from wasm instead of being used as jsons. + This means they now have methods and proper typescript support. + +For migration: + +- `header.dah.columnRoot()` and `header.dah.rowRoot()` are now methods that return `Uint8Array` instead of being + properties returning base64 `string`s +- `NodeConfig.custom_syncing_window_secs` was renamed to `NodeConfig.customSamplingWindowSecs` + +### 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) + +### Fixed + +- *(node-wasm)* [**breaking**] use camelCase in config fields (#528) + +### 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..13c23e9e 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 + +*** + +#### usePersistentMemory + +> **usePersistentMemory**: `boolean` + +Whether to store data in persistent memory or not. + +**Default value:** true + +##### Defined in + +lumina\_node\_wasm.d.ts:845 + +### Accessors + +#### customPruningDelaySecs + +##### Get Signature + +> **get** **customPruningDelaySecs**(): `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** **customPruningDelaySecs**(`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 + +*** + +#### customSamplingWindowSecs + +##### Get Signature + +> **get** **customSamplingWindowSecs**(): `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** **customSamplingWindowSecs**(`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..a588e25b 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-28 + +### 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..09e8cef4 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-28 + +### 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..f8d31246 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-28 + +### 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..d92be3b0 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-28 + +### 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"