let mut allocated: Vec> = vec![HashMap::new(); tx.output.len()]; if let Some(runestone) = runestone { // Determine if this runestone conains a valid issuance let mut allocation = match runestone.etching { Some(etching) => { // If the issuance symbol is already taken, the issuance is ignored if etching.rune < self.minimum || self.rune_to_id.get(etching.rune.0)?.is_some() { None } else { let (limit, term) = match (etching.limit, etching.term) { (None, Some(term)) => (Some(runes::MAX_LIMIT), Some(term)), (limit, term) => (limit, term), }; // Construct an allocation, representing the new runes that may be // allocated. Beware: Because it would require constructing a block // with 2**16 + 1 transactions, there is no test that checks that // an eching in a transaction with an out-of-bounds index is // ignored. match u16::try_from(index) {