Skip to content

Add NMC configuration for integration tests#245

Merged
jmadibekov merged 16 commits into
surge-shastafrom
jmadibekov/integration-tests
Jan 19, 2026
Merged

Add NMC configuration for integration tests#245
jmadibekov merged 16 commits into
surge-shastafrom
jmadibekov/integration-tests

Conversation

@jmadibekov
Copy link
Copy Markdown

@jmadibekov jmadibekov commented Dec 26, 2025

All upstream latest integration tests are passing with the latest NMC that supports Shasta:

--- PASS: TestTryParsingCustomError (0.00s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/bindings/encoding  0.045s  coverage: 39.3% of statements
--- PASS: TestDriverTestSuite (147.50s)
    --- PASS: TestDriverTestSuite/TestCheckL1ReorgShastaToPacaya (27.15s)
    --- PASS: TestDriverTestSuite/TestCheckL1ReorgToHigherFork (16.54s)
    --- PASS: TestDriverTestSuite/TestCheckL1ReorgToLowerFork (9.76s)
    --- PASS: TestDriverTestSuite/TestCheckL1ReorgToSameHeightFork (13.82s)
    --- PASS: TestDriverTestSuite/TestDoSyncNoNewL2Blocks (1.16s)
    --- PASS: TestDriverTestSuite/TestForcedInclusion (4.47s)
    --- PASS: TestDriverTestSuite/TestInsertPreconfBlocks (1.29s)
    --- PASS: TestDriverTestSuite/TestInsertPreconfBlocksNotReorg (2.31s)
    --- PASS: TestDriverTestSuite/TestInsertPreconfBlocksWithReorg (2.38s)
    --- PASS: TestDriverTestSuite/TestL1Current (4.61s)
    --- PASS: TestDriverTestSuite/TestName (1.16s)
    --- PASS: TestDriverTestSuite/TestNewConfigFromCliContext (1.28s)
    --- PASS: TestDriverTestSuite/TestNewConfigFromCliContextEmptyL2CheckPoint (1.20s)
    --- PASS: TestDriverTestSuite/TestNewConfigFromCliContextJWTError (1.14s)
    --- PASS: TestDriverTestSuite/TestOnUnsafeL2Payload (4.66s)
    --- PASS: TestDriverTestSuite/TestOnUnsafeL2PayloadWithInvalidPayload (4.61s)
    --- PASS: TestDriverTestSuite/TestOnUnsafeL2PayloadWithMissingAncients (26.51s)
    --- PASS: TestDriverTestSuite/TestProcessL1Blocks (5.67s)
    --- PASS: TestDriverTestSuite/TestSyncerImportPendingBlocksFromCache (16.52s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver     147.633s        coverage: 22.7% of statements
--- PASS: TestGasLimit (0.00s)
--- PASS: TestAssembleAnchorV3Tx (0.02s)
--- PASS: TestAssembleAnchorV4Tx (0.05s)
--- PASS: TestNewAnchorTransactor (0.01s)
--- PASS: TestCancelCtxTransactOpts (0.05s)
--- PASS: TestSign (0.05s)
--- PASS: TestSignShortHash (0.01s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/anchor_tx_constructor       0.266s  coverage: 76.5% of statements
--- PASS: TestChainSyncerTestSuite (37.90s)
    --- PASS: TestChainSyncerTestSuite/TestAheadOfProtocolVerifiedHead (2.13s)
    --- PASS: TestChainSyncerTestSuite/TestGetInnerSyncers (1.13s)
    --- PASS: TestChainSyncerTestSuite/TestShastaInvalidBlobs (4.42s)
    --- PASS: TestChainSyncerTestSuite/TestShastaProposalWithMultipleBlocks (4.32s)
    --- PASS: TestChainSyncerTestSuite/TestShastaProposalWithOneBlobAndMultipleBlocks (5.09s)
    --- PASS: TestChainSyncerTestSuite/TestShastaProposalWithTooMuchBlocks (4.49s)
    --- PASS: TestChainSyncerTestSuite/TestShastaProposalsWithForcedInclusion (5.40s)
    --- PASS: TestChainSyncerTestSuite/TestShastaProposalsWithInvalidForcedInclusion (5.37s)
    --- PASS: TestChainSyncerTestSuite/TestShastaValidBlobs (4.43s)
    --- PASS: TestChainSyncerTestSuite/TestSync (1.13s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/chain_syncer        37.996s coverage: 39.6% of statements
--- PASS: TestBeaconSyncProgressTrackerTestSuite (8.44s)
    --- PASS: TestBeaconSyncProgressTrackerTestSuite/TestClearMeta (2.07s)
    --- PASS: TestBeaconSyncProgressTrackerTestSuite/TestHeadChanged (1.07s)
    --- PASS: TestBeaconSyncProgressTrackerTestSuite/TestLastSyncedBlockID (1.07s)
    --- PASS: TestBeaconSyncProgressTrackerTestSuite/TestLastSyncedVerifiedBlockHash (1.08s)
    --- PASS: TestBeaconSyncProgressTrackerTestSuite/TestOutOfSync (1.03s)
    --- PASS: TestBeaconSyncProgressTrackerTestSuite/TestSyncProgressed (1.03s)
    --- PASS: TestBeaconSyncProgressTrackerTestSuite/TestTriggered (1.08s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/chain_syncer/beaconsync     8.527s  coverage: 30.9% of statements
--- PASS: TestEventSyncerTestSuite (18.78s)
    --- PASS: TestEventSyncerTestSuite/TestEventSyncRobustness (3.38s)
    --- PASS: TestEventSyncerTestSuite/TestProcessL1Blocks (1.09s)
    --- PASS: TestEventSyncerTestSuite/TestProcessL1BlocksReorg (4.32s)
    --- PASS: TestEventSyncerTestSuite/TestTreasuryIncome (5.53s)
    --- PASS: TestEventSyncerTestSuite/TestTreasuryIncomeAllAnchors (4.45s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/chain_syncer/event  18.870s coverage: 23.3% of statements
--- PASS: TestShastaManifestFetcherTestSuite (8.60s)
    --- PASS: TestShastaManifestFetcherTestSuite/TestApplyInheritedMetadata (2.11s)
    --- PASS: TestShastaManifestFetcherTestSuite/TestExtractVersionAndSize (1.12s)
    --- PASS: TestShastaManifestFetcherTestSuite/TestManifestEncodeDecode (1.03s)
    --- PASS: TestShastaManifestFetcherTestSuite/TestValidateAnchorBlockNumber (1.04s)
    --- PASS: TestShastaManifestFetcherTestSuite/TestValidateGasLimit (1.07s)
    --- PASS: TestShastaManifestFetcherTestSuite/TestValidateMetadata (1.11s)
    --- PASS: TestShastaManifestFetcherTestSuite/TestValidateMetadataTimestamp (1.12s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/chain_syncer/event/manifest 8.684s  coverage: 66.9% of statements
--- PASS: TestCacheTestSuite (0.00s)
    --- PASS: TestCacheTestSuite/TestCachedParentForOrphanHandling (0.00s)
    --- PASS: TestCacheTestSuite/TestDuplicateCachingPrevention (0.00s)
    --- PASS: TestCacheTestSuite/TestEnvelopeCachingFlow (0.00s)
    --- PASS: TestCacheTestSuite/TestL1OriginUpdateUsingCachedData (0.00s)
    --- PASS: TestCacheTestSuite/TestOrphanBlockDetectionWithoutGetBlockByHash (0.00s)
--- PASS: TestPreconfBlockAPIServerTestSuite (17.05s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestBlockToEnvelope (2.07s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestBlockToEnvelopeMarkers (1.04s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestCacheGet (1.12s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestCacheGetLongestChildren (1.04s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover (1.12s)
        --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover/curr_allowed_early_slot (0.00s)
        --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover/next_allowed_at_handover_slot (0.00s)
        --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover/next_allowed_after_handover (0.00s)
        --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover/next_allowed_next_epoch (0.00s)
        --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover/random_address_wrong (0.00s)
        --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover/curr_wrong_outside (0.00s)
        --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckLookaheadHandover/next_wrong_outside (0.00s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestCheckMessageBlockNumber (1.08s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestLookheadMergeRangesAdjacent (1.08s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestLookheadMergeRangesEmpty (1.04s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestLookheadMergeRangesNonOverlapping (1.03s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestLookheadMergeRangesOverlapping (1.04s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestLookheadSequencingWindowSplit (1.08s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestLookheadSequencingWindowSplitCurrRange (1.08s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestLookheadSequencingWindowSplitWithDualEpochPush (1.08s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestShutdown (1.12s)
    --- PASS: TestPreconfBlockAPIServerTestSuite/TestTryPutEnvelopeIntoCache (1.03s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/preconf_blocks      17.134s coverage: 18.1% of statements
--- PASS: TestSignWithK (0.01s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/signer      0.015s  coverage: 85.3% of statements
--- PASS: TestDriverStateTestSuite (13.09s)
    --- PASS: TestDriverStateTestSuite/TestClose (2.12s)
    --- PASS: TestDriverStateTestSuite/TestDriverInitContextErr (1.08s)
    --- PASS: TestDriverStateTestSuite/TestGetL1Current (1.08s)
    --- PASS: TestDriverStateTestSuite/TestGetL1Head (1.09s)
    --- PASS: TestDriverStateTestSuite/TestGetL2Head (1.08s)
    --- PASS: TestDriverStateTestSuite/TestNewDriverContextErr (1.12s)
    --- PASS: TestDriverStateTestSuite/TestResetL1CurrentCtxErr (1.16s)
    --- PASS: TestDriverStateTestSuite/TestResetL1CurrentEmptyHeight (1.08s)
    --- PASS: TestDriverStateTestSuite/TestResetL1CurrentEmptyID (1.12s)
    --- PASS: TestDriverStateTestSuite/TestSetL1Current (1.12s)
    --- PASS: TestDriverStateTestSuite/TestSubL1HeadsFeed (1.04s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/state       13.166s coverage: 54.5% of statements
--- PASS: TestDriverTestSuite (6.33s)
    --- PASS: TestDriverTestSuite/TestCalldataSize (2.07s)
    --- PASS: TestDriverTestSuite/TestInvalidTxList (1.08s)
    --- PASS: TestDriverTestSuite/TestInvalidZlibBytes (1.07s)
    --- PASS: TestDriverTestSuite/TestValidTxList (1.04s)
    --- PASS: TestDriverTestSuite/TestZeroBytes (1.07s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/driver/txlist_decompressor 6.413s  coverage: 100.0% of statements
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/integration_test   0.018s  coverage: [no statements]
--- PASS: TestBlockBatchIterator_Iter (0.04s)
--- PASS: TestBlockBatchIterator_IterWithoutSpecifiedEndHeight (0.04s)
--- PASS: TestBlockBatchIterator_IterWithLessThanConfirmations (0.00s)
--- PASS: TestBlockBatchIterator_IterEndFunc (0.00s)
--- PASS: TestBlockBatchIterator_IterCtxCancel (0.00s)
--- PASS: TestBlockBatchIterator_Config (0.00s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/chain_iterator 0.158s  coverage: 63.0% of statements
--- PASS: TestParseSecretFromFile (0.00s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/jwt    0.007s  coverage: 92.9% of statements
--- PASS: TestDialEngineClientWithBackoff (0.00s)
--- PASS: TestDialClientWithBackoff (0.00s)
--- PASS: TestDialClientWithBackoff_CtxError (0.00s)
--- PASS: TestDialEngineClientWithBackoff_CtxError (0.00s)
--- PASS: TestL2EngineForbidden (0.01s)
--- PASS: TestBlockByHash (0.05s)
--- PASS: TestBlockNumber (0.05s)
--- PASS: TestPeerCount (0.01s)
--- PASS: TestTransactionByHash (0.05s)
--- PASS: TestTransactionSender (0.01s)
--- PASS: TestTransactionCount (0.05s)
--- PASS: TestTransactionInBlock (0.01s)
--- PASS: TestNetworkID (0.01s)
--- PASS: TestStorageAt (0.01s)
--- PASS: TestCodeAt (0.01s)
--- PASS: TestNonceAt (0.01s)
--- PASS: TestPendingBalanceAt (0.01s)
--- PASS: TestPendingStorageAt (0.01s)
--- PASS: TestPendingCodeAt (0.01s)
--- PASS: TestPendingTransactionCount (0.01s)
--- PASS: TestCallContractAtHash (0.01s)
--- PASS: TestPendingCallContract (0.05s)
--- PASS: TestSuggestGasPrice (0.05s)
--- PASS: TestSuggestGasTipCap (0.05s)
--- PASS: TestFeeHistory (0.01s)
--- PASS: TestEstimateGas (0.05s)
--- PASS: TestBatchBlocksByNumbers (0.05s)
--- PASS: TestBatchBlocksByHashes (0.01s)
--- PASS: TestL2AccountNonce (0.01s)
--- PASS: TestGetGenesisL1Header (0.05s)
--- PASS: TestLatestL2KnownL1Header (0.01s)
--- PASS: TestL2ParentByBlockId (0.05s)
--- PASS: TestL2ExecutionEngineSyncProgress (0.05s)
--- PASS: TestGetProtocolStateVariables (0.01s)
--- PASS: TestWaitTillL2ExecutionEngineSyncedNewClient (0.05s)
--- PASS: TestGetSyncedL1SnippetFromAnchor (0.02s)
--- PASS: TestWaitTillL2ExecutionEngineSyncedContextErr (0.01s)
--- PASS: TestSubscribeEvent (0.00s)
--- PASS: TestSubscribeChainHead (0.01s)
--- PASS: TestStringToBytes32 (0.00s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/rpc    0.845s  coverage: 35.7% of statements
--- PASS: TestNewTxMgrSelector (0.00s)
--- PASS: TestSelect (0.00s)
--- PASS: TestRecordPrivateTxMgrFailed (0.00s)
--- PASS: TestEncodeDecodeBytes (0.00s)
--- PASS: TestGWeiToWei (0.00s)
--- PASS: TestEtherToWei (0.00s)
--- PASS: TestWeiToEther (0.00s)
--- PASS: TestWeiToGWei (0.00s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/pkg/utils  0.080s  coverage: 46.8% of statements
--- PASS: TestProposerTestSuite (32.32s)
    --- PASS: TestProposerTestSuite/TestName (2.16s)
    --- PASS: TestProposerTestSuite/TestNewConfigFromCliContext (1.14s)
    --- PASS: TestProposerTestSuite/TestNewConfigFromCliContextL2RecipErr (1.13s)
    --- PASS: TestProposerTestSuite/TestNewConfigFromCliContextPrivKeyErr (1.13s)
    --- PASS: TestProposerTestSuite/TestProposeEmptyBlockOp (4.29s)
    --- PASS: TestProposerTestSuite/TestProposeMultiBlobsInOneBatch (5.13s)
    --- PASS: TestProposerTestSuite/TestProposeOp (4.34s)
    --- PASS: TestProposerTestSuite/TestProposeOpNoEmptyBlock (5.37s)
    --- PASS: TestProposerTestSuite/TestProposeWithRevertProtection (4.15s)
    --- PASS: TestProposerTestSuite/TestStartClose (1.17s)
    --- PASS: TestProposerTestSuite/TestUpdateProposingTicker (1.13s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/proposer   32.398s coverage: 67.4% of statements
--- PASS: TestTransactionBuilderTestSuite (5.45s)
    --- PASS: TestTransactionBuilderTestSuite/TestBlobAllowed (2.16s)
    --- PASS: TestTransactionBuilderTestSuite/TestBuildCalldataOnly (1.12s)
    --- PASS: TestTransactionBuilderTestSuite/TestBuildCalldataWithBlobAllowed (1.03s)
    --- PASS: TestTransactionBuilderTestSuite/TestFallback (1.14s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/proposer/transaction_builder       5.540s  coverage: 54.0% of statements
--- PASS: TestProverTestSuite (49.51s)
    --- PASS: TestProverTestSuite/TestAggregateProofs (5.65s)
    --- PASS: TestProverTestSuite/TestAggregateProofsAlreadyProved (5.59s)
    --- PASS: TestProverTestSuite/TestInitError (1.15s)
    --- PASS: TestProverTestSuite/TestInvalidPacayaProof (6.38s)
    --- PASS: TestProverTestSuite/TestName (1.19s)
    --- PASS: TestProverTestSuite/TestNewConfigFromCliContextProverKeyError (1.11s)
    --- PASS: TestProverTestSuite/TestOnBatchProposed (6.58s)
    --- PASS: TestProverTestSuite/TestOnBatchesVerified (1.15s)
    --- PASS: TestProverTestSuite/TestProveMultiBlobBatch (10.53s)
    --- PASS: TestProverTestSuite/TestProveOp (3.37s)
    --- PASS: TestProverTestSuite/TestSetApprovalAlreadySetHigher (2.25s)
    --- PASS: TestProverTestSuite/TestSetApprovalAmount (3.30s)
    --- PASS: TestProverTestSuite/TestSubmitProofAggregationOp (1.25s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/prover     49.600s coverage: 49.7% of statements
--- PASS: TestAnchorTxValidatorTestSuite (2.15s)
    --- PASS: TestAnchorTxValidatorTestSuite/TestValidateAnchorTx (2.15s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/prover/anchor_tx_validator 2.233s  coverage: 66.7% of statements
--- PASS: TestEventHandlerTestSuite (9.00s)
    --- PASS: TestEventHandlerTestSuite/TestAssignmentExpiredEventHandlerHandle (3.24s)
    --- PASS: TestEventHandlerTestSuite/TestBachesProvedHandle (2.34s)
    --- PASS: TestEventHandlerTestSuite/TestBatchProposedHandle (2.29s)
    --- PASS: TestEventHandlerTestSuite/TestBatchesVerifiedHandle (1.14s)
--- PASS: TestProverEventHandlerTestSuite (5.30s)
    --- PASS: TestProverEventHandlerTestSuite/TestIsBatchVerified (2.10s)
    --- PASS: TestProverEventHandlerTestSuite/TestIsProvingWindowExpired (1.08s)
    --- PASS: TestProverEventHandlerTestSuite/TestIsProvingWindowExpiredShasta_Remaining (1.04s)
    --- PASS: TestProverEventHandlerTestSuite/TestIsProvingWindowExpired_PacayaExpiredZeroRemaining (1.08s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/prover/event_handler       14.384s coverage: 38.9% of statements
--- PASS: TestComposeProducerRequestProof (0.00s)
--- PASS: TestDummyProducerRequestProof (0.00s)
--- PASS: TestProofBuffer (0.00s)
--- PASS: TestProofBuffer_DuplicateBatchID (0.00s)
--- PASS: TestProofBuffer_DuplicateBatchID_AfterClear (0.00s)
--- PASS: TestProofBuffer_NilBatchID (0.00s)
--- PASS: TestProofBuffer_LargeBatchID (0.00s)
--- PASS: TestProofBuffer_DuplicateWhenFull (0.00s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/prover/proof_producer      0.068s  coverage: 22.8% of statements
--- PASS: TestProofRequestWithMockProducer (0.00s)
--- PASS: TestProofRequestWithTimeout (0.00s)
--- PASS: TestProofRequestWithRetryTimeout (0.00s)
--- PASS: TestProofRequestNoTimeoutWithinThreshold (0.00s)
--- PASS: TestProofRequestSuccessful (0.00s)
--- PASS: TestProofBufferMonitorTriggersAggregate (0.05s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/prover/proof_submitter     0.127s  coverage: 3.4% of statements
--- PASS: TestTxSenderTestSuite (3.20s)
    --- PASS: TestTxSenderTestSuite/TestBuildTxs (2.12s)
    --- PASS: TestTxSenderTestSuite/TestValidateProof (1.08s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/prover/proof_submitter/transaction 3.279s  coverage: 27.8% of statements
--- PASS: TestProverSharedStateTestSuite (0.00s)
    --- PASS: TestProverSharedStateTestSuite/TestL1Current (0.00s)
    --- PASS: TestProverSharedStateTestSuite/TestLastHandledBlockID (0.00s)
PASS
ok      github.com/taikoxyz/taiko-mono/packages/taiko-client/prover/shared_state        0.019s  coverage: 77.8% of statements

taiko-devnet.template.json was created, partially using the relevant values from taiko-geth/core/taiko_genesis/internal.json. shastaTimestamp is dynamically injected into the chainspec file to support the Shasta transition in tests, similar to how taiko-geth is configured in l2_geth.

Running integration tests locally

1. Prepare required protocol repos

# Clone Pacaya fork
git clone --branch taiko-alethia-protocol-v2.3.0-devnet-shasta-test \
  https://github.com/taikoxyz/taiko-mono.git ~/code/pacaya-fork-taiko-mono

# Clone Shasta fork
git clone --branch taiko-alethia-protocol-v3.0.0 \
  https://github.com/taikoxyz/taiko-mono.git ~/code/shasta-fork-taiko-mono

cd ~/code/pacaya-fork-taiko-mono/packages/protocol && pnpm install
cd ~/code/shasta-fork-taiko-mono/packages/protocol && pnpm install

2a. Run integration tests using taiko-geth as an L2 EL

cd ~/code/surge-taiko-mono/packages/taiko-client
PACAYA_FORK_TAIKO_MONO=~/code/pacaya-fork-taiko-mono \
SHASTA_FORK_TAIKO_MONO=~/code/shasta-fork-taiko-mono \
make test

2b. Run integration tests using NMC as an L2 EL

PACAYA_FORK_TAIKO_MONO=~/code/pacaya-fork-taiko-mono \
SHASTA_FORK_TAIKO_MONO=~/code/shasta-fork-taiko-mono \
L2_NODE=l2_nmc \
make test

When running tests, you can optionally indicate which package’s integration tests to run, e.g. PACKAGE=driver, so:

PACAYA_FORK_TAIKO_MONO=~/code/pacaya-fork-taiko-mono \
SHASTA_FORK_TAIKO_MONO=~/code/shasta-fork-taiko-mono \
L2_NODE=l2_nmc \
PACKAGE=driver \
make test

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for Nethermind (NMC) as an alternative L2 execution client for integration tests, alongside the existing taiko-geth support. This enables testing the Taiko protocol implementation against multiple execution clients to ensure compatibility and robustness.

Key changes:

  • Implements multi-client support with dynamic L2 node selection via the L2_NODE environment variable
  • Adds NMC-specific configuration including chainspec template with dynamic Shasta timestamp injection
  • Extends CI/CD pipeline to run integration tests against both l2_geth and l2_nmc execution clients

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
internal/docker/start.sh Replaces if/else with case statement for L2 node selection; adds NMC chainspec generation from template with dynamic shastaTimestamp injection
internal/docker/stop.sh Replaces if/else with case statement for L2 node selection to match start.sh structure
internal/docker/nodes/docker-compose.yml Adds l2_nmc service definition with Nethermind container configuration, volume mounts, and port mappings
internal/docker/nodes/nmc/taiko-devnet.cfg Adds Nethermind-specific configuration file with RPC settings, sync options, and Taiko module enablement
integration_test/entrypoint.sh Adds conditional jq command check when L2_NODE is set to l2_nmc
.gitignore Excludes generated NMC chainspec file from version control
.github/workflows/taiko-client--test.yml Extends test matrix to run integration tests against both l2_geth and l2_nmc

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/taiko-client/internal/docker/start.sh
Comment thread packages/taiko-client/internal/docker/start.sh
Comment thread packages/taiko-client/internal/docker/stop.sh
Comment thread packages/taiko-client/internal/docker/start.sh
Comment thread packages/taiko-client/internal/docker/nodes/docker-compose.yml Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 10 out of 11 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/taiko-client/internal/testutils/helper.go
Comment thread packages/taiko-client/internal/testutils/suite.go Outdated
Comment thread packages/taiko-client/proposer/proposer_test.go
Comment thread packages/taiko-client/integration_test/entrypoint.sh
Comment thread packages/taiko-client/proposer/proposer_test.go
Comment thread packages/taiko-client/internal/testutils/suite.go Outdated
Comment thread packages/taiko-client/internal/testutils/helper.go
Comment thread packages/taiko-client/internal/testutils/suite.go
Comment thread packages/taiko-client/internal/docker/nodes/docker-compose.yml Outdated
Comment thread packages/taiko-client/internal/testutils/helper.go
@jmadibekov jmadibekov force-pushed the jmadibekov/integration-tests branch from 140639b to 18eba9a Compare January 19, 2026 10:19
@jmadibekov jmadibekov merged commit 479f6f6 into surge-shasta Jan 19, 2026
5 of 7 checks passed
@jmadibekov jmadibekov deleted the jmadibekov/integration-tests branch January 19, 2026 14:46
jmadibekov added a commit that referenced this pull request Jan 20, 2026
* Add NMC configuration for integration tests

* Update taiko-client test workflow to include l2_nmc execution node

* Update error handling in proposer tests for L2_NODE environment to pass a test

* Update the hardcoded error string to include NMC

* Update chain syncer tests to use PendingNonceAt for nonce retrieval

* Disable fail-fast in test workflow strategy

* Revert "Update chain syncer tests to use PendingNonceAt for nonce retrieval"

This reverts commit f9b13d6.

* Update l2_nmc Docker image to the latest master version

* Update l2_nmc Docker image to version master-32dc74a and modify chain specification for updated contract code in internal.json in taiko-geth

* Add synchronization check for txpool in forkTo method for l2_nmc

* Update l2_nmc Docker image to taiko-shasta-13-01-2026

* Update to use new RPC

* Remove extra comment

* Update to use new RPC

* Update l2_nmc Docker image to taiko-shasta-19-01-2026

* Update l2_nmc Docker image to use the latest master version
jmadibekov added a commit that referenced this pull request Jan 20, 2026
* Add NMC configuration for integration tests

* Update taiko-client test workflow to include l2_nmc execution node

* Update error handling in proposer tests for L2_NODE environment to pass a test

* Update the hardcoded error string to include NMC

* Update chain syncer tests to use PendingNonceAt for nonce retrieval

* Disable fail-fast in test workflow strategy

* Revert "Update chain syncer tests to use PendingNonceAt for nonce retrieval"

This reverts commit f9b13d6.

* Update l2_nmc Docker image to the latest master version

* Update l2_nmc Docker image to version master-32dc74a and modify chain specification for updated contract code in internal.json in taiko-geth

* Add synchronization check for txpool in forkTo method for l2_nmc

* Update l2_nmc Docker image to taiko-shasta-13-01-2026

* Update to use new RPC

* Remove extra comment

* Update to use new RPC

* Update l2_nmc Docker image to taiko-shasta-19-01-2026

* Update l2_nmc Docker image to use the latest master version
jmadibekov added a commit that referenced this pull request Jan 21, 2026
* Add NMC configuration for integration tests

* Update taiko-client test workflow to include l2_nmc execution node

* Update error handling in proposer tests for L2_NODE environment to pass a test

* Update the hardcoded error string to include NMC

* Update chain syncer tests to use PendingNonceAt for nonce retrieval

* Disable fail-fast in test workflow strategy

* Revert "Update chain syncer tests to use PendingNonceAt for nonce retrieval"

This reverts commit f9b13d6.

* Update l2_nmc Docker image to the latest master version

* Update l2_nmc Docker image to version master-32dc74a and modify chain specification for updated contract code in internal.json in taiko-geth

* Add synchronization check for txpool in forkTo method for l2_nmc

* Update l2_nmc Docker image to taiko-shasta-13-01-2026

* Update to use new RPC

* Remove extra comment

* Update to use new RPC

* Update l2_nmc Docker image to taiko-shasta-19-01-2026

* Update l2_nmc Docker image to use the latest master version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants