pub struct ReceiptProof {
pub anchor: Option<ReceiptProofAnchor>,
pub audit_path: Vec<String>,
pub citable_id: String,
pub day: NaiveDate,
pub leaf_hash: String,
pub leaf_index: i64,
pub payload_hash: String,
pub root_hash: String,
pub schema_version: ReceiptProofSchemaVersion,
pub sigsum: Option<ReceiptProofSigsum>,
pub tree_size: i64,
}Expand description
RFC-6962 inclusion proof for a receipt’s leaf in its day’s Merkle
tree, with Tempo anchor and Sigsum witness-cosigning evidence for
that day’s root (gh#885 daily-root-only anchoring). Returned by
GET /receipts/{payload_hash}/proof.
JSON schema
{
"description": "RFC-6962 inclusion proof for a receipt's leaf in its day's Merkle\ntree, with Tempo anchor and Sigsum witness-cosigning evidence for\nthat day's root (gh#885 daily-root-only anchoring). Returned by\n`GET /receipts/{payload_hash}/proof`.\n",
"type": "object",
"required": [
"anchor",
"audit_path",
"citable_id",
"day",
"leaf_hash",
"leaf_index",
"payload_hash",
"root_hash",
"schema_version",
"sigsum",
"tree_size"
],
"properties": {
"anchor": {
"description": "The Tempo on-chain anchor for that day's root. Null before the\nday's root has been anchored (daily roll-up + anchor happens\nonce per day, the next day).\n",
"type": [
"object",
"null"
],
"required": [
"block_number",
"chain",
"contract",
"explorer_url",
"issuer_address",
"tx_hash"
],
"properties": {
"block_number": {
"type": "integer"
},
"chain": {
"examples": [
"tempo"
],
"type": "string"
},
"contract": {
"description": "Address of the Anchor contract that emitted the `Anchored` event",
"type": "string"
},
"explorer_url": {
"type": "string",
"format": "uri"
},
"issuer_address": {
"description": "Address that submitted the anchor transaction",
"type": "string"
},
"tx_hash": {
"type": "string"
}
},
"additionalProperties": false
},
"audit_path": {
"description": "0x-prefixed sibling hashes proving `leaf_hash` includes under\n`root_hash`. Selective disclosure by construction — never\nsibling receipts' identifiers.\n",
"type": "array",
"items": {
"type": "string"
}
},
"citable_id": {
"description": "Stable citation id derived from the payload hash (precedent registry, gh#126)",
"examples": [
"tf-proof-1a2b3c4d5e6f7890"
],
"type": "string"
},
"day": {
"description": "UTC day (YYYY-MM-DD) whose Merkle batch this leaf belongs to",
"type": "string",
"format": "date"
},
"leaf_hash": {
"description": "0x-prefixed hash of this receipt's leaf",
"type": "string"
},
"leaf_index": {
"description": "This receipt's zero-based leaf index in that day's tree",
"type": "integer"
},
"payload_hash": {
"description": "0x-prefixed SHA-256 payload hash of the receipt this proof covers",
"type": "string"
},
"root_hash": {
"description": "0x-prefixed root hash of that day's Merkle tree",
"type": "string"
},
"schema_version": {
"type": "string",
"enum": [
"v1"
]
},
"sigsum": {
"description": "Sigsum witness-cosigning evidence for that day's root. Null when\nno log round-trip happened for that day (for example\n`SIGSUM_LOG_URL` unset).\n",
"type": [
"object",
"null"
],
"required": [
"cosignatures",
"log_url"
],
"properties": {
"cosignatures": {
"type": "array",
"items": {
"type": "object"
}
},
"inclusion_proof": {
"description": "Sigsum log inclusion proof for TaskFast's leaf within the log's\nmulti-submitter tree. Null when the leaf is not yet sequenced\nor verification failed.\n",
"type": [
"object",
"null"
],
"required": [
"leaf_index",
"log_root_hash",
"log_tree_size",
"node_hashes"
],
"properties": {
"leaf_index": {
"type": "integer",
"minimum": 0.0
},
"log_root_hash": {
"type": "string"
},
"log_tree_size": {
"type": "integer",
"minimum": 1.0
},
"node_hashes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"log_url": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"tree_size": {
"description": "Number of leaves in that day's Merkle tree",
"type": "integer"
}
},
"additionalProperties": false
}Fields§
§anchor: Option<ReceiptProofAnchor>The Tempo on-chain anchor for that day’s root. Null before the day’s root has been anchored (daily roll-up + anchor happens once per day, the next day).
audit_path: Vec<String>0x-prefixed sibling hashes proving leaf_hash includes under
root_hash. Selective disclosure by construction — never
sibling receipts’ identifiers.
citable_id: StringStable citation id derived from the payload hash (precedent registry, gh#126)
day: NaiveDateUTC day (YYYY-MM-DD) whose Merkle batch this leaf belongs to
leaf_hash: String0x-prefixed hash of this receipt’s leaf
leaf_index: i64This receipt’s zero-based leaf index in that day’s tree
payload_hash: String0x-prefixed SHA-256 payload hash of the receipt this proof covers
root_hash: String0x-prefixed root hash of that day’s Merkle tree
schema_version: ReceiptProofSchemaVersion§sigsum: Option<ReceiptProofSigsum>Sigsum witness-cosigning evidence for that day’s root. Null when
no log round-trip happened for that day (for example
SIGSUM_LOG_URL unset).
tree_size: i64Number of leaves in that day’s Merkle tree
Trait Implementations§
Source§impl Clone for ReceiptProof
impl Clone for ReceiptProof
Source§fn clone(&self) -> ReceiptProof
fn clone(&self) -> ReceiptProof
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more