Skip to content
forked from Firaenix/bsv-wasm

BSV stdlib written in Rust and runs in WASM environments

License

Notifications You must be signed in to change notification settings

quartzo/bsv-wasm

 
 

Repository files navigation

BSV.WASM/BSV-RS

A Rust/WASM Library to interact with Bitcoin SV

Installation

NodeJS 14.6+:
npm i bsv-wasm --save

Web:
npm i bsv-wasm-web --save

Webpack:
npm i bsv-wasm-bundler --save

Rust:
https://crates.io/crates/bsv

Deno:

import init, { Transaction } from "https://deno.land/x/bsv_wasm@{VERSION}/bsv_wasm.js"
await init();

Usage

Note: Rust and JS/TS method names and structs are the same

  • Eg. Derive private key from XPriv and log out P2PKH String ExtendedPrivateKey.fromWIF('LMyWif...').toPrivateKey().toPublicKey().toAddress().toString()

Features

  • Hash (SHA256, SHA256d, SHA1, RIPEMD160, Hash160, SHA512)
  • KDF (PBKDF2)
  • Encryption (AES-CBC, AES-CTR)
  • ECDSA (Private Key, Public Key, Signatures)
  • Transaction (Building, Serialising, Deserialising)
  • Script (Serialising, Deserialising)
  • Script Matching (ScriptTemplate)
  • Addresses (P2PKH)
  • Sighash Support
  • Extended Private Keys and Child Derivation (BIP32, BIP42)
  • Testnet support

TODO:

  • Split WASM modules from Rust - Release standalone bsv-rs
  • Break WASM packages up to be more modular
  • Allow Interop between WASM Packages
  • Write documentation (Inline on functions and structs)

Thanks

About

BSV stdlib written in Rust and runs in WASM environments

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 72.7%
  • JavaScript 27.0%
  • Other 0.3%