@caravan/descriptors
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

tests Release npm

Caravan Descriptors

Installation

@caravan/descriptors is built on top of bdk which is written in Rust. In order to leverage bdk as the reference code, there are wasm bindings provided.

In order to build these, you will need Rust and wasm-pack. You may also need to install llvm/clang

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # https://www.rust-lang.org/tools/install
$ cargo install wasm-pack

You may also need to export some paths to build libsecp:

$ $ export PATH="/opt/homebrew/opt/llvm/bin:$PATH" \
# for older homebrew installs \
# export PATH="/usr/local/opt/llvm/bin:$PATH"
export CC=/opt/homebrew/opt/llvm/bin/clang \
export AR=/opt/homebrew/opt/llvm/bin/llvm-ar

Usage

You can use npm scripts from the main directory to do all building

$ npm run build

This will cd into the rust directory, build packages for web and node targets, and then build the artifacts for the js library to be packaged and used.

$ npm run test

This will run the TypeScript tests only.

Web

You'll need to make sure that the web environment this is used in supports wasm. For example, if you're using in a vite.js project you'll need the vite-plugin-wasm plugin.

Also note that all functions exported are async and need to be awaited since they will load up the wasm modules to be used (this way consumers of the library don't have to worry about loading up the modules themselves)

Development

Make sure any PRs pass linting and tests. Changes that impact the API will require a changeset in order to be merged.

The following command will launch the changeset cli:

$ npm run changeset

API

NOTE: This is subject to change as this is still very much alpha

The two main functions available for import are:

encodeDescriptors

Takes a config for a multisig wallet and encodes it into the two corresponding descriptors

decodeDescriptors

Take two descriptors and convert them into a multisig wallet config object. This will make it possible to determine and parse the wallet type (e.g. P2SH) and the key origins.

Readme

Keywords

none

Package Sidebar

Install

npm i @caravan/descriptors

Weekly Downloads

96

Version

0.1.1

License

none

Unpacked Size

3.55 MB

Total Files

27

Last publish

Collaborators

  • bucko