Может ли звонок сообщения изменить цену газа исходной транзакции?

Может ли звонок сообщения изменить цену газа исходной транзакции?

EOA может вызывать функцию контракта посредством транзакции. Однако контракты могут вызывать друг друга в среде выполнения.

Могут ли вызовы сообщений изменить лимит газа и цену газа исходной транзакции? Если да, то как мне это сделать в Solidity?

Ответы (1)

Вы можете установить ограничение на газ, пересылаемый на следующий контракт, но вы не можете изменить gasPrice или перерасход. То есть в момент, когда вы перенаправляете газ другому контракту, вы ограничены количеством неизрасходованного газа, существующего на этом этапе исполнения.

Вот небольшой синтаксис "на примере":AbstractB(addressB).setX.value(1 ether).gas(10000)();

вдохновленный:

Как указать газ/стоимость при совершении звонка с использованием абстрактных контрактов?

Надеюсь, это поможет.

Спасибо. Итак, если установлен лимит на количество газа, которое может потратить следующий контракт, может ли текущий контракт тратить неиспользованный газ?
Неиспользованный газ возвращается. По умолчанию вызываемый абонент получает весь доступный газ. Исключением являются sendи transferте, которые теперь получают только стипендию в размере 2300 в качестве защиты протокола от атак rwentrance.
В случае, если это неясно, при условии, что лимит был достаточным, вызывающий контракт должен в конечном итоге иметь тот же чистый доступный баланс на следующем шаге в любом случае.
Что, если у вызванного контракта закончился газ, а он был вызван, скажем, только с половиной оставшегося газа вызывающего абонента. Есть ли у звонящего шанс восстановиться в этом случае?
Я считаю, что ошибка всплывет и вернет транзакцию - все терпит неудачу.