[Решено] Когда функция "выбрасывает" в FunC, отменяется ли транзакция?
-
При "выбрасывании" внутри функции транзакция отменяется? Например, если я отправляю 10 тонн с основного аккаунта, но в смарт-контракте выдается ошибка, если получено менее 20 тонн, отклоняется ли транзакция? После того, как транзакция будет отклонена, у меня все равно должны быть эти 10 тонн на моем основном счете, верно?
Этот вопрос был импортирован из чата Telegram: > <***Скрыто***
click to show
-
Это зависит от того, является ли транзакция внутренней или внешней.
Если транзакция является внутренней, это зависит от флага отказа. Если адрес, на который направлена внутренняя транзакция, подлежит возврату, то сумма в 10 тонн за вычетом газа будет возвращена на первоначальный адрес. Транзакция по-прежнему будет записана в блокчейне.
Если транзакция является внешней, то она зависит от принять вызов в коде. Если выбрасывание происходит до принятия, то оно не будет записано в блокчейн, и, таким образом, 10 TON останутся там, где они были изначально.
В приведенном вами примере, скорее всего, существует посредник в кошельке:
Основная учетная запись -> кошелек -> контракт, таким образом, внешняя транзакция и внутренняя транзакция.