AlgorandClient constructor

AlgorandClient({
  1. required String apiUrl,
  2. required String apiKey,
  3. required String tokenKey,
  4. Duration connectTimeout = const Duration(seconds: 30),
  5. Duration receiveTimeout = const Duration(seconds: 30),
  6. Duration sendTimeout = const Duration(seconds: 30),
  7. bool debug = false,
  8. bool enableGzip = true,
  9. Interceptor? logInterceptor,
  10. Transformer? transformer,
})

Implementation

AlgorandClient({
  required String apiUrl,
  required String apiKey,
  required String tokenKey,
  Duration connectTimeout = const Duration(seconds: 30),
  Duration receiveTimeout = const Duration(seconds: 30),
  Duration sendTimeout = const Duration(seconds: 30),
  bool debug = false,
  bool enableGzip = true,
  Interceptor? logInterceptor,
  Transformer? transformer,
}) {
  final headers = <String, dynamic>{tokenKey: apiKey};
  if (enableGzip) {
    headers.putIfAbsent(
      'Accept-Encoding',
      () => 'gzip',
    );
  }
  headers.removeWhere((k, v) => k.isEmpty);

  final options = BaseOptions(
    baseUrl: apiUrl,
    connectTimeout: connectTimeout.inMilliseconds,
    receiveTimeout: receiveTimeout.inMilliseconds,
    sendTimeout: sendTimeout.inMilliseconds,
    headers: headers,
  );

  client = Dio(options);

  if (transformer != null) {
    client.transformer = transformer;
  }

  if (debug) {
    client.interceptors.add(logInterceptor ?? LogInterceptor());
  }
}