zebra_state::check

Function transparent_coinbase_spend

source
pub fn transparent_coinbase_spend(
    outpoint: OutPoint,
    spend_restriction: CoinbaseSpendRestriction,
    utxo: &Utxo,
) -> Result<(), ValidateContextError>
Expand description

Check that utxo is spendable, based on the coinbase spend_restriction.

§Consensus

A transaction with one or more transparent inputs from coinbase transactions MUST have no transparent outputs (i.e. tx_out_count MUST be 0). Inputs from coinbase transactions include Founders’ Reward outputs and funding stream outputs.

A transaction MUST NOT spend a transparent output of a coinbase transaction from a block less than 100 blocks prior to the spend. Note that transparent outputs of coinbase transactions include Founders’ Reward outputs and transparent funding stream outputs.

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