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.

Аналоги: storage.get у CosmWasm, storage_read у NEAR.

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 × (ключ+значення) (за замовчуванням 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).