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

Можно ли в солидити сделать так, что если транзакция

не проходит, чтобы она не писалась в блокчейн и не тратился газ?

10 ответов

17 просмотров

Не проходит т.е. по какому то условию?

Iván
да

assert, require

Iván- Автор вопроса

используйте estimateGas [1] перед отправкой транзакции. Это позволит вам не потратить газ вообще, если транзакция фейлится (с оговорками [2]). Но это не солидити, конечно. На уровне смартконтракта вам верно посоветовали require или revert. Но в этом случае газ вы всё равно потратите, просто меньше. Чем раньше require ипользуется в коде — тем лучше. [1] https://eth.wiki/json-rpc/API#eth_estimategas [2] https://gist.github.com/spalladino/a349f0ca53dbb5fc3914243aaf7ea8c6#about-gas

Если коротко то нет. Если транзакция не проходит, какой то газ все равно потратишь.

Iván- Автор вопроса
Kosta
используйте estimateGas [1] перед отправкой транза...

не из-за газа не проходит, а потому что при вызове функции на контрактеА, которая обращается к другому контрактуБ, на стороне контракта Б как раз require не выполняется, транзакция не проходит, пишется в блок, газ тратится.

Iván- Автор вопроса
ALΞX 📍Seoul
Если коротко то нет. Если транзакция не проходит, ...

а если я require из контрактаБ продублирую в контрактА, то все равно будет писаться в блокчейн транза?

Iván
а если я require из контрактаБ продублирую в контр...

либо estimateGas, либо еще все проверки можно сделать как view метод и перед вызовом транзы сначала вызвать метод проверки. Но суть в том что даже если require, то это не изменит стейт контракта (все изменения откатаны будут) но майнер потратит ресурсы на исполнение и ты за них заплатишь

Iván- Автор вопроса
ALΞX 📍Seoul
либо estimateGas, либо еще все проверки можно сдел...

но если функция, которую хочу вызвать на контарктеА, изменяет стейт контрактаБ, а require только слушает Б, и стейт не меняет на Б (при этом меняет, допустим, одну переменную на А), то заплачено газа будет меньше, чем если будет неудачная попытка поменять стейт Б?

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

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

@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
Карта сайта