Почему единицы газа, используемые в квитанции о сделке, равны 10^11 вэй?

Я проверяю баланс счета после транзакции payableв тесте Truffle. Ниже мой код:

// amount is the value supplied to the txn
assert.equal(Number(String(currentBalance)),
             Number(String(previousBalance)) + amount - (gasUsed * 100000000000),
            'Account balance for ' + String(acct) + ' incorrect after txn.');
// previous account bal: 99965457999999999000
// current account bal: 99954881999999998000
// gasUsed: 105760
// amount: 1000

Как видите, мне нужно умножить gasUsedзначение на 10^11, иначе мой тест провалится... Я не очень понимаю, почему это 10^11? GWEI ( 10^9) имеет гораздо больше смысла. Хотя бы кратное трем? Этого вообще нет в документации web3 .

РЕДАКТИРОВАТЬ: чтобы уточнить, я пытаюсь выяснить, что это gasUsedтакое, и перезаписывают ли web3 или Truffle цену на газ по умолчанию. Цена газа согласно моему интерфейсу Ganache составляет 20000000000, что не соответствует моим расчетам. Вот почему я пришел к выводу, gasUsedчто общая плата за транзакцию в Wei.

Можете ли вы дать нам фактическую возвращенную стоимость?
Я просто добавил значения всех переменных!

Ответы (1)

Газ не эфир. Газ используется для оценки работы, выполненной EVM. Это не имеет ничего общего с вайсом/эфиром и т.д...

Если вы хотите узнать, сколько эфира стоит этот газ, умножьте его на значение gasPrice.

Судя по вашим расчетам, ваша цена на газ, вероятно, составляет 100 гвэй (10^11 вэй).
Я тоже сначала так подумал, но я использую Ganache и судя по интерфейсу Ganache моя цена газа по умолчанию 20000000000. Web3 перезаписывает это своим значением по умолчанию?
Если gasPrice не указан в объекте транзакции, geth получит цену газа от самой EVM при обработке транзакции.
Хорошо, может быть, это должен быть вопрос о Ganache и его вводящем в заблуждение интерфейсе, тогда