Как обновить Felt252Dict в Cairo через entry
Обновление словаря Cairo фиксируется как доступ с прежним и новым значением. API entry позволяет вычислить замену без отдельных чтения и вставки.
Завершите обновление полученным элементом
Для словаря кредитов u64 возьмите entry(7), получив дескриптор и прежнее значение. Прибавьте четыре с нужной обработкой переполнения и завершите элемент значением четырнадцать. Продолжайте с возвращённым словарём.
old value for key 7 = 10
credit = 4
finalized entry = 14
У отсутствующего ключа в числовом словаре с нулевым значением по умолчанию начальное значение ноль. Проверьте существующий и новый ключи, чтобы инициализация не скрыла ошибочную замену старого баланса.
Различайте словарь в памяти и хранилище
Felt252Dict относится к памяти исполнения Cairo и использует журнал доступов и squashing для проверки согласованности. Для сохранения между вызовами нужна подходящая структура хранилища контракта. Изменение только в памяти в следующей транзакции не сохранится. starknet.io The Cairo Programming Language