• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iotaledger / iota / 26612825483 / 1
67%
develop: 67%

Build:
DEFAULT BRANCH: develop
Ran 29 May 2026 02:34AM UTC
Files 1076
Run time 45s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

28 May 2026 01:19PM UTC coverage: 66.88% (+0.004%) from 66.876%
26612825483.1

push

github

web-flow
feat(iota-types): compile iota-types to wasm32 (#11660)

## Summary

Makes the `iota-types` crate compile to `wasm32-unknown-unknown`, a
prerequisite for running the Move VM / execution layer in the browser.
The guiding rule: **client-visible types stay wasm-compatible; node-only
types are gated out entirely.**

Fixes https://github.com/iotaledger/iota/issues/11546

Two mechanisms, applied per module:

- **Module is node-only** → gate the whole module out on wasm. The
native file stays byte-identical to `develop`.
- `messages_consensus` + `messages_grpc` (consensus / gRPC machinery;
pull in `fastcrypto-tbls` / `tonic`).
- `iota_system_state::epoch_start_iota_system_state`
(`EpochStartSystemState`; pulls in `anemo` / `starfish-config`). The
single trait link that surfaced it —
`IotaSystemStateTrait::into_epoch_start_state` — is gated along with its
V1/V2 impls.
- Knock-on edits only: `transaction.rs` now imports
`CancelledTransaction` / `ConsensusCommitPrologueV1` /
`ConsensusDeterminedVersionAssignments` directly from `iota_sdk_types`
(they were re-exports), and the `BcsSignable` impl for
`VersionedMisbehaviorReport` is gated.

- **Module exports types the execution/client path needs on wasm** →
provide no-op stubs.
- `metrics`: native items gated in place (no re-indentation);
`LimitsMetrics` / `BytecodeVerifierMetrics` stubs appended behind
`#[cfg(wasm32)]`.
- `multiaddr`: `Multiaddr` appears in on-chain validator metadata;
backed by a small wasm stub in `wasm_multiaddr.rs` (the only added
file).

`Cargo.toml` sorts the wasm-incompatible dependencies (`prometheus`,
`anemo`, `tonic`, `fastcrypto-tbls`, `starfish-config`, …) into
`[target.'cfg(not(target_arch = "wasm32"))'.dependencies]`.

## CI

Adds a `check-wasm32` job to `_rust_tests.yml` that installs the
`wasm32-unknown-unknown` target and runs `cargo check -p iota-types
--target wasm32-unknown-unknown`, guarding the new constraint going
forward.

## Test plan

- [x] `cargo check -p iota-types --... (continued)

152496 of 228015 relevant lines covered (66.88%)

463561.33 hits per line

Source Files on job nextest+simtest - 26612825483.1
  • Tree
  • List 1076
  • Changed 53
  • Source Changed 33
  • Coverage Changed 52
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 26612825483
  • 0692beac on github
  • Prev Job for on develop (#26549227281.1)
  • Next Job for on develop (#26670870516.1)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc