mirror of https://github.com/hyperledger/besu
Update EIP-1559 implementation according to the latest changes (#1281)
Signed-off-by: Karim TAAM <karim.t2am@gmail.com> Co-authored-by: Abdelhamid Bakhta <abdelhamid.bakhta@consensys.net>pull/1314/head
parent
34b8683244
commit
5c375289a6
@ -0,0 +1,38 @@ |
||||
/* |
||||
* 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 |
||||
*/ |
||||
package org.hyperledger.besu.ethereum.api.util; |
||||
|
||||
import org.hyperledger.besu.ethereum.api.jsonrpc.internal.exception.InvalidJsonRpcRequestException; |
||||
import org.hyperledger.besu.ethereum.core.Transaction; |
||||
import org.hyperledger.besu.ethereum.rlp.RLP; |
||||
import org.hyperledger.besu.ethereum.rlp.RLPException; |
||||
|
||||
import org.apache.logging.log4j.LogManager; |
||||
import org.apache.logging.log4j.Logger; |
||||
import org.apache.tuweni.bytes.Bytes; |
||||
|
||||
public class DomainObjectDecodeUtils { |
||||
private static final Logger LOG = LogManager.getLogger(); |
||||
|
||||
public static Transaction decodeRawTransaction(final String rlp) |
||||
throws InvalidJsonRpcRequestException { |
||||
try { |
||||
return Transaction.readFrom(RLP.input(Bytes.fromHexString(rlp))); |
||||
} catch (final IllegalArgumentException | RLPException e) { |
||||
LOG.debug(e); |
||||
throw new InvalidJsonRpcRequestException("Invalid raw transaction hex", e); |
||||
} |
||||
} |
||||
} |
@ -1,64 +0,0 @@ |
||||
/* |
||||
* 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 |
||||
*/ |
||||
package org.hyperledger.besu.ethereum.mainnet.headervalidationrules; |
||||
|
||||
import org.hyperledger.besu.ethereum.core.BlockHeader; |
||||
import org.hyperledger.besu.ethereum.core.fees.EIP1559; |
||||
import org.hyperledger.besu.ethereum.core.fees.FeeMarket; |
||||
import org.hyperledger.besu.ethereum.mainnet.DetachedBlockHeaderValidationRule; |
||||
|
||||
import org.apache.logging.log4j.LogManager; |
||||
import org.apache.logging.log4j.Logger; |
||||
|
||||
public class EIP1559BlockHeaderGasLimitValidationRule implements DetachedBlockHeaderValidationRule { |
||||
private static final Logger LOG = LogManager.getLogger(); |
||||
private final EIP1559 eip1559; |
||||
private final FeeMarket feeMarket = FeeMarket.eip1559(); |
||||
|
||||
public EIP1559BlockHeaderGasLimitValidationRule(final EIP1559 eip1559) { |
||||
this.eip1559 = eip1559; |
||||
} |
||||
|
||||
@Override |
||||
public boolean validate(final BlockHeader header, final BlockHeader parent) { |
||||
if (!eip1559.isEIP1559(header.getNumber())) { |
||||
return true; |
||||
} |
||||
if (eip1559.isEIP1559Finalized(header.getNumber())) { |
||||
if (header.getGasLimit() != feeMarket.getMaxGas()) { |
||||
LOG.trace( |
||||
"Invalid block header: gas limit {} does not equal expected gas limit {}", |
||||
header.getGasLimit(), |
||||
feeMarket.getMaxGas()); |
||||
return false; |
||||
} else { |
||||
return true; |
||||
} |
||||
} |
||||
|
||||
final long numberOfIncrements = header.getNumber() - eip1559.getForkBlock(); |
||||
final long expectedGasLimit = |
||||
(feeMarket.getMaxGas() / 2) + (numberOfIncrements * feeMarket.getGasIncrementAmount()); |
||||
if (header.getGasLimit() != expectedGasLimit) { |
||||
LOG.trace( |
||||
"Invalid block header: gas limit {} does not equal expected gas limit {}", |
||||
header.getGasLimit(), |
||||
expectedGasLimit); |
||||
return false; |
||||
} |
||||
|
||||
return true; |
||||
} |
||||
} |
@ -1,110 +0,0 @@ |
||||
/* |
||||
* 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 |
||||
*/ |
||||
package org.hyperledger.besu.ethereum.mainnet.headervalidationrules; |
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat; |
||||
import static org.assertj.core.api.Java6Assertions.assertThatThrownBy; |
||||
import static org.hyperledger.besu.ethereum.mainnet.headervalidationrules.EIP1559Helper.blockHeader; |
||||
import static org.hyperledger.besu.ethereum.mainnet.headervalidationrules.EIP1559Helper.disableEIP1559; |
||||
import static org.hyperledger.besu.ethereum.mainnet.headervalidationrules.EIP1559Helper.enableEIP1559; |
||||
|
||||
import org.hyperledger.besu.config.experimental.ExperimentalEIPs; |
||||
import org.hyperledger.besu.ethereum.core.fees.EIP1559; |
||||
import org.hyperledger.besu.ethereum.core.fees.FeeMarket; |
||||
|
||||
import java.util.Optional; |
||||
|
||||
import org.junit.After; |
||||
import org.junit.Before; |
||||
import org.junit.Test; |
||||
|
||||
public class EIP1559BlockHeaderGasLimitValidationRuleTest { |
||||
|
||||
private static final long FORK_BLOCK = 800L; |
||||
private final EIP1559 eip1559 = new EIP1559(FORK_BLOCK); |
||||
private EIP1559BlockHeaderGasLimitValidationRule validationRule; |
||||
private final FeeMarket feeMarket = FeeMarket.eip1559(); |
||||
private long finalizedForkBlock; |
||||
|
||||
@Before |
||||
public void setUp() { |
||||
validationRule = new EIP1559BlockHeaderGasLimitValidationRule(eip1559); |
||||
finalizedForkBlock = FORK_BLOCK + feeMarket.getDecayRange(); |
||||
} |
||||
|
||||
@After |
||||
public void reset() { |
||||
ExperimentalEIPs.eip1559Enabled = ExperimentalEIPs.EIP1559_ENABLED_DEFAULT_VALUE; |
||||
} |
||||
|
||||
@Test |
||||
public void eipActivationShouldBeGuardedProperly() { |
||||
disableEIP1559(); |
||||
assertThatThrownBy( |
||||
() -> validationRule.validate(blockHeader(FORK_BLOCK - 1, 0, Optional.empty()), null)) |
||||
.isInstanceOf(RuntimeException.class) |
||||
.hasMessageContaining("EIP-1559 is not enabled"); |
||||
} |
||||
|
||||
@Test |
||||
public void shouldReturnTrueBeforeFork() { |
||||
enableEIP1559(); |
||||
assertThat(validationRule.validate(blockHeader(FORK_BLOCK - 1, 0, Optional.empty()), null)) |
||||
.isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void shouldReturnTrueIfMaxGasLimitAfterFinalizedFork() { |
||||
enableEIP1559(); |
||||
assertThat( |
||||
validationRule.validate( |
||||
blockHeader(finalizedForkBlock + 1, 0, Optional.empty(), feeMarket.getMaxGas()), |
||||
null)) |
||||
.isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void shouldReturnFalseIfNotMaxGasLimitAfterFinalizedFork() { |
||||
enableEIP1559(); |
||||
assertThat( |
||||
validationRule.validate( |
||||
blockHeader(finalizedForkBlock + 1, 0, Optional.empty(), feeMarket.getMaxGas() - 1), |
||||
null)) |
||||
.isFalse(); |
||||
} |
||||
|
||||
@Test |
||||
public void shouldReturnTrueIfValidGasLimitAfterFork() { |
||||
enableEIP1559(); |
||||
assertThat( |
||||
validationRule.validate( |
||||
blockHeader( |
||||
FORK_BLOCK + 1, |
||||
0, |
||||
Optional.empty(), |
||||
(feeMarket.getMaxGas() / 2) + feeMarket.getGasIncrementAmount()), |
||||
null)) |
||||
.isTrue(); |
||||
} |
||||
|
||||
@Test |
||||
public void shouldReturnFalseIfInvalidGasLimitAfterFork() { |
||||
enableEIP1559(); |
||||
assertThat( |
||||
validationRule.validate( |
||||
blockHeader(FORK_BLOCK + 1, 0, Optional.empty(), feeMarket.getMaxGas() - 1), null)) |
||||
.isFalse(); |
||||
} |
||||
} |
@ -0,0 +1,704 @@ |
||||
[ |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1083333333 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1053571428 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1031250000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1013888888 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1125000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1093750000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1050000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1020833333 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1000000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":984375000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1000000000, |
||||
"parentGasUsed":7000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":972222222 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1191666666 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1158928571 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1134375000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1115277777 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1237500000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1210000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1168750000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1139285714 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1117187500 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1100000000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1100000000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1222031250 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1222031250 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1222031250 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1222031250 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1194875000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1154140625 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1125044642 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1103222656 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1086250000, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1086250000 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1206755859 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1206755859 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1206755859 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1206755859 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1179939062 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1139713867 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1110981584 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1089432373 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1072671875, |
||||
"parentGasUsed":9000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1072671875 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1191671410 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1191671410 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1191671410 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1191671410 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1191671410 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1147557500 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1116028649 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1092382010 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059263476, |
||||
"parentGasUsed":10001000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1073990180 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1191686305 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1059276716, |
||||
"parentGasUsed":16000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1162261952 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":0, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":918084097 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":918084751 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":918084424 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":918084314 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":918084260 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":918084227 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":918084205 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":918084189 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":918084178 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":918084168 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":918739870 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":918411983 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":918302687 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":918248039 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":918215250 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":918193391 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":918177778 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":918166067 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":5000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":918156959 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":983661531 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":950872813 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":939943241 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":934478454 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":931199583 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":929013668 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":927452301 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":926281275 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":500000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":925370477 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":1000000, |
||||
"expectedBaseFee":1180393837 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":2000000, |
||||
"expectedBaseFee":1180393837 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":3000000, |
||||
"expectedBaseFee":1180393837 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":4000000, |
||||
"expectedBaseFee":1180393837 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":5000000, |
||||
"expectedBaseFee":1180393837 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":6000000, |
||||
"expectedBaseFee":1136675547 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":7000000, |
||||
"expectedBaseFee":1105448197 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":8000000, |
||||
"expectedBaseFee":1082027684 |
||||
}, |
||||
{ |
||||
"parentBaseFee":1049238967, |
||||
"parentGasUsed":10000000, |
||||
"parentTargetGasUsed":9000000, |
||||
"expectedBaseFee":1063811730 |
||||
} |
||||
] |
Loading…
Reference in new issue