The three patches apply again with plain git apply, proven on a pristine checkout
The licence-note edits had normalized whitespace inside hunks, so the recipe this repository tells its reader to run failed at step one with 'patch does not apply'; only --ignore-whitespace passed, and the README nowhere says to use it. Each patch was re-applied to pristine d2032017 with whitespace tolerance, then regenerated from the resulting tree with its prose header kept, and the full sequence 0001, 0003, 0004 was applied with PLAIN git apply on a fresh pristine checkout before this commit was made.
This commit is contained in:
parent
2f1858d10e
commit
35911fb5c7
@ -61,7 +61,7 @@ header.
|
|||||||
create mode 100644 evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java
|
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
|
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
|
--- a/datatypes/src/main/java/org/hyperledger/besu/datatypes/Address.java
|
||||||
+++ b/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 @@
|
@@ -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
|
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
|
new file mode 100644
|
||||||
index 0000000..1dbb2b8
|
index 000000000..011fc2164
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java
|
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/AereFalconSupport.java
|
||||||
@@ -0,0 +1,94 @@
|
@@ -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
|
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
|
new file mode 100644
|
||||||
index 0000000..80aca57
|
index 000000000..e383b1f8f
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java
|
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon1024PrecompiledContract.java
|
||||||
@@ -0,0 +1,62 @@
|
@@ -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
|
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
|
new file mode 100644
|
||||||
index 0000000..5df074c
|
index 000000000..8c0a07ee6
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java
|
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/Falcon512PrecompiledContract.java
|
||||||
@@ -0,0 +1,62 @@
|
@@ -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
|
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
|
new file mode 100644
|
||||||
index 0000000..f25be64
|
index 000000000..8c41a2fb1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java
|
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/MLDSA44PrecompiledContract.java
|
||||||
@@ -0,0 +1,84 @@
|
@@ -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
|
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
|
--- a/evm/src/main/java/org/hyperledger/besu/evm/precompile/MainnetPrecompiledContracts.java
|
||||||
+++ b/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 @@
|
@@ -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
|
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
|
new file mode 100644
|
||||||
index 0000000..0c20e6a
|
index 000000000..fe0f0cf32
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java
|
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SHAKE256PrecompiledContract.java
|
||||||
@@ -0,0 +1,93 @@
|
@@ -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
|
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
|
new file mode 100644
|
||||||
index 0000000..2666602
|
index 000000000..5e7527aab
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java
|
+++ b/evm/src/main/java/org/hyperledger/besu/evm/precompile/SLHDSA128sPrecompiledContract.java
|
||||||
@@ -0,0 +1,84 @@
|
@@ -0,0 +1,84 @@
|
||||||
|
|||||||
@ -25433,6 +25433,3 @@ index c8eb53639..76c435677 100644
|
|||||||
private RangeHeaders processHeaders(
|
private RangeHeaders processHeaders(
|
||||||
final SyncTargetRange checkpointRange, final List<BlockHeader> headers) {
|
final SyncTargetRange checkpointRange, final List<BlockHeader> headers) {
|
||||||
if (checkpointRange.hasEnd()) {
|
if (checkpointRange.hasEnd()) {
|
||||||
--
|
|
||||||
2.43.0
|
|
||||||
|
|
||||||
|
|||||||
@ -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(-)
|
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
|
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
|
--- 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
|
+++ b/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/mainnet/feemarket/LondonFeeMarket.java
|
||||||
@@ -1,56 +1,87 @@
|
@@ -12,6 +12,24 @@
|
||||||
/*
|
|
||||||
* 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.
|
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@ -82,22 +71,7 @@ index 0ee4f74..83a639c 100644
|
|||||||
package org.hyperledger.besu.ethereum.mainnet.feemarket;
|
package org.hyperledger.besu.ethereum.mainnet.feemarket;
|
||||||
|
|
||||||
import org.hyperledger.besu.config.GenesisConfig;
|
import org.hyperledger.besu.config.GenesisConfig;
|
||||||
import org.hyperledger.besu.datatypes.Wei;
|
@@ -34,6 +52,19 @@ public class LondonFeeMarket implements BaseFeeMarket {
|
||||||
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;
|
|
||||||
|
|
||||||
private static final Wei DEFAULT_BASEFEE_FLOOR = Wei.of(7L);
|
private static final Wei DEFAULT_BASEFEE_FLOOR = Wei.of(7L);
|
||||||
|
|
||||||
@ -117,41 +91,7 @@ index 0ee4f74..83a639c 100644
|
|||||||
protected final Wei baseFeeInitialValue;
|
protected final Wei baseFeeInitialValue;
|
||||||
private final long londonForkBlockNumber;
|
private final long londonForkBlockNumber;
|
||||||
private final TransactionPriceCalculator txPriceCalculator;
|
private final TransactionPriceCalculator txPriceCalculator;
|
||||||
private final Wei baseFeeFloor;
|
@@ -83,6 +114,17 @@ public class LondonFeeMarket implements BaseFeeMarket {
|
||||||
|
|
||||||
LondonFeeMarket(final long londonForkBlockNumber, final Optional<Wei> baseFeePerGasOverride) {
|
|
||||||
this(TransactionPriceCalculator.eip1559(), londonForkBlockNumber, baseFeePerGasOverride);
|
|
||||||
}
|
|
||||||
|
|
||||||
LondonFeeMarket(
|
|
||||||
final TransactionPriceCalculator txPriceCalculator,
|
|
||||||
final long londonForkBlockNumber,
|
|
||||||
final Optional<Wei> 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))
|
|
||||||
.isPresent();
|
.isPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -169,7 +109,7 @@ index 0ee4f74..83a639c 100644
|
|||||||
@Override
|
@Override
|
||||||
public Wei computeBaseFee(
|
public Wei computeBaseFee(
|
||||||
final long blockNumber,
|
final long blockNumber,
|
||||||
final Wei parentBaseFee,
|
@@ -90,13 +132,13 @@ public class LondonFeeMarket implements BaseFeeMarket {
|
||||||
final long parentBlockGasUsed,
|
final long parentBlockGasUsed,
|
||||||
final long targetGasUsed) {
|
final long targetGasUsed) {
|
||||||
if (londonForkBlockNumber == blockNumber) {
|
if (londonForkBlockNumber == blockNumber) {
|
||||||
@ -185,20 +125,7 @@ index 0ee4f74..83a639c 100644
|
|||||||
} else if (parentBlockGasUsed > targetGasUsed) {
|
} else if (parentBlockGasUsed > targetGasUsed) {
|
||||||
gasDelta = parentBlockGasUsed - targetGasUsed;
|
gasDelta = parentBlockGasUsed - targetGasUsed;
|
||||||
final long denominator = getBasefeeMaxChangeDenominator();
|
final long denominator = getBasefeeMaxChangeDenominator();
|
||||||
feeDelta =
|
@@ -117,7 +159,7 @@ public class LondonFeeMarket implements BaseFeeMarket {
|
||||||
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,
|
|
||||||
parentBlockGasUsed,
|
parentBlockGasUsed,
|
||||||
targetGasUsed,
|
targetGasUsed,
|
||||||
baseFee);
|
baseFee);
|
||||||
@ -207,17 +134,3 @@ index 0ee4f74..83a639c 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user