Skip to content

Commit ac939f6

Browse files
authored
fix(blst): Fix blst wrong constants values and usage (#2102)
* fix(blst): Fix wrong constants value and usage * rename BAS to BASE
1 parent eeccdc3 commit ac939f6

File tree

4 files changed

+15
-15
lines changed

4 files changed

+15
-15
lines changed

.github/workflows/ethereum-tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
ethtests/EIPTests/StateTests/stEIP4844-blobtransactions/ \
5050
ethtests/EIPTests/StateTests/stEOF \
5151
tests/eof_suite/eest/state_tests \
52-
tests/pectra/state_tests/prague/eip7623_increase_calldata_cost
52+
tests/pectra/state_tests/prague
5353
- name: Run EOF validation tests
5454
run: |
5555
cross run --target ${{matrix.target}} --profile ${{ matrix.profile }} -p revme -- eof-validation \

crates/precompile/src/bls12_381/g2_msm.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use super::{
44
utils::extract_scalar_input,
55
};
66
use crate::bls12_381_const::{
7-
DISCOUNT_TABLE_G2_MSM, G2_ADD_ADDRESS, G2_ADD_BASE_GAS_FEE, G2_ADD_INPUT_LENGTH,
8-
G2_INPUT_ITEM_LENGTH, NBITS, SCALAR_LENGTH,
7+
DISCOUNT_TABLE_G2_MSM, G2_INPUT_ITEM_LENGTH, G2_MSM_ADDRESS, G2_MSM_BASE_GAS_FEE,
8+
G2_MSM_INPUT_LENGTH, NBITS, SCALAR_LENGTH,
99
};
1010
use crate::{u64_to_address, PrecompileWithAddress};
1111
use crate::{PrecompileError, PrecompileOutput, PrecompileResult};
@@ -14,7 +14,7 @@ use primitives::Bytes;
1414

1515
/// [EIP-2537](https://eips.ethereum.org/EIPS/eip-2537#specification) BLS12_G2MSM precompile.
1616
pub const PRECOMPILE: PrecompileWithAddress =
17-
PrecompileWithAddress(u64_to_address(G2_ADD_ADDRESS), g2_msm);
17+
PrecompileWithAddress(u64_to_address(G2_MSM_ADDRESS), g2_msm);
1818

1919
/// Implements EIP-2537 G2MSM precompile.
2020
/// G2 multi-scalar-multiplication call expects `288*k` bytes as an input that is interpreted
@@ -26,24 +26,24 @@ pub const PRECOMPILE: PrecompileWithAddress =
2626
/// See also: <https://eips.ethereum.org/EIPS/eip-2537#abi-for-g2-multiexponentiation>
2727
pub(super) fn g2_msm(input: &Bytes, gas_limit: u64) -> PrecompileResult {
2828
let input_len = input.len();
29-
if input_len == 0 || input_len % G2_ADD_INPUT_LENGTH != 0 {
29+
if input_len == 0 || input_len % G2_MSM_INPUT_LENGTH != 0 {
3030
return Err(PrecompileError::Other(format!(
3131
"G2MSM input length should be multiple of {}, was {}",
32-
G2_ADD_INPUT_LENGTH, input_len
32+
G2_MSM_INPUT_LENGTH, input_len
3333
))
3434
.into());
3535
}
3636

37-
let k = input_len / G2_ADD_INPUT_LENGTH;
38-
let required_gas = msm_required_gas(k, &DISCOUNT_TABLE_G2_MSM, G2_ADD_BASE_GAS_FEE);
37+
let k = input_len / G2_MSM_INPUT_LENGTH;
38+
let required_gas = msm_required_gas(k, &DISCOUNT_TABLE_G2_MSM, G2_MSM_BASE_GAS_FEE);
3939
if required_gas > gas_limit {
4040
return Err(PrecompileError::OutOfGas.into());
4141
}
4242

4343
let mut g2_points: Vec<blst_p2> = Vec::with_capacity(k);
4444
let mut scalars: Vec<u8> = Vec::with_capacity(k * SCALAR_LENGTH);
4545
for i in 0..k {
46-
let slice = &input[i * G2_ADD_INPUT_LENGTH..i * G2_ADD_INPUT_LENGTH + G2_INPUT_ITEM_LENGTH];
46+
let slice = &input[i * G2_MSM_INPUT_LENGTH..i * G2_MSM_INPUT_LENGTH + G2_INPUT_ITEM_LENGTH];
4747
// BLST batch API for p2_affines blows up when you pass it a point at infinity, so we must
4848
// filter points at infinity (and their corresponding scalars) from the input.
4949
if slice.iter().all(|i| *i == 0) {
@@ -63,8 +63,8 @@ pub(super) fn g2_msm(input: &Bytes, gas_limit: u64) -> PrecompileResult {
6363

6464
scalars.extend_from_slice(
6565
&extract_scalar_input(
66-
&input[i * G2_ADD_INPUT_LENGTH + G2_INPUT_ITEM_LENGTH
67-
..i * G2_ADD_INPUT_LENGTH + G2_INPUT_ITEM_LENGTH + SCALAR_LENGTH],
66+
&input[i * G2_MSM_INPUT_LENGTH + G2_INPUT_ITEM_LENGTH
67+
..i * G2_MSM_INPUT_LENGTH + G2_INPUT_ITEM_LENGTH + SCALAR_LENGTH],
6868
)?
6969
.b,
7070
);

crates/precompile/src/bls12_381/pairing.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::{g1::extract_g1_input, g2::extract_g2_input};
22
use crate::bls12_381_const::{
33
G1_INPUT_ITEM_LENGTH, G2_INPUT_ITEM_LENGTH, PAIRING_ADDRESS, PAIRING_INPUT_LENGTH,
4-
PAIRING_PAIRING_MULTIPLIER_BAS, PAIRING_PAIRING_OFFSET_BASE,
4+
PAIRING_PAIRING_MULTIPLIER_BASE, PAIRING_PAIRING_OFFSET_BASE,
55
};
66
use crate::{
77
u64_to_address, PrecompileError, PrecompileOutput, PrecompileResult, PrecompileWithAddress,
@@ -35,7 +35,7 @@ pub(super) fn pairing(input: &Bytes, gas_limit: u64) -> PrecompileResult {
3535
}
3636

3737
let k = input_len / PAIRING_INPUT_LENGTH;
38-
let required_gas: u64 = PAIRING_PAIRING_MULTIPLIER_BAS * k as u64 + PAIRING_PAIRING_OFFSET_BASE;
38+
let required_gas: u64 = PAIRING_PAIRING_MULTIPLIER_BASE * k as u64 + PAIRING_PAIRING_OFFSET_BASE;
3939
if required_gas > gas_limit {
4040
return Err(PrecompileError::OutOfGas.into());
4141
}

crates/precompile/src/bls12_381_const.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,13 @@ pub const G2_MSM_INPUT_LENGTH: usize = 288;
1515
pub const G2_OUTPUT_LENGTH: usize = 256;
1616
pub const G2_INPUT_ITEM_LENGTH: usize = 256;
1717
pub const PAIRING_ADDRESS: u64 = 0x0f;
18-
pub const PAIRING_PAIRING_MULTIPLIER_BAS: u64 = 32600;
18+
pub const PAIRING_PAIRING_MULTIPLIER_BASE: u64 = 32600;
1919
pub const PAIRING_PAIRING_OFFSET_BASE: u64 = 37700;
2020
pub const PAIRING_INPUT_LENGTH: usize = 384;
2121
pub const MAP_FP_TO_G1_ADDRESS: u64 = 0x10;
2222
pub const MAP_FP_TO_G1_BASE_GAS_FEE: u64 = 5500;
2323
pub const MAP_FP2_TO_G2_ADDRESS: u64 = 0x11;
24-
pub const MAP_FP2_TO_G2_BASE_GAS_FEE: u64 = 0x23800;
24+
pub const MAP_FP2_TO_G2_BASE_GAS_FEE: u64 = 23800;
2525
pub const MSM_MULTIPLIER: u64 = 1000;
2626
/// Number of bits used in the BLS12-381 curve finite field elements.
2727
pub const NBITS: usize = 256;

0 commit comments

Comments
 (0)