浏览代码

Set initial sequence number when governance data source is changed

Tom Pointon 3 年之前
父节点
当前提交
67206f0fc0
共有 1 个文件被更改,包括 6 次插入2 次删除
  1. 6 2
      aptos/contracts/sources/governance/set_governance_data_source.move

+ 6 - 2
aptos/contracts/sources/governance/set_governance_data_source.move

@@ -8,21 +8,25 @@ module pyth::set_governance_data_source {
     struct SetGovernanceDataSource {
         emitter_chain_id: u64,
         emitter_address: ExternalAddress,
+        initial_sequence: u64,
     }
 
     public fun execute(payload: vector<u8>) {
-        let SetGovernanceDataSource { emitter_chain_id, emitter_address } = from_byte_vec(payload);
+        let SetGovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence } = from_byte_vec(payload);
         state::set_governance_data_source(data_source::new(emitter_chain_id, emitter_address));
+        state::set_last_executed_governance_sequence(initial_sequence);
     }
 
     fun from_byte_vec(bytes: vector<u8>): SetGovernanceDataSource {
         let cursor = cursor::init(bytes);
         let emitter_chain_id = deserialize::deserialize_u16(&mut cursor);
         let emitter_address = external_address::from_bytes(deserialize::deserialize_vector(&mut cursor, 32));
+        let initial_sequence = deserialize::deserialize_u64(&mut cursor);
         cursor::destroy_empty(cursor);
         SetGovernanceDataSource {
             emitter_chain_id,
-            emitter_address
+            emitter_address,
+            initial_sequence
         }
     }
 }