getLogs method
Future<List<EthereumLog> ?>
getLogs({
- required EthereumDefaultBlock fromBlock,
- required EthereumDefaultBlock toBlock,
- dynamic address,
- List<
EthereumData> ? topics,
Get logs Returns an array of all logs matching a given filter object. The filter definition, see newFilter parameters.
Implementation
Future<List<EthereumLog>?> getLogs(
{required EthereumDefaultBlock fromBlock,
required EthereumDefaultBlock toBlock,
dynamic address,
List<EthereumData>? topics}) async {
final fromBlockString = fromBlock.getSelection();
final toBlockString = toBlock.getSelection();
final params = <String, dynamic>{
'toBlock': toBlockString,
'fromBlock': fromBlockString
};
if (address != null) {
if (address is List) {
final addresses =
EthereumData.toStringList(address as List<EthereumData>);
params['address'] = addresses;
} else {
params['address'] = address.asString;
}
}
if (topics != null) {
params['topics'] = EthereumData.toStringList(topics);
}
final paramBlock = <dynamic>[params];
const method = EthereumRpcMethods.getLogs;
final dynamic res = await _client.rpcClient.request(method, paramBlock);
if (res != null && res.containsKey(EthereumConstants.ethResultKey)) {
return EthereumLog.fromList(res[EthereumConstants.ethResultKey]);
}
_client.processError(method, res);
return null;
}