Voltar para Documentação

Docs Técnicas

Sparse Storage

Sparse maps and vectors are useful for bounded contract-local business data.

O conteúdo abaixo vem das fontes técnicas do repositório e é prerenderizado no site para leitura direta por pessoas, crawlers e agentes.

Sparse maps and vectors are useful for bounded contract-local business data.

python
contract SparseStore:
    storage:
        balances: Map[Address, u128, 64]
        checkpoints: Vec[u64, 8]

    @view
    def balance_of(owner: Address) -> u128:
        return self.balances[owner]

    @view
    def checkpoint_at(slot: u64) -> u64:
        return self.checkpoints[slot]

    @tx
    def seed(owner: Address, amount: u128, slot: u64, marker: u64):
        self.balances[owner] = amount
        self.checkpoints[slot] = marker

    @tx
    def clear(owner: Address, slot: u64):
        self.balances[owner] = 0
        self.checkpoints[slot] = 0

Persistence

The ledger stores sparse entries by canonical storage path. Assigning a default value removes the entry.

Review Notes

Sparse storage should still be bounded. Prefer explicit max entries and small vectors.