use of org.hyperledger.besu.ethereum.api.query.LogsQuery in project besu by hyperledger.
the class EthNewFilterTest method newFilterWithAddressOnlyParamInstallsExpectedLogFilter.
@Test
public void newFilterWithAddressOnlyParamInstallsExpectedLogFilter() {
final Address address = Address.fromHexString("0x0");
final FilterParameter filterParameter = filterParamWithAddressAndTopics(address, null);
final JsonRpcRequestContext request = ethNewFilter(filterParameter);
final JsonRpcResponse expectedResponse = new JsonRpcSuccessResponse(request.getRequest().getId(), "0x1");
final LogsQuery expectedLogsQuery = new LogsQuery.Builder().address(address).build();
when(filterManager.installLogFilter(any(), any(), eq(expectedLogsQuery))).thenReturn("0x1");
final JsonRpcResponse actualResponse = method.response(request);
assertThat(actualResponse).usingRecursiveComparison().isEqualTo(expectedResponse);
verify(filterManager).installLogFilter(refEq(BlockParameter.LATEST), refEq(BlockParameter.LATEST), eq(expectedLogsQuery));
}
use of org.hyperledger.besu.ethereum.api.query.LogsQuery in project besu by hyperledger.
the class FilterManagerLogFilterTest method privateLogFilterShouldQueryPrivacyQueriesObject.
@Test
public void privateLogFilterShouldQueryPrivacyQueriesObject() {
final LogWithMetadata logWithMetadata = logWithMetadata();
final LogsQuery logsQuery = logsQuery();
when(privacyQueries.matchingLogs(eq(PRIVACY_GROUP_ID), any(), eq(logsQuery))).thenReturn(singletonList(logWithMetadata));
final String filterId = filterManager.installPrivateLogFilter(PRIVACY_GROUP_ID, ENCLAVE_PUBLIC_KEY, latest(), latest(), logsQuery);
final Hash blockAddedHash = recordBlockEvents(1).get(0).getBlock().getHash();
verify(privacyQueries).matchingLogs(eq(PRIVACY_GROUP_ID), eq(blockAddedHash), eq(logsQuery));
assertThat(filterManager.logsChanges(filterId).get(0)).isEqualTo(logWithMetadata);
}
use of org.hyperledger.besu.ethereum.api.query.LogsQuery in project besu by hyperledger.
the class LogsQueryTest method univariateTopicQueryLogWithoutTopicReturnFalse.
@Test
public void univariateTopicQueryLogWithoutTopicReturnFalse() {
final Address address = Address.fromHexString("0x1111111111111111111111111111111111111111");
final LogTopic topic = LogTopic.fromHexString("0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
final List<LogTopic> topics = new ArrayList<>();
topics.add(topic);
final List<List<LogTopic>> topicsQuery = new ArrayList<>();
topicsQuery.add(topics);
final LogsQuery query = new LogsQuery.Builder().address(address).topics(topicsQuery).build();
final Log log = new Log(address, data, Lists.newArrayList());
assertThat(query.matches(log)).isFalse();
}
use of org.hyperledger.besu.ethereum.api.query.LogsQuery in project besu by hyperledger.
the class LogsQueryTest method multivariateTopicQueryMismatchReturnFalse.
@Test
public void multivariateTopicQueryMismatchReturnFalse() {
final Address address = Address.fromHexString("0x1111111111111111111111111111111111111111");
final LogTopic topic1 = LogTopic.fromHexString("0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
final LogTopic topic2 = LogTopic.fromHexString("0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb");
final LogTopic topic3 = LogTopic.fromHexString("0xcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc");
final List<LogTopic> logTopics = new ArrayList<>();
logTopics.add(topic1);
logTopics.add(topic2);
final List<LogTopic> queryTopics = new ArrayList<>();
queryTopics.add(topic3);
final List<List<LogTopic>> queryParameter = new ArrayList<>();
queryParameter.add(queryTopics);
final LogsQuery query = new LogsQuery.Builder().address(address).topics(queryParameter).build();
final Log log = new Log(address, data, logTopics);
assertThat(query.matches(log)).isFalse();
}
use of org.hyperledger.besu.ethereum.api.query.LogsQuery in project besu by hyperledger.
the class LogsQueryTest method univariateTopicQueryMatchReturnTrue.
@Test
public void univariateTopicQueryMatchReturnTrue() {
final Address address = Address.fromHexString("0x1111111111111111111111111111111111111111");
final LogTopic topic = LogTopic.fromHexString("0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
final List<LogTopic> topics = new ArrayList<>();
topics.add(topic);
final List<List<LogTopic>> topicsQuery = new ArrayList<>();
topicsQuery.add(topics);
final LogsQuery query = new LogsQuery.Builder().address(address).topics(topicsQuery).build();
final Log log = new Log(address, data, Lists.newArrayList(topic));
assertThat(query.couldMatch(LogsBloomFilter.builder().insertLog(log).build())).isTrue();
assertThat(query.matches(log)).isTrue();
}
Aggregations