@@ -41,35 +41,23 @@ class RemoteClientImpl final : public api::Service {
4141 RemoteClientImpl (const rpc::ChannelFactory& create_channel,
4242 agrpc::GrpcContext& grpc_context,
4343 api::StateCache* state_cache,
44- chain::BlockProvider block_provider,
45- chain::BlockNumberFromTxnHashProvider block_number_from_txn_hash_provider,
46- chain::BlockNumberFromBlockHashProvider block_number_from_block_hash_provider,
47- chain::BlockHashFromBlockNumberProvider block_hash_from_number_provider,
44+ chain::Providers providers,
4845 rpc::DisconnectHook on_disconnect)
4946 : channel_{create_channel ()},
5047 stub_{proto::KV::NewStub (channel_)},
5148 grpc_context_{grpc_context},
5249 state_cache_{state_cache},
53- block_provider_{std::move (block_provider)},
54- block_number_from_txn_hash_provider_{std::move (block_number_from_txn_hash_provider)},
55- block_number_from_block_hash_provider_{std::move (block_number_from_block_hash_provider)},
56- block_hash_from_number_provider_{std::move (block_hash_from_number_provider)},
50+ providers_{std::move (providers)},
5751 on_disconnect_{std::move (on_disconnect)} {}
5852 RemoteClientImpl (std::unique_ptr<Stub> stub,
5953 agrpc::GrpcContext& grpc_context,
6054 api::StateCache* state_cache,
61- chain::BlockProvider block_provider,
62- chain::BlockNumberFromTxnHashProvider block_number_from_txn_hash_provider,
63- chain::BlockNumberFromBlockHashProvider block_number_from_block_hash_provider,
64- chain::BlockHashFromBlockNumberProvider block_hash_from_number_provider,
55+ chain::Providers providers,
6556 rpc::DisconnectHook on_disconnect)
6657 : stub_{std::move (stub)},
6758 grpc_context_{grpc_context},
6859 state_cache_{state_cache},
69- block_provider_{std::move (block_provider)},
70- block_number_from_txn_hash_provider_{std::move (block_number_from_txn_hash_provider)},
71- block_number_from_block_hash_provider_{std::move (block_number_from_block_hash_provider)},
72- block_hash_from_number_provider_{std::move (block_hash_from_number_provider)},
60+ providers_{std::move (providers)},
7361 on_disconnect_{std::move (on_disconnect)} {}
7462
7563 ~RemoteClientImpl () override = default ;
@@ -87,10 +75,7 @@ class RemoteClientImpl final : public api::Service {
8775 auto tx = std::make_unique<RemoteTransaction>(*stub_,
8876 grpc_context_,
8977 state_cache_,
90- block_provider_,
91- block_number_from_txn_hash_provider_,
92- block_number_from_block_hash_provider_,
93- block_hash_from_number_provider_);
78+ providers_);
9479 co_await tx->open ();
9580 co_return tx;
9681 }
@@ -159,10 +144,7 @@ class RemoteClientImpl final : public api::Service {
159144 std::unique_ptr<Stub> stub_;
160145 agrpc::GrpcContext& grpc_context_;
161146 api::StateCache* state_cache_;
162- chain::BlockProvider block_provider_;
163- chain::BlockNumberFromTxnHashProvider block_number_from_txn_hash_provider_;
164- chain::BlockNumberFromBlockHashProvider block_number_from_block_hash_provider_;
165- chain::BlockHashFromBlockNumberProvider block_hash_from_number_provider_;
147+ chain::Providers providers_;
166148 rpc::DisconnectHook on_disconnect_;
167149 std::chrono::milliseconds min_backoff_timeout_{rpc::kDefaultMinBackoffReconnectTimeout };
168150 std::chrono::milliseconds max_backoff_timeout_{rpc::kDefaultMaxBackoffReconnectTimeout };
@@ -171,35 +153,23 @@ class RemoteClientImpl final : public api::Service {
171153RemoteClient::RemoteClient (const rpc::ChannelFactory& create_channel,
172154 agrpc::GrpcContext& grpc_context,
173155 api::StateCache* state_cache,
174- chain::BlockProvider block_provider,
175- chain::BlockNumberFromTxnHashProvider block_number_from_txn_hash_provider,
176- chain::BlockNumberFromBlockHashProvider block_number_from_block_hash_provider,
177- chain::BlockHashFromBlockNumberProvider block_hash_from_number_provider,
156+ chain::Providers providers,
178157 rpc::DisconnectHook on_disconnect)
179158 : p_impl_{std::make_shared<RemoteClientImpl>(create_channel,
180159 grpc_context,
181160 state_cache,
182- std::move (block_provider),
183- std::move (block_number_from_txn_hash_provider),
184- std::move (block_number_from_block_hash_provider),
185- std::move (block_hash_from_number_provider),
161+ std::move (providers),
186162 std::move (on_disconnect))} {}
187163
188164RemoteClient::RemoteClient (std::unique_ptr<Stub> stub,
189165 agrpc::GrpcContext& grpc_context,
190166 api::StateCache* state_cache,
191- chain::BlockProvider block_provider,
192- chain::BlockNumberFromTxnHashProvider block_number_from_txn_hash_provider,
193- chain::BlockNumberFromBlockHashProvider block_number_from_block_hash_provider,
194- chain::BlockHashFromBlockNumberProvider block_hash_from_number_provider,
167+ chain::Providers providers,
195168 rpc::DisconnectHook on_disconnect)
196169 : p_impl_{std::make_shared<RemoteClientImpl>(std::move (stub),
197170 grpc_context,
198171 state_cache,
199- std::move (block_provider),
200- std::move (block_number_from_txn_hash_provider),
201- std::move (block_number_from_block_hash_provider),
202- std::move (block_hash_from_number_provider),
172+ std::move (providers),
203173 std::move (on_disconnect))} {}
204174
205175// Must be here (not in header) because RemoteClientImpl size is necessary for std::unique_ptr in PIMPL idiom
0 commit comments