ERC20 — это интерфейс, а не определение контракта. А так как газ оплачивается за каждую выполненную машинную инструкцию, то нельзя точно указать, сколько стоит вызов на передачу для контракта ERC20. Это будет зависеть от того, как реализован контракт ERC20 (в Solidity) и как он скомпилирован в код EVM.
Однако: можно ли сказать что-то общее о стоимости этого газа или существует эталонная реализация, где можно точно сказать, сколько стоит такой вызов метода? И существует ли нижний предел для этого числа?
Глядя на вызовы передачи ERC20 на etherscan.io, кажется, что стоимость газа составляет от 50 000 до 105 000.
Я установил лимит газа на 200 000 на кошельке, который я создал. До сих пор я не сталкивался с переводным вызовом ERC20, превышающим этот лимит.
Единственное, что вы можете точно сказать, это то, что она не будет ниже 21 000, что является минимальной стоимостью транзакции, и что она не будет выше gasLimit блока. Все остальное зависит от выполнения контракта. Среднее значение существующих токенов можно рассчитать на основе данных о блоках/транзакциях.
Более того, вы можете провести пробную транзакцию на своем локальном узле, чтобы получить довольно точную оценку стоимости транзакции.
Хари ГТТ Псиколабис
Торкил Верге
Микко Отамаа