pub fn encode_executor_lz_receive_option(gas: u64) -> Vec<u8> {
let mut out = vec![0x00, 0x03]; out.extend_from_slice(&1u16.to_be_bytes()); let mut gas_buf = [0u8; 32];
gas_buf[24..32].copy_from_slice(&gas.to_be_bytes());
out.extend_from_slice(&gas_buf);
out
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_options_encoding() {
let opts = encode_executor_lz_receive_option(200_000);
assert_eq!(opts.len(), 36);
assert_eq!(&opts[0..2], &[0x00, 0x03], "TYPE_3 prefix");
assert_eq!(&opts[2..4], &[0x00, 0x01], "OPTION_TYPE_LZRECEIVE");
assert_eq!(&opts[33..36], &[0x03, 0x0D, 0x40]);
assert!(opts[4..33].iter().all(|&b| b == 0));
}
}