Skip to content

test_invalid()

Documentation for tests/prague/eip2537_bls_12_381_precompiles/test_bls12_map_fp_to_g1.py::test_invalid@21fb11c8.

Generate fixtures for these test cases for Prague with:

fill -v tests/prague/eip2537_bls_12_381_precompiles/test_bls12_map_fp_to_g1.py::test_invalid --fork Prague

Negative tests for the BLS12_MAP_FP_TO_G1 precompile.

Source code in tests/prague/eip2537_bls_12_381_precompiles/test_bls12_map_fp_to_g1.py
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
@pytest.mark.parametrize(
    "input_data",
    vectors_from_file("fail-map_fp_to_G1_bls.json")
    + [
        pytest.param(b"\x80" + bytes(FP(0))[1:], id="invalid_encoding"),
        pytest.param(bytes(FP(0))[1:], id="input_too_short"),
        pytest.param(b"\x00" + FP(0), id="input_too_long"),
        pytest.param(b"", id="zero_length_input"),
        pytest.param(FP(Spec.P), id="fq_eq_q"),
        pytest.param(FP(2**512 - 1), id="fq_eq_2_512_minus_1"),
        pytest.param(Spec.G1, id="g1_point_input"),
    ],
)
@pytest.mark.parametrize("expected_output", [Spec.INVALID], ids=[""])
def test_invalid(
    state_test: StateTestFiller,
    pre: Alloc,
    post: dict,
    tx: Transaction,
):
    """Negative tests for the BLS12_MAP_FP_TO_G1 precompile."""
    state_test(
        env=Environment(),
        pre=pre,
        tx=tx,
        post=post,
    )

Parametrized Test Cases

The interactive table below is also available as a standalone page.

Test ID (Abbreviated) expected_output input_data precompile_address
...fork_Prague-state_test--bls_mapg1_empty_input- 16
...fork_Prague-state_test--bls_mapg1_short_input- 00000000000000000000000000000000 156c8a6a2c184569d69a76be144b5cdc 5141d2d2ca4fe341f011e25e3969c55a d9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Prague-state_test--bls_mapg1_large_input- 00000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 03 16
...fork_Prague-state_test--bls_mapg1_top_bytes- 10000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Prague-state_test--bls_invalid_fq_element- 00000000000000000000000000000000 2f6d9c5465982c0421b61e74579709b3 b5b91e57bdd4f6015742b4ff301abb7e f895b9cce00c33c7d48f8e5fa4ac09ae 16
...fork_Prague-state_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 16
...fork_Prague-state_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 16
...fork_Prague-state_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 16
...fork_Prague-state_test--zero_length_input- 16
...fork_Prague-state_test--fq_eq_q- FP(x=4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787) 16
...fork_Prague-state_test--fq_eq_2_512_minus_1- FP(x=13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095) 16
...fork_Prague-state_test--g1_point_input- PointG1(x=3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507, y=1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569) 16
...fork_Prague-blockchain_test_from_state_test--bls_mapg1_empty_input- 16
...fork_Prague-blockchain_test_from_state_test--bls_mapg1_short_input- 00000000000000000000000000000000 156c8a6a2c184569d69a76be144b5cdc 5141d2d2ca4fe341f011e25e3969c55a d9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Prague-blockchain_test_from_state_test--bls_mapg1_large_input- 00000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 03 16
...fork_Prague-blockchain_test_from_state_test--bls_mapg1_top_bytes- 10000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Prague-blockchain_test_from_state_test--bls_invalid_fq_element- 00000000000000000000000000000000 2f6d9c5465982c0421b61e74579709b3 b5b91e57bdd4f6015742b4ff301abb7e f895b9cce00c33c7d48f8e5fa4ac09ae 16
...fork_Prague-blockchain_test_from_state_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 16
...fork_Prague-blockchain_test_from_state_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 16
...fork_Prague-blockchain_test_from_state_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 16
...fork_Prague-blockchain_test_from_state_test--zero_length_input- 16
...fork_Prague-blockchain_test_from_state_test--fq_eq_q- FP(x=4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787) 16
...fork_Prague-blockchain_test_from_state_test--fq_eq_2_512_minus_1- FP(x=13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095) 16
...fork_Prague-blockchain_test_from_state_test--g1_point_input- PointG1(x=3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507, y=1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569) 16
...fork_Osaka-state_test--bls_mapg1_empty_input- 16
...fork_Osaka-state_test--bls_mapg1_short_input- 00000000000000000000000000000000 156c8a6a2c184569d69a76be144b5cdc 5141d2d2ca4fe341f011e25e3969c55a d9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Osaka-state_test--bls_mapg1_large_input- 00000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 03 16
...fork_Osaka-state_test--bls_mapg1_top_bytes- 10000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Osaka-state_test--bls_invalid_fq_element- 00000000000000000000000000000000 2f6d9c5465982c0421b61e74579709b3 b5b91e57bdd4f6015742b4ff301abb7e f895b9cce00c33c7d48f8e5fa4ac09ae 16
...fork_Osaka-state_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 16
...fork_Osaka-state_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 16
...fork_Osaka-state_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 16
...fork_Osaka-state_test--zero_length_input- 16
...fork_Osaka-state_test--fq_eq_q- FP(x=4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787) 16
...fork_Osaka-state_test--fq_eq_2_512_minus_1- FP(x=13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095) 16
...fork_Osaka-state_test--g1_point_input- PointG1(x=3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507, y=1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569) 16
...fork_Osaka-blockchain_test_from_state_test--bls_mapg1_empty_input- 16
...fork_Osaka-blockchain_test_from_state_test--bls_mapg1_short_input- 00000000000000000000000000000000 156c8a6a2c184569d69a76be144b5cdc 5141d2d2ca4fe341f011e25e3969c55a d9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Osaka-blockchain_test_from_state_test--bls_mapg1_large_input- 00000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 03 16
...fork_Osaka-blockchain_test_from_state_test--bls_mapg1_top_bytes- 10000000000000000000000000000000 00156c8a6a2c184569d69a76be144b5c dc5141d2d2ca4fe341f011e25e3969c5 5ad9e9b9ce2eb833c81a908e5fa4ac5f 16
...fork_Osaka-blockchain_test_from_state_test--bls_invalid_fq_element- 00000000000000000000000000000000 2f6d9c5465982c0421b61e74579709b3 b5b91e57bdd4f6015742b4ff301abb7e f895b9cce00c33c7d48f8e5fa4ac09ae 16
...fork_Osaka-blockchain_test_from_state_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 16
...fork_Osaka-blockchain_test_from_state_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 16
...fork_Osaka-blockchain_test_from_state_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 16
...fork_Osaka-blockchain_test_from_state_test--zero_length_input- 16
...fork_Osaka-blockchain_test_from_state_test--fq_eq_q- FP(x=4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787) 16
...fork_Osaka-blockchain_test_from_state_test--fq_eq_2_512_minus_1- FP(x=13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095) 16
...fork_Osaka-blockchain_test_from_state_test--g1_point_input- PointG1(x=3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507, y=1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569) 16