@@ -543,7 +543,7 @@ impl PythReceiver {
543543 . map_err ( |_| PythReceiverError :: InvalidWormholeMessage ) ?;
544544
545545 let vm = Vaa :: read ( & mut Vec :: from ( data. clone ( ) ) . as_slice ( ) )
546- . map_err ( |_| PythReceiverError :: VaaVerificationFailed ) ?;
546+ . map_err ( |_| PythReceiverError :: InvalidVaa ) ?;
547547
548548 verify_governance_vm ( self , vm. clone ( ) ) ?;
549549
@@ -554,7 +554,7 @@ impl PythReceiver {
554554
555555 let wormhole_id = wormhole
556556 . chain_id ( chain_id_config)
557- . map_err ( |_| PythReceiverError :: InvalidWormholeMessage ) ?;
557+ . map_err ( |_| PythReceiverError :: WormholeUninitialized ) ?;
558558
559559 if instruction. target_chain_id != 0 && instruction. target_chain_id != wormhole_id {
560560 return Err ( PythReceiverError :: InvalidGovernanceTarget ) ;
@@ -618,7 +618,7 @@ impl PythReceiver {
618618 }
619619
620620 fn set_fee ( & mut self , value : u64 , expo : u64 ) {
621- let new_fee = U256 :: from ( value) * U256 :: from ( 10 ) . pow ( U256 :: from ( expo) ) ;
621+ let new_fee = U256 :: from ( value) . saturating_mul ( U256 :: from ( 10 ) . pow ( U256 :: from ( expo) ) ) ;
622622 let old_fee = self . single_update_fee_in_wei . get ( ) ;
623623
624624 self . single_update_fee_in_wei . set ( new_fee) ;
@@ -649,9 +649,7 @@ impl PythReceiver {
649649 let config = Call :: new ( ) ;
650650 wormhole
651651 . parse_and_verify_vm ( config, data. clone ( ) )
652- . map_err ( |_| PythReceiverError :: InvalidGovernanceMessage ) ?;
653-
654- // if !is_valid_governance_data_source()
652+ . map_err ( |_| PythReceiverError :: InvalidVaa ) ?;
655653
656654 let vm = Vaa :: read ( & mut data. as_slice ( ) )
657655 . map_err ( |_| PythReceiverError :: VaaVerificationFailed ) ?;
@@ -723,7 +721,7 @@ impl PythReceiver {
723721 }
724722
725723 self . governance_data_source_index . set ( U32 :: from ( new_index) ) ;
726- let _old_data_source = self . governance_data_source_index . get ( ) ;
724+ let old_data_source_emitter_address = self . governance_data_source_emitter_address . get ( ) ;
727725
728726 self . governance_data_source_chain_id
729727 . set ( U16 :: from ( claim_vm. body . emitter_chain ) ) ;
@@ -744,7 +742,7 @@ impl PythReceiver {
744742 self . vm ( ) ,
745743 GovernanceDataSourceSet {
746744 old_chain_id : current_index as u16 ,
747- old_emitter_address : self . governance_data_source_emitter_address . get ( ) ,
745+ old_emitter_address : old_data_source_emitter_address ,
748746 new_chain_id : claim_vm. body . emitter_chain ,
749747 new_emitter_address : FixedBytes :: from ( emitter_bytes) ,
750748 initial_sequence : last_executed_governance_sequence,
@@ -755,7 +753,7 @@ impl PythReceiver {
755753 }
756754
757755 fn set_transaction_fee ( & mut self , value : u64 , expo : u64 ) {
758- let new_fee = U256 :: from ( value) * U256 :: from ( 10 ) . pow ( U256 :: from ( expo) ) ;
756+ let new_fee = U256 :: from ( value) . saturating_mul ( U256 :: from ( 10 ) . pow ( U256 :: from ( expo) ) ) ;
759757 let old_fee = self . transaction_fee_in_wei . get ( ) ;
760758
761759 self . transaction_fee_in_wei . set ( new_fee) ;
@@ -769,7 +767,8 @@ impl PythReceiver {
769767 expo : u64 ,
770768 target_address : Address ,
771769 ) -> Result < ( ) , PythReceiverError > {
772- let fee_to_withdraw = U256 :: from ( value) * U256 :: from ( 10 ) . pow ( U256 :: from ( expo) ) ;
770+ let fee_to_withdraw =
771+ U256 :: from ( value) . saturating_mul ( U256 :: from ( 10 ) . pow ( U256 :: from ( expo) ) ) ;
773772 let current_balance = self . vm ( ) . balance ( self . vm ( ) . contract_address ( ) ) ;
774773
775774 if current_balance < fee_to_withdraw {
0 commit comments