@@ -1351,56 +1351,56 @@ fn parse_log_triggers(
13511351 log_filter : Option < EthereumLogFilter > ,
13521352 block : & EthereumBlock ,
13531353) -> Vec < EthereumTrigger > {
1354- if log_filter. is_none ( ) {
1355- return vec ! [ ] ;
1356- }
1357- let log_filter = log_filter. unwrap ( ) ;
1358- block
1359- . transaction_receipts
1360- . iter ( )
1361- . flat_map ( move |receipt| {
1362- let log_filter = log_filter. clone ( ) ;
1363- receipt
1364- . logs
1365- . iter ( )
1366- . filter ( move |log| log_filter. matches ( log) )
1367- . map ( move |log| EthereumTrigger :: Log ( log. clone ( ) ) )
1368- } )
1369- . collect ( )
1354+ log_filter. map_or ( vec ! [ ] , |log_filter| {
1355+ block
1356+ . transaction_receipts
1357+ . iter ( )
1358+ . flat_map ( move |receipt| {
1359+ let log_filter = log_filter. clone ( ) ;
1360+ receipt
1361+ . logs
1362+ . iter ( )
1363+ . filter ( move |log| log_filter. matches ( log) )
1364+ . map ( move |log| EthereumTrigger :: Log ( log. clone ( ) ) )
1365+ } )
1366+ . collect ( )
1367+ } )
13701368}
13711369
13721370fn parse_call_triggers (
13731371 call_filter : Option < EthereumCallFilter > ,
13741372 block : & EthereumBlockWithCalls ,
13751373) -> Vec < EthereumTrigger > {
1376- if call_filter. is_none ( ) || block. calls . is_none ( ) {
1377- return vec ! [ ] ;
1378- }
1379- let call_filter = call_filter. unwrap ( ) ;
1380- let calls = & block. calls . clone ( ) . unwrap ( ) ;
1381- calls
1382- . iter ( )
1383- . filter ( move |call| call_filter. matches ( call) )
1384- . map ( move |call| EthereumTrigger :: Call ( call. clone ( ) ) )
1385- . collect ( )
1374+ call_filter. map_or ( vec ! [ ] , move |call_filter| {
1375+ block. calls . as_ref ( ) . map_or ( vec ! [ ] , |calls| {
1376+ calls
1377+ . iter ( )
1378+ . filter ( move |call| call_filter. matches ( call) )
1379+ . map ( move |call| EthereumTrigger :: Call ( call. clone ( ) ) )
1380+ . collect ( )
1381+ } )
1382+ } )
13861383}
13871384
13881385fn parse_block_triggers (
13891386 block_filter : Option < EthereumBlockFilter > ,
13901387 block : & EthereumBlockWithCalls ,
13911388) -> Vec < EthereumTrigger > {
1392- if block_filter. is_none ( ) {
1393- return vec ! [ ] ;
1394- }
1395- let call_filter = EthereumCallFilter :: from ( block_filter. clone ( ) . unwrap ( ) ) ;
1396- let calls = & block. calls . clone ( ) . unwrap ( ) ;
1397- let mut triggers = calls
1398- . iter ( )
1399- . filter ( move |call| call_filter. matches ( call) )
1400- . map ( move |call| EthereumTrigger :: Block ( EthereumBlockTriggerType :: WithCallTo ( call. to ) ) )
1401- . collect :: < Vec < EthereumTrigger > > ( ) ;
1402- if block_filter. unwrap ( ) . trigger_every_block {
1403- triggers. push ( EthereumTrigger :: Block ( EthereumBlockTriggerType :: Every ) ) ;
1404- }
1405- triggers
1389+ block_filter. map_or ( vec ! [ ] , move |block_filter| {
1390+ let trigger_every_block = block_filter. trigger_every_block ;
1391+ let call_filter = EthereumCallFilter :: from ( block_filter) ;
1392+ let mut triggers = block. calls . as_ref ( ) . map_or ( vec ! [ ] , |calls| {
1393+ calls
1394+ . iter ( )
1395+ . filter ( move |call| call_filter. matches ( call) )
1396+ . map ( move |call| {
1397+ EthereumTrigger :: Block ( EthereumBlockTriggerType :: WithCallTo ( call. to ) )
1398+ } )
1399+ . collect :: < Vec < EthereumTrigger > > ( )
1400+ } ) ;
1401+ if trigger_every_block {
1402+ triggers. push ( EthereumTrigger :: Block ( EthereumBlockTriggerType :: Every ) ) ;
1403+ }
1404+ triggers
1405+ } )
14061406}
0 commit comments