3 releases (0 unstable)

new 26.7.0-non-semver-compat Mar 6, 2025
26.2.1-non-semver-compat Jan 29, 2025
26.1.0-non-semver-compat Jan 22, 2025

#227 in Magic Beans

Download history 124/week @ 2025-01-18 296/week @ 2025-01-25 187/week @ 2025-02-01 191/week @ 2025-02-08 74/week @ 2025-02-15 30/week @ 2025-02-22 132/week @ 2025-03-01

468 downloads per month

MIT/Apache

650KB
14K SLoC

ZKsync Era VM Interfaces

This crate declares interfaces used by all version of the ZKsync Era VM.

See also


lib.rs:

ZKsync Era VM interfaces.

Developer guidelines

Which types should be put in this crate and which ones in zksync_multivm or other downstream crates?

  • This crate should contain logic not tied to a particular VM version; in contrast, most logic in zksync_multivm is version-specific.
  • This crate should not have heavyweight dependencies (like VM implementations). Anything heavier than serde is discouraged. In contrast, zksync_multivm depends on old VM versions.
  • If a type belongs in this crate, still be thorough about its methods. VM implementation details belong to zksync_multivm and should be implemented as functions / extension traits there, rather than as methods here.

Which types should be put in this crate vs zksync_types?

  • In this case, we want to separate types by domain. If a certain type clearly belongs to the VM domain (e.g., can only be produced by VM execution), it probably belongs here. In contrast, if a type is more general / fundamental, it may belong to zksync_types.

Dependencies

~14–22MB
~259K SLoC