From 229440065ded4722cc759a59fbed41dff04b3510 Mon Sep 17 00:00:00 2001 From: Ruben Buniatyan Date: Mon, 24 Apr 2023 19:06:03 +0200 Subject: [PATCH 1/5] Refactor and remove obsolete stuff --- scripts/deployment/build-runner.sh | 5 +- .../Contract.ConstantContract.cs | 98 --------- .../Nethermind.Abi.Contracts/Contract.cs | 194 ------------------ .../Nethermind.Abi.Contracts.csproj | 7 - ...--c7f8522f15c189e00d2f895b4528b4f84516cd7b | 1 - ...--5d55020e862bc876c8d2e9a4eeeda935ce6438c6 | 1 - .../Nethermind.Runner/Data/genesis.json | 48 ----- .../Data/static-nodes-baseline-hosts.json | 4 - .../Data/static-nodes-baseline.json | 4 - .../Data/static-nodes-ndm-local.json | 4 - .../{Dockerfile.debug => Dockerfile} | 0 .../Nethermind.Runner.csproj | 55 ++--- .../PublishProfiles/FolderProfile.pubxml | 13 -- 13 files changed, 16 insertions(+), 418 deletions(-) delete mode 100644 src/Nethermind/Nethermind.Abi.Contracts/Contract.ConstantContract.cs delete mode 100644 src/Nethermind/Nethermind.Abi.Contracts/Contract.cs delete mode 100644 src/Nethermind/Nethermind.Abi.Contracts/Nethermind.Abi.Contracts.csproj delete mode 100644 src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-10-57.499744000Z--c7f8522f15c189e00d2f895b4528b4f84516cd7b delete mode 100644 src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-15-53.949603000Z--5d55020e862bc876c8d2e9a4eeeda935ce6438c6 delete mode 100644 src/Nethermind/Nethermind.Runner/Data/genesis.json delete mode 100644 src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline-hosts.json delete mode 100644 src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline.json delete mode 100644 src/Nethermind/Nethermind.Runner/Data/static-nodes-ndm-local.json rename src/Nethermind/Nethermind.Runner/{Dockerfile.debug => Dockerfile} (100%) delete mode 100644 src/Nethermind/Nethermind.Runner/Properties/PublishProfiles/FolderProfile.pubxml diff --git a/scripts/deployment/build-runner.sh b/scripts/deployment/build-runner.sh index c7ce72b9963..a3c0b05bc6b 100755 --- a/scripts/deployment/build-runner.sh +++ b/scripts/deployment/build-runner.sh @@ -18,15 +18,12 @@ do dotnet publish -c release -r $rid -o $OUTPUT_PATH/$rid --sc true \ -p:BuildTimestamp=$3 \ -p:Commit=$2 \ + -p:DebugType=none \ -p:Deterministic=true \ -p:IncludeAllContentForSelfExtract=true \ -p:PublishSingleFile=true - rm -rf $OUTPUT_PATH/$rid/*.pdb - rm -rf $OUTPUT_PATH/$rid/Data/* - rm -rf $OUTPUT_PATH/$rid/Hive cp -r configs $OUTPUT_PATH/$rid - cp Data/static-nodes.json $OUTPUT_PATH/$rid/Data mkdir $OUTPUT_PATH/$rid/keystore done diff --git a/src/Nethermind/Nethermind.Abi.Contracts/Contract.ConstantContract.cs b/src/Nethermind/Nethermind.Abi.Contracts/Contract.ConstantContract.cs deleted file mode 100644 index a243d6851a9..00000000000 --- a/src/Nethermind/Nethermind.Abi.Contracts/Contract.ConstantContract.cs +++ /dev/null @@ -1,98 +0,0 @@ -// SPDX-FileCopyrightText: 2022 Demerzel Solutions Limited -// SPDX-License-Identifier: LGPL-3.0-only - -using System; -using Nethermind.Abi; -using Nethermind.Core; -using Nethermind.Core.Crypto; -using Nethermind.Evm; -using Nethermind.State; - -namespace Nethermind.Consensus.AuRa.Contracts -{ - public partial class Contract - { - /// - /// Gets constant version of the contract. Allowing to call contract methods without state modification. - /// - /// Source of readonly to call transactions. - /// Constant version of the contract. - protected ConstantContract GetConstant(IReadOnlyTransactionProcessorSource readOnlyReadOnlyTransactionProcessorSource) => - new ConstantContract(this, readOnlyReadOnlyTransactionProcessorSource); - - /// - /// Constant version of the contract. Allows to call contract methods without state modification. - /// - protected class ConstantContract - { - private readonly Contract _contract; - private readonly IReadOnlyTransactionProcessorSource _readOnlyReadOnlyTransactionProcessorSource; - - public ConstantContract(Contract contract, IReadOnlyTransactionProcessorSource readOnlyReadOnlyTransactionProcessorSource) - { - _contract = contract; - _readOnlyReadOnlyTransactionProcessorSource = readOnlyReadOnlyTransactionProcessorSource ?? throw new ArgumentNullException(nameof(readOnlyReadOnlyTransactionProcessorSource)); - } - - private byte[] Call(BlockHeader parentHeader, Transaction transaction) - { - using var readOnlyTransactionProcessor = _readOnlyReadOnlyTransactionProcessorSource.Get(GetState(parentHeader)); - return CallCore(readOnlyTransactionProcessor, parentHeader, transaction, true); - } - - private object[] Call(BlockHeader parentHeader, AbiFunctionDescription function, Address sender, params object[] arguments) - { - var result = CallRaw(parentHeader, function, sender, arguments); - var objects = _contract.AbiEncoder.Decode(function.GetReturnInfo(), result); - return objects; - } - - /// - /// - /// - /// - /// - /// - /// - /// - /// - public T Call(BlockHeader parentHeader, AbiFunctionDescription function, Address sender, params object[] arguments) - { - return (T)Call(parentHeader, function, sender, arguments)[0]; - } - - /// - /// - /// - /// - /// - /// - /// - /// - /// - /// - public (T1, T2) Call(BlockHeader parentHeader, AbiFunctionDescription function, Address sender, params object[] arguments) - { - var objects = Call(parentHeader, function, sender, arguments); - return ((T1)objects[0], (T2)objects[1]); - } - - /// - /// - /// - /// - /// - /// - /// - /// - public byte[] CallRaw(BlockHeader parentHeader, AbiFunctionDescription function, Address sender, params object[] arguments) - { - var transaction = _contract.GenerateTransaction(function, sender, arguments); - var result = Call(parentHeader, transaction); - return result; - } - - private Keccak GetState(BlockHeader parentHeader) => parentHeader?.StateRoot ?? Keccak.EmptyTreeHash; - } - } -} diff --git a/src/Nethermind/Nethermind.Abi.Contracts/Contract.cs b/src/Nethermind/Nethermind.Abi.Contracts/Contract.cs deleted file mode 100644 index e31e2382d45..00000000000 --- a/src/Nethermind/Nethermind.Abi.Contracts/Contract.cs +++ /dev/null @@ -1,194 +0,0 @@ -// SPDX-FileCopyrightText: 2022 Demerzel Solutions Limited -// SPDX-License-Identifier: LGPL-3.0-only - -using System; -using Nethermind.Abi; -using Nethermind.Core; -using Nethermind.Crypto; -using Nethermind.Dirichlet.Numerics; -using Nethermind.Evm; -using Nethermind.Evm.Tracing; -using Nethermind.Specs.Forks; -using Nethermind.State; - -namespace Nethermind.Consensus.AuRa.Contracts -{ - /// - /// Base class for contracts that will be interacted by the node engine. - /// - /// - /// This class is intended to be inherited and concrete contract class should provide contract specific methods to be able for the node to use the contract. - /// - /// There are 3 main ways a node can interact with contract: - /// 1. It can that will be added to a block. - /// 2. It can contract and modify current state of execution. - /// 3. It can constant contract. This by design doesn't modify current state. It is designed as read-only operation that will allow the node to make decisions how it should operate. - /// - public abstract partial class Contract - { - /// - /// Default gas limit of transactions generated from contract. - /// - public const long DefaultContractGasLimit = 1_600_000L; - - private readonly ITransactionProcessor _transactionProcessor; - protected IAbiEncoder AbiEncoder { get; } - protected Address ContractAddress { get; } - - /// - /// Creates contract - /// - /// Transaction processor on which all should be run on. - /// Binary interface encoder/decoder. - /// Address where contract is deployed. - protected Contract(ITransactionProcessor transactionProcessor, IAbiEncoder abiEncoder, Address contractAddress) - { - _transactionProcessor = transactionProcessor ?? throw new ArgumentNullException(nameof(transactionProcessor)); - AbiEncoder = abiEncoder ?? throw new ArgumentNullException(nameof(abiEncoder)); - ContractAddress = contractAddress ?? throw new ArgumentNullException(nameof(contractAddress)); - } - - private Transaction GenerateTransaction(byte[] transactionData, Address sender, long gasLimit = DefaultContractGasLimit) where T : Transaction, new() - { - var transaction = new T() - { - Value = UInt256.Zero, - Data = transactionData, - To = ContractAddress, - SenderAddress = sender ?? Address.SystemUser, - GasLimit = gasLimit, - GasPrice = UInt256.Zero, - }; - - transaction.Hash = transaction.CalculateHash(); - - return transaction; - } - - /// - /// Generates transaction. - /// That transaction can be added to a produced block or broadcasted - if is used as . - /// That transaction can be used in if is used as . - /// - /// Function in contract that is called by the transaction. - /// Sender of the transaction - caller of the function. - /// Arguments to the function. - /// Type of . - /// Transaction. - protected Transaction GenerateTransaction(AbiFunctionDescription function, Address sender, params object[] arguments) where T : Transaction, new() - => GenerateTransaction(AbiEncoder.Encode(function.GetCallInfo(), arguments), sender); - - private byte[] Call(BlockHeader header, Transaction transaction) => CallCore(_transactionProcessor, header, transaction); - - /// - /// Calls the function in contract, state modification is allowed. - /// - /// Header in which context the call is done. - /// Function in contract that is being called. - /// Sender of the transaction - caller of the function. - /// Arguments to the function. - /// Deserialized return value of the based on its definition. - protected object[] Call(BlockHeader header, AbiFunctionDescription function, Address sender, params object[] arguments) - { - var transaction = GenerateTransaction(function, sender, arguments); - var result = Call(header, transaction); - var objects = AbiEncoder.Decode(function.GetReturnInfo(), result); - return objects; - } - - /// - /// Helper method that actually does the actual call to . - /// - /// Actual transaction processor to be called upon. - /// Header in which context the call is done. - /// Transaction to be executed. - /// Is it restore call. - /// Bytes with result. - /// Thrown when there is an exception during execution or is . - private static byte[] CallCore(ITransactionProcessor transactionProcessor, BlockHeader header, Transaction transaction, bool callAndRestore = false) - { - bool failure; - - CallOutputTracer tracer = new CallOutputTracer(); - - try - { - if (callAndRestore) - { - transactionProcessor.CallAndRestore(transaction, header, tracer); - } - else - { - transactionProcessor.Execute(transaction, header, tracer); - } - - failure = tracer.StatusCode != StatusCode.Success; - } - catch (Exception e) - { - throw new AuRaException($"System call returned an exception '{e.Message}' at block {header.Number}.", e); - } - - if (failure) - { - throw new AuRaException($"System call returned error '{tracer.Error}' at block {header.Number}."); - } - else - { - return tracer.ReturnValue; - } - } - - private bool TryCall(BlockHeader header, Transaction transaction, out byte[] result) - { - CallOutputTracer tracer = new CallOutputTracer(); - - try - { - _transactionProcessor.Execute(transaction, header, tracer); - result = tracer.ReturnValue; - return tracer.StatusCode == StatusCode.Success; - } - catch (Exception) - { - result = null; - return false; - } - } - - /// - /// Same as but returns false instead of throwing . - /// - /// Header in which context the call is done. - /// Function in contract that is being called. - /// Sender of the transaction - caller of the function. - /// Deserialized return value of the based on its definition. - /// Arguments to the function. - /// true if function was otherwise false. - protected bool TryCall(BlockHeader header, AbiFunctionDescription function, Address sender, out object[] result, params object[] arguments) - { - var transaction = GenerateTransaction(function, sender, arguments); - if (TryCall(header, transaction, out var bytes)) - { - result = AbiEncoder.Decode(function.GetReturnInfo(), bytes); - return true; - } - - result = null; - return false; - } - - /// - /// Creates account if its not in current state. - /// - /// State provider. - protected void EnsureSystemAccount(IStateProvider stateProvider) - { - if (!stateProvider.AccountExists(Address.SystemUser)) - { - stateProvider.CreateAccount(Address.SystemUser, UInt256.Zero); - stateProvider.Commit(Homestead.Instance); - } - } - } -} diff --git a/src/Nethermind/Nethermind.Abi.Contracts/Nethermind.Abi.Contracts.csproj b/src/Nethermind/Nethermind.Abi.Contracts/Nethermind.Abi.Contracts.csproj deleted file mode 100644 index 4f444d8c8b9..00000000000 --- a/src/Nethermind/Nethermind.Abi.Contracts/Nethermind.Abi.Contracts.csproj +++ /dev/null @@ -1,7 +0,0 @@ - - - - net6.0 - - - diff --git a/src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-10-57.499744000Z--c7f8522f15c189e00d2f895b4528b4f84516cd7b b/src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-10-57.499744000Z--c7f8522f15c189e00d2f895b4528b4f84516cd7b deleted file mode 100644 index ba5f01de6fb..00000000000 --- a/src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-10-57.499744000Z--c7f8522f15c189e00d2f895b4528b4f84516cd7b +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"id":"14fe1237-763c-42ba-81a5-5faba337c9e6","address":"c7f8522f15c189e00d2f895b4528b4f84516cd7b","crypto":{"ciphertext":"a6365b6d69000c4222185e00bc564d64d113687a8c123b0e4be3af5afb2f4d08","cipherparams":{"iv":"ac1a35c5d526e9967011a5c172361122"},"cipher":"aes-128-ctr","kdf":"scrypt","kdfparams":{"dklen":32,"salt":"d8d7d7970c1c727c592f8759eafffd9c549db902aa1e0175f9c037ea4daa9540","n":262144,"r":8,"p":1},"mac":"1c5f0c29e0968489f09c66f2216c79bc46ad98af0225f23eb65e35f909d1a076"}} \ No newline at end of file diff --git a/src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-15-53.949603000Z--5d55020e862bc876c8d2e9a4eeeda935ce6438c6 b/src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-15-53.949603000Z--5d55020e862bc876c8d2e9a4eeeda935ce6438c6 deleted file mode 100644 index bd0b1dcd8a0..00000000000 --- a/src/Nethermind/Nethermind.Runner/Data/UTC--2020-03-20T18-15-53.949603000Z--5d55020e862bc876c8d2e9a4eeeda935ce6438c6 +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"id":"8b93044f-bf89-4048-a641-c57def290288","address":"5d55020e862bc876c8d2e9a4eeeda935ce6438c6","crypto":{"ciphertext":"b729cc262cefe41918f949461afbd4b0e38e9a90ce3cc4a64558a7959ce6aac4","cipherparams":{"iv":"26229459226d8edba74c6110b9039e75"},"cipher":"aes-128-ctr","kdf":"scrypt","kdfparams":{"dklen":32,"salt":"94588764af967a2ef0c248edb476bedc022cbc7c42a9696587bbed3101c4cb8f","n":262144,"r":8,"p":1},"mac":"cbf1858e82966e7b54674cf44befae35e6060359e8f3e93520ac45d829ff6e20"}} \ No newline at end of file diff --git a/src/Nethermind/Nethermind.Runner/Data/genesis.json b/src/Nethermind/Nethermind.Runner/Data/genesis.json deleted file mode 100644 index 7c3146940dc..00000000000 --- a/src/Nethermind/Nethermind.Runner/Data/genesis.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "nonce": "0x0000000000000042", - "difficulty": "0x20000", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "coinbase": "0x0000000000000000000000000000000000000000", - "timestamp": "0x00", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "extraData": "", - "gasLimit": "0x2fefd8", - "alloc": { - "dbdbdb2cbd23b783741e8d7fcf51e459b497e4a6": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "e6716f9544a56c530d868e4bfbacb172315bdead": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "b9c015918bdaba24b4ff057a92a3873d6eb201be": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "1a26338f0d905e295fccb71fa9ea849ffa12aaf4": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "2ef47100e0787b915105fd5e3f4ff6752079d5cb": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "cd2a3d9f938e13cd947ec05abc7fe734df8dd826": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "6c386a4b26f73c802f34673f7248bb118f97424a": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "e4157b34ea9615cfbde6b4fda419828124b70c78": { - "balance": "1606938044258990275541962092341162602522202993782792835301376" - }, - "0000000000000000000000000000000000000001": { - "balance": "1" - }, - "0000000000000000000000000000000000000002": { - "balance": "1" - }, - "0000000000000000000000000000000000000003": { - "balance": "1" - }, - "0000000000000000000000000000000000000004": { - "balance": "1" - } - } -} diff --git a/src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline-hosts.json b/src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline-hosts.json deleted file mode 100644 index d4599285f72..00000000000 --- a/src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline-hosts.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - "enode://f394a2bf7f206d49902aa06a30bbc12228622ba5c10e171b77e59303aded1b8fb2a194bc078e504ce68a202252987704c0c489a1e290f4c197c7a539cf2b1b63@bob-nethermind:30111", - "enode://c1a2d0ecc5d76631e6ab7934fc0e420e094b3b02a265872d1e026c70f79ec5ee5d6faf12c20eec05707f0a3ef279a4916b69da93c0f634de4c4299ec1fa6dd08@alice-nethermind:30222" -] diff --git a/src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline.json b/src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline.json deleted file mode 100644 index b8b3e662d9b..00000000000 --- a/src/Nethermind/Nethermind.Runner/Data/static-nodes-baseline.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - "enode://f394a2bf7f206d49902aa06a30bbc12228622ba5c10e171b77e59303aded1b8fb2a194bc078e504ce68a202252987704c0c489a1e290f4c197c7a539cf2b1b63@127.0.0.1:30111", - "enode://c1a2d0ecc5d76631e6ab7934fc0e420e094b3b02a265872d1e026c70f79ec5ee5d6faf12c20eec05707f0a3ef279a4916b69da93c0f634de4c4299ec1fa6dd08@127.0.0.1:30222" -] diff --git a/src/Nethermind/Nethermind.Runner/Data/static-nodes-ndm-local.json b/src/Nethermind/Nethermind.Runner/Data/static-nodes-ndm-local.json deleted file mode 100644 index 72524b547a9..00000000000 --- a/src/Nethermind/Nethermind.Runner/Data/static-nodes-ndm-local.json +++ /dev/null @@ -1,4 +0,0 @@ -[ - "enode://f394a2bf7f206d49902aa06a30bbc12228622ba5c10e171b77e59303aded1b8fb2a194bc078e504ce68a202252987704c0c489a1e290f4c197c7a539cf2b1b63@127.0.0.1:30304", - "enode://c1a2d0ecc5d76631e6ab7934fc0e420e094b3b02a265872d1e026c70f79ec5ee5d6faf12c20eec05707f0a3ef279a4916b69da93c0f634de4c4299ec1fa6dd08@127.0.0.1:30305" -] diff --git a/src/Nethermind/Nethermind.Runner/Dockerfile.debug b/src/Nethermind/Nethermind.Runner/Dockerfile similarity index 100% rename from src/Nethermind/Nethermind.Runner/Dockerfile.debug rename to src/Nethermind/Nethermind.Runner/Dockerfile diff --git a/src/Nethermind/Nethermind.Runner/Nethermind.Runner.csproj b/src/Nethermind/Nethermind.Runner/Nethermind.Runner.csproj index 3c21292b2be..8574b92fa30 100644 --- a/src/Nethermind/Nethermind.Runner/Nethermind.Runner.csproj +++ b/src/Nethermind/Nethermind.Runner/Nethermind.Runner.csproj @@ -3,23 +3,20 @@ Exe net7.0 latest - true - true - true annotations - true - Linux - Dockerfile.debug - -v $(NETHERMIND_DATA_DIR):/data -p 8545:8545 -p 8551:8551 -p 30303:30303 - 03db39d0-4200-473e-9ff8-4a48d496381f - true + true + false + false + true + true true + true - true - false - false + Linux + -v $(NETHERMIND_DATA_DIR):/data -p 8545:8545 -p 8551:8551 -p 30303:30303 + 03db39d0-4200-473e-9ff8-4a48d496381f @@ -39,6 +36,7 @@ + @@ -68,6 +66,7 @@ + chainspec\%(RecursiveDir)%(Filename)%(Extension) @@ -76,43 +75,19 @@ PreserveNewest - - PreserveNewest - - - - - PreserveNewest - true PreserveNewest PreserveNewest - - chainspec\themerge_devnet_m4.json + + PreserveNewest - - Always - - - - - - - - - - - - - <_ContentIncludedByDefault Remove="Contracts\EntryPoint.json" /> - @@ -122,12 +97,12 @@ - + - + diff --git a/src/Nethermind/Nethermind.Runner/Properties/PublishProfiles/FolderProfile.pubxml b/src/Nethermind/Nethermind.Runner/Properties/PublishProfiles/FolderProfile.pubxml deleted file mode 100644 index 061c5ea87ae..00000000000 --- a/src/Nethermind/Nethermind.Runner/Properties/PublishProfiles/FolderProfile.pubxml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - FileSystem - Release - netcoreapp3.1 - bin\Release\PublishOutput - - \ No newline at end of file From 9bb07b77019c88fae0de0203ef2f703a6aa69507 Mon Sep 17 00:00:00 2001 From: Ruben Buniatyan Date: Mon, 24 Apr 2023 19:24:24 +0200 Subject: [PATCH 2/5] Add `Nethermind.JsonRpc.TraceStore` to Dockerfile --- src/Nethermind/Nethermind.Runner/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Nethermind/Nethermind.Runner/Dockerfile b/src/Nethermind/Nethermind.Runner/Dockerfile index 0276a33c4af..6c27772f767 100644 --- a/src/Nethermind/Nethermind.Runner/Dockerfile +++ b/src/Nethermind/Nethermind.Runner/Dockerfile @@ -31,6 +31,7 @@ COPY ["Nethermind.HealthChecks/Nethermind.HealthChecks.csproj", "Nethermind.Heal COPY ["Nethermind.Hive/Nethermind.Hive.csproj", "Nethermind.Hive/"] COPY ["Nethermind.Init/Nethermind.Init.csproj", "Nethermind.Init/"] COPY ["Nethermind.JsonRpc/Nethermind.JsonRpc.csproj", "Nethermind.JsonRpc/"] +COPY ["Nethermind.JsonRpc.TraceStore/Nethermind.JsonRpc.TraceStore.csproj", "Nethermind.JsonRpc.TraceStore/"] COPY ["Nethermind.Logging.NLog/Nethermind.Logging.NLog.csproj", "Nethermind.Logging.NLog/"] COPY ["Nethermind.Merge.AuRa/Nethermind.Merge.AuRa.csproj", "Nethermind.Merge.AuRa/"] COPY ["Nethermind.Merge.Plugin/Nethermind.Merge.Plugin.csproj", "Nethermind.Merge.Plugin/"] From 2a2b383e95b2dd9879d2091b84986c2dc24ca6aa Mon Sep 17 00:00:00 2001 From: Ruben Buniatyan Date: Mon, 24 Apr 2023 21:41:56 +0200 Subject: [PATCH 3/5] Remove `Nethermind.Numerics.Dirichlet` package --- src/Nethermind/Directory.Packages.props | 1 - src/Nethermind/Nethermind.Benchmark/Nethermind.Benchmark.csproj | 1 - .../Nethermind.Serialization.Ssz.Test/BitArrayTests.cs | 2 -- 3 files changed, 4 deletions(-) diff --git a/src/Nethermind/Directory.Packages.props b/src/Nethermind/Directory.Packages.props index e91f6baf5bd..cfb7dad9d3f 100644 --- a/src/Nethermind/Directory.Packages.props +++ b/src/Nethermind/Directory.Packages.props @@ -45,7 +45,6 @@ - diff --git a/src/Nethermind/Nethermind.Benchmark/Nethermind.Benchmark.csproj b/src/Nethermind/Nethermind.Benchmark/Nethermind.Benchmark.csproj index 6c72bc5e6bc..3e8e859642b 100644 --- a/src/Nethermind/Nethermind.Benchmark/Nethermind.Benchmark.csproj +++ b/src/Nethermind/Nethermind.Benchmark/Nethermind.Benchmark.csproj @@ -12,7 +12,6 @@ - diff --git a/src/Nethermind/Nethermind.Serialization.Ssz.Test/BitArrayTests.cs b/src/Nethermind/Nethermind.Serialization.Ssz.Test/BitArrayTests.cs index 98813582872..c1edd3bcdff 100644 --- a/src/Nethermind/Nethermind.Serialization.Ssz.Test/BitArrayTests.cs +++ b/src/Nethermind/Nethermind.Serialization.Ssz.Test/BitArrayTests.cs @@ -7,8 +7,6 @@ using System.Linq; using Nethermind.Core.Extensions; using Nethermind.Int256; -//using Nethermind.Core2; -//using Nethermind.Dirichlet.Numerics; using Nethermind.Merkleization; using NUnit.Framework; using Shouldly; From b824f00772be453da5e912320d90a40009e6808c Mon Sep 17 00:00:00 2001 From: Ruben Buniatyan Date: Mon, 24 Apr 2023 23:15:56 +0200 Subject: [PATCH 4/5] Remove obsolete configs --- src/Nethermind/Chains/shandong.json | 928 ------------------ src/Nethermind/Chains/withdrawals_devnet.json | 892 ----------------- .../Chains/withdrawals_hivetests.json | 200 ---- src/Nethermind/Chains/withdrawals_test.json | 69 -- src/Nethermind/Chains/zhejiang.json | 896 ----------------- .../Properties/launchSettings.json | 40 +- .../configs/sepolia_archive.cfg | 6 +- .../configs/withdrawals_devnet.cfg | 62 -- .../configs/withdrawals_hivetests.cfg | 66 -- .../Nethermind.Runner/configs/zhejiang.cfg | 58 -- .../configs/zhejiang_archive.cfg | 57 -- 11 files changed, 15 insertions(+), 3259 deletions(-) delete mode 100644 src/Nethermind/Chains/shandong.json delete mode 100644 src/Nethermind/Chains/withdrawals_devnet.json delete mode 100644 src/Nethermind/Chains/withdrawals_hivetests.json delete mode 100644 src/Nethermind/Chains/withdrawals_test.json delete mode 100644 src/Nethermind/Chains/zhejiang.json delete mode 100644 src/Nethermind/Nethermind.Runner/configs/withdrawals_devnet.cfg delete mode 100644 src/Nethermind/Nethermind.Runner/configs/withdrawals_hivetests.cfg delete mode 100644 src/Nethermind/Nethermind.Runner/configs/zhejiang.cfg delete mode 100644 src/Nethermind/Nethermind.Runner/configs/zhejiang_archive.cfg diff --git a/src/Nethermind/Chains/shandong.json b/src/Nethermind/Chains/shandong.json deleted file mode 100644 index c0815117d48..00000000000 --- a/src/Nethermind/Chains/shandong.json +++ /dev/null @@ -1,928 +0,0 @@ -{ - "name": "shandong", - "engine": { - "Ethash": { - "params": { - "minimumDifficulty": "0x20000", - "difficultyBoundDivisor": "0x800", - "durationLimit": "0xd", - "blockReward": { - "0x0": "0x1BC16D674EC80000" - }, - "homesteadTransition": "0x0", - "eip100bTransition": "0x0", - "difficultyBombDelays": {} - } - } - }, - "params": { - "gasLimitBoundDivisor": "0x400", - "registrar": "0x0000000000000000000000000000000000000000", - "accountStartNonce": "0x0", - "maximumExtraDataSize": "0x20", - "minGasLimit": "0x1388", - "networkID": "0x00146A2E", - "MergeForkIdTransition": "0x0", - "maxCodeSize": "0x6000", - "maxCodeSizeTransition": "0x0", - "eip150Transition": "0x0", - "eip158Transition": "0x0", - "eip160Transition": "0x0", - "eip161abcTransition": "0x0", - "eip161dTransition": "0x0", - "eip155Transition": "0x0", - "eip140Transition": "0x0", - "eip211Transition": "0x0", - "eip214Transition": "0x0", - "eip658Transition": "0x0", - "eip145Transition": "0x0", - "eip1014Transition": "0x0", - "eip1052Transition": "0x0", - "eip1283Transition": "0x0", - "eip1283DisableTransition": "0x0", - "eip152Transition": "0x0", - "eip1108Transition": "0x0", - "eip1344Transition": "0x0", - "eip1884Transition": "0x0", - "eip2028Transition": "0x0", - "eip2200Transition": "0x0", - "eip2565Transition": "0x0", - "eip2929Transition": "0x0", - "eip2930Transition": "0x0", - "eip1559Transition": "0x0", - "eip3198Transition": "0x0", - "eip3529Transition": "0x0", - "eip3541Transition": "0x0", - "eip3540TransitionTimestamp": "0x0", - "eip3651TransitionTimestamp": "0x0", - "eip3670TransitionTimestamp": "0x0", - "eip3855TransitionTimestamp": "0x0", - "eip3860TransitionTimestamp": "0x0", - "eip4895TransitionTimestamp": "0x0", - "terminalTotalDifficulty": "0x0" - }, - "genesis": { - "seal": { - "ethereum": { - "nonce": "0x1234", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - }, - "difficulty": "0x01", - "author": "0x0000000000000000000000000000000000000000", - "timestamp": "0x63585F88", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "extraData": "", - "gasLimit": "0x400000" - }, - "accounts": { - "0x0000000000000000000000000000000000000000": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000001": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000002": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000003": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000004": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000005": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000006": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000007": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000008": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000009": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000010": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000011": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000012": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000013": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000014": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000015": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000016": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000017": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000018": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000019": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000020": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000021": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000022": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000023": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000024": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000025": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000026": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000027": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000028": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000029": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000030": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000031": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000032": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000033": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000034": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000035": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000036": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000037": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000038": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000039": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000040": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000041": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000042": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000043": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000044": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000045": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000046": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000047": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000048": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000049": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000050": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000051": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000052": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000053": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000054": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000055": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000056": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000057": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000058": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000059": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000060": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000061": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000062": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000063": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000064": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000065": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000066": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000067": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000068": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000069": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000070": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000071": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000072": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000073": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000074": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000075": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000076": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000077": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000078": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000079": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000080": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000081": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000082": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000083": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000084": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000085": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000086": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000087": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000088": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000089": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000090": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000091": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000092": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000093": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000094": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000095": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000096": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000097": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000098": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000099": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009f": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000aa": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ab": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ac": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ad": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ae": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000af": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ba": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000be": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bf": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ca": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ce": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cf": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000da": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000db": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000dc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000dd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000de": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000df": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ea": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000eb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ec": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ed": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ee": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ef": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fa": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fe": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ff": { - "balance": "1" - }, - "0x4242424242424242424242424242424242424242": { - "balance": "0", - "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a26469706673582212201dd26f37a621703009abf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c634300060b0033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000022": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", - "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0x0000000000000000000000000000000000000000000000000000000000000024": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", - "0x0000000000000000000000000000000000000000000000000000000000000025": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", - "0x0000000000000000000000000000000000000000000000000000000000000026": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", - "0x0000000000000000000000000000000000000000000000000000000000000027": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", - "0x0000000000000000000000000000000000000000000000000000000000000028": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", - "0x0000000000000000000000000000000000000000000000000000000000000029": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", - "0x000000000000000000000000000000000000000000000000000000000000002a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", - "0x000000000000000000000000000000000000000000000000000000000000002b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", - "0x000000000000000000000000000000000000000000000000000000000000002c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", - "0x000000000000000000000000000000000000000000000000000000000000002d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", - "0x000000000000000000000000000000000000000000000000000000000000002e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", - "0x000000000000000000000000000000000000000000000000000000000000002f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", - "0x0000000000000000000000000000000000000000000000000000000000000030": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", - "0x0000000000000000000000000000000000000000000000000000000000000031": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", - "0x0000000000000000000000000000000000000000000000000000000000000032": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", - "0x0000000000000000000000000000000000000000000000000000000000000033": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", - "0x0000000000000000000000000000000000000000000000000000000000000034": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", - "0x0000000000000000000000000000000000000000000000000000000000000035": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", - "0x0000000000000000000000000000000000000000000000000000000000000036": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", - "0x0000000000000000000000000000000000000000000000000000000000000037": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", - "0x0000000000000000000000000000000000000000000000000000000000000038": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", - "0x0000000000000000000000000000000000000000000000000000000000000039": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", - "0x000000000000000000000000000000000000000000000000000000000000003a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", - "0x000000000000000000000000000000000000000000000000000000000000003b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", - "0x000000000000000000000000000000000000000000000000000000000000003c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", - "0x000000000000000000000000000000000000000000000000000000000000003d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", - "0x000000000000000000000000000000000000000000000000000000000000003e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", - "0x000000000000000000000000000000000000000000000000000000000000003f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", - "0x0000000000000000000000000000000000000000000000000000000000000040": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" - } - }, - "0xf97e180c050e5Ab072211Ad2C213Eb5AEE4DF134": { - "balance": "10000000000000000000000000" - }, - "0x2cA5F489CC1Fd1CEC24747B64E8dE0F4A6A850E1": { - "balance": "10000000000000000000000000" - }, - "0x7203bd333a874D9d329050ecE393820fCD501eaA": { - "balance": "10000000000000000000000000" - }, - "0xA51918aA40D78Ff8be939bf0E8404252875c6aDF": { - "balance": "10000000000000000000000000" - }, - "0xAA81078e6b2121dd7A846690DFdD6b10d7658d8B": { - "balance": "10000000000000000000000000" - }, - "0xFA2d31D8f21c1D1633E9BEB641dF77D21D63ccDd": { - "balance": "10000000000000000000000000" - }, - "0xf751C9c6d60614226fE57D2cAD6e10C856a2ddA3": { - "balance": "10000000000000000000000000" - }, - "0x9cD16887f6A808AEaa65D3c840f059EeA4ca1319": { - "balance": "10000000000000000000000000" - }, - "0x2E07043584F11BFF0AC39c927665DF6c6ebaffFB": { - "balance": "10000000000000000000000000" - }, - "0x806ce45534bb07a2CAd3a84c53611a2b3DdE316A": { - "balance": "10000000000000000000000000" - }, - "0x97C9B168C5E14d5D369B6D88E9776E5B7b11dcC1": { - "balance": "10000000000000000000000000" - } - }, - "nodes": [ - "enode://11e43515d6258ab2bd814b25a50c911c155a46a27e9be8ce6ea68e293ec13aa4cd6740418baf9abf1e79ba9252c497d66aa4a293c94ef8168d0e7c211ef73690@46.101.126.45:30303", - "enode://95b683a66aba396551bafff688644fc6dc1bada2de78491f89b268ebdcf3d88dfc9942a9f2833ecc3887d49dfb4e96851c2f5eb0adde41847cc356f15ac4ac67@178.128.206.76:30303", - "enode://bcd3eeabca8ff3a1c3b19384e064cc79fda547939324e0699d030041a8960a1d68f1e19141d19305e79675be50434521d024352a5eae00da8ace7933abf20fdf@142.93.160.7:30303", - "enode://6a65c7e62360e1fcc98c88cf8dd8e9492d2e95372f5d7b742b73ab8f82e849bae196bd18b79bc9502b204cef7bf64b589147700368d877c32a76f9c4fd7dd941@104.248.21.4:30303", - "enode://2ae5ef4b4c338e4ee15a347aba8e60bcb451ca19d26f8d67e731bb5f2972ad6ce867ec85f9942a5efe349470106b21c49a9aeb5b00b91063e35f1c1643c0930c@104.248.251.20:30303", - "enode://85ecd8fcab723a33ee68e5f8530c9d264bd601899dc74af7f020bc2f8e0d0ad8ec5c5324364f127c77ddab607bc16e1c5fbae2c675b6d94a79a24222e7e4766e@164.92.174.56:30303", - "enode://24951d3b76f20aed18e32096941d572b98518c9e4dace6b7d0b1f34292dfc5ee7d295453b955be4d2967c6ce1948c11513cd70d76dbee8d3034ddb40d63f5517@142.93.173.170:30303", - "enode://73e2396ac78c462287edd22957096890ca1995a4995c51a1fe24accbe931209fb0fc5359fc1043a0edad3fc53ba64fba5262255c70a03e5fca86f924c261ad4f@178.128.203.243:30303" - ] -} diff --git a/src/Nethermind/Chains/withdrawals_devnet.json b/src/Nethermind/Chains/withdrawals_devnet.json deleted file mode 100644 index a32c2d50d1b..00000000000 --- a/src/Nethermind/Chains/withdrawals_devnet.json +++ /dev/null @@ -1,892 +0,0 @@ -{ - "name": "Testnet", - "engine": { - "Ethash": {} - }, - "params": { - "gasLimitBoundDivisor": "0x400", - "registrar": "0x0000000000000000000000000000000000000000", - "accountStartNonce": "0x0", - "maximumExtraDataSize": "0xffff", - "minGasLimit": "0x1388", - "networkID": "0x1469cd", - "MergeForkIdTransition": "0x0", - "maxCodeSize": "0x6000", - "maxCodeSizeTransition": "0x0", - "eip150Transition": "0x0", - "eip158Transition": "0x0", - "eip160Transition": "0x0", - "eip161abcTransition": "0x0", - "eip161dTransition": "0x0", - "eip155Transition": "0x0", - "eip140Transition": "0x0", - "eip211Transition": "0x0", - "eip214Transition": "0x0", - "eip658Transition": "0x0", - "eip145Transition": "0x0", - "eip1014Transition": "0x0", - "eip1052Transition": "0x0", - "eip1283Transition": "0x0", - "eip1283DisableTransition": "0x0", - "eip152Transition": "0x0", - "eip1108Transition": "0x0", - "eip1344Transition": "0x0", - "eip1884Transition": "0x0", - "eip2028Transition": "0x0", - "eip2200Transition": "0x0", - "eip2565Transition": "0x0", - "eip2929Transition": "0x0", - "eip2930Transition": "0x0", - "eip1559Transition": "0x0", - "eip3198Transition": "0x0", - "eip3529Transition": "0x0", - "eip3541Transition": "0x0", - "eip4895TransitionTimestamp": "0x63a474ec", - "eip3855TransitionTimestamp": "0x63a474ec", - "eip3651TransitionTimestamp": "0x63a474ec", - "eip3860TransitionTimestamp": "0x63a474ec", - "terminalTotalDifficulty": "0x0" - }, - "genesis": { - "seal": { - "ethereum": { - "nonce": "0x1234", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - }, - "difficulty": "0x01", - "author": "0x0000000000000000000000000000000000000000", - "timestamp": "0x63a438b0", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "extraData": "", - "gasLimit": "0x400000" - }, - "accounts": { - "0x0000000000000000000000000000000000000000": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000001": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000002": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000003": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000004": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000005": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000006": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000007": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000008": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000009": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000010": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000011": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000012": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000013": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000014": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000015": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000016": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000017": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000018": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000019": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000020": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000021": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000022": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000023": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000024": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000025": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000026": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000027": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000028": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000029": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000030": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000031": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000032": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000033": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000034": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000035": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000036": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000037": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000038": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000039": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000040": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000041": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000042": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000043": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000044": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000045": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000046": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000047": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000048": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000049": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000050": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000051": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000052": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000053": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000054": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000055": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000056": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000057": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000058": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000059": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000060": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000061": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000062": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000063": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000064": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000065": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000066": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000067": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000068": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000069": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000070": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000071": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000072": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000073": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000074": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000075": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000076": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000077": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000078": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000079": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000080": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000081": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000082": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000083": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000084": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000085": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000086": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000087": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000088": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000089": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000090": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000091": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000092": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000093": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000094": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000095": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000096": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000097": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000098": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000099": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009f": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000aa": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ab": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ac": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ad": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ae": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000af": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ba": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000be": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bf": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ca": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ce": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cf": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000da": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000db": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000dc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000dd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000de": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000df": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ea": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000eb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ec": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ed": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ee": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ef": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fa": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fe": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ff": { - "balance": "1" - }, - "0x4242424242424242424242424242424242424242": { - "balance": "0", - "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a26469706673582212201dd26f37a621703009abf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c634300060b0033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000022": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", - "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0x0000000000000000000000000000000000000000000000000000000000000024": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", - "0x0000000000000000000000000000000000000000000000000000000000000025": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", - "0x0000000000000000000000000000000000000000000000000000000000000026": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", - "0x0000000000000000000000000000000000000000000000000000000000000027": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", - "0x0000000000000000000000000000000000000000000000000000000000000028": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", - "0x0000000000000000000000000000000000000000000000000000000000000029": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", - "0x000000000000000000000000000000000000000000000000000000000000002a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", - "0x000000000000000000000000000000000000000000000000000000000000002b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", - "0x000000000000000000000000000000000000000000000000000000000000002c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", - "0x000000000000000000000000000000000000000000000000000000000000002d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", - "0x000000000000000000000000000000000000000000000000000000000000002e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", - "0x000000000000000000000000000000000000000000000000000000000000002f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", - "0x0000000000000000000000000000000000000000000000000000000000000030": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", - "0x0000000000000000000000000000000000000000000000000000000000000031": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", - "0x0000000000000000000000000000000000000000000000000000000000000032": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", - "0x0000000000000000000000000000000000000000000000000000000000000033": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", - "0x0000000000000000000000000000000000000000000000000000000000000034": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", - "0x0000000000000000000000000000000000000000000000000000000000000035": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", - "0x0000000000000000000000000000000000000000000000000000000000000036": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", - "0x0000000000000000000000000000000000000000000000000000000000000037": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", - "0x0000000000000000000000000000000000000000000000000000000000000038": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", - "0x0000000000000000000000000000000000000000000000000000000000000039": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", - "0x000000000000000000000000000000000000000000000000000000000000003a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", - "0x000000000000000000000000000000000000000000000000000000000000003b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", - "0x000000000000000000000000000000000000000000000000000000000000003c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", - "0x000000000000000000000000000000000000000000000000000000000000003d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", - "0x000000000000000000000000000000000000000000000000000000000000003e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", - "0x000000000000000000000000000000000000000000000000000000000000003f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", - "0x0000000000000000000000000000000000000000000000000000000000000040": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" - } - }, - "0x7bB4e40fC0Fc4cbA645b63717D996c394388D9b2": { - "balance": "1000000000000000000000000000" - }, - "0x368aA5d08abc4d62F0Ca81C045B41209449Ce1FD": { - "balance": "1000000000000000000000000000" - }, - "0x088f7C908A13417Ef367Cb89097CC11837e526Cb": { - "balance": "1000000000000000000000000000" - }, - "0x5Ef957B844bf9D340099ffeF89765D2826132c9E": { - "balance": "1000000000000000000000000000" - }, - "0x9Ebb4D26aF2a100419ea2a97d9Ff58e54897214B": { - "balance": "1000000000000000000000000000" - }, - "0xF8870c504B1BcF903A1b7B93c6f2c36e7dD306fF": { - "balance": "1000000000000000000000000000" - } - }, - "nodes": ["enode://d0411c2d31fdae12a532a8ab62f63670ca6d9cfdc3d56b9540c5d56ce6e0a63df36521bd824ced629ff4658ad081ac3bb000d4a58de6ac347b308aeb25294151@134.122.93.43:30303", - "enode://7ecb84ee11e49957d588f24f00d85fd65df6d4834c53b335e6aad5deff2d872be63611c8cb89bf0a371c3e5fcb094cb46e0f572c320d3710ce53152a5e4a55aa@178.128.203.61:30303", - "enode://b3d5a13f72271bccacfd9e9d42c19e9bfb2e5e6aec892cb74e99457047b3aa0c5922b301a7f597f7ca9de117c02ac08580256797db671d8b2f4c86d1e1bf6772@46.101.129.227:30303"] -} diff --git a/src/Nethermind/Chains/withdrawals_hivetests.json b/src/Nethermind/Chains/withdrawals_hivetests.json deleted file mode 100644 index 0425dd6e993..00000000000 --- a/src/Nethermind/Chains/withdrawals_hivetests.json +++ /dev/null @@ -1,200 +0,0 @@ -{ - "version": "1", - "engine": { - "clique": { - "params": { - "period": 1, - "epoch": 30000, - "blockReward": "0x0" - } - } - }, - "params": { - "eip150Transition": "0x0", - "eip160Transition": "0x0", - "eip161abcTransition": "0x0", - "eip161dTransition": "0x0", - "eip155Transition": "0x0", - "maxCodeSizeTransition": "0x0", - "maxCodeSize": 24576, - "maximumExtraDataSize": "0x400", - "eip140Transition": "0x0", - "eip211Transition": "0x0", - "eip214Transition": "0x0", - "eip658Transition": "0x0", - "eip145Transition": "0x0", - "eip1014Transition": "0x0", - "eip1052Transition": "0x0", - "eip1283Transition": "0x0", - "eip1283DisableTransition": "0x0", - "eip152Transition": "0x0", - "eip1108Transition": "0x0", - "eip1344Transition": "0x0", - "eip1884Transition": "0x0", - "eip2028Transition": "0x0", - "eip2200Transition": "0x0", - "eip2565Transition": "0x0", - "eip2718Transition": "0x0", - "eip2929Transition": "0x0", - "eip2930Transition": "0x0", - "eip1559Transition": "0x0", - "eip3238Transition": "0x0", - "eip3529Transition": "0x0", - "eip3541Transition": "0x0", - "eip3198Transition": "0x0", - "eip4895TransitionTimestamp": "0x1235", - "networkID": "0x7", - "chainID": "0x7" - }, - "genesis": { - "seal": { - "ethereum": { - "nonce": "0x0000000000000000" - } - }, - "difficulty": "0x30000", - "author": "0x0000000000000000000000000000000000000000", - "timestamp": "0x1234", - "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000658bdf435d810c91414ec09147daa6db624063790000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit": "0x2fefd8" - }, - "accounts": { - "0xcf49fda3be353c69b41ed96333cd24302da4556f": { - "balance": "0x123450000000000000000" - }, - "0x0161e041aad467a890839d5b08b138c1e6373072": { - "balance": "0x123450000000000000000" - }, - "0x87da6a8c6e9eff15d703fc2773e32f6af8dbe301": { - "balance": "0x123450000000000000000" - }, - "0xb97de4b8c857e4f6bc354f226dc3249aaee49209": { - "balance": "0x123450000000000000000" - }, - "0xc5065c9eeebe6df2c2284d046bfc906501846c51": { - "balance": "0x123450000000000000000" - }, - "0x0000000000000000000000000000000000000314": { - "balance": "0x0", - "code": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063a223e05d1461006a578063abd1a0cf1461008d578063abfced1d146100d4578063e05c914a14610110578063e6768b451461014c575b610000565b346100005761007761019d565b6040518082815260200191505060405180910390f35b34610000576100be600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506101a3565b6040518082815260200191505060405180910390f35b346100005761010e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506101ed565b005b346100005761014a600480803590602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610236565b005b346100005761017960048080359060200190919080359060200190919080359060200190919050506103c4565b60405180848152602001838152602001828152602001935050505060405180910390f35b60005481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b919050565b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5050565b7f6031a8d62d7c95988fa262657cd92107d90ed96e08d8f867d32f26edfe85502260405180905060405180910390a17f47e2689743f14e97f7dcfa5eec10ba1dff02f83b3d1d4b9c07b206cbbda66450826040518082815260200191505060405180910390a1817fa48a6b249a5084126c3da369fbc9b16827ead8cb5cdc094b717d3f1dcd995e2960405180905060405180910390a27f7890603b316f3509577afd111710f9ebeefa15e12f72347d9dffd0d65ae3bade81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18073ffffffffffffffffffffffffffffffffffffffff167f7efef9ea3f60ddc038e50cccec621f86a0195894dc0520482abf8b5c6b659e4160405180905060405180910390a28181604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a05b5050565b6000600060008585859250925092505b935093509390505600a165627a7a72305820aaf842d0d0c35c45622c5263cbb54813d2974d3999c8c38551d7c613ea2bc1170029", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "0x1234", - "0x6661e9d6d8b923d5bbaab1b96e1dd51ff6ea2a93520fdc9eb75d059238b8c5e9": "0x01" - } - }, - "0x0000000000000000000000000000000000000315": { - "balance": "0x9999999999999999999999999999999", - "code": "0x60606040526000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ef2769ca1461003e575b610000565b3461000057610078600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061007a565b005b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f1935050505015610106578173ffffffffffffffffffffffffffffffffffffffff167f30a3c50752f2552dcc2b93f5b96866280816a986c0c0408cb6778b9fa198288f826040518082815260200191505060405180910390a25b5b50505600a165627a7a72305820637991fabcc8abad4294bf2bb615db78fbec4edff1635a2647d3894e2daf6a610029" - }, - "0x0000000000000000000000000000000000000316": { - "balance": "0x0", - "code": "0x444355" - }, - "0x0000000000000000000000000000000000000317": { - "balance": "0x0", - "code": "0x600160003555" - }, - "0x0000000000000000000000000000000000000001": { - "builtin": { - "name": "ecrecover", - "pricing": { - "linear": { - "base": 3000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000002": { - "builtin": { - "name": "sha256", - "pricing": { - "linear": { - "base": 60, - "word": 12 - } - } - } - }, - "0x0000000000000000000000000000000000000003": { - "builtin": { - "name": "ripemd160", - "pricing": { - "linear": { - "base": 600, - "word": 120 - } - } - } - }, - "0x0000000000000000000000000000000000000004": { - "builtin": { - "name": "identity", - "pricing": { - "linear": { - "base": 15, - "word": 3 - } - } - } - }, - "0x0000000000000000000000000000000000000005": { - "builtin": { - "name": "modexp", - "activate_at": "0x0", - "pricing": { - "modexp": { - "divisor": 20 - } - } - } - }, - "0x0000000000000000000000000000000000000006": { - "builtin": { - "name": "alt_bn128_add", - "activate_at": "0x0", - "pricing": { - "linear": { - "base": 500, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000007": { - "builtin": { - "name": "alt_bn128_mul", - "activate_at": "0x0", - "pricing": { - "linear": { - "base": 40000, - "word": 0 - } - } - } - }, - "0x0000000000000000000000000000000000000008": { - "builtin": { - "name": "alt_bn128_pairing", - "activate_at": "0x0", - "pricing": { - "alt_bn128_pairing": { - "base": 100000, - "pair": 80000 - } - } - } - }, - "0x0000000000000000000000000000000000000009": { - "builtin": { - "name": "blake2_f", - "activate_at": "0x0", - "pricing": { - "blake2_f": { - "gas_per_round": 1 - } - } - } - } - } -} diff --git a/src/Nethermind/Chains/withdrawals_test.json b/src/Nethermind/Chains/withdrawals_test.json deleted file mode 100644 index 752c3a16496..00000000000 --- a/src/Nethermind/Chains/withdrawals_test.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "TheMerge_Devnet", - "engine": { - "clique": { - "params": { - "period": 5, - "epoch": 30000 - } - } - }, - "params": { - "gasLimitBoundDivisor": "0x400", - "accountStartNonce": "0x0", - "maximumExtraDataSize": "0x20", - "minGasLimit": "0x1388", - "networkID": 1, - "eip150Transition": "0x0", - "eip155Transition": "0x0", - "eip158Transition": "0x0", - "eip160Transition": "0x0", - "eip161abcTransition": "0x0", - "eip161dTransition": "0x0", - "eip140Transition": "0x0", - "eip211Transition": "0x0", - "eip214Transition": "0x0", - "eip658Transition": "0x0", - "eip145Transition": "0x0", - "eip1014Transition": "0x0", - "eip1052Transition": "0x0", - "eip1283Transition": "0x0", - "eip1283DisableTransition": "0x0", - "eip152Transition": "0x0", - "eip1108Transition": "0x0", - "eip1344Transition": "0x0", - "eip1884Transition": "0x0", - "eip2028Transition": "0x0", - "eip2200Transition": "0x0", - "eip2565Transition": "0x0", - "eip2929Transition": "0x0", - "eip2930Transition": "0x0", - "eip1559Transition": "0x0", - "eip3198Transition": "0x0", - "eip3529Transition": "0x0", - "eip3541Transition": "0x0", - "eip4895TransitionTimestamp": "0x0", - "terminalTotalDifficulty": "0x0" - }, - "genesis": { - "seal": { - "ethereum": { - "nonce": "0x42", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - }, - "difficulty": "0x400000000", - "author": "0x0000000000000000000000000000000000000000", - "timestamp": "0x0", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "extraData":"0x0000000000000000000000000000000000000000000000000000000000000000a94f5374fce5edbc8e2a8697c15331677e6ebf0b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "gasLimit":"0x1C9C380", - "baseFeePerGas":"0x7" - }, - "accounts": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": - { - "balance":"0x6d6172697573766477000000" - } - } -} diff --git a/src/Nethermind/Chains/zhejiang.json b/src/Nethermind/Chains/zhejiang.json deleted file mode 100644 index e5e369b7e3a..00000000000 --- a/src/Nethermind/Chains/zhejiang.json +++ /dev/null @@ -1,896 +0,0 @@ -{ - "name": "Testnet", - "engine": { - "Ethash": {} - }, - "params": { - "gasLimitBoundDivisor": "0x400", - "registrar": "0x0000000000000000000000000000000000000000", - "accountStartNonce": "0x0", - "maximumExtraDataSize": "0xffff", - "minGasLimit": "0x1388", - "networkID": "0x1469cb", - "MergeForkIdTransition": "0x0", - "maxCodeSize": "0x6000", - "maxCodeSizeTransition": "0x0", - "eip150Transition": "0x0", - "eip158Transition": "0x0", - "eip160Transition": "0x0", - "eip161abcTransition": "0x0", - "eip161dTransition": "0x0", - "eip155Transition": "0x0", - "eip140Transition": "0x0", - "eip211Transition": "0x0", - "eip214Transition": "0x0", - "eip658Transition": "0x0", - "eip145Transition": "0x0", - "eip1014Transition": "0x0", - "eip1052Transition": "0x0", - "eip1283Transition": "0x0", - "eip1283DisableTransition": "0x0", - "eip152Transition": "0x0", - "eip1108Transition": "0x0", - "eip1344Transition": "0x0", - "eip1884Transition": "0x0", - "eip2028Transition": "0x0", - "eip2200Transition": "0x0", - "eip2565Transition": "0x0", - "eip2929Transition": "0x0", - "eip2930Transition": "0x0", - "eip1559Transition": "0x0", - "eip3198Transition": "0x0", - "eip3529Transition": "0x0", - "eip3541Transition": "0x0", - "eip4895TransitionTimestamp": "0x63e26770", - "eip3855TransitionTimestamp": "0x63e26770", - "eip3651TransitionTimestamp": "0x63e26770", - "eip3860TransitionTimestamp": "0x63e26770", - "terminalTotalDifficulty": "0x0" - }, - "genesis": { - "seal": { - "ethereum": { - "nonce": "0x1234", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000" - } - }, - "difficulty": "0x01", - "author": "0x0000000000000000000000000000000000000000", - "timestamp": "0x63da7df8", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "extraData": "", - "gasLimit": "0x17D7840" - }, - "accounts": { - "0x0000000000000000000000000000000000000000": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000001": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000002": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000003": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000004": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000005": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000006": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000007": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000008": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000009": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000000f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000010": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000011": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000012": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000013": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000014": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000015": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000016": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000017": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000018": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000019": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000001f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000020": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000021": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000022": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000023": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000024": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000025": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000026": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000027": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000028": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000029": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000002f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000030": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000031": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000032": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000033": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000034": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000035": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000036": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000037": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000038": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000039": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000003f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000040": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000041": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000042": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000043": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000044": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000045": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000046": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000047": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000048": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000049": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000004f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000050": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000051": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000052": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000053": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000054": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000055": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000056": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000057": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000058": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000059": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000005f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000060": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000061": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000062": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000063": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000064": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000065": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000066": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000067": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000068": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000069": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000006f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000070": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000071": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000072": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000073": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000074": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000075": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000076": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000077": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000078": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000079": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000007f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000080": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000081": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000082": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000083": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000084": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000085": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000086": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000087": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000088": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000089": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000008f": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000090": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000091": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000092": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000093": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000094": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000095": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000096": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000097": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000098": { - "balance": "1" - }, - "0x0000000000000000000000000000000000000099": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009a": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009b": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009c": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009d": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009e": { - "balance": "1" - }, - "0x000000000000000000000000000000000000009f": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000a9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000aa": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ab": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ac": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ad": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ae": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000af": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000b9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ba": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000be": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000bf": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000c9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ca": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ce": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000cf": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000d9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000da": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000db": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000dc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000dd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000de": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000df": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000e9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ea": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000eb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ec": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ed": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ee": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ef": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f0": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f1": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f2": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f3": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f4": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f5": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f6": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f7": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f8": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000f9": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fa": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fb": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fc": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fd": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000fe": { - "balance": "1" - }, - "0x00000000000000000000000000000000000000ff": { - "balance": "1" - }, - "0x4242424242424242424242424242424242424242": { - "balance": "0", - "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a26469706673582212201dd26f37a621703009abf16e77e69c93dc50c79db7f6cc37543e3e0e3decdc9764736f6c634300060b0033", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000022": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b", - "0x0000000000000000000000000000000000000000000000000000000000000023": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", - "0x0000000000000000000000000000000000000000000000000000000000000024": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c", - "0x0000000000000000000000000000000000000000000000000000000000000025": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c", - "0x0000000000000000000000000000000000000000000000000000000000000026": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30", - "0x0000000000000000000000000000000000000000000000000000000000000027": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1", - "0x0000000000000000000000000000000000000000000000000000000000000028": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c", - "0x0000000000000000000000000000000000000000000000000000000000000029": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193", - "0x000000000000000000000000000000000000000000000000000000000000002a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1", - "0x000000000000000000000000000000000000000000000000000000000000002b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b", - "0x000000000000000000000000000000000000000000000000000000000000002c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220", - "0x000000000000000000000000000000000000000000000000000000000000002d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f", - "0x000000000000000000000000000000000000000000000000000000000000002e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e", - "0x000000000000000000000000000000000000000000000000000000000000002f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784", - "0x0000000000000000000000000000000000000000000000000000000000000030": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb", - "0x0000000000000000000000000000000000000000000000000000000000000031": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb", - "0x0000000000000000000000000000000000000000000000000000000000000032": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab", - "0x0000000000000000000000000000000000000000000000000000000000000033": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4", - "0x0000000000000000000000000000000000000000000000000000000000000034": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f", - "0x0000000000000000000000000000000000000000000000000000000000000035": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa", - "0x0000000000000000000000000000000000000000000000000000000000000036": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c", - "0x0000000000000000000000000000000000000000000000000000000000000037": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167", - "0x0000000000000000000000000000000000000000000000000000000000000038": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7", - "0x0000000000000000000000000000000000000000000000000000000000000039": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0", - "0x000000000000000000000000000000000000000000000000000000000000003a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544", - "0x000000000000000000000000000000000000000000000000000000000000003b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765", - "0x000000000000000000000000000000000000000000000000000000000000003c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4", - "0x000000000000000000000000000000000000000000000000000000000000003d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1", - "0x000000000000000000000000000000000000000000000000000000000000003e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636", - "0x000000000000000000000000000000000000000000000000000000000000003f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c", - "0x0000000000000000000000000000000000000000000000000000000000000040": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7" - } - }, - "0x3E951C9f69a06Bc3AD71fF7358DbC56bEd94b9F2": { - "balance": "1000000000000000000000000000" - }, - "0xe228C30d4e5245f967ac21726d5412dA27aD071C": { - "balance": "1000000000000000000000000000" - }, - "0xD59Ce7Ccc6454a2D2C2e06bbcf71D0Beb33480eD": { - "balance": "1000000000000000000000000000" - }, - "0x1CF4D54414eF51b41f9B2238c57102ab2e61D1F2": { - "balance": "1000000000000000000000000000" - }, - "0x249bE3fDEd872338C733cF3975af9736bdCb9D4D": { - "balance": "1000000000000000000000000000" - }, - "0x3fCd1bff94513712f8cD63d1eD66776A67D5F78e": { - "balance": "1000000000000000000000000000" - } - }, - "nodes": [ - "enode://691c66d0ce351633b2ef8b4e4ef7db9966915ca0937415bd2b408df22923f274873b4d4438929e029a13a680140223dcf701cabe22df7d8870044321022dfefa@64.225.78.1:30303", - "enode://89347b9461727ee1849256d78e84d5c86cc3b4c6c5347650093982b726d71f3d08027e280b399b7b6604ceeda863283dcfe1a01e93728b4883114e9f8c7cc8ef@146.190.238.212:30303", - "enode://c2892072efe247f21ed7ebea6637ade38512a0ae7c5cffa1bf0786d5e3be1e7f40ff71252a21b36aa9de54e49edbcfc6962a98032adadfa29c8524262e484ad3@165.232.84.160:30303", - "enode://71e862580d3177a99e9837bd9e9c13c83bde63d3dba1d5cea18e89eb2a17786bbd47a8e7ae690e4d29763b55c205af13965efcaf6105d58e118a5a8ed2b0f6d0@68.183.13.170:30303", - "enode://2f6cf7f774e4507e7c1b70815f9c0ccd6515ee1170c991ce3137002c6ba9c671af38920f5b8ab8a215b62b3b50388030548f1d826cb6c2b30c0f59472804a045@161.35.147.98:30303" - ] -} diff --git a/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json b/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json index 3f78a8245e6..1c393b255df 100644 --- a/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json +++ b/src/Nethermind/Nethermind.Runner/Properties/launchSettings.json @@ -2,14 +2,14 @@ "profiles": { "Chiado": { "commandName": "Project", - "commandLineArgs": "-c chiado -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb", + "commandLineArgs": "-c chiado -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Chiado (archive)": { "commandName": "Project", - "commandLineArgs": "-c chiado_archive -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb", + "commandLineArgs": "-c chiado_archive -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } @@ -30,35 +30,35 @@ }, "Gnosis": { "commandName": "Project", - "commandLineArgs": "-c gnosis -dd %NETHERMIND_DATA_DIR% --JsonRpc.Enabled true", + "commandLineArgs": "-c gnosis -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Gnosis (archive)": { "commandName": "Project", - "commandLineArgs": "-c gnosis_archive -dd %NETHERMIND_DATA_DIR% --JsonRpc.Enabled true", + "commandLineArgs": "-c gnosis_archive -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Goerli": { "commandName": "Project", - "commandLineArgs": "-c goerli -dd %NETHERMIND_DATA_DIR% --JsonRpc.Enabled true", + "commandLineArgs": "-c goerli -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Goerli (archive)": { "commandName": "Project", - "commandLineArgs": "-c goerli_archive -dd %NETHERMIND_DATA_DIR% --JsonRpc.Enabled true", + "commandLineArgs": "-c goerli_archive -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Hive": { "commandName": "Project", - "commandLineArgs": "-c hive -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb --JsonRpc.Enabled true", + "commandLineArgs": "-c hive -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } @@ -72,14 +72,14 @@ }, "Mainnet": { "commandName": "Project", - "commandLineArgs": "-c mainnet -dd %NETHERMIND_DATA_DIR% --JsonRpc.Enabled true", + "commandLineArgs": "-c mainnet -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Mainnet (archive)": { "commandName": "Project", - "commandLineArgs": "-c mainnet_archive -dd %NETHERMIND_DATA_DIR% --JsonRpc.Enabled true", + "commandLineArgs": "-c mainnet_archive -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } @@ -93,21 +93,21 @@ }, "Sepolia": { "commandName": "Project", - "commandLineArgs": "-c sepolia -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb --JsonRpc.Enabled true", + "commandLineArgs": "-c sepolia -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Sepolia (archive)": { "commandName": "Project", - "commandLineArgs": "-c sepolia_archive -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb --JsonRpc.Enabled true", + "commandLineArgs": "-c sepolia_archive -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "Spaceneth": { "commandName": "Project", - "commandLineArgs": "-c spaceneth -dd %NETHERMIND_DATA_DIR% --JsonRpc.Enabled true", + "commandLineArgs": "-c spaceneth -dd %NETHERMIND_DATA_DIR%", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } @@ -119,23 +119,9 @@ "ASPNETCORE_ENVIRONMENT": "Development" } }, - "Zhejiang": { - "commandName": "Project", - "commandLineArgs": "-c zhejiang -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb --JsonRpc.JwtSecretFile %NETHERMIND_DATA_DIR%\\jwtsecret", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Zhejiang (archive)": { - "commandName": "Project", - "commandLineArgs": "-c zhejiang_archive -dd %NETHERMIND_DATA_DIR% --Init.DiagnosticMode MemDb --JsonRpc.JwtSecretFile %NETHERMIND_DATA_DIR%\\jwtsecret", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, "Docker": { "commandName": "Docker", - "commandLineArgs": "-c goerli -dd /data --JsonRpc.EngineHost 0.0.0.0 --JsonRpc.EnginePort 8551 --JsonRpc.Host 0.0.0.0" + "commandLineArgs": "-c sepolia -dd /data --JsonRpc.EngineHost 0.0.0.0 --JsonRpc.EnginePort 8551 --JsonRpc.Host 0.0.0.0" } } } diff --git a/src/Nethermind/Nethermind.Runner/configs/sepolia_archive.cfg b/src/Nethermind/Nethermind.Runner/configs/sepolia_archive.cfg index 98c9a4d6a46..b3adb6b8353 100644 --- a/src/Nethermind/Nethermind.Runner/configs/sepolia_archive.cfg +++ b/src/Nethermind/Nethermind.Runner/configs/sepolia_archive.cfg @@ -26,12 +26,10 @@ ] }, "Merge": { - "Enabled": true + "Enabled": true, + "FinalTotalDifficulty": "17000018015853232" }, "Pruning": { "Mode": "None" - }, - "Merge": { - "FinalTotalDifficulty": "17000018015853232" } } diff --git a/src/Nethermind/Nethermind.Runner/configs/withdrawals_devnet.cfg b/src/Nethermind/Nethermind.Runner/configs/withdrawals_devnet.cfg deleted file mode 100644 index 36c428dd4d5..00000000000 --- a/src/Nethermind/Nethermind.Runner/configs/withdrawals_devnet.cfg +++ /dev/null @@ -1,62 +0,0 @@ -{ - "Init": { - "IsMining": true, - "WebSocketsEnabled": true, - "StoreReceipts": true, - "ChainSpecPath": "chainspec/withdrawals_devnet.json", - "BaseDbPath": "nethermind_db/withdrawals_devnet", - "LogFileName": "withdrawals_devnet.log", - "MemoryHint": 768000000, - "EnableUnsecuredDevWallet": false - }, - "Network": { - "DiscoveryPort": 30303, - "P2PPort": 30303, - "EnableUPnP": true - }, - "TxPool": { - "Size": 2048 - }, - "JsonRpc": { - "Enabled": true, - "Timeout": 200000000, - "Host": "127.0.0.1", - "Port": 8545, - "EnabledModules": ["Eth", "Subscribe", "Trace", "TxPool", "Web3", "Personal", "Proof", "Net", "Parity", "Health", "Debug"], - "AdditionalRpcUrls": [ - "http://localhost:8551|http;ws|net;eth;subscribe;engine;web3;client|no-auth" - ] - }, - "Db": { - "CacheIndexAndFilterBlocks": false - }, - "Sync": { - "FastSync": false - }, - "EthStats": { - "Enabled": false, - "Server": "ws://localhost:3000/api", - "Name": "Nethermind shandong", - "Secret": "secret", - "Contact": "hello@nethermind.io" - }, - "Metrics": { - "NodeName": "WithdrawalTest", - "Enabled": false, - "PushGatewayUrl": "http://localhost:9091/metrics", - "IntervalSeconds": 5 - }, - "Bloom": { - "IndexLevelBucketSizes": [ - 16, - 16, - 16 - ] - }, - "Pruning": { - "Mode": "None" - }, - "Mining": { - "ExtraData": "" - } -} diff --git a/src/Nethermind/Nethermind.Runner/configs/withdrawals_hivetests.cfg b/src/Nethermind/Nethermind.Runner/configs/withdrawals_hivetests.cfg deleted file mode 100644 index 5b73386ae51..00000000000 --- a/src/Nethermind/Nethermind.Runner/configs/withdrawals_hivetests.cfg +++ /dev/null @@ -1,66 +0,0 @@ -{ - "Init": { - "IsMining": true, - "WebSocketsEnabled": true, - "StoreReceipts": true, - "ChainSpecPath": "chainspec/withdrawals_hivetests.json", - "BaseDbPath": "nethermind_db/withdrawals_hivetests", - "LogFileName": "withdrawals_hivetests.log", - "MemoryHint": 768000000, - "EnableUnsecuredDevWallet": false - }, - "Network": { - "DiscoveryPort": 30303, - "P2PPort": 30303, - "EnableUPnP": true - }, - "TxPool": { - "Size": 2048 - }, - "JsonRpc": { - "Enabled": true, - "Timeout": 20000, - "Host": "127.0.0.1", - "Port": 8545, - "EnabledModules": ["Eth", "Subscribe", "Trace", "TxPool", "Web3", "Personal", "Proof", "Net", "Parity", "Health"], - "AdditionalRpcUrls": [ - "http://localhost:8551|http;ws|net;eth;subscribe;engine;web3;client|no-auth" - ] - }, - "Db": { - "CacheIndexAndFilterBlocks": false - }, - "Sync": { - "FastSync": false - }, - "EthStats": { - "Enabled": false, - "Server": "ws://localhost:3000/api", - "Name": "Nethermind shandong", - "Secret": "secret", - "Contact": "hello@nethermind.io" - }, - "Metrics": { - "NodeName": "WithdrawalTest", - "Enabled": false, - "PushGatewayUrl": "http://localhost:9091/metrics", - "IntervalSeconds": 5 - }, - "Bloom": { - "IndexLevelBucketSizes": [ - 16, - 16, - 16 - ] - }, - "Pruning": { - "Mode": "None" - }, - "Merge": { - "Enabled": true, - "TerminalTotalDifficulty": "196608" - }, - "Mining": { - "ExtraData": "" - } -} diff --git a/src/Nethermind/Nethermind.Runner/configs/zhejiang.cfg b/src/Nethermind/Nethermind.Runner/configs/zhejiang.cfg deleted file mode 100644 index c2f6d0435bc..00000000000 --- a/src/Nethermind/Nethermind.Runner/configs/zhejiang.cfg +++ /dev/null @@ -1,58 +0,0 @@ -{ - "Init": { - "IsMining": true, - "WebSocketsEnabled": true, - "StoreReceipts": true, - "ChainSpecPath": "chainspec/zhejiang.json", - "BaseDbPath": "nethermind_db/zhejiang", - "LogFileName": "zhejiang.log", - "MemoryHint": 768000000, - "EnableUnsecuredDevWallet": false - }, - "Network": { - "DiscoveryPort": 30303, - "P2PPort": 30303, - "EnableUPnP": true - }, - "TxPool": { - "Size": 2048 - }, - "JsonRpc": { - "Enabled": true, - "Port": 8545, - "EnginePort": 8551 - }, - "Db": { - "CacheIndexAndFilterBlocks": false - }, - "Sync": { - "FastSync": true, - "SnapSync": true, - "PivotNumber": 34217, - "PivotHash": "0x51c3d5bb110bd112b4c5ab47b6b0576d3ac8abb98ba76cce73a6d9f7ebc06b4e", - "PivotTotalDifficulty": "1", - "FastBlocks": true, - "UseGethLimitsInFastBlocks": true, - "FastSyncCatchUpHeightDelta": "10000000000" - }, - "EthStats": { - "Enabled": false, - "Server": "ws://localhost:3000/api", - "Name": "Nethermind Zhejiang", - "Secret": "secret", - "Contact": "hello@nethermind.io" - }, - "Metrics": { - "NodeName": "Zhejiang", - "Enabled": false, - "PushGatewayUrl": "http://localhost:9091/metrics", - "IntervalSeconds": 5 - }, - "Bloom": { - "IndexLevelBucketSizes": [ - 16, - 16, - 16 - ] - } -} diff --git a/src/Nethermind/Nethermind.Runner/configs/zhejiang_archive.cfg b/src/Nethermind/Nethermind.Runner/configs/zhejiang_archive.cfg deleted file mode 100644 index 97d7669971d..00000000000 --- a/src/Nethermind/Nethermind.Runner/configs/zhejiang_archive.cfg +++ /dev/null @@ -1,57 +0,0 @@ -{ - "Init": { - "IsMining": true, - "WebSocketsEnabled": true, - "StoreReceipts": true, - "ChainSpecPath": "chainspec/zhejiang.json", - "BaseDbPath": "nethermind_db/zhejiang_archive", - "LogFileName": "zhejiang.log", - "MemoryHint": 768000000, - "EnableUnsecuredDevWallet": false - }, - "Network": { - "DiscoveryPort": 30303, - "P2PPort": 30303, - "EnableUPnP": true - }, - "TxPool": { - "Size": 2048 - }, - "JsonRpc": { - "Enabled": true, - "Port": 8545, - "EnginePort": 8551 - }, - "Db": { - "CacheIndexAndFilterBlocks": false - }, - "Sync": { - "FastSync": false - }, - "EthStats": { - "Enabled": false, - "Server": "ws://localhost:3000/api", - "Name": "Nethermind Zhejiang Archive", - "Secret": "secret", - "Contact": "hello@nethermind.io" - }, - "Metrics": { - "NodeName": "Zhejiang Archive", - "Enabled": false, - "PushGatewayUrl": "http://localhost:9091/metrics", - "IntervalSeconds": 5 - }, - "Bloom": { - "IndexLevelBucketSizes": [ - 16, - 16, - 16 - ] - }, - "Pruning": { - "Mode": "None" - }, - "Mining": { - "ExtraData": "" - } -} From 28611fbe97923b2be749b12a8e7af7acb295dbc0 Mon Sep 17 00:00:00 2001 From: Ruben Buniatyan Date: Mon, 24 Apr 2023 23:37:23 +0200 Subject: [PATCH 5/5] Remove Shandong tests --- .../Specs/shanghai_from_genesis.json | 3 +- .../Nethermind.Network.Test/ForkInfoTests.cs | 698 +++++---- .../ChainSpecBasedSpecProviderTests.cs | 1290 ++++++++--------- 3 files changed, 967 insertions(+), 1024 deletions(-) diff --git a/src/Nethermind/Nethermind.Blockchain.Test/Specs/shanghai_from_genesis.json b/src/Nethermind/Nethermind.Blockchain.Test/Specs/shanghai_from_genesis.json index 5ecde9fa224..460316e73ff 100644 --- a/src/Nethermind/Nethermind.Blockchain.Test/Specs/shanghai_from_genesis.json +++ b/src/Nethermind/Nethermind.Blockchain.Test/Specs/shanghai_from_genesis.json @@ -1,5 +1,4 @@ { - "name": "shandong", "engine": { "Ethash": { "params": { @@ -77,7 +76,7 @@ "gasLimit": "0x400000" }, "accounts": { - "0x0000000000000000000000000000000000000000": { + "0x0000000000000000000000000000000000000000": { "balance": "1" } }, diff --git a/src/Nethermind/Nethermind.Network.Test/ForkInfoTests.cs b/src/Nethermind/Nethermind.Network.Test/ForkInfoTests.cs index ebf0b6ae070..f8d05a5eeb8 100644 --- a/src/Nethermind/Nethermind.Network.Test/ForkInfoTests.cs +++ b/src/Nethermind/Nethermind.Network.Test/ForkInfoTests.cs @@ -2,7 +2,6 @@ // SPDX-License-Identifier: LGPL-3.0-only using System.IO; -using System.Linq; using FluentAssertions; using Nethermind.Blockchain; using Nethermind.Core; @@ -13,417 +12,402 @@ using Nethermind.Serialization.Json; using Nethermind.Specs; using Nethermind.Specs.ChainSpecStyle; -using Nethermind.Specs.Forks; -using Nethermind.Specs.Test; -using Nethermind.Specs.Test.ChainSpecStyle; using NSubstitute; using NUnit.Framework; -namespace Nethermind.Network.Test +namespace Nethermind.Network.Test; + +[Parallelizable(ParallelScope.Self)] +[TestFixture] +public class ForkInfoTests { - [Parallelizable(ParallelScope.Self)] - [TestFixture] - public class ForkInfoTests + [TestCase(0, 0ul, "0xfc64ec04", 1_150_000ul, "Unsynced")] + [TestCase(1_149_999, 0ul, "0xfc64ec04", 1_150_000ul, "Last Frontier block")] + [TestCase(1_150_000, 0ul, "0x97c2c34c", 1_920_000ul, "First Homestead block")] + [TestCase(1_919_999, 0ul, "0x97c2c34c", 1_920_000ul, "Last Homestead block")] + [TestCase(1_920_000, 0ul, "0x91d1f948", 2_463_000ul, "First DAO block")] + [TestCase(2_462_999, 0ul, "0x91d1f948", 2_463_000ul, "Last DAO block")] + [TestCase(2_463_000, 0ul, "0x7a64da13", 2_675_000ul, "First Tangerine block")] + [TestCase(2_674_999, 0ul, "0x7a64da13", 2_675_000ul, "Last Tangerine block")] + [TestCase(2_675_000, 0ul, "0x3edd5b10", 4_370_000ul, "First Spurious block")] + [TestCase(4_369_999, 0ul, "0x3edd5b10", 4_370_000ul, "Last Spurious block")] + [TestCase(4_370_000, 0ul, "0xa00bc324", 7_280_000ul, "First Byzantium block")] + [TestCase(7_279_999, 0ul, "0xa00bc324", 7_280_000ul, "Last Byzantium block")] + [TestCase(7_280_000, 0ul, "0x668db0af", 9_069_000ul, "First Constantinople block")] + [TestCase(9_068_999, 0ul, "0x668db0af", 9_069_000ul, "Last Constantinople block")] + [TestCase(9_069_000, 0ul, "0x879d6e30", 9_200_000ul, "First Istanbul block")] + [TestCase(9_199_999, 0ul, "0x879d6e30", 9_200_000ul, "Last Istanbul block")] + [TestCase(9_200_000, 0ul, "0xe029e991", 12_244_000ul, "Last Muir Glacier")] + [TestCase(12_244_000, 0ul, "0x0eb440f6", 12_965_000ul, "First Berlin")] + [TestCase(12_964_999, 0ul, "0x0eb440f6", 12_965_000ul, "Last Berlin")] + [TestCase(12_965_000, 0ul, "0xb715077d", 13_773_000ul, "First London")] + [TestCase(13_772_999, 0ul, "0xb715077d", 13_773_000ul, "Last London")] + [TestCase(13_773_000, 0ul, "0x20c327fc", 15_050_000ul, "First Arrow Glacier")] + [TestCase(15_049_999, 0ul, "0x20c327fc", 15_050_000ul, "Last Arrow Glacier")] + [TestCase(15_050_000, 0ul, "0xf0afd0e3", 1681338455ul, "First Gray Glacier")] + [TestCase(15_051_000, 0ul, "0xf0afd0e3", 1681338455ul, "Future Gray Glacier")] + [TestCase(15_051_000, 1681338455ul, "0xdce96c2d", 0ul, "First Shanghai timestamp")] + [TestCase(15_051_000, 9981338455ul, "0xdce96c2d", 0ul, "Future Shanghai timestamp")] + public void Fork_id_and_hash_as_expected(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) { - [TestCase(0, 0ul, "0xfc64ec04", 1_150_000ul, "Unsynced")] - [TestCase(1_149_999, 0ul, "0xfc64ec04", 1_150_000ul, "Last Frontier block")] - [TestCase(1_150_000, 0ul, "0x97c2c34c", 1_920_000ul, "First Homestead block")] - [TestCase(1_919_999, 0ul, "0x97c2c34c", 1_920_000ul, "Last Homestead block")] - [TestCase(1_920_000, 0ul, "0x91d1f948", 2_463_000ul, "First DAO block")] - [TestCase(2_462_999, 0ul, "0x91d1f948", 2_463_000ul, "Last DAO block")] - [TestCase(2_463_000, 0ul, "0x7a64da13", 2_675_000ul, "First Tangerine block")] - [TestCase(2_674_999, 0ul, "0x7a64da13", 2_675_000ul, "Last Tangerine block")] - [TestCase(2_675_000, 0ul, "0x3edd5b10", 4_370_000ul, "First Spurious block")] - [TestCase(4_369_999, 0ul, "0x3edd5b10", 4_370_000ul, "Last Spurious block")] - [TestCase(4_370_000, 0ul, "0xa00bc324", 7_280_000ul, "First Byzantium block")] - [TestCase(7_279_999, 0ul, "0xa00bc324", 7_280_000ul, "Last Byzantium block")] - [TestCase(7_280_000, 0ul, "0x668db0af", 9_069_000ul, "First Constantinople block")] - [TestCase(9_068_999, 0ul, "0x668db0af", 9_069_000ul, "Last Constantinople block")] - [TestCase(9_069_000, 0ul, "0x879d6e30", 9_200_000ul, "First Istanbul block")] - [TestCase(9_199_999, 0ul, "0x879d6e30", 9_200_000ul, "Last Istanbul block")] - [TestCase(9_200_000, 0ul, "0xe029e991", 12_244_000ul, "Last Muir Glacier")] - [TestCase(12_244_000, 0ul, "0x0eb440f6", 12_965_000ul, "First Berlin")] - [TestCase(12_964_999, 0ul, "0x0eb440f6", 12_965_000ul, "Last Berlin")] - [TestCase(12_965_000, 0ul, "0xb715077d", 13_773_000ul, "First London")] - [TestCase(13_772_999, 0ul, "0xb715077d", 13_773_000ul, "Last London")] - [TestCase(13_773_000, 0ul, "0x20c327fc", 15_050_000ul, "First Arrow Glacier")] - [TestCase(15_049_999, 0ul, "0x20c327fc", 15_050_000ul, "Last Arrow Glacier")] - [TestCase(15_050_000, 0ul, "0xf0afd0e3", 1681338455ul, "First Gray Glacier")] - [TestCase(15_051_000, 0ul, "0xf0afd0e3", 1681338455ul, "Future Gray Glacier")] - [TestCase(15_051_000, 1681338455ul, "0xdce96c2d", 0ul, "First Shanghai timestamp")] - [TestCase(15_051_000, 9981338455ul, "0xdce96c2d", 0ul, "Future Shanghai timestamp")] - public void Fork_id_and_hash_as_expected(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - Test(head, headTimestamp, KnownHashes.MainnetGenesis, forkHashHex, next, description, MainnetSpecProvider.Instance, "foundation.json"); - } - - [TestCase(0, 0ul, "0xfc64ec04", 1_150_000ul, "Unsynced")] - [TestCase(1_149_999, 0ul, "0xfc64ec04", 1_150_000ul, "Last Frontier block")] - [TestCase(1_150_000, 0ul, "0x97c2c34c", 1_920_000ul, "First Homestead block")] - [TestCase(1_919_999, 0ul, "0x97c2c34c", 1_920_000ul, "Last Homestead block")] - [TestCase(1_920_000, 0ul, "0x91d1f948", 2_463_000ul, "First DAO block")] - [TestCase(2_462_999, 0ul, "0x91d1f948", 2_463_000ul, "Last DAO block")] - [TestCase(2_463_000, 0ul, "0x7a64da13", 2_675_000ul, "First Tangerine block")] - [TestCase(2_674_999, 0ul, "0x7a64da13", 2_675_000ul, "Last Tangerine block")] - [TestCase(2_675_000, 0ul, "0x3edd5b10", 4_370_000ul, "First Spurious block")] - [TestCase(4_369_999, 0ul, "0x3edd5b10", 4_370_000ul, "Last Spurious block")] - [TestCase(4_370_000, 0ul, "0xa00bc324", 7_280_000ul, "First Byzantium block")] - [TestCase(7_279_999, 0ul, "0xa00bc324", 7_280_000ul, "Last Byzantium block")] - [TestCase(7_280_000, 0ul, "0x668db0af", 9_069_000ul, "First Constantinople block")] - [TestCase(9_068_999, 0ul, "0x668db0af", 9_069_000ul, "Last Constantinople block")] - [TestCase(9_069_000, 0ul, "0x879d6e30", 9_200_000ul, "First Istanbul block")] - [TestCase(9_199_999, 0ul, "0x879d6e30", 9_200_000ul, "Last Istanbul block")] - [TestCase(9_200_000, 0ul, "0xe029e991", 12_244_000ul, "Last Muir Glacier")] - [TestCase(12_244_000, 0ul, "0x0eb440f6", 12_965_000ul, "First Berlin")] - [TestCase(12_964_999, 0ul, "0x0eb440f6", 12_965_000ul, "Last Berlin")] - [TestCase(12_965_000, 0ul, "0xb715077d", 13_773_000ul, "First London")] - [TestCase(13_772_999, 0ul, "0xb715077d", 13_773_000ul, "Last London")] - [TestCase(13_773_000, 0ul, "0x20c327fc", 15_050_000ul, "First Arrow Glacier")] - [TestCase(15_049_999, 0ul, "0x20c327fc", 15_050_000ul, "Last Arrow Glacier")] - [TestCase(15_050_000, 0ul, "0xf0afd0e3", 1_668_000_000ul, "First Gray Glacier")] - [TestCase(17_999_999, 0ul, "0xf0afd0e3", 1_668_000_000ul, "Last Gray Glacier")] - [TestCase(20_000_000, 1_668_000_000ul, "0x71147644", 0ul, "First Shanghai")] - [TestCase(21_000_000, 1_768_000_000ul, "0x71147644", 0ul, "Future Shanghai")] - public void Fork_id_and_hash_as_expected_with_timestamps(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - Test(head, headTimestamp, KnownHashes.MainnetGenesis, forkHashHex, next, description, "TimestampForkIdTest.json", "../../../"); - } + Test(head, headTimestamp, KnownHashes.MainnetGenesis, forkHashHex, next, description, MainnetSpecProvider.Instance, "foundation.json"); + } - [TestCase(15_050_000, 0ul, "0xf0afd0e3", 21_000_000ul, "First Gray Glacier")] - [TestCase(21_000_000, 0ul, "0x3f5fd195", 1681338455UL, "First Merge Fork Id test")] - [TestCase(21_811_000, 0ul, "0x3f5fd195", 1681338455UL, "Future Merge Fork Id test")] - public void Fork_id_and_hash_as_expected_with_merge_fork_id(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); - ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../../Chains", "foundation.json"))); - spec.Parameters.MergeForkIdTransition = 21_000_000L; - spec.MergeForkIdBlockNumber = 21_000_000L; - ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); - Test(head, headTimestamp, KnownHashes.MainnetGenesis, forkHashHex, next, description, provider); - } + [TestCase(0, 0ul, "0xfc64ec04", 1_150_000ul, "Unsynced")] + [TestCase(1_149_999, 0ul, "0xfc64ec04", 1_150_000ul, "Last Frontier block")] + [TestCase(1_150_000, 0ul, "0x97c2c34c", 1_920_000ul, "First Homestead block")] + [TestCase(1_919_999, 0ul, "0x97c2c34c", 1_920_000ul, "Last Homestead block")] + [TestCase(1_920_000, 0ul, "0x91d1f948", 2_463_000ul, "First DAO block")] + [TestCase(2_462_999, 0ul, "0x91d1f948", 2_463_000ul, "Last DAO block")] + [TestCase(2_463_000, 0ul, "0x7a64da13", 2_675_000ul, "First Tangerine block")] + [TestCase(2_674_999, 0ul, "0x7a64da13", 2_675_000ul, "Last Tangerine block")] + [TestCase(2_675_000, 0ul, "0x3edd5b10", 4_370_000ul, "First Spurious block")] + [TestCase(4_369_999, 0ul, "0x3edd5b10", 4_370_000ul, "Last Spurious block")] + [TestCase(4_370_000, 0ul, "0xa00bc324", 7_280_000ul, "First Byzantium block")] + [TestCase(7_279_999, 0ul, "0xa00bc324", 7_280_000ul, "Last Byzantium block")] + [TestCase(7_280_000, 0ul, "0x668db0af", 9_069_000ul, "First Constantinople block")] + [TestCase(9_068_999, 0ul, "0x668db0af", 9_069_000ul, "Last Constantinople block")] + [TestCase(9_069_000, 0ul, "0x879d6e30", 9_200_000ul, "First Istanbul block")] + [TestCase(9_199_999, 0ul, "0x879d6e30", 9_200_000ul, "Last Istanbul block")] + [TestCase(9_200_000, 0ul, "0xe029e991", 12_244_000ul, "Last Muir Glacier")] + [TestCase(12_244_000, 0ul, "0x0eb440f6", 12_965_000ul, "First Berlin")] + [TestCase(12_964_999, 0ul, "0x0eb440f6", 12_965_000ul, "Last Berlin")] + [TestCase(12_965_000, 0ul, "0xb715077d", 13_773_000ul, "First London")] + [TestCase(13_772_999, 0ul, "0xb715077d", 13_773_000ul, "Last London")] + [TestCase(13_773_000, 0ul, "0x20c327fc", 15_050_000ul, "First Arrow Glacier")] + [TestCase(15_049_999, 0ul, "0x20c327fc", 15_050_000ul, "Last Arrow Glacier")] + [TestCase(15_050_000, 0ul, "0xf0afd0e3", 1_668_000_000ul, "First Gray Glacier")] + [TestCase(17_999_999, 0ul, "0xf0afd0e3", 1_668_000_000ul, "Last Gray Glacier")] + [TestCase(20_000_000, 1_668_000_000ul, "0x71147644", 0ul, "First Shanghai")] + [TestCase(21_000_000, 1_768_000_000ul, "0x71147644", 0ul, "Future Shanghai")] + public void Fork_id_and_hash_as_expected_with_timestamps(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + Test(head, headTimestamp, KnownHashes.MainnetGenesis, forkHashHex, next, description, "TimestampForkIdTest.json", "../../../"); + } - [TestCase(0, 0ul, "0xa3f5ab08", 1_561_651ul, "Unsynced")] - [TestCase(1_561_650L, 0ul, "0xa3f5ab08", 1_561_651ul, "Last Constantinople block")] - [TestCase(1_561_651L, 0ul, "0xc25efa5c", 4_460_644ul, "First Istanbul block")] - [TestCase(4_460_644L, 0ul, "0x757a1c47", 5_062_605ul, "First Berlin block")] - [TestCase(4_600_000L, 0ul, "0x757a1c47", 5_062_605ul, "Future Berlin block")] - [TestCase(5_062_605L, 0ul, "0xB8C6299D", 1678832736ul, "First London block")] - [TestCase(6_000_000, 0ul, "0xB8C6299D", 1678832736ul, "Future London block")] - [TestCase(6_000_001, 1678832736ul, "0xf9843abf", 0ul, "First Shanghai timestamp")] - [TestCase(6_000_001, 2678832736ul, "0xf9843abf", 0ul, "Future Shanghai timestamp")] - public void Fork_id_and_hash_as_expected_on_goerli(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - Test(head, headTimestamp, KnownHashes.GoerliGenesis, forkHashHex, next, description, GoerliSpecProvider.Instance, "goerli.json"); - } + [TestCase(15_050_000, 0ul, "0xf0afd0e3", 21_000_000ul, "First Gray Glacier")] + [TestCase(21_000_000, 0ul, "0x3f5fd195", 1681338455UL, "First Merge Fork Id test")] + [TestCase(21_811_000, 0ul, "0x3f5fd195", 1681338455UL, "Future Merge Fork Id test")] + public void Fork_id_and_hash_as_expected_with_merge_fork_id(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); + ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../../Chains", "foundation.json"))); + spec.Parameters.MergeForkIdTransition = 21_000_000L; + spec.MergeForkIdBlockNumber = 21_000_000L; + ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); + Test(head, headTimestamp, KnownHashes.MainnetGenesis, forkHashHex, next, description, provider); + } - [TestCase(0, 0ul, "0x3b8e0691", 1ul, "Unsynced, last Frontier block")] - [TestCase(1, 0ul, "0x60949295", 2ul, "First and last Homestead block")] - [TestCase(2, 0ul, "0x8bde40dd", 3ul, "First and last Tangerine block")] - [TestCase(3, 0ul, "0xcb3a64bb", 1035301ul, "First Spurious block")] - [TestCase(1_035_300L, 0ul, "0xcb3a64bb", 1_035_301ul, "Last Spurious block")] - [TestCase(1_035_301L, 0ul, "0x8d748b57", 3_660_663ul, "First Byzantium block")] - [TestCase(3_660_662L, 0ul, "0x8d748b57", 3_660_663ul, "Last Byzantium block")] - [TestCase(3_660_663L, 0ul, "0xe49cab14", 4_321_234ul, "First Constantinople block")] - [TestCase(4_321_233L, 0ul, "0xe49cab14", 4_321_234ul, "Last Constantinople block")] - [TestCase(4_321_234L, 0ul, "0xafec6b27", 5_435_345ul, "First Petersburg block")] - [TestCase(5_435_344L, 0ul, "0xafec6b27", 5_435_345ul, "Last Petersburg block")] - [TestCase(5_435_345L, 0ul, "0xcbdb8838", 8_290_928ul, "First Istanbul block")] - [TestCase(8_290_928L, 0ul, "0x6910c8bd", 8_897_988ul, "First Berlin block")] - [TestCase(8_700_000L, 0ul, "0x6910c8bd", 8_897_988ul, "Future Berlin block")] - [TestCase(8_897_988L, 0ul, "0x8E29F2F3", 0ul, "First London block")] - [TestCase(9_000_000L, 0ul, "0x8E29F2F3", 0ul, "Future London block")] - public void Fork_id_and_hash_as_expected_on_rinkeby(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - Test(head, headTimestamp, KnownHashes.RinkebyGenesis, forkHashHex, next, description, RinkebySpecProvider.Instance, "rinkeby.json"); - } + [TestCase(0, 0ul, "0xa3f5ab08", 1_561_651ul, "Unsynced")] + [TestCase(1_561_650L, 0ul, "0xa3f5ab08", 1_561_651ul, "Last Constantinople block")] + [TestCase(1_561_651L, 0ul, "0xc25efa5c", 4_460_644ul, "First Istanbul block")] + [TestCase(4_460_644L, 0ul, "0x757a1c47", 5_062_605ul, "First Berlin block")] + [TestCase(4_600_000L, 0ul, "0x757a1c47", 5_062_605ul, "Future Berlin block")] + [TestCase(5_062_605L, 0ul, "0xB8C6299D", 1678832736ul, "First London block")] + [TestCase(6_000_000, 0ul, "0xB8C6299D", 1678832736ul, "Future London block")] + [TestCase(6_000_001, 1678832736ul, "0xf9843abf", 0ul, "First Shanghai timestamp")] + [TestCase(6_000_001, 2678832736ul, "0xf9843abf", 0ul, "Future Shanghai timestamp")] + public void Fork_id_and_hash_as_expected_on_goerli(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + Test(head, headTimestamp, KnownHashes.GoerliGenesis, forkHashHex, next, description, GoerliSpecProvider.Instance, "goerli.json"); + } - [TestCase(0, 0ul, "0x30c7ddbc", 10ul, " Unsynced, last Frontier, Homestead and first Tangerine block")] - [TestCase(9, 0ul, "0x30c7ddbc", 10ul, "Last Tangerine block")] - [TestCase(10, 0ul, "0x63760190", 1_700_000ul, "First Spurious block")] - [TestCase(1_699_999L, 0ul, "0x63760190", 1_700_000ul, "Last Spurious block")] - [TestCase(1_700_000L, 0ul, "0x3ea159c7", 4_230_000ul, "First Byzantium block")] - [TestCase(4_229_999L, 0ul, "0x3ea159c7", 4_230_000ul, "Last Byzantium block")] - [TestCase(4_230_000L, 0ul, "0x97b544f3", 4_939_394ul, "First Constantinople block")] - [TestCase(4_939_393L, 0ul, "0x97b544f3", 4_939_394ul, "Last Constantinople block")] - [TestCase(4_939_394L, 0ul, "0xd6e2149b", 6_485_846ul, "First Petersburg block")] - [TestCase(6_485_845L, 0ul, "0xd6e2149b", 6_485_846ul, "Last Petersburg block")] - [TestCase(6_485_846L, 0ul, "0x4bc66396", 7_117_117ul, "First Istanbul block")] - [TestCase(7_117_117L, 0ul, "0x6727ef90", 9_812_189ul, "First Muir Glacier block")] - [TestCase(9_812_189L, 0ul, "0xa157d377", 10_499_401ul, "First Berlin block")] - [TestCase(9_900_000L, 0ul, "0xa157d377", 10_499_401ul, "Future Berlin block")] - [TestCase(10_499_401L, 0ul, "0x7119B6B3", 0ul, "First London block")] - [TestCase(12_000_000, 0ul, "0x7119B6B3", 0ul, "Future London block")] - public void Fork_id_and_hash_as_expected_on_ropsten(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - Test(head, headTimestamp, KnownHashes.RopstenGenesis, forkHashHex, next, description, RopstenSpecProvider.Instance, "ropsten.json"); - } + [TestCase(0, 0ul, "0x3b8e0691", 1ul, "Unsynced, last Frontier block")] + [TestCase(1, 0ul, "0x60949295", 2ul, "First and last Homestead block")] + [TestCase(2, 0ul, "0x8bde40dd", 3ul, "First and last Tangerine block")] + [TestCase(3, 0ul, "0xcb3a64bb", 1035301ul, "First Spurious block")] + [TestCase(1_035_300L, 0ul, "0xcb3a64bb", 1_035_301ul, "Last Spurious block")] + [TestCase(1_035_301L, 0ul, "0x8d748b57", 3_660_663ul, "First Byzantium block")] + [TestCase(3_660_662L, 0ul, "0x8d748b57", 3_660_663ul, "Last Byzantium block")] + [TestCase(3_660_663L, 0ul, "0xe49cab14", 4_321_234ul, "First Constantinople block")] + [TestCase(4_321_233L, 0ul, "0xe49cab14", 4_321_234ul, "Last Constantinople block")] + [TestCase(4_321_234L, 0ul, "0xafec6b27", 5_435_345ul, "First Petersburg block")] + [TestCase(5_435_344L, 0ul, "0xafec6b27", 5_435_345ul, "Last Petersburg block")] + [TestCase(5_435_345L, 0ul, "0xcbdb8838", 8_290_928ul, "First Istanbul block")] + [TestCase(8_290_928L, 0ul, "0x6910c8bd", 8_897_988ul, "First Berlin block")] + [TestCase(8_700_000L, 0ul, "0x6910c8bd", 8_897_988ul, "Future Berlin block")] + [TestCase(8_897_988L, 0ul, "0x8E29F2F3", 0ul, "First London block")] + [TestCase(9_000_000L, 0ul, "0x8E29F2F3", 0ul, "Future London block")] + public void Fork_id_and_hash_as_expected_on_rinkeby(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + Test(head, headTimestamp, KnownHashes.RinkebyGenesis, forkHashHex, next, description, RinkebySpecProvider.Instance, "rinkeby.json"); + } - [TestCase(0, 0ul, "0xFE3366E7", 1735371ul, "Sepolia genesis")] - [TestCase(1735370, 0ul, "0xFE3366E7", 1735371ul, "Sepolia Last block before MergeForkIdTranstion")] - [TestCase(1735371, 0ul, "0xb96cbd13", 1677557088UL, "First block - Sepolia MergeForkIdTransition")] - [TestCase(1735372, 1677557088ul, "0xf7f9bc08", 0ul, "Shanghai")] - [TestCase(1735372, 2677557088ul, "0xf7f9bc08", 0ul, "Future Shanghai")] - public void Fork_id_and_hash_as_expected_on_sepolia(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - Test(head, headTimestamp, KnownHashes.SepoliaGenesis, forkHashHex, next, description, SepoliaSpecProvider.Instance, "sepolia.json"); - } + [TestCase(0, 0ul, "0x30c7ddbc", 10ul, " Unsynced, last Frontier, Homestead and first Tangerine block")] + [TestCase(9, 0ul, "0x30c7ddbc", 10ul, "Last Tangerine block")] + [TestCase(10, 0ul, "0x63760190", 1_700_000ul, "First Spurious block")] + [TestCase(1_699_999L, 0ul, "0x63760190", 1_700_000ul, "Last Spurious block")] + [TestCase(1_700_000L, 0ul, "0x3ea159c7", 4_230_000ul, "First Byzantium block")] + [TestCase(4_229_999L, 0ul, "0x3ea159c7", 4_230_000ul, "Last Byzantium block")] + [TestCase(4_230_000L, 0ul, "0x97b544f3", 4_939_394ul, "First Constantinople block")] + [TestCase(4_939_393L, 0ul, "0x97b544f3", 4_939_394ul, "Last Constantinople block")] + [TestCase(4_939_394L, 0ul, "0xd6e2149b", 6_485_846ul, "First Petersburg block")] + [TestCase(6_485_845L, 0ul, "0xd6e2149b", 6_485_846ul, "Last Petersburg block")] + [TestCase(6_485_846L, 0ul, "0x4bc66396", 7_117_117ul, "First Istanbul block")] + [TestCase(7_117_117L, 0ul, "0x6727ef90", 9_812_189ul, "First Muir Glacier block")] + [TestCase(9_812_189L, 0ul, "0xa157d377", 10_499_401ul, "First Berlin block")] + [TestCase(9_900_000L, 0ul, "0xa157d377", 10_499_401ul, "Future Berlin block")] + [TestCase(10_499_401L, 0ul, "0x7119B6B3", 0ul, "First London block")] + [TestCase(12_000_000, 0ul, "0x7119B6B3", 0ul, "Future London block")] + public void Fork_id_and_hash_as_expected_on_ropsten(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + Test(head, headTimestamp, KnownHashes.RopstenGenesis, forkHashHex, next, description, RopstenSpecProvider.Instance, "ropsten.json"); + } - [TestCase(0, 0ul, "0xc42480d3", 0ul, "shandong genesis")] - public void Fork_id_and_hash_as_expected_on_shandong(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/shandong.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - ChainSpecBasedSpecProvider chainSpecBasedSpecProvider = new ChainSpecBasedSpecProvider(chainSpec); + [TestCase(0, 0ul, "0xFE3366E7", 1735371ul, "Sepolia genesis")] + [TestCase(1735370, 0ul, "0xFE3366E7", 1735371ul, "Sepolia Last block before MergeForkIdTranstion")] + [TestCase(1735371, 0ul, "0xb96cbd13", 1677557088UL, "First block - Sepolia MergeForkIdTransition")] + [TestCase(1735372, 1677557088ul, "0xf7f9bc08", 0ul, "Shanghai")] + [TestCase(1735372, 2677557088ul, "0xf7f9bc08", 0ul, "Future Shanghai")] + public void Fork_id_and_hash_as_expected_on_sepolia(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + Test(head, headTimestamp, KnownHashes.SepoliaGenesis, forkHashHex, next, description, SepoliaSpecProvider.Instance, "sepolia.json"); + } - Test(head, headTimestamp, new Keccak("0xbea94d3492ed9c41556a1c45c27da4947938880fb4c15f31fb742e5a1c10a2fb"), forkHashHex, next, description, chainSpecBasedSpecProvider, "shandong.json"); - } + [TestCase(0, 0ul, "0xf64909b1", 1604400ul, "Unsynced, last Frontier, Homestead, Tangerine, Spurious, Byzantium")] + [TestCase(1604399, 0ul, "0xf64909b1", 1604400ul, "Last Byzantium block")] + [TestCase(1604400, 0ul, "0xfde2d083", 2508800ul, "First Constantinople block")] + [TestCase(2508799, 0ul, "0xfde2d083", 2508800ul, "Last Constantinople block")] + [TestCase(2508800, 0ul, "0xfc1d8f2f", 7298030ul, "First Petersburg block")] + [TestCase(7298029, 0ul, "0xfc1d8f2f", 7298030ul, "Last Petersburg block")] + [TestCase(7298030, 0ul, "0x54d05e6c", 9186425ul, "First Istanbul block")] + [TestCase(9186424, 0ul, "0x54d05e6c", 9186425ul, "Last Istanbul block")] + [TestCase(9186425, 0ul, "0xb6e6cd81", 16101500ul, "First POSDAO Activation block")] + [TestCase(16101499, 0ul, "0xb6e6cd81", 16101500ul, "Last POSDAO Activation block")] + [TestCase(16101500, 0ul, "0x069a83d9", 19040000ul, "First Berlin block")] + [TestCase(19039999, 0ul, "0x069a83d9", 19040000ul, "Last Berlin block")] + [TestCase(19040000, 0ul, "0x018479d3", 0ul, "First London block")] + [TestCase(21735000, 0ul, "0x018479d3", 0ul, "First GIP-31 block")] + public void Fork_id_and_hash_as_expected_on_gnosis(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); + ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../../Chains", "gnosis.json"))); + ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); + Test(head, headTimestamp, KnownHashes.GnosisGenesis, forkHashHex, next, description, provider); + } - [TestCase(0, 0ul, "0xf64909b1", 1604400ul, "Unsynced, last Frontier, Homestead, Tangerine, Spurious, Byzantium")] - [TestCase(1604399, 0ul, "0xf64909b1", 1604400ul, "Last Byzantium block")] - [TestCase(1604400, 0ul, "0xfde2d083", 2508800ul, "First Constantinople block")] - [TestCase(2508799, 0ul, "0xfde2d083", 2508800ul, "Last Constantinople block")] - [TestCase(2508800, 0ul, "0xfc1d8f2f", 7298030ul, "First Petersburg block")] - [TestCase(7298029, 0ul, "0xfc1d8f2f", 7298030ul, "Last Petersburg block")] - [TestCase(7298030, 0ul, "0x54d05e6c", 9186425ul, "First Istanbul block")] - [TestCase(9186424, 0ul, "0x54d05e6c", 9186425ul, "Last Istanbul block")] - [TestCase(9186425, 0ul, "0xb6e6cd81", 16101500ul, "First POSDAO Activation block")] - [TestCase(16101499, 0ul, "0xb6e6cd81", 16101500ul, "Last POSDAO Activation block")] - [TestCase(16101500, 0ul, "0x069a83d9", 19040000ul, "First Berlin block")] - [TestCase(19039999, 0ul, "0x069a83d9", 19040000ul, "Last Berlin block")] - [TestCase(19040000, 0ul, "0x018479d3", 0ul, "First London block")] - [TestCase(21735000, 0ul, "0x018479d3", 0ul, "First GIP-31 block")] - public void Fork_id_and_hash_as_expected_on_gnosis(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); - ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../../Chains", "gnosis.json"))); - ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); - Test(head, headTimestamp, KnownHashes.GnosisGenesis, forkHashHex, next, description, provider); - } + [TestCase(0, 0ul, "0x50d39d7b", 0ul, "Chiado genesis")] + public void Fork_id_and_hash_as_expected_on_chiado(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) + { + ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); + ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../../Chains", "chiado.json"))); + ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); + Test(head, headTimestamp, KnownHashes.ChiadoGenesis, forkHashHex, next, description, provider); + } - [TestCase(0, 0ul, "0x50d39d7b", 0ul, "Chiado genesis")] - public void Fork_id_and_hash_as_expected_on_chiado(long head, ulong headTimestamp, string forkHashHex, ulong next, string description) - { - ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); - ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../../Chains", "chiado.json"))); - ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); - Test(head, headTimestamp, KnownHashes.ChiadoGenesis, forkHashHex, next, description, provider); - } + // Local is mainnet Gray Glacier, remote announces the same. No future fork is announced. + [TestCase(MainnetSpecProvider.GrayGlacierBlockNumber, 0ul, "0xf0afd0e3", 0ul, ValidationResult.Valid)] - // Local is mainnet Gray Glacier, remote announces the same. No future fork is announced. - [TestCase(MainnetSpecProvider.GrayGlacierBlockNumber, 0ul, "0xf0afd0e3", 0ul, ValidationResult.Valid)] + // Local is mainnet Petersburg, remote announces the same. No future fork is announced. + [TestCase(7987396, 0ul, "0x668db0af", 0ul, ValidationResult.Valid)] - // Local is mainnet Petersburg, remote announces the same. No future fork is announced. - [TestCase(7987396, 0ul, "0x668db0af", 0ul, ValidationResult.Valid)] + // Local is mainnet Petersburg, remote announces the same. Remote also announces a next fork + // at block 0xffffffff, but that is uncertain. + [TestCase(7987396, 0ul, "0x668db0af", ulong.MaxValue, ValidationResult.Valid)] - // Local is mainnet Petersburg, remote announces the same. Remote also announces a next fork - // at block 0xffffffff, but that is uncertain. - [TestCase(7987396, 0ul, "0x668db0af", ulong.MaxValue, ValidationResult.Valid)] + // Local is mainnet currently in Byzantium only (so it's aware of Petersburg), remote announces + // also Byzantium, but it's not yet aware of Petersburg (e.g. non updated node before the fork). + // In this case we don't know if Petersburg passed yet or not. + [TestCase(7279999, 0ul, "0xa00bc324", 0ul, ValidationResult.Valid)] - // Local is mainnet currently in Byzantium only (so it's aware of Petersburg), remote announces - // also Byzantium, but it's not yet aware of Petersburg (e.g. non updated node before the fork). - // In this case we don't know if Petersburg passed yet or not. - [TestCase(7279999, 0ul, "0xa00bc324", 0ul, ValidationResult.Valid)] + // Local is mainnet currently in Byzantium only (so it's aware of Petersburg), remote announces + // also Byzantium, and it's also aware of Petersburg (e.g. updated node before the fork). We + // don't know if Petersburg passed yet (will pass) or not. + [TestCase(7279999, 0ul, "0xa00bc324", 7280000ul, ValidationResult.Valid)] - // Local is mainnet currently in Byzantium only (so it's aware of Petersburg), remote announces - // also Byzantium, and it's also aware of Petersburg (e.g. updated node before the fork). We - // don't know if Petersburg passed yet (will pass) or not. - [TestCase(7279999, 0ul, "0xa00bc324", 7280000ul, ValidationResult.Valid)] + // Local is mainnet currently in Byzantium only (so it's aware of Petersburg), remote announces + // also Byzantium, and it's also aware of some random fork (e.g. misconfigured Petersburg). As + // neither forks passed at neither nodes, they may mismatch, but we still connect for now. + [TestCase(7279999, 0ul, "0xa00bc324", ulong.MaxValue, ValidationResult.Valid)] - // Local is mainnet currently in Byzantium only (so it's aware of Petersburg), remote announces - // also Byzantium, and it's also aware of some random fork (e.g. misconfigured Petersburg). As - // neither forks passed at neither nodes, they may mismatch, but we still connect for now. - [TestCase(7279999, 0ul, "0xa00bc324", ulong.MaxValue, ValidationResult.Valid)] + // Local is mainnet exactly on Petersburg, remote announces Byzantium + knowledge about Petersburg. Remote + // is simply out of sync, accept. + [TestCase(7280000, 0ul, "0xa00bc324", 7280000ul, ValidationResult.Valid)] - // Local is mainnet exactly on Petersburg, remote announces Byzantium + knowledge about Petersburg. Remote - // is simply out of sync, accept. - [TestCase(7280000, 0ul, "0xa00bc324", 7280000ul, ValidationResult.Valid)] + // Local is mainnet Petersburg, remote announces Byzantium + knowledge about Petersburg. Remote + // is simply out of sync, accept. + [TestCase(7987396, 0ul, "0xa00bc324", 7280000ul, ValidationResult.Valid)] - // Local is mainnet Petersburg, remote announces Byzantium + knowledge about Petersburg. Remote - // is simply out of sync, accept. - [TestCase(7987396, 0ul, "0xa00bc324", 7280000ul, ValidationResult.Valid)] + // Local is mainnet Petersburg, remote announces Spurious + knowledge about Byzantium. Remote + // is definitely out of sync. It may or may not need the Petersburg update, we don't know yet. + [TestCase(7987396, 0ul, "0x3edd5b10", 4370000ul, ValidationResult.Valid)] - // Local is mainnet Petersburg, remote announces Spurious + knowledge about Byzantium. Remote - // is definitely out of sync. It may or may not need the Petersburg update, we don't know yet. - [TestCase(7987396, 0ul, "0x3edd5b10", 4370000ul, ValidationResult.Valid)] + // Local is mainnet Byzantium, remote announces Petersburg. Local is out of sync, accept. + [TestCase(7279999, 0ul, "0x668db0af", 0ul, ValidationResult.Valid)] - // Local is mainnet Byzantium, remote announces Petersburg. Local is out of sync, accept. - [TestCase(7279999, 0ul, "0x668db0af", 0ul, ValidationResult.Valid)] + // Local is mainnet Spurious, remote announces Byzantium, but is not aware of Petersburg. Local + // out of sync. Local also knows about a future fork, but that is uncertain yet. + [TestCase(4369999, 0ul, "0xa00bc324", 0ul, ValidationResult.Valid)] - // Local is mainnet Spurious, remote announces Byzantium, but is not aware of Petersburg. Local - // out of sync. Local also knows about a future fork, but that is uncertain yet. - [TestCase(4369999, 0ul, "0xa00bc324", 0ul, ValidationResult.Valid)] + // Local is mainnet Petersburg. remote announces Byzantium but is not aware of further forks. + // Remote needs software update. + [TestCase(7987396, 0ul, "0xa00bc324", 0ul, ValidationResult.RemoteStale)] - // Local is mainnet Petersburg. remote announces Byzantium but is not aware of further forks. - // Remote needs software update. - [TestCase(7987396, 0ul, "0xa00bc324", 0ul, ValidationResult.RemoteStale)] + // Local is mainnet Petersburg, and isn't aware of more forks. Remote announces Petersburg + + // 0xffffffff. Local needs software update, reject. + [TestCase(7987396, 0ul, "0x5cddc0e1", 0ul, ValidationResult.IncompatibleOrStale)] + + // Local is mainnet Byzantium, and is aware of Petersburg. Remote announces Petersburg + + // 0xffffffff. Local needs software update, reject. + [TestCase(7279999, 0ul, "0x5cddc0e1", 0ul, ValidationResult.IncompatibleOrStale)] - // Local is mainnet Petersburg, and isn't aware of more forks. Remote announces Petersburg + - // 0xffffffff. Local needs software update, reject. - [TestCase(7987396, 0ul, "0x5cddc0e1", 0ul, ValidationResult.IncompatibleOrStale)] - - // Local is mainnet Byzantium, and is aware of Petersburg. Remote announces Petersburg + - // 0xffffffff. Local needs software update, reject. - [TestCase(7279999, 0ul, "0x5cddc0e1", 0ul, ValidationResult.IncompatibleOrStale)] + // Local is mainnet Petersburg, remote is Rinkeby Petersburg. + [TestCase(7987396, 0ul, "0xafec6b27", 0ul, ValidationResult.IncompatibleOrStale)] - // Local is mainnet Petersburg, remote is Rinkeby Petersburg. - [TestCase(7987396, 0ul, "0xafec6b27", 0ul, ValidationResult.IncompatibleOrStale)] + // Local is mainnet Gray Glacier, far in the future. Remote announces Gopherium (non existing fork) + // at some future block 88888888, for itself, but past block for local. Local is incompatible. + // + // This case detects non-upgraded nodes with majority hash power (typical Ropsten mess). + [TestCase(88888888, 0ul, "0xf0afd0e3", 88888888ul, ValidationResult.IncompatibleOrStale)] - // Local is mainnet Gray Glacier, far in the future. Remote announces Gopherium (non existing fork) - // at some future block 88888888, for itself, but past block for local. Local is incompatible. - // - // This case detects non-upgraded nodes with majority hash power (typical Ropsten mess). - [TestCase(88888888, 0ul, "0xf0afd0e3", 88888888ul, ValidationResult.IncompatibleOrStale)] + // Local is mainnet Byzantium. Remote is also in Byzantium, but announces Gopherium (non existing + // fork) at block 7279999, before Petersburg. Local is incompatible. + [TestCase(7279999, 0ul, "0xa00bc324", 7279999ul, ValidationResult.IncompatibleOrStale)] - // Local is mainnet Byzantium. Remote is also in Byzantium, but announces Gopherium (non existing - // fork) at block 7279999, before Petersburg. Local is incompatible. - [TestCase(7279999, 0ul, "0xa00bc324", 7279999ul, ValidationResult.IncompatibleOrStale)] + //------------------------------------ + // Block to timestamp transition tests + //------------------------------------ - //------------------------------------ - // Block to timestamp transition tests - //------------------------------------ + // Local is mainnet currently in Gray Glacier only (so it's aware of Shanghai), remote announces + // also Gray Glacier, but it's not yet aware of Shanghai (e.g. non updated node before the fork). + // In this case we don't know if Shanghai passed yet or not. + [TestCase(15050000, 0ul, "0xf0afd0e3", 0ul, ValidationResult.Valid, true)] - // Local is mainnet currently in Gray Glacier only (so it's aware of Shanghai), remote announces - // also Gray Glacier, but it's not yet aware of Shanghai (e.g. non updated node before the fork). - // In this case we don't know if Shanghai passed yet or not. - [TestCase(15050000, 0ul, "0xf0afd0e3", 0ul, ValidationResult.Valid, true)] + // Local is mainnet currently in Gray Glacier only (so it's aware of Shanghai), remote announces + // also Gray Glacier, and it's also aware of Shanghai (e.g. updated node before the fork). We + // don't know if Shanghai passed yet (will pass) or not. + [TestCase(15050000, 0ul, "0xf0afd0e3", 1_668_000_000ul, ValidationResult.Valid, true)] - // Local is mainnet currently in Gray Glacier only (so it's aware of Shanghai), remote announces - // also Gray Glacier, and it's also aware of Shanghai (e.g. updated node before the fork). We - // don't know if Shanghai passed yet (will pass) or not. - [TestCase(15050000, 0ul, "0xf0afd0e3", 1_668_000_000ul, ValidationResult.Valid, true)] + // Local is mainnet currently in Gray Glacier only (so it's aware of Shanghai), remote announces + // also Gray Glacier, and it's also aware of some random fork (e.g. misconfigured Shanghai). As + // neither forks passed at neither nodes, they may mismatch, but we still connect for now. + [TestCase(15050000, 0ul, "0xf0afd0e3", ulong.MaxValue, ValidationResult.Valid, true)] - // Local is mainnet currently in Gray Glacier only (so it's aware of Shanghai), remote announces - // also Gray Glacier, and it's also aware of some random fork (e.g. misconfigured Shanghai). As - // neither forks passed at neither nodes, they may mismatch, but we still connect for now. - [TestCase(15050000, 0ul, "0xf0afd0e3", ulong.MaxValue, ValidationResult.Valid, true)] + // Local is mainnet exactly on Shanghai, remote announces Gray Glacier + knowledge about Shanghai. Remote + // is simply out of sync, accept. + [TestCase(20000000, 1_668_000_000ul, "0xf0afd0e3", 1_668_000_000ul, ValidationResult.Valid, true)] - // Local is mainnet exactly on Shanghai, remote announces Gray Glacier + knowledge about Shanghai. Remote - // is simply out of sync, accept. - [TestCase(20000000, 1_668_000_000ul, "0xf0afd0e3", 1_668_000_000ul, ValidationResult.Valid, true)] + // Local is mainnet Shanghai, remote announces Gray Glacier + knowledge about Shanghai. Remote + // is simply out of sync, accept. + [TestCase(20123456, 1_668_111_111ul, "0xf0afd0e3", 1_668_000_000ul, ValidationResult.Valid, true)] - // Local is mainnet Shanghai, remote announces Gray Glacier + knowledge about Shanghai. Remote - // is simply out of sync, accept. - [TestCase(20123456, 1_668_111_111ul, "0xf0afd0e3", 1_668_000_000ul, ValidationResult.Valid, true)] + // Local is mainnet Shanghai, remote announces Arrow Glacier + knowledge about Gray Glacier. Remote + // is definitely out of sync. It may or may not need the Shanghai update, we don't know yet. + [TestCase(20000000, 1_668_000_000ul, "0x20c327fc", 15_050_000ul, ValidationResult.Valid, true)] - // Local is mainnet Shanghai, remote announces Arrow Glacier + knowledge about Gray Glacier. Remote - // is definitely out of sync. It may or may not need the Shanghai update, we don't know yet. - [TestCase(20000000, 1_668_000_000ul, "0x20c327fc", 15_050_000ul, ValidationResult.Valid, true)] + // Local is mainnet Gray Glacier, remote announces Shanghai. Local is out of sync, accept. + [TestCase(15_050_000, 0ul, "0x71147644", 0ul, ValidationResult.Valid, true)] + + // Local is mainnet Arrow Glacier, remote announces Gray Glacier, but is not aware of Shanghai. Local + // out of sync. Local also knows about a future fork, but that is uncertain yet. + [TestCase(13_773_000, 0ul, "0xf0afd0e3", 0ul, ValidationResult.Valid, true)] + + // Local is mainnet Shanghai. remote announces Gray Glacier but is not aware of further forks. + // Remote needs software update. + [TestCase(20000000, 1_668_000_000ul, "0xf0afd0e3", 0ul, ValidationResult.RemoteStale, true)] + + // Local is mainnet Gray Glacier, and isn't aware of more forks. Remote announces Gray Glacier + + // 0xffffffff. Local needs software update, reject. + [TestCase(15_050_000, 0ul, "0x87654321", ulong.MaxValue, ValidationResult.IncompatibleOrStale)] + + // Local is mainnet Gray Glacier, and is aware of Shanghai. Remote announces Shanghai + + // 0xffffffff. Local needs software update, reject. + [TestCase(15_050_000, 0ul, "0x98765432", ulong.MaxValue, ValidationResult.IncompatibleOrStale, true)] + + // Local is mainnet Gray Glacier, far in the future. Remote announces Gopherium (non existing fork) + // at some future timestamp 8888888888, for itself, but past block for local. Local is incompatible. + // + // This case detects non-upgraded nodes with majority hash power (typical Ropsten mess). + [TestCase(888888888, 1660000000ul, "0xf0afd0e3", 1660000000ul, ValidationResult.IncompatibleOrStale)] - // Local is mainnet Gray Glacier, remote announces Shanghai. Local is out of sync, accept. - [TestCase(15_050_000, 0ul, "0x71147644", 0ul, ValidationResult.Valid, true)] - - // Local is mainnet Arrow Glacier, remote announces Gray Glacier, but is not aware of Shanghai. Local - // out of sync. Local also knows about a future fork, but that is uncertain yet. - [TestCase(13_773_000, 0ul, "0xf0afd0e3", 0ul, ValidationResult.Valid, true)] - - // Local is mainnet Shanghai. remote announces Gray Glacier but is not aware of further forks. - // Remote needs software update. - [TestCase(20000000, 1_668_000_000ul, "0xf0afd0e3", 0ul, ValidationResult.RemoteStale, true)] - - // Local is mainnet Gray Glacier, and isn't aware of more forks. Remote announces Gray Glacier + - // 0xffffffff. Local needs software update, reject. - [TestCase(15_050_000, 0ul, "0x87654321", ulong.MaxValue, ValidationResult.IncompatibleOrStale)] - - // Local is mainnet Gray Glacier, and is aware of Shanghai. Remote announces Shanghai + - // 0xffffffff. Local needs software update, reject. - [TestCase(15_050_000, 0ul, "0x98765432", ulong.MaxValue, ValidationResult.IncompatibleOrStale, true)] - - // Local is mainnet Gray Glacier, far in the future. Remote announces Gopherium (non existing fork) - // at some future timestamp 8888888888, for itself, but past block for local. Local is incompatible. - // - // This case detects non-upgraded nodes with majority hash power (typical Ropsten mess). - [TestCase(888888888, 1660000000ul, "0xf0afd0e3", 1660000000ul, ValidationResult.IncompatibleOrStale)] + // Local is mainnet Gray Glacier. Remote is also in Gray Glacier, but announces Gopherium (non existing + // fork) at block 7279999, before Shanghai. Local is incompatible. + [TestCase(19999999, 1667999999ul, "0xf0afd0e3", 1667999999ul, ValidationResult.IncompatibleOrStale, true)] - // Local is mainnet Gray Glacier. Remote is also in Gray Glacier, but announces Gopherium (non existing - // fork) at block 7279999, before Shanghai. Local is incompatible. - [TestCase(19999999, 1667999999ul, "0xf0afd0e3", 1667999999ul, ValidationResult.IncompatibleOrStale, true)] + //---------------------- + // Timestamp based tests + //---------------------- - //---------------------- - // Timestamp based tests - //---------------------- + // Local is mainnet Shanghai, remote announces the same. No future fork is announced. + [TestCase(20000000, 1_668_000_000ul, "0x71147644", 0ul, ValidationResult.Valid, true)] - // Local is mainnet Shanghai, remote announces the same. No future fork is announced. - [TestCase(20000000, 1_668_000_000ul, "0x71147644", 0ul, ValidationResult.Valid, true)] + // Local is mainnet Shanghai, remote announces the same. Remote also announces a next fork + // at time 0xffffffff, but that is uncertain. + [TestCase(20000000, 1_668_000_000ul, "0x71147644", ulong.MaxValue, ValidationResult.Valid, true)] - // Local is mainnet Shanghai, remote announces the same. Remote also announces a next fork - // at time 0xffffffff, but that is uncertain. - [TestCase(20000000, 1_668_000_000ul, "0x71147644", ulong.MaxValue, ValidationResult.Valid, true)] + // Local is mainnet Shanghai, and isn't aware of more forks. Remote announces Shanghai + + // 0xffffffff. Local needs software update, reject. + [TestCase(20000000, 1_668_000_000ul, "0x846271649", 0ul, ValidationResult.IncompatibleOrStale, true)] - // Local is mainnet Shanghai, and isn't aware of more forks. Remote announces Shanghai + - // 0xffffffff. Local needs software update, reject. - [TestCase(20000000, 1_668_000_000ul, "0x846271649", 0ul, ValidationResult.IncompatibleOrStale, true)] + // Local is mainnet Shanghai, remote is random Shanghai. + [TestCase(20000000, 1_668_000_000ul, "0x12345678", 0ul, ValidationResult.IncompatibleOrStale, true)] + + // Local is mainnet Shanghai, far in the future. Remote announces Gopherium (non existing fork) + // at some future timestamp 8888888888, for itself, but past block for local. Local is incompatible. + // + // This case detects non-upgraded nodes with majority hash power (typical Ropsten mess). + [TestCase(88888888, 8888888888ul, "0x71147644", 8888888888ul, ValidationResult.IncompatibleOrStale, true)] + + public void Test_fork_id_validation_mainnet(long headNumber, ulong headTimestamp, string hash, ulong next, ValidationResult result, bool UseTimestampSpec = false) + { + IBlockTree blockTree = Substitute.For(); + Block head = Build.A.Block.WithNumber(headNumber).WithTimestamp(headTimestamp).TestObject; + blockTree.Head.Returns(head); - // Local is mainnet Shanghai, remote is random Shanghai. - [TestCase(20000000, 1_668_000_000ul, "0x12345678", 0ul, ValidationResult.IncompatibleOrStale, true)] - - // Local is mainnet Shanghai, far in the future. Remote announces Gopherium (non existing fork) - // at some future timestamp 8888888888, for itself, but past block for local. Local is incompatible. - // - // This case detects non-upgraded nodes with majority hash power (typical Ropsten mess). - [TestCase(88888888, 8888888888ul, "0x71147644", 8888888888ul, ValidationResult.IncompatibleOrStale, true)] - - public void Test_fork_id_validation_mainnet(long headNumber, ulong headTimestamp, string hash, ulong next, ValidationResult result, bool UseTimestampSpec = false) + ISpecProvider specProvider = MainnetSpecProvider.Instance; + if (UseTimestampSpec) { - IBlockTree blockTree = Substitute.For(); - Block head = Build.A.Block.WithNumber(headNumber).WithTimestamp(headTimestamp).TestObject; - blockTree.Head.Returns(head); - - ISpecProvider specProvider = MainnetSpecProvider.Instance; - if (UseTimestampSpec) - { - ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); - ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../", "TimestampForkIdTest.json"))); - specProvider = new ChainSpecBasedSpecProvider(spec); - } + ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); + ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine("../../../", "TimestampForkIdTest.json"))); + specProvider = new ChainSpecBasedSpecProvider(spec); + } - ForkInfo forkInfo = new(specProvider, KnownHashes.MainnetGenesis); + ForkInfo forkInfo = new(specProvider, KnownHashes.MainnetGenesis); - forkInfo.ValidateForkId(new ForkId(Bytes.ReadEthUInt32(Bytes.FromHexString(hash)), next), head.Header).Should().Be(result); - } + forkInfo.ValidateForkId(new ForkId(Bytes.ReadEthUInt32(Bytes.FromHexString(hash)), next), head.Header).Should().Be(result); + } - [TestCase(2ul, 3ul, 2ul, 3ul)] - [TestCase(2ul, null, 2ul, 2ul)] - [TestCase(null, 3ul, 3ul, 3ul)] - [TestCase(null, null, 1ul, 1ul)] - public void Chain_id_and_network_id_have_proper_default_values(ulong? specNetworkId, ulong? specChainId, ulong expectedNetworkId, ulong expectedChainId) - { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); + [TestCase(2ul, 3ul, 2ul, 3ul)] + [TestCase(2ul, null, 2ul, 2ul)] + [TestCase(null, 3ul, 3ul, 3ul)] + [TestCase(null, null, 1ul, 1ul)] + public void Chain_id_and_network_id_have_proper_default_values(ulong? specNetworkId, ulong? specChainId, ulong expectedNetworkId, ulong expectedChainId) + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); - ChainSpec spec = loader.Load($"{{\"params\":{{\"networkID\":{specNetworkId?.ToString() ?? "null"},\"chainId\":{specChainId?.ToString() ?? "null"}}},\"engine\":{{\"NethDev\":{{}}}}}}"); - ChainSpecBasedSpecProvider provider = new(spec); + ChainSpec spec = loader.Load($"{{\"params\":{{\"networkID\":{specNetworkId?.ToString() ?? "null"},\"chainId\":{specChainId?.ToString() ?? "null"}}},\"engine\":{{\"NethDev\":{{}}}}}}"); + ChainSpecBasedSpecProvider provider = new(spec); - spec.ChainId.Should().Be(expectedChainId); - spec.NetworkId.Should().Be(expectedNetworkId); - provider.ChainId.Should().Be(expectedChainId); - provider.NetworkId.Should().Be(expectedNetworkId); - } + spec.ChainId.Should().Be(expectedChainId); + spec.NetworkId.Should().Be(expectedNetworkId); + provider.ChainId.Should().Be(expectedChainId); + provider.NetworkId.Should().Be(expectedNetworkId); + } - private static void Test(long head, ulong headTimestamp, Keccak genesisHash, string forkHashHex, ulong next, string description, ISpecProvider specProvider, string chainSpec, string path = "../../../../Chains") - { - Test(head, headTimestamp, genesisHash, forkHashHex, next, description, specProvider); - Test(head, headTimestamp, genesisHash, forkHashHex, next, description, chainSpec, path); - } + private static void Test(long head, ulong headTimestamp, Keccak genesisHash, string forkHashHex, ulong next, string description, ISpecProvider specProvider, string chainSpec, string path = "../../../../Chains") + { + Test(head, headTimestamp, genesisHash, forkHashHex, next, description, specProvider); + Test(head, headTimestamp, genesisHash, forkHashHex, next, description, chainSpec, path); + } - private static void Test(long head, ulong headTimestamp, Keccak genesisHash, string forkHashHex, ulong next, string description, string chainSpec, string path = "../../../../Chains") - { - ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); - ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine(path, chainSpec))); - ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); - Test(head, headTimestamp, genesisHash, forkHashHex, next, description, provider); - } + private static void Test(long head, ulong headTimestamp, Keccak genesisHash, string forkHashHex, ulong next, string description, string chainSpec, string path = "../../../../Chains") + { + ChainSpecLoader loader = new ChainSpecLoader(new EthereumJsonSerializer()); + ChainSpec spec = loader.Load(File.ReadAllText(Path.Combine(path, chainSpec))); + ChainSpecBasedSpecProvider provider = new ChainSpecBasedSpecProvider(spec); + Test(head, headTimestamp, genesisHash, forkHashHex, next, description, provider); + } - private static void Test(long head, ulong headTimestamp, Keccak genesisHash, string forkHashHex, ulong next, string description, ISpecProvider specProvider) - { - uint expectedForkHash = Bytes.ReadEthUInt32(Bytes.FromHexString(forkHashHex)); + private static void Test(long head, ulong headTimestamp, Keccak genesisHash, string forkHashHex, ulong next, string description, ISpecProvider specProvider) + { + uint expectedForkHash = Bytes.ReadEthUInt32(Bytes.FromHexString(forkHashHex)); - ForkId forkId = new ForkInfo(specProvider, genesisHash).GetForkId(head, headTimestamp); - uint forkHash = forkId.ForkHash; - forkHash.Should().Be(expectedForkHash); + ForkId forkId = new ForkInfo(specProvider, genesisHash).GetForkId(head, headTimestamp); + uint forkHash = forkId.ForkHash; + forkHash.Should().Be(expectedForkHash); - forkId.Next.Should().Be(next); - forkId.ForkHash.Should().Be(expectedForkHash); - } + forkId.Next.Should().Be(next); + forkId.ForkHash.Should().Be(expectedForkHash); } } diff --git a/src/Nethermind/Nethermind.Specs.Test/ChainSpecStyle/ChainSpecBasedSpecProviderTests.cs b/src/Nethermind/Nethermind.Specs.Test/ChainSpecStyle/ChainSpecBasedSpecProviderTests.cs index d8cdcbd0aa5..ae8ea3bb7d5 100644 --- a/src/Nethermind/Nethermind.Specs.Test/ChainSpecStyle/ChainSpecBasedSpecProviderTests.cs +++ b/src/Nethermind/Nethermind.Specs.Test/ChainSpecStyle/ChainSpecBasedSpecProviderTests.cs @@ -13,759 +13,719 @@ using Nethermind.Logging; using Nethermind.Serialization.Json; using Nethermind.Specs.ChainSpecStyle; -using Nethermind.Specs.Forks; using NSubstitute; using NUnit.Framework; -namespace Nethermind.Specs.Test.ChainSpecStyle +namespace Nethermind.Specs.Test.ChainSpecStyle; + +[Parallelizable(ParallelScope.All)] +[TestFixture] +public class ChainSpecBasedSpecProviderTests { - [Parallelizable(ParallelScope.All)] - [TestFixture] - public class ChainSpecBasedSpecProviderTests + [TestCase(0, null, false)] + [TestCase(0, 0ul, false)] + [TestCase(0, 4660ul, false)] + [TestCase(1, 4660ul, false)] + [TestCase(1, 4661ul, false)] + [TestCase(4, 4672ul, true)] + [TestCase(4, 4673ul, true)] + [TestCase(5, 4680ul, true)] + [NonParallelizable] + public void Timstamp_activation_equal_to_genesis_timestamp_loads_correctly(long blockNumber, ulong? timestamp, bool isEip3855Enabled) { - [Test] - public void Shandong_loads_properly() - { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/shandong.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - - ChainSpecBasedSpecProvider provider = new(chainSpec); - - ReleaseSpec shandongSpec = (ReleaseSpec)((ReleaseSpec)MainnetSpecProvider - .Instance.GetSpec(MainnetSpecProvider.ShanghaiActivation)).Clone(); - shandongSpec.Name = "shandong"; - shandongSpec.IsEip3651Enabled = true; - shandongSpec.IsEip3855Enabled = true; - shandongSpec.IsEip3860Enabled = true; - shandongSpec.Eip1559TransitionBlock = 0; - shandongSpec.DifficultyBombDelay = 0; - TestSpecProvider testProvider = TestSpecProvider.Instance; - testProvider.SpecToReturn = shandongSpec; - testProvider.TerminalTotalDifficulty = 0; - testProvider.GenesisSpec = shandongSpec; - - List forkActivationsToTest = new() - { - (ForkActivation)0, - (0, 0), - (0, null), - (ForkActivation)1, - (ForkActivation)999_999_999, // far in the future - }; - - CompareSpecProviders(testProvider, provider, forkActivationsToTest); - Assert.AreEqual(testProvider.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); - Assert.AreEqual(testProvider.GenesisSpec.Eip1559TransitionBlock, provider.GenesisSpec.Eip1559TransitionBlock); - Assert.AreEqual(testProvider.GenesisSpec.DifficultyBombDelay, provider.GenesisSpec.DifficultyBombDelay); - } - - [TestCase(0, null, false)] - [TestCase(0, 0ul, false)] - [TestCase(0, 4660ul, false)] - [TestCase(1, 4660ul, false)] - [TestCase(1, 4661ul, false)] - [TestCase(4, 4672ul, true)] - [TestCase(4, 4673ul, true)] - [TestCase(5, 4680ul, true)] - [NonParallelizable] - public void Timstamp_activation_equal_to_genesis_timestamp_loads_correctly(long blockNumber, ulong? timestamp, bool isEip3855Enabled) + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../Specs/Timstamp_activation_equal_to_genesis_timestamp_test.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + chainSpec.Parameters.Eip2537Transition.Should().BeNull(); + var logger = Substitute.ForPartsOf(); + var logManager = Substitute.For(); + logManager.GetClassLogger().Returns(logger); + ChainSpecBasedSpecProvider provider = new(chainSpec); + ReleaseSpec expectedSpec = ((ReleaseSpec)MainnetSpecProvider + .Instance.GetSpec((MainnetSpecProvider.GrayGlacierBlockNumber, null))).Clone(); + expectedSpec.Name = "Genesis_with_non_zero_timestamp"; + expectedSpec.IsEip3651Enabled = true; + expectedSpec.IsEip3198Enabled = false; + expectedSpec.Eip1559TransitionBlock = 0; + expectedSpec.DifficultyBombDelay = 0; + expectedSpec.IsEip3855Enabled = isEip3855Enabled; + TestSpecProvider testProvider = TestSpecProvider.Instance; + testProvider.SpecToReturn = expectedSpec; + testProvider.TerminalTotalDifficulty = 0; + testProvider.GenesisSpec = expectedSpec; + List forkActivationsToTest = new() { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../Specs/Timstamp_activation_equal_to_genesis_timestamp_test.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - var logger = Substitute.ForPartsOf(); - var logManager = Substitute.For(); - logManager.GetClassLogger().Returns(logger); - ChainSpecBasedSpecProvider provider = new(chainSpec); - ReleaseSpec expectedSpec = ((ReleaseSpec)MainnetSpecProvider - .Instance.GetSpec((MainnetSpecProvider.GrayGlacierBlockNumber, null))).Clone(); - expectedSpec.Name = "Genesis_with_non_zero_timestamp"; - expectedSpec.IsEip3651Enabled = true; - expectedSpec.IsEip3198Enabled = false; - expectedSpec.Eip1559TransitionBlock = 0; - expectedSpec.DifficultyBombDelay = 0; - expectedSpec.IsEip3855Enabled = isEip3855Enabled; - TestSpecProvider testProvider = TestSpecProvider.Instance; - testProvider.SpecToReturn = expectedSpec; - testProvider.TerminalTotalDifficulty = 0; - testProvider.GenesisSpec = expectedSpec; - List forkActivationsToTest = new() - { - (blockNumber, timestamp), - }; - CompareSpecProviders(testProvider, provider, forkActivationsToTest); - Assert.AreEqual(testProvider.GenesisSpec.Eip1559TransitionBlock, provider.GenesisSpec.Eip1559TransitionBlock); - Assert.AreEqual(testProvider.GenesisSpec.DifficultyBombDelay, provider.GenesisSpec.DifficultyBombDelay); - } + (blockNumber, timestamp), + }; + CompareSpecProviders(testProvider, provider, forkActivationsToTest); + Assert.AreEqual(testProvider.GenesisSpec.Eip1559TransitionBlock, provider.GenesisSpec.Eip1559TransitionBlock); + Assert.AreEqual(testProvider.GenesisSpec.DifficultyBombDelay, provider.GenesisSpec.DifficultyBombDelay); + } - [TestCase(0, null, false, false, false)] - [TestCase(0, 0ul, false, false, false)] - [TestCase(0, 4660ul, false, false, false)] - [TestCase(1, 4660ul, false, false, false)] - [TestCase(1, 4661ul, false, false, false)] - [TestCase(1, 4672ul, false, false, false)] - [TestCase(2, 4673ul, false, false, true)] - [TestCase(3, 4680ul, false, false, true)] - [TestCase(4, 4672ul, false, true, false)] - [TestCase(5, 4672ul, true, true, false)] - [TestCase(5, 4673ul, true, true, false)] - [TestCase(6, 4680ul, true, true, false)] - [NonParallelizable] - public void Logs_warning_when_timestampActivation_happens_before_blockActivation(long blockNumber, ulong? timestamp, bool isEip3855Enabled, bool isEip3198Enabled, bool receivesWarning) + [TestCase(0, null, false, false, false)] + [TestCase(0, 0ul, false, false, false)] + [TestCase(0, 4660ul, false, false, false)] + [TestCase(1, 4660ul, false, false, false)] + [TestCase(1, 4661ul, false, false, false)] + [TestCase(1, 4672ul, false, false, false)] + [TestCase(2, 4673ul, false, false, true)] + [TestCase(3, 4680ul, false, false, true)] + [TestCase(4, 4672ul, false, true, false)] + [TestCase(5, 4672ul, true, true, false)] + [TestCase(5, 4673ul, true, true, false)] + [TestCase(6, 4680ul, true, true, false)] + [NonParallelizable] + public void Logs_warning_when_timestampActivation_happens_before_blockActivation(long blockNumber, ulong? timestamp, bool isEip3855Enabled, bool isEip3198Enabled, bool receivesWarning) + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../Specs/Logs_warning_when_timestampActivation_happens_before_blockActivation_test.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + chainSpec.Parameters.Eip2537Transition.Should().BeNull(); + var logger = Substitute.For(); + logger.IsWarn.Returns(true); + var logManager = Substitute.For(); + logManager.GetClassLogger().Returns(logger); + ChainSpecBasedSpecProvider provider = new(chainSpec, logManager); + ReleaseSpec expectedSpec = ((ReleaseSpec)MainnetSpecProvider + .Instance.GetSpec((MainnetSpecProvider.GrayGlacierBlockNumber, null))).Clone(); + expectedSpec.Name = "Genesis_with_non_zero_timestamp"; + expectedSpec.IsEip3651Enabled = true; + expectedSpec.IsEip3198Enabled = isEip3198Enabled; + expectedSpec.IsEip3855Enabled = isEip3855Enabled; + expectedSpec.Eip1559TransitionBlock = 0; + expectedSpec.DifficultyBombDelay = 0; + TestSpecProvider testProvider = TestSpecProvider.Instance; + testProvider.SpecToReturn = expectedSpec; + testProvider.TerminalTotalDifficulty = 0; + testProvider.GenesisSpec = expectedSpec; + List forkActivationsToTest = new() { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../Specs/Logs_warning_when_timestampActivation_happens_before_blockActivation_test.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - var logger = Substitute.For(); - logger.IsWarn.Returns(true); - var logManager = Substitute.For(); - logManager.GetClassLogger().Returns(logger); - ChainSpecBasedSpecProvider provider = new(chainSpec, logManager); - ReleaseSpec expectedSpec = ((ReleaseSpec)MainnetSpecProvider - .Instance.GetSpec((MainnetSpecProvider.GrayGlacierBlockNumber, null))).Clone(); - expectedSpec.Name = "Genesis_with_non_zero_timestamp"; - expectedSpec.IsEip3651Enabled = true; - expectedSpec.IsEip3198Enabled = isEip3198Enabled; - expectedSpec.IsEip3855Enabled = isEip3855Enabled; - expectedSpec.Eip1559TransitionBlock = 0; - expectedSpec.DifficultyBombDelay = 0; - TestSpecProvider testProvider = TestSpecProvider.Instance; - testProvider.SpecToReturn = expectedSpec; - testProvider.TerminalTotalDifficulty = 0; - testProvider.GenesisSpec = expectedSpec; - List forkActivationsToTest = new() - { - (blockNumber, timestamp), - }; - CompareSpecProviders(testProvider, provider, forkActivationsToTest); - if (receivesWarning) - { - logger.Received(1).Warn(Arg.Is("Chainspec file is misconfigured! Timestamp transition is configured to happen before the last block transition.")); - } - else - { - logger.DidNotReceive().Warn(Arg.Is("Chainspec file is misconfigured! Timestamp transition is configured to happen before the last block transition.")); - } + (blockNumber, timestamp), + }; + CompareSpecProviders(testProvider, provider, forkActivationsToTest); + if (receivesWarning) + { + logger.Received(1).Warn(Arg.Is("Chainspec file is misconfigured! Timestamp transition is configured to happen before the last block transition.")); } - - [Test] - public void Sepolia_loads_properly() + else { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/sepolia.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); + logger.DidNotReceive().Warn(Arg.Is("Chainspec file is misconfigured! Timestamp transition is configured to happen before the last block transition.")); + } + } - ChainSpecBasedSpecProvider provider = new(chainSpec); - SepoliaSpecProvider sepolia = SepoliaSpecProvider.Instance; + [Test] + public void Sepolia_loads_properly() + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/sepolia.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - List forkActivationsToTest = new() - { - new ForkActivation(2, 0), - new ForkActivation(120_000_000, 0), - new ForkActivation(1735372, 3), - new ForkActivation(1735372, 1677557088), - new ForkActivation(1735372, 1677557087) - }; - - CompareSpecProviders(sepolia, provider, forkActivationsToTest); - Assert.AreEqual(SepoliaSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); - Assert.AreEqual(0, provider.GenesisSpec.Eip1559TransitionBlock); - Assert.AreEqual(long.MaxValue, provider.GenesisSpec.DifficultyBombDelay); - Assert.AreEqual(BlockchainIds.Sepolia, provider.ChainId); - Assert.AreEqual(BlockchainIds.Sepolia, provider.NetworkId); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + SepoliaSpecProvider sepolia = SepoliaSpecProvider.Instance; - [Test] - public void Rinkeby_loads_properly() + List forkActivationsToTest = new() { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/rinkeby.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); + new ForkActivation(2, 0), + new ForkActivation(120_000_000, 0), + new ForkActivation(1735372, 3), + new ForkActivation(1735372, 1677557088), + new ForkActivation(1735372, 1677557087) + }; + + CompareSpecProviders(sepolia, provider, forkActivationsToTest); + Assert.AreEqual(SepoliaSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); + Assert.AreEqual(0, provider.GenesisSpec.Eip1559TransitionBlock); + Assert.AreEqual(long.MaxValue, provider.GenesisSpec.DifficultyBombDelay); + Assert.AreEqual(BlockchainIds.Sepolia, provider.ChainId); + Assert.AreEqual(BlockchainIds.Sepolia, provider.NetworkId); + } - ChainSpecBasedSpecProvider provider = new(chainSpec); - RinkebySpecProvider rinkeby = RinkebySpecProvider.Instance; + [Test] + public void Rinkeby_loads_properly() + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/rinkeby.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - List forkActivationsToTest = new() - { - (ForkActivation)RinkebySpecProvider.ByzantiumBlockNumber, - (ForkActivation)(RinkebySpecProvider.ConstantinopleFixBlockNumber - 1), - (ForkActivation)RinkebySpecProvider.ConstantinopleFixBlockNumber, - (ForkActivation)(RinkebySpecProvider.IstanbulBlockNumber - 1), - (ForkActivation)RinkebySpecProvider.IstanbulBlockNumber, - (ForkActivation)(RinkebySpecProvider.BerlinBlockNumber - 1), - (ForkActivation)RinkebySpecProvider.BerlinBlockNumber, - (ForkActivation)(RinkebySpecProvider.LondonBlockNumber - 1), - (ForkActivation)RinkebySpecProvider.LondonBlockNumber, - (ForkActivation)120_000_000, // far in the future - }; - - CompareSpecProviders(rinkeby, provider, forkActivationsToTest); - Assert.AreEqual(RinkebySpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + RinkebySpecProvider rinkeby = RinkebySpecProvider.Instance; - [Test] - public void Goerli_loads_properly() + List forkActivationsToTest = new() { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/goerli.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); + (ForkActivation)RinkebySpecProvider.ByzantiumBlockNumber, + (ForkActivation)(RinkebySpecProvider.ConstantinopleFixBlockNumber - 1), + (ForkActivation)RinkebySpecProvider.ConstantinopleFixBlockNumber, + (ForkActivation)(RinkebySpecProvider.IstanbulBlockNumber - 1), + (ForkActivation)RinkebySpecProvider.IstanbulBlockNumber, + (ForkActivation)(RinkebySpecProvider.BerlinBlockNumber - 1), + (ForkActivation)RinkebySpecProvider.BerlinBlockNumber, + (ForkActivation)(RinkebySpecProvider.LondonBlockNumber - 1), + (ForkActivation)RinkebySpecProvider.LondonBlockNumber, + (ForkActivation)120_000_000, // far in the future + }; + + CompareSpecProviders(rinkeby, provider, forkActivationsToTest); + Assert.AreEqual(RinkebySpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); + } - ChainSpecBasedSpecProvider provider = new(chainSpec); - GoerliSpecProvider goerli = GoerliSpecProvider.Instance; + [Test] + public void Goerli_loads_properly() + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/goerli.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - List forkActivationsToTest = new() - { - (ForkActivation)0, - (ForkActivation)1, - (ForkActivation)(GoerliSpecProvider.IstanbulBlockNumber - 1), - (ForkActivation)GoerliSpecProvider.IstanbulBlockNumber, - (ForkActivation)(GoerliSpecProvider.BerlinBlockNumber - 1), - (ForkActivation)GoerliSpecProvider.BerlinBlockNumber, - (ForkActivation)(GoerliSpecProvider.LondonBlockNumber - 1), - (ForkActivation)GoerliSpecProvider.LondonBlockNumber, - new ForkActivation(GoerliSpecProvider.LondonBlockNumber + 1, GoerliSpecProvider.ShanghaiTimestamp), - new ForkActivation(GoerliSpecProvider.LondonBlockNumber + 1, GoerliSpecProvider.ShanghaiTimestamp + 100000000) // far in future - }; - - CompareSpecProviders(goerli, provider, forkActivationsToTest); - Assert.AreEqual(GoerliSpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); - Assert.AreEqual(GoerliSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); - Assert.AreEqual(BlockchainIds.Goerli, provider.ChainId); - Assert.AreEqual(BlockchainIds.Goerli, provider.NetworkId); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + GoerliSpecProvider goerli = GoerliSpecProvider.Instance; - [Test] - public void Chiado_loads_properly() + List forkActivationsToTest = new() { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/chiado.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - - ChainSpecBasedSpecProvider provider = new(chainSpec); - ChiadoSpecProvider chiado = ChiadoSpecProvider.Instance; + (ForkActivation)0, + (ForkActivation)1, + (ForkActivation)(GoerliSpecProvider.IstanbulBlockNumber - 1), + (ForkActivation)GoerliSpecProvider.IstanbulBlockNumber, + (ForkActivation)(GoerliSpecProvider.BerlinBlockNumber - 1), + (ForkActivation)GoerliSpecProvider.BerlinBlockNumber, + (ForkActivation)(GoerliSpecProvider.LondonBlockNumber - 1), + (ForkActivation)GoerliSpecProvider.LondonBlockNumber, + new ForkActivation(GoerliSpecProvider.LondonBlockNumber + 1, GoerliSpecProvider.ShanghaiTimestamp), + new ForkActivation(GoerliSpecProvider.LondonBlockNumber + 1, GoerliSpecProvider.ShanghaiTimestamp + 100000000) // far in future + }; + + CompareSpecProviders(goerli, provider, forkActivationsToTest); + Assert.AreEqual(GoerliSpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); + Assert.AreEqual(GoerliSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); + Assert.AreEqual(BlockchainIds.Goerli, provider.ChainId); + Assert.AreEqual(BlockchainIds.Goerli, provider.NetworkId); + } - List forkActivationsToTest = new() - { - (ForkActivation)0, - (ForkActivation)1, - (ForkActivation)999_999_999, // far in the future - }; - - CompareSpecProviders(chiado, provider, forkActivationsToTest, CompareSpecsOptions.IsGnosis); - Assert.AreEqual(ChiadoSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); - Assert.AreEqual(BlockchainIds.Chiado, provider.ChainId); - Assert.AreEqual(BlockchainIds.Chiado, provider.NetworkId); - } + [Test] + public void Chiado_loads_properly() + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/chiado.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + ChainSpecBasedSpecProvider provider = new(chainSpec); + ChiadoSpecProvider chiado = ChiadoSpecProvider.Instance; - [Test] - public void Mainnet_loads_properly() + List forkActivationsToTest = new() { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/foundation.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); + (ForkActivation)0, + (ForkActivation)1, + (ForkActivation)999_999_999, // far in the future + }; + + CompareSpecProviders(chiado, provider, forkActivationsToTest, CompareSpecsOptions.IsGnosis); + Assert.AreEqual(ChiadoSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); + Assert.AreEqual(BlockchainIds.Chiado, provider.ChainId); + Assert.AreEqual(BlockchainIds.Chiado, provider.NetworkId); + } - ChainSpecBasedSpecProvider provider = new(chainSpec); - MainnetSpecProvider mainnet = MainnetSpecProvider.Instance; - List forkActivationsToTest = new() - { - (ForkActivation)0, - (0, 0), - (0, null), - (ForkActivation)1, - (ForkActivation)(MainnetSpecProvider.HomesteadBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.HomesteadBlockNumber, - (ForkActivation)(MainnetSpecProvider.TangerineWhistleBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.TangerineWhistleBlockNumber, - (ForkActivation)(MainnetSpecProvider.SpuriousDragonBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.SpuriousDragonBlockNumber, - (ForkActivation)(MainnetSpecProvider.ByzantiumBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.ByzantiumBlockNumber, - (ForkActivation)(MainnetSpecProvider.ConstantinopleFixBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.ConstantinopleFixBlockNumber, - (ForkActivation)(MainnetSpecProvider.IstanbulBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.IstanbulBlockNumber, - (ForkActivation)(MainnetSpecProvider.MuirGlacierBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.MuirGlacierBlockNumber, - (ForkActivation)(MainnetSpecProvider.BerlinBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.BerlinBlockNumber, - (ForkActivation)(MainnetSpecProvider.LondonBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.LondonBlockNumber, - (ForkActivation)(MainnetSpecProvider.ArrowGlacierBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.ArrowGlacierBlockNumber, - (ForkActivation)(MainnetSpecProvider.GrayGlacierBlockNumber - 1), - (ForkActivation)MainnetSpecProvider.GrayGlacierBlockNumber, - MainnetSpecProvider.ShanghaiActivation, - new ForkActivation(99_000_000, 99_681_338_455) // far in the future - }; - - CompareSpecProviders(mainnet, provider, forkActivationsToTest, CompareSpecsOptions.CheckDifficultyBomb); - - Assert.AreEqual(MainnetSpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); - Assert.AreEqual(0_000_000, provider.GetSpec((ForkActivation)4_369_999).DifficultyBombDelay); - Assert.AreEqual(3_000_000, provider.GetSpec((ForkActivation)4_370_000).DifficultyBombDelay); - Assert.AreEqual(3_000_000, provider.GetSpec((ForkActivation)7_279_999).DifficultyBombDelay); - Assert.AreEqual(3_000_000, provider.GetSpec((ForkActivation)7_279_999).DifficultyBombDelay); - Assert.AreEqual(5_000_000, provider.GetSpec((ForkActivation)7_280_000).DifficultyBombDelay); - Assert.AreEqual(5_000_000, provider.GetSpec((ForkActivation)9_199_999).DifficultyBombDelay); - Assert.AreEqual(9_000_000, provider.GetSpec((ForkActivation)9_200_000).DifficultyBombDelay); - Assert.AreEqual(9_000_000, provider.GetSpec((ForkActivation)12_000_000).DifficultyBombDelay); - Assert.AreEqual(9_000_000, provider.GetSpec((ForkActivation)12_964_999).DifficultyBombDelay); - Assert.AreEqual(9_700_000, provider.GetSpec((ForkActivation)12_965_000).DifficultyBombDelay); - Assert.AreEqual(9_700_000, provider.GetSpec((ForkActivation)13_772_999).DifficultyBombDelay); - Assert.AreEqual(10_700_000, provider.GetSpec((ForkActivation)13_773_000).DifficultyBombDelay); - Assert.AreEqual(10_700_000, provider.GetSpec((ForkActivation)15_049_999).DifficultyBombDelay); - Assert.AreEqual(11_400_000, provider.GetSpec((ForkActivation)15_050_000).DifficultyBombDelay); - Assert.AreEqual(11_400_000, provider.GetSpec((ForkActivation)99_414_000).DifficultyBombDelay); - Assert.AreEqual(MainnetSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); - Assert.AreEqual(BlockchainIds.Mainnet, provider.ChainId); - Assert.AreEqual(BlockchainIds.Mainnet, provider.NetworkId); - } + [Test] + public void Mainnet_loads_properly() + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/foundation.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - [Flags] - enum CompareSpecsOptions + ChainSpecBasedSpecProvider provider = new(chainSpec); + MainnetSpecProvider mainnet = MainnetSpecProvider.Instance; + + List forkActivationsToTest = new() { - None = 0, - IsMainnet = 1, - CheckDifficultyBomb = 2, - IsGnosis = 4 // for Gnosis and Chiado testnets - } + (ForkActivation)0, + (0, 0), + (0, null), + (ForkActivation)1, + (ForkActivation)(MainnetSpecProvider.HomesteadBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.HomesteadBlockNumber, + (ForkActivation)(MainnetSpecProvider.TangerineWhistleBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.TangerineWhistleBlockNumber, + (ForkActivation)(MainnetSpecProvider.SpuriousDragonBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.SpuriousDragonBlockNumber, + (ForkActivation)(MainnetSpecProvider.ByzantiumBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.ByzantiumBlockNumber, + (ForkActivation)(MainnetSpecProvider.ConstantinopleFixBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.ConstantinopleFixBlockNumber, + (ForkActivation)(MainnetSpecProvider.IstanbulBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.IstanbulBlockNumber, + (ForkActivation)(MainnetSpecProvider.MuirGlacierBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.MuirGlacierBlockNumber, + (ForkActivation)(MainnetSpecProvider.BerlinBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.BerlinBlockNumber, + (ForkActivation)(MainnetSpecProvider.LondonBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.LondonBlockNumber, + (ForkActivation)(MainnetSpecProvider.ArrowGlacierBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.ArrowGlacierBlockNumber, + (ForkActivation)(MainnetSpecProvider.GrayGlacierBlockNumber - 1), + (ForkActivation)MainnetSpecProvider.GrayGlacierBlockNumber, + MainnetSpecProvider.ShanghaiActivation, + new ForkActivation(99_000_000, 99_681_338_455) // far in the future + }; + + CompareSpecProviders(mainnet, provider, forkActivationsToTest, CompareSpecsOptions.CheckDifficultyBomb); + + Assert.AreEqual(MainnetSpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); + Assert.AreEqual(0_000_000, provider.GetSpec((ForkActivation)4_369_999).DifficultyBombDelay); + Assert.AreEqual(3_000_000, provider.GetSpec((ForkActivation)4_370_000).DifficultyBombDelay); + Assert.AreEqual(3_000_000, provider.GetSpec((ForkActivation)7_279_999).DifficultyBombDelay); + Assert.AreEqual(3_000_000, provider.GetSpec((ForkActivation)7_279_999).DifficultyBombDelay); + Assert.AreEqual(5_000_000, provider.GetSpec((ForkActivation)7_280_000).DifficultyBombDelay); + Assert.AreEqual(5_000_000, provider.GetSpec((ForkActivation)9_199_999).DifficultyBombDelay); + Assert.AreEqual(9_000_000, provider.GetSpec((ForkActivation)9_200_000).DifficultyBombDelay); + Assert.AreEqual(9_000_000, provider.GetSpec((ForkActivation)12_000_000).DifficultyBombDelay); + Assert.AreEqual(9_000_000, provider.GetSpec((ForkActivation)12_964_999).DifficultyBombDelay); + Assert.AreEqual(9_700_000, provider.GetSpec((ForkActivation)12_965_000).DifficultyBombDelay); + Assert.AreEqual(9_700_000, provider.GetSpec((ForkActivation)13_772_999).DifficultyBombDelay); + Assert.AreEqual(10_700_000, provider.GetSpec((ForkActivation)13_773_000).DifficultyBombDelay); + Assert.AreEqual(10_700_000, provider.GetSpec((ForkActivation)15_049_999).DifficultyBombDelay); + Assert.AreEqual(11_400_000, provider.GetSpec((ForkActivation)15_050_000).DifficultyBombDelay); + Assert.AreEqual(11_400_000, provider.GetSpec((ForkActivation)99_414_000).DifficultyBombDelay); + Assert.AreEqual(MainnetSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); + Assert.AreEqual(BlockchainIds.Mainnet, provider.ChainId); + Assert.AreEqual(BlockchainIds.Mainnet, provider.NetworkId); + } - private static void CompareSpecProviders( - ISpecProvider oldSpecProvider, - ISpecProvider newSpecProvider, - IEnumerable forkActivations, - CompareSpecsOptions compareSpecsOptions = CompareSpecsOptions.None) + [Flags] + enum CompareSpecsOptions + { + None = 0, + IsMainnet = 1, + CheckDifficultyBomb = 2, + IsGnosis = 4 // for Gnosis and Chiado testnets + } + + private static void CompareSpecProviders( + ISpecProvider oldSpecProvider, + ISpecProvider newSpecProvider, + IEnumerable forkActivations, + CompareSpecsOptions compareSpecsOptions = CompareSpecsOptions.None) + { + foreach (ForkActivation activation in forkActivations) { - foreach (ForkActivation activation in forkActivations) - { - IReleaseSpec oldSpec = oldSpecProvider.GetSpec(activation); - IReleaseSpec newSpec = newSpecProvider.GetSpec(activation); - long? daoBlockNumber = newSpecProvider.DaoBlockNumber; + IReleaseSpec oldSpec = oldSpecProvider.GetSpec(activation); + IReleaseSpec newSpec = newSpecProvider.GetSpec(activation); + long? daoBlockNumber = newSpecProvider.DaoBlockNumber; - bool isMainnet = daoBlockNumber is not null; - if (isMainnet) - compareSpecsOptions |= CompareSpecsOptions.IsMainnet; + bool isMainnet = daoBlockNumber is not null; + if (isMainnet) + compareSpecsOptions |= CompareSpecsOptions.IsMainnet; - CompareSpecs(oldSpec, newSpec, activation, compareSpecsOptions); - } + CompareSpecs(oldSpec, newSpec, activation, compareSpecsOptions); } + } - private static void CompareSpecs(IReleaseSpec expectedSpec, IReleaseSpec ActualSpec, ForkActivation activation, CompareSpecsOptions compareSpecsOptions) + private static void CompareSpecs(IReleaseSpec expectedSpec, IReleaseSpec ActualSpec, ForkActivation activation, CompareSpecsOptions compareSpecsOptions) + { + bool isMainnet = (compareSpecsOptions & CompareSpecsOptions.IsMainnet) != 0; + bool checkDifficultyBomb = (compareSpecsOptions & CompareSpecsOptions.CheckDifficultyBomb) != 0; + bool isGnosis = (compareSpecsOptions & CompareSpecsOptions.IsGnosis) != 0; + + PropertyInfo[] propertyInfos = + typeof(IReleaseSpec).GetProperties(BindingFlags.Public | BindingFlags.Instance); + foreach (PropertyInfo propertyInfo in propertyInfos + .Where(p => p.Name != nameof(IReleaseSpec.Name)) + + // handle mainnet specific exceptions + .Where(p => isMainnet || p.Name != nameof(IReleaseSpec.MaximumExtraDataSize)) + .Where(p => isMainnet || p.Name != nameof(IReleaseSpec.BlockReward)) + .Where(p => isMainnet || checkDifficultyBomb || + p.Name != nameof(IReleaseSpec.DifficultyBombDelay)) + .Where(p => isMainnet || checkDifficultyBomb || + p.Name != nameof(IReleaseSpec.DifficultyBoundDivisor)) + + // handle RLP decoders + .Where(p => p.Name != nameof(IReleaseSpec.Eip1559TransitionBlock)) + .Where(p => p.Name != nameof(IReleaseSpec.WithdrawalTimestamp)) + .Where(p => p.Name != nameof(IReleaseSpec.Eip4844TransitionTimestamp)) + + // handle gnosis specific exceptions + .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.MaxCodeSize)) + .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.MaxInitCodeSize)) + .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.MaximumUncleCount)) + .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.IsEip170Enabled)) + .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.IsEip1283Enabled)) + .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.LimitCodeSize)) + .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.UseConstantinopleNetGasMetering))) { - bool isMainnet = (compareSpecsOptions & CompareSpecsOptions.IsMainnet) != 0; - bool checkDifficultyBomb = (compareSpecsOptions & CompareSpecsOptions.CheckDifficultyBomb) != 0; - bool isGnosis = (compareSpecsOptions & CompareSpecsOptions.IsGnosis) != 0; - - PropertyInfo[] propertyInfos = - typeof(IReleaseSpec).GetProperties(BindingFlags.Public | BindingFlags.Instance); - foreach (PropertyInfo propertyInfo in propertyInfos - .Where(p => p.Name != nameof(IReleaseSpec.Name)) - - // handle mainnet specific exceptions - .Where(p => isMainnet || p.Name != nameof(IReleaseSpec.MaximumExtraDataSize)) - .Where(p => isMainnet || p.Name != nameof(IReleaseSpec.BlockReward)) - .Where(p => isMainnet || checkDifficultyBomb || - p.Name != nameof(IReleaseSpec.DifficultyBombDelay)) - .Where(p => isMainnet || checkDifficultyBomb || - p.Name != nameof(IReleaseSpec.DifficultyBoundDivisor)) - - // handle RLP decoders - .Where(p => p.Name != nameof(IReleaseSpec.Eip1559TransitionBlock)) - .Where(p => p.Name != nameof(IReleaseSpec.WithdrawalTimestamp)) - .Where(p => p.Name != nameof(IReleaseSpec.Eip4844TransitionTimestamp)) - - // handle gnosis specific exceptions - .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.MaxCodeSize)) - .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.MaxInitCodeSize)) - .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.MaximumUncleCount)) - .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.IsEip170Enabled)) - .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.IsEip1283Enabled)) - .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.LimitCodeSize)) - .Where(p => !isGnosis || p.Name != nameof(IReleaseSpec.UseConstantinopleNetGasMetering))) - { - Assert.AreEqual(propertyInfo.GetValue(expectedSpec), propertyInfo.GetValue(ActualSpec), - activation + "." + propertyInfo.Name); - } + Assert.AreEqual(propertyInfo.GetValue(expectedSpec), propertyInfo.GetValue(ActualSpec), + activation + "." + propertyInfo.Name); } + } - [Test] - public void Ropsten_loads_properly() - { - ChainSpecLoader loader = new(new EthereumJsonSerializer()); - string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/ropsten.json"); - ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); - chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - - ChainSpecBasedSpecProvider provider = new(chainSpec); - RopstenSpecProvider ropsten = RopstenSpecProvider.Instance; + [Test] + public void Ropsten_loads_properly() + { + ChainSpecLoader loader = new(new EthereumJsonSerializer()); + string path = Path.Combine(TestContext.CurrentContext.WorkDirectory, "../../../../Chains/ropsten.json"); + ChainSpec chainSpec = loader.Load(File.ReadAllText(path)); + chainSpec.Parameters.Eip2537Transition.Should().BeNull(); - List forkActivationsToTest = new() - { - (ForkActivation)0, - (ForkActivation)1, - (ForkActivation)(RopstenSpecProvider.SpuriousDragonBlockNumber - 1), - (ForkActivation)RopstenSpecProvider.SpuriousDragonBlockNumber, - (ForkActivation)(RopstenSpecProvider.ByzantiumBlockNumber - 1), - (ForkActivation)RopstenSpecProvider.ByzantiumBlockNumber, - (ForkActivation)(RopstenSpecProvider.ConstantinopleFixBlockNumber - 1), - (ForkActivation)RopstenSpecProvider.ConstantinopleFixBlockNumber, - (ForkActivation)(RopstenSpecProvider.IstanbulBlockNumber - 1), - (ForkActivation)RopstenSpecProvider.IstanbulBlockNumber, - (ForkActivation)(RopstenSpecProvider.MuirGlacierBlockNumber - 1), - (ForkActivation)RopstenSpecProvider.MuirGlacierBlockNumber, - (ForkActivation)(RopstenSpecProvider.BerlinBlockNumber - 1), - (ForkActivation)RopstenSpecProvider.BerlinBlockNumber, - (ForkActivation)(RopstenSpecProvider.LondonBlockNumber - 1), - (ForkActivation)RopstenSpecProvider.LondonBlockNumber, - (ForkActivation)999_999_999, // far in the future - }; - - CompareSpecProviders(ropsten, provider, forkActivationsToTest, CompareSpecsOptions.CheckDifficultyBomb); - Assert.AreEqual(RopstenSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); - Assert.AreEqual(RopstenSpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + RopstenSpecProvider ropsten = RopstenSpecProvider.Instance; - [Test] - public void Chain_id_is_set_correctly() + List forkActivationsToTest = new() { - ChainSpec chainSpec = new() { Parameters = new ChainParameters(), NetworkId = 2, ChainId = 5 }; + (ForkActivation)0, + (ForkActivation)1, + (ForkActivation)(RopstenSpecProvider.SpuriousDragonBlockNumber - 1), + (ForkActivation)RopstenSpecProvider.SpuriousDragonBlockNumber, + (ForkActivation)(RopstenSpecProvider.ByzantiumBlockNumber - 1), + (ForkActivation)RopstenSpecProvider.ByzantiumBlockNumber, + (ForkActivation)(RopstenSpecProvider.ConstantinopleFixBlockNumber - 1), + (ForkActivation)RopstenSpecProvider.ConstantinopleFixBlockNumber, + (ForkActivation)(RopstenSpecProvider.IstanbulBlockNumber - 1), + (ForkActivation)RopstenSpecProvider.IstanbulBlockNumber, + (ForkActivation)(RopstenSpecProvider.MuirGlacierBlockNumber - 1), + (ForkActivation)RopstenSpecProvider.MuirGlacierBlockNumber, + (ForkActivation)(RopstenSpecProvider.BerlinBlockNumber - 1), + (ForkActivation)RopstenSpecProvider.BerlinBlockNumber, + (ForkActivation)(RopstenSpecProvider.LondonBlockNumber - 1), + (ForkActivation)RopstenSpecProvider.LondonBlockNumber, + (ForkActivation)999_999_999, // far in the future + }; + + CompareSpecProviders(ropsten, provider, forkActivationsToTest, CompareSpecsOptions.CheckDifficultyBomb); + Assert.AreEqual(RopstenSpecProvider.Instance.TerminalTotalDifficulty, provider.TerminalTotalDifficulty); + Assert.AreEqual(RopstenSpecProvider.LondonBlockNumber, provider.GenesisSpec.Eip1559TransitionBlock); + } - ChainSpecBasedSpecProvider provider = new(chainSpec); - Assert.AreEqual(2, provider.NetworkId); - Assert.AreEqual(5, provider.ChainId); - } + [Test] + public void Chain_id_is_set_correctly() + { + ChainSpec chainSpec = new() { Parameters = new ChainParameters(), NetworkId = 2, ChainId = 5 }; - [Test] - public void Dao_block_number_is_set_correctly() - { - ChainSpec chainSpec = new(); - chainSpec.Parameters = new ChainParameters(); - chainSpec.DaoForkBlockNumber = 23; + ChainSpecBasedSpecProvider provider = new(chainSpec); + Assert.AreEqual(2, provider.NetworkId); + Assert.AreEqual(5, provider.ChainId); + } - ChainSpecBasedSpecProvider provider = new(chainSpec); - Assert.AreEqual(23, provider.DaoBlockNumber); - } + [Test] + public void Dao_block_number_is_set_correctly() + { + ChainSpec chainSpec = new(); + chainSpec.Parameters = new ChainParameters(); + chainSpec.DaoForkBlockNumber = 23; + + ChainSpecBasedSpecProvider provider = new(chainSpec); + Assert.AreEqual(23, provider.DaoBlockNumber); + } - [Test] - public void Bound_divisors_set_correctly() + [Test] + public void Bound_divisors_set_correctly() + { + ChainSpec chainSpec = new() { - ChainSpec chainSpec = new() - { - Parameters = new ChainParameters { GasLimitBoundDivisor = 17 }, - Ethash = new EthashParameters { DifficultyBoundDivisor = 19 } - }; + Parameters = new ChainParameters { GasLimitBoundDivisor = 17 }, + Ethash = new EthashParameters { DifficultyBoundDivisor = 19 } + }; - ChainSpecBasedSpecProvider provider = new(chainSpec); - Assert.AreEqual(19, provider.GenesisSpec.DifficultyBoundDivisor); - Assert.AreEqual(17, provider.GenesisSpec.GasLimitBoundDivisor); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + Assert.AreEqual(19, provider.GenesisSpec.DifficultyBoundDivisor); + Assert.AreEqual(17, provider.GenesisSpec.GasLimitBoundDivisor); + } - [Test] - public void Difficulty_bomb_delays_loaded_correctly() + [Test] + public void Difficulty_bomb_delays_loaded_correctly() + { + ChainSpec chainSpec = new() { - ChainSpec chainSpec = new() + Parameters = new ChainParameters(), + Ethash = new EthashParameters { - Parameters = new ChainParameters(), - Ethash = new EthashParameters + DifficultyBombDelays = new Dictionary { - DifficultyBombDelays = new Dictionary - { - { 3, 100 }, - { 7, 200 }, - { 13, 300 }, - { 17, 400 }, - { 19, 500 }, - } + { 3, 100 }, + { 7, 200 }, + { 13, 300 }, + { 17, 400 }, + { 19, 500 }, } - }; - - ChainSpecBasedSpecProvider provider = new(chainSpec); - Assert.AreEqual(100, provider.GetSpec((ForkActivation)3).DifficultyBombDelay); - Assert.AreEqual(300, provider.GetSpec((ForkActivation)7).DifficultyBombDelay); - Assert.AreEqual(600, provider.GetSpec((ForkActivation)13).DifficultyBombDelay); - Assert.AreEqual(1000, provider.GetSpec((ForkActivation)17).DifficultyBombDelay); - Assert.AreEqual(1500, provider.GetSpec((ForkActivation)19).DifficultyBombDelay); - } + } + }; + + ChainSpecBasedSpecProvider provider = new(chainSpec); + Assert.AreEqual(100, provider.GetSpec((ForkActivation)3).DifficultyBombDelay); + Assert.AreEqual(300, provider.GetSpec((ForkActivation)7).DifficultyBombDelay); + Assert.AreEqual(600, provider.GetSpec((ForkActivation)13).DifficultyBombDelay); + Assert.AreEqual(1000, provider.GetSpec((ForkActivation)17).DifficultyBombDelay); + Assert.AreEqual(1500, provider.GetSpec((ForkActivation)19).DifficultyBombDelay); + } - [Test] - public void Max_code_transition_loaded_correctly() - { - const long maxCodeTransition = 13; - const long maxCodeSize = 100; + [Test] + public void Max_code_transition_loaded_correctly() + { + const long maxCodeTransition = 13; + const long maxCodeSize = 100; - ChainSpec chainSpec = new() + ChainSpec chainSpec = new() + { + Parameters = new ChainParameters { - Parameters = new ChainParameters - { - MaxCodeSizeTransition = maxCodeTransition, - MaxCodeSize = maxCodeSize - } - }; + MaxCodeSizeTransition = maxCodeTransition, + MaxCodeSize = maxCodeSize + } + }; - ChainSpecBasedSpecProvider provider = new(chainSpec); - Assert.AreEqual(long.MaxValue, provider.GetSpec((ForkActivation)(maxCodeTransition - 1)).MaxCodeSize, "one before"); - Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)maxCodeTransition).MaxCodeSize, "at transition"); - Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)(maxCodeTransition + 1)).MaxCodeSize, "one after"); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + Assert.AreEqual(long.MaxValue, provider.GetSpec((ForkActivation)(maxCodeTransition - 1)).MaxCodeSize, "one before"); + Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)maxCodeTransition).MaxCodeSize, "at transition"); + Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)(maxCodeTransition + 1)).MaxCodeSize, "one after"); + } - [Test] - public void Eip2200_is_set_correctly_directly() - { - ChainSpec chainSpec = new() { Parameters = new ChainParameters { Eip2200Transition = 5 } }; + [Test] + public void Eip2200_is_set_correctly_directly() + { + ChainSpec chainSpec = new() { Parameters = new ChainParameters { Eip2200Transition = 5 } }; - ChainSpecBasedSpecProvider provider = new(chainSpec); - provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeTrue(); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeTrue(); + } - [Test] - public void Eip2200_is_set_correctly_indirectly() - { - ChainSpec chainSpec = - new() { Parameters = new ChainParameters { Eip1706Transition = 5, Eip1283Transition = 5 } }; + [Test] + public void Eip2200_is_set_correctly_indirectly() + { + ChainSpec chainSpec = + new() { Parameters = new ChainParameters { Eip1706Transition = 5, Eip1283Transition = 5 } }; - ChainSpecBasedSpecProvider provider = new(chainSpec); - provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeTrue(); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeTrue(); + } - [Test] - public void Eip2200_is_set_correctly_indirectly_after_disabling_eip1283_and_reenabling() + [Test] + public void Eip2200_is_set_correctly_indirectly_after_disabling_eip1283_and_reenabling() + { + ChainSpec chainSpec = new() { - ChainSpec chainSpec = new() + Parameters = new ChainParameters { - Parameters = new ChainParameters - { - Eip1706Transition = 5, - Eip1283Transition = 1, - Eip1283DisableTransition = 4, - Eip1283ReenableTransition = 5 - } - }; + Eip1706Transition = 5, + Eip1283Transition = 1, + Eip1283DisableTransition = 4, + Eip1283ReenableTransition = 5 + } + }; - ChainSpecBasedSpecProvider provider = new(chainSpec); - provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeTrue(); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeTrue(); + } - [Test] - public void Eip2200_is_not_set_correctly_indirectly_after_disabling_eip1283() + [Test] + public void Eip2200_is_not_set_correctly_indirectly_after_disabling_eip1283() + { + ChainSpec chainSpec = new() { - ChainSpec chainSpec = new() + Parameters = new ChainParameters { - Parameters = new ChainParameters - { - Eip1706Transition = 5, - Eip1283Transition = 1, - Eip1283DisableTransition = 4 - } - }; + Eip1706Transition = 5, + Eip1283Transition = 1, + Eip1283DisableTransition = 4 + } + }; - ChainSpecBasedSpecProvider provider = new(chainSpec); - provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeFalse(); - } + ChainSpecBasedSpecProvider provider = new(chainSpec); + provider.GetSpec((ForkActivation)5).IsEip2200Enabled.Should().BeFalse(); + } - [Test] - public void Eip150_and_Eip2537_fork_by_block_number() + [Test] + public void Eip150_and_Eip2537_fork_by_block_number() + { + ChainSpec chainSpec = new() { - ChainSpec chainSpec = new() + Parameters = new ChainParameters { - Parameters = new ChainParameters - { - MaxCodeSizeTransition = 10, - Eip2537Transition = 20, - MaxCodeSize = 1 - } - }; + MaxCodeSizeTransition = 10, + Eip2537Transition = 20, + MaxCodeSize = 1 + } + }; - ChainSpecBasedSpecProvider provider = new(chainSpec); + ChainSpecBasedSpecProvider provider = new(chainSpec); - provider.GetSpec((ForkActivation)9).IsEip170Enabled.Should().BeFalse(); - provider.GetSpec((ForkActivation)10).IsEip170Enabled.Should().BeTrue(); - provider.GetSpec((ForkActivation)11).IsEip170Enabled.Should().BeTrue(); - provider.GetSpec((ForkActivation)11).MaxCodeSize.Should().Be(1); - provider.GetSpec((ForkActivation)9).MaxCodeSize.Should().Be(long.MaxValue); + provider.GetSpec((ForkActivation)9).IsEip170Enabled.Should().BeFalse(); + provider.GetSpec((ForkActivation)10).IsEip170Enabled.Should().BeTrue(); + provider.GetSpec((ForkActivation)11).IsEip170Enabled.Should().BeTrue(); + provider.GetSpec((ForkActivation)11).MaxCodeSize.Should().Be(1); + provider.GetSpec((ForkActivation)9).MaxCodeSize.Should().Be(long.MaxValue); - provider.GetSpec((ForkActivation)19).IsEip2537Enabled.Should().BeFalse(); - provider.GetSpec((ForkActivation)20).IsEip2537Enabled.Should().BeTrue(); - provider.GetSpec((ForkActivation)21).IsEip2537Enabled.Should().BeTrue(); - } + provider.GetSpec((ForkActivation)19).IsEip2537Enabled.Should().BeFalse(); + provider.GetSpec((ForkActivation)20).IsEip2537Enabled.Should().BeTrue(); + provider.GetSpec((ForkActivation)21).IsEip2537Enabled.Should().BeTrue(); + } - [Test] - public void Eip150_and_Eip2537_fork_by_timestamp() + [Test] + public void Eip150_and_Eip2537_fork_by_timestamp() + { + ChainSpec chainSpec = new() { - ChainSpec chainSpec = new() + Parameters = new ChainParameters { - Parameters = new ChainParameters - { - MaxCodeSizeTransitionTimestamp = 10, - Eip2537TransitionTimestamp = 20, - MaxCodeSize = 1 - } - }; + MaxCodeSizeTransitionTimestamp = 10, + Eip2537TransitionTimestamp = 20, + MaxCodeSize = 1 + } + }; - ChainSpecBasedSpecProvider provider = new(chainSpec); + ChainSpecBasedSpecProvider provider = new(chainSpec); - provider.GetSpec((100, 9)).IsEip170Enabled.Should().BeFalse(); - provider.GetSpec((100, 10)).IsEip170Enabled.Should().BeTrue(); - provider.GetSpec((100, 11)).IsEip170Enabled.Should().BeTrue(); - provider.GetSpec((100, 11)).MaxCodeSize.Should().Be(1); - provider.GetSpec((100, 9)).MaxCodeSize.Should().Be(long.MaxValue); + provider.GetSpec((100, 9)).IsEip170Enabled.Should().BeFalse(); + provider.GetSpec((100, 10)).IsEip170Enabled.Should().BeTrue(); + provider.GetSpec((100, 11)).IsEip170Enabled.Should().BeTrue(); + provider.GetSpec((100, 11)).MaxCodeSize.Should().Be(1); + provider.GetSpec((100, 9)).MaxCodeSize.Should().Be(long.MaxValue); - provider.GetSpec((100, 19)).IsEip2537Enabled.Should().BeFalse(); - provider.GetSpec((100, 20)).IsEip2537Enabled.Should().BeTrue(); - provider.GetSpec((100, 21)).IsEip2537Enabled.Should().BeTrue(); - } + provider.GetSpec((100, 19)).IsEip2537Enabled.Should().BeFalse(); + provider.GetSpec((100, 20)).IsEip2537Enabled.Should().BeTrue(); + provider.GetSpec((100, 21)).IsEip2537Enabled.Should().BeTrue(); + } - [Test] - public void Eip_transitions_loaded_correctly() - { - const long maxCodeTransition = 1; - const long maxCodeSize = 1; + [Test] + public void Eip_transitions_loaded_correctly() + { + const long maxCodeTransition = 1; + const long maxCodeSize = 1; - ChainSpec chainSpec = new() - { - Ethash = - new EthashParameters - { - HomesteadTransition = 70, - Eip100bTransition = 1000 - }, - ByzantiumBlockNumber = 1960, - ConstantinopleBlockNumber = 6490, - Parameters = new ChainParameters + ChainSpec chainSpec = new() + { + Ethash = + new EthashParameters { - MaxCodeSizeTransition = maxCodeTransition, - MaxCodeSize = maxCodeSize, - Registrar = Address.Zero, - MinGasLimit = 11, - GasLimitBoundDivisor = 13, - MaximumExtraDataSize = 17, - Eip140Transition = 1400L, - Eip145Transition = 1450L, - Eip150Transition = 1500L, - Eip152Transition = 1520L, - Eip155Transition = 1550L, - Eip160Transition = 1600L, - Eip161abcTransition = 1580L, - Eip161dTransition = 1580L, - Eip211Transition = 2110L, - Eip214Transition = 2140L, - Eip658Transition = 6580L, - Eip1014Transition = 10140L, - Eip1052Transition = 10520L, - Eip1108Transition = 11080L, - Eip1283Transition = 12830L, - Eip1283DisableTransition = 12831L, - Eip1344Transition = 13440L, - Eip1884Transition = 18840L, - Eip2028Transition = 20280L, - Eip2200Transition = 22000L, - Eip2315Transition = 23150L, - Eip2537Transition = 25370L, - Eip2565Transition = 25650L, - Eip2929Transition = 29290L, - Eip2930Transition = 29300L, - Eip1559Transition = 15590L, - Eip1559FeeCollectorTransition = 15591L, - Eip1559FeeCollector = Address.SystemUser, - Eip1559BaseFeeMinValueTransition = 15592L, - Eip1559BaseFeeMinValue = UInt256.UInt128MaxValue, - Eip3198Transition = 31980L, - Eip3529Transition = 35290L, - Eip3541Transition = 35410L, - Eip1283ReenableTransition = 23000L, - ValidateChainIdTransition = 24000L, - ValidateReceiptsTransition = 24000L, - MergeForkIdTransition = 40000L, - Eip3651TransitionTimestamp = 1000000012, - Eip3855TransitionTimestamp = 1000000012, - Eip3860TransitionTimestamp = 1000000012, - Eip1153TransitionTimestamp = 1000000024, - } - }; - - ChainSpecBasedSpecProvider provider = new(chainSpec); - Assert.AreEqual(long.MaxValue, provider.GetSpec((ForkActivation)(maxCodeTransition - 1)).MaxCodeSize, "one before"); - Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)maxCodeTransition).MaxCodeSize, "at transition"); - Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)(maxCodeTransition + 1)).MaxCodeSize, "one after"); - - ReleaseSpec expected = new(); - - void TestTransitions(ForkActivation activation, Action changes) + HomesteadTransition = 70, + Eip100bTransition = 1000 + }, + ByzantiumBlockNumber = 1960, + ConstantinopleBlockNumber = 6490, + Parameters = new ChainParameters { - changes(expected); - IReleaseSpec underTest = provider.GetSpec(activation); - underTest.Should().BeEquivalentTo(expected); + MaxCodeSizeTransition = maxCodeTransition, + MaxCodeSize = maxCodeSize, + Registrar = Address.Zero, + MinGasLimit = 11, + GasLimitBoundDivisor = 13, + MaximumExtraDataSize = 17, + Eip140Transition = 1400L, + Eip145Transition = 1450L, + Eip150Transition = 1500L, + Eip152Transition = 1520L, + Eip155Transition = 1550L, + Eip160Transition = 1600L, + Eip161abcTransition = 1580L, + Eip161dTransition = 1580L, + Eip211Transition = 2110L, + Eip214Transition = 2140L, + Eip658Transition = 6580L, + Eip1014Transition = 10140L, + Eip1052Transition = 10520L, + Eip1108Transition = 11080L, + Eip1283Transition = 12830L, + Eip1283DisableTransition = 12831L, + Eip1344Transition = 13440L, + Eip1884Transition = 18840L, + Eip2028Transition = 20280L, + Eip2200Transition = 22000L, + Eip2315Transition = 23150L, + Eip2537Transition = 25370L, + Eip2565Transition = 25650L, + Eip2929Transition = 29290L, + Eip2930Transition = 29300L, + Eip1559Transition = 15590L, + Eip1559FeeCollectorTransition = 15591L, + Eip1559FeeCollector = Address.SystemUser, + Eip1559BaseFeeMinValueTransition = 15592L, + Eip1559BaseFeeMinValue = UInt256.UInt128MaxValue, + Eip3198Transition = 31980L, + Eip3529Transition = 35290L, + Eip3541Transition = 35410L, + Eip1283ReenableTransition = 23000L, + ValidateChainIdTransition = 24000L, + ValidateReceiptsTransition = 24000L, + MergeForkIdTransition = 40000L, + Eip3651TransitionTimestamp = 1000000012, + Eip3855TransitionTimestamp = 1000000012, + Eip3860TransitionTimestamp = 1000000012, + Eip1153TransitionTimestamp = 1000000024, } + }; - TestTransitions((ForkActivation)0L, r => - { - r.MinGasLimit = 11L; - r.GasLimitBoundDivisor = 13L; - r.MaximumExtraDataSize = 17L; - r.MaxCodeSize = long.MaxValue; - r.Eip1559TransitionBlock = 15590L; - r.IsTimeAdjustmentPostOlympic = true; - r.MaximumUncleCount = 2; - r.WithdrawalTimestamp = ulong.MaxValue; - r.Eip4844TransitionTimestamp = ulong.MaxValue; - }); - - TestTransitions((ForkActivation)1L, r => - { - r.MaxCodeSize = maxCodeSize; - r.IsEip170Enabled = true; - }); - TestTransitions((ForkActivation)70L, r => { r.IsEip2Enabled = r.IsEip7Enabled = true; }); - TestTransitions((ForkActivation)1000L, r => { r.IsEip100Enabled = true; }); - TestTransitions((ForkActivation)1400L, r => { r.IsEip140Enabled = true; }); - TestTransitions((ForkActivation)1450L, r => { r.IsEip145Enabled = true; }); - TestTransitions((ForkActivation)1500L, r => { r.IsEip150Enabled = true; }); - TestTransitions((ForkActivation)1520L, r => { r.IsEip152Enabled = true; }); - TestTransitions((ForkActivation)1550L, r => { r.IsEip155Enabled = true; }); - TestTransitions((ForkActivation)1580L, r => { r.IsEip158Enabled = true; }); - TestTransitions((ForkActivation)1600L, r => { r.IsEip160Enabled = true; }); - TestTransitions((ForkActivation)1960L, - r => { r.IsEip196Enabled = r.IsEip197Enabled = r.IsEip198Enabled = r.IsEip649Enabled = true; }); - TestTransitions((ForkActivation)2110L, r => { r.IsEip211Enabled = true; }); - TestTransitions((ForkActivation)2140L, r => { r.IsEip214Enabled = true; }); - TestTransitions((ForkActivation)6580L, r => { r.IsEip658Enabled = r.IsEip1234Enabled = true; }); - TestTransitions((ForkActivation)10140L, r => { r.IsEip1014Enabled = true; }); - TestTransitions((ForkActivation)10520L, r => { r.IsEip1052Enabled = true; }); - TestTransitions((ForkActivation)11180L, r => { r.IsEip1108Enabled = true; }); - TestTransitions((ForkActivation)12830L, r => { r.IsEip1283Enabled = true; }); - TestTransitions((ForkActivation)12831L, r => { r.IsEip1283Enabled = false; }); - TestTransitions((ForkActivation)13440L, r => { r.IsEip1344Enabled = true; }); - TestTransitions((ForkActivation)15590L, r => { r.IsEip1559Enabled = true; }); - TestTransitions((ForkActivation)15591L, r => { r.Eip1559FeeCollector = Address.SystemUser; }); - TestTransitions((ForkActivation)15592L, r => { r.Eip1559BaseFeeMinValue = UInt256.UInt128MaxValue; }); - TestTransitions((ForkActivation)18840L, r => { r.IsEip1884Enabled = true; }); - TestTransitions((ForkActivation)20280L, r => { r.IsEip2028Enabled = true; }); - TestTransitions((ForkActivation)22000L, r => { r.IsEip2200Enabled = true; }); - TestTransitions((ForkActivation)23000L, r => { r.IsEip1283Enabled = r.IsEip1344Enabled = true; }); - TestTransitions((ForkActivation)24000L, r => { r.IsEip2315Enabled = r.ValidateChainId = r.ValidateReceipts = true; }); - TestTransitions((ForkActivation)29290L, r => { r.IsEip2929Enabled = r.IsEip2537Enabled = r.IsEip2565Enabled = true; }); - TestTransitions((ForkActivation)29300L, r => { r.IsEip2930Enabled = true; }); - TestTransitions((ForkActivation)31980L, r => { r.IsEip3198Enabled = true; }); - TestTransitions((ForkActivation)35290L, r => { r.IsEip3529Enabled = true; }); - TestTransitions((ForkActivation)35410L, r => { r.IsEip3541Enabled = true; }); - - TestTransitions((41000L, 1000000012), r => - { - r.IsEip3651Enabled = true; - r.IsEip3855Enabled = true; - r.IsEip3860Enabled = true; - }); - TestTransitions((40001L, 1000000024), r => { r.IsEip1153Enabled = true; }); + ChainSpecBasedSpecProvider provider = new(chainSpec); + Assert.AreEqual(long.MaxValue, provider.GetSpec((ForkActivation)(maxCodeTransition - 1)).MaxCodeSize, "one before"); + Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)maxCodeTransition).MaxCodeSize, "at transition"); + Assert.AreEqual(maxCodeSize, provider.GetSpec((ForkActivation)(maxCodeTransition + 1)).MaxCodeSize, "one after"); + + ReleaseSpec expected = new(); + + void TestTransitions(ForkActivation activation, Action changes) + { + changes(expected); + IReleaseSpec underTest = provider.GetSpec(activation); + underTest.Should().BeEquivalentTo(expected); } + + TestTransitions((ForkActivation)0L, r => + { + r.MinGasLimit = 11L; + r.GasLimitBoundDivisor = 13L; + r.MaximumExtraDataSize = 17L; + r.MaxCodeSize = long.MaxValue; + r.Eip1559TransitionBlock = 15590L; + r.IsTimeAdjustmentPostOlympic = true; + r.MaximumUncleCount = 2; + r.WithdrawalTimestamp = ulong.MaxValue; + r.Eip4844TransitionTimestamp = ulong.MaxValue; + }); + + TestTransitions((ForkActivation)1L, r => + { + r.MaxCodeSize = maxCodeSize; + r.IsEip170Enabled = true; + }); + TestTransitions((ForkActivation)70L, r => { r.IsEip2Enabled = r.IsEip7Enabled = true; }); + TestTransitions((ForkActivation)1000L, r => { r.IsEip100Enabled = true; }); + TestTransitions((ForkActivation)1400L, r => { r.IsEip140Enabled = true; }); + TestTransitions((ForkActivation)1450L, r => { r.IsEip145Enabled = true; }); + TestTransitions((ForkActivation)1500L, r => { r.IsEip150Enabled = true; }); + TestTransitions((ForkActivation)1520L, r => { r.IsEip152Enabled = true; }); + TestTransitions((ForkActivation)1550L, r => { r.IsEip155Enabled = true; }); + TestTransitions((ForkActivation)1580L, r => { r.IsEip158Enabled = true; }); + TestTransitions((ForkActivation)1600L, r => { r.IsEip160Enabled = true; }); + TestTransitions((ForkActivation)1960L, + r => { r.IsEip196Enabled = r.IsEip197Enabled = r.IsEip198Enabled = r.IsEip649Enabled = true; }); + TestTransitions((ForkActivation)2110L, r => { r.IsEip211Enabled = true; }); + TestTransitions((ForkActivation)2140L, r => { r.IsEip214Enabled = true; }); + TestTransitions((ForkActivation)6580L, r => { r.IsEip658Enabled = r.IsEip1234Enabled = true; }); + TestTransitions((ForkActivation)10140L, r => { r.IsEip1014Enabled = true; }); + TestTransitions((ForkActivation)10520L, r => { r.IsEip1052Enabled = true; }); + TestTransitions((ForkActivation)11180L, r => { r.IsEip1108Enabled = true; }); + TestTransitions((ForkActivation)12830L, r => { r.IsEip1283Enabled = true; }); + TestTransitions((ForkActivation)12831L, r => { r.IsEip1283Enabled = false; }); + TestTransitions((ForkActivation)13440L, r => { r.IsEip1344Enabled = true; }); + TestTransitions((ForkActivation)15590L, r => { r.IsEip1559Enabled = true; }); + TestTransitions((ForkActivation)15591L, r => { r.Eip1559FeeCollector = Address.SystemUser; }); + TestTransitions((ForkActivation)15592L, r => { r.Eip1559BaseFeeMinValue = UInt256.UInt128MaxValue; }); + TestTransitions((ForkActivation)18840L, r => { r.IsEip1884Enabled = true; }); + TestTransitions((ForkActivation)20280L, r => { r.IsEip2028Enabled = true; }); + TestTransitions((ForkActivation)22000L, r => { r.IsEip2200Enabled = true; }); + TestTransitions((ForkActivation)23000L, r => { r.IsEip1283Enabled = r.IsEip1344Enabled = true; }); + TestTransitions((ForkActivation)24000L, r => { r.IsEip2315Enabled = r.ValidateChainId = r.ValidateReceipts = true; }); + TestTransitions((ForkActivation)29290L, r => { r.IsEip2929Enabled = r.IsEip2537Enabled = r.IsEip2565Enabled = true; }); + TestTransitions((ForkActivation)29300L, r => { r.IsEip2930Enabled = true; }); + TestTransitions((ForkActivation)31980L, r => { r.IsEip3198Enabled = true; }); + TestTransitions((ForkActivation)35290L, r => { r.IsEip3529Enabled = true; }); + TestTransitions((ForkActivation)35410L, r => { r.IsEip3541Enabled = true; }); + + TestTransitions((41000L, 1000000012), r => + { + r.IsEip3651Enabled = true; + r.IsEip3855Enabled = true; + r.IsEip3860Enabled = true; + }); + TestTransitions((40001L, 1000000024), r => { r.IsEip1153Enabled = true; }); } }