let dust_value = self.recipient.script_pubkey().dust_value();
if output_value < dust_value {
return Err(Error::Dust {
output_value,
dust_value,
});
}
}
_ => (),
}
self
.select_outgoing()?
.align_outgoing()
.pad_alignment_output()?
.add_value()?
.strip_value()
.deduct_fee()
.build()
}
fn select_outgoing(mut self) -> Result<Self> {
let dust_limit = self
.unused_change_addresses
.last()
.unwrap()
.script_pubkey()
.dust_value()
.to_sat();
for (inscribed_satpoint, inscription_id) in self.inscriptions.iter().rev() {
if self.outgoing.outpoint == inscribed_satpoint.outpoint
&& self.outgoing.offset != inscribed_satpoint.offset
&& self.outgoing.offset < inscribed_satpoint.offset + dust_limit
{
return Err(Error::UtxoContainsAdditionalInscription {
outgoing_satpoint: self.outgoing,
inscribed_satpoint: *inscribed_satpoint,