存储(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) → i32storage_usage 计划中
text
storage_usage() → i64本合约存储的总字节数(与 NEAR 兼容)。