use alloc::{collections::BTreeSet, vec::Vec};
use gear_core::{
costs::{ExtCosts, LazyPagesCosts, ProcessCosts},
pages::WasmPagesAmount,
};
pub use gear_wasm_instrument::syscalls::SyscallName;
#[derive(Clone, Copy, Debug, Default)]
pub struct BlockInfo {
pub height: u32,
pub timestamp: u64,
}
pub(crate) struct ExecutionSettings {
pub block_info: BlockInfo,
pub performance_multiplier: gsys::Percent,
pub ext_costs: ExtCosts,
pub lazy_pages_costs: LazyPagesCosts,
pub existential_deposit: u128,
pub mailbox_threshold: u64,
pub max_pages: WasmPagesAmount,
pub forbidden_funcs: BTreeSet<SyscallName>,
pub reserve_for: u32,
pub random_data: (Vec<u8>, u32),
pub gas_multiplier: gsys::GasMultiplier,
}
#[derive(Clone)]
pub struct BlockConfig {
pub block_info: BlockInfo,
pub performance_multiplier: gsys::Percent,
pub forbidden_funcs: BTreeSet<SyscallName>,
pub reserve_for: u32,
pub gas_multiplier: gsys::GasMultiplier,
pub costs: ProcessCosts,
pub existential_deposit: u128,
pub mailbox_threshold: u64,
pub max_reservations: u64,
pub max_pages: WasmPagesAmount,
pub outgoing_limit: u32,
pub outgoing_bytes_limit: u32,
}