4 releases (0 unstable)

new 27.0.0-non-semver-compat Mar 21, 2025
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

#996 in Magic Beans

Download history 142/week @ 2025-01-22 368/week @ 2025-01-29 192/week @ 2025-02-05 162/week @ 2025-02-12 30/week @ 2025-02-19 12/week @ 2025-02-26 218/week @ 2025-03-05 45/week @ 2025-03-12

309 downloads per month

MIT/Apache

660KB
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
~257K SLoC