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.
-
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
version16.15+
sudo apt install nodejs
- Install
npm
version8.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
Go to the mithril-client-wasm
directory:
cd mithril-client-wasm
Then you can build the WASM library:
make build
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)