zebra_consensus::transaction::check

Function coinbase_tx_no_prevout_joinsplit_spend

source
pub fn coinbase_tx_no_prevout_joinsplit_spend(
    tx: &Transaction,
) -> Result<(), TransactionError>
Expand description

Check that a coinbase transaction has no PrevOut inputs, JoinSplits, or spends.

ยงConsensus

A coinbase transaction MUST NOT have any JoinSplit descriptions.

A coinbase transaction MUST NOT have any Spend descriptions.

[NU5 onward] In a version 5 coinbase transaction, the enableSpendsOrchard flag MUST be 0.

This check only counts PrevOut transparent inputs.

[Pre-Heartwood] A coinbase transaction also MUST NOT have any Output descriptions.

Zebra does not validate this last rule explicitly because we checkpoint until Canopy activation.

https://zips.z.cash/protocol/protocol.pdf#txnconsensus