Skip to content

Commit cc8d302

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

File tree

1 file changed

+25
-8
lines changed

1 file changed

+25
-8
lines changed

src/traits/default_impls.rs

Lines changed: 25 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,23 @@ impl DefaultCellCollector {
328328
}
329329
}
330330

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

489-
struct DefaultTxDepProviderInner {
490-
rpc_client: CkbRpcAsyncClient,
506+
pub struct DefaultTxDepProviderInner {
507+
pub rpc_client: CkbRpcAsyncClient,
491508
tx_cache: LruCache<Byte32, TransactionView>,
492509
cell_cache: LruCache<OutPoint, (CellOutput, Bytes)>,
493510
header_cache: LruCache<Byte32, HeaderView>,
@@ -497,7 +514,7 @@ struct DefaultTxDepProviderInner {
497514
/// A transaction dependency provider use ckb rpc client as backend, and with LRU cache supported
498515
pub struct DefaultTransactionDependencyProvider {
499516
// since we will mainly deal with LruCache, so use Mutex here
500-
inner: Arc<Mutex<DefaultTxDepProviderInner>>,
517+
pub inner: Arc<Mutex<DefaultTxDepProviderInner>>,
501518
}
502519

503520
impl Clone for DefaultTransactionDependencyProvider {

0 commit comments

Comments
 (0)