Как прочитать масштабированную котировку Exchange Rate Canister

XRC возвращает целое число и метаданные с масштабом. Если сохранить только число, впоследствии будет невозможно корректно сравнить или показать котировку.

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

Для условного ответа ICP/USD разделите число на десять в степени metadata.decimals. Получатся доллары за один ICP. Для расчётов малых сумм используйте десятичный тип или храните числитель и знаменатель. При обращении пары единицы также меняются местами.

base = ICP, quote = USD
rate = 4725000000, metadata.decimals = 9
USD per ICP = 4.725

Сохраните сведения о наблюдении

Вместе с курсом сохраните время наблюдения, классы обоих активов и число источников из метаданных. Успешно найденный исторический курс может быть устаревшим для текущего обмена. Заранее определите предельный возраст наблюдения и правила для отсутствующих или малочисленных источников.

Источники