209 похожих чатов

Товарищи, как контракту посчитать эфир, затраченный на его вызов? Это

для того, чтобы контракт смог возместить вызывающему расход на свой вызов. Вариант такой: засекаем gasleft() вначале и в конце вызванной функции, добавляем константу, умножаем на tx.gasprice. Есть ли тут уязвимеость?

8 ответов

19 просмотров

уязвимость в том что если возвращаешь больше 100% от потраченного, можно задрать gas price

banteg
уязвимость в том что если возвращаешь больше 100% ...

А этого можно добиться с помощью газтокенов / chi / селфдестрактов

Denis-Glotov Автор вопроса
banteg
уязвимость в том что если возвращаешь больше 100% ...

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

А может, сделать через подписывание сообщений тогда ничего компенсировать не придется

Denis Glotov
Ну вот кажется, что разница gasleft() на входе и в...

Ну вот кажется, что разница gasleft() на входе и выходе должна быть строго меньше 100% газа всей транзакции это не совсем верно: function attack() { callFunctionWithRefund() // вызвать функцию которая возмещает затраты chi.free(10) // сжечь chi токены и получить рефанд } таким образом отправителю можно затратить меньше газа, чем будет учитываться в вашей функции

Denis-Glotov Автор вопроса
Mikhail Dobrokhvalov
Ну вот кажется, что разница gasleft() на входе и в...

Да, очень интересно. Проэкспериментирую в ремуксе. Эта фмоя ункция и должна вызываться другими контрактами.

Denis-Glotov Автор вопроса
Mikhail Dobrokhvalov
Ну вот кажется, что разница gasleft() на входе и в...

Кстати тут должно быть все в порядке - ведь измерения gasleft() мы проводим внутри callFunctionWithRefund() и значит внешние действия с газовыми токенами не должны нарушить логику.

Похожие вопросы

Обсуждают сегодня

@Benzenoid can you tell me the easiest, and safest way to bu.y HEX now?
Živa Žena
20
This is a question from my wife who make a fortune with memes 😂😂 About the Migration and Tokens: 1. How will the old tokens be migrated to the new $LGCYX network? What is th...
🍿 °anton°
2
What is the Dex situation? Agora team started with the Pnetwork for their dex which helped them both with integration. It’s completed but as you can see from the Pnetwork ann...
Ben
1
Anyone knows where there are some instructions or discort about failed bridge transactions ?
Jochem
21
@lozuk how do I get my phex copies of my ehex from a atomic wallet, to move to my rabby?
Justfrontin 👀
11
Hello, Is iExec also part of the "inception program" or another one ? Would it be a name to qualified the nature of the relationship between iExec and Nvidia? And does Secret ...
Ñïķøłäś
8
Ready for some fun AND a chance to win TKO Tokens? Join us for exciting minigames in our Telegram group! 🕒 Don’t miss out—games start on today 25 October 2024, at 8 PM! Ge...
Milkyway | Tokocrypto
255
any reference of this implementation?
BitBuddha
29
Also, why can’t the community have a vote/ say when it comes to initiatives like buybacks. Isn’t the point of crypto decentralisation? Don’t we deserve input as long term supp...
👨🏽‍🦰
13
Hi guys, any problem with Pulsebrige? Trying to transfer from wETH to ETH. First it tells me to connect my metamask "through mobile app" not desktop. Then I did and confirmed ...
Snowflakecrypto
13
Карта сайта