Как стать автором
Обновить

Комментарии 12

Кому задачку?
В некоторых смарт-контрактах ставят запрет на вызов функции другим смарт-контрактом. Делают это двумя способами. Один из этих способов не работает.
Какие это способы?
Какой из них не работает?
Почему?
НЛО прилетело и опубликовало эту надпись здесь
Да, это один из способов и он как раз не работает. Есть второй.
msg.sender == tx.origin

а почему не работает extcodesize?
Создайте контракт с 10 эфира с генератором случайных чисел на основе BLOCKHASH или TIMESTAMP. Защитите платящую функцию с помощью extcodesize, и тогда я покажу. Можете даже исходный код не публиковать. Только адрес
Слипнется

ответ: extcodesize возвращает ноль для контракта, который создаётся прямо сейчас
+1
send давно пофиксили и рекомендуют использовать transfer.
Тем не менее, думаю, что статья актуальна, как пример подхода к разработке — с учетом возможных уязвимостей.

Нашёл уязвимость статьи в заголовке)

НЛО прилетело и опубликовало эту надпись здесь
Это небезопасный код из-за reentrancy
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории