Как сохранить точные показатели предложения SOL в системе метрик

Предложение SOL в лампортах может оказаться больше диапазона точных целых чисел обычного JSON-парсера. Потеря точности возможна ещё до преобразования числа в SOL.

Получите три показателя одним запросом

Запросите финализированные значения total, circulating и nonCirculating. Исключите список аккаунтов, чтобы сократить объём ответа при сборе одних итогов. Сохраните слот контекста, чтобы привязать изменение предложения в обращении к конкретному наблюдению.

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "getSupply",
  "params": [
    {
      "commitment": "finalized",
      "excludeNonCirculatingAccountsList": true
    }
  ]
}

Проверьте точность до пересчёта в SOL

Используйте парсер, который сохраняет большие целые числа из JSON без округления. Для проверки передайте 9007199254740993 лампорта и убедитесь, что последняя цифра осталась тройкой. Перевод в большое целое после округления числа с плавающей точкой потерянный лампорт не восстановит.

Сверьте внутри одного ответа сумму circulating и nonCirculating со значением total. Для отображения разделите сохранённое целое число лампортов на миллиард с помощью десятичной арифметики. Саму сверку выполняйте в минимальных единицах.

Документация