Невозможно сопоставить вычисленное значение «использованный газ» с помощью IDE Солидности с проводником etherscan «Газ, использованный транзакцией» - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь найти газ, используемый транзакцией при нажатии на метод в IDE твердости ремикса. мой код, как показано ниже. Значение, которое я получаю в переменной gasUsed, отличается от значения, которое отображается в обозревателе etherscan для этой транзакции. Было бы полезно, если бы кто-то помог мне исправить мой код.

pragma solidity ^0.4.22;

contract id{

uint public id;
uint public senderValue;
uint256 public gasUsed;

constructor() public {
    senderValue= msg.sender;
}

function setId(uint _id) public {
    uint256 gasInitial = gasleft();
    id= _id;
    setGasUsed(gasInitial - gasleft());
}

function setGasUsed(uint256 _gasUsed) private {
    gasUsed = _gasUsed;
}

}

1 Ответ

0 голосов
/ 13 ноября 2018

Значение " использованный газ " в ремиксе IDE равно Стоимость исполнения , а значение " Газ, используемый транзакцией " в эфире равно " Стоимость сделки".

Затраты на выполнение основаны на стоимости вычислительных операций, которые выполняются в результате транзакции.

Транзакционные издержки всегда основаны на стоимости того типа данных, который вы будете отправлять в блокчейн. Это зависит от

  1. базовая стоимость сделки (21000 газа)
  2. стоимость контракта на развертывание (32000 газ)
  3. стоимость каждого нулевого байта данных или кода для транзакции.
  4. стоимость каждого ненулевого байта данных или кода для транзакции.

Вы можете легко понять это изображение enter image description here

Надеюсь, этот ответ очистит ваше сомнение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...