Skip to content

Latest commit

 

History

History
95 lines (59 loc) · 2.36 KB

README.md

File metadata and controls

95 lines (59 loc) · 2.36 KB

WebZjs

GitHub License

A javascript client library for building Zcash browser wallets

Overview

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.

Building

Prerequisites

  • 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

Building WebZjs

This just script uses wasm-pack to build a web-ready copy of webz-core into the packages directory

just build

Building and running the demo-wallet

Prerequisites

Install pnpm

Building

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

Development

Testing

Browser tests are run in a headless browser environment and can be run with

just test-web

Security Warnings

These libraries are currently under development, have received no reviews or audit, and come with no guarantees whatsoever.

License

All code in this workspace is licensed under either of

at your option.

Contribution

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.