Skip to content

Store API does not surface "key not found" errors #264

@pierluca

Description

@pierluca

The core/store API indicates that nil should be returned when the key does not exist in the key/value store.
This is a behaviour inherited from BBolt, but it's not the most natural implementation. BBolt makes this choice assuming that errors never happen, except for a "key not found", but this assumption may not hold for other stores.
As a consequence, there are two error signals: the returned error and the value returned. This does not allow store users (smart contracts, ...) to cleanly manage the cases where a key does not exist. It would be much preferable (and more explicit) to return a sentinel error to indicate that the key was not found.
This implies updating:

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmod/storeConcern the store module

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions