0xMiden / 0xMiden/protocol

Add support for storage array

Open
#383 14 comments 0 reactions 0 assignees View on GitHub
kernels
Dominant language
Rust
Stars
132
Forks
167
Avg merge
1d 23h
Merged PRs (30d)
110

Description

In #307 and #310 we implemented basic new account storage structure described in https://github.com/0xPolygonMiden/miden-base/issues/239#issuecomment-1791479475. Specifically, we have support for value types but not for maps or arrays.

We need to add support for arrays as well. This would make storage more efficient and flexible for use cases where a small-sh number of items needs to be index-accessible.

To support this on the kernel side, we need to add two procedures to the kernel API:
```
#! Inputs: [slot, index, ...]
#! Outputs: [VALUE, ...]
#!
#! Fails if the slot contains a simple value or a storage map.
export.get_array_item

#! Inputs: [slot, index, VALUE, ...]
#! Outputs: [OLD_VALUE, ...]
#!
#! Fails if the slot contains a simple value or a storage map.
export.set_array_item
```

We also need to add support for maps to `AccountStorage` as well as `DataStore` trait in `miden-tx`. The backing data structure for this is probably going to be Simple SMT.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.