@@ -1618,33 +1618,33 @@ impl Indexer for PhotonIndexer {
16181618 let result: Result < Response < QueueElementsResult > , IndexerError > = match result {
16191619 Ok ( api_response) => match api_response. result {
16201620 Some ( api_result) => {
1621- println ! ( "get_queue_elements response {:?}" , api_result) ;
16221621 if api_result. context . slot < config. slot {
16231622 return Err ( IndexerError :: IndexerNotSyncedToSlot ) ;
16241623 }
16251624
16261625 // Parse output queue elements
1627- let output_queue_elements =
1628- api_result. output_queue_elements . map ( |elements| {
1626+ let output_queue_elements = api_result
1627+ . output_queue_elements
1628+ . map ( |elements| {
16291629 elements
16301630 . iter ( )
1631- . map ( |x| {
1632- let proof = x
1631+ . map ( |x| -> Result < _ , IndexerError > {
1632+ let proof: Vec < Hash > = x
16331633 . proof
16341634 . iter ( )
1635- . map ( |x | Hash :: from_base58 ( x ) . unwrap ( ) )
1636- . collect ( ) ;
1637- let root = Hash :: from_base58 ( & x. root ) . unwrap ( ) ;
1638- let leaf = Hash :: from_base58 ( & x. leaf ) . unwrap ( ) ;
1639- let merkle_tree = Hash :: from_base58 ( & x. tree ) . unwrap ( ) ;
1635+ . map ( |p | Hash :: from_base58 ( p ) )
1636+ . collect :: < Result < Vec < _ > , _ > > ( ) ? ;
1637+ let root = Hash :: from_base58 ( & x. root ) ? ;
1638+ let leaf = Hash :: from_base58 ( & x. leaf ) ? ;
1639+ let merkle_tree = Hash :: from_base58 ( & x. tree ) ? ;
16401640 let tx_hash = x
16411641 . tx_hash
16421642 . as_ref ( )
1643- . map ( |x | Hash :: from_base58 ( x ) . unwrap ( ) ) ;
1644- let account_hash =
1645- Hash :: from_base58 ( & x. account_hash ) . unwrap ( ) ;
1643+ . map ( |h | Hash :: from_base58 ( h ) )
1644+ . transpose ( ) ? ;
1645+ let account_hash = Hash :: from_base58 ( & x. account_hash ) ? ;
16461646
1647- MerkleProofWithContext {
1647+ Ok ( MerkleProofWithContext {
16481648 proof,
16491649 root,
16501650 leaf_index : x. leaf_index ,
@@ -1653,33 +1653,35 @@ impl Indexer for PhotonIndexer {
16531653 root_seq : x. root_seq ,
16541654 tx_hash,
16551655 account_hash,
1656- }
1656+ } )
16571657 } )
1658- . collect ( )
1659- } ) ;
1658+ . collect :: < Result < Vec < _ > , _ > > ( )
1659+ } )
1660+ . transpose ( ) ?;
16601661
16611662 // Parse input queue elements
1662- let input_queue_elements =
1663- api_result. input_queue_elements . map ( |elements| {
1663+ let input_queue_elements = api_result
1664+ . input_queue_elements
1665+ . map ( |elements| {
16641666 elements
16651667 . iter ( )
1666- . map ( |x| {
1667- let proof = x
1668+ . map ( |x| -> Result < _ , IndexerError > {
1669+ let proof: Vec < Hash > = x
16681670 . proof
16691671 . iter ( )
1670- . map ( |x | Hash :: from_base58 ( x ) . unwrap ( ) )
1671- . collect ( ) ;
1672- let root = Hash :: from_base58 ( & x. root ) . unwrap ( ) ;
1673- let leaf = Hash :: from_base58 ( & x. leaf ) . unwrap ( ) ;
1674- let merkle_tree = Hash :: from_base58 ( & x. tree ) . unwrap ( ) ;
1672+ . map ( |p | Hash :: from_base58 ( p ) )
1673+ . collect :: < Result < Vec < _ > , _ > > ( ) ? ;
1674+ let root = Hash :: from_base58 ( & x. root ) ? ;
1675+ let leaf = Hash :: from_base58 ( & x. leaf ) ? ;
1676+ let merkle_tree = Hash :: from_base58 ( & x. tree ) ? ;
16751677 let tx_hash = x
16761678 . tx_hash
16771679 . as_ref ( )
1678- . map ( |x | Hash :: from_base58 ( x ) . unwrap ( ) ) ;
1679- let account_hash =
1680- Hash :: from_base58 ( & x. account_hash ) . unwrap ( ) ;
1680+ . map ( |h | Hash :: from_base58 ( h ) )
1681+ . transpose ( ) ? ;
1682+ let account_hash = Hash :: from_base58 ( & x. account_hash ) ? ;
16811683
1682- MerkleProofWithContext {
1684+ Ok ( MerkleProofWithContext {
16831685 proof,
16841686 root,
16851687 leaf_index : x. leaf_index ,
@@ -1688,10 +1690,11 @@ impl Indexer for PhotonIndexer {
16881690 root_seq : x. root_seq ,
16891691 tx_hash,
16901692 account_hash,
1691- }
1693+ } )
16921694 } )
1693- . collect ( )
1694- } ) ;
1695+ . collect :: < Result < Vec < _ > , _ > > ( )
1696+ } )
1697+ . transpose ( ) ?;
16951698
16961699 Ok ( Response {
16971700 context : Context {
0 commit comments