@@ -24,7 +24,7 @@ use super::{
2424 OffchainTransactionDependencyProvider ,
2525} ;
2626use crate :: rpc:: ckb_indexer:: { Order , SearchKey , Tip } ;
27- use crate :: rpc:: { CkbRpcAsyncClient , IndexerRpcClient } ;
27+ use crate :: rpc:: { CkbRpcAsyncClient , IndexerRpcAsyncClient } ;
2828use crate :: traits:: {
2929 CellCollector , CellCollectorError , CellDepResolver , CellQueryOptions , HeaderDepResolver ,
3030 LiveCell , QueryOrder , Signer , SignerError , TransactionDependencyError ,
@@ -252,15 +252,15 @@ impl HeaderDepResolver for DefaultHeaderDepResolver {
252252/// A cell collector use ckb-indexer as backend
253253#[ derive( Clone ) ]
254254pub struct DefaultCellCollector {
255- indexer_client : IndexerRpcClient ,
255+ indexer_client : IndexerRpcAsyncClient ,
256256 ckb_client : CkbRpcAsyncClient ,
257257 offchain : OffchainCellCollector ,
258258 acceptable_indexer_leftbehind : u64 ,
259259}
260260
261261impl DefaultCellCollector {
262262 pub fn new ( ckb_client : & str ) -> DefaultCellCollector {
263- let indexer_client = IndexerRpcClient :: new ( ckb_client) ;
263+ let indexer_client = IndexerRpcAsyncClient :: new ( ckb_client) ;
264264 let ckb_client = CkbRpcAsyncClient :: new ( ckb_client) ;
265265 DefaultCellCollector {
266266 indexer_client,
@@ -280,7 +280,7 @@ impl DefaultCellCollector {
280280 }
281281
282282 /// wrapper check_ckb_chain_async future
283- pub async fn check_ckb_chain ( & mut self ) -> Result < ( ) , CellCollectorError > {
283+ pub fn check_ckb_chain ( & mut self ) -> Result < ( ) , CellCollectorError > {
284284 crate :: rpc:: block_on ( self . check_ckb_chain_async ( ) )
285285 }
286286 /// Check if ckb-indexer synced with ckb node. This will check every 50ms for 100 times (more than 5s in total, since ckb-indexer's poll interval is 2.0s).
@@ -295,6 +295,7 @@ impl DefaultCellCollector {
295295 match self
296296 . indexer_client
297297 . get_indexer_tip ( )
298+ . await
298299 . map_err ( |err| CellCollectorError :: Internal ( err. into ( ) ) ) ?
299300 {
300301 Some ( Tip { block_number, .. } ) => {
@@ -329,7 +330,6 @@ impl CellCollector for DefaultCellCollector {
329330 let max_mature_number = get_max_mature_number_async ( & self . ckb_client )
330331 . await
331332 . map_err ( |err| CellCollectorError :: Internal ( anyhow ! ( err) ) ) ?;
332-
333333 self . offchain . max_mature_number = max_mature_number;
334334 let tip_num = self
335335 . ckb_client
@@ -343,9 +343,8 @@ impl CellCollector for DefaultCellCollector {
343343 mut total_capacity,
344344 } = self . offchain . collect ( query, tip_num) ;
345345 let mut cells: Vec < _ > = cells. into_iter ( ) . map ( |c| c. 0 ) . collect ( ) ;
346-
347346 if total_capacity < query. min_total_capacity {
348- self . check_ckb_chain ( ) . await ?;
347+ self . check_ckb_chain_async ( ) . await ?;
349348 let order = match query. order {
350349 QueryOrder :: Asc => Order :: Asc ,
351350 QueryOrder :: Desc => Order :: Desc ,
@@ -363,6 +362,7 @@ impl CellCollector for DefaultCellCollector {
363362 let page = self
364363 . indexer_client
365364 . get_cells ( search_key. clone ( ) , order. clone ( ) , limit. into ( ) , last_cursor)
365+ . await
366366 . map_err ( |err| CellCollectorError :: Internal ( err. into ( ) ) ) ?;
367367 if page. objects . is_empty ( ) {
368368 break ;
0 commit comments