Verifier: Inputs

Validates the inputs component of a transaction proof is properly formatted.

One additional proof per input in the primary transaction proof proof must be provided, the list inputProofs.

For each input in proof.transaction.inputs and inputProof in inputProofs, indexed by index:

  1. If input's type is Transfer or HTLC:
  2. The transaction proof inputProof must be validated.
  3. The output metadata of inputProof must match the metadata of input (i.e. they must be pointing to the same entry in the ledger).
  4. The UTXO ID being produced by the output of inputProof must match proof.data[index].
  5. If input's type is Deposit:
  6. The deposit object inputProof must be validated:
    1. The deposit ID of inputProof must match proof.data[index].
  7. If input's type is Root:
  8. The transaction proof inputProof must be validated.
  9. The UTXO ID being produced by the output of inputProof must match proof.data[index].