From 33ee6c561881befc72bf791b68b41a2644739e67 Mon Sep 17 00:00:00 2001
From: feltroid Prime <96737978+feltroidprime@users.noreply.github.com>
Date: Mon, 12 Aug 2024 22:52:37 +0200
Subject: [PATCH] Add more msm calldata options (#149)

---
 .../tests_and_calldata_generators/msm.py         | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/tools/starknet/tests_and_calldata_generators/msm.py b/tools/starknet/tests_and_calldata_generators/msm.py
index 96c8ea7f..bcb7a988 100644
--- a/tools/starknet/tests_and_calldata_generators/msm.py
+++ b/tools/starknet/tests_and_calldata_generators/msm.py
@@ -280,7 +280,10 @@ def to_cairo_1_test(self):
         return code
 
     def serialize_to_calldata(
-        self, include_digits_decomposition=True, include_points_and_scalars=True
+        self,
+        include_digits_decomposition=True,
+        include_points_and_scalars=True,
+        serialize_as_pure_felt252_array=False,
     ) -> list[int]:
         inputs = self._get_input_structs()
         option = (
@@ -306,7 +309,10 @@ def serialize_to_calldata(
         if include_points_and_scalars:
             call_data.append(self.curve_id.value)
 
-        return [len(call_data)] + call_data
+        if serialize_as_pure_felt252_array:
+            return [len(call_data)] + call_data
+        else:
+            return call_data
 
 
 if __name__ == "__main__":
@@ -319,6 +325,10 @@ def serialize_to_calldata(
         points=[G1Point.gen_random_point(c) for _ in range(1)],
         scalars=[random.randint(0, order) for _ in range(1)],
     )
-    cd = msm.serialize_to_calldata(True)
+    cd = msm.serialize_to_calldata(
+        include_digits_decomposition=True,
+        include_points_and_scalars=True,
+        serialize_as_pure_felt252_array=False,
+    )
     print(cd)
     print(len(cd))