Skip to content

存储(env) ​

每个合约独立的键值存储(隔离的前缀)。当前宿主使用 UTF-8 字符串作为键和值。写入按 fuel 计价,并有上限。

get_storage 已上线 ​

text
get_storage(key_ptr, key_len, val_ptr, val_max) → i32

把 min(value_len, val_max) 字节复制到 val_ptr。键不存在 → 长度 0。UTF-8 或指针无效 → -1。

Fuel: FUEL_STORAGE_READ_BASE + PER_BYTE × len(默认 800 + 5×len)。fuel 耗尽 → -1。

类比: CosmWasm storage.get,NEAR storage_read。

set_storage 已上线 ​

text
set_storage(key_ptr, key_len, val_ptr, val_len)

写入覆盖层和 storage_changes。在 UTF-8 无效、fuel 耗尽或超出增长上限时拒绝(不写入)。

Fuel: FUEL_STORAGE_WRITE_BASE + PER_BYTE × (key+val)(默认 5000 + 50×nbytes)。

上限: 累计新增字节 ≤ MAX_STATE_GROWTH_BYTES_PER_TX(64 KiB)。

remove_storage 计划中 ​

text
remove_storage(key_ptr, key_len) → i32

键存在则返回 1,否则返回 0。

storage_has 计划中 ​

text
storage_has(key_ptr, key_len) → i32

storage_usage 计划中 ​

text
storage_usage() → i64

本合约存储的总字节数(与 NEAR 兼容)。