A javascript client library for building Zcash browser wallets
WebZjs aims to make it simple to securely interact with Zcash from within the browser. This is primarily to support the development of web wallets and browser plugins.
Being a private blockchain Zcash places a lot more demands on the wallet than a public blockchain like Ethereum. WebZjs uses everything at its disposal to give efficient sync times and a good user experience.
- Rust and Cargo
- This repo uses just as a command runner. Please install this first.
- wasm-pack
- Requires clang 17 or later
- On Mac this can be installed by updating LLVM using your preferred package manager (e.g. macports, brew)
- Tested with Rust nightly-2024-08-07
This just script uses wasm-pack to build a web-ready copy of webz-core
into the packages
directory
just build
First build WebZjs with
just build
Install js dependencies with
pnpm i
Build the demo wallet with
pnpm build
Serve it with
pnpm serve
Important
For unknown reasons it is currently not possible to use the parcel dev server to serve the demo-wallet hence the build and then serve steps
Browser tests are run in a headless browser environment and can be run with
just test-web
These libraries are currently under development, have received no reviews or audit, and come with no guarantees whatsoever.
All code in this workspace is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.