iuna

iuna

iuna - experimental mainnet-candidate protocol
git clone https://getiuna.org/git/iuna.git
Log | Files | Refs | README | LICENSE

domain_json.rs (689B)


      1 #![no_main]
      2 
      3 use iuna::{
      4     app::GossipEnvelope,
      5     domain::{Block, BurnBundle, ChainSnapshot, Transaction},
      6 };
      7 use libfuzzer_sys::fuzz_target;
      8 
      9 fuzz_target!(|data: &[u8]| {
     10     if data.len() > 2 * 1024 * 1024 {
     11         return;
     12     }
     13     let Ok(line) = std::str::from_utf8(data) else {
     14         return;
     15     };
     16 
     17     let _ = serde_json::from_str::<Transaction>(line);
     18     let _ = serde_json::from_str::<BurnBundle>(line);
     19     let _ = serde_json::from_str::<Block>(line).map(|block| {
     20         let _ = block.json_size_bytes();
     21         let _ = block.compute_hash();
     22     });
     23     let _ = serde_json::from_str::<ChainSnapshot>(line);
     24     let _ = serde_json::from_str::<GossipEnvelope>(line);
     25 });