1- import { mkdtempSync , writeFileSync } from 'node:fs' ;
1+ import { chmodSync , mkdirSync , mkdtempSync , writeFileSync } from 'node:fs' ;
22import { tmpdir } from 'node:os' ;
33import { join } from 'node:path' ;
44
@@ -77,6 +77,12 @@ let cleanupHookRegistered = false;
7777let teardownStarted = false ;
7878let l1RpcCachingProxy : RpcCachingProxy | undefined ;
7979
80+ function prepareNitroRuntimeDir ( runtimeDir : string ) {
81+ chmodSync ( runtimeDir , 0o777 ) ;
82+ mkdirSync ( join ( runtimeDir , 'nitro-data' ) , { recursive : true , mode : 0o777 } ) ;
83+ chmodSync ( join ( runtimeDir , 'nitro-data' ) , 0o777 ) ;
84+ }
85+
8086export async function setupAnvilTestStack ( ) : Promise < AnvilTestStack > {
8187 if ( envPromise ) {
8288 return envPromise ;
@@ -97,6 +103,7 @@ export async function setupAnvilTestStack(): Promise<AnvilTestStack> {
97103 cleanupStaleHarnessNetworks ( ) ;
98104
99105 runtimeDir = mkdtempSync ( join ( tmpdir ( ) , 'chain-sdk-int-test' ) ) ;
106+ prepareNitroRuntimeDir ( runtimeDir ) ;
100107 dockerNetworkName = `chain-sdk-int-test-net-${ Date . now ( ) } ` ;
101108 createSourceDockerNetwork ( dockerNetworkName ) ;
102109
@@ -221,7 +228,7 @@ export async function setupAnvilTestStack(): Promise<AnvilTestStack> {
221228 l2NodeConfig . node ! [ 'batch-poster' ] ! . enable = false ;
222229 l2NodeConfig . node ! . staker ! . enable = false ;
223230 const nodeConfigPath = join ( runtimeDir , 'source-l2-node-config.json' ) ;
224- writeFileSync ( nodeConfigPath , JSON . stringify ( l2NodeConfig , null , 2 ) ) ;
231+ writeFileSync ( nodeConfigPath , JSON . stringify ( l2NodeConfig , null , 2 ) , { mode : 0o644 } ) ;
225232
226233 // Starting L2 node (Nitro)
227234 console . log ( 'Starting L2 Nitro node...' ) ;
0 commit comments