use mega_system_contracts::alloy_primitives::keccak256;
macro_rules! assert_code_hashes {
( $( ($code:path, $code_hash:path) ),+ $(,)? ) => {{
$(
assert_eq!(
keccak256($code.as_ref()),
$code_hash,
concat!(
"self-consistency: keccak256(",
stringify!($code),
") != ",
stringify!($code_hash)
)
);
)+
}};
}
#[test]
fn test_oracle_constants_are_self_consistent() {
use mega_system_contracts::oracle::*;
assert_code_hashes!(
(LATEST_CODE, LATEST_CODE_HASH),
(V1_0_0_CODE, V1_0_0_CODE_HASH),
(V1_1_0_CODE, V1_1_0_CODE_HASH),
(V2_0_0_CODE, V2_0_0_CODE_HASH),
);
}
#[test]
fn test_keyless_deploy_constants_are_self_consistent() {
use mega_system_contracts::keyless_deploy::*;
assert_code_hashes!((LATEST_CODE, LATEST_CODE_HASH), (V1_0_0_CODE, V1_0_0_CODE_HASH));
}
#[test]
fn test_access_control_constants_are_self_consistent() {
use mega_system_contracts::access_control::*;
assert_code_hashes!((LATEST_CODE, LATEST_CODE_HASH), (V1_0_0_CODE, V1_0_0_CODE_HASH));
}
#[test]
fn test_limit_control_constants_are_self_consistent() {
use mega_system_contracts::limit_control::*;
assert_code_hashes!((LATEST_CODE, LATEST_CODE_HASH), (V1_0_0_CODE, V1_0_0_CODE_HASH));
}
#[test]
fn test_sequencer_registry_constants_are_self_consistent() {
use mega_system_contracts::sequencer_registry::*;
assert_code_hashes!((LATEST_CODE, LATEST_CODE_HASH), (V1_0_0_CODE, V1_0_0_CODE_HASH));
}