pub struct Input {Show 48 fields
pub non_witness_utxo: Option<Transaction>,
pub witness_utxo: Option<TxOut>,
pub partial_sigs: BTreeMap<PublicKey, Vec<u8>>,
pub sighash_type: Option<PsbtSighashType>,
pub redeem_script: Option<Script>,
pub witness_script: Option<Script>,
pub bip32_derivation: BTreeMap<PublicKey, KeySource>,
pub final_script_sig: Option<Script>,
pub final_script_witness: Option<Vec<Vec<u8>>>,
pub ripemd160_preimages: BTreeMap<Hash, Vec<u8>>,
pub sha256_preimages: BTreeMap<Hash, Vec<u8>>,
pub hash160_preimages: BTreeMap<Hash, Vec<u8>>,
pub hash256_preimages: BTreeMap<Hash, Vec<u8>>,
pub previous_txid: Txid,
pub previous_output_index: u32,
pub sequence: Option<Sequence>,
pub required_time_locktime: Option<Time>,
pub required_height_locktime: Option<Height>,
pub tap_key_sig: Option<SchnorrSig>,
pub tap_script_sigs: BTreeMap<(XOnlyPublicKey, TapLeafHash), SchnorrSig>,
pub tap_scripts: BTreeMap<ControlBlock, (Script, LeafVersion)>,
pub tap_key_origins: BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, KeySource)>,
pub tap_internal_key: Option<XOnlyPublicKey>,
pub tap_merkle_root: Option<TapNodeHash>,
pub issuance_value_amount: Option<u64>,
pub issuance_value_comm: Option<PedersenCommitment>,
pub issuance_value_rangeproof: Option<Box<RangeProof>>,
pub issuance_keys_rangeproof: Option<Box<RangeProof>>,
pub pegin_tx: Option<Transaction>,
pub pegin_txout_proof: Option<Vec<u8>>,
pub pegin_genesis_hash: Option<BlockHash>,
pub pegin_claim_script: Option<Script>,
pub pegin_value: Option<u64>,
pub pegin_witness: Option<Vec<Vec<u8>>>,
pub issuance_inflation_keys: Option<u64>,
pub issuance_inflation_keys_comm: Option<PedersenCommitment>,
pub issuance_blinding_nonce: Option<Tweak>,
pub issuance_asset_entropy: Option<[u8; 32]>,
pub in_utxo_rangeproof: Option<Box<RangeProof>>,
pub in_issuance_blind_value_proof: Option<Box<RangeProof>>,
pub in_issuance_blind_inflation_keys_proof: Option<Box<RangeProof>>,
pub amount: Option<u64>,
pub blind_value_proof: Option<Box<RangeProof>>,
pub asset: Option<AssetId>,
pub blind_asset_proof: Option<Box<SurjectionProof>>,
pub blinded_issuance: Option<u8>,
pub proprietary: BTreeMap<ProprietaryKey, Vec<u8>>,
pub unknown: BTreeMap<Key, Vec<u8>>,
}Expand description
A key-value map for an input of the corresponding index in the unsigned transaction.
Fields§
§non_witness_utxo: Option<Transaction>The non-witness transaction this input spends from. Should only be
std::option::Option::Some for inputs which spend non-segwit outputs or
if it is unknown whether an input spends a segwit output.
witness_utxo: Option<TxOut>The transaction output this input spends from. Should only be
std::option::Option::Some for inputs which spend segwit outputs,
including P2SH embedded ones.
partial_sigs: BTreeMap<PublicKey, Vec<u8>>A map from public keys to their corresponding signature as would be pushed to the stack from a scriptSig or witness.
sighash_type: Option<PsbtSighashType>The sighash type to be used for this input. Signatures for this input must use the sighash type.
redeem_script: Option<Script>The redeem script for this input.
witness_script: Option<Script>The witness script for this input.
bip32_derivation: BTreeMap<PublicKey, KeySource>A map from public keys needed to sign this input to their corresponding master key fingerprints and derivation paths.
final_script_sig: Option<Script>The finalized, fully-constructed scriptSig with signatures and any other scripts necessary for this input to pass validation.
final_script_witness: Option<Vec<Vec<u8>>>The finalized, fully-constructed scriptWitness with signatures and any other scripts necessary for this input to pass validation.
ripemd160_preimages: BTreeMap<Hash, Vec<u8>>TODO: Proof of reserves commitment RIPEMD160 hash to preimage map
sha256_preimages: BTreeMap<Hash, Vec<u8>>SHA256 hash to preimage map
hash160_preimages: BTreeMap<Hash, Vec<u8>>HSAH160 hash to preimage map
hash256_preimages: BTreeMap<Hash, Vec<u8>>HAS256 hash to preimage map
previous_txid: Txid(PSET) Prevout TXID of the input
previous_output_index: u32(PSET) Prevout vout of the input
sequence: Option<Sequence>(PSET) Sequence number. If omitted, defaults to 0xffffffff
required_time_locktime: Option<Time>(PSET) Minimum required locktime, as a UNIX timestamp. If present, must be greater than or equal to 500000000
required_height_locktime: Option<Height>(PSET) Minimum required locktime, as a blockheight. If present, must be less than 500000000
tap_key_sig: Option<SchnorrSig>Serialized schnorr signature with sighash type for key spend
tap_script_sigs: BTreeMap<(XOnlyPublicKey, TapLeafHash), SchnorrSig>Map of <xonlypubkey>|<leafhash> with signature
tap_scripts: BTreeMap<ControlBlock, (Script, LeafVersion)>Map of Control blocks to Script version pair
tap_key_origins: BTreeMap<XOnlyPublicKey, (Vec<TapLeafHash>, KeySource)>Map of tap root x only keys to origin info and leaf hashes contained in it
tap_internal_key: Option<XOnlyPublicKey>Taproot Internal key
tap_merkle_root: Option<TapNodeHash>Taproot Merkle root
issuance_value_amount: Option<u64>The issuance value
issuance_value_comm: Option<PedersenCommitment>The issuance value commitment
issuance_value_rangeproof: Option<Box<RangeProof>>Issuance value rangeproof
issuance_keys_rangeproof: Option<Box<RangeProof>>Issuance keys rangeproof
pegin_tx: Option<Transaction>Pegin Transaction. Should be a bitcoin::Transaction
pegin_txout_proof: Option<Vec<u8>>Pegin Transaction proof
pegin_genesis_hash: Option<BlockHash>Pegin genesis hash
pegin_claim_script: Option<Script>Claim script
pegin_value: Option<u64>Pegin Value
pegin_witness: Option<Vec<Vec<u8>>>Pegin Witness
issuance_inflation_keys: Option<u64>Issuance inflation keys
issuance_inflation_keys_comm: Option<PedersenCommitment>Issuance inflation keys commitment
issuance_blinding_nonce: Option<Tweak>Issuance blinding nonce
issuance_asset_entropy: Option<[u8; 32]>Issuance asset entropy
in_utxo_rangeproof: Option<Box<RangeProof>>input utxo rangeproof
in_issuance_blind_value_proof: Option<Box<RangeProof>>Proof that blinded issuance matches the commitment
in_issuance_blind_inflation_keys_proof: Option<Box<RangeProof>>Proof that blinded inflation keys matches the corresponding commitment
amount: Option<u64>The explicit amount of the input
blind_value_proof: Option<Box<RangeProof>>The blind value rangeproof
asset: Option<AssetId>The input explicit asset
blind_asset_proof: Option<Box<SurjectionProof>>The blind asset surjection proof
blinded_issuance: Option<u8>Whether the issuance is blinded
proprietary: BTreeMap<ProprietaryKey, Vec<u8>>Other fields
unknown: BTreeMap<Key, Vec<u8>>Unknown key-value pairs for this input.
Implementations§
Source§impl Input
impl Input
Sourcepub fn ecdsa_hash_ty(&self) -> Option<EcdsaSighashType>
pub fn ecdsa_hash_ty(&self) -> Option<EcdsaSighashType>
Obtains the EcdsaSighashType for this input if one is specified. If no sighash type is
specified, returns EcdsaSighashType::All.
§Errors
If the sighash_type field is set to a non-standard ECDSA sighash value.
Sourcepub fn schnorr_hash_ty(&self) -> Option<SchnorrSighashType>
pub fn schnorr_hash_ty(&self) -> Option<SchnorrSighashType>
Obtains the SchnorrSighashType for this input if one is specified. If no sighash type is
specified, returns SchnorrSighashType::Default.
§Errors
If the sighash_type field is set to a invalid Schnorr sighash value.
Sourcepub fn from_prevout(outpoint: OutPoint) -> Self
pub fn from_prevout(outpoint: OutPoint) -> Self
Create a psbt input from prevout without any issuance or pegins
Sourcepub fn issuance_ids(&self) -> (AssetId, AssetId)
pub fn issuance_ids(&self) -> (AssetId, AssetId)
Compute the issuance asset ids from pset. This function does not check
whether there is an issuance in this input. Returns (asset_id, token_id)
Sourcepub fn has_issuance(&self) -> bool
pub fn has_issuance(&self) -> bool
If the pset input has issuance
Sourcepub fn asset_issuance(&self) -> AssetIssuance
pub fn asset_issuance(&self) -> AssetIssuance
Get the issuance for this tx input