Я не мог понять, в чем заключается следующая ошибка в Algorand. Я тоже не нашел на него документа.
AlgodHTTPError: TransactionPool.Remember: transaction AFARFFGAZE7IXA2ZVPGCNTJVTUHX2IZKVSKY7US24JANRK7LZRXA: logic eval error: store integer count 7 exceeds schema integer count 6. Details: pc=542, opcodes=global CurrentApplicationAddress
callsub label13
app_global_put
Это вызов, который я пытаюсь вызвать:
on_init = Seq(
Assert(
And(
Txn.sender() == Global.creator_address(),
)
),
App.globalPut(GlobalState.Variables.asset_id, create_asset(Global.current_application_address())),
Approve(),
)
Выполняя некоторые тесты, я только что обнаружил, что глобальные переменные имеют только 6 целочисленных позиций.
Вы можете изменить это, увеличив количество переменных:
global_schema = transaction.StateSchema(num_uints=7, num_byte_slices=7)
local_schema = transaction.StateSchema(num_uints=1, num_byte_slices=0)
При создании смарт-контракта существует ограничение в 64 пары ключ-значение, которые могут использоваться контрактом для глобального хранилища, и 16 пар ключ-значение, которые могут использоваться для локального хранилища.
@Frank, я добавил больше информации об ограничении.