Skip to content

test_invalid()

Documentation for tests/prague/eip2537_bls_12_381_precompiles/test_bls12_map_fp2_to_g2.py::test_invalid@49a16fac.

Generate fixtures for these test cases for Prague with:

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

Negative tests for the BLS12_MAP_FP_TO_G2 precompile.

Source code in tests/prague/eip2537_bls_12_381_precompiles/test_bls12_map_fp2_to_g2.py
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
@pytest.mark.parametrize(
    "input_data",
    vectors_from_file("fail-map_fp2_to_G2_bls.json")
    + [
        pytest.param(b"\x80" + bytes(FP2((0, 0)))[1:], id="invalid_encoding"),
        pytest.param(bytes(FP2((0, 0)))[1:], id="input_too_short"),
        pytest.param(b"\x00" + FP2((0, 0)), id="input_too_long"),
        pytest.param(b"", id="zero_length_input"),
        pytest.param(FP2((Spec.P, 0)), id="fq_eq_q"),
        pytest.param(FP2((0, Spec.P)), id="fq_eq_q_2"),
        pytest.param(FP2((2**512 - 1, 0)), id="fq_eq_2_512_minus_1"),
        pytest.param(FP2((0, 2**512 - 1)), id="fq_eq_2_512_minus_1_2"),
        pytest.param(Spec.G2, id="g2_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_G2 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-blockchain_test--bls_mapg2_empty_input- 17
...fork_Prague-blockchain_test--bls_mapg2_short_input- 00000000000000000000000000000000 07355d25caf6e7f2f0cb2812ca0e513b d026ed09dda65b177500fa31714e09ea 0ded3a078b526bed3307f804d4b93b04 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Prague-blockchain_test--bls_mapg2_long_input- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 8c 17
...fork_Prague-blockchain_test--bls_mapg2_top_bytes- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Prague-blockchain_test--bls_mapg2_invalid_fq_element- 00000000000000000000000000000000 21366f100476ce8d3be6cfc90d59fe13 349e388ed12b6dd6dc31ccd267ff000e 2c993a063ca66beced06f804d4b8e5af 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b78c 17
...fork_Prague-blockchain_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 17
...fork_Prague-blockchain_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 17
...fork_Prague-blockchain_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 17
...fork_Prague-blockchain_test--zero_length_input- 17
...fork_Prague-blockchain_test--fq_eq_q- FP2(x=(4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787, 0)) 17
...fork_Prague-blockchain_test--fq_eq_q_2- FP2(x=(0, 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787)) 17
...fork_Prague-blockchain_test--fq_eq_2_512_minus_1- FP2(x=(13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095, 0)) 17
...fork_Prague-blockchain_test--fq_eq_2_512_minus_1_2- FP2(x=(0, 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095)) 17
...fork_Prague-blockchain_test--g2_input- PointG2(x=(352701069587466618187139116011060144890029952792775240219908644239793785735715026873347600343865175952761926303160, 3059144344244213709971259814753781636986470325476647558659373206291635324768958432433509563104347017837885763365758), y=(1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905, 927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582)) 17
...fork_Prague-state_test--bls_mapg2_empty_input- 17
...fork_Prague-state_test--bls_mapg2_short_input- 00000000000000000000000000000000 07355d25caf6e7f2f0cb2812ca0e513b d026ed09dda65b177500fa31714e09ea 0ded3a078b526bed3307f804d4b93b04 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Prague-state_test--bls_mapg2_long_input- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 8c 17
...fork_Prague-state_test--bls_mapg2_top_bytes- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Prague-state_test--bls_mapg2_invalid_fq_element- 00000000000000000000000000000000 21366f100476ce8d3be6cfc90d59fe13 349e388ed12b6dd6dc31ccd267ff000e 2c993a063ca66beced06f804d4b8e5af 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b78c 17
...fork_Prague-state_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 17
...fork_Prague-state_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 17
...fork_Prague-state_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 17
...fork_Prague-state_test--zero_length_input- 17
...fork_Prague-state_test--fq_eq_q- FP2(x=(4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787, 0)) 17
...fork_Prague-state_test--fq_eq_q_2- FP2(x=(0, 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787)) 17
...fork_Prague-state_test--fq_eq_2_512_minus_1- FP2(x=(13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095, 0)) 17
...fork_Prague-state_test--fq_eq_2_512_minus_1_2- FP2(x=(0, 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095)) 17
...fork_Prague-state_test--g2_input- PointG2(x=(352701069587466618187139116011060144890029952792775240219908644239793785735715026873347600343865175952761926303160, 3059144344244213709971259814753781636986470325476647558659373206291635324768958432433509563104347017837885763365758), y=(1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905, 927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582)) 17
...fork_Osaka-blockchain_test--bls_mapg2_empty_input- 17
...fork_Osaka-blockchain_test--bls_mapg2_short_input- 00000000000000000000000000000000 07355d25caf6e7f2f0cb2812ca0e513b d026ed09dda65b177500fa31714e09ea 0ded3a078b526bed3307f804d4b93b04 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Osaka-blockchain_test--bls_mapg2_long_input- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 8c 17
...fork_Osaka-blockchain_test--bls_mapg2_top_bytes- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Osaka-blockchain_test--bls_mapg2_invalid_fq_element- 00000000000000000000000000000000 21366f100476ce8d3be6cfc90d59fe13 349e388ed12b6dd6dc31ccd267ff000e 2c993a063ca66beced06f804d4b8e5af 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b78c 17
...fork_Osaka-blockchain_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 17
...fork_Osaka-blockchain_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 17
...fork_Osaka-blockchain_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 17
...fork_Osaka-blockchain_test--zero_length_input- 17
...fork_Osaka-blockchain_test--fq_eq_q- FP2(x=(4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787, 0)) 17
...fork_Osaka-blockchain_test--fq_eq_q_2- FP2(x=(0, 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787)) 17
...fork_Osaka-blockchain_test--fq_eq_2_512_minus_1- FP2(x=(13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095, 0)) 17
...fork_Osaka-blockchain_test--fq_eq_2_512_minus_1_2- FP2(x=(0, 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095)) 17
...fork_Osaka-blockchain_test--g2_input- PointG2(x=(352701069587466618187139116011060144890029952792775240219908644239793785735715026873347600343865175952761926303160, 3059144344244213709971259814753781636986470325476647558659373206291635324768958432433509563104347017837885763365758), y=(1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905, 927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582)) 17
...fork_Osaka-state_test--bls_mapg2_empty_input- 17
...fork_Osaka-state_test--bls_mapg2_short_input- 00000000000000000000000000000000 07355d25caf6e7f2f0cb2812ca0e513b d026ed09dda65b177500fa31714e09ea 0ded3a078b526bed3307f804d4b93b04 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Osaka-state_test--bls_mapg2_long_input- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 8c 17
...fork_Osaka-state_test--bls_mapg2_top_bytes- 00000000000000000000000000000000 0007355d25caf6e7f2f0cb2812ca0e51 3bd026ed09dda65b177500fa31714e09 ea0ded3a078b526bed3307f804d4b93b 04000000000000000000000000000000 0002829ce3c021339ccb5caf3e187f63 70e1e2a311dec9b75363117063ab2015 603ff52c3d3b98f19c2f65575e99e8b7 17
...fork_Osaka-state_test--bls_mapg2_invalid_fq_element- 00000000000000000000000000000000 21366f100476ce8d3be6cfc90d59fe13 349e388ed12b6dd6dc31ccd267ff000e 2c993a063ca66beced06f804d4b8e5af 00000000000000000000000000000000 02829ce3c021339ccb5caf3e187f6370 e1e2a311dec9b75363117063ab201560 3ff52c3d3b98f19c2f65575e99e8b78c 17
...fork_Osaka-state_test--invalid_encoding- 80000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 17
...fork_Osaka-state_test--input_too_short- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000000000 17
...fork_Osaka-state_test--input_too_long- 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00 17
...fork_Osaka-state_test--zero_length_input- 17
...fork_Osaka-state_test--fq_eq_q- FP2(x=(4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787, 0)) 17
...fork_Osaka-state_test--fq_eq_q_2- FP2(x=(0, 4002409555221667393417789825735904156556882819939007885332058136124031650490837864442687629129015664037894272559787)) 17
...fork_Osaka-state_test--fq_eq_2_512_minus_1- FP2(x=(13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095, 0)) 17
...fork_Osaka-state_test--fq_eq_2_512_minus_1_2- FP2(x=(0, 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084095)) 17
...fork_Osaka-state_test--g2_input- PointG2(x=(352701069587466618187139116011060144890029952792775240219908644239793785735715026873347600343865175952761926303160, 3059144344244213709971259814753781636986470325476647558659373206291635324768958432433509563104347017837885763365758), y=(1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905, 927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582)) 17