From c819165d5c199c42068b4a6d0e44affbc7407bc7 Mon Sep 17 00:00:00 2001 From: Hendrik Hofstadt Date: Mon, 26 Jul 2021 17:45:23 +0200 Subject: [PATCH] Port terra governance changes to token bridge Change-Id: I534b408c4539a6badf636d298b57f6d2df3c34d8 --- terra/contracts/token-bridge/src/contract.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/terra/contracts/token-bridge/src/contract.rs b/terra/contracts/token-bridge/src/contract.rs index 5fb46d5fd..9a19c6281 100644 --- a/terra/contracts/token-bridge/src/contract.rs +++ b/terra/contracts/token-bridge/src/contract.rs @@ -270,14 +270,20 @@ fn handle_governance_payload( let gov_packet = GovernancePacket::deserialize(&data)?; let module = String::from_utf8(gov_packet.module).unwrap(); - let module: String = module.chars().filter(|c| !c.is_whitespace()).collect(); + let module: String = module.chars().filter(|c| c != &'\0').collect(); - if module != "token_bridge" { + if module != "TokenBridge" { return Err(StdError::generic_err("this is not a valid module")); } + if gov_packet.chain != 0 && gov_packet.chain != CHAIN_ID { + return Err(StdError::generic_err( + "the governance VAA is for another chain", + )); + } + match gov_packet.action { - 0u8 => handle_register_chain(deps, env, &gov_packet.payload), + 1u8 => handle_register_chain(deps, env, &gov_packet.payload), _ => ContractError::InvalidVAAAction.std_err(), } }