|
52 | 52 | event FeeWithdrawn(address indexed target_address, uint256 fee_amount);
|
53 | 53 | event ValidPeriodSet(uint256 indexed old_valid_period, uint256 indexed new_valid_period);
|
54 | 54 | event DataSourcesSet(bytes32[] old_data_sources, bytes32[] new_data_sources);
|
| 55 | + event GovernanceDataSourceSet(uint16 old_chain_id, bytes32 old_emitter_address, uint16 new_chain_id, bytes32 new_emitter_address, uint64 initial_sequence); |
55 | 56 | }
|
56 | 57 |
|
57 | 58 | sol_interface! {
|
@@ -726,7 +727,13 @@ impl PythReceiver {
|
726 | 727 | self.last_executed_governance_sequence
|
727 | 728 | .set(U64::from(last_executed_governance_sequence));
|
728 | 729 |
|
729 |
| - // TODO: EVENT |
| 730 | + evm::log(GovernanceDataSourceSet { |
| 731 | + old_chain_id: current_index as u16, |
| 732 | + old_emitter_address: self.governance_data_source_emitter_address.get(), |
| 733 | + new_chain_id: claim_vm.body.emitter_chain, |
| 734 | + new_emitter_address: FixedBytes::from(emitter_bytes), |
| 735 | + initial_sequence: last_executed_governance_sequence, |
| 736 | + }); |
730 | 737 |
|
731 | 738 | Ok(())
|
732 | 739 | }
|
@@ -802,25 +809,34 @@ fn parse_wormhole_proof(vaa: Vaa) -> Result<MerkleRoot<Keccak160>, PythReceiverE
|
802 | 809 | }
|
803 | 810 |
|
804 | 811 | fn set_data_sources(receiver: &mut PythReceiver, data_sources: Vec<DataSource>) {
|
| 812 | + let mut old_data_sources = Vec::new(); |
805 | 813 | for i in 0..receiver.valid_data_sources.len() {
|
806 | 814 | if let Some(storage_data_source) = receiver.valid_data_sources.get(i) {
|
807 | 815 | let data_source = DataSource {
|
808 | 816 | chain_id: storage_data_source.chain_id.get(),
|
809 | 817 | emitter_address: storage_data_source.emitter_address.get(),
|
810 | 818 | };
|
| 819 | + old_data_sources.push(data_source.emitter_address); |
811 | 820 | receiver.is_valid_data_source.setter(data_source).set(false);
|
812 | 821 | }
|
813 | 822 | }
|
814 | 823 |
|
815 | 824 | receiver.valid_data_sources.erase();
|
816 | 825 |
|
| 826 | + let mut new_data_sources = Vec::new(); |
817 | 827 | for data_source in data_sources {
|
818 | 828 | let mut storage_data_source = receiver.valid_data_sources.grow();
|
819 | 829 | storage_data_source.chain_id.set(data_source.chain_id);
|
820 | 830 | storage_data_source
|
821 | 831 | .emitter_address
|
822 | 832 | .set(data_source.emitter_address);
|
823 | 833 |
|
| 834 | + new_data_sources.push(data_source.emitter_address); |
824 | 835 | receiver.is_valid_data_source.setter(data_source).set(true);
|
825 | 836 | }
|
| 837 | + |
| 838 | + evm::log(DataSourcesSet { |
| 839 | + old_data_sources, |
| 840 | + new_data_sources, |
| 841 | + }); |
826 | 842 | }
|
0 commit comments