По следам одного теста
Вчера проходил небольшой тест и там встретились некоторые интересные вопросы. При изучении Solidity вы могли уже сталкиваться с подобными нюансами, а если нет, то краткое содержание этого поста будет как раз кстати.
Просто перечислю некоторые факты:
1) StaticCall не может приводить к изменениям в storage, как это может быть с Call, CallCode и DelegateCall;
2) View и pure не могут порождать события, так как это, по сути, модификация storage;
3) Pure функции не могут читать переменные state;
4) Помимо type(T).min и type(T).max есть еще type(c).name, type(c).creationCode, type(c).runtimeCode, type(i).interfaceId;
5) Конструктор контракта не может принимать calldata как параметр;
6) Комментарии не учитываются в байткоде контракта;
Надеюсь, это однажды поможет вам.
P.S. Если у вас были интересные вопросы на собеседовании, прошу поделиться ими в комментариях. Очень поможете для создания подборки!
#solidity #tips
Вчера проходил небольшой тест и там встретились некоторые интересные вопросы. При изучении Solidity вы могли уже сталкиваться с подобными нюансами, а если нет, то краткое содержание этого поста будет как раз кстати.
Просто перечислю некоторые факты:
1) StaticCall не может приводить к изменениям в storage, как это может быть с Call, CallCode и DelegateCall;
2) View и pure не могут порождать события, так как это, по сути, модификация storage;
3) Pure функции не могут читать переменные state;
4) Помимо type(T).min и type(T).max есть еще type(c).name, type(c).creationCode, type(c).runtimeCode, type(i).interfaceId;
5) Конструктор контракта не может принимать calldata как параметр;
6) Комментарии не учитываются в байткоде контракта;
Надеюсь, это однажды поможет вам.
P.S. Если у вас были интересные вопросы на собеседовании, прошу поделиться ими в комментариях. Очень поможете для создания подборки!
#solidity #tips
👍15