pub mod abstraction;
pub mod deposit;
pub mod error;
pub use abstraction::{OpTransaction, OpTxTr};
pub use error::OpTransactionError;
use crate::fast_lz::flz_compress_len;
const L1_COST_FASTLZ_COEF: u64 = 836_500;
const L1_COST_INTERCEPT: u64 = 42_585_600;
const MIN_TX_SIZE_SCALED: u64 = 100 * 1_000_000;
pub fn estimate_tx_compressed_size(input: &[u8]) -> u64 {
let fastlz_size = flz_compress_len(input) as u64;
fastlz_size
.saturating_mul(L1_COST_FASTLZ_COEF)
.saturating_sub(L1_COST_INTERCEPT)
.max(MIN_TX_SIZE_SCALED)
}