Ошибка при объявлении/развертывании контракта в Starknet с помощью starkli
Я пытаюсь объявить о своем первом контракте в Starknet, следуя официальному руководству Starknet .
Проблема в том, что когда я пытаюсь объявить свой контракт с помощью этой команды:
starkli declare path/to/contract.sierra --compiler-version=2.0.1
после установки переменных средыSTARKNET_ACCOUNT
иSTARKNET_KEYSTORE
Я получаю ошибку:
Error: expected ',' or '}' at line 11 column 3
Я не знаю, к какому файлу относится эта ошибка, но я предполагаю, что это не мой контракт, поскольку та же ошибка появляется, даже когда я пытаюсь развернуть контракт , уже объявленный в руководстве, с помощью:
starkli deploy <class hash> ...
Я использую Ubuntu и виртуальную среду Python 3.9. В остальном я следовал инструкциям шаг за шагом. Если вам нужна дополнительная информация, я предоставлю ее как можно скорее.
1 ответ
Сообщение об ошибке «Ошибка: ожидается ',' или '}' в строке 11, столбец 3» указывает на проблему с файлом.
path/to/contract.sierra
который вы пытаетесь развернуть. В новых версиях Starkli необходимо использовать файл JSON, в частности
path/to/contract.sierra.json
. Если вы используете Scarb для компиляции своего контракта, вы, скорее всего, найдете файл JSON по адресу
target/dev/starknetbook_chapter_2_Vote.sierra.json
.
Поэтому ваша команда объявления должна быть отформатирована следующим образом:
starkli declare target/dev/starknetbook_chapter_2_Vote.sierra.json --rpc <RPC-BEING-USED> --account <PATH-TO-ACCOUNT-DESCRIPTION> --keystore <PATH-TO-SIGNER-JSON>
Обратите внимание, что Книга Старкнета была обновлена и включает эти изменения. Для получения более подробной информации посетите следующую ссылку: https://book.starknet.io/chapter_2/deploy_call_invoke.html#contract_deployment .