// SPDX-License-Identifier: CC0-1.0 use crate::prelude::*; use core; use core::convert::TryFrom; use crate::io; use crate::blockdata::script::Script; use crate::consensus::encode; use secp256k1::XOnlyPublicKey; use crate::bip32::KeySource; use secp256k1; use crate::psbt::map::Map; use crate::psbt::raw; use crate::psbt::Error; use crate::taproot::{ScriptLeaf, TapLeafHash, NodeInfo, TaprootBuilder}; /// Type: Redeem Script PSBT_OUT_REDEEM_SCRIPT = 0x00 const PSBT_OUT_REDEEM_SCRIPT: u8 = 0x00; /// Type: Witness Script PSBT_OUT_WITNESS_SCRIPT = 0x01 const PSBT_OUT_WITNESS_SCRIPT: u8 = 0x01; /// Type: BIP 32 Derivation Path PSBT_OUT_BIP32_DERIVATION = 0x02 const PSBT_OUT_BIP32_DERIVATION: u8 = 0x02; /// Type: Taproot Internal Key PSBT_OUT_TAP_INTERNAL_KEY = 0x05 const PSBT_OUT_TAP_INTERNAL_KEY: u8 = 0x05; /// Type: Taproot Tree PSBT_OUT_TAP_TREE = 0x06 const PSBT_OUT_TAP_TREE: u8 = 0x06; /// Type: Taproot Key BIP 32 Derivation Path PSBT_OUT_TAP_BIP32_DERIVATION = 0x07 const PSBT_OUT_TAP_BIP32_DERIVATION: u8 = 0x07; /// Type: Proprietary Use Type PSBT_IN_PROPRIETARY = 0xFC const PSBT_OUT_PROPRIETARY: u8 = 0xFC; /// A key-value map for an output of the corresponding index in the unsigned /// transaction. #[derive(Clone, Default, Debug, PartialEq, Eq, Hash)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[cfg_attr(feature = "serde", serde(crate = "actual_serde"))] pub struct Output { /// The redeem script for this output. pub redeem_script: Option