Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

precompilles: Implement mapping of field elements to BLS12-381 curve points #1012

Merged
merged 1 commit into from
Sep 18, 2024

Conversation

rodiazet
Copy link
Collaborator

Implementation of the bls12_map_fp_to_g1 and bls12_map_fp2_to_g2 precompiles: mapping of fp field element to a point on E1 curve (BLS12-381) and mapping fp2 extension field element to a point on E2 curve (BLS12-381) according to the EIP-2537 spec https://eips.ethereum.org/EIPS/eip-2537#abi-for-mapping-fp-element-to-g1-point and https://eips.ethereum.org/EIPS/eip-2537#abi-for-mapping-fp2-element-to-g2-point.

Depends on: #1010

@rodiazet rodiazet added precompiles Related to EVM precompiles Prague Changes for Prague upgrade labels Sep 17, 2024
@rodiazet rodiazet requested a review from chfast September 17, 2024 14:20
Copy link

codecov bot commented Sep 17, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 94.15%. Comparing base (7c6a3ce) to head (dac8d4d).
Report is 1 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1012      +/-   ##
==========================================
+ Coverage   94.08%   94.15%   +0.06%     
==========================================
  Files         147      147              
  Lines       15748    15796      +48     
==========================================
+ Hits        14816    14872      +56     
+ Misses        932      924       -8     
Flag Coverage Δ
eof_execution_spec_tests 17.31% <0.00%> (-0.06%) ⬇️
ethereum_tests 27.36% <0.00%> (-0.09%) ⬇️
ethereum_tests_silkpre 19.21% <0.00%> (-0.07%) ⬇️
execution_spec_tests 20.12% <80.55%> (+0.20%) ⬆️
unittests 88.83% <69.44%> (-0.07%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
lib/evmone_precompiles/bls.cpp 100.00% <100.00%> (ø)
test/state/precompiles.cpp 97.65% <100.00%> (+3.34%) ⬆️
test/unittests/precompiles_bls_test.cpp 100.00% <100.00%> (ø)

@rodiazet rodiazet changed the title precompilles: Implement maping of field elements to BLS12-381 curve points precompilles: Implement mapping of field elements to BLS12-381 curve points Sep 17, 2024
@rodiazet rodiazet force-pushed the bls-map-to-point branch 2 times, most recently from 3f5cc8e to d4f5e81 Compare September 18, 2024 09:12
@rodiazet rodiazet force-pushed the bls-map-to-point branch 2 times, most recently from 51421d0 to de4c167 Compare September 18, 2024 12:54
lib/evmone_precompiles/bls.cpp Outdated Show resolved Hide resolved
lib/evmone_precompiles/bls.cpp Outdated Show resolved Hide resolved
lib/evmone_precompiles/bls.cpp Outdated Show resolved Hide resolved
lib/evmone_precompiles/bls.cpp Outdated Show resolved Hide resolved
lib/evmone_precompiles/bls.cpp Outdated Show resolved Hide resolved
lib/evmone_precompiles/bls.hpp Outdated Show resolved Hide resolved
lib/evmone_precompiles/bls.hpp Outdated Show resolved Hide resolved
@rodiazet rodiazet force-pushed the bls-map-to-point branch 3 times, most recently from b53e3f2 to 06af5a5 Compare September 18, 2024 13:45
@chfast chfast enabled auto-merge (squash) September 18, 2024 13:49
@chfast chfast merged commit f007e7c into master Sep 18, 2024
23 checks passed
@chfast chfast deleted the bls-map-to-point branch September 18, 2024 14:00
chfast added a commit that referenced this pull request Sep 18, 2024
Implementation of the `bls12_pairing_check` precompile: According to
spec https://eips.ethereum.org/EIPS/eip-2537#abi-for-pairing-check

Depends on: #1012

Co-authored-by: Paweł Bylica <pawel@ethereum.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Prague Changes for Prague upgrade precompiles Related to EVM precompiles
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants