Валюта

Чтение основной валюты из настроек приложения и конвертация сумм по тем же курсам, что использует основное приложение. Дополнительные разрешения не требуются.

Курсы загружаются и обновляются главным процессом (Config.data.CURRENCY_RATES). Конвертация выполняется через общий хелпер ConvertCurrencyShared (промежуточная валюта — USD).

currency.getCurrent()

Возвращает код валюты, выбранной в Настройки → Основные → Валюта.

const res = await currency.getCurrent();
if (res.success) {
  console.log('Валюта пользователя:', res.currency); // например "USD", "EUR", "RUB"
}

Возвращает { success: true, currency }, где currencyCurrencyCode (например USD, EUR, UAH).

currency.getList()

Возвращает все известные валюты массивом объектов { key, name } (английские названия). Порядок совпадает с выбором в основных настройках: сначала основные валюты (USD, EUR, UAH, RUB, BYN, PLN), затем по алфавиту.

const res = await currency.getList();
if (res.success) {
  console.log(res.currencies[0]); // { key: 'USD', name: 'United States Dollar' }
  for (const { key, name } of res.currencies) {
    console.log(key, name);
  }
}

Возвращает { success: true, currencies }, где у каждой записи:

Поле Тип Описание
key string Код валюты (например USD, EUR)
name string Английское отображаемое название

currency.convert(amount, from, to)

Конвертирует числовую сумму между двумя валютами.

const res = await currency.convert(100, 'USD', 'EUR');
if (res.success) {
  console.log('Сконвертировано:', res.amount);
}
Аргумент Тип Описание
amount number Сумма в исходной валюте
from CurrencyCode Код исходной валюты
to CurrencyCode Код целевой валюты

Возвращает { success: true, amount } со сконвертированным значением или { success: false, message? }, когда:

Пример: донат в валюте пользователя

events.On('onDonation', async ({ body }) => {
  const { amount, currency: from } = body;
  const current = await currency.getCurrent();
  if (!current.success) {
    return;
  }

  if (from === current.currency) {
    console.log(`${amount} ${from}`);
    return;
  }

  const converted = await currency.convert(amount, from, current.currency);
  if (converted.success) {
    console.log(`${amount} ${from} (${converted.amount} ${current.currency})`);
  }
});