self.destinations.len(), self.inscriptions.len(), "invariant: destination addresses and number of inscriptions doesn't match" ), Mode::SharedOutput => assert_eq!( self.destinations.len(), 1, "invariant: destination addresses and number of inscriptions doesn't match" ), } let satpoint = if let Some(satpoint) = self.satpoint { satpoint } else { let inscribed_utxos = wallet_inscriptions .keys() .map(|satpoint| satpoint.outpoint) .collect::>(); utxos .keys() .find(|outpoint| !inscribed_utxos.contains(outpoint) && !locked_utxos.contains(outpoint)) .map(|outpoint| SatPoint { outpoint: *outpoint, offset: 0, }) .ok_or_else(|| anyhow!("wallet contains no cardinal utxos"))? }; let mut reinscription = false; for (inscribed_satpoint, inscription_id) in &wallet_inscriptions { if *inscribed_satpoint == satpoint {