Verifier: Transaction Proofs
Validates a transaction proof is properly formatted.
- The header of the transaction proof must be valid.
- The Merkle proof of the transaction proof must be valid.
- The length of the transaction leaf
transaction.length
must be greater than0
.
TransactionProof
name | type | size | description |
---|---|---|---|
blockHeader |
BlockHeader | variable | Block header substructure. |
rootHeader |
RootHeader | variable | Root header substructure. |
rootIndex |
uint16 |
2 | Root index. |
merkleProof.length |
uint16 |
2 | Number of nodes in Merkle proof. |
merkleProof |
bytes32[] |
32* | Merkle inclusion proof. |
inputIndex |
uint8 |
1 | Input index. |
outputIndex |
uint8 |
1 | Output index. |
transactionIndex |
uint16 |
2 | Transaction index. |
transaction |
TransactionLeaf | variable | Transaction leaf substructure. |
data.length |
uint8 |
1 | Next field number of elements. |
data |
bytes32[] |
32* | List of state elements being spent. |
signatureFeeToken |
uint256 |
32 | Implicit fee token ID. |
signatureFee |
uint256 |
32 | Implicit fee rate. |
token |
address |
20 | Token address, used for invalid sum. |
returnOwner |
address |
20 | For HTLC outputs only, the return owner. |