Skip to content

Commit acbd667

Browse files
committed
update postdeploy
1 parent 939381a commit acbd667

3 files changed

Lines changed: 61 additions & 47 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"process:hyperevm": "sqd process:hyperevm",
2828
"process:test": "sqd process:test",
2929
"process": "sqd process",
30-
"generate:validations": "ts-node --require tsconfig-paths/register scripts/generate-validations.ts",
30+
"generate:validations": "ts-node --require ./scripts/register-js-ts.js --require tsconfig-paths/register scripts/generate-validations.ts",
3131
"log:processing-times": "ts-node --require tsconfig-paths/register scripts/check-processing-times.ts",
3232
"postdeploy": "sh -c 'pnpm run log:processing-times $1 && pnpm run generate:validations $1 $2' --",
3333
"lint": "eslint \"src/**/*.ts\"",

processing-times.log

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
Processing Times
22
==============================
3-
Version: v151
4-
Date: 2026-05-06T20:05:42.986Z
3+
Version: v152
4+
Date: 2026-05-15T00:51:32.161Z
55
==============================
6-
arbitrum: 163.19 minutes
7-
base: 366.49 minutes
8-
hyperevm: 1.05 minutes
9-
mainnet: 1400.86 minutes
10-
oeth: 46.49 minutes
11-
oethb: 127.09 minutes
12-
ogv: 48.61 minutes
13-
os: 32.96 minutes
14-
ousd: 53.24 minutes
15-
sonic: 98.72 minutes
6+
arbitrum: 5.39 minutes
7+
base: 135.17 minutes
8+
hyperevm: 2.97 minutes
9+
mainnet: 112.76 minutes
10+
oeth: 11.52 minutes
11+
oethb: 15.47 minutes
12+
ogv: 40.91 minutes
13+
os: 29.61 minutes
14+
ousd: 30.61 minutes
15+
sonic: 77.74 minutes

scripts/generate-validations.ts

Lines changed: 48 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)