fn detect_keccak_metadata(bytecode_marker: BytecodeMarker, bytecode: &[u8]) -> Option<H256> {
        // For EraVM, the one option for metadata hash is keccak256 hash of the metadata.
        if bytecode_marker == BytecodeMarker::EraVm {
            // For metadata, we might have padding: it takes either 32 or 64 bytes depending
            // on whether the amount of words in the contract is odd, so we need to check
            // if there is padding.
            let bytecode_without_metadata = Self::strip_padding(bytecode, 32)?;
            let hash = H256(keccak256(bytecode_without_metadata));
            Some(hash)
        } else {
            None
        }
    }
Will try to detect keccak256 metadata hash (only for EraVM)
core/lib/types/src/contract_verification/contract_identifier.rs