getBalance method

  1. @override
Future<List<TokenBalance>> getBalance({
  1. required String address,
  2. String? caip2Chain,
})
override

Implementation

@override
Future<List<TokenBalance>> getBalance({
  required String address,
  String? caip2Chain,
}) async {
  final uri = Uri.parse('$_baseUrl/account/$address/balance');
  final queryParams = {
    ..._requiredParams,
    'currency': 'usd',
    if (caip2Chain != null) 'chainId': caip2Chain,
    // 'forceUpdate': ,
  };
  final url = uri.replace(queryParameters: queryParams);
  final response = await http.get(url, headers: _requiredHeaders);
  _core.logger.i('[$runtimeType] getBalance $url => ${response.body}');
  if (response.statusCode == 200 && response.body.isNotEmpty) {
    final result = jsonDecode(response.body) as Map<String, dynamic>;
    final balances = result['balances'] as List;
    _tokensList = balances.map((e) => TokenBalance.fromJson(e)).toList();
    return _tokensList!;
  }
  try {
    final reason = _parseResponseError(response.body);
    throw Exception(reason);
  } catch (e) {
    _core.logger.e('[$runtimeType] getBalance, decode result error => $e');
    rethrow;
  }
}