getLogs method

Future<List<EthereumLog>?> getLogs({
  1. required EthereumDefaultBlock fromBlock,
  2. required EthereumDefaultBlock toBlock,
  3. dynamic address,
  4. 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;
}