Options
All
  • Public
  • Public/Protected
  • All
Menu

This class is one of several convenience collections built on top of the Storage class exposed by the NEAR platform. 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

Index

Constructors

Methods

Constructors

constructor

  • 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 NEAR account)
    

    Parameters

    • prefix: string

      A prefix to use for every key of this map.

    Returns PersistentMap

Methods

contains

  • contains(key: K): bool
  • 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
    

    Parameters

    • key: K

      Key to check.

    Returns bool

    True if the given key present in the map.

delete

  • delete(key: K): void
  • 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

get

  • get(key: K, defaultValue?: V | null): V | null
  • 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")
    

    Parameters

    • key: K

      Key of the element.

    • Default value defaultValue: V | null = null

      The default value if the key is not present.

    Returns V | null

    Value for the given key or the default value.

getSome

  • getSome(key: K): 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")
    

    Parameters

    • key: K

      Key of the element.

    Returns V

    Value for the given key or the default value.

set

  • set(key: K, value: V): void
  • ```ts 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 void

Generated using TypeDoc