Skip to content

Commit dc32ed0

Browse files
wurdumasdacapLukaszRozmejcore-repository-dispatch-app[bot]emlautarom1
authored
Sync with master (#8896)
* Pass PruningConfig to triestore (#8598) * Move some method to pruning trie store * Remove set * Use raw trie store * Snapsync to not use full trie store * Further remove some code * Create test * Whitespace * Update src/Nethermind/Nethermind.State.Test/PatriciaTreeTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/RawScopedTrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Use a single trie store for state * Move to factory function * More constructor to test function * Rename to Build * Overridable world state to not inherit trie store * Make it official then * Remove some parameters out of IPruningStrategy * TrackedPastKeyCountMemoryRatio to TrackPastKeys * Fix build * Fix benchmark build * Fix test build * Fix build * Moved test factory to core test * Added comment and test * Seal triestore * Address comment * Fix build * Fix build * Fix build again? --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix/parallel block downloader (#8587) * Reapply "Perf/parallel block downloader" (#8574) This reverts commit b9a2a9345d4e5bbe1583258fe6f9c1e1de5ffe72. * Fix aura not thread safe * Fix validate suggested block cannot run out of order * Fix test * Fix test * Whitespace * Some extra log * Update src/Nethermind/Nethermind.Consensus/Validators/BlockValidator.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.State/Proofs/WithdrawalTrie.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Synchronization.Test/BlockDownloaderTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Make sure only one request at a time * Fix build * Remove comment * Remove comment * Check disposed --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Update OP Superchain chains (#8611) Co-authored-by: emlautarom1 <[email protected]> * Fix trie tests (#8614) * Fix trie tests * Fix build * Whitespace * Does this work? * How about now? * What if I copy it first * Ok, how about nwo? * Back to memory * You know, if you could just reproduce locally, this would be faster. * Screw it. * Auto-update fast sync settings (#8612) Co-authored-by: rubo <[email protected]> * Refactor/Explicit message serializer registration (#8604) * Remove `IMessageSerializationService.Register` * Check banned registration * Slight cleanup * Fix build * Whitespace * Add more check * Fix editorconfig not applied to C# file. (#8620) Fix editorconfig not applied * Update libp2p package (#8534) * HealthChecks: Track CL calls from fcu & np methods (#8603) * Track CL calls directly * Fix tests * Add test * Fix suggestions * Remove class * Update src/Nethermind/Nethermind.HealthChecks/ClHealthRequestsTracker.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update HealthChecksPlugin.cs --------- Co-authored-by: Lautaro Emanuel <[email protected]> * Cleanup/remove upgreadable peer allocation (#8572) * Remove upgradeable allocation * Remove unused method * Remove allocate best peer * Slight cleanup * Safely cast Optimism subtypes (2) (#8619) Replace cast with `as` operator * Fix long running test fuzzing OOM (#8615) * Use console over TestContext in EthereumTests as they can be run from Test.Runner and not flushed for a long time * whitespace * Feature/clef tx (#8609) * Start * support clef sign transaction in RPC * fix * also works with eth_sign * format * restore * review comments * eth_sign rpc bug fix * fixed personal_sign * fix * revert * sig fix * format * Optimism CL: Enable P2P (#8556) * Enable p2p * Improve startup logic * PayloadByNumber protocol * Peer manager * Reverse peers * Fix formatting * Fix build * Fix xml * Move CL parameters to op config * Use external ip * Fix npe * Lock in EL manager * Fix formatting * Simplify sync * Small fixes * Fix config description * Add constants * Update src/Nethermind/Nethermind.Optimism/IOptimismConfig.cs Co-authored-by: Ruben Buniatyan <[email protected]> * Add logging * typo * Fix return * Remove return * Update Libp2p * Remove test feed * Reuse sessions * Improve logging * Remove sessions * Use LocalPeer sessions * Shuffle peers * Fix build * Update parentHash * Improve logging * Log peer * Update head while processing * Fix missing payloads * Head block * Do not shuffle * P2P Payload status * Update libp2p * Remove return * Update src/Nethermind/Nethermind.Optimism/CL/ExecutionEngineManager.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix formatting --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * OP CL L1 Validation on startup (#8610) * Enable p2p * Improve startup logic * PayloadByNumber protocol * Peer manager * Reverse peers * Fix formatting * Fix build * Fix xml * Move CL parameters to op config * Use external ip * Fix npe * Lock in EL manager * Fix formatting * Simplify sync * Small fixes * Fix config description * Add constants * Update src/Nethermind/Nethermind.Optimism/IOptimismConfig.cs Co-authored-by: Ruben Buniatyan <[email protected]> * Add logging * typo * Fix return * Remove return * Update Libp2p * Remove test feed * Reuse sessions * Include L1 parameters for validation * Add `eth_chainId` * Initial `L1ConfigValidator` * Validate L1 config on CL startup * Rename parameters * Fix license date * Adjust interface summary * Improve logging * Remove sessions * Add `ArgumentNullException.ThrowIfNull` * Use LocalPeer sessions * Shuffle peers * Fix build * Update parentHash * Improve logging * Log peer * Update head while processing * Run `superchain.py` * Fix missing payloads * Fix `eth_chainId` deserialization * Only use `fullTxs = true` * Empty commit * Empty commit --------- Co-authored-by: Nikita Meshcheriakov <[email protected]> Co-authored-by: Ruben Buniatyan <[email protected]> * Initialize kzg when used in runner too (#8623) * Add Nethermind.Test.Runner Docker image (#8608) * Fix hive (#8590) * Report on issues with system contracts * Externalise conditional logic; intrinsic gas = 0 * Handle deposit layout issues * Fix more tests * More tests * Add system call * More tests * Tests * Fix more * Fix clique * Fix more * Add granular exceptions; separate type fo a system call * Update tests * Fix solution; remove redundant changes * Use the same code * Refactor/Move DiscoveryApp initialization to DI (#8624) * Extract node record provider * DiscV5 to DI * DiscV4 to DI * Consolidate the network storage initialization * Allow more margin * Override discovery db in test also * Whitespace * Add state availability checks before debug module tracing (#8621) * Check if state is available in debug trace calls * Add GetFailureResult methods * Fix formatting * Set block state as always available in test stub * Mock relevant methods in unit test stubs * Set year in copyright text * Simplify header searches in favor of finds * Add TryGetHeader * Expose Block-based interfaces in IGethStyleTracer * Avoid re-decoding block RLP * Fix formatting * Refactor TryGet methods to return header/block * Set block difficulty if null * Update Nethermind.Numerics.Int256 package (#8628) * Fix infinite loop in tx pool (#8632) * Fix filter timeouts, set to 15m (#8633) * Update System.CommandLine package (#8639) * Bump up the version to 1.33.0-unstable (#8533) Co-authored-by: kamilchodola <[email protected]> * Auto-update fast sync settings (#8645) Co-authored-by: rubo <[email protected]> * Remove SkipLocalsInit to avoid garbage in first bytes of hash (#8634) * Remove SkipLocalsInit to avoid garbage in first bytes of hash * Use Ben's ToHash implementation * Improve test Co-authored-by: Ben {chmark} Adams <[email protected]> --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Update OP Superchain chains (#8644) Co-authored-by: emlautarom1 <[email protected]> * add surge hoodi chainspec (#8643) Co-authored-by: Ahmad Bitar <[email protected]> * Fix for `Block.AccountChanges` not being disposed in some cases (#8647) * Fixed `Block.AccountChanges` not being disposed in some cases * Code cleanup Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix Holesky Sync (#8651) * taiko alethia pacaya fork activation (#8642) add taiko alethia pacaya fork activation to chainspec Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> * Revert wrong code on missing receipt (#8653) * Revert wrong code on missing receipt * fix test * Set default `LegacyTransactionForRpc` gas price to zero (#8630) Set default legacy transaction gas price to zero * Fix #8648 - eth_getTransactionByBlockNumberAndIndex out of bounds (#8654) * Fix #8648 - eth_getTransactionByBlockNumberAndIndex out of bounds * one more fix * Update RocksDB package (#8640) * Kute: order by filename (#8657) * PatriciaTree ignoreMissingDelete is not used (#8646) * Remove unused code * Submodule revert * Implement Eip7823 (#8649) * Eip7823 settings * Add implementation and test * Format * Apply suggestions from code review Co-authored-by: Copilot <[email protected]> * Feedback * Feedback * Add invalid examples --------- Co-authored-by: Copilot <[email protected]> * Sync OP chains after Isthmus (#8638) * Change accessibility * Make `ValidateWithdrawalsRoot` instance method * Make `ValidateBodyAgainstHeader` an instance method * Make `ValidateBodyAgainstHeader` virtual - Revert rename * Make static methods protected * Override `ValidateBodyAgainstHeader` * Update interface implementation in `SlowHeaderValidator` * Update interface implementation in `TestBlockValidator` * Fix `BlockValidatorTests` * Fix `BodiesSyncFeedTests` * Adjust Isthmus EIPs * Run `superchain.py` * Fix `InvalidBlockInterceptorTest` * Run `superchain.py` * Delete extra file --------- Co-authored-by: Kamil Chodoła <[email protected]> * Use RocksDB PinnableSlice when available (#8661) * Use RocksDB PinnableSlice when available * Just use straight overloading * Optimize RlpStream.Encode(ulong) (#8660) * Optimize RlpStream.Encode(ulong) * Don't unnecessarily convert to UInt256 to encode * Update src/Nethermind/Nethermind.Serialization.Rlp/RlpStream.cs * Slight discovery refactor. (#8664) * Reducing change * Nodes to array segment * Extract some logic out to DiscoveryPersistenceManager.cs * Fix test * Fix test * How about now * Ok, so something is running in the background. * Assert msg count also * Dont start thread if closed * Remove the metric assertion * Slice span rather than array (#8665) * Use static SHA256.HashData (#8673) * Use span when slicing arrays (#8672) * Mild performance tweaks (#8674) * Mild performance tweaks * Apply suggestions from code review Co-authored-by: Amirul Ashraf <[email protected]> --------- Co-authored-by: Amirul Ashraf <[email protected]> * Remove TD based peer allocation strategy (#8670) * Remove TD based peer allocation strategy * Remove `MergePeerAllocationStrategy` * Improve WebSocketMessageStream (#8676) * Improve WebSocketMessageStream * Change to struct * Feedback * Add test * Optimism CL: Split finalized/safe blocks (#8658) * split safe/finalized * Add logging * Release lock * Fix startup processing * Fix if * Fix BLockId * Fix initialization * Fix * Fix * Detect L1 reorgs * Fix * Reset on reorg * Delete some fields * Finalization first * L1 bridge step * Fix * Fix async * Fix overflow * Change to parent hash * Do not process head * Fix overflow * Delay step * Decrease delay * Implement process reorg * Fix formatting * Clear channels properly * Reset decoding pipeline * Fix ClockCache.Set (#8679) * Fix ClockCache.Set * Clearer * Implement EIP-7825: Transaction Gas Limit Cap (#8663) * initial implementation, txpool limit * fix formatting * block validity * enforce in TxValidator * restore tx processing * add txpool test * add to osaka fork and add txvalidator test * fix whitespace * revert accidental changes * remove from osaka * fix whitespace * remove redundant txpool check * construct ExpectedChainIdTxValidator only once * move spec check inside GetTxGasLimitCap --------- Co-authored-by: lukasz.rozmej <[email protected]> * Implement OP CL `optimism` RPC namespace (#8667) * Initial OptimismOptimismRpcModule - Add `optimism_` namespace - Initial `optimism_version` method * Generalize `GetCurrentBlocks` * WIP `optimism_syncStatus` * Add `GetSafe` * Add `L1BlockRef From(L1Block block)` * Initial `optimism_syncStatus` method * Document `SyncStatus` * Add `Zero` * Add `CurrentL1` - Handle nulls as Zero * Refactor CL constructor - Replace with DI - Initialize OP CL RPC module * Prefer to inject `ILogManager` * Fix whitespace * Relax accessibility modifier * WIP `optimism_rollupConfig` * Add `delta` fork * Remove interop * Add `EIP1559DenominatorCanyon` * Add `ChannelTimeout` - Constant value * Add `OptimismSystemConfig` - Store genesis system config * Run `superchain.py` * Correct JSON serialization * Initial `optimism_outputAtBlock` * Add `GetProof` * Add `StateRoot` to `L2Block` * Initial `optimism_outputAtBlock` * Run `superchain.py` * Small tweaks * Actually compute Root hash * Skip local initialization * Hide OP-CL specific options (#8684) * Hide OP-CL RPC module * Hide OP-CL configs * Reduce `Forward header starting block number did not changed.` exception to log. (#8683) * Fix unexpected same block number exception * Whitespace * Refactor projects configuration (#8659) * Update packages (#8641) * Refactor/Reduce `AuraNethermindApi` usage. (#8686) * Dont use static factory here * Trying to isolate StartBlockProduer also * Start blockchain aura * Block produce env factory * Remove unnecessary code * Optimize 12 x 20byte & 32byte OpCodes (#8687) * Optimize Address returning OpCodes * Optimize PREVRANDAO opcode * Optimize ChainId opcode * Simplify Hash Pushes * Less Unsafe * Read-only method * Align stack memory * Optimize alignment calc * over comment * Use EvmStack.WordSize const * Optimize `UInt256` opcodes * Optimize loop * Balance, SelfBalance * ExtCodeHash * Short circuit delegate look up for empty * Optimize code lookup * Add Unsafe back * Pass through push * Pass through 32 * Keep as property * Move to VirtualMachine * Change back to readonly field * Auto-update fast sync settings (#8689) Co-authored-by: rubo <[email protected]> * Update OP Superchain chains (#8690) Co-authored-by: emlautarom1 <[email protected]> * Perform stack writes as single 32 vector (#8691) * Perform stack writes as single 32 vector * Use shared method * Make common method * Reintroduce Jit time branch elimination (#8692) * Reintroduce Jit time branch elimination * Formatting * Compile issues * Move to core * Benchmarks * Benchmarks * Fixes one discv5 test (#8635) * fix * review comment --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Migrate to Microsoft.Testing.Platform (#8190) * Migrate to Microsoft.Testing.Platform * Remove irrelevant setting * Fix Taiko project * Show failure per test * Fix Ethereum.Test.Base * Fix entry point * Ignore status code 8 * Restore to library project * Remove Nethermind.State.Test.Runner * Fix build errors * Fix Nethermind.Test.Runner * Ignore Log dir * Remove duplicate property * Ignore TestResults dir * Remove VSTest stuff * Revise coverage collection * Disable Nethermind.Overseer.Test and change test commands * Rename code coverage settings file * Fix file encodings * Refactor tests workflow * Fix tests workflow * Update Microsoft.Testing.Extensions.CodeCoverage package * Update Microsoft packages * Revise workflow * Apply `EnableNUnitRunner` individually * Rename code coverage config * Update packages * Update `testenvironments.json` * Revert `StartupObject` changes * Update NUnit.Analyzers package * Fix/aura hive startup (#8694) * Fix aura hive startup * Remove unnecessary change * EIP-7594: PeerDAS (#8417) * calculate cell kzg proofs * extent tx network wrapper * add cell proofs to test tx builder * add test for blob txs with cell proofs * add tx extension to supply both blob proofs and cell proofs * adjust tx builder to current master * fix data length * adjust tx validator * extend test * simplify network wrapper * cosmetics * hack decoder to accept optional blob proofs * cleaning * add cell proofs verification * fix * draft of translation logic * enable translation in tx validator * fix commitments * Send blobs update * Add engine_getBlobsV2, Fusaka * Fix proofs * drop BlobSender changes * Fix encoding * undo remaining blob sender changes * Fix block production * undo bs * Fix multiple blobs sending * Add more structs and APIs * Split GetBlobsHandler file * cleaning * fix blob tx decoder * fix old proof length in transaction builder * fix transaction builder * whitespaces, encoding * add getBlobsV2 to engine rpc capabilities * fix test * fix proofs validation * bring back Alexey's BlobSender changes * whitespace * fix * Add manager(just PoC) * Add osaka blobs settings change handling * add ProofVersion to ChainHeadInfoProvider and add SpecDrivenTxGossipPolicy * Fix some tests * Fix V2 proofs * fix file encoding * add error InvalidProofVersion * invalidate if proof version is not correct * add test OsakaSpecProvider * adjust and extend test for cell proofs pre and post osaka * Fix APIs * Fix a test * Move name to spec to Spec project * Fix build * fix cancun caps * Make tx pool return blob txs with applicable proof version * Change proof version * Display better error * add ProofsTranslationEnabled to config * convert old proof to cell proofs if enabled and after fusaka * add test * allow replacement: new proofs for old proof * add regression test * fix transaction selector tests * Fix blob sender #2 and #3 breaks * fix engine_getBlobsV2 warning * fix osaka caps activation * fix tests * extend test for blobs bundle v1 * add regression test for blobs bundle v2 * whitespaces * fix blobs bundle v2 * cosmetic * fix versions * add AreBlobsAvailable * add metrics * return empty array if not all blobs are available * add tests, fix disposing issues * fix build * Dial back JsonRpc log spam * fix test * default ProofsTranslationEnabled to false * fix test * Rename proof versions for less confusion * Fix naming change * One does not simply rename an enum value * Simplify proof version checkers * Clean up * Ckzg.Ckzg -> Ckzg. (#8568) Ckzg./2 * Rename peerdas getBlobsV2 metrics (#8579) * Add metrics for getBlobsV2 * Remove AreBlobsAvailable * Rename metrics * fix * fix build * fix test * readd proof version validation * Quick cleanup * Fix gpv3 fork validation * Fix building * Clean up * Evict transactions with old proofs * Improve test * Fix test * Fix some comments * Update src/Nethermind/Nethermind.Merge.Plugin/Metrics.cs Co-authored-by: Lukasz Rozmej <[email protected]> * More fixes * More * More fixes * More fixes * Use preallocated span not list * Segregate; statics * Update src/Nethermind/Nethermind.Merge.Plugin.Test/EngineModuleTests.V4.cs Co-authored-by: Ben {chmark} Adams <[email protected]> * Fix --------- Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * Refactor build scripts (#8601) * Refactor/make all blockprocessor arg required (#8688) * Dont use static factory here * Trying to isolate StartBlockProduer also * Start blockchain aura * Block produce env factory * Remove unnecessary code * Explicit constructor variable * Remove receipt root * Explicit execution requests * Remove transitioning factory constructor * Reduce code * Reduce diff * Update src/Nethermind/Nethermind.Consensus.AuRa/InitializationSteps/InitializeBlockchainAuRa.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Fix clique * Unused imports --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * Warm up evm instructions (#8699) * Warm up evm instructions * mods * Use SpecProvider * Revert "Use SpecProvider" This reverts commit 189ef1d2d870a3ae775bb7d5fe5f758b0051a68f. * Add BPOs (#8631) * calculate cell kzg proofs * extent tx network wrapper * add cell proofs to test tx builder * add test for blob txs with cell proofs * add tx extension to supply both blob proofs and cell proofs * adjust tx builder to current master * fix data length * adjust tx validator * extend test * simplify network wrapper * cosmetics * hack decoder to accept optional blob proofs * cleaning * add cell proofs verification * fix * draft of translation logic * enable translation in tx validator * fix commitments * Send blobs update * Add engine_getBlobsV2, Fusaka * Fix proofs * drop BlobSender changes * Fix encoding * undo remaining blob sender changes * Fix block production * undo bs * Fix multiple blobs sending * Add more structs and APIs * Split GetBlobsHandler file * cleaning * fix blob tx decoder * fix old proof length in transaction builder * fix transaction builder * whitespaces, encoding * add getBlobsV2 to engine rpc capabilities * fix test * fix proofs validation * bring back Alexey's BlobSender changes * whitespace * fix * Add manager(just PoC) * Add osaka blobs settings change handling * add ProofVersion to ChainHeadInfoProvider and add SpecDrivenTxGossipPolicy * Fix some tests * Fix V2 proofs * fix file encoding * add error InvalidProofVersion * invalidate if proof version is not correct * add test OsakaSpecProvider * adjust and extend test for cell proofs pre and post osaka * Fix APIs * Fix a test * Move name to spec to Spec project * Fix build * fix cancun caps * Make tx pool return blob txs with applicable proof version * Change proof version * Display better error * add ProofsTranslationEnabled to config * convert old proof to cell proofs if enabled and after fusaka * add test * allow replacement: new proofs for old proof * add regression test * fix transaction selector tests * Fix blob sender #2 and #3 breaks * fix engine_getBlobsV2 warning * fix osaka caps activation * fix tests * extend test for blobs bundle v1 * add regression test for blobs bundle v2 * whitespaces * fix blobs bundle v2 * cosmetic * fix versions * add AreBlobsAvailable * add metrics * return empty array if not all blobs are available * add tests, fix disposing issues * fix build * Dial back JsonRpc log spam * fix test * default ProofsTranslationEnabled to false * fix test * Rename proof versions for less confusion * Fix naming change * One does not simply rename an enum value * Simplify proof version checkers * Clean up * Ckzg.Ckzg -> Ckzg. (#8568) Ckzg./2 * Rename peerdas getBlobsV2 metrics (#8579) * Add metrics for getBlobsV2 * Remove AreBlobsAvailable * Rename metrics * fix * fix build * fix test * readd proof version validation * Quick cleanup * Fix gpv3 fork validation * Fix building * Clean up * Evict transactions with old proofs * Improve test * Fix test * Add BPOs * Evict txs with to many blobs, don't allow gaps * Fix tests * Add osaka * Apply suggestions from code review Co-authored-by: Marc <[email protected]> * Change bpos format to array with timestamps * Update spec format; fix tests * Fix some comments * Update src/Nethermind/Nethermind.Merge.Plugin/Metrics.cs Co-authored-by: Lukasz Rozmej <[email protected]> * More fixes * More * More fixes * More fixes * Fix typos, clean up * More fixes * Use preallocated span not list * Segregate; statics * Fix merge * Typos * Improve tests and spec * Return previous approach --------- Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Ben Adams <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> * Update TxParser (#8698) * Update fork in TxParser * Add way to get latest named fork class * Update src/Nethermind/Nethermind.Specs.Test/Nethermind.Specs.Test.csproj Co-authored-by: Ruben Buniatyan <[email protected]> * Update Directory.Packages.props Co-authored-by: Ruben Buniatyan <[email protected]> * Update src/Nethermind/Nethermind.Specs.Test/Nethermind.Specs.Test.csproj * fixes * Remove transaction validator * remove unused code * remove unneded usings * Use Fork.GetLatest in EVM Warmup * Cache Fork.GetLatest result --------- Co-authored-by: Ruben Buniatyan <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * eip-7883 implementation (#8489) * bump pricing * disable precompile cache * min gas at 300 * 400 is the new min * divide by 2 * min gas 500 * min gas 600 * divide by 2 * min gas 500 * increase words cost if >32 bytes * add eip activation * fix whitespace * add tests * add more tests * fix whitespaces * minor refactoring * Add GasCostOf constant * Name numbers * cosmetic * Add json -> spec -> prov loading test for timestamps * Fix test * Fix testing platform by getting rid of internals * Reuse * Add names * Disable EOF --------- Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * Add logo on startup (#8701) * Add logo on startup * Include text * extra * Less bright * Add website * Make links brighter * Only have one website * Init banner * Refactor/deduplicate ReadOnlyTxProcessingEnvFactory (#8697) * Dont use static factory here * Trying to isolate StartBlockProduer also * Start blockchain aura * Block produce env factory * Remove unnecessary code * Explicit constructor variable * Remove receipt root * Explicit execution requests * Remove transitioning factory constructor * Reduce code * Reduce diff * Update src/Nethermind/Nethermind.Consensus.AuRa/InitializationSteps/InitializeBlockchainAuRa.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Merge.AuRa/InitializationSteps/InitializeBlockchainAuRaMerge.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Whitespace * Fix build * Address taiko * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Update src/Nethermind/Nethermind.Clique.Test/CliqueBlockProducerTests.cs Co-authored-by: Lautaro Emanuel <[email protected]> * Auto read only tx processing env * Fix clique * Unused imports * Fix more build * Remove from taiko * Add processing module * Add all plugin * Remove more use of read only tx processing env * Remove the one in aura api * Hide it from usage * Slight cleanup * Revert unnecessary change * Update src/Nethermind/Nethermind.Runner/NethermindPlugins.cs Co-authored-by: Lautaro Emanuel <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * Restore and fix tests (#8696) * Un-ignore tests * Fix test names * Rename tests on the fly * Return `null` instead of errors in RPC `get` methods (#8702) * Make `get<X>CountBy<Y>` return `null` on error * Make `get` methods return `null` on not found - Adjust nullability annotations * Cleanup/move some aura components to di (#8704) * Move to DI * Some fix * Fix test * Fix aura test * Missed equal sign * Optimize: Number, GasLimit, Coinbase, PrevRandao opcodes (#8700) * Potentially optimize: Number, GasLimit, Coinbase, PrevRandao opcodes * optimize BlockExecutionContext layout * optimize ExecutionEnvironment layout * Update src/Nethermind/Nethermind.Evm/BlockExecutionContext.cs Co-authored-by: Ben {chmark} Adams <[email protected]> * fix * fix test * Keep PrevRandao as Big-endian * Convert BlobBaseFee once * Formatting * Create BlockExecutionContext less often * build fix * Reuse BlockExecutionContext in Prewarmer --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * EIP-7918: Blob base fee bounded by execution cost (#8656) * initial impl * fix whitespace * start adding tests * 7918 tests * fix formatting * fix comment * fix and update formula * fix tests, constant * make cleaner * move constant to own file * add missing eip enable * use ulong, fix underflow * rename to parentBlobGas to match spec * Update src/Nethermind/Nethermind.Core/Eip7918Constants.cs Co-authored-by: Ben {chmark} Adams <[email protected]> * remove redundant checks * check that target does not exceed max when loading blob schedule --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * TxParser: Add signature validation, keep errors in 1 line (#8706) * Add signature validation, keep errors in 1 line * remove unused usings * optimize * Refactor tests configuration and work around Rider issue (#8703) * Move common tests properties to `tests.props` * Move common packages to `tests.props` * Add `tests.props` to solution * Add Microsoft.NET.Test.Sdk package * Revise workaround condition * Some fixes for clef integration in RPC (#8626) * checksum address converter * fix * ignore gasPrice in eip1559 rpc tx * fix check on tx type instead * dont change normal RPC behavior * Fix Nethermind.Test.Runner Dockerfile (#8708) * GetStorageRange fix for no storage slots found (#8538) * GetStorageRange test with no slots returned * Single case fix * Retrun proofs when no storage slot found * Test build fix --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Fix Assertoor workflow (#8711) * Optimize debugging container (#8710) * Update known_chain_sizes test (#8714) * Use less allocating .ToValueHash than .ToBigEndian (#8713) * TxParser add chain id validation (#8709) * Fix/disconnect without sending reason (#8712) * Disconnect after hello by default * Fix disconnecting without reason * Cleanup * Optimize JournalSet (#8716) * Optimize JournalSet * Don't repeat mistakes of the past * debug * build * Also ChainLevelHelper * SkipLocalsInit as create span * Remove special case * Fix exception on exit for incomplete nethermind startup. (#8717) * Abstracted * Service stopper code * Setup * All service with dependency injection * Integrate dispose stack * Slight comment * Slight cleanup * Remove disposable stack * Whitespace * Remove Nethermind.Tools.GasHistorian (#8720) * Remove obsolete scripts (#8721) * Feature/snapsync storage log (#8675) * Remove TD based peer allocation strategy * Remove `MergePeerAllocationStrategy` * Better snap progress * More accurate storage * Sync dispatcher metric * Fix large storage not showing up * Slight cleanup * Consistency * Probably fix not showing up on mainnet * Whitespace * Ok, this should works. * Minor cleanup * Minor cleanup * Configurable high storage queue threshold * Switch to standard dictionary * Nope, I was just lucky at that time * Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs Co-authored-by: Ben {chmark} Adams <[email protected]> * Revert "Update src/Nethermind/Nethermind.Synchronization/SnapSync/ProgressTracker.cs" This reverts commit 2dc5c143c8192f307d47a39db5ea23a9c703dde4. --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Refactor/Consolidate ISealEngine. (#8705) * Move some sealing components to DI * Some fix * Move to DI * Some fix * Fix aura * Some low hanging fruit * Remove unused imports * Slight cleanup * Slight cleanup * Fix build * Fix another test * Fix test * Slight cleanup * Set to global seal engine * Surface acceptTx on sync via config (#8728) * Improve JumpDest analysis (#8725) * Add Vector512 JumpDestAnalysis * Also work on Arm * Add Uniswap * Enable all benchmarks * Formatting * Rename * Cleanur/remove create heath hint service (#8727) * Remove IHealthHintService from api * Move healthcheck * Slight cleanup * Reduce unnecessary change * Fix test * Fix taiko * Whitespace * Update src/Nethermind/Nethermind.Api/NethermindApi.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Consensus/NoBlockProducerRunner.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix tx blob deserialization after PeerDAS (#8729) * Added test for failed deserialization * Try fix failing deserialization * Simplify code * Try another fix * Simplify fix * Move unit tests to use IWorldState instead of ITrieStore (#8724) * Moved to use IWorldState instead * Reduce unnecessary change * Reduce usae again * Reduce usae again * Whitespace * Fix benchmark build * Fix build * Support for eth/69 (#7052) * Added eth/69 protocol handler * Ignore NewBlock and NewBlockHashes messages * [WIP] Make td in Status message optional * Handle receipts messages * Receipt message serialization tests * Fixed Status message handling * Disable sending Status, NewBlock and NewBlockHashes messages * Updated naming * Fixed Status serialization/deserialization * Initial handler tests * Rebase fix * Updated handler tests * Fix formatting * Code cleanup * Code cleanup * Added more units tests * Removed ignored unit tests * PR fixes * Tests code cleanup * Implementation without adding new `RlpBehaviors` * Code cleanup * Code cleanup * Fix messages disposing in tests * Build fix * Optimize to avoid creating `StatusMessage` copy * Updated `StatusMessage` to the latest version * Do not ignore `NewBlock` and `NewBlockHashes` messages * Code cleanup * Set `HeadNumber` on `Status` message * Code cleanup * Handling for `BlockRangeUpdate` message * Potential fix for failing tests * Enabled eth/69 where needed * Fixed tests * Revert removing new block notification * Fix peers ordering, attempt #1 * Revert "Fix peers ordering, attempt #1" This reverts commit a0aa23bc1c319b2e689b595b293f38894c24226b. * Allow nullable TD in `IBetterPeerStrategy` * [WIP] Fix peers ordering attempt #2 * Revert "[WIP] Fix peers ordering attempt #2" This reverts commit c2b61cf90f7469e02f1e9e7feefb25ca671ee64d. * Sending `BlockRangeUpdate`, version 1 * Build fix * Send block update only for 32+ difference * Tests update * Another build fix * Add eth/69 as part of Merge module * Fixed missing serializer in test * Try use `LastBlockBetterPeerStrategy` * Adjust disconnection logic for no-TD peers * TODO * Fixed `BlockRangeUpdate` packet type * Removed testing code and todo * Select peers for syncing by last block instead of TD * Formatting fix * Fix eth/69 registration location * Move eth/69 back to default capabilities * Updated `P2PMessageKey` * Remove unneeded TODO * `ToString` override for BlockRangeUpdate * Fixed adaptive id resolving when sending `BlockRangeUpdate` * Add IPoSSwitcher.Transitioned event * fix * Improvements for BlockRangeUpdate handling * [WIP] Update receipts encoding to latest spec * Fixes and updates for receipts encoding * Test for disconnection on invalid `BlockRangeUpdate` * Try finalize nullable peer TD * Code cleanup & build fix * Code cleanup & build fix * Fixed latest protocol version when capability is added dynamically * Try to fix `Block.AccountChanges` not being disposed in case of error * Fixed most tests * Revert "Try to fix `Block.AccountChanges` not being disposed in case of error" This reverts commit 4821110cad2611263dcdb097c32bdb49fc206a4d. * Fixed `Block.AccountChanges` not being disposed in some cases * Finalize peer strategy transitioning * Fixed build and tests * Another tests fix * Unsubscribe `PoSSwitcher.Transitioned` after firing * Build/merge fixes * Removed new strategies * Some docs for `IPoSSwitcher` * ~ Test Hive when listening on 0.0.0.0 * ~ Test Hive when listening on 0.0.0.0 * Revert "~ Test Hive when listening on 0.0.0.0" * PR feedback & build fix * Test fix * Build fix * Log adding eth/69 * ~Log supported capabilities when no-match * Remove testing code * Refactor `BlockRangeUpdate` broadcast to avoid modifying existing code * Fixes * More fixes, including tests * Cleanup & fixes * Cleanup * Test fix * Naming * Another test fix * Cleanup * Feedback * Simplify update frequency limiter * Try fix failing test via waiting --------- Co-authored-by: lukasz.rozmej <[email protected]> * Fix runner test (#8731) * Fix runner test * Fix runner test * To interlocked * Use semaphore * Move wait to `RegisterPluginRpcModule` * Increase Ethereum mainet gaslimit default to 60M (#8671) * Refactor/use block producer env factory (#8730) * Block producer env factory isolated * Simplify block producer env factory * Clique and nethdev * Reduce code * Fix test * Remove a method * Use in tests also * Simplify * Reduce parameter * Better name * Separate neth dev to another file * Unnecessary comment * Whhitespace * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Core.Test/Blockchain/TestBlockchain.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Feature/Step dependents (#8734) * Step dependents * Rename initialize statedb to run verify trie * Cleanup * Remove filter bootnodes * Remove InitCrypto * Reduces some code * Unit tests * Use the same attribute * Make run verify trie optional * Fix test * ExecutionEnvironment pass Uint256 as in (#8736) * ExecutionEnvironment pass Uint256 as in * more in * Refactor/remove additional tx source param (#8735) * Step dependents * Rename initialize statedb to run verify trie * Cleanup * Remove filter bootnodes * Remove InitCrypto * Reduces some code * Unit tests * Block producer env factory isolated * Simplify block producer env factory * Clique and nethdev * Reduce code * Fix test * Remove a method * Use in tests also * Simplify * Reduce parameter * Better name * Separate neth dev to another file * Unnecessary comment * Whhitespace * Remove additional tx source param * Fix shutter * Use the same attribute * Make run verify trie optional * Fix test * Slight cleanup * Remove some more code * Move shutter initialization somewhere else * Rename to RunshutterP2p * Revert unnecessary change * Fix shutter test * Update src/Nethermind/Nethermind.Init/RunVerifyTrie.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/RunShutterP2P.cs Co-authored-by: Marc <[email protected]> * Update src/Nethermind/Nethermind.Shutter/ShutterPlugin.cs Co-authored-by: Marc <[email protected]> --------- Co-authored-by: Marc <[email protected]> * Adjust block size to CL pessimistic block size (#8737) * adjust block size to CL limit * Update src/Nethermind/Nethermind.Config/BlocksConfig.cs Co-authored-by: Ben {chmark} Adams <[email protected]> * Whitespace --------- Co-authored-by: Ben {chmark} Adams <[email protected]> * Fix secp256r1 precompile test cases (#8738) * Fixe secp256r1 test cases * Get rid of nullability * Replace expected `null` with empty array to all tests * Improve performance of CALL opcodes (#8732) * Clean up method params passing * Benchmarks * param * Reduce changes * Previous disown * fix tests * fix tests * Increase changes * Top level contexts * Format * compile * Build * build * Local authority * Clean up ordering * Build * tests * tests * test fix * tests * tests * Disconnect when connected * Revert "Disconnect when connected" This reverts commit bb527029026bb1e69290aff8c7a6cfebccf71276. * Add back other Memory Type * Add min memory rent size (#8740) * Add min memory rent size * fix * Make `StateProvider` hot code in the common path (#8744) * Hotter code for StateProvider.Restore * Hot code * Hot code Restore * Formatting * Fix * chore(evm): fix 7918 blob gas calculator (#8743) * Auto-update fast sync settings (#8745) Co-authored-by: rubo <[email protected]> * Add boundary tests for EIP-7918 (#8748) add boundary tests for 7918 Co-authored-by: Marc Harvey-Hill <[email protected]> * Update EIP-7883: Assume minimal base/mod length of 32 (#8749) * changes to modexp gas-pricing * whitespace * tidy --------- Co-authored-by: Marc Harvey-Hill <[email protected]> * Fix/CL health checks (#8755) CL is ok if we get NP or FCU * Activate devnet-1 in Osaka (#8733) * Cleanup * Fix typo * SpanSource for TrieNode rlp (#8719) * initial * benchmarks * minor changes to sequence equal * creation * span source introduced * trie node uses SpanSource * always arrays * only SpanValue * amendents * amendments * tests amended * benchmarks, fixing * fixing sync * fixups to match byte[] and capped * TrieNode.ToString * TxTrieTests use the pool in the same way execution does * Receipt Trie tests * formatting * cleanup * Update src/Nethermind/Nethermind.Serialization.Rlp/RlpDecoderExtensions.cs Co-authored-by: Copilot <[email protected]> * Update src/Nethermind/Nethermind.Core/Buffers/ISpanSourcePool.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Tweaks * Too far * removal of the unaccess paths * SpanSource uses is instead of UnsafeAs --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * Add max blobs per tx limit taken from blob schedule (#8754) * Add maxPerTx setting * Rename * Add tests * Clean up * Fix spaces * Fix punctuation * EIP-7939 CLZ (#8759) * EIP-7939 CLZ * whitespace * fix release spec * fix * Update src/Nethermind/Nethermind.Core/Specs/IReleaseSpec.cs Co-authored-by: Marc <[email protected]> * generate tests for every bit * eip 7939 count leading zeros optimization (#8765) * Optimize with vector * Update src/Nethermind/Nethermind.Evm/Instructions/EvmInstructions.Math1Param.cs * increase delay in flaky test Test_task_that_is_scheduled_during_block_processing_will_continue_after * add in --------- Co-authored-by: Marc <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> * Dispose EvmState on warmup (#8771) * Include debug symbols in distribution packages (#8773) * Include Debug Symbols * Embed debug symbols into distribution package --------- Co-authored-by: Ruben Buniatyan <[email protected]> * optimize some precompiles (#8770) * optimize some precompiles * fix * fix * fix recovery id * fix clearing first 12 bytes of ecrecover result * optimize stack * move EthereumEcdsa to static * Remove txPool contention from block validation (#8779) * Remove txPool contention from block validation * Benchmarks * Junky test * Recover signer direct from keccak without intermediary array (#8781) * Recover signer direct from keccak without intermediary array * Skip hash via byte array * Fix merge issues * Refactor/taiko extended eth module (#8769) * Split taiko extended rpc to another class * Remove unneccessary change * Add unit test * Whitespace * Cleanup/make transaction executor always take adapter (#8750) * Block validation and production * Block production transactions execcutor * Remove some class * Fix test * Fix build * Auto-update fast sync settings (#8788) Co-authored-by: rubo <[email protected]> * Fix/era import (#8774) * Fix error import era * Fix not thread safe * Whitespace * Fix build * Increase setup timeout (#8790) * Change Ethereum mainet gaslimit default to 45M (#8793) * Base prewarming on logical cores (#8796) * Base prewarming on logical cores * Max at 16 * Add tx payload form bytes only (#8777) * PatriciaTree remove unused field (#8800) * PatriciaTree remove unused field * ReceiptTrie to non-generic * build * build * Perf/allow archive node to use prune cache (#8655) * Allow archive node to use prune cache * Fix did not save everything * Persistence interval only apply to archive node * Fixed some test * More attempt to fix test * Ability for strategy to check more information * Min and Max unpersisted block * Just a little bit more * Attempt to fix full pruner test * Fix test * Whitespace * Add comment * Rename and move to test * Remove unnecessary change * Remove unnecessary change * Remove unnecessary change * Revert unnecessary change * Fix full pruning * Trying to make test use world state * Missed a file * Add test for strategy * Reduce change * Fix proof rpc * Fix test * Update src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.Trie/Pruning/TrieStore.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Fix build * Fix test * Address comment * Fix test --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Fix validation when protocols are added concurrently (#8798) * Ignore `Celo` in Superchain Registry (#8804) Ignore `Celo` * Skip recovery queue when no blocks queued (#8801) * Skip recovery queue when no items queued * Don't pass through synchnronously * tweak * Atomic block * Fix timeout * Fix adaptive code resolver (#8797) * fix msg resolver * Fix nullability warning * Simplify resolver key * Improve error message * Test fix * Atomic add * format --------- Co-authored-by: Alex Bespalov <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> * Refactor/Deduplicate Proof, Trace, Debug, BlockchainBridge RPC (#8741) * Deduplicate proof rpc module * Just a bit more * Almost! * Cleanup * Slight cleanup, fixed some test * More cleanup * Remove unnecessary code * Clear env * Slight cleanup first * Block validation and production * Block production transactions execcutor * Remove some class * Fix test * Progressing * Fix build * Fix test * Fix aura build * Aura * Extra comment * Simulate slight cleanup * Blockchain bridge * Slight code clarity * Remove overridable tx processing env * Fix test * Missed a few override scope * Fix test * Cleanup * Whitespace * Cleanup * Cleanup * Cleanup * Try to reorder for clarity * Reduce code * Slight comment cleanup * Fix build * Remove taiko rpc modules * Fix build * Address optimism * Address comment * Add flag for persistent broadcast (#8752) * add flag for persistent broadcast * fix * Lighter Memory.Save (#8808) Ligher Memory.Save * Fix aura wrong reward components (#8805) * Fix wrong reward componets * Slight cleanup * Fix merge seal validator * Use GetOrAdd for DirtyNodeCache (#8812) * Update packages (#8811) * Cleanup/Deduplicate aura block processor. (#8814) * Remove read only chain processing env * Deduplicate block processor construction * Fix error on block production * Fix wrong sealer * Add withdrawal processor to unit test * Use proper aura tx filter * Cleanup * Rename RIP-7212 to EIP-7951 & enable in Osaka (#8753) * add to specs * remove rip7212 name * enable in Osaka * Ingore `rehearsal` chain * Run `superchain.py` --------- Co-authored-by: Marc Harvey-Hill <[email protected]> Co-authored-by: Alexey Osipov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> * Drop pre-merge history for Ethereum Mainnet (#8764) * Drop pre-merge history * fix test --------- Co-authored-by: Kamil Chodoła <[email protected]> * Single line [DoesNotReturn, StackTraceHidden] (#8821) * Allocate 96 bytes less per tx sender recovery (#8824) * Less allocating tx sender recovery * Even less allocations * Less allocations * build * Changed return types * Param type * Update OP Superchain chains (#8827) Co-authored-by: emlautarom1 <[email protected]> * Faster generic logger lookup (#8822) * TransactionSubstate to readonly ref struct (#8825) * TransactionSubstate to readonly struct * destory list * ref struct * Apply suggestions from code review Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Only notify about main BlockchainProcessor shutdown (#8819) * Adjusted CL Block size - EIP 7934 (#8807) * Adjusted CL Block size - EIP 7934 Adjusted CL Block size - EIP 7934 https://eips.ethereum.org/EIPS/eip-7934 * Update BlocksConfig.cs * Remove AncientReceiptsBarrier and AncientBodiesBarrier from sepolia_archive.json (#8834) * Initial plan for issue * Remove AncientReceiptsBarrier and AncientBodiesBarrier from sepolia_archive.json and update test Co-authored-by: MarekM25 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: MarekM25 <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> * Warmump evm (#8836) * warmup evm * Improve * Format * Update Sepolia AncientBarriers to 1450409 per EIP-3675 for pre-merge PoW history expiry (#8835) * Initial plan for issue * Initial plan for issue Co-authored-by: MarekM25 <[email protected]> * Update Sepolia AncientBarriers to 1450409 per EIP-3675 and update tests Co-authored-by: MarekM25 <[email protected]> * Remove unrelated dotnet-install.sh file Co-authored-by: MarekM25 <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: MarekM25 <[email protected]> * Implement Eip7907: Meter Contract Code Size And Increase Limit (#8845) * Add Eip7907 params * Add constants * Gas metering * Set params * Formatting * Fix * Format * Osaka activation * revert * Try enabling tests * Based on address * Remove EvmState from interface * Rename code sizes * Move Div32Ceiling * Remove codehash return * Reduce changes * Reduce changes * Empty jumpdst * Split SSTORE to two Opcodes (#8853) * Split SSTORE to two Opcodes * Move trace out * Fix yparity issue in RPC setcode tx (#8809) * set V minus offset * refactor auth list rpc * Test for setcode RPC * Refactor/Move the rest of built in rpc modules to DI (#8844) * Remove RegisterEthRpcModule * Remove more code * Slight cleanup * To primary constructor * Add test * Peerpool and subscription factory out of nethermind api * Filter store and filter manager * Slight cleanup * Remove unnecessary code * Make sure context aware rpc is not singleton * Whitespace * Fix test * Feature/lazy rpc module factory (#8846) * Fix test * Fix on actual run * Remove the test rpc module provider * Whitespace * Fix ParityStyleTracerTests in debug mode (#8857) * Fix parity style tracer test in debug mode * Whitespace * Fix arraypool dispose * Test for success * Dont change unnecessary code * Remove INethermindPlugin.GetSteps (#8858) * Remove INethermindPlugin.GetSteps * Whitespace * Fix parallelization config * Update VirtualMachineBase to compatible with the relevant VirtualMachine * Don't broadcast txs while processing a block (#8820) * Add Surge Custom Pricing RPC (#8662) * intial code for surge pricing * fix minor formatting issue * add L1 RPC calls * refactor and optimise number of RPC calls * address review comments * compute L2 gas usage with moving averages * [WIP] use Taiko L1 contract to fetch batch info * [wip] add new test for moving average computation * fix test failures & improve logging * fix build issues with latest master * address comments * TaikoInboxAddress is set to null by default * fix * address comments * minor format fix * filter poolContent by basefee * make live test as explicit * remove redundant taiko inbox address * add sharing percentage adjustment to base fee --------- Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> * Fix the use of VirtualMachineBase in EvmInstructions according to 8756 * Fix formatting * Only create Spec once per block (#8855) * Only create Spec once per block * Update spec * better spec setting * spec * Use spec * mocks * mocks * mocks * Less spec * Less spec * Tidy up * Less conversions * Go through cache * Less conversions * readonly struct * Less spec in receipts * Spec routing * Allow spec override for Aura * Less calls * Don't create different system spec if nothing changes * Remove lookup in prewarmer * Skip spec lookup for BlockHash * Pass spec to receipts * Prewarming * Set default pruning boundary to 128 (#8863) * Set default pruning boundary to 128 * Update values * Optimize opcodes (#8864) * Optimize InstructionDup * Optimize stack opcodes * Test fix * Code size * Rename to code * Refactor/Slight reduction in duplicated block producer code (#8865) * Unified header generation * Use flags * Remove prepare empty block * Fix test * Slight cleanup * Slight cleanup * Try to reduce change * None flags * Whitespace * Remove comment * Validate parenthash is same as given parent (#8840) Take into account disconnected beacon chain * Configure Volta Zurich hard fork (#8851) * Replace Nethermind.Gmp with Nethermind.GmpBindings (#8799) * Add BuilderNet to highlighted log brands (#8870) * Json serializing doubles - decimal part optional for round numbers (#8873) * When json serializing doubles make decimal part optional for round numbers * adjust tests * Optimise OpOrigin (#8867) * Optimize JwtAuthentication.Authenticate (#8875) * Optimize JwtAuthentication.Authenticate * Feedback * Reduce log noise: Move high volume logs from Debug to Trace (#8789) * Move high volume logs from Debug to Trace * Apply suggestions from code review Co-authored-by: Lukasz Rozmej <[email protected]> * Switch some back to debug --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Add taikoAuth_setHeadL1Origin, taikoAuth_updateL1Origin, BuildPayloadArgsId (#8874) * Add taikoAuth_setHeadL1Origin, taikoAuth_updateL1Origin, BuildPayloadArgsId * Fix formatting * Fix tests compilation * Fix encoding * Update Nethermind.GmpBindings package (#8876) * Refactor/deduplicate block producer env (#8871) * To IBlockProducerEnv * Fix aura * Optimism * Fix test * Rename back to block producer env * Fix build * Slight cleanup * Remove unused class * Whitespace * Update src/Nethermind/Nethermind.Merge.Plugin.Test/BaseEngineModuleTests.cs Co-authored-by: Lukasz Rozmej <[email protected]> --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Reduce use of InitializeNetworkProtocol and review step dependencies (#8859) * Add step * Nicer log * Minor tweak * Slight tweak * Analytics plugin * Hive * Slight cleanup * UPnP * Whitespace * Move analytics steps ahead * Move some more steps ahead * Move review blocktree ahead * Move start monitoring ahead * Era step and eth stats step * Fix build * Fix test * Remove unnecessary field * Update src/Nethermind/Nethermind.Init/Steps/EthereumStepsManager.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Update src/Nethermind/Nethermind.UPnP.Plugin/UPnPStep.cs Co-authored-by: Lukasz Rozmej <[email protected]> * Remove init * Fix build --------- Co-authored-by: Lukasz Rozmej <[email protected]> * Trim JsonRpc Webhost for lower latency (#8879) Trim JsonRpc Webhost Co-authored-by: Copilot <[email protected]> * Fix CPU compatibility issues (#8882) * Auto-update fast sync settings (#8881) Co-authored-by: rubo <[email protected]> * Log chainId disconnect as trace (#8877) * Test/Call block producer directly in test (#8885) * Call block producer directly * Reduce change * Further isolate overridable env (#8806) * Slightly more reliable test * Isolate overridable env even further * Unit test * Minor style change * Slightly reduce code * Whitespace * Slight cleanup * Fix build * Remove unnecessary code * Combine scope and component * Fix build * Optimize BlockForRpc for eth_getBlockByNumber (#8883) * Add Surge Hoodi Config in Runner (#8890) * add surge-hoodi config in Runner * Apply suggestions from code review The local git doesn't track the config files, need to change from GUI. Co-authored-by: Ahmad Bitar <[email protected]> --------- Co-authored-by: Ahmad Bitar <[email protected]> * Update Volta bootnode (#8888) * Fix Surge Hoodi Genesis Hash in Config (#8892) fix surge-hoodi genesis hash * Fix after merge --------- Co-authored-by: Amirul Ashraf <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: core-repository-dispatch-app[bot] <173070810+core-repository-dispatch-app[bot]@users.noreply.github.com> Co-authored-by: emlautarom1 <[email protected]> Co-authored-by: rubo <[email protected]> Co-authored-by: Marc <[email protected]> Co-authored-by: Nikita Mescheryakov <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: ak88 <[email protected]> Co-authored-by: Alexey <[email protected]> Co-authored-by: Franco Barpp Gomes <[email protected]> Co-authored-by: kamilchodola <[email protected]> Co-authored-by: Ben {chmark} Adams <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]> Co-authored-by: Alex <[email protected]> Co-authored-by: Kamil Chodoła <[email protected]> Co-authored-by: Marek Moraczyński <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: Minhyuk Kim <[email protected]> Co-authored-by: Marcin Sobczak <[email protected]> Co-authored-by: yerke26 <[email protected]> Co-authored-by: Damian Orzechowski <[email protected]> Co-authored-by: spencer <[email protected]> Co-authored-by: Marc Harvey-Hill <[email protected]> Co-authored-by: Szymon Kulec <[email protected]> Co-authored-by: Lautaro Emanuel <[email protected]> Co-authored-by: Copilot <[email protected]> Co-authored-by: MarekM25 <[email protected]> Co-authored-by: Diptanshu Kakwani <[email protected]>
1 parent dc00b97 commit dc32ed0

File tree

281 files changed

+4170
-2574
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

281 files changed

+4170
-2574
lines changed

Directory.Packages.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
<PackageVersion Include="Nethermind.DotNetty.Buffers" Version="1.0.1" />
5555
<PackageVersion Include="Nethermind.DotNetty.Handlers" Version="1.0.1" />
5656
<PackageVersion Include="Nethermind.DotNetty.Transport" Version="1.0.1" />
57-
<PackageVersion Include="Nethermind.Gmp" Version="1.0.1" />
57+
<PackageVersion Include="Nethermind.GmpBindings" Version="1.0.2" />
5858
<PackageVersion Include="Nethermind.Libp2p" Version="1.0.0-preview.45" />
5959
<PackageVersion Include="Nethermind.Libp2p.Protocols.PubsubPeerDiscovery" Version="1.0.0-preview.45" />
6060
<PackageVersion Include="Nethermind.Numerics.Int256" Version="1.3.6" />

src/Nethermind/Chains/volta.json

Lines changed: 250 additions & 235 deletions
Large diffs are not rendered by default.

src/Nethermind/Ethereum.Test.Base/TestBlockhashProvider.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33

44
using Nethermind.Core;
55
using Nethermind.Core.Crypto;
6+
using Nethermind.Core.Specs;
67
using Nethermind.Evm;
78

89
namespace Ethereum.Test.Base
910
{
1011
public class TestBlockhashProvider : IBlockhashProvider
1112
{
12-
public Hash256 GetBlockhash(BlockHeader currentBlock, in long number)
13+
public Hash256 GetBlockhash(BlockHeader currentBlock, long number)
14+
=> GetBlockhash(currentBlock, number, null);
15+
16+
public Hash256? GetBlockhash(BlockHeader currentBlock, long number, IReleaseSpec? spec)
1317
{
1418
if (number != 0)
1519
return Keccak.Zero;

src/Nethermind/Nethermind.Analytics/AnalyticsPlugin.cs

Lines changed: 25 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,26 @@
22
// SPDX-License-Identifier: LGPL-3.0-only
33

44

5-
using System.Collections.Generic;
65
using System.Threading.Tasks;
6+
using Autofac;
7+
using Autofac.Core;
8+
using Nethermind.Analytics;
79
using Nethermind.Api;
810
using Nethermind.Api.Extensions;
11+
using Nethermind.Api.Steps;
12+
using Nethermind.Core;
913
using Nethermind.Core.PubSub;
1014
using Nethermind.JsonRpc.Modules;
11-
using Nethermind.TxPool;
15+
using Nethermind.Serialization.Json.PubSub;
1216

1317
namespace Nethermind.Analytics
1418
{
1519
public class AnalyticsPlugin(IInitConfig initConfig, IAnalyticsConfig analyticsConfig) : INethermindPlugin
1620
{
17-
private IList<IPublisher> _publishers;
18-
private INethermindApi _api;
19-
20-
private bool _isOn = initConfig.WebSocketsEnabled &&
21-
(analyticsConfig.PluginsEnabled ||
22-
analyticsConfig.StreamBlocks ||
23-
analyticsConfig.StreamTransactions);
24-
25-
public bool Enabled => _isOn;
21+
public bool Enabled => initConfig.WebSocketsEnabled &&
22+
(analyticsConfig.PluginsEnabled ||
23+
analyticsConfig.StreamBlocks ||
24+
analyticsConfig.StreamTransactions);
2625

2726
public ValueTask DisposeAsync() { return ValueTask.CompletedTask; }
2827

@@ -32,65 +31,23 @@ public class AnalyticsPlugin(IInitConfig initConfig, IAnalyticsConfig analyticsC
3231

3332
public string Author => "Nethermind";
3433

35-
public Task Init(INethermindApi api)
36-
{
37-
_api = api;
38-
var (getFromAPi, _) = _api.ForInit;
39-
40-
if (!_isOn)
41-
{
42-
if (!initConfig.WebSocketsEnabled)
43-
{
44-
getFromAPi.LogManager.GetClassLogger().Warn($"{nameof(AnalyticsPlugin)} disabled due to {nameof(initConfig.WebSocketsEnabled)} set to false");
45-
}
46-
else
47-
{
48-
getFromAPi.LogManager.GetClassLogger().Warn($"{nameof(AnalyticsPlugin)} plugin disabled due to {nameof(AnalyticsConfig)} settings set to false");
49-
}
50-
}
51-
52-
return Task.CompletedTask;
53-
}
54-
55-
private void TxPoolOnNewDiscovered(object sender, TxEventArgs e)
56-
{
57-
if (analyticsConfig.StreamTransactions)
58-
{
59-
foreach (IPublisher publisher in _publishers)
60-
{
61-
// TODO: probably need to serialize first
62-
publisher.PublishAsync(e.Transaction);
63-
}
64-
}
65-
}
66-
67-
public Task InitNetworkProtocol()
68-
{
69-
var (getFromAPi, _) = _api.ForNetwork;
70-
if (_isOn)
71-
{
72-
getFromAPi.TxPool!.NewDiscovered += TxPoolOnNewDiscovered;
73-
}
34+
public IModule Module => new AnalyticsModule();
35+
}
36+
}
7437

75-
if (_isOn)
76-
{
77-
AnalyticsWebSocketsModule webSocketsModule = new(getFromAPi.EthereumJsonSerializer, getFromAPi.LogManager);
78-
getFromAPi.WebSocketsManager!.AddModule(webSocketsModule, true);
79-
getFromAPi.Publishers.Add(webSocketsModule);
80-
}
38+
public class AnalyticsModule : Module
39+
{
40+
protected override void Load(ContainerBuilder builder) => builder
8141

82-
_publishers = getFromAPi.Publishers;
42+
// Standard IPublishers, which seems to be things that publish when txpool got transaction
43+
.AddSingleton<AnalyticsWebSocketsModule>()
44+
.Bind<IPublisher, AnalyticsWebSocketsModule>() // send to websocket
45+
.AddSingleton<IPublisher, LogPublisher>() // Send to log
8346

84-
return Task.CompletedTask;
85-
}
47+
// Rpc
48+
.RegisterSingletonJsonRpcModule<IAnalyticsRpcModule, AnalyticsRpcModule>()
8649

87-
public Task InitRpcModules()
88-
{
89-
var (getFromAPi, _) = _api.ForRpc;
90-
AnalyticsRpcModule analyticsRpcModule = new(
91-
getFromAPi.BlockTree, getFromAPi.StateReader, getFromAPi.LogManager);
92-
getFromAPi.RpcModuleProvider.Register(new SingletonModulePool<IAnalyticsRpcModule>(analyticsRpcModule));
93-
return Task.CompletedTask;
94-
}
95-
}
50+
// Step
51+
.AddStep(typeof(AnalyticsSteps))
52+
;
9653
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
// SPDX-FileCopyrightText: 2025 Demerzel Solutions Limited
2+
// SPDX-License-Identifier: LGPL-3.0-only
3+
4+
using System.Collections.Generic;
5+
using System.Threading;
6+
using System.Threading.Tasks;
7+
using Nethermind.Analytics;
8+
using Nethermind.Api.Steps;
9+
using Nethermind.Core.PubSub;
10+
using Nethermind.Init.Steps;
11+
using Nethermind.Sockets;
12+
using Nethermind.TxPool;
13+
14+
/// <summary>
15+
/// Publish txpool `NewDiscovered` event to all `IPublisher`.
16+
/// </summary>
17+
/// <param name="txPool"></param>
18+
/// <param name="webSocketsModule"></param>
19+
/// <param name="webSocketsManager"></param>
20+
/// <param name="analyticsConfig"></param>
21+
/// <param name="publishers"></param>
22+
[RunnerStepDependencies(typeof(InitializeBlockchain))]
23+
public class AnalyticsSteps(
24+
ITxPool txPool,
25+
AnalyticsWebSocketsModule webSocketsModule,
26+
IWebSocketsManager webSocketsManager,
27+
IAnalyticsConfig analyticsConfig,
28+
IPublisher[] publishers
29+
) : IStep
30+
{
31+
public Task Execute(CancellationToken cancellationToken)
32+
{
33+
txPool.NewDiscovered += TxPoolOnNewDiscovered;
34+
webSocketsManager!.AddModule(webSocketsModule, true);
35+
return Task.CompletedTask;
36+
}
37+
38+
private void TxPoolOnNewDiscovered(object sender, TxEventArgs e)
39+
{
40+
if (analyticsConfig.StreamTransactions)
41+
{
42+
foreach (IPublisher publisher in publishers)
43+
{
44+
// TODO: probably need to serialize first
45+
publisher.PublishAsync(e.Transaction);
46+
}
47+
}
48+
}
49+
}

src/Nethermind/Nethermind.Analytics/Nethermind.Analytics.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
<ItemGroup>
44
<ProjectReference Include="..\Nethermind.Api\Nethermind.Api.csproj" />
5+
<ProjectReference Include="..\Nethermind.Init\Nethermind.Init.csproj" />
56
</ItemGroup>
67

78
</Project>

src/Nethermind/Nethermind.Api/IApiWithBlockchain.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,6 @@ public interface IApiWithBlockchain : IApiWithStores, IBlockchainBridgeFactory
7979

8080
IGasPriceOracle GasPriceOracle { get; }
8181

82-
[SkipServiceCollection]
83-
IEthSyncingInfo? EthSyncingInfo { get; }
84-
85-
8682
IBlockProductionPolicy? BlockProductionPolicy { get; set; }
8783
BackgroundTaskScheduler BackgroundTaskScheduler { get; set; }
8884
CensorshipDetector CensorshipDetector { get; set; }

src/Nethermind/Nethermind.Api/IApiWithNetwork.cs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
// SPDX-FileCopyrightText: 2022 Demerzel Solutions Limited
22
// SPDX-License-Identifier: LGPL-3.0-only
33

4-
using System.Collections.Generic;
54
using Nethermind.Consensus;
65
using Nethermind.Core;
7-
using Nethermind.Core.PubSub;
8-
using Nethermind.Grpc;
96
using Nethermind.JsonRpc;
107
using Nethermind.JsonRpc.Modules;
11-
using Nethermind.JsonRpc.Modules.Subscribe;
128
using Nethermind.Network;
139
using Nethermind.Network.Rlpx;
1410
using Nethermind.Synchronization;
1511
using Nethermind.Synchronization.Peers;
16-
using Nethermind.Sockets;
1712
using Nethermind.Synchronization.ParallelSync;
1813

1914
namespace Nethermind.Api
@@ -22,14 +17,12 @@ public interface IApiWithNetwork : IApiWithBlockchain
2217
{
2318
(IApiWithNetwork GetFromApi, IApiWithNetwork SetInApi) ForNetwork => (this, this);
2419

25-
IGrpcServer? GrpcServer { get; set; }
2620
IIPResolver IpResolver { get; }
2721
IMessageSerializationService MessageSerializationService { get; }
2822
IGossipPolicy GossipPolicy { get; set; }
2923
IPeerManager? PeerManager { get; }
3024
IProtocolsManager? ProtocolsManager { get; set; }
3125
IProtocolValidator? ProtocolValidator { get; set; }
32-
IList<IPublisher> Publishers { get; }
3326
IRlpxHost RlpxPeer { get; }
3427

3528
[SkipServiceCollection]
@@ -41,7 +34,6 @@ public interface IApiWithNetwork : IApiWithBlockchain
4134
ISyncModeSelector SyncModeSelector { get; }
4235
ISyncPeerPool? SyncPeerPool { get; }
4336
ISyncServer? SyncServer { get; }
44-
IWebSocketsManager WebSocketsManager { get; set; }
4537

4638
[SkipServiceCollection]
4739
IEngineRequestsTracker EngineRequestsTracker { get; }

src/Nethermind/Nethermind.Api/NethermindApi.cs

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,12 @@
1818
using Nethermind.Consensus.Scheduler;
1919
using Nethermind.Consensus.Validators;
2020
using Nethermind.Core;
21-
using Nethermind.Core.Authentication;
22-
using Nethermind.Core.PubSub;
2321
using Nethermind.Core.Specs;
2422
using Nethermind.Core.Timers;
2523
using Nethermind.Crypto;
2624
using Nethermind.Db;
2725
using Nethermind.Db.Blooms;
2826
using Nethermind.Facade;
29-
using Nethermind.Facade.Eth;
30-
using Nethermind.Grpc;
3127
using Nethermind.JsonRpc;
3228
using Nethermind.JsonRpc.Modules;
3329
using Nethermind.JsonRpc.Modules.Eth.GasPrice;
@@ -44,7 +40,6 @@
4440
using Nethermind.Synchronization.Peers;
4541
using Nethermind.TxPool;
4642
using Nethermind.Wallet;
47-
using Nethermind.Sockets;
4843
using Nethermind.Consensus.Processing.CensorshipDetector;
4944
using Nethermind.Facade.Find;
5045

@@ -96,7 +91,6 @@ public virtual IBlockchainBridge CreateBlockchainBridge()
9691
public IEthereumEcdsa EthereumEcdsa => Context.Resolve<IEthereumEcdsa>();
9792
public IFileSystem FileSystem { get; set; } = new FileSystem();
9893
public IUnclesValidator? UnclesValidator => Context.Resolve<IUnclesValidator>();
99-
public IGrpcServer? GrpcServer { get; set; }
10094
public IHeaderValidator? HeaderValidator => Context.Resolve<IHeaderValidator>();
10195
public IEngineRequestsTracker EngineRequestsTracker => Context.Resolve<IEngineRequestsTracker>();
10296

@@ -148,15 +142,12 @@ public virtual IBlockchainBridge CreateBlockchainBridge()
148142
public IBlockProducerEnvFactory BlockProducerEnvFactory => Context.Resolve<IBlockProducerEnvFactory>();
149143
public IBlockImprovementContextFactory? BlockImprovementContextFactory { get; set; }
150144
public IGasPriceOracle GasPriceOracle => Context.Resolve<IGasPriceOracle>();
151-
152-
public IEthSyncingInfo? EthSyncingInfo => Context.Resolve<IEthSyncingInfo>();
153145
public IBlockProductionPolicy? BlockProductionPolicy { get; set; }
154146
public BackgroundTaskScheduler BackgroundTaskScheduler { get; set; } = null!;
155147
public CensorshipDetector CensorshipDetector { get; set; } = null!;
156148
public IWallet? Wallet { get; set; }
157149
public IBadBlockStore? BadBlocksStore { get; set; }
158150
public ITransactionComparerProvider? TransactionComparerProvider { get; set; }
159-
public IWebSocketsManager WebSocketsManager { get; set; } = new WebSocketsManager();
160151

161152
public IProtectedPrivateKey? NodeKey { get; set; }
162153

@@ -168,7 +159,6 @@ public virtual IBlockchainBridge CreateBlockchainBridge()
168159
public ChainSpec ChainSpec => _dependencies.ChainSpec;
169160
public IDisposableStack DisposeStack => Context.Resolve<IDisposableStack>();
170161
public IReadOnlyList<INethermindPlugin> Plugins => _dependencies.Plugins;
171-
public IList<IPublisher> Publishers { get; } = new List<IPublisher>(); // this should be called publishers
172162
public IProcessExitSource ProcessExit => _dependencies.ProcessExitSource;
173163
public CompositeTxGossipPolicy TxGossipPolicy { get; } = new();
174164
public ILifetimeScope Context => _dependencies.Context;

src/Nethermind/Nethermind.AuRa.Test/Contract/ValidatorContractTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public void finalize_change_should_call_correct_transaction()
8383
contract.FinalizeChange(_block.Header);
8484

8585
_transactionProcessor.Received().Execute(
86-
Arg.Is<Transaction>(t => IsEquivalentTo(expectation, t)), Arg.Is<BlockExecutionContext>(blkCtx => blkCtx.Header.Equals(_block.Header)), Arg.Any<ITxTracer>());
86+
Arg.Is<Transaction>(t => IsEquivalentTo(expectation, t)), Arg.Is<BlockHeader>(header => header.Equals(_block.Header)), Arg.Any<ITxTracer>());
8787
}
8888

8989
private static bool IsEquivalentTo(Transaction expected, Transaction item)

0 commit comments

Comments
 (0)