Skip to main content

miden_vm/
lib.rs

1#![cfg_attr(not(feature = "std"), no_std)]
2#![doc = include_str!("../README.md")]
3
4extern crate alloc;
5
6// EXPORTS
7// ================================================================================================
8
9pub use miden_assembly::{
10    self as assembly, Assembler,
11    ast::{Module, ModuleKind},
12    diagnostics,
13};
14pub use miden_core::{
15    deferred::{DeferredStateWire, PrecompileWitnessError},
16    program::ExecutionClaim,
17    proof::{
18        ExecutionProof, ExecutionProofCompatibility, ExecutionProofCompatibilityError,
19        ExecutionProofError, HashFunction, PrecompileProof, PrecompileStatus, StarkProof, VmProof,
20    },
21};
22pub use miden_core_lib::conjectured_security_estimator_root;
23pub use miden_processor::{
24    BaseHost, DefaultHost, ExecutionError, ExecutionOptions, ExecutionOutput, ExecutionWitness,
25    FastProcessor, FutureMaybeSend, Host, KernelDescriptor, PrecompileWitness, Program,
26    ProgramExecutor, ProgramInfo, StackInputs, SyncHost, VmWitness, ZERO, advice, crypto, field,
27    operation::Operation, serde, trace, trace::VmTrace, utils,
28};
29pub use miden_prover::{InputError, Prover, ProverError, StackOutputs, Word, prove_sync};
30pub use miden_verifier::{
31    AirShape, InstanceShape, LookupShape, ProofSecurityParameters, ProtocolParams, SecurityReport,
32    SecurityTerm, VerificationError, VerificationOutcome, Verifier,
33};
34
35/// Hydrates a passive deferred-state wire using the standard bundled precompile registry.
36///
37/// This is the public factory for precompile witnesses produced outside local execution. It
38/// validates the wire under the facade's installed precompiles before constructing the witness.
39pub fn precompile_witness_from_wire(
40    wire: &DeferredStateWire,
41) -> Result<PrecompileWitness, PrecompileWitnessError> {
42    let state = miden_core::deferred::DeferredState::from_wire(
43        alloc::sync::Arc::new(miden_precompiles::registry()),
44        wire,
45    )?;
46    PrecompileWitness::new(state)
47}
48
49// (private) exports
50// ================================================================================================
51
52#[cfg(feature = "internal")]
53pub mod internal;