getTokenBalance method

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

Implementation

@override
Future<List<TokenBalance>> getTokenBalance({
  required String address,
  String? caip2Chain,
}) async {
  try {
    final queryParams = {
      'currency': 'usd',
      if (caip2Chain != null) 'chainId': caip2Chain,
    };
    final url = _buildUrl('account/$address/balance', queryParams);
    _core.logger.i('[$runtimeType] getTokenBalance, url: $url');
    final response = await http.get(url, headers: _requiredHeaders);
    _core.logger.i('[$runtimeType] getTokenBalance => ${response.body}');

    final balances = _handleResponse<Map<String, dynamic>>(
      response: response,
      parser: (body) => jsonDecode(body) as Map<String, dynamic>,
      errorContext: 'getTokenBalance',
    );

    _tokensList = (balances['balances'] as List)
        .map((e) => TokenBalance.fromJson(e))
        .toList();
    return _tokensList!;
  } catch (e) {
    _tokensList = [];
    rethrow;
  }
}