Skip to content

Commit 7377311

Browse files
committed
Make DefaultCellCollector fields pub, add DefaultCellCollector::new_with_timeout
Signed-off-by: Eval EXEC <execvy@gmail.com>
1 parent f81f75d commit 7377311

File tree

1 file changed

+26
-8
lines changed

1 file changed

+26
-8
lines changed

src/traits/default_impls.rs

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ impl CellDepResolver for DefaultCellDepResolver {
261261

262262
/// A header_dep resolver use ckb jsonrpc client as backend
263263
pub struct DefaultHeaderDepResolver {
264-
ckb_client: CkbRpcAsyncClient,
264+
pub ckb_client: CkbRpcAsyncClient,
265265
}
266266
impl DefaultHeaderDepResolver {
267267
pub fn new(ckb_client: &str) -> DefaultHeaderDepResolver {
@@ -310,10 +310,10 @@ impl HeaderDepResolver for DefaultHeaderDepResolver {
310310
/// A cell collector use ckb-indexer as backend
311311
#[derive(Clone)]
312312
pub struct DefaultCellCollector {
313-
indexer_client: IndexerRpcAsyncClient,
314-
ckb_client: CkbRpcAsyncClient,
315-
offchain: OffchainCellCollector,
316-
acceptable_indexer_leftbehind: u64,
313+
pub indexer_client: IndexerRpcAsyncClient,
314+
pub ckb_client: CkbRpcAsyncClient,
315+
pub offchain: OffchainCellCollector,
316+
pub acceptable_indexer_leftbehind: u64,
317317
}
318318

319319
impl DefaultCellCollector {
@@ -328,6 +328,24 @@ impl DefaultCellCollector {
328328
}
329329
}
330330

331+
332+
#[cfg(not(target_arch = "wasm32"))]
333+
pub fn new_with_timeout(
334+
ckb_client: &str,
335+
timeout: std::time::Duration,
336+
) -> Result<Self, anyhow::Error> {
337+
let indexer_client =
338+
IndexerRpcAsyncClient::with_builder(ckb_client, |builder| builder.timeout(timeout))?;
339+
let ckb_client =
340+
CkbRpcAsyncClient::with_builder(ckb_client, |builder| builder.timeout(timeout))?;
341+
Ok(DefaultCellCollector {
342+
indexer_client,
343+
ckb_client,
344+
offchain: OffchainCellCollector::default(),
345+
acceptable_indexer_leftbehind: 1,
346+
})
347+
}
348+
331349
/// THe acceptable ckb-indexer leftbehind block number (default = 1)
332350
pub fn acceptable_indexer_leftbehind(&self) -> u64 {
333351
self.acceptable_indexer_leftbehind
@@ -486,8 +504,8 @@ impl CellCollector for DefaultCellCollector {
486504
}
487505
}
488506

489-
struct DefaultTxDepProviderInner {
490-
rpc_client: CkbRpcAsyncClient,
507+
pub struct DefaultTxDepProviderInner {
508+
pub rpc_client: CkbRpcAsyncClient,
491509
tx_cache: LruCache<Byte32, TransactionView>,
492510
cell_cache: LruCache<OutPoint, (CellOutput, Bytes)>,
493511
header_cache: LruCache<Byte32, HeaderView>,
@@ -497,7 +515,7 @@ struct DefaultTxDepProviderInner {
497515
/// A transaction dependency provider use ckb rpc client as backend, and with LRU cache supported
498516
pub struct DefaultTransactionDependencyProvider {
499517
// since we will mainly deal with LruCache, so use Mutex here
500-
inner: Arc<Mutex<DefaultTxDepProviderInner>>,
518+
pub inner: Arc<Mutex<DefaultTxDepProviderInner>>,
501519
}
502520

503521
impl Clone for DefaultTransactionDependencyProvider {

0 commit comments

Comments
 (0)