use miden_processor::ExecutionOptions;
pub const ACCOUNT_TREE_DEPTH: u8 = 64;
pub const ACCOUNT_UPDATE_MAX_SIZE: u32 = 2u32.pow(18);
pub const NOTE_MAX_SIZE: u32 = 2u32.pow(18);
pub const MAX_ASSETS_PER_NOTE: usize = 255;
pub const MAX_NOTE_STORAGE_ITEMS: usize = 1024;
pub const MAX_INPUT_NOTES_PER_TX: usize = 1024;
pub const MAX_OUTPUT_NOTES_PER_TX: usize = MAX_INPUT_NOTES_PER_TX;
pub const MIN_PROOF_SECURITY_LEVEL: u32 = 96;
pub const MAX_TX_EXECUTION_CYCLES: u32 = ExecutionOptions::MAX_CYCLES;
pub const MIN_TX_EXECUTION_CYCLES: u32 = 1 << 12;
pub const MAX_NUM_FOREIGN_ACCOUNTS: u8 = 64;
pub const BATCH_NOTE_TREE_DEPTH: u8 = 10;
pub const MAX_OUTPUT_NOTES_PER_BATCH: usize = 1 << BATCH_NOTE_TREE_DEPTH;
const _: () = assert!(MAX_OUTPUT_NOTES_PER_BATCH >= MAX_OUTPUT_NOTES_PER_TX);
pub const MAX_INPUT_NOTES_PER_BATCH: usize = MAX_OUTPUT_NOTES_PER_BATCH;
const _: () = assert!(MAX_INPUT_NOTES_PER_BATCH >= MAX_INPUT_NOTES_PER_TX);
pub const MAX_ACCOUNTS_PER_BATCH: usize = 1024;
pub const BLOCK_NOTE_TREE_DEPTH: u8 = 16;
pub const MAX_BATCHES_PER_BLOCK: usize = 1 << (BLOCK_NOTE_TREE_DEPTH - BATCH_NOTE_TREE_DEPTH);
pub const MAX_OUTPUT_NOTES_PER_BLOCK: usize = MAX_OUTPUT_NOTES_PER_BATCH * MAX_BATCHES_PER_BLOCK;
const _: () = assert!(MAX_OUTPUT_NOTES_PER_BLOCK >= MAX_OUTPUT_NOTES_PER_BATCH);
pub const MAX_INPUT_NOTES_PER_BLOCK: usize = MAX_OUTPUT_NOTES_PER_BLOCK;
pub const MAX_ACCOUNTS_PER_BLOCK: usize = MAX_ACCOUNTS_PER_BATCH * MAX_BATCHES_PER_BLOCK;
const _: () = assert!(MAX_ACCOUNTS_PER_BLOCK >= MAX_ACCOUNTS_PER_BATCH);
const _: () = assert!(MAX_ACCOUNTS_PER_BLOCK >= MAX_BATCHES_PER_BLOCK);