Skip to content

ExportLatch

[Source]

(Added by the Export amendment.)

An ExportLatch is created when an Export intent is admitted. It keeps callback state until both the signature witness and target-chain XPOP have arrived, or until its owner explicitly erases it. The owning account pays one owner reserve while the object exists.

The latch is keyed by the owning account and W, the source Export transaction hash. TicketSequence remains part of the recorded target intent and prevents two live latches for the same account from using one target Ticket, but it is not the latch key.

{
"LedgerEntryType": "ExportLatch",
"Account": "rYourAccount...",
"TicketSequence": 2,
"TransactionHash": "[W]",
"Digest": "[NORMALIZED_EXPORT_INTENT_HASH]",
"LedgerSequence": 12345679,
"ExportCommitteeHash": "[COMMITTEE_DIGEST]",
"LastLedgerSequence": 12345684,
"OwnerNode": "0000000000000000",
"ExportNode": "0000000000000000",
"Flags": 0,
"index": "[LEDGER_OBJECT_ID]"
}
FieldJSON TypeInternal TypeDescription
AccountStringAccountIDAccount that owns the latch and pays its reserve.
TicketSequenceNumberUInt32Target-chain Ticket used by the exported transaction.
TransactionHashStringHash256W, the source Export transaction hash.
DigestStringHash256Signing hash of the normalized identity-stamped target intent. It is independent of the final Signers subset.
LedgerSequenceNumberUInt32Validated source ledger sequence containing the Export intent.
ExportCommitteeHashStringHash256Digest of the immutable account-owned ExportCommittee used by this intent.
ExportSignatureHashStringHash256Present after the canonical ExportSignatures witness arrives first.
LastLedgerSequenceNumberUInt32Final source ledger eligible for signature publication and witness materialization. This is separate from the outer Export transaction’s admission deadline.
OwnerNodeStringUInt64Page hint for the account owner directory.
ExportNodeStringUInt64Present while the latch remains in the global pending-signature directory.
FlagsNumberUInt32Lifecycle facts described below.
FlagValueMeaning
lsfExportXpopSeen0x00000001The target-chain proof arrived before the signature witness.
lsfExportCanceled0x00000002Publication was stopped while retaining callback readiness.
  • On intent admission, ExportNode is present and neither terminal fact is recorded.
  • When the witness arrives first, ExportSignatureHash is added and ExportNode is removed.
  • When XPOP arrives first, lsfExportXpopSeen is set. Publication can continue so the witness can still complete the pair.
  • When the second of witness and XPOP arrives, the latch is erased and the owner reserve is released.
  • Stop control removes ExportNode immediately and retains the latch. Publication expiry immediately makes the latch ineligible for further signing or witness work; its pending-directory link is removed lazily when later Export work prunes expired latches.
  • tfExportEraseLatch removes the latch immediately in any state.

The ID is the SHA-512Half of these values concatenated in order:

  • The ExportLatch namespace prefix.
  • The owning Account ID.
  • W, the source Export TransactionHash.