@iota/hierarchies
v0.1.8
Published
WASM bindings for IOTA Hierarchies - To be used in JavaScript/TypeScript
Readme
IOTA Trust Hierarchies
Install the Library
If your project does not contain it already, install the peer dependency @iota/iota-sdk as well.
npm install @iota/iota-sdkYou can install the latest alpha version of the library by running the following command:
npm install @iota/hierarchies@alphaBuild the Library
Alternatively, you can build the bindings yourself if you have Rust installed. If not, refer to rustup.rs for the installation.
Requirements
- Node.js (>=
v20) - Rust (>= 1.65)
- Cargo (>= 1.65)
- for running example: a local network node with the IOTA hierarchies package deployed as being described here
1. Install wasm-bindgen-cli
If you want to build the library from source,
you will first need to manually install wasm-bindgen-cli.
A manual installation is required because we use the Weak References feature,
which wasm-pack does not expose.
cargo install --force wasm-bindgen-cli2. Install Dependencies
After installing wasm-bindgen-cli, you can install the necessary dependencies using the following command:
npm install3. Build
You can build the bindings for node.js using the following command:
npm run build:nodejsYou can build the bindings for the web using the following command:
npm run build:webWeb Usage
The web version of this library requires explicit WASM initialization before any other function
can be used. Call and await the init() function once during your application startup:
import { HierarchiesClientReadOnly, init } from "@iota/hierarchies/web";
import { getFullnodeUrl, IotaClient } from "@iota/iota-sdk/client";
// Initialize the WASM module (required, must be awaited before any other usage)
await init();
const iotaClient = new IotaClient({ url: getFullnodeUrl("testnet") });
const client = await HierarchiesClientReadOnly.create(iotaClient);If you are using a bundler like Vite, pass the WASM URL explicitly:
import { init } from "@iota/hierarchies/web";
import wasmUrl from "@iota/hierarchies/web/hierarchies_wasm_bg.wasm?url";
await init(wasmUrl);Note: The Node.js version (
@iota/hierarchies/node) does not require callinginit()— the WASM module is loaded automatically.
