Search in sources :

Example 1 with FilterRepository

use of org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterRepository in project besu by hyperledger.

the class AbstractJsonRpcHttpServiceTest method getRpcMethods.

protected Map<String, JsonRpcMethod> getRpcMethods(final JsonRpcConfiguration config, final BlockchainSetupUtil blockchainSetupUtil) {
    final ProtocolContext protocolContext = mock(ProtocolContext.class);
    final Synchronizer synchronizerMock = mock(Synchronizer.class);
    final P2PNetwork peerDiscoveryMock = mock(P2PNetwork.class);
    final TransactionPool transactionPoolMock = mock(TransactionPool.class);
    final PoWMiningCoordinator miningCoordinatorMock = mock(PoWMiningCoordinator.class);
    when(transactionPoolMock.addLocalTransaction(any(Transaction.class))).thenReturn(ValidationResult.valid());
    // nonce too low tests uses a tx with nonce=16
    when(transactionPoolMock.addLocalTransaction(argThat(tx -> tx.getNonce() == 16))).thenReturn(ValidationResult.invalid(TransactionInvalidReason.NONCE_TOO_LOW));
    final GasPricePendingTransactionsSorter pendingTransactionsMock = mock(GasPricePendingTransactionsSorter.class);
    when(transactionPoolMock.getPendingTransactions()).thenReturn(pendingTransactionsMock);
    final PrivacyParameters privacyParameters = mock(PrivacyParameters.class);
    final BlockchainQueries blockchainQueries = new BlockchainQueries(blockchainSetupUtil.getBlockchain(), blockchainSetupUtil.getWorldArchive());
    final FilterIdGenerator filterIdGenerator = mock(FilterIdGenerator.class);
    final FilterRepository filterRepository = new FilterRepository();
    when(filterIdGenerator.nextId()).thenReturn("0x1");
    filterManager = new FilterManagerBuilder().blockchainQueries(blockchainQueries).transactionPool(transactionPoolMock).filterIdGenerator(filterIdGenerator).filterRepository(filterRepository).build();
    final Set<Capability> supportedCapabilities = new HashSet<>();
    supportedCapabilities.add(EthProtocol.ETH62);
    supportedCapabilities.add(EthProtocol.ETH63);
    final NatService natService = new NatService(Optional.empty());
    return new JsonRpcMethodsFactory().methods(CLIENT_VERSION, NETWORK_ID, new StubGenesisConfigOptions(), peerDiscoveryMock, blockchainQueries, synchronizerMock, blockchainSetupUtil.getProtocolSchedule(), protocolContext, filterManager, transactionPoolMock, miningCoordinatorMock, new NoOpMetricsSystem(), supportedCapabilities, Optional.empty(), Optional.empty(), JSON_RPC_APIS, privacyParameters, config, mock(WebSocketConfiguration.class), mock(MetricsConfiguration.class), natService, new HashMap<>(), folder.getRoot().toPath(), mock(EthPeers.class));
}
Also used : ValidationResult(org.hyperledger.besu.ethereum.mainnet.ValidationResult) Arrays(java.util.Arrays) ArgumentMatchers.argThat(org.mockito.ArgumentMatchers.argThat) URL(java.net.URL) FilterRepository(org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterRepository) WebSocketConfiguration(org.hyperledger.besu.ethereum.api.jsonrpc.websocket.WebSocketConfiguration) Preconditions.checkArgument(com.google.common.base.Preconditions.checkArgument) BlockchainSetupUtil(org.hyperledger.besu.ethereum.core.BlockchainSetupUtil) DataStorageFormat(org.hyperledger.besu.ethereum.worldstate.DataStorageFormat) Synchronizer(org.hyperledger.besu.ethereum.core.Synchronizer) FilterManagerBuilder(org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterManagerBuilder) Map(java.util.Map) After(org.junit.After) BigInteger(java.math.BigInteger) PoWMiningCoordinator(org.hyperledger.besu.ethereum.blockcreation.PoWMiningCoordinator) ClassRule(org.junit.ClassRule) GasPricePendingTransactionsSorter(org.hyperledger.besu.ethereum.eth.transactions.sorter.GasPricePendingTransactionsSorter) MediaType(okhttp3.MediaType) BlockchainQueries(org.hyperledger.besu.ethereum.api.query.BlockchainQueries) Collection(java.util.Collection) Set(java.util.Set) P2PNetwork(org.hyperledger.besu.ethereum.p2p.network.P2PNetwork) EthPeers(org.hyperledger.besu.ethereum.eth.manager.EthPeers) Optional(java.util.Optional) Capability(org.hyperledger.besu.ethereum.p2p.rlpx.wire.Capability) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) ChainResources(org.hyperledger.besu.testutil.BlockTestUtil.ChainResources) HashMap(java.util.HashMap) NoOpMetricsSystem(org.hyperledger.besu.metrics.noop.NoOpMetricsSystem) EthProtocol(org.hyperledger.besu.ethereum.eth.EthProtocol) HashSet(java.util.HashSet) FilterManager(org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterManager) HealthService(org.hyperledger.besu.ethereum.api.jsonrpc.health.HealthService) JsonRpcMethodsFactory(org.hyperledger.besu.ethereum.api.jsonrpc.methods.JsonRpcMethodsFactory) TransactionInvalidReason(org.hyperledger.besu.ethereum.transaction.TransactionInvalidReason) Before(org.junit.Before) TransactionPool(org.hyperledger.besu.ethereum.eth.transactions.TransactionPool) Vertx(io.vertx.core.Vertx) StubGenesisConfigOptions(org.hyperledger.besu.config.StubGenesisConfigOptions) Mockito.when(org.mockito.Mockito.when) MetricsConfiguration(org.hyperledger.besu.metrics.prometheus.MetricsConfiguration) OkHttpClient(okhttp3.OkHttpClient) ProtocolContext(org.hyperledger.besu.ethereum.ProtocolContext) FilterIdGenerator(org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterIdGenerator) Transaction(org.hyperledger.besu.ethereum.core.Transaction) JsonRpcMethod(org.hyperledger.besu.ethereum.api.jsonrpc.internal.methods.JsonRpcMethod) PrivacyParameters(org.hyperledger.besu.ethereum.core.PrivacyParameters) NatService(org.hyperledger.besu.nat.NatService) TemporaryFolder(org.junit.rules.TemporaryFolder) Synchronizer(org.hyperledger.besu.ethereum.core.Synchronizer) TransactionPool(org.hyperledger.besu.ethereum.eth.transactions.TransactionPool) Capability(org.hyperledger.besu.ethereum.p2p.rlpx.wire.Capability) WebSocketConfiguration(org.hyperledger.besu.ethereum.api.jsonrpc.websocket.WebSocketConfiguration) NatService(org.hyperledger.besu.nat.NatService) P2PNetwork(org.hyperledger.besu.ethereum.p2p.network.P2PNetwork) FilterManagerBuilder(org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterManagerBuilder) EthPeers(org.hyperledger.besu.ethereum.eth.manager.EthPeers) PrivacyParameters(org.hyperledger.besu.ethereum.core.PrivacyParameters) JsonRpcMethodsFactory(org.hyperledger.besu.ethereum.api.jsonrpc.methods.JsonRpcMethodsFactory) Transaction(org.hyperledger.besu.ethereum.core.Transaction) MetricsConfiguration(org.hyperledger.besu.metrics.prometheus.MetricsConfiguration) BlockchainQueries(org.hyperledger.besu.ethereum.api.query.BlockchainQueries) FilterRepository(org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterRepository) FilterIdGenerator(org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterIdGenerator) NoOpMetricsSystem(org.hyperledger.besu.metrics.noop.NoOpMetricsSystem) ProtocolContext(org.hyperledger.besu.ethereum.ProtocolContext) PoWMiningCoordinator(org.hyperledger.besu.ethereum.blockcreation.PoWMiningCoordinator) GasPricePendingTransactionsSorter(org.hyperledger.besu.ethereum.eth.transactions.sorter.GasPricePendingTransactionsSorter) StubGenesisConfigOptions(org.hyperledger.besu.config.StubGenesisConfigOptions) HashSet(java.util.HashSet)

Aggregations

Preconditions.checkArgument (com.google.common.base.Preconditions.checkArgument)1 Vertx (io.vertx.core.Vertx)1 BigInteger (java.math.BigInteger)1 URL (java.net.URL)1 Arrays (java.util.Arrays)1 Collection (java.util.Collection)1 HashMap (java.util.HashMap)1 HashSet (java.util.HashSet)1 Map (java.util.Map)1 Optional (java.util.Optional)1 Set (java.util.Set)1 MediaType (okhttp3.MediaType)1 OkHttpClient (okhttp3.OkHttpClient)1 StubGenesisConfigOptions (org.hyperledger.besu.config.StubGenesisConfigOptions)1 ProtocolContext (org.hyperledger.besu.ethereum.ProtocolContext)1 HealthService (org.hyperledger.besu.ethereum.api.jsonrpc.health.HealthService)1 FilterIdGenerator (org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterIdGenerator)1 FilterManager (org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterManager)1 FilterManagerBuilder (org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterManagerBuilder)1 FilterRepository (org.hyperledger.besu.ethereum.api.jsonrpc.internal.filter.FilterRepository)1