Here is the list of libraries that make up the Lotus JS Client ecosystem.
Contains JSON data representing the available methods in the Lotus JSON-RPC API (and possibly others in the future). This data can be used by other libraries to make calls against the API, or to generate documentation, etc.
- @filecoin-shipyard/lotus-client-schema (GitHub) - contains schemas for the current master branch of Lotus + additional development branches
Pluggable "Providers" let you select a module with the code you need to connect to a Lotus node from a particular environment, such as a web page, from Node.js, or from a mobile app. Inspired by "providers" in the Ethereum ecosystem.
@filecoin-shipyard/lotus-client-provider-nodejs (GitHub) - provider for Node.js that communicates to Lotus using WebSockets or HTTP - it wraps the browser provider and includes
node-fetchfor WebSocket and browser-compatible Fetch API support
The interfaces that providers must implement are not yet defined, and will likely evolve over time.
We will be experimenting and collecting feedback on ideas for useful abstractions that build on top of the low level libraries to make it even easier to build applications with Lotus and Filecoin.
The following libraries provide support for handling specific data types or features and work well with the Lotus JS Client libraries:
- @openworklabs/filecoin-number (GitHub) - A wrapper around bignumber with AttoFil and currency conversions
- @openworklabs/filecoin-message (GitHub) - JS implementation of the Filecoin message type, used to transfer tokens and make state changes
- @zondax/filecoin-signer-wasm (GitHub) (Docs) - Filecoin Signing Library - Rust / WASM / JSONRPC Service