getTokenBalance method
Implementation
@override
Future<double> getTokenBalance({
required String address,
required String namespace,
required String chainId,
}) async {
final uri = Uri.parse(_baseUrl);
final queryParams = {..._requiredParams, 'chainId': chainId};
final url = uri.replace(queryParameters: queryParams);
final body = jsonEncode({
'id': 1,
'jsonrpc': '2.0',
'method': _balanceMetod(namespace),
'params': [
address,
if (namespace == NetworkUtils.eip155) 'latest',
],
});
final response = await http.post(
url,
headers: _requiredHeaders,
body: body,
);
_core.logger.i(
'[$runtimeType] getTokenBalance $url, $body => ${response.body}',
);
if (response.statusCode == 200 && response.body.isNotEmpty) {
try {
return _parseBalanceResult(namespace, response.body);
} catch (e) {
_core.logger.e('[$runtimeType] getTokenBalance, parse error => $e');
throw Exception('Failed to load balance. $e');
}
}
try {
final reason = _parseResponseError(response.body);
throw Exception(reason);
} catch (e) {
_core.logger.e('[$runtimeType] getTokenBalance, decode error => $e');
rethrow;
}
}