#![no_main] use { arbitrary::Arbitrary, bitcoin::{ address::{Address, NetworkUnchecked}, Amount, OutPoint, }, libfuzzer_sys::fuzz_target, ord::{FeeRate, SatPoint, Target, TransactionBuilder}, std::collections::BTreeMap, }; #[derive(Clone, Debug, Arbitrary)] struct Input { output_value: Option, fee_rate: f64, utxos: Vec, } fuzz_target!(|input: Input| { let outpoint = "1111111111111111111111111111111111111111111111111111111111111111:1" .parse::() .unwrap(); let satpoint = "1111111111111111111111111111111111111111111111111111111111111111:1:0" .parse::() .unwrap(); let inscription_id = "1111111111111111111111111111111111111111111111111111111111111111i1" .parse() .unwrap(); let mut inscriptions = BTreeMap::new(); inscriptions.insert(satpoint, inscription_id); let mut amounts = BTreeMap::new(); amounts.insert(outpoint, Amount::from_sat(1_000_000)); for (i, value) in input.utxos.into_iter().enumerate() { amounts.insert(