pub const STANDARD_TOKEN_COST: u64 = 4;
pub const NON_ZERO_BYTE_DATA_COST: u64 = 68;
pub const NON_ZERO_BYTE_MULTIPLIER: u64 = NON_ZERO_BYTE_DATA_COST / STANDARD_TOKEN_COST;
pub const TOTAL_COST_FLOOR_PER_TOKEN: u64 = 10;
#[inline]
pub fn tokens_in_calldata(input: &[u8]) -> u64 {
let zero_data_len = input.iter().filter(|v| **v == 0).count() as u64;
let non_zero_data_len = input.len() as u64 - zero_data_len;
zero_data_len + non_zero_data_len * NON_ZERO_BYTE_MULTIPLIER
}
#[inline]
pub const fn transaction_floor_cost(tokens_in_calldata: u64) -> u64 {
21_000 + TOTAL_COST_FLOOR_PER_TOKEN * tokens_in_calldata
}