From f4b2a552b3af5c39c607bcf9c1da1da412308140 Mon Sep 17 00:00:00 2001 From: Ayash-Bera Date: Sat, 20 Dec 2025 13:42:48 +0530 Subject: [PATCH 1/3] feat: migrate to npm package and add explorerUrl support Migration Updates: - Replace git submodule with l1beat-l1-registry@^1.2.0 npm package - Update registryService to use registry.getDataPath() New Features: - Add explorerUrl field parsing from registry (registryService.js:98) - Add explorerUrl database sync (registryService.js:225, 273) - Add nativeToken support alongside assets field Integration: - Parse nativeToken from registry (symbol, name, decimals, logoUri) - Sync both assets and nativeToken to database - explorerUrl field already exists in Chain model (chain.js:15) Related: L1Beat/l1-registry@v1.2.0 --- package.json | 2 +- src/services/registryService.js | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 648a081..1416486 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "express-rate-limit": "^7.5.0", "express-validator": "^7.2.1", "helmet": "^8.0.0", - "l1beat-l1-registry": "^1.1.0", + "l1beat-l1-registry": "^1.2.0", "mongoose": "^8.8.1", "node-cron": "^3.0.3", "remark": "^15.0.1", diff --git a/src/services/registryService.js b/src/services/registryService.js index ffca30c..3eb3a77 100644 --- a/src/services/registryService.js +++ b/src/services/registryService.js @@ -97,6 +97,8 @@ class RegistryService { ? chainData.rpcUrls[0] : undefined, + explorerUrl: chainData.explorerUrl || undefined, + nativeToken: { symbol: chainData.nativeToken?.symbol, name: chainData.nativeToken?.name, @@ -185,9 +187,10 @@ class RegistryService { rpcUrls: chainData.rpcUrls, rpcUrl: chainData.rpcUrl, + explorerUrl: chainData.explorerUrl, + nativeToken: chainData.nativeToken, registryMetadata: chainData.registryMetadata, - } }, { upsert: true, From 56fa2ac022bb0370a392babfe7470fef83d7ffcd Mon Sep 17 00:00:00 2001 From: Ayash-Bera Date: Sat, 20 Dec 2025 13:53:57 +0530 Subject: [PATCH 2/3] chore: update package-lock.json for l1beat-l1-registry@1.2.0 --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd12d06..c266ed9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,7 @@ "express-rate-limit": "^7.5.0", "express-validator": "^7.2.1", "helmet": "^8.0.0", - "l1beat-l1-registry": "^1.1.0", + "l1beat-l1-registry": "^1.2.0", "mongoose": "^8.8.1", "node-cron": "^3.0.3", "remark": "^15.0.1", @@ -4549,9 +4549,9 @@ "license": "MIT" }, "node_modules/l1beat-l1-registry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/l1beat-l1-registry/-/l1beat-l1-registry-1.1.0.tgz", - "integrity": "sha512-RRaOahmRwyq8jMqk/lTJB+aF00jrilBqVrrOnm3C+cEmVGuSatshuPtBInvzyP7Vj2klp71DhDeq4kAme1+Nlw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/l1beat-l1-registry/-/l1beat-l1-registry-1.2.0.tgz", + "integrity": "sha512-R6ggmR9NvwqzmyOEo8mG+0VdZHiAeqOoRa0edpqFh5qj9eXMT/OSIZIWAFSOqqO0sT9K7n4u39xZoOuJ9pofSA==", "license": "MIT" }, "node_modules/leven": { From 0323dfa4ecb0191200ae7a6e1289779eaef5fea4 Mon Sep 17 00:00:00 2001 From: Ayash-Bera Date: Sat, 20 Dec 2025 14:07:56 +0530 Subject: [PATCH 3/3] fix: resolve syntax error and ensure tps field in chain responses - Fixed missing closing brace in registryService operation - Added to initialize tps, cumulativeTxCount, and validators for new chains - Modified chainService aggregation to ensure tps and cumulativeTxCount are always present in API responses --- src/services/chainService.js | 6 +++++- src/services/registryService.js | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/services/chainService.js b/src/services/chainService.js index 99e97d5..e74845b 100644 --- a/src/services/chainService.js +++ b/src/services/chainService.js @@ -41,7 +41,11 @@ class ChainService { $addFields: { validatorCount: { $size: { $ifNull: ["$validators", []] } }, // Ensure chainId is always set (fallback to blockchainId for legacy data) - chainId: { $ifNull: ["$chainId", "$blockchainId"] } + chainId: { $ifNull: ["$chainId", "$blockchainId"] }, + // Ensure tps is always present + tps: { $ifNull: ["$tps", null] }, + // Ensure cumulativeTxCount is always present + cumulativeTxCount: { $ifNull: ["$cumulativeTxCount", null] } } }, { diff --git a/src/services/registryService.js b/src/services/registryService.js index 3eb3a77..27119cb 100644 --- a/src/services/registryService.js +++ b/src/services/registryService.js @@ -191,6 +191,12 @@ class RegistryService { nativeToken: chainData.nativeToken, registryMetadata: chainData.registryMetadata, + }, + $setOnInsert: { + tps: null, + cumulativeTxCount: null, + validators: [] + } }, { upsert: true,