let recipients = params.recipients.iter().map(|(r, v)| (r, *v));
for (index, (script_pubkey, value)) in recipients.enumerate() {
- if value.is_dust() {
+ if value.is_dust() && !script_pubkey.is_provably_unspendable() {
return Err(Error::OutputBelowDustLimit(index));
}
self
}
+ /// Add data as an output, using OP_RETURN
+ pub fn add_data(&mut self, data: &[u8]) -> &mut Self {
+ let script = Script::new_op_return(data);
+ self.add_recipient(script, 0u64);
+ self
+ }
+
/// Sets the address to *drain* excess coins to.
///
/// Usually, when there are excess coins they are sent to a change address generated by the