Как обновить 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