Skip to content

Latest commit

 

History

History

mithril-client-wasm

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Mithril-client-wasm cnpm License Discord

This is a work in progress 🛠

  • mithril-client-wasm defines all the tooling necessary to manipulate Mithril certified types available from a Mithril aggregator from a WASM compatible browser.

  • The different types of available data certified by Mithril are:

    • Snapshot: list and get.
    • Mithril stake distribution: list and get.
    • Cardano transactions: list & get snapshots, get proofs.
    • Cardano stake distribution: list, get and get by epoch.
    • Certificate: list, get, and chain validation.

Installation

  • Install a correctly configured Rust toolchain (latest stable version). You can follow the instructions provided here.

  • Install the WASM target:

rustup target add wasm32-unknown-unknown
  • Install Rust WASM Pack:
cargo install wasm-pack
  • Install clang:
sudo apt install clang
  • Install nodejs version 16.15+
sudo apt install nodejs
  • Install npm version 8.11+
sudo apt install npm

Warning

If you have troubles building the BLST library, you will need to:

  • Install Emscripten
  • For macOS users, consider reading this guide to activate the emcc command
  • Use these environment variables to use this compiler (or prefix all following commands with them):
export CC=emcc
export AR=emar
  • Install the WASM emscripten target:
rustup target add wasm32-unknown-emscripten

Build Mithril client library in WASM

Go to the mithril-client-wasm directory:

cd mithril-client-wasm

Then you can build the WASM library:

make build

Run the Mithril client library in the browser

You will need to run the Mithril client library in a compatible browser:

Browser Minimum version Released Tested in CI
Chrome 54 2016-10-12 ✔️
Edge 79 2020-01-15 -
Firefox 38 2015-05-12 ✔️
Opera 41 2016-10-25 -
Safari 15.4 2022-03-14 -
Chrome Android 54 2016-10-19 -
Firefox for Android 38 2015-05-12 -
Opera Android 41 2016-10-25 -
Safari on iOS 15.4 2022-03-14 -
Node.js 18.0.0 2022-04-19 ✔️

Go to the mithril-client-wasm directory:

cd mithril-client-wasm

Install the library:

make www-install

Then you can serve the Mithril client library in the browser:

make www-serve

Finally, open http://localhost:8080 with your browser. (port 8080 is the default port)