ЗНАНИЯ БЕЗ ЛИШНЕГО ШУМА

Decimals токена: как из целого числа получить сумму ERC-20

Как делить базовые единицы токена на 10 в степени decimals и почему одинаковые сырые числа могут означать разные суммы.

Большой токен из множества мелких элементов

Decimals задаёт, сколько десятичных знаков используется при отображении количества токена. В контракте сумма обычно хранится целым числом. Чтобы получить привычное число токенов, разделите его на 10 в степени decimals.

Как считать на примере

При decimals = 6 число 1 250 000 базовых единиц означает 1,25 токена. При decimals = 18 то же целое число означает 0,00000000000125 токена. Поэтому копировать делитель из примера другого токена нельзя.

В обратную сторону умножайте количество на тот же делитель. Для 0,5 токена с шестью знаками получится 500 000 базовых единиц. Сумма с лишними знаками может оказаться недоступной в точном виде.

Пример с 6 знаками. Сырое число — 1 250 000. Делитель — 1 000 000. Сумма — 1,25
Пример с 6 знаками

Почему нужен контракт, а не тикер

Тикер служит обозначением в интерфейсе. У разных контрактов могут совпадать символы и отличаться точность. Сверьте сеть и конкретный контракт, затем используйте его сведения. В ERC-20 decimals относится к необязательной части интерфейса, поэтому приложение может получить значение из доверенных метаданных.

Что проверить. Сеть — нужная. Контракт — тот же. Decimals — его точность
Что проверить

Где бывает ошибка

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

Поиск по сайту