Skip to content
This repository has been archived by the owner on Sep 26, 2019. It is now read-only.

Commit

Permalink
remove istanbul separation of verisioning (#1794)
Browse files Browse the repository at this point in the history
  • Loading branch information
Danno Ferrin authored Jul 30, 2019
1 parent 4f531b5 commit 6e4d386
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 48 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
*/
package tech.pegasys.pantheon.ethereum.mainnet;

import static tech.pegasys.pantheon.ethereum.mainnet.MainnetProtocolSpecs.ISTANBUL_ACCOUNT_VERSION;

import tech.pegasys.pantheon.ethereum.core.Account;
import tech.pegasys.pantheon.ethereum.vm.EVM;
import tech.pegasys.pantheon.ethereum.vm.GasCalculator;
Expand Down Expand Up @@ -135,7 +133,7 @@ static EVM constantinople(final GasCalculator gasCalculator) {
}

static EVM istanbul(final GasCalculator gasCalculator, final BigInteger chainId) {
final OperationRegistry registry = new OperationRegistry(2);
final OperationRegistry registry = new OperationRegistry();

registerIstanbulOpcodes(registry, gasCalculator, Account.DEFAULT_VERSION, chainId);

Expand Down Expand Up @@ -271,14 +269,11 @@ private static void registerIstanbulOpcodes(
registry.put(
new SStoreOperation(gasCalculator, SStoreOperation.EIP_1706_MINIMUM),
Account.DEFAULT_VERSION);

registerConstantinopleOpcodes(registry, gasCalculator, ISTANBUL_ACCOUNT_VERSION);
registry.put(
new ChainIdOperation(gasCalculator, Bytes32.leftPad(BytesValue.of(chainId.toByteArray()))),
ISTANBUL_ACCOUNT_VERSION);
registerConstantinopleOpcodes(registry, gasCalculator, ISTANBUL_ACCOUNT_VERSION);
Account.DEFAULT_VERSION);
registry.put(
new SStoreOperation(gasCalculator, SStoreOperation.EIP_1706_MINIMUM),
MainnetProtocolSpecs.ISTANBUL_ACCOUNT_VERSION);
Account.DEFAULT_VERSION);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
*/
package tech.pegasys.pantheon.ethereum.mainnet;

import static tech.pegasys.pantheon.ethereum.mainnet.MainnetProtocolSpecs.ISTANBUL_ACCOUNT_VERSION;

import tech.pegasys.pantheon.ethereum.core.Account;
import tech.pegasys.pantheon.ethereum.core.Address;
import tech.pegasys.pantheon.ethereum.mainnet.precompiles.AltBN128AddPrecompiledContract;
Expand Down Expand Up @@ -87,21 +85,19 @@ public static PrecompileContractRegistry istanbul(
final PrecompileContractRegistry registry = new PrecompileContractRegistry();
populateForByzantium(
registry, precompiledContractConfiguration.getGasCalculator(), Account.DEFAULT_VERSION);
populateForByzantium(
registry, precompiledContractConfiguration.getGasCalculator(), ISTANBUL_ACCOUNT_VERSION);
registry.put(
Address.ALTBN128_ADD,
ISTANBUL_ACCOUNT_VERSION,
Account.DEFAULT_VERSION,
AltBN128AddPrecompiledContract.istanbul(
precompiledContractConfiguration.getGasCalculator()));
registry.put(
Address.ALTBN128_MUL,
ISTANBUL_ACCOUNT_VERSION,
Account.DEFAULT_VERSION,
AltBN128MulPrecompiledContract.istanbul(
precompiledContractConfiguration.getGasCalculator()));
registry.put(
Address.ALTBN128_PAIRING,
ISTANBUL_ACCOUNT_VERSION,
Account.DEFAULT_VERSION,
AltBN128PairingPrecompiledContract.istanbul(
precompiledContractConfiguration.getGasCalculator()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ public abstract class MainnetProtocolSpecs {

public static final int SPURIOUS_DRAGON_CONTRACT_SIZE_LIMIT = 24576;

public static final int ISTANBUL_ACCOUNT_VERSION = 1;

private static final Address RIPEMD160_PRECOMPILE =
Address.fromHexString("0x0000000000000000000000000000000000000003");

Expand Down Expand Up @@ -293,42 +291,13 @@ public static ProtocolSpecBuilder<Void> istanbulDefinition(
final boolean enableRevertReason) {
final int contractSizeLimit =
configContractSizeLimit.orElse(SPURIOUS_DRAGON_CONTRACT_SIZE_LIMIT);
final int stackSizeLimit = configStackSizeLimit.orElse(DEFAULT_MAX_STACK_SIZE);
return constantinopleFixDefinition(
chainId, configContractSizeLimit, configStackSizeLimit, enableRevertReason)
.gasCalculator(IstanbulGasCalculator::new)
.evmBuilder(
gasCalculator ->
MainnetEvmRegistries.istanbul(gasCalculator, chainId.orElse(BigInteger.ZERO)))
.precompileContractRegistryBuilder(MainnetPrecompiledContractRegistries::istanbul)
.transactionProcessorBuilder(
(gasCalculator,
transactionValidator,
contractCreationProcessor,
messageCallProcessor) ->
new MainnetTransactionProcessor(
gasCalculator,
transactionValidator,
contractCreationProcessor,
messageCallProcessor,
true,
stackSizeLimit,
ISTANBUL_ACCOUNT_VERSION))
.privateTransactionProcessorBuilder(
(gasCalculator,
transactionValidator,
contractCreationProcessor,
messageCallProcessor,
privateTransactionValidator) ->
new PrivateTransactionProcessor(
gasCalculator,
transactionValidator,
contractCreationProcessor,
messageCallProcessor,
false,
stackSizeLimit,
ISTANBUL_ACCOUNT_VERSION,
privateTransactionValidator))
.contractCreationProcessorBuilder(
(gasCalculator, evm) ->
new MainnetContractCreationProcessor(
Expand All @@ -337,8 +306,7 @@ public static ProtocolSpecBuilder<Void> istanbulDefinition(
true,
Collections.singletonList(MaxCodeSizeRule.of(contractSizeLimit)),
1,
SPURIOUS_DRAGON_FORCE_DELETE_WHEN_EMPTY_ADDRESSES,
ISTANBUL_ACCOUNT_VERSION))
SPURIOUS_DRAGON_FORCE_DELETE_WHEN_EMPTY_ADDRESSES))
.name("Istanbul");
}

Expand Down

0 comments on commit 6e4d386

Please sign in to comment.