Pub Version Lints

Неофициальный, надежный и простой в использовании клиент на Dart для Iris API. Этот пакет позволяет вам взаимодействовать с системой внутриигровой валюты Iris (ириски и золото) прямо из ваших Dart или Flutter приложений.

Features

  • Управление балансом: Проверяйте текущий баланс ирисок и золота вашего бота.
  • Переводы валюты: Отправляйте ириски и золото пользователям.
  • История транзакций: Получайте историю транзакций как по золоту, так и по ирискам.
  • Отслеживание в реальном времени: Мониторьте новые транзакции по мере их поступления с помощью удобного Stream.
  • Обработка ошибок: Включает набор пользовательских исключений для распространенных ошибок API (например, NotEnoughSweetsError, AuthorizationError).
  • Управление разрешениями: Управляйте, какие пользователи могут получать переводы.

Getting started

Добавьте эту зависимость в файл pubspec.yaml вашего проекта:

dependencies:
  iris_api: ^1.0.0 # Замените на последнюю версию

Затем выполните dart pub get или flutter pub get.

Usage

1. Инициализация клиента

import 'package:iris_api/iris_api.dart';

void main() {
  final api = IrisAPI(
    botId: 'YOUR_BOT_ID',
    irisToken: 'YOUR_IRIS_TOKEN',
  );
  // ... используйте api
}

2. Проверка баланса

try {
  final balance = await api.balance();
  print('Ириски: ${balance.sweets}, Золото: ${balance.gold}');
} on IrisAPIError catch (e) {
  print('Произошла ошибка API: $e');
}

3. Перевод ирисок

try {
  const userId = 123456789; // ID целевого пользователя
  const amount = 10.5;
  final success = await api.giveSweets(amount, userId, comment: 'Вот немного ирисок!');
  if (success) {
    print('Успешно отправлено $amount ирисок пользователю $userId.');
  }
} on NotEnoughSweetsError catch (e) {
  print(e); // "IrisAPIError: Not enough sweets. Required: 10.5"
} on IrisAPIError catch (e) {
  print('Произошла ошибка API: $e');
}

4. Отслеживание новых транзакций

Слушайте поток, чтобы получать обновления о новых транзакциях в реальном времени.

final transactionStream = api.trackTransactions(
  pollInterval: const Duration(seconds: 2),
);

await for (final transaction in transactionStream) {
  print('Найдена новая транзакция!');
  print('ID: ${transaction.id}');
  print('Сумма: ${transaction.amount}');
  print('Пользователю: ${transaction.toUserId}');
  print('Дата: ${transaction.datetime}');
}

Libraries

iris_api