1#[macro_export]
3macro_rules! validate_contract {
4 ($deps:expr, $contract_name:expr, $contract_version:expr) => {{
5 let stored_contract_name = cw2::CONTRACT.load($deps.storage)?.contract;
6 cosmwasm_std::ensure!(
7 stored_contract_name == $contract_name,
8 cosmwasm_std::StdError::generic_err("Contract name mismatch")
9 );
10
11 let version: semver::Version = $contract_version.parse()?;
12 let storage_version: semver::Version =
13 cw2::get_contract_version($deps.storage)?.version.parse()?;
14
15 cosmwasm_std::ensure!(
16 storage_version < version,
17 ContractError::MigrateInvalidVersion {
18 current_version: storage_version,
19 new_version: version,
20 }
21 );
22 }};
23}