inscriptions.push(Inscription::from_file(
chain,
&entry.file,
self.parent,
if i == 0 { None } else { Some(pointer) },
entry.metaprotocol.clone(),
match &metadata {
Some(metadata) => Some(metadata.clone()),
None => entry.metadata()?,
},
compress,
)?);
pointer += postage.to_sat();
}
let destinations = match self.mode {
Mode::SharedOutput => vec![get_change_address(client, chain)?],
Mode::SeparateOutputs => self
.inscriptions
.iter()
.map(|entry| {
entry.destination.as_ref().map_or_else(
|| get_change_address(client, chain),
|address| {
address
.clone()
.require_network(chain.network())
.map_err(|e| e.into())
},
)
})
.collect::<Result<Vec<_>, _>>()?,
};
Ok((inscriptions, destinations))
}
}