Сейчас я пишу свой первый смарт-контракт и пытаюсь придумать, как добавить газа в контракт, конечно, если это возможно.
Я не уверен, правильно ли я понял. С каждой транзакцией клиент платит комиссию в газе, и этот газ будет использоваться для выполнения так называемой функции смарт-контракта.
Вкратце, я разворачиваю контракт, мне нужно обеспечить его газом? Могу ли я как-то заставить клиентов сделать это? Кстати, этот остаток контракта используется как хранилище газа?
Ваше здоровье!
Вкратце, я разворачиваю контракт, мне нужно обеспечить его газом? Могу ли я как-то заставить клиентов сделать это? Кстати, этот остаток контракта используется как хранилище газа?
При развертывании вы должны заплатить комиссию за транзакцию, которая была использована для размещения контракта в блокчейне. Всякий раз, когда кто-то хочет использовать ваш контракт (вызвать функцию), ему нужно отправить для этого транзакцию. И как вы правильно заметили,
С каждой транзакцией клиент платит комиссию в газе, и этот газ будет использоваться для выполнения так называемой функции смарт-контракта.
тот, кто отправляет транзакцию, должен будет оплатить стоимость газа для выполнения этой конкретной функции в контракте.
Вы также можете обратиться к этому вопросу .
Надеюсь это поможет!
РЕДАКТИРОВАТЬ . Если это вызов constant
функции view
или pure
, транзакция не будет инициирована, следовательно, не будет расходов на газ. Проверьте этоview
, чтобы узнать больше о pure
функциях.
В дополнение к правильному ответу также обратите внимание, что вызов constant
функций не требует затрат газа, поскольку они не изменяют никаких переменных хранения.
Кроме того, постоянные (представленные или чистые) функции стоят газа только в том случае, если постоянная (представленная или чистая) функция выполняется или вызывается другим внешним смарт-контрактом, который не является владельцем этой функции. Но если он вызывается из смарт-контракта, в котором объявлена константная (представленная или чистая) функция, то газ использоваться не будет.
Точно так же, как когда вы используете функцию-член класса в другом классе на других языках программирования, создавая объект этого класса. Но в солидности это будет стоить вам вне зависимости от того, постоянная это функция или нет.
Ачала Диссанаяке