cosmwasm: Add is_vaa_redeemed query to token bridge

This commit is contained in:
Csongor Kiss 2022-08-14 19:19:58 +01:00 committed by Csongor Kiss
parent 1d05da49e6
commit d10072a33e
2 changed files with 16 additions and 0 deletions

View File

@ -77,6 +77,7 @@ use crate::{
ExecuteMsg,
ExternalIdResponse,
InstantiateMsg,
IsVaaRedeemedResponse,
MigrateMsg,
QueryMsg,
TransferInfoResponse,
@ -1456,6 +1457,7 @@ pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> StdResult<Binary> {
}
QueryMsg::TransferInfo { vaa } => to_binary(&query_transfer_info(deps, env, &vaa)?),
QueryMsg::ExternalId { external_id } => to_binary(&query_external_id(deps, external_id)?),
QueryMsg::IsVaaRedeemed { vaa } => to_binary(&query_is_vaa_redeemed(deps, env, &vaa)?),
}
}
@ -1526,6 +1528,13 @@ fn query_transfer_info(deps: Deps, env: Env, vaa: &Binary) -> StdResult<Transfer
}
}
fn query_is_vaa_redeemed(deps: Deps, _env: Env, vaa: &Binary) -> StdResult<IsVaaRedeemedResponse> {
let vaa = ParsedVAA::deserialize(vaa)?;
Ok(IsVaaRedeemedResponse {
is_redeemed: vaa_archive_check(deps.storage, vaa.hash.as_slice()),
})
}
fn is_governance_emitter(cfg: &ConfigInfo, emitter_chain: u16, emitter_address: &[u8]) -> bool {
cfg.gov_chain == emitter_chain && cfg.gov_address == emitter_address
}

View File

@ -87,6 +87,7 @@ pub enum QueryMsg {
WrappedRegistry { chain: u16, address: Binary },
TransferInfo { vaa: Binary },
ExternalId { external_id: Binary },
IsVaaRedeemed { vaa: Binary },
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
@ -112,3 +113,9 @@ pub struct TransferInfoResponse {
pub struct ExternalIdResponse {
pub token_id: TokenId,
}
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub struct IsVaaRedeemedResponse {
pub is_redeemed: bool,
}