TGViewer
Из Solidity в AI и дальше Из Solidity в AI и дальше @solidityset · 2.5K subscribers
Post #323 190
Популярные ошибки в Solidity

Нашел интересный пост с корявым переводом ошибок, которые могут появиться при проведении транзакций. Это точно не полный список, но теперь это будет постоянная рубрика на канале.

Если вы получили какую-то ошибку у себя в практике и решили ее, то поделитесь этим решением с другими участниками. А пока, вот небольшой список:

1. Error: VM Exception while processing transaction: out of gas

В Solidity нельзя настроить постоянное выполнение транзакций.
Транзакция может выполняться, пока не будет достигнут лимит газа. Как только это произойдет, транзакция выдаст ошибку и вернет "out of gas".

Чаще всего это происходит в циклах функций.

2. Error: VM Exception while processing transaction: invalid opcode

Смарт контракты порой используют assert() для выявления ошибок по выполнению определенных условий в функции. Но иногда они могут противоречить условиям самого контракта. Например,

function set(uint x) public {
  assert(x == 0);
  myVariable = x;
}

3. Error: VM Exception while processing transaction: revert (описание ошибки)

Обычно это происходит, когда условия модификатора не выполняются, например, модификатор onlyOwner, который может быть вызван только владельцем.

Как и с другими require(), если условие не выполнено, оно вернет "revert exception".

4. CompilerError: Stack too deep, try removing local variables.

Это зависит от сложности выражения внутри функции, где присутствует много (более 16) локальных переменных.

Решение:

-Удалите ненужные переменные;
- Разделите большие функции;

5. SyntaxError: Unexpected token in JSON at position 0

Ошибки с форматом данных json указывает на наличие проблемы при синтаксическом анализе файла .sol для создания файла .json.

Такого рода проблемы могут быть в Truffle.

6. Solidity error: Unexpected token h in JSON at position

Строку параметра необходимо передавать в двойных кавычках.

7. The transaction has been reverted to the initial state. Note: The called function should be payable if you send value and the value you send should be less than your current balance.

Одна из переменных или функций должа быть помечена как payable, чтобы была возможность перевода валюты или токенов.

8. Expected pragma, import directive or contract/interface/library definition...

Проверьте версию pragma в компиляторе и в контракте.

9. ParserError: Source file requires different compiler version (current compiler is 0.6.12+commit.27d51765.Windows.msvc) - note that nightly builds are
considered to be strictly less than the released version pragma solidity ^0.8.0;

И снова следите за версиями в компиляторе и контракте.

10. Cannot estimate gas; transaction may fail or may require manual gas limit.

Возможно, что функция потребует больше газа, чем может себе позволить. В этом случаем можно либо вручную указать количество газа, либо переписать функцию.

Иногда такие ошибки возникают при использовании сторонних сервисов, когда чужой контракт должен вызвать в нашем callback функции, и у нас нет средств оплатить этот вызов.

11. Undeclared identifier.

Вы пытаетесь использовать переменную, которая нигде ранее не появлялась. Проверьте ее на опечатку или регистр.

12. ParseError: Expected '(' but got identifier.

Проверьте закрыты ли все кавычки выше или в самой функции.

13. Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: " to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code.

Скорее всего забыли прописать лицензию в начале кода смарт контракта, типа "SPDX-License-Identifier: MIT".

14. Error: invalid arrayify value

Означает, что в массиве передаете на правильный тип данных.

Читайте ошибки! По опыту могу сказать, что, внимательно прочитав ошибку, можно понять, из-за чего она появилась. Даже если вы не знаете английского языка, то онлайн переводчики отлично смогут помочь вам с этим.

В будущем поиск ошибок на канале можно будет выполнить по хештегу #error

#error
  • 👍 1
More from @solidityset
  1. Sep 18, 2026Интересная модель Jev Буквально пару дней назад в Твиттере многие начали обсуждение новой…
  2. Sep 14, 2026Графы повсюду Если вы также следите за новостями в мире ИИ, то наверняка уже все чаще встр…
  3. Sep 10, 2026GTA6, Cyberleek, блокчейн и безопасность Увидел несколько постов (тут и тут) про Cyberleek…
  4. Sep 9, 2026Работа с чистой энергией Дисклеймер Сегодня ава и название канала, наконец, поменялись. Я…
  5. Sep 9, 2026Channel name was changed to «Из Solidity в AI и дальше»
  6. Sep 8, 2026Поиск на основе триграмм Если вы разрабатываете свои агентные системы и "второй мозг", где…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →