lumina-node
v1.0.0
Published
Lumina node for Celestia, running in browser
Readme
lumina-node-wasm
Lumina node wasm
A compatibility layer for the Lumina node to
work within a browser environment and be operable with javascript.
Changelog
You can find about the latest changes here.
Example
Starting lumina inside a dedicated worker
import { spawnNode, Network, NodeConfig } from "lumina-node";
const node = await spawnNode();
const mainnetConfig = NodeConfig.default(Network.Mainnet);
await node.start(mainnetConfig);
await node.waitConnected();
await node.requestHeadHeader();Manual setup
spawnNode sets up a DedicatedWorker instance and runs NodeWorker there. If you want to set things up manually
you need to connect client and worker using objects that have MessagePort interface.
import { Network, NodeClient, NodeConfig, NodeWorker } from "lumina-node";
const config = NodeConfig.default(Network.Mainnet);
// client and worker accept any object with MessagePort like interface e.g. Worker
const channel = new MessageChannel();
const worker = new NodeWorker(channel.port1);
// note that this runs lumina in the current context (and doesn't create a new web-worker). Promise created with `.run()` never completes.
const worker_promise = worker.run();
// client port can be used locally or transferred like any plain MessagePort
const client = await new NodeClient(channel.port2);
await client.waitConnected();
await client.requestHeadHeader();Rust API
For comprehensive and fully typed interface documentation, see lumina-node
and celestia-types documentation on docs.rs.
You can see there the exact structure of more complex types, such as ExtendedHeader.
JavaScript API's goal is to provide similar interface to Rust when possible, e.g. NodeClient mirrors Node.
Classes
lumina-node-wasm / AbciMessageLog
Class: AbciMessageLog
ABCIMessageLog defines a structure containing an indexed tx ABCI message log.
Properties
events
events:
StringEvent[]
Events contains a slice of Event objects that were emitted during some execution.
Defined in
lumina_node_wasm.d.ts:157
log
log:
string
Defined in
lumina_node_wasm.d.ts:158
msg_index
msg_index:
number
Defined in
lumina_node_wasm.d.ts:159
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:152
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:151
lumina-node-wasm / AbciQueryResponse
Class: AbciQueryResponse
Response to a tx query
Properties
code
code:
ErrorCode
Response code.
Defined in
lumina_node_wasm.d.ts:179
codespace
codespace:
string
Namespace for the Code.
Defined in
lumina_node_wasm.d.ts:183
height
readonlyheight:bigint
The block height from which data was derived.
Note that this is the height of the block containing the application's Merkle root hash, which represents the state as it was after committing the block at height - 1.
Defined in
lumina_node_wasm.d.ts:175
index
index:
bigint
The index of the key in the tree.
Defined in
lumina_node_wasm.d.ts:187
info
info:
string
Additional information. May be non-deterministic.
Defined in
lumina_node_wasm.d.ts:191
key
key:
Uint8Array<ArrayBufferLike>
The key of the matching data.
Defined in
lumina_node_wasm.d.ts:195
log
log:
string
The output of the application's logger (raw string). May be non-deterministic.
Defined in
lumina_node_wasm.d.ts:200
value
value:
Uint8Array<ArrayBufferLike>
The value of the matching data.
Defined in
lumina_node_wasm.d.ts:218
Accessors
proof_ops
Get Signature
get proof_ops():
ProofOps
Serialized proof for the value data, if requested,
to be verified against the AppHash for the given [Height].
Returns
Set Signature
set proof_ops(
value):void
Serialized proof for the value data, if requested,
to be verified against the AppHash for the given [Height].
Parameters
####### value
Returns
void
Defined in
lumina_node_wasm.d.ts:207
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:168
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:167
lumina-node-wasm / AccAddress
Class: AccAddress
Address of an account.
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:235
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:234
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:229
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:233
lumina-node-wasm / Attribute
Class: Attribute
Attribute defines an attribute wrapper where the key and value are strings instead of raw bytes.
Properties
key
key:
string
Defined in
lumina_node_wasm.d.ts:260
value
value:
string
Defined in
lumina_node_wasm.d.ts:261
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:259
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:258
lumina-node-wasm / AuthInfo
Class: AuthInfo
[AuthInfo] describes the fee and signer modes that are used to sign a transaction.
Properties
fee
fee:
Fee
[Fee] and gas limit for the transaction.
The first signer is the primary signer and the one which pays the fee. The fee can be calculated based on the cost of evaluating the body and doing signature verification of the signers. This can be estimated via simulation.
Defined in
lumina_node_wasm.d.ts:278
signer_infos
signer_infos:
SignerInfo[]
Defines the signing modes for the required signers.
The number and order of elements must match the required signers from transaction
[TxBody]’s messages. The first element is the primary signer and the one
which pays the [Fee].
Defined in
lumina_node_wasm.d.ts:286
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:270
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:269
lumina-node-wasm / Blob
Class: Blob
Arbitrary data that can be stored in the network within certain [Namespace].
Constructors
new Blob()
new Blob(
namespace,data):Blob
Create a new blob with the given data within the [Namespace].
Parameters
namespace
data
Uint8Array<ArrayBufferLike>
Returns
Defined in
lumina_node_wasm.d.ts:310
Properties
commitment
commitment:
Commitment
A [Commitment] computed from the Blobs data.
Defined in
lumina_node_wasm.d.ts:314
data
data:
Uint8Array<ArrayBufferLike>
Data stored within the Blob.
Defined in
lumina_node_wasm.d.ts:318
namespace
namespace:
Namespace
A [Namespace] the Blob belongs to.
Defined in
lumina_node_wasm.d.ts:330
share_version
share_version:
number
Version indicating the format in which Shares should be created from this Blob.
Defined in
lumina_node_wasm.d.ts:334
Accessors
index
Get Signature
get index():
bigint
Index of the blob's first share in the EDS. Only set for blobs retrieved from chain.
Returns
bigint
Set Signature
set index(
value):void
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:322
signer
Get Signature
get signer():
AccAddress
A signer of the blob, i.e. address of the account which submitted the blob.
Must be present in share_version 1 and absent otherwise.
Returns
Set Signature
set signer(
value):void
A signer of the blob, i.e. address of the account which submitted the blob.
Must be present in share_version 1 and absent otherwise.
Parameters
####### value
Returns
void
Defined in
lumina_node_wasm.d.ts:340
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:302
clone()
clone():
Blob
Clone a blob creating a new deep copy of it.
Returns
Defined in
lumina_node_wasm.d.ts:306
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:301
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:296
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:300
lumina-node-wasm / BlobParams
Class: BlobParams
Params defines the parameters for the blob module.
Properties
gas_per_blob_byte
gas_per_blob_byte:
number
Gas cost per blob byte
Defined in
lumina_node_wasm.d.ts:367
gov_max_square_size
gov_max_square_size:
bigint
Max square size
Defined in
lumina_node_wasm.d.ts:371
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:363
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:362
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:357
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:361
lumina-node-wasm / BlobsAtHeight
Class: BlobsAtHeight
List of blobs together with height they were published at
Properties
blobs
blobs:
Blob[]
Published blobs
Defined in
lumina_node_wasm.d.ts:392
height
height:
bigint
Height the blobs were published at
Defined in
lumina_node_wasm.d.ts:396
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:388
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:387
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:382
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:386
lumina-node-wasm / Block
Class: Block
Blocks consist of a header, transactions, votes (the commit), and a list of evidence of malfeasance (i.e. signing conflicting votes).
This is a modified version of [tendermint::block::Block] which contains
modifications that Celestia introduced.
Properties
data
data:
Data
Transaction data
Defined in
lumina_node_wasm.d.ts:427
evidence
readonlyevidence:Evidence[]
Evidence of malfeasance
Defined in
lumina_node_wasm.d.ts:415
header
readonlyheader:Header
Block header
Defined in
lumina_node_wasm.d.ts:419
lastCommit
readonlylastCommit:Commit
Last commit, should be None for the initial block.
Defined in
lumina_node_wasm.d.ts:423
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:411
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:410
lumina-node-wasm / BlockId
Class: BlockId
Block identifiers which contain two distinct Merkle roots of the block, as well as the number of parts in the block.
Properties
hash
hash:
string
The block’s main hash is the Merkle root of all the fields in the block header.
Defined in
lumina_node_wasm.d.ts:440
part_set_header
part_set_header:
PartsHeader
Parts header (if available) is used for secure gossipping of the block during consensus. It is the Merkle root of the complete serialized block cut into parts.
PartSet is used to split a byteslice of data into parts (pieces) for transmission. By splitting data into smaller parts and computing a Merkle root hash on the list, you can verify that a part is legitimately part of the complete data, and the part can be forwarded to other peers before all the parts are known. In short, it’s a fast way to propagate a large file over a gossip network.
https://github.com/tendermint/tendermint/wiki/Block-Structure#partset
PartSetHeader in protobuf is defined as never nil using the gogoproto annotations. This does not translate to Rust, but we can indicate this in the domain type.
Defined in
lumina_node_wasm.d.ts:456
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:436
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:435
lumina-node-wasm / BlockRange
Class: BlockRange
A range of blocks between start and end height, inclusive
Properties
end
end:
bigint
Last block height in range
Defined in
lumina_node_wasm.d.ts:477
start
start:
bigint
First block height in range
Defined in
lumina_node_wasm.d.ts:481
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:473
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:472
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:467
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:471
lumina-node-wasm / BroadcastMode
Class: BroadcastMode
BroadcastMode specifies the broadcast mode for the TxService.Broadcast RPC method.
Properties
Async
readonlystaticAsync:BroadcastMode
BroadcastMode Async defines a tx broadcasting mode where the client returns
immediately.
Defined in
lumina_node_wasm.d.ts:495
Block
readonlystaticBlock:BroadcastMode
DEPRECATED: use BroadcastMode Sync instead,
BroadcastMode Block is not supported by the SDK from v0.47.x onwards.
Defined in
lumina_node_wasm.d.ts:500
Sync
readonlystaticSync:BroadcastMode
BroadcastMode Sync defines a tx broadcasting mode where the client waits for
a CheckTx execution response only.
Defined in
lumina_node_wasm.d.ts:505
Unspecified
readonlystaticUnspecified:BroadcastMode
zero-value for mode ordering
Defined in
lumina_node_wasm.d.ts:509
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:490
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:489
lumina-node-wasm / Coin
Class: Coin
Coin defines a token with a denomination and an amount.
Properties
amount
amount:
bigint
Defined in
lumina_node_wasm.d.ts:33
denom
denom:
string
Defined in
lumina_node_wasm.d.ts:32
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:518
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:517
lumina-node-wasm / Commit
Class: Commit
Commit contains the justification (ie. a set of signatures) that a block was committed by a set of validators.
Properties
block_id
block_id:
BlockId
Block ID
Defined in
lumina_node_wasm.d.ts:532
height
height:
bigint
Block height
Defined in
lumina_node_wasm.d.ts:536
round
round:
number
Round
Defined in
lumina_node_wasm.d.ts:540
signatures
signatures:
CommitSig[]
Signatures
Defined in
lumina_node_wasm.d.ts:544
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:528
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:527
lumina-node-wasm / CommitSig
Class: CommitSig
CommitSig represents a signature of a validator. It’s a part of the Commit and can be used to reconstruct the vote set given the validator set.
Properties
vote_type
vote_type:
CommitVoteType
vote type of a validator
Defined in
lumina_node_wasm.d.ts:558
Accessors
vote
Get Signature
get vote():
CommitVote
vote, if received
Returns
Set Signature
set vote(
value):void
vote, if received
Parameters
####### value
Returns
void
Defined in
lumina_node_wasm.d.ts:562
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:554
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:553
lumina-node-wasm / CommitVote
Class: CommitVote
Value of the validator vote
Properties
timestamp
timestamp:
string
Timestamp
Defined in
lumina_node_wasm.d.ts:587
validator_address
validator_address:
string
Address of the voting validator
Defined in
lumina_node_wasm.d.ts:591
Accessors
signature
Get Signature
get signature():
Signature
Signature
Returns
Set Signature
set signature(
value):void
Signature
Parameters
####### value
Returns
void
Defined in
lumina_node_wasm.d.ts:579
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:575
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:574
lumina-node-wasm / Commitment
Class: Commitment
A merkle hash used to identify the Blobs data.
In Celestia network, the transaction which pays for the blob's inclusion
is separated from the data itself. The reason for that is to allow verifying
the blockchain's state without the need to pull the actual data which got stored.
To achieve that, the MsgPayForBlobs transaction only includes the [Commitment]s
of the blobs it is paying for, not the data itself.
The algorithm of computing the [Commitment] of the Blob's Shares is
designed in a way to allow easy and cheap proving of the Shares 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:
NMT: row root
/ \
o subtree root
/ \ / \
_________________
EDS row: | s | s | s1 | s2 |Using subtree roots as a base for [Commitment] computation allows for much smaller
inclusion proofs than when the Shares would be used directly, but it imposes some
constraints on how the Blobs can be placed in the ExtendedDataSquare. You can
read more about that in the share commitment rules.
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:658
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:657
hash()
hash():
Uint8Array<ArrayBufferLike>
Hash of the commitment
Returns
Uint8Array<ArrayBufferLike>
Defined in
lumina_node_wasm.d.ts:662
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:652
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:656
lumina-node-wasm / ConfigResponse
Class: ConfigResponse
Response holding consensus node configuration.
Properties
halt_height
halt_height:
bigint
A height at which the node should stop advancing state.
Defined in
lumina_node_wasm.d.ts:675
pruning_interval
pruning_interval:
bigint
Amount of blocks used as an interval to trigger prunning.
Defined in
lumina_node_wasm.d.ts:687
pruning_keep_recent
pruning_keep_recent:
bigint
How many recent blocks are stored by the node.
Defined in
lumina_node_wasm.d.ts:691
Accessors
minimum_gas_price
Get Signature
get minimum_gas_price():
number
Minimum gas price for the node to accept tx. Value is in utia denom.
Returns
number
Set Signature
set minimum_gas_price(
value):void
Minimum gas price for the node to accept tx. Value is in utia denom.
Parameters
####### value
number
Returns
void
Defined in
lumina_node_wasm.d.ts:679
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:671
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:670
lumina-node-wasm / ConflictingBlock
Class: ConflictingBlock
Conflicting block detected in light client attack
Properties
signed_header
signed_header:
SignedHeader
Signed header
Defined in
lumina_node_wasm.d.ts:704
validator_set
validator_set:
ValidatorSet
Validator set
Defined in
lumina_node_wasm.d.ts:708
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:700
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:699
lumina-node-wasm / ConnectionCountersSnapshot
Class: ConnectionCountersSnapshot
Network connection information
Properties
num_connections
num_connections:
number
The total number of connections, both pending and established.
Defined in
lumina_node_wasm.d.ts:729
num_established
num_established:
number
The number of outgoing connections being established.
Defined in
lumina_node_wasm.d.ts:741
num_established_incoming
num_established_incoming:
number
The number of established incoming connections.
Defined in
lumina_node_wasm.d.ts:733
num_established_outgoing
num_established_outgoing:
number
The number of established outgoing connections.
Defined in
lumina_node_wasm.d.ts:737
num_pending
num_pending:
number
The total number of pending connections, both incoming and outgoing.
Defined in
lumina_node_wasm.d.ts:753
num_pending_incoming
num_pending_incoming:
number
The total number of pending connections, both incoming and outgoing.
Defined in
lumina_node_wasm.d.ts:745
num_pending_outgoing
num_pending_outgoing:
number
The number of outgoing connections being established.
Defined in
lumina_node_wasm.d.ts:749
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:725
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:724
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:719
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:723
lumina-node-wasm / ConsAddress
Class: ConsAddress
Address of a consensus node.
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:770
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:769
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:764
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:768
lumina-node-wasm / Data
Class: Data
Data contained in a Block.
Properties
hash
hash:
Uint8Array<ArrayBufferLike>
Hash is the root of a binary Merkle tree where the leaves of the tree are the row and column roots of an extended data square. Hash is often referred to as the "data root".
Defined in
lumina_node_wasm.d.ts:791
square_size
square_size:
bigint
Square width of original data square.
Defined in
lumina_node_wasm.d.ts:795
transactions
readonlytransactions:Uint8Array<ArrayBufferLike>[]
Transactions
Defined in
lumina_node_wasm.d.ts:785
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:781
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:780
lumina-node-wasm / DataAvailabilityHeader
Class: DataAvailabilityHeader
Header with commitments of the data availability.
It consists of the root hashes of the merkle trees created from each
row and column of the ExtendedDataSquare. Those are used to prove
the inclusion of the data in a block.
The hash of this header is a hash of all rows and columns and thus a data commitment of the block.
Example
## use celestia_types::{ExtendedHeader, Height, Share};
## use celestia_types::nmt::{Namespace, NamespaceProof};
## fn extended_header() -> ExtendedHeader {
## unimplemented!();
## }
## fn shares_with_proof(_: u64, _: &Namespace) -> (Vec<Share>, NamespaceProof) {
## unimplemented!();
## }
// fetch the block header and data for your namespace
let namespace = Namespace::new_v0(&[1, 2, 3, 4]).unwrap();
let eh = extended_header();
let (shares, proof) = shares_with_proof(eh.height(), &namespace);
// get the data commitment for a given row
let dah = eh.dah;
let root = dah.row_root(0).unwrap();
// verify a proof of the inclusion of the shares
assert!(proof.verify_complete_namespace(&root, &shares, *namespace).is_ok());Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:845
columnRoot()
columnRoot(
column):any
Get the a root of the column with the given index.
Parameters
column
number
Returns
any
Defined in
lumina_node_wasm.d.ts:849
columnRoots()
columnRoots():
any[]
Merkle roots of the ExtendedDataSquare columns.
Returns
any[]
Defined in
lumina_node_wasm.d.ts:853
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:844
hash()
hash():
any
Compute the combined hash of all rows and columns.
This is the data commitment for the block.
Returns
any
Defined in
lumina_node_wasm.d.ts:859
rowRoot()
rowRoot(
row):any
Get a root of the row with the given index.
Parameters
row
number
Returns
any
Defined in
lumina_node_wasm.d.ts:863
rowRoots()
rowRoots():
any[]
Merkle roots of the ExtendedDataSquare rows.
Returns
any[]
Defined in
lumina_node_wasm.d.ts:867
squareWidth()
squareWidth():
number
Get the size of the ExtendedDataSquare for which this header was built.
Returns
number
Defined in
lumina_node_wasm.d.ts:871
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:839
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:843
lumina-node-wasm / DuplicateVoteEvidence
Class: DuplicateVoteEvidence
Duplicate vote evidence
Properties
timestamp
timestamp:
string
Timestamp
Defined in
lumina_node_wasm.d.ts:884
total_voting_power
total_voting_power:
bigint
Total voting power
Defined in
lumina_node_wasm.d.ts:888
validator_power
validator_power:
bigint
Validator power
Defined in
lumina_node_wasm.d.ts:892
vote_a
vote_a:
Vote
Vote A
Defined in
lumina_node_wasm.d.ts:896
vote_b
vote_b:
Vote
Vote B
Defined in
lumina_node_wasm.d.ts:900
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:880
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:879
lumina-node-wasm / Endpoint
Class: Endpoint
A URL endpoint paired with its configuration.
Use this with withUrl/withUrls to configure endpoints with different settings.
Example
const primary = new Endpoint(
"http://primary:9090"
);
primary = primary.withMetadata("auth", "token1");
const fallback = new Endpoint(
"http://fallback:9090"
);
fallback = fallback.withTimeout(10000);
const client = await GrpcClient
.withUrls([primary, fallback])
.build();Constructors
new Endpoint()
new Endpoint(
url):Endpoint
Create a new endpoint with a URL.
Parameters
url
string
Returns
Defined in
lumina_node_wasm.d.ts:931
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:927
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:926
withMetadata()
withMetadata(
key,value):Endpoint
Appends ASCII metadata (HTTP/2 header) to requests made to this endpoint.
Note that this method consumes the endpoint and returns an updated instance.
Parameters
key
string
value
string
Returns
Defined in
lumina_node_wasm.d.ts:937
withMetadataBin()
withMetadataBin(
key,value):Endpoint
Appends binary metadata to requests made to this endpoint.
Keys must have -bin suffix.
Note that this method consumes the endpoint and returns an updated instance.
Parameters
key
string
value
Uint8Array<ArrayBufferLike>
Returns
Defined in
lumina_node_wasm.d.ts:945
withTimeout()
withTimeout(
timeout_ms):Endpoint
Sets the request timeout in milliseconds for this endpoint.
Note that this method consumes the endpoint and returns an updated instance.
Parameters
timeout_ms
bigint
Returns
Defined in
lumina_node_wasm.d.ts:951
lumina-node-wasm / Evidence
Class: Evidence
Evidence of malfeasance by validators (i.e. signing conflicting votes or light client attack).
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1252
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1251
lumina-node-wasm / ExtendedHeader
Class: ExtendedHeader
Block header together with the relevant Data Availability metadata.
[ExtendedHeader]s are used to announce and describe the blocks
in the Celestia network.
Before being used, each header should be validated and verified with a header you trust.
Example
## use celestia_types::ExtendedHeader;
## fn trusted_genesis_header() -> ExtendedHeader {
## let s = include_str!("../test_data/chain1/extended_header_block_1.json");
## serde_json::from_str(s).unwrap()
## }
## fn some_untrusted_header() -> ExtendedHeader {
## let s = include_str!("../test_data/chain1/extended_header_block_27.json");
## serde_json::from_str(s).unwrap()
## }
let genesis_header = trusted_genesis_header();
// fetch new header
let fetched_header = some_untrusted_header();
fetched_header.validate().expect("Invalid block header");
genesis_header.verify(&fetched_header).expect("Malicious header received");Properties
commit
readonlycommit:any
Commit metadata and signatures from validators committing the block.
Defined in
lumina_node_wasm.d.ts:1377
dah
Header of the block data availability.
Defined in
lumina_node_wasm.d.ts:1389
header
readonlyheader:any
Tendermint block header.
Defined in
lumina_node_wasm.d.ts:1381
validatorSet
readonlyvalidatorSet:any
Information about the set of validators commiting the block.
Defined in
lumina_node_wasm.d.ts:1385
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1295
clone()
clone():
ExtendedHeader
Clone a header producing a deep copy of it.
Returns
Defined in
lumina_node_wasm.d.ts:1299
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1294
hash()
hash():
string
Get the block hash.
Returns
string
Defined in
lumina_node_wasm.d.ts:1303
height()
height():
bigint
Get the block height.
Returns
bigint
Defined in
lumina_node_wasm.d.ts:1307
previousHeaderHash()
previousHeaderHash():
string
Get the hash of the previous header.
Returns
string
Defined in
lumina_node_wasm.d.ts:1311
time()
time():
number
Get the block time.
Returns
number
Defined in
lumina_node_wasm.d.ts:1315
toJSON()
toJSON():
Object
- Return copy of self without private attributes.
Returns
Object
Defined in
lumina_node_wasm.d.ts:1289
toString()
toString():
string
Return stringified version of self.
Returns
string
Defined in
lumina_node_wasm.d.ts:1293
validate()
validate():
void
Decode protobuf encoded header and then validate it.
Returns
void
Defined in
lumina_node_wasm.d.ts:1319
verify()
verify(
untrusted):void
Verify a chain of adjacent untrusted headers and make sure
they are adjacent to self.
Errors
If verification fails, this function will return an error with a reason of failure.
This function will also return an error if untrusted headers and self don't form contiguous range
Parameters
untrusted
Returns
void
Defined in
lumina_node_wasm.d.ts:1329
verifyAdjacentRange()
verifyAdjacentRange(
untrusted):void
Verify a chain of adjacent untrusted headers and make sure
they are adjacent to self.
Note
Provided headers will be consumed by this method, meaning
they will no longer be accessible. If this behavior is not desired,
consider using ExtendedHeader.clone().
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
Returns
void
Defined in
lumina_node_wasm.d.ts:1351
verifyRange()
verifyRange(
untrusted):void
Verify a chain of adjacent untrusted headers.
Note
Provided headers will be consumed by this method, meaning
they will no longer be accessible. If this behavior is not desired,
consider using ExtendedHeader.clone().
const genesis = hdr0;
const headers = [hrd1, hdr2, hdr3];
genesis.verifyRange(headers.map(h => h.clone()));Errors
If verification fails, this function will return an error with a reason of failure. This function will also return an error if untrusted headers are not adjacent to each other.
Parameters
untrusted
Returns
void
Defined in
lumina_node_wasm.d.ts:1373
lumina-node-wasm / Fee
Class: Fee
Fee includes the amount of coins paid in fees and the maximum gas to be used by the transaction. The ratio yields an effective "gasprice", which must be above some miminum to be accepted into the mempool.
Properties
amount
amount:
Coin[]
amount is the amount of coins to be paid as a fee
Defined in
lumina_node_wasm.d.ts:1416
gas_limit
gas_limit:
bigint
gas_limit is the maximum gas that can be used in transaction processing before an out of gas error occurs
Defined in
lumina_node_wasm.d.ts:1421
granter
readonlygranter:string
if set, the fee payer (either the first signer or the value of the payer field) requests that a fee grant be used to pay fees instead of the fee payer's own balance. If an appropriate fee grant does not exist or the chain does not support fee grants, this will fail
Defined in
lumina_node_wasm.d.ts:1406
payer
readonlypayer:string
if unset, the first signer is responsible for paying the fees. If set, the specified account must pay the fees. the payer must be a tx signer (and thus have signed this field in AuthInfo). setting this field does not change the ordering of required signers for the transaction.
Defined in
lumina_node_wasm.d.ts:1412
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1400
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1399
lumina-node-wasm / GasEstimate
Class: GasEstimate
Result of gas price and usage estimation
Properties
price
price:
number
Gas price estimated based on last 5 blocks
Defined in
lumina_node_wasm.d.ts:1434
usage
usage:
bigint
Simulated transaction gas usage
Defined in
lumina_node_wasm.d.ts:1438
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1430
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1429
lumina-node-wasm / GasInfo
Class: GasInfo
GasInfo defines tx execution gas context.
Properties
gas_used
gas_used:
bigint
GasUsed is the amount of gas actually consumed.
Defined in
lumina_node_wasm.d.ts:1451
gas_wanted
gas_wanted:
bigint
GasWanted is the maximum units of work we allow this tx to perform.
Defined in
lumina_node_wasm.d.ts:1455
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1447
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1446
lumina-node-wasm / GetTxResponse
Class: GetTxResponse
Response to GetTx
Properties
tx
tx:
Tx
Response Transaction
Defined in
lumina_node_wasm.d.ts:1472
tx_response
tx_response:
TxResponse
TxResponse to a Query
Defined in
lumina_node_wasm.d.ts:1468
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1464
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1463
lumina-node-wasm / GrpcClient
Class: GrpcClient
Celestia gRPC client, for builder see [GrpcClientBuilder]
Properties
chainId
readonlychainId:Promise<string>
Chain id of the client
Defined in
lumina_node_wasm.d.ts:1708
Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1481
abciQuery()
abciQuery(
data,path,height,prove):Promise<AbciQueryResponse>
Issue a direct ABCI query to the application
Parameters
data
Uint8Array<ArrayBufferLike>
path
string
height
bigint
prove
boolean
Returns
Promise<AbciQueryResponse>
Defined in
lumina_node_wasm.d.ts:1485
broadcastBlobs()
broadcastBlobs(
blobs,tx_config?):Promise<BroadcastedTx>
Broadcast blobs to the celestia network, and return without confirming.
Example
const ns = Namespace.newV0(new Uint8Array([97, 98, 99]));
const data = new Uint8Array([100, 97, 116, 97]);
const blob = new Blob(ns, data);
const broadcastedTx = await txClient.broadcastBlobs([blob]);
console.log("Tx hash:", broadcastedTx.hash);
const txInfo = await txClient.confirmTx(broadcastedTx);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().
const blobs = [blob1, blob2, blob3];
await txClient.broadcastBlobs(blobs.map(b => b.clone()));Parameters
blobs
Blob[]
tx_config?
Returns
Promise<BroadcastedTx>
Defined in
lumina_node_wasm.d.ts:1511
broadcastMessage()
broadcastMessage(
message,tx_config?):Promise<BroadcastedTx>
Broadcast message to the celestia network, and return without confirming.
Example
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 broadcastedTx = await txClient.broadcastMessage(sendMsgAny);
console.log("Tx hash:", broadcastedTx.hash);
const txInfo = await txClient.confirmTx(broadcastedTx);Parameters
message
tx_config?
Returns
Promise<BroadcastedTx>
Defined in
lumina_node_wasm.d.ts:1535
broadcastTx()
broadcastTx(
tx_bytes,mode):Promise<TxResponse>
Broadcast prepared and serialised transaction
Parameters
tx_bytes
Uint8Array<ArrayBufferLike>
mode
Returns
Promise<TxResponse>
Defined in
lumina_node_wasm.d.ts:1539
confirmTx()
confirmTx(
broadcasted_tx,tx_config?):Promise<TxInfo>
Confirm transaction broadcasted with [broadcast_blobs] or [broadcast_message].
Example
const ns = Namespace.newV0(new Uint8Array([97, 98, 99]));
const data = new Uint8Array([100, 97, 116, 97]);
const blob = new Blob(ns, data);
const broadcastedTx = await txClient.broadcastBlobs([blob]);
console.log("Tx hash:", broadcastedTx.hash);
const txInfo = await txClient.confirmTx(broadcastedTx);
console.log("Confirmed at height:", txInfo.height);Parameters
broadcasted_tx
tx_config?
Returns
Promise<TxInfo>
Defined in
lumina_node_wasm.d.ts:1555
estimateGasPrice()
estimateGasPrice(
priority):Promise<number>
Estimate gas price for given transaction priority based on the gas prices of the transactions in the last five blocks.
If no transaction is found in the last five blocks, return the network min gas price.
Parameters
priority
Returns
Promise<number>
Defined in
lumina_node_wasm.d.ts:1563
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1480
get_node_config()
get_node_config():
Promise<ConfigResponse>
Get node configuration
Returns
Promise<ConfigResponse>
Defined in
lumina_node_wasm.d.ts:1622
getAccount()
getAccount(
account):Promise<BaseAccount>
Get account
Parameters
account
string
Returns
Promise<BaseAccount>
Defined in
lumina_node_wasm.d.ts:1567
getAccounts()
getAccounts():
Promise<BaseAccount[]>
Get accounts
Returns
Promise<BaseAccount[]>
Defined in
lumina_node_wasm.d.ts:1571
getAllBalances()
getAllBalances(
address):Promise<Coin[]>
Get balance of all coins
Parameters
address
string
Returns
Promise<Coin[]>
Defined in
lumina_node_wasm.d.ts:1575
getAuthParams()
getAuthParams():
Promise<AuthParams>
Get auth params
Returns
Promise<AuthParams>
Defined in
lumina_node_wasm.d.ts:1579
getBalance()
getBalance(
address,denom):Promise<Coin>
Retrieves the Celestia coin balance for the given address.
Parameters
address
string
denom
string
Returns
Promise<Coin>
Defined in
lumina_node_wasm.d.ts:1583
getBlobParams()
getBlobParams():
Promise<BlobParams>
Get blob params
Returns
Promise<BlobParams>
Defined in
lumina_node_wasm.d.ts:1587
getBlockByHeight()
getBlockByHeight(
height):Promise<Block>
Get block by height
Parameters
height
bigint
Returns
Promise<Block>
Defined in
lumina_node_wasm.d.ts:1591
getLatestBlock()
getLatestBlock():
Promise<Block>
Get latest block
Returns
Promise<Block>
Defined in
lumina_node_wasm.d.ts:1595
getSpendableBalances()
getSpendableBalances(
address):Promise<Coin[]>
Get balance of all spendable coins
Parameters
address
string
Returns
Promise<Coin[]>
Defined in
lumina_node_wasm.d.ts:1599
getTotalSupply()
getTotalSupply():
Promise<Coin[]>
Get total supply
Returns
Promise<Coin[]>
Defined in
lumina_node_wasm.d.ts:1603
getTx()
getTx(
hash):Promise<GetTxResponse>
Get Tx
Parameters
hash
string
Returns
Promise<GetTxResponse>
Defined in
lumina_node_wasm.d.ts:1607
getVerifiedBalance()
getVerifiedBalance(
address,header):Promise<Coin>
Retrieves the verified Celestia coin balance for the address.
Notes
This returns the verified balance which is the one that was reported by
the previous network block. In other words, if you transfer some coins,
you need to wait 1 more block in order to see the new balance. If you want
something more immediate then use [GrpcClient::get_balance].
Parameters
address
string
header
Returns
Promise<Coin>
Defined in
lumina_node_wasm.d.ts:1618
simulate()
simulate(
tx_bytes):Promise<GasInfo>
Simulate prepared and serialised transaction, returning simulated gas usage
Parameters
tx_bytes
Uint8Array<ArrayBufferLike>
Returns
Promise<GasInfo>
Defined in
lumina_node_wasm.d.ts:1626
submitBlobs()
submitBlobs(
blobs,tx_config?):Promise<TxInfo>
Submit blobs to the celestia network.
Example
const ns = Namespace.newV0(new Uint8Array([97, 98, 99]));
const data = new Uint8Array([100, 97, 116, 97]);
const blob = new Blob(ns, data);
const txInfo = await txClient.submitBlobs([blob]);
await txClient.submitBlobs([blob], { gasLimit: 100000n, gasPrice: 0.02, memo: "foo" });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().
const blobs = [blob1, blob2, blob3];
await txClient.submitBlobs(blobs.map(b => b.clone()));Parameters
blobs
Blob[]
tx_config?
Returns
Promise<TxInfo>
Defined in
lumina_node_wasm.d.ts:1651
submitMessage()
submitMessage(
message,tx_config?):Promise<TxInfo>
Submit message to the celestia network.
Example
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
tx_config?
Returns
Promise<TxInfo>
Defined in
lumina_node_wasm.d.ts:1673
txStatus()
txStatus(
hash):Promise<TxStatusResponse>
Get status of the transaction
Parameters
hash
string
Returns
Promise<TxStatusResponse>
Defined in
lumina_node_wasm.d.ts:1677
withUrl()
staticwithUrl(url):GrpcClientBuilder
Create a builder for [GrpcClient] connected to url.
Accepts a string, an Endpoint, or an array of strings/endpoints.
Example
const client = await GrpcClient.withUrl("http://localhost:18080").build();Parameters
url
Returns
Defined in
lumina_node_wasm.d.ts:1689
withUrls()
staticwithUrls(urls):GrpcClientBuilder
Create a builder for [GrpcClient] with multiple URL endpoints for fallback support.
Accepts a string, an Endpoint, or an array of strings/endpoints.
When multiple endpoints are configured, the client will automatically fall back to the next endpoint if a network-related error occurs.
Example
const client = await GrpcClient.withUrls(["http://primary:9090", "http://fallback:9090"]).build();Parameters
urls
Returns
Defined in
lumina_node_wasm.d.ts:1704
lumina-node-wasm / GrpcClientBuilder
Class: GrpcClientBuilder
Builder for [GrpcClient] and [TxClient].
Url must point to a grpc-web proxy.
Keyless client example
const client = await GrpcClient
.withUrl("http://127.0.0.1:18080")
.build()
// With config:
const endpoint = new Endpoint("http://127.0.0.1:18080").withTimeout(BigInt(5000));
const client = await GrpcClient
.withUrl(endpoint)
.build()Transaction client examples
Example with noble/curves
import { secp256k1 } from "@noble/curves/secp256k1";
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 client = await GrpcClient
.withUrl("http://127.0.0.1:18080")
.withPubkeyAndSigner(pubKey, signer)
.build();Example with leap wallet
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 client = await GrpcClient
.withUrl("http://127.0.0.1:18080")
.withPubkeyAndSigner(keys.pubKey, signer)
.build()Methods
[dispose]()
[dispose]():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1770
build()
build():
GrpcClient
build gRPC client
Returns
Defined in
lumina_node_wasm.d.ts:1774
free()
free():
void
Returns
void
Defined in
lumina_node_wasm.d.ts:1769
withPubkeyAndSigner()
withPubkeyAndSigner(
account_pubkey,signer_fn):GrpcClientBuilder
Add public key and signer to the client being built
Note that this method consumes builder and returns updated instance of it. Make sure to re-assign it if you keep builder in a variable.
Parameters
account_pubkey
Uint8Array<ArrayBufferLike>
signer_fn
Returns
Defined in
lumina_node_wasm.d.ts:1781
withUrl()
withUrl(
url):GrpcClientBuilder
Set the url of the grpc-web server to connect to.
Accepts a string, an Endpoint, or an array of strings/endpoints.
Note that this method consumes builder and returns updated instance of it. Make sure to re-assign it if you keep builder in a variable.
Parameters
url
Returns
Defined in
lumina_node_wasm.d.ts:1790
withUrls()
withUrls(
urls):GrpcClientBuilder
Add multiple URL endpoints at once for fallback support.
Accepts a string, an Endpoint, or an array of strings/endpoints.
When multiple endpoints are configured, the client will automatically fall back to the next endpoint if a network-related error occurs.
Note that this method consumes builder and returns updated instance of it. Make sure to re-assign it if you keep builder in a variable.
Parameters
urls
Returns
Defined in
lumina_node_wasm.d.ts:1802
lumina-node-wasm / Header
Class: Header
Block Header values contain metadata about the block and about the consensus, as well as commitments to the data in the current block, the previous block, and the results returned by the application.
Properties
app_hash
app_hash:
string
State after txs from the previous block
Defined in
lumina_node_wasm.d.ts:1817
chain_id
chain_id:
string
Chain ID
Defined in
lumina_node_wasm.d.ts:1821
consensus_hash
consensus_hash:
string
Consensus params for the current block
Defined in
lumina_node_wasm.d.ts:1825
height
height:
bigint
Current block height
Defined in
lumina_node_wasm.d.ts:1845
next_validators_hash
next_validators_hash:
string
Validators for the next block
Defined in
lumina_node_wasm.d.ts:1873
proposer_address
proposer_address:
string
Original proposer of the block
Defined in
lumina_node_wasm.d.ts:1877
time
time:
string
Current timestamp encoded as rfc3339
Defined in
lumina_node_wasm.d.ts:1881
validators_hash
validators_hash:
string
Validators for the current block
Defined in
lumina_node_wasm.d.ts:1885
version
version:
ProtocolVersion
Header version
Defined in
lumina_node_wasm.d.ts:1889
Accessors
data_hash
Get Signature
get data_hash():
string
Merkle root of transaction hashes
Returns
string
Set Signature
set data_hash(
value):void
Merkle root of transaction hashes
Parameters
####### value
string
Returns
void
Defined in
lumina_node_wasm.d.ts:1829
evidence_hash
Get Signature
get
