pub struct DetectedOutput {
pub outpoint: OutPoint,
pub amount: Amount,
pub script_pubkey: ScriptBuf,
pub label: Option<u32>,
/* private fields */
}Expand description
A Silent Payment output detected during transaction scanning.
Created by crate::BlockScanner::scan_transaction when an output matches
the receiver’s keys (with or without a label).
§Spending
Call derive_spend_key with the
receiver’s spend secret key to obtain the tweaked private key for
signing. The returned SecretKey must be erased after use.
Fields§
§outpoint: OutPointThe outpoint (txid:vout) identifying this output.
amount: AmountThe output amount in satoshis.
script_pubkey: ScriptBufThe output’s scriptPubKey (P2TR).
label: Option<u32>The label index if this output matched via a labeled address.
Implementations§
Source§impl DetectedOutput
impl DetectedOutput
Sourcepub fn new(
outpoint: OutPoint,
amount: Amount,
script_pubkey: ScriptBuf,
tweak: SecretKey,
label: Option<u32>,
) -> DetectedOutput
pub fn new( outpoint: OutPoint, amount: Amount, script_pubkey: ScriptBuf, tweak: SecretKey, label: Option<u32>, ) -> DetectedOutput
Create a new detected output.
Sourcepub fn derive_spend_key(
&self,
spend_secret: &SpendSecretKey,
secp: &Secp256k1<All>,
) -> Result<SecretKey, ReceiveError>
pub fn derive_spend_key( &self, spend_secret: &SpendSecretKey, secp: &Secp256k1<All>, ) -> Result<SecretKey, ReceiveError>
Derive the tweaked private key for spending this output.
Computes spend_key = b_spend + tweak where the tweak already
includes the label scalar if the output was received via a
labeled address.
§Security (SEC-01)
The returned SecretKey contains the full spending private key.
The caller must erase it via non_secure_erase() after signing.
§Errors
Returns ReceiveError::SpendKeyDerivation if:
- The tweak addition overflows the curve order
- The derived public key does not match the output script
Sourcepub fn tweak_secret_key(&self) -> &SecretKey
pub fn tweak_secret_key(&self) -> &SecretKey
Access the tweak scalar for advanced use (e.g., PSBT Phase 3).
Trait Implementations§
Source§impl Clone for DetectedOutput
impl Clone for DetectedOutput
Source§fn clone(&self) -> DetectedOutput
fn clone(&self) -> DetectedOutput
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more