0.1.0-alpha2 • Published 6 years ago
@summa-tx/rmn-btc v0.1.0-alpha2
rmn-btc-wasm
This crate generates wrappers suitable for use with wasm-bindgen around the
riemann-bitcoin crate. The wrappers implement passthrough methods for most
functionality, and the resulting wasm libraries can be run in a browser and in
node.js.
This crate is under active development, and the API may change.
The interface aims to be as faithful to riemann-bitcoin as possible, however
a few compromises have been made.
- Crossing the WASM/JS barrier has generally been implemented as
clone(). This prevents unsafe use of the WASM memory. This means that most structs are de facto passed by value.- example:
vin.push(txin)clones the txin. Further modifications totxinwill not be propagated to the clone in theVin. - example:
let txin = vin.get(0)will clone the txin before returning it. Modifying thattxinwill not modify the original copy in the vin. Instead you must make the modifications, and then callvin.set(0, txin).
- example:
Script,ScriptPubkey, andScriptSigare represented asUint8Arrays until we get around to implementing a wrapper type.wasm-bindgendoes not seem to support indexing getters and setters on rust objects, so.get()and.set()methods have been provided- We have not yet implemented iterator support.
Interface
You should use the standard network interface:
const btc = require('@summa-tx/rmn-btc-wasm');
const addr = "bc1q....";
let tx = btc.BitcoinMainnet.tx_builder()
.version(2)
.spend(btc.BitcoinOutpoint.null(), 0xfffffffd)
.pay(3000000n, addr)
.locktime(0x87878787)
.build();Building
cargo build- install wasm-pack
wasm-pack build- specify
--target nodejsfor use in node.
- specify
- build the docs:
$ cargo rustdoc
0.1.0-alpha2
6 years ago
0.1.0-alpha
6 years ago