소스 검색

feat: use pubkey and require_keys_eq! for emitter addr check

swimricky 2 년 전
부모
커밋
c259dd34d2
1개의 변경된 파일6개의 추가작업 그리고 4개의 파일을 삭제
  1. 6 4
      target_chains/solana/programs/pyth-solana-receiver/src/lib.rs

+ 6 - 4
target_chains/solana/programs/pyth-solana-receiver/src/lib.rs

@@ -66,10 +66,12 @@ pub mod pyth_solana_receiver {
             ReceiverError::InvalidEmitterChain
         );
 
-        // TODO: expected emitter_address should come from config account that can only be modified by governance
-        if vaa.emitter_address() != &ACCUMULATOR_EMITTER_ADDRESS {
-            return err!(ReceiverError::InvalidEmitterAddress);
-        }
+        require_keys_eq!(
+            Pubkey::new_from_array(*vaa.emitter_address()),
+            // TODO: expected emitter_address should come from config account that can only be modified by governance
+            Pubkey::new_from_array(ACCUMULATOR_EMITTER_ADDRESS),
+            ReceiverError::InvalidEmitterAddress
+        );
 
         let wh_message = WormholeMessage::try_from_bytes(vaa.payload.as_slice())
             .map_err(|_| ReceiverError::InvalidWormholeMessage)?;