0xMiden / 0xMiden/protocol

Add support for storage array

未關閉
#383 14 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
kernels
主要語言
Rust
星號
132
分支
167
平均合併
1 天 23 小時
30 天內合併 PR
110

描述

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.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。