diff --git a/patches/0001-aere-pqc-precompiles-mainnet.patch b/patches/0001-aere-pqc-precompiles-mainnet.patch index 4ed4ef1..d0c8e7f 100644 --- a/patches/0001-aere-pqc-precompiles-mainnet.patch +++ b/patches/0001-aere-pqc-precompiles-mainnet.patch @@ -61,7 +61,7 @@ header. create mode 100644 evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java diff --git a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java -index 950cd59..51397dc 100644 +index 950cd59e3..51397dc38 100644 --- a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java +++ b/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java @@ -12,6 +12,21 @@ @@ -110,7 +110,7 @@ index 950cd59..51397dc 100644 diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java new file mode 100644 -index 0000000..1dbb2b8 +index 000000000..011fc2164 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java @@ -0,0 +1,94 @@ @@ -210,7 +210,7 @@ index 0000000..1dbb2b8 +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java new file mode 100644 -index 0000000..80aca57 +index 000000000..e383b1f8f --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java @@ -0,0 +1,62 @@ @@ -278,7 +278,7 @@ index 0000000..80aca57 +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java new file mode 100644 -index 0000000..5df074c +index 000000000..8c0a07ee6 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java @@ -0,0 +1,62 @@ @@ -346,7 +346,7 @@ index 0000000..5df074c +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java new file mode 100644 -index 0000000..f25be64 +index 000000000..8c41a2fb1 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java @@ -0,0 +1,84 @@ @@ -435,7 +435,7 @@ index 0000000..f25be64 + } +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java -index 28d84ab..60e55af 100644 +index 28d84abf1..d75afaf57 100644 --- a/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java @@ -12,6 +12,20 @@ @@ -478,7 +478,7 @@ index 28d84ab..60e55af 100644 } diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java new file mode 100644 -index 0000000..0c20e6a +index 000000000..fe0f0cf32 --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java @@ -0,0 +1,93 @@ @@ -577,7 +577,7 @@ index 0000000..0c20e6a +} diff --git a/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java new file mode 100644 -index 0000000..2666602 +index 000000000..5e7527aab --- /dev/null +++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java @@ -0,0 +1,84 @@ diff --git a/patches/0003-aere-pq-anchor.patch b/patches/0003-aere-pq-anchor.patch index 3101d43..cfee115 100644 --- a/patches/0003-aere-pq-anchor.patch +++ b/patches/0003-aere-pq-anchor.patch @@ -25433,6 +25433,3 @@ index c8eb53639..76c435677 100644 private RangeHeaders processHeaders( final SyncTargetRange checkpointRange, final List headers) { if (checkpointRange.hasEnd()) { --- -2.43.0 - diff --git a/patches/0004-aere-basefee-floor.patch b/patches/0004-aere-basefee-floor.patch index 2705508..9d81ff3 100644 --- a/patches/0004-aere-basefee-floor.patch +++ b/patches/0004-aere-basefee-floor.patch @@ -43,21 +43,10 @@ holders are named in NOTICE, as Apache License 2.0 section 4(d) requires. 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java -index 0ee4f74..83a639c 100644 +index 0ee4f7409..83a639c1b 100644 --- a/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java +++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java -@@ -1,56 +1,87 @@ - /* - * Copyright ConsenSys AG. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. +@@ -12,6 +12,24 @@ * * SPDX-License-Identifier: Apache-2.0 */ @@ -82,22 +71,7 @@ index 0ee4f74..83a639c 100644 package org.hyperledger.besu.ethereum.mainnet.feemarket; import org.hyperledger.besu.config.GenesisConfig; - import org.hyperledger.besu.datatypes.Wei; - import org.hyperledger.besu.ethereum.core.Transaction; - import org.hyperledger.besu.ethereum.core.feemarket.TransactionPriceCalculator; - - import java.util.Optional; - - import org.apache.tuweni.units.bigints.UInt256s; - import org.slf4j.Logger; - import org.slf4j.LoggerFactory; - - public class LondonFeeMarket implements BaseFeeMarket { - private static final Logger LOG = LoggerFactory.getLogger(LondonFeeMarket.class); - - static final Wei DEFAULT_BASEFEE_INITIAL_VALUE = GenesisConfig.BASEFEE_AT_GENESIS_DEFAULT_VALUE; - static final long DEFAULT_BASEFEE_MAX_CHANGE_DENOMINATOR = 8L; - static final long DEFAULT_SLACK_COEFFICIENT = 2L; +@@ -34,6 +52,19 @@ public class LondonFeeMarket implements BaseFeeMarket { private static final Wei DEFAULT_BASEFEE_FLOOR = Wei.of(7L); @@ -117,41 +91,7 @@ index 0ee4f74..83a639c 100644 protected final Wei baseFeeInitialValue; private final long londonForkBlockNumber; private final TransactionPriceCalculator txPriceCalculator; - private final Wei baseFeeFloor; - - LondonFeeMarket(final long londonForkBlockNumber, final Optional baseFeePerGasOverride) { - this(TransactionPriceCalculator.eip1559(), londonForkBlockNumber, baseFeePerGasOverride); - } - - LondonFeeMarket( - final TransactionPriceCalculator txPriceCalculator, - final long londonForkBlockNumber, - final Optional baseFeePerGasOverride) { - this.txPriceCalculator = txPriceCalculator; - this.londonForkBlockNumber = londonForkBlockNumber; - this.baseFeeInitialValue = baseFeePerGasOverride.orElse(DEFAULT_BASEFEE_INITIAL_VALUE); - this.baseFeeFloor = baseFeeInitialValue.isZero() ? Wei.ZERO : DEFAULT_BASEFEE_FLOOR; - } - - @Override -@@ -66,72 +97,83 @@ public class LondonFeeMarket implements BaseFeeMarket { - @Override - public long getSlackCoefficient() { - return DEFAULT_SLACK_COEFFICIENT; - } - - @Override - public TransactionPriceCalculator getTransactionPriceCalculator() { - return txPriceCalculator; - } - - @Override - public boolean satisfiesFloorTxFee(final Transaction txn) { - // ensure effective baseFee is at least above floor - return txn.getGasPrice() - .map(Optional::of) - .orElse(txn.getMaxFeePerGas()) - .filter(fee -> fee.greaterOrEqualThan(baseFeeFloor)) +@@ -83,6 +114,17 @@ public class LondonFeeMarket implements BaseFeeMarket { .isPresent(); } @@ -169,7 +109,7 @@ index 0ee4f74..83a639c 100644 @Override public Wei computeBaseFee( final long blockNumber, - final Wei parentBaseFee, +@@ -90,13 +132,13 @@ public class LondonFeeMarket implements BaseFeeMarket { final long parentBlockGasUsed, final long targetGasUsed) { if (londonForkBlockNumber == blockNumber) { @@ -185,20 +125,7 @@ index 0ee4f74..83a639c 100644 } else if (parentBlockGasUsed > targetGasUsed) { gasDelta = parentBlockGasUsed - targetGasUsed; final long denominator = getBasefeeMaxChangeDenominator(); - feeDelta = - UInt256s.max( - parentBaseFee.multiply(gasDelta).divide(targetGasUsed).divide(denominator), Wei.ONE); - baseFee = parentBaseFee.add(feeDelta); - } else { - gasDelta = targetGasUsed - parentBlockGasUsed; - final long denominator = getBasefeeMaxChangeDenominator(); - feeDelta = parentBaseFee.multiply(gasDelta).divide(targetGasUsed).divide(denominator); - baseFee = parentBaseFee.subtract(feeDelta); - } - LOG.trace( - "block #{} parentBaseFee: {} parentGasUsed: {} parentGasTarget: {} baseFee: {}", - blockNumber, - parentBaseFee, +@@ -117,7 +159,7 @@ public class LondonFeeMarket implements BaseFeeMarket { parentBlockGasUsed, targetGasUsed, baseFee); @@ -207,17 +134,3 @@ index 0ee4f74..83a639c 100644 } @Override - public ValidationMode baseFeeValidationMode(final long blockNumber) { - return londonForkBlockNumber == blockNumber ? ValidationMode.INITIAL : ValidationMode.ONGOING; - } - - @Override - public ValidationMode gasLimitValidationMode(final long blockNumber) { - return londonForkBlockNumber == blockNumber ? ValidationMode.INITIAL : ValidationMode.ONGOING; - } - - @Override - public boolean isBeforeForkBlock(final long blockNumber) { - return londonForkBlockNumber > blockNumber; - } - }