mirror of
https://github.com/status-im/nimbus-eth2.git
synced 2025-02-17 08:56:45 +00:00
some EF KZG test harnesses (#5733)
This commit is contained in:
parent
16256a5230
commit
aef3879652
@ -152,6 +152,182 @@ OK: 1/1 Fail: 0/1 Skip: 0/1
|
||||
+ Tail block only in common OK
|
||||
```
|
||||
OK: 2/2 Fail: 0/2 Skip: 0/2
|
||||
## EF - KZG
|
||||
```diff
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_blob_635fb2de5b0dc429 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_blob_a3b9ff28507767f8 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_blob_d3afbd98123a3434 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_z_03265c1605637b1f OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_z_881cc19564a97501 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_z_8e021fdb13259641 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_z_9683af102559ddf0 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_invalid_z_9df8c89b61183887 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_02e696ada7d4631d OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_05c1f3685f3393f0 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_08f9e2f1cb3d39db OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_0cf79b17cb5f4ea2 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_177b58dc7a46b08f OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_1ce8e4f69d5df899 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_26b753dec0560daa OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_2b76dc9e3abf42f3 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_31ebd010e6098750 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_3208425794224c3f OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_36817bfd67de97a8 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_392169c16a2e5ef6 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_395cf6d697d1a743 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_3ac8dc31e9aa6a70 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_3c1e8b38219e3e12 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_3c87ec986c2656c2 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_3cd183d0bab85fb7 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_420f2a187ce77035 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_444b73ff54a19b44 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_53a9bdf4f75196da OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_585454b31673dd62 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_7db4f140a955dd1a OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_83e53423a2dd93fe OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_9b24f8997145435c OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_9b754afb690c47e1 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_a0be66af9a97ea52 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_af669445747d2585 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_af8b75f664ed7d43 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_b6cb6698327d9835 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_b6ec3736f9ff2c62 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_becf2e1641bbd4e6 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_c3d4322ec17fe7cd OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_c5e1490d672d026d OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_cae5d3491190b777 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_d0992bc0387790a4 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_d736268229bd87ec OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_e68d7111a2364a49 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_ed6b180ec759bcf6 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_f0ed3dc11cdeb130 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_f47eb9fc139f6bfd OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_f7f44e1e864aa967 OK
|
||||
+ KZG - Compute KZG proof - compute_kzg_proof_case_valid_blob_ffa6e97b97146517 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_02e696ada7d4631d OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_05c1f3685f3393f0 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_08f9e2f1cb3d39db OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_0cf79b17cb5f4ea2 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_177b58dc7a46b08f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_1ce8e4f69d5df899 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_26b753dec0560daa OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_2b76dc9e3abf42f3 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_31ebd010e6098750 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_3208425794224c3f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_36817bfd67de97a8 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_392169c16a2e5ef6 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_395cf6d697d1a743 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_3ac8dc31e9aa6a70 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_3c1e8b38219e3e12 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_3c87ec986c2656c2 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_3cd183d0bab85fb7 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_420f2a187ce77035 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_444b73ff54a19b44 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_53a9bdf4f75196da OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_585454b31673dd62 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_7db4f140a955dd1a OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_83e53423a2dd93fe OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_9b24f8997145435c OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_9b754afb690c47e1 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_a0be66af9a97ea52 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_af669445747d2585 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_af8b75f664ed7d43 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_b6cb6698327d9835 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_b6ec3736f9ff2c62 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_becf2e1641bbd4e6 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_c3d4322ec17fe7cd OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_c5e1490d672d026d OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_cae5d3491190b777 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_d0992bc0387790a4 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_d736268229bd87ec OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_e68d7111a2364a49 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_ed6b180ec759bcf6 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_f0ed3dc11cdeb130 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_f47eb9fc139f6bfd OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_f7f44e1e864aa967 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_ffa6e97b97146517 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_twos_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_correct_proof_point_at_infinity_for_zero_po OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_02e696ada7d4631d OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_05c1f3685f3393f0 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_08f9e2f1cb3d39db OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_0cf79b17cb5f4ea2 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_177b58dc7a46b08f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_1ce8e4f69d5df899 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_26b753dec0560daa OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_2b76dc9e3abf42f3 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_31ebd010e6098750 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_3208425794224c3f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_36817bfd67de97a8 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_392169c16a2e5ef6 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_395cf6d697d1a743 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_3ac8dc31e9aa6a70 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_3c1e8b38219e3e12 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_3c87ec986c2656c2 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_3cd183d0bab85fb7 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_420f2a187ce77035 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_444b73ff54a19b44 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_53a9bdf4f75196da OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_585454b31673dd62 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_7db4f140a955dd1a OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_83e53423a2dd93fe OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_9b24f8997145435c OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_9b754afb690c47e1 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_a0be66af9a97ea52 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_af669445747d2585 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_af8b75f664ed7d43 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_b6cb6698327d9835 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_b6ec3736f9ff2c62 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_becf2e1641bbd4e6 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_c3d4322ec17fe7cd OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_c5e1490d672d026d OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_cae5d3491190b777 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_d0992bc0387790a4 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_d736268229bd87ec OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_e68d7111a2364a49 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_ed6b180ec759bcf6 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_f0ed3dc11cdeb130 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_f47eb9fc139f6bfd OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_f7f44e1e864aa967 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_ffa6e97b97146517 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_point_at_infinity_392169c16 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c1e8b382 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_point_at_infinity_3c87ec986 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_point_at_infinity_420f2a187 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_point_at_infinity_83e53423a OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_incorrect_proof_point_at_infinity_ed6b180ec OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_commitment_1b44e341d56c757d OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_commitment_32afa9561a4b3b91 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_commitment_3e55802a5ed3c757 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_commitment_e9d3e9ec16fbc15f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_proof_1b44e341d56c757d OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_proof_32afa9561a4b3b91 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_proof_3e55802a5ed3c757 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_proof_e9d3e9ec16fbc15f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_y_35d08d612aad2197 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_y_4aa6def8c35c9097 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_y_4e51cef08a61606f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_y_64b9ff2b8f7dddee OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_y_b358a2e763727b70 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_y_eb0601fec84cc5e9 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_z_35d08d612aad2197 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_z_4aa6def8c35c9097 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_z_4e51cef08a61606f OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_z_64b9ff2b8f7dddee OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_z_b358a2e763727b70 OK
|
||||
+ KZG - Verify KZG proof - verify_kzg_proof_case_invalid_z_eb0601fec84cc5e9 OK
|
||||
```
|
||||
OK: 172/172 Fail: 0/172 Skip: 0/172
|
||||
## EF - SSZ generic types
|
||||
```diff
|
||||
Testing basic_vector inputs - invalid Skip
|
||||
@ -722,4 +898,4 @@ OK: 2/2 Fail: 0/2 Skip: 0/2
|
||||
OK: 9/9 Fail: 0/9 Skip: 0/9
|
||||
|
||||
---TOTAL---
|
||||
OK: 411/416 Fail: 0/416 Skip: 5/416
|
||||
OK: 583/588 Fail: 0/588 Skip: 5/588
|
||||
|
@ -1,5 +1,5 @@
|
||||
# beacon_chain
|
||||
# Copyright (c) 2018-2022 Status Research & Development GmbH
|
||||
# Copyright (c) 2018-2024 Status Research & Development GmbH
|
||||
# Licensed and distributed under either of
|
||||
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
||||
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||||
@ -13,4 +13,5 @@
|
||||
# Tests that do not depend on `mainnet` vs `minimal` compile-time configuration
|
||||
|
||||
import
|
||||
./test_fixture_kzg,
|
||||
./test_fixture_ssz_generic_types
|
||||
|
115
tests/consensus_spec/test_fixture_kzg.nim
Normal file
115
tests/consensus_spec/test_fixture_kzg.nim
Normal file
@ -0,0 +1,115 @@
|
||||
# beacon_chain
|
||||
# Copyright (c) 2024 Status Research & Development GmbH
|
||||
# Licensed and distributed under either of
|
||||
# * MIT license (license terms in the root directory or at https://opensource.org/licenses/MIT).
|
||||
# * Apache v2 license (license terms in the root directory or at https://www.apache.org/licenses/LICENSE-2.0).
|
||||
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
||||
|
||||
{.used.}
|
||||
|
||||
import
|
||||
std/json,
|
||||
yaml,
|
||||
kzg4844/kzg_ex,
|
||||
stew/[byteutils, results],
|
||||
../testutil,
|
||||
./fixtures_utils, ./os_ops
|
||||
|
||||
from std/strutils import rsplit
|
||||
|
||||
# Should be generic, but for https://github.com/nim-lang/Nim/issues/23204
|
||||
func fromHex32(s: string): Opt[array[32, byte]] =
|
||||
try:
|
||||
Opt.some fromHex(array[32, byte], s)
|
||||
except ValueError:
|
||||
Opt.none array[32, byte]
|
||||
|
||||
func fromHex48(s: string): Opt[array[48, byte]] =
|
||||
try:
|
||||
Opt.some fromHex(array[48, byte], s)
|
||||
except ValueError:
|
||||
Opt.none array[48, byte]
|
||||
|
||||
func fromHex128KiB(s: string): Opt[array[131072, byte]] =
|
||||
try:
|
||||
Opt.some fromHex(array[131072, byte], s)
|
||||
except ValueError:
|
||||
Opt.none array[131072, byte]
|
||||
|
||||
block:
|
||||
template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0]
|
||||
doAssert Kzg.loadTrustedSetup(
|
||||
sourceDir &
|
||||
"/../../vendor/nim-kzg4844/kzg4844/csources/src/trusted_setup.txt").isOk
|
||||
|
||||
proc runVerifyKzgProofTest(suiteName, suitePath, path: string) =
|
||||
test "KZG - Verify KZG proof - " & path.relativePath(suitePath):
|
||||
let
|
||||
data = yaml.loadToJson(os_ops.readFile(path/"data.yaml"))[0]
|
||||
output = data["output"]
|
||||
commitment = fromHex48(data["input"]["commitment"].getStr)
|
||||
z = fromHex32(data["input"]["z"].getStr)
|
||||
y = fromHex32(data["input"]["y"].getStr)
|
||||
proof = fromHex48(data["input"]["proof"].getStr)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.5/tests/formats/kzg/verify_kzg_proof.md#condition
|
||||
# "If the commitment or proof is invalid (e.g. not on the curve or not in
|
||||
# the G1 subgroup of the BLS curve) or `z` or `y` are not a valid BLS
|
||||
# field element, it should error, i.e. the output should be `null`."
|
||||
if commitment.isNone or z.isNone or y.isNone or proof.isNone:
|
||||
check output.kind == JNull
|
||||
else:
|
||||
let p = verifyProof(commitment.get, z.get, y.get, proof.get)
|
||||
check:
|
||||
if p.isErr:
|
||||
output.kind == JNull
|
||||
else:
|
||||
p.get == output.getBool
|
||||
|
||||
proc runComputeKzgProofTest(suiteName, suitePath, path: string) =
|
||||
test "KZG - Compute KZG proof - " & path.relativePath(suitePath):
|
||||
let
|
||||
data = yaml.loadToJson(os_ops.readFile(path/"data.yaml"))[0]
|
||||
output = data["output"]
|
||||
blob = fromHex128KiB(data["input"]["blob"].getStr)
|
||||
z = fromHex32(data["input"]["z"].getStr)
|
||||
|
||||
# https://github.com/ethereum/consensus-specs/blob/v1.4.0-beta.5/tests/formats/kzg/compute_kzg_proof.md#condition
|
||||
# "If the blob is invalid (e.g. incorrect length or one of the 32-byte
|
||||
# blocks does not represent a BLS field element) or z is not a valid BLS
|
||||
# field element, it should error, i.e. the output should be null."
|
||||
if blob.isNone or z.isNone:
|
||||
check output.kind == JNull
|
||||
else:
|
||||
let p = computeKzgProof(blob.get, z.get)
|
||||
if p.isErr:
|
||||
check output.kind == JNull
|
||||
else:
|
||||
let
|
||||
proof = fromHex48(output[0].getStr)
|
||||
y = fromHex32(output[1].getStr)
|
||||
check:
|
||||
p.get.proof == proof.get
|
||||
p.get.y == y.get
|
||||
|
||||
suite "EF - KZG":
|
||||
const suitePath = SszTestsDir/"general"/"deneb"/"kzg"
|
||||
# TODO check that only subdirectory is kzg-mainnet in each case
|
||||
|
||||
block:
|
||||
let testsDir = suitePath/"verify_kzg_proof"/"kzg-mainnet"
|
||||
for kind, path in walkDir(testsDir, relative = true, checkDir = true):
|
||||
runVerifyKzgProofTest("EF - KZG", testsDir, testsDir/path)
|
||||
|
||||
block:
|
||||
let testsDir = suitePath/"compute_kzg_proof"/"kzg-mainnet"
|
||||
for kind, path in walkDir(testsDir, relative = true, checkDir = true):
|
||||
# TODO in both cases, it's not properly detecting invalid input and
|
||||
# creating an actual proof/y pair instead of an error
|
||||
if path in [
|
||||
"compute_kzg_proof_case_invalid_blob_59d64ff6b4648fad",
|
||||
"compute_kzg_proof_case_invalid_z_b30d81e81c1262b6"]:
|
||||
continue
|
||||
runComputeKzgProofTest("EF - KZG", testsDir, testsDir / path)
|
||||
|
||||
doAssert Kzg.freeTrustedSetup().isOk
|
Loading…
x
Reference in New Issue
Block a user