Skip to content

Commit 554cba2

Browse files
committed
improve params format
Signed-off-by: Ignacio Hagopian <jsign.uy@gmail.com>
1 parent 4d27b5f commit 554cba2

File tree

1 file changed

+64
-45
lines changed

1 file changed

+64
-45
lines changed

tests/zkevm/test_worst_compute.py

Lines changed: 64 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,10 @@ def test_worst_modexp(
270270
0x01,
271271
3_000,
272272
[
273-
0x38D18ACB67D25C8BB9942764B62F18E17054F66A817BD4295423ADF9ED98873E,
274-
27,
275-
0x38D18ACB67D25C8BB9942764B62F18E17054F66A817BD4295423ADF9ED98873E,
276-
0x789D1DD423D25F0772D2748D60F7E4B81BB14D086EBA8E8E8EFB6DCFF8A4AE02,
273+
"38D18ACB67D25C8BB9942764B62F18E17054F66A817BD4295423ADF9ED98873E",
274+
"000000000000000000000000000000000000000000000000000000000000001B",
275+
"38D18ACB67D25C8BB9942764B62F18E17054F66A817BD4295423ADF9ED98873E",
276+
"789D1DD423D25F0772D2748D60F7E4B81BB14D086EBA8E8E8EFB6DCFF8A4AE02",
277277
],
278278
32 * 4,
279279
id="ecrecover",
@@ -282,58 +282,58 @@ def test_worst_modexp(
282282
0x06,
283283
150,
284284
[
285-
0x18B18ACFB4C2C30276DB5411368E7185B311DD124691610C5D3B74034E093DC9,
286-
0x063C909C4720840CB5134CB9F59FA749755796819658D32EFC0D288198F37266,
287-
0x07C2B7F58A84BD6145F00C9C2BC0BB1A187F20FF2C92963A88019E7C6A014EED,
288-
0x06614E20C147E940F2D70DA3F74C9A17DF361706A4485C742BD6788478FA17D7,
285+
"18B18ACFB4C2C30276DB5411368E7185B311DD124691610C5D3B74034E093DC9",
286+
"063C909C4720840CB5134CB9F59FA749755796819658D32EFC0D288198F37266",
287+
"07C2B7F58A84BD6145F00C9C2BC0BB1A187F20FF2C92963A88019E7C6A014EED",
288+
"06614E20C147E940F2D70DA3F74C9A17DF361706A4485C742BD6788478FA17D7",
289289
],
290290
32 * 4,
291-
id="bn128add",
291+
id="bn128_add",
292292
),
293293
pytest.param(
294294
0x07,
295295
6_000,
296296
[
297-
0x1A87B0584CE92F4593D161480614F2989035225609F08058CCFA3D0F940FEBE3,
298-
0x1A2F3C951F6DADCC7EE9007DFF81504B0FCD6D7CF59996EFDC33D92BF7F9F8F6,
299-
0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,
297+
"1A87B0584CE92F4593D161480614F2989035225609F08058CCFA3D0F940FEBE3",
298+
"1A2F3C951F6DADCC7EE9007DFF81504B0FCD6D7CF59996EFDC33D92BF7F9F8F6",
299+
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
300300
],
301301
32 * 4,
302-
id="bn128mul",
302+
id="bn128_mul",
303303
),
304304
pytest.param(
305305
0x08,
306306
45_000 + 2 * 34_000,
307307
[
308-
0x1C76476F4DEF4BB94541D57EBBA1193381FFA7AA76ADA664DD31C16024C43F59,
309-
0x3034DD2920F673E204FEE2811C678745FC819B55D3E9D294E45C9B03A76AEF41,
310-
0x209DD15EBFF5D46C4BD888E51A93CF99A7329636C63514396B4A452003A35BF7,
311-
0x04BF11CA01483BFA8B34B43561848D28905960114C8AC04049AF4B6315A41678,
312-
0x2BB8324AF6CFC93537A2AD1A445CFD0CA2A71ACD7AC41FADBF933C2A51BE344D,
313-
0x120A2A4CF30C1BF9845F20C6FE39E07EA2CCE61F0C9BB048165FE5E4DE877550,
314-
0x111E129F1CF1097710D41C4AC70FCDFA5BA2023C6FF1CBEAC322DE49D1B6DF7C,
315-
0x103188585E2364128FE25C70558F1560F4F9350BAF3959E603CC91486E110936,
316-
0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2,
317-
0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED,
318-
0x090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B,
319-
0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA,
308+
"1C76476F4DEF4BB94541D57EBBA1193381FFA7AA76ADA664DD31C16024C43F59",
309+
"3034DD2920F673E204FEE2811C678745FC819B55D3E9D294E45C9B03A76AEF41",
310+
"209DD15EBFF5D46C4BD888E51A93CF99A7329636C63514396B4A452003A35BF7",
311+
"04BF11CA01483BFA8B34B43561848D28905960114C8AC04049AF4B6315A41678",
312+
"2BB8324AF6CFC93537A2AD1A445CFD0CA2A71ACD7AC41FADBF933C2A51BE344D",
313+
"120A2A4CF30C1BF9845F20C6FE39E07EA2CCE61F0C9BB048165FE5E4DE877550",
314+
"111E129F1CF1097710D41C4AC70FCDFA5BA2023C6FF1CBEAC322DE49D1B6DF7C",
315+
"103188585E2364128FE25C70558F1560F4F9350BAF3959E603CC91486E110936",
316+
"198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2",
317+
"1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED",
318+
"090689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B",
319+
"12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA",
320320
],
321321
32 * 12,
322-
id="bn128pairing",
322+
id="bn128_pairing",
323323
),
324324
pytest.param(
325325
0x09,
326326
0xFFFF,
327327
[
328-
0x0000FFFF48C9BDF267E6096A3BA7CA8485AE67BB2BF894FE72F36E3CF1361D5F,
329-
0x3AF54FA5D182E6AD7F520E511F6C3E2B8C68059B6BBD41FBABD9831F79217E13,
330-
0x19CDE05B61626300000000000000000000000000000000000000000000000000,
331-
0x0000000000000000000000000000000000000000000000000000000000000000,
332-
0x0000000000000000000000000000000000000000000000000000000000000000,
333-
0x0000000000000000000000000000000000000000000000000000000000000000,
334-
0x0000000000000000000000000000000000000000000000000000000000000000,
335-
0x0000000000000000000000000000000000000000000000000000000000000000,
336-
0x0000000003000000000000000000000000000001000000000000000000000000,
328+
"0000FFFF48C9BDF267E6096A3BA7CA8485AE67BB2BF894FE72F36E3CF1361D5F",
329+
"3AF54FA5D182E6AD7F520E511F6C3E2B8C68059B6BBD41FBABD9831F79217E13",
330+
"19CDE05B61626300000000000000000000000000000000000000000000000000",
331+
"0000000000000000000000000000000000000000000000000000000000000000",
332+
"0000000000000000000000000000000000000000000000000000000000000000",
333+
"0000000000000000000000000000000000000000000000000000000000000000",
334+
"0000000000000000000000000000000000000000000000000000000000000000",
335+
"0000000000000000000000000000000000000000000000000000000000000000",
336+
"0000000003000000000000000000000000000001000000000000000000000000",
337337
],
338338
213,
339339
id="blake2f",
@@ -342,16 +342,26 @@ def test_worst_modexp(
342342
0x0A,
343343
50_000,
344344
[
345-
0x01E798154708FE7789429634053CBF9F99B619F9F084048927333FCE637F549B,
346-
0x564C0A11A0F704F4FC3E8ACFE0F8245F0AD1347B378FBF96E206DA11A5D36306,
347-
0x24D25032E67A7E6A4910DF5834B8FE70E6BCFEEAC0352434196BDF4B2485D5A1,
348-
0x8F59A8D2A1A625A17F3FEA0FE5EB8C896DB3764F3185481BC22F91B4AAFFCCA2,
349-
0x5F26936857BC3A7C2539EA8EC3A952B7873033E038326E87ED3E1276FD140253,
350-
0xFA08E9FC25FB2D9A98527FC22A2C9612FBEAFDAD446CBC7BCDBDCD780AF2C16A,
345+
"01E798154708FE7789429634053CBF9F99B619F9F084048927333FCE637F549B",
346+
"564C0A11A0F704F4FC3E8ACFE0F8245F0AD1347B378FBF96E206DA11A5D36306",
347+
"24D25032E67A7E6A4910DF5834B8FE70E6BCFEEAC0352434196BDF4B2485D5A1",
348+
"8F59A8D2A1A625A17F3FEA0FE5EB8C896DB3764F3185481BC22F91B4AAFFCCA2",
349+
"5F26936857BC3A7C2539EA8EC3A952B7873033E038326E87ED3E1276FD140253",
350+
"FA08E9FC25FB2D9A98527FC22A2C9612FBEAFDAD446CBC7BCDBDCD780AF2C16A",
351351
],
352352
192,
353353
id="point_evaluation",
354354
),
355+
pytest.param(
356+
0x0B,
357+
375,
358+
[
359+
"000000000000000000000000000000000572CBEA904D67468808C8EB50A9450C9721DB309128012543902D0AC358A62AE28F75BB8F1C7C42C39A8C5529BF0F4E00000000000000000000000000000000166A9D8CABC673A322FDA673779D8E3822BA3ECB8670E461F73BB9021D5FD76A",
360+
"4C56D9D4CD16BD1BBA86881979749D280000000000000000000000000000000009ECE308F9D1F0131765212DECA99697B112D61F9BE9A5F1F3780A51335B3FF981747A0B2CA2179B96D2C0C9024E522400000000000000000000000000000000032B80D3A6F5B09F8A84623389C5F80C",
361+
],
362+
256,
363+
id="bls12_g1add",
364+
),
355365
],
356366
)
357367
def test_worst_precompile_fixed_cost(
@@ -360,15 +370,24 @@ def test_worst_precompile_fixed_cost(
360370
fork: Fork,
361371
gas_limit: int,
362372
precompile_address: Address,
363-
precompile_gas_cost: Address,
364-
input: list[int],
373+
precompile_gas_cost: int,
374+
input: list[str],
365375
length: int,
366376
):
367377
"""Test running a block filled with a precompile with fixed cost."""
368378
env = Environment(gas_limit=gas_limit)
369379

370-
# Calldata
371-
calldata = sum([Op.MSTORE(i * 32, input) for i, input in enumerate(input)])
380+
concatenated_hex_string = "".join(input)
381+
concatenated_bytes = bytes.fromhex(concatenated_hex_string)
382+
383+
padding_length = (32 - (len(concatenated_bytes) % 32)) % 32
384+
input_bytes = concatenated_bytes + b"\x00" * padding_length
385+
386+
calldata = Bytecode()
387+
for i in range(0, len(input_bytes), 32):
388+
chunk = input_bytes[i : i + 32]
389+
value_to_store = int.from_bytes(chunk, "big")
390+
calldata += Op.MSTORE(i, value_to_store)
372391

373392
attack_block = Op.POP(Op.STATICCALL(precompile_gas_cost, precompile_address, 0, length, 0, 0))
374393
code = code_loop_precompile_call(calldata, attack_block)

0 commit comments

Comments
 (0)