check & add vaa to archive on all submit_vaa calls
Change-Id: Ia0b1a5e9ee8f6467dff34d9cd92183cba49bccf5
This commit is contained in:
parent
d1e001c453
commit
2d9ae8e860
|
@ -17,7 +17,7 @@ use cw20_base::msg::QueryMsg as TokenQuery;
|
||||||
use wormhole::msg::HandleMsg as WormholeHandleMsg;
|
use wormhole::msg::HandleMsg as WormholeHandleMsg;
|
||||||
use wormhole::msg::QueryMsg as WormholeQueryMsg;
|
use wormhole::msg::QueryMsg as WormholeQueryMsg;
|
||||||
|
|
||||||
use wormhole::state::{GovernancePacket, ParsedVAA};
|
use wormhole::state::{GovernancePacket, ParsedVAA, vaa_archive_add, vaa_archive_check};
|
||||||
|
|
||||||
use cw20::TokenInfoResponse;
|
use cw20::TokenInfoResponse;
|
||||||
|
|
||||||
|
@ -246,6 +246,11 @@ fn submit_vaa<S: Storage, A: Api, Q: Querier>(
|
||||||
return handle_governance_payload(deps, env, &data);
|
return handle_governance_payload(deps, env, &data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if vaa_archive_check(&deps.storage, vaa.hash.as_slice()) {
|
||||||
|
return ContractError::VaaAlreadyExecuted.std_err();
|
||||||
|
}
|
||||||
|
vaa_archive_add(&mut deps.storage, vaa.hash.as_slice())?;
|
||||||
|
|
||||||
let message = TokenBridgeMessage::deserialize(&data)?;
|
let message = TokenBridgeMessage::deserialize(&data)?;
|
||||||
|
|
||||||
let result = match message.action {
|
let result = match message.action {
|
||||||
|
|
|
@ -11,8 +11,8 @@ use crate::msg::{
|
||||||
};
|
};
|
||||||
use crate::state::{
|
use crate::state::{
|
||||||
config, config_read, guardian_set_get, guardian_set_set, sequence_read, sequence_set,
|
config, config_read, guardian_set_get, guardian_set_set, sequence_read, sequence_set,
|
||||||
vaa_archive_check, ConfigInfo, GovernancePacket, GuardianAddress, GuardianSetInfo,
|
vaa_archive_add, vaa_archive_check, ConfigInfo, GovernancePacket, GuardianAddress,
|
||||||
GuardianSetUpgrade, ParsedVAA, SetFee, TransferFee,
|
GuardianSetInfo, GuardianSetUpgrade, ParsedVAA, SetFee, TransferFee,
|
||||||
};
|
};
|
||||||
|
|
||||||
use k256::ecdsa::recoverable::Id as RecoverableId;
|
use k256::ecdsa::recoverable::Id as RecoverableId;
|
||||||
|
@ -79,6 +79,8 @@ fn handle_submit_vaa<S: Storage, A: Api, Q: Querier>(
|
||||||
let state = config_read(&deps.storage).load()?;
|
let state = config_read(&deps.storage).load()?;
|
||||||
|
|
||||||
let vaa = parse_and_verify_vaa(&deps.storage, data, env.block.time)?;
|
let vaa = parse_and_verify_vaa(&deps.storage, data, env.block.time)?;
|
||||||
|
vaa_archive_add(&mut deps.storage, vaa.hash.as_slice())?;
|
||||||
|
|
||||||
if state.gov_chain == vaa.emitter_chain && state.gov_address == vaa.emitter_address {
|
if state.gov_chain == vaa.emitter_chain && state.gov_address == vaa.emitter_address {
|
||||||
if state.guardian_set_index != vaa.guardian_set_index {
|
if state.guardian_set_index != vaa.guardian_set_index {
|
||||||
return Err(StdError::generic_err(
|
return Err(StdError::generic_err(
|
||||||
|
|
Loading…
Reference in New Issue