Как прочитать масштабированную котировку Exchange Rate Canister
XRC возвращает целое число и метаданные с масштабом. Если сохранить только число, впоследствии будет невозможно корректно сравнить или показать котировку.
Прочитайте пару в заданном порядке
Для условного ответа ICP/USD разделите число на десять в степени metadata.decimals. Получатся доллары за один ICP. Для расчётов малых сумм используйте десятичный тип или храните числитель и знаменатель. При обращении пары единицы также меняются местами.
base = ICP, quote = USD
rate = 4725000000, metadata.decimals = 9
USD per ICP = 4.725
Сохраните сведения о наблюдении
Вместе с курсом сохраните время наблюдения, классы обоих активов и число источников из метаданных. Успешно найденный исторический курс может быть устаревшим для текущего обмена. Заранее определите предельный возраст наблюдения и правила для отсутствующих или малочисленных источников.