use crate::types::*;
use super::SigVersion;
#[derive(Clone, Copy)]
pub struct ScriptContext<'a> {
pub tx: &'a Transaction,
pub input_index: usize,
pub prevout_values: &'a [i64],
pub prevout_script_pubkeys: &'a [&'a [u8]],
pub block_height: Option<u64>,
pub median_time_past: Option<u64>,
pub network: crate::types::Network,
pub sigversion: SigVersion,
pub redeem_script_for_sighash: Option<&'a [u8]>,
pub script_sig_for_sighash: Option<&'a ByteString>,
pub tapscript_for_sighash: Option<&'a [u8]>,
pub tapscript_codesep_pos: Option<u32>,
#[cfg(feature = "production")]
pub schnorr_collector: Option<&'a crate::bip348::SchnorrSignatureCollector>,
#[cfg(feature = "production")]
pub precomputed_bip143: Option<&'a crate::transaction_hash::Bip143PrecomputedHashes>,
#[cfg(feature = "production")]
pub sighash_cache: Option<&'a crate::transaction_hash::SighashMidstateCache>,
}