@@ -998,7 +998,7 @@ const bridging = () => {
998998 bridgeTransferStates: bridgeTransferStates(
999999 limit: ${ LIMIT } ,
10001000 orderBy: [blockNumber_ASC, id_ASC],
1001- ) {
1001+ ) {
10021002 blockNumber
10031003 id
10041004 state
@@ -1255,48 +1255,62 @@ const main = async () => {
12551255
12561256 console . log ( 'Total queries:' , queries . length )
12571257
1258- for ( let i = 0 ; i < queries . length ; i ++ ) {
1259- const query = queries [ i ]
1260- console . log ( `Executing: \`${ query . replace ( / ( \n | \s ) + / g, ' ' ) . slice ( 0 , 80 ) } \`...` )
1261- const result = await retry ( ( ) => executeQuery ( query ) , 5 )
1262- if ( ! result . data ) {
1263- console . log ( result )
1264- throw new Error ( 'Query failed' )
1258+ const runConcurrently = async ( fns : ( ( ) => Promise < void > ) [ ] , concurrency : number ) => {
1259+ const queue = [ ...fns ]
1260+ while ( queue . length > 0 ) {
1261+ const batch = queue . splice ( 0 , concurrency )
1262+ await Promise . all ( batch . map ( ( fn ) => fn ( ) ) )
12651263 }
1264+ }
12661265
1267- const takeAll = [ 'ognDailyStats' ]
1268- for ( const key of Object . keys ( result . data ) ) {
1269- let validationData
1270- const rawData = result . data [ key ]
1271-
1272- // If there are fewer than 20 total entries, save them all
1273- if ( rawData . length < 20 || takeAll . includes ( key ) ) {
1274- validationData = rawData
1275- } else if ( key === 'exchangeRates' || key === 'exchangeRateDailies' ) {
1276- // Special handling for exchange rates: ensure at least one of every pair
1277- validationData = takeExchangeRateValidationEntries ( rawData )
1278- } else {
1279- // Otherwise, filter to validation entries
1280- validationData = takeValidationEntries ( rawData )
1281- if ( validationData . length < 5 ) {
1282- validationData = takeEvery ( rawData , 50 )
1283- }
1266+ const fns : ( ( ) => Promise < void > ) [ ] = [ ]
1267+ for ( let i = 0 ; i < queries . length ; i ++ ) {
1268+ const fn = async ( ) => {
1269+ const query = queries [ i ]
1270+ console . log ( `Executing: \`${ query . replace ( / ( \n | \s ) + / g, ' ' ) . slice ( 0 , 80 ) } \`...` )
1271+ const result = await retry ( ( ) => executeQuery ( query ) , 5 )
1272+ if ( ! result . data ) {
1273+ console . log ( result )
1274+ throw new Error ( 'Query failed' )
12841275 }
12851276
1286- const filePath = getFilePathForEntity ( key )
1287- const dir = path . dirname ( filePath )
1277+ const takeAll = [ 'ognDailyStats' ]
1278+ for ( const key of Object . keys ( result . data ) ) {
1279+ let validationData
1280+ const rawData = result . data [ key ]
1281+
1282+ // If there are fewer than 20 total entries, save them all
1283+ if ( rawData . length < 20 || takeAll . includes ( key ) ) {
1284+ validationData = rawData
1285+ } else if ( key === 'exchangeRates' || key === 'exchangeRateDailies' ) {
1286+ // Special handling for exchange rates: ensure at least one of every pair
1287+ validationData = takeExchangeRateValidationEntries ( rawData )
1288+ } else {
1289+ // Otherwise, filter to validation entries
1290+ validationData = takeValidationEntries ( rawData )
1291+ if ( validationData . length < 5 ) {
1292+ validationData = takeEvery ( rawData , 50 )
1293+ }
1294+ }
12881295
1289- // Ensure directory exists
1290- if ( ! fs . existsSync ( dir ) ) {
1291- fs . mkdirSync ( dir , { recursive : true } )
1292- }
1296+ const filePath = getFilePathForEntity ( key )
1297+ const dir = path . dirname ( filePath )
1298+
1299+ // Ensure directory exists
1300+ if ( ! fs . existsSync ( dir ) ) {
1301+ fs . mkdirSync ( dir , { recursive : true } )
1302+ }
12931303
1294- // Write the file
1295- fs . writeFileSync ( filePath , JSON . stringify ( validationData , null , 2 ) )
1296- console . log ( ` ✓ Wrote ${ validationData . length } entries to ${ path . relative ( __dirname + '/..' , filePath ) } ` )
1304+ // Write the file
1305+ fs . writeFileSync ( filePath , JSON . stringify ( validationData , null , 2 ) )
1306+ console . log ( ` ✓ Wrote ${ validationData . length } entries to ${ path . relative ( __dirname + '/..' , filePath ) } ` )
1307+ }
12971308 }
1309+ fns . push ( fn )
12981310 }
12991311
1312+ await runConcurrently ( fns , 10 )
1313+
13001314 console . log ( '\n✓ All validation files generated successfully' )
13011315}
13021316
0 commit comments