Context
Soroban archives storage entries whose TTL lapses, and the contract's behaviour under archival differs
by entry: Circle entries are re-extended on every fund/claim; the NextCircleId instance entry
is extended on create_circle (with a comment explaining why); nullifier entries are written once and
never touched again.
The nullifier case is a security fence, so its lifetime is a security property. That analysis is
scattered across code comments and contracts/README.md and should be one document.
Where to build it
- New file
docs/adr/004-storage-archival.md, following docs/adr/001-upgradeability.md's format.
contracts/README.md — link it and trim the duplicated prose.
docs/index.md — add to the ADR list.
What to do
Acceptance criteria
- Every storage key in
DataKey appears in the ADR's table.
Context
Soroban archives storage entries whose TTL lapses, and the contract's behaviour under archival differs
by entry:
Circleentries are re-extended on everyfund/claim; theNextCircleIdinstance entryis extended on
create_circle(with a comment explaining why); nullifier entries are written once andnever touched again.
The nullifier case is a security fence, so its lifetime is a security property. That analysis is
scattered across code comments and
contracts/README.mdand should be one document.Where to build it
docs/adr/004-storage-archival.md, followingdocs/adr/001-upgradeability.md's format.contracts/README.md— link it and trim the duplicated prose.docs/index.md— add to the ADR list.What to do
Acceptance criteria
DataKeyappears in the ADR's table.