Let's add test coverage that ensures these edge cases lead to invalid blocks:
- Blocks:
- 0 txns
- non-coinbase initial txn
- multiple coinbase txns
- unbalanced fees (note: Doesn't Zcash NU5 mainnet allow unbalanced fees where coinbase claims less than the total allowed? Probably safe to ignore unless there were any possible security impacts for that edge case.)
- contains "context-free-invalid" txns
- contains txns with nonexistent (e.g. out-of-
BCContext inputs)
- contains txns with multi-spends (e.g. >1 txn with the same input).
Originally posted by @nathan-at-least in #12 (comment)