@@ -13,6 +13,7 @@ import (
1313 "testing"
1414 "time"
1515
16+ tastoradocker "github.com/celestiaorg/tastora/framework/docker"
1617 "github.com/ethereum/go-ethereum/common"
1718 "github.com/ethereum/go-ethereum/ethclient"
1819 "github.com/rs/zerolog"
@@ -77,13 +78,15 @@ func setupSequencerWithForceInclusion(t *testing.T, sut *SystemUnderTest, nodeHo
7778 t .Helper ()
7879
7980 // Use common setup (no full node needed initially)
80- jwtSecret , _ , genesisHash , endpoints , _ := setupCommonEVMTest (t , sut , false )
81+ dcli , netID := tastoradocker .Setup (t )
82+ env := setupCommonEVMEnv (t , sut , dcli , netID )
83+ // Use env fields inline below to reduce local vars
8184
8285 // Create passphrase file
8386 passphraseFile := createPassphraseFile (t , nodeHome )
8487
8588 // Create JWT secret file
86- jwtSecretFile := createJWTSecretFile (t , nodeHome , jwtSecret )
89+ jwtSecretFile := createJWTSecretFile (t , nodeHome , env . SequencerJWT )
8790
8891 // Initialize sequencer node
8992 output , err := sut .RunCmd (evmSingleBinaryPath ,
@@ -102,25 +105,25 @@ func setupSequencerWithForceInclusion(t *testing.T, sut *SystemUnderTest, nodeHo
102105 args := []string {
103106 "start" ,
104107 "--evm.jwt-secret-file" , jwtSecretFile ,
105- "--evm.genesis-hash" , genesisHash ,
108+ "--evm.genesis-hash" , env . GenesisHash ,
106109 "--evnode.node.block_time" , DefaultBlockTime ,
107110 "--evnode.node.aggregator=true" ,
108111 "--evnode.signer.passphrase_file" , passphraseFile ,
109112 "--home" , nodeHome ,
110113 "--evnode.da.block_time" , DefaultDABlockTime ,
111- "--evnode.da.address" , endpoints .GetDAAddress (),
114+ "--evnode.da.address" , env . Endpoints .GetDAAddress (),
112115 "--evnode.da.namespace" , DefaultDANamespace ,
113116 "--evnode.da.forced_inclusion_namespace" , "forced-inc" ,
114- "--evnode.rpc.address" , endpoints .GetRollkitRPCListen (),
115- "--evnode.p2p.listen_address" , endpoints .GetRollkitP2PAddress (),
116- "--evm.engine-url" , endpoints .GetSequencerEngineURL (),
117- "--evm.eth-url" , endpoints .GetSequencerEthURL (),
117+ "--evnode.rpc.address" , env . Endpoints .GetRollkitRPCListen (),
118+ "--evnode.p2p.listen_address" , env . Endpoints .GetRollkitP2PAddress (),
119+ "--evm.engine-url" , env . Endpoints .GetSequencerEngineURL (),
120+ "--evm.eth-url" , env . Endpoints .GetSequencerEthURL (),
118121 "--force-inclusion-server" , fiAddr ,
119122 }
120123 sut .ExecCmd (evmSingleBinaryPath , args ... )
121- sut .AwaitNodeUp (t , endpoints .GetRollkitRPCAddress (), NodeStartupTimeout )
124+ sut .AwaitNodeUp (t , env . Endpoints .GetRollkitRPCAddress (), NodeStartupTimeout )
122125
123- return genesisHash , endpoints .GetSequencerEthURL ()
126+ return env . GenesisHash , env . Endpoints .GetSequencerEthURL ()
124127}
125128
126129func TestEvmSequencerForceInclusionE2E (t * testing.T ) {
@@ -192,10 +195,11 @@ func TestEvmFullNodeForceInclusionE2E(t *testing.T) {
192195 // --- Start Sequencer Setup ---
193196 // We manually setup sequencer here because we need the force inclusion flag,
194197 // and we need to capture variables for full node setup.
195- jwtSecret , fullNodeJwtSecret , genesisHash , endpoints , _ := setupCommonEVMTest (t , sut , true )
198+ dcli2 , netID2 := tastoradocker .Setup (t )
199+ env := setupCommonEVMEnv (t , sut , dcli2 , netID2 , WithFullNode ())
196200
197201 passphraseFile := createPassphraseFile (t , sequencerHome )
198- jwtSecretFile := createJWTSecretFile (t , sequencerHome , jwtSecret )
202+ jwtSecretFile := createJWTSecretFile (t , sequencerHome , env . SequencerJWT )
199203
200204 output , err := sut .RunCmd (evmSingleBinaryPath ,
201205 "init" ,
@@ -212,38 +216,38 @@ func TestEvmFullNodeForceInclusionE2E(t *testing.T) {
212216 seqArgs := []string {
213217 "start" ,
214218 "--evm.jwt-secret-file" , jwtSecretFile ,
215- "--evm.genesis-hash" , genesisHash ,
219+ "--evm.genesis-hash" , env . GenesisHash ,
216220 "--evnode.node.block_time" , DefaultBlockTime ,
217221 "--evnode.node.aggregator=true" ,
218222 "--evnode.signer.passphrase_file" , passphraseFile ,
219223 "--home" , sequencerHome ,
220224 "--evnode.da.block_time" , DefaultDABlockTime ,
221- "--evnode.da.address" , endpoints .GetDAAddress (),
225+ "--evnode.da.address" , env . Endpoints .GetDAAddress (),
222226 "--evnode.da.namespace" , DefaultDANamespace ,
223227 "--evnode.da.forced_inclusion_namespace" , "forced-inc" ,
224- "--evnode.rpc.address" , endpoints .GetRollkitRPCListen (),
225- "--evnode.p2p.listen_address" , endpoints .GetRollkitP2PAddress (),
226- "--evm.engine-url" , endpoints .GetSequencerEngineURL (),
227- "--evm.eth-url" , endpoints .GetSequencerEthURL (),
228+ "--evnode.rpc.address" , env . Endpoints .GetRollkitRPCListen (),
229+ "--evnode.p2p.listen_address" , env . Endpoints .GetRollkitP2PAddress (),
230+ "--evm.engine-url" , env . Endpoints .GetSequencerEngineURL (),
231+ "--evm.eth-url" , env . Endpoints .GetSequencerEthURL (),
228232 "--force-inclusion-server" , fiAddr ,
229233 }
230234 sut .ExecCmd (evmSingleBinaryPath , seqArgs ... )
231- sut .AwaitNodeUp (t , endpoints .GetRollkitRPCAddress (), NodeStartupTimeout )
235+ sut .AwaitNodeUp (t , env . Endpoints .GetRollkitRPCAddress (), NodeStartupTimeout )
232236 t .Log ("Sequencer is up with force inclusion enabled" )
233237 // --- End Sequencer Setup ---
234238
235239 // --- Start Full Node Setup ---
236240 // Reuse setupFullNode helper which handles genesis copying and node startup
237- setupFullNode (t , sut , fullNodeHome , sequencerHome , fullNodeJwtSecret , genesisHash , endpoints . GetRollkitP2PAddress (), endpoints )
241+ setupFullNode (t , sut , fullNodeHome , sequencerHome , env . FullNodeJWT , env . GenesisHash , env . Endpoints . GetRollkitP2PAddress (), env . Endpoints )
238242 t .Log ("Full node is up" )
239243 // --- End Full Node Setup ---
240244
241245 // Connect to clients
242- seqClient , err := ethclient .Dial (endpoints .GetSequencerEthURL ())
246+ seqClient , err := ethclient .Dial (env . Endpoints .GetSequencerEthURL ())
243247 require .NoError (t , err )
244248 defer seqClient .Close ()
245249
246- fnClient , err := ethclient .Dial (endpoints .GetFullNodeEthURL ())
250+ fnClient , err := ethclient .Dial (env . Endpoints .GetFullNodeEthURL ())
247251 require .NoError (t , err )
248252 defer fnClient .Close ()
249253
@@ -284,10 +288,11 @@ func setupMaliciousSequencer(t *testing.T, sut *SystemUnderTest, nodeHome string
284288 t .Helper ()
285289
286290 // Use common setup with full node support
287- jwtSecret , fullNodeJwtSecret , genesisHash , endpoints , _ := setupCommonEVMTest (t , sut , true )
291+ env := setupCommonEVMEnv (t , sut , WithFullNode ())
292+ // Use env fields inline below to reduce local vars
288293
289294 passphraseFile := createPassphraseFile (t , nodeHome )
290- jwtSecretFile := createJWTSecretFile (t , nodeHome , jwtSecret )
295+ jwtSecretFile := createJWTSecretFile (t , nodeHome , env . SequencerJWT )
291296
292297 output , err := sut .RunCmd (evmSingleBinaryPath ,
293298 "init" ,
@@ -303,25 +308,25 @@ func setupMaliciousSequencer(t *testing.T, sut *SystemUnderTest, nodeHome string
303308 seqArgs := []string {
304309 "start" ,
305310 "--evm.jwt-secret-file" , jwtSecretFile ,
306- "--evm.genesis-hash" , genesisHash ,
311+ "--evm.genesis-hash" , env . GenesisHash ,
307312 "--evnode.node.block_time" , DefaultBlockTime ,
308313 "--evnode.node.aggregator=true" ,
309314 "--evnode.signer.passphrase_file" , passphraseFile ,
310315 "--home" , nodeHome ,
311316 "--evnode.da.block_time" , DefaultDABlockTime ,
312- "--evnode.da.address" , endpoints .GetDAAddress (),
317+ "--evnode.da.address" , env . Endpoints .GetDAAddress (),
313318 "--evnode.da.namespace" , DefaultDANamespace ,
314319 // CRITICAL: Set sequencer to listen to WRONG namespace - it won't see forced txs
315320 "--evnode.da.forced_inclusion_namespace" , "wrong-namespace" ,
316- "--evnode.rpc.address" , endpoints .GetRollkitRPCListen (),
317- "--evnode.p2p.listen_address" , endpoints .GetRollkitP2PAddress (),
318- "--evm.engine-url" , endpoints .GetSequencerEngineURL (),
319- "--evm.eth-url" , endpoints .GetSequencerEthURL (),
321+ "--evnode.rpc.address" , env . Endpoints .GetRollkitRPCListen (),
322+ "--evnode.p2p.listen_address" , env . Endpoints .GetRollkitP2PAddress (),
323+ "--evm.engine-url" , env . Endpoints .GetSequencerEngineURL (),
324+ "--evm.eth-url" , env . Endpoints .GetSequencerEthURL (),
320325 }
321326 sut .ExecCmd (evmSingleBinaryPath , seqArgs ... )
322- sut .AwaitNodeUp (t , endpoints .GetRollkitRPCAddress (), NodeStartupTimeout )
327+ sut .AwaitNodeUp (t , env . Endpoints .GetRollkitRPCAddress (), NodeStartupTimeout )
323328
324- return genesisHash , fullNodeJwtSecret , endpoints
329+ return env . GenesisHash , env . FullNodeJWT , env . Endpoints
325330}
326331
327332// setupFullNodeWithForceInclusionCheck sets up a full node that WILL verify forced inclusion txs
0 commit comments