[][src]Function bitcoinconsensus::verify

pub fn verify(
    spent_output: &[u8],
    amount: u64,
    spending_transaction: &[u8],
    input_index: usize
) -> Result<(), Error>

Verify a single spend (input) of a Bitcoin transaction.

Arguments

  • spend_output_script: a Bitcoin transaction output script to be spent, serialized in Bitcoin's on wire format
  • amount: The spent output amount in satoshis
  • spending_transaction: spending Bitcoin transaction, serialized in Bitcoin's on wire format
  • input_index: index of the input within spending_transaction

Returns

OK or Err. Note that amount will only be checked for Segwit transactions.

Example

The (randomly choosen) Bitcoin transaction aca326a724eda9a461c10a876534ecd5ae7b27f10f26c3862fb996f80ea2d45d spends one input, that is the first output of 95da344585fcf2e5f7d6cbf2c3df2dcce84f9196f7a7bb901a43275cd6eb7c3f with a value of 630482530 satoshis

The spending transaction in wire format is:

spending = 02000000013f7cebd65c27431a90bba7f796914fe8cc2ddfc3f2cbd6f7e5f2fc854534da95000000006b483045022100de1ac3bcdfb0332207c4a91f3832bd2c2915840165f876ab47c5f8996b971c3602201c6c053d750fadde599e6f5c4e1963df0f01fc0d97815e8157e3d59fe09ca30d012103699b464d1d8bc9e47d4fb1cdaa89a1c5783d68363c4dbc4b524ed3d857148617feffffff02836d3c01000000001976a914fc25d6d5c94003bf5b0c7b640a248e2c637fcfb088ac7ada8202000000001976a914fbed3d9b11183209a57999d54d59f67c019e756c88ac6acb0700

The script of the first output of the spent transaction is:

spent = 76a9144bfbaf6afb76cc5771bc6404810d1cc041a6933988ac

The (pseudo code) call:

verify(spent, 630482530, spending, 0) should return OK(())

Note that spent amount will only be checked for Segwit transactions. Above example is not segwit, therefore verify will succeed with any amount.