This class is one of several convenience collections built on top of the Storage class It implements a map -- a persistent unordered map.

To create a map

let map = new PersistentMap<string, string>("m")  // choose a unique prefix per account

To use the map

map.set(key, value)
map.get(key)

IMPORTANT NOTES:

(1) The Map doesn't store keys, so if you need to retrieve them, include keys in the values.

(2) Since all data stored on the blockchain is kept in a single key-value store under the contract account, you must always use a unique storage prefix for different collections to avoid data collision.

Type Parameters

Hierarchy

  • PersistentMap

Constructors

  • Creates or restores a persistent map with a given storage prefix. Always use a unique storage prefix for different collections.

    Example

    let map = new PersistentMap<string, string>("m") // note the prefix must be unique (per Massa account)
    

    Type Parameters

    • K

    • V

    Parameters

    • prefix: string

      A prefix to use for every key of this map.

    Returns PersistentMap<K, V>

Methods

  • Checks whether the map contains a given key

    let map = new PersistentMap<string, string>("m")

    map.contains("hello") // false
    map.set("hello", "world")
    map.contains("hello") // true

    Returns

    True if the given key present in the map.

    Parameters

    • key: K

      Key to check.

    Returns bool

  • Removes the given key and related value from the map

    let map = new PersistentMap<string, string>("m")

    map.set("hello", "world")
    map.delete("hello")

    Removes value and the key from the map.

    Parameters

    • key: K

      Key to remove.

    Returns void

  • Retrieves the related value for a given key, or uses the defaultValue if not key is found

    let map = new PersistentMap<string, string>("m")

    map.set("hello", "world")
    let found = map.get("hello")
    let notFound = map.get("goodbye", "cruel world")

    assert(found == "world")
    assert(notFound == "cruel world")

    Returns

    Value for the given key or the default value.

    Parameters

    • key: K

      Key of the element.

    • defaultValue: null | V = null

      The default value if the key is not present.

    Returns null | V

  • Retrieves a related value for a given key or fails assertion with "key not found"

    let map = new PersistentMap<string, string>("m")

    map.set("hello", "world")
    let result = map.getSome("hello")
    // map.getSome("goodbye") // will throw with failed assertion

    assert(result == "world")

    Returns

    Value for the given key or the default value.

    Parameters

    • key: K

      Key of the element.

    • defaultValue: null | V = null

    Returns Result<V>

  • Example

    let map = new PersistentMap<string, string>("m")

    map.set("hello", "world")

    Sets the new value for the given key.

    Parameters

    • key: K

      Key of the element.

    • value: V

      The new value of the element.

    Returns Result<number>

  • Returns the map size

    Example

    let map = new PersistentMap<string, string> ("m")

    map.size()

    Returns

    the map size

    Returns number

Generated using TypeDoc