15 releases (7 breaking)
Uses new Rust 2024
new 0.8.1 | Mar 26, 2025 |
---|---|
0.7.0 | Jan 23, 2025 |
0.6.2 | Nov 21, 2024 |
0.4.0 | Jul 4, 2024 |
0.1.0 | Mar 5, 2024 |
#530 in Magic Beans
1,151 downloads per month
Used in 17 crates
(13 directly)
1.5MB
28K
SLoC
Miden Transaction
This crate contains tool for creating, executing, and proving Miden rollup transaction.
Usage
This crate exposes a few components to compile, run, and prove transactions.
The first requirement is to have a DataStore
implementation. DataStore
objects are responsible to load the data needed by the transactions executor, especially the account's code, the reference block data, and the note's inputs.
let store = DataStore:new();
Once a store is available, a TransactionExecutor
object can be used to execute a transaction. Consuming a zero or more notes, and possibly calling some of the account's code.
let executor = TransactionExecutor::new(store);
let executed_transaction = executor.execute_transaction(account_id, block_ref, note_ids, tx_args);
With the transaction execution done, it is then possible to create a proof:
let prover = LocalTransactionProver::new(ProvingOptions::default());
let proven_transaction = prover.prove(executed_transaction);
And to verify a proof:
let verifier = TransactionVerifier::new(SECURITY_LEVEL);
verifier.verify(proven_transaction);
Features
Features | Description |
---|---|
std |
Enable usage of Rust's std , use --no-default-features for no-std support. |
concurrent |
Enables concurrent code to speed up runtime execution. |
License
This project is MIT licensed.
Dependencies
~16–42MB
~643K SLoC