@@ -543,7 +543,7 @@ impl PythReceiver {
543
543
. map_err ( |_| PythReceiverError :: InvalidWormholeMessage ) ?;
544
544
545
545
let vm = Vaa :: read ( & mut Vec :: from ( data. clone ( ) ) . as_slice ( ) )
546
- . map_err ( |_| PythReceiverError :: VaaVerificationFailed ) ?;
546
+ . map_err ( |_| PythReceiverError :: InvalidVaa ) ?;
547
547
548
548
verify_governance_vm ( self , vm. clone ( ) ) ?;
549
549
@@ -554,7 +554,7 @@ impl PythReceiver {
554
554
555
555
let wormhole_id = wormhole
556
556
. chain_id ( chain_id_config)
557
- . map_err ( |_| PythReceiverError :: InvalidWormholeMessage ) ?;
557
+ . map_err ( |_| PythReceiverError :: WormholeUninitialized ) ?;
558
558
559
559
if instruction. target_chain_id != 0 && instruction. target_chain_id != wormhole_id {
560
560
return Err ( PythReceiverError :: InvalidGovernanceTarget ) ;
@@ -618,7 +618,7 @@ impl PythReceiver {
618
618
}
619
619
620
620
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) ) ) ;
622
622
let old_fee = self . single_update_fee_in_wei . get ( ) ;
623
623
624
624
self . single_update_fee_in_wei . set ( new_fee) ;
@@ -649,9 +649,7 @@ impl PythReceiver {
649
649
let config = Call :: new ( ) ;
650
650
wormhole
651
651
. 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 ) ?;
655
653
656
654
let vm = Vaa :: read ( & mut data. as_slice ( ) )
657
655
. map_err ( |_| PythReceiverError :: VaaVerificationFailed ) ?;
@@ -723,7 +721,7 @@ impl PythReceiver {
723
721
}
724
722
725
723
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 ( ) ;
727
725
728
726
self . governance_data_source_chain_id
729
727
. set ( U16 :: from ( claim_vm. body . emitter_chain ) ) ;
@@ -744,7 +742,7 @@ impl PythReceiver {
744
742
self . vm ( ) ,
745
743
GovernanceDataSourceSet {
746
744
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 ,
748
746
new_chain_id : claim_vm. body . emitter_chain ,
749
747
new_emitter_address : FixedBytes :: from ( emitter_bytes) ,
750
748
initial_sequence : last_executed_governance_sequence,
@@ -755,7 +753,7 @@ impl PythReceiver {
755
753
}
756
754
757
755
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) ) ) ;
759
757
let old_fee = self . transaction_fee_in_wei . get ( ) ;
760
758
761
759
self . transaction_fee_in_wei . set ( new_fee) ;
@@ -769,7 +767,8 @@ impl PythReceiver {
769
767
expo : u64 ,
770
768
target_address : Address ,
771
769
) -> 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) ) ) ;
773
772
let current_balance = self . vm ( ) . balance ( self . vm ( ) . contract_address ( ) ) ;
774
773
775
774
if current_balance < fee_to_withdraw {
0 commit comments