// Rust Bitcoin Library // Written by // The Rust Bitcoin developers // // To the extent possible under law, the author(s) have dedicated all // copyright and related and neighboring rights to this software to // the public domain worldwide. This software is distributed without // any warranty. // // You should have received a copy of the CC0 Public Domain Dedication // along with this software. // If not, see . // 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::util::bip32::KeySource; use secp256k1; use crate::util::psbt::map::Map; use crate::util::psbt::raw; use crate::util::psbt::Error; use crate::util::taproot::{ScriptLeaf, TapLeafHash}; use crate::util::taproot::{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)] #[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