Skip to content

feat: add CI output comparison between branches#93

Open
douglance wants to merge 9 commits intomainfrom
feat/output-comparison-ci
Open

feat: add CI output comparison between branches#93
douglance wants to merge 9 commits intomainfrom
feat/output-comparison-ci

Conversation

@douglance
Copy link
Contributor

Summary

  • Add CI workflow that runs all monitors on both target and PR branches
  • Compares outputs and posts diff to PR comments
  • Uses config.ci.json with public RPCs for CI runs
  • No additional GitHub secrets needed (uses built-in GITHUB_TOKEN)

Monitors compared

  • assertion-monitor
  • batch-poster-monitor
  • retryable-monitor

Test change

Includes a test change to alerts.ts to verify the diff works - will show:

- No assertion creation events found
+ No assertion creation events found (TEST CHANGE)

This test change should be reverted before merging.

Run assertion monitor on both target and PR branches, diff the alert
output, and post results to PR comments.

- Uses config.ci.json with public RPCs for CI runs
- Posts GitHub-style diff showing only alert changes
- Uses built-in GITHUB_TOKEN (no additional secrets needed)
Also updated CI to run all three monitors:
- assertion-monitor
- batch-poster-monitor
- retryable-monitor
@douglance douglance force-pushed the feat/output-comparison-ci branch from fa17b7c to e5fe624 Compare January 22, 2026 17:13
@github-actions
Copy link

github-actions bot commented Jan 22, 2026

⚠️ Monitor Output Changes

Slack Message Changes

--- target-slack-normalized.txt	2026-01-23 12:39:47.096465411 +0000
+++ pr-slack-normalized.txt	2026-01-23 12:39:47.100465431 +0000
@@ -0,0 +1,27 @@
+Retryable monitor - Error processing chain [Xai]: Custom network 660279 must have isCustom flag set to true
+Retryable monitor - Error processing chain [RARI Mainnet]: Custom network BLOCK_NUM must have isCustom flag set to true
+Retryable monitor - Error processing chain [XCHAIN]: Custom network 94524 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Sanko]: Custom network 1996 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Superposition]: Custom network 55244 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Mind Network]: Custom network 228 must have isCustom flag set to true
+Retryable monitor - Error processing chain [SX]: Custom network 4162 must have isCustom flag set to true
+Retryable monitor - Error processing chain [ApeChain]: Custom network 33139 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Gravity Alpha]: Custom network 1625 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Edu Chain]: Custom network 41923 must have isCustom flag set to true
+Retryable monitor - Error processing chain [ChainBounty]: Custom network 51828 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Miracle Chain]: Custom network 92278 must have isCustom flag set to true
+Retryable monitor - Error processing chain [BirdLayer]: Custom network 53456 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Plume Mainnet]: Custom network 98866 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Humanity Mainnet]: Custom network BLOCK_NUM must have isCustom flag set to true
+Retryable monitor - Error processing chain [Galactica Mainnet]: Custom network 613419 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Earnm Mainnet]: Custom network 32766 must have isCustom flag set to true
+Retryable monitor - Error processing chain [T-REX]: Custom network 1628 must have isCustom flag set to true
+Retryable monitor - Error processing chain [RCADE]: Custom network 101069 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Molten]: Custom network 360 must have isCustom flag set to true
+Retryable monitor - Error processing chain [MeerChain]: Custom network 98215 must have isCustom flag set to true
+Retryable monitor - Error processing chain [HPP Mainnet]: Custom network 190415 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Syndicate Network]: Custom network 510 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Lit Chain]: Custom network 175200 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Muster]: Custom network 4078 must have isCustom flag set to true
+Retryable monitor - Error processing chain [Edge Mainnet]: Custom network 3343 must have isCustom flag set to true
+Retryable monitor - Error processing chain [JasmyChain]: Custom network 680 must have isCustom flag set to true
Full Output Changes
--- target-normalized.txt	2026-01-23 12:39:47.093465397 +0000
+++ pr-normalized.txt	2026-01-23 12:39:47.096465411 +0000
@@ -8,27 +8,343 @@
 warning package.json: No license field
 warning package.json: No license field
 $ tsc
-Error: Error reading or parsing config file: ENOENT: no such file or directory, open '/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/config.ci.json'
-    at getConfig (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/utils/dist/config.js:47:19)
-    at getMonitorConfig (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/assertion-monitor/dist/index.js:25:42)
-    at main (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/assertion-monitor/dist/index.js:146:58)
-    at Object.<anonymous> (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/assertion-monitor/dist/main.js:4:18)
-    at Module._compile (node:internal/modules/cjs/loader:1364:14)
-    at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
-    at Module.load (node:internal/modules/cjs/loader:1203:32)
-    at Module._load (node:internal/modules/cjs/loader:1019:12)
-    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
-    at node:internal/main/run_main_module:28:49
-error Command failed with exit code 1.
-info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
-error Command failed.
-Exit code: 1
-Command: /opt/hostedtoolcache/node/18.20.8/x64/bin/node
-Arguments: /usr/local/lib/node_modules/yarn/lib/cli.js dev --configPath=../../config.ci.json --enableAlerting
-Directory: /home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/assertion-monitor
-Output:
+Starting assertion monitoring...
 
-info Visit https://yarnpkg.com/en/docs/cli/workspace for documentation about this command.
+Monitoring Xai...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for Xai
+
+Monitoring RARI Mainnet...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for RARI Mainnet
+
+Monitoring XCHAIN...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (50400 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+Generated 2 alerts for XCHAIN
+
+Monitoring Sanko...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for Sanko
+
+Monitoring Superposition...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (86138 blocks)
+No confirmed child block found
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: undefined,
+  childLatestConfirmedBlock: undefined,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: undefined,
+  parentBlockAtConfirmation: undefined
+}
+Generated 3 alerts for Superposition
+
+Monitoring Mind Network...
+Chain type: BoLD rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (53018 blocks)
+Found creation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Base stake for rollup ADDR: BLOCK_NUM wei
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for Mind Network
+
+Monitoring SX...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (50400 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+Generated 2 alerts for SX
+
+Monitoring ApeChain...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for ApeChain
+
+Monitoring Gravity Alpha...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (50400 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+Generated 2 alerts for Gravity Alpha
+
+Monitoring Edu Chain...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for Edu Chain
+
+Monitoring ChainBounty...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (86138 blocks)
+No confirmed child block found
+Built chain state blocks: {
+  childCurrentBlock: BIGINT,
+  childLatestCreatedBlock: undefined,
+  childLatestConfirmedBlock: undefined,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: undefined,
+  parentBlockAtConfirmation: undefined
+}
+Generated 3 alerts for ChainBounty
+
+Monitoring Miracle Chain...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (86138 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+No confirmed child block found
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: undefined,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: undefined
+}
+Generated 2 alerts for Miracle Chain
+
+Monitoring BirdLayer...
+Chain type: BoLD rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (45968 blocks)
+No confirmed child block found
+Base stake for rollup 0xd6e33A7898aE63Cb3D56b4BBLOCK_NUME953BD9D5: BLOCK_NUM wei
+Built chain state blocks: {
+  childCurrentBlock: BIGINT,
+  childLatestCreatedBlock: undefined,
+  childLatestConfirmedBlock: undefined,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: undefined,
+  parentBlockAtConfirmation: undefined
+}
+Generated 2 alerts for BirdLayer
+
+Monitoring Plume Mainnet...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (50400 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+Generated 2 alerts for Plume Mainnet
+
+Monitoring Humanity Mainnet...
+Chain type: BoLD rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (50400 blocks)
+Found creation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Base stake for rollup ADDR: 0 wei
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for Humanity Mainnet
+
+Monitoring Galactica Mainnet...
+Chain type: BoLD rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (50400 blocks)
+Found creation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BIGINT
+Last processed child chain block: 97399
+Base stake for rollup ADDR: 0 wei
+Built chain state blocks: {
+  childCurrentBlock: BIGINT,
+  childLatestCreatedBlock: BIGINT,
+  childLatestConfirmedBlock: BIGINT,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for Galactica Mainnet
+
+Monitoring Earnm Mainnet...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for Earnm Mainnet
+
+Monitoring T-REX...
+Chain type: BoLD rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (50400 blocks)
+Found creation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Base stake for rollup ADDR: BLOCK_NUM wei
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for T-REX
+
+Monitoring RCADE...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+Found node creation event in block range BLOCK_NUM to BLOCK_NUM
+Found node confirmation event in block range BLOCK_NUM to BLOCK_NUM
+Found confirmed child block: BLOCK_NUMn
+Last processed child chain block: BLOCK_NUM
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: BLOCK_NUMn,
+  childLatestConfirmedBlock: BLOCK_NUMn,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: BLOCK_NUMn,
+  parentBlockAtConfirmation: BLOCK_NUMn
+}
+No issues found for RCADE
+
+Monitoring Molten...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (91636 blocks)
+No confirmed child block found
+Built chain state blocks: {
+  childCurrentBlock: BLOCK_NUMn,
+  childLatestCreatedBlock: undefined,
+  childLatestConfirmedBlock: undefined,
+  parentCurrentBlock: BLOCK_NUMn,
+  parentBlockAtCreation: undefined,
+  parentBlockAtConfirmation: undefined
+}
+Generated 3 alerts for Molten
+
+Monitoring MeerChain...
+Chain type: Classic rollup
+Scanning blocks BLOCK_NUM to BLOCK_NUM (86138 blocks)
 
 === BATCH POSTER MONITOR ===
 yarn workspace v1.22.22
@@ -40,26 +356,383 @@
 warning package.json: No license field
 warning package.json: No license field
 $ tsc
-Error: Error reading or parsing config file: ENOENT: no such file or directory, open '/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/config.ci.json'
-    at getConfig (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/utils/dist/config.js:47:19)
-    at main (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/batch-poster-monitor/dist/index.js:426:42)
-    at Object.<anonymous> (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/batch-poster-monitor/dist/index.js:507:5)
-    at Module._compile (node:internal/modules/cjs/loader:1364:14)
-    at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
-    at Module.load (node:internal/modules/cjs/loader:1203:32)
-    at Module._load (node:internal/modules/cjs/loader:1019:12)
-    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
-    at node:internal/main/run_main_module:28:49
-error Command failed with exit code 1.
-info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
-error Command failed.
-Exit code: 1
-Command: /opt/hostedtoolcache/node/18.20.8/x64/bin/node
-Arguments: /usr/local/lib/node_modules/yarn/lib/cli.js dev --configPath=../../config.ci.json --enableAlerting
-Directory: /home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/batch-poster-monitor
-Output:
+>>>>>> Processing chains:  [
+  { name: 'Xai', chainID: 660279, rpc: 'https://xai-chain.net/rpc' },
+  {
+    name: 'RARI Mainnet',
+    chainID: BLOCK_NUM,
+    rpc: 'https://mainnet.rpc.rarichain.org/http'
+  },
+  { name: 'XCHAIN', chainID: 94524, rpc: 'https://xchain-rpc.idex.io' },
+  { name: 'Sanko', chainID: 1996, rpc: 'https://mainnet.sanko.xyz' },
+  {
+    name: 'Superposition',
+    chainID: 55244,
+    rpc: 'https://rpc.superposition.so'
+  },
+  {
+    name: 'Mind Network',
+    chainID: 228,
+    rpc: 'https://rpc-mainnet.mindnetwork.xyz'
+  },
+  {
+    name: 'SX',
+    chainID: 4162,
+    rpc: 'https://rpc-rollup.sx.technology'
+  },
+  {
+    name: 'ApeChain',
+    chainID: 33139,
+    rpc: 'https://apechain.calderachain.xyz/http'
+  },
+  {
+    name: 'Gravity Alpha',
+    chainID: 1625,
+    rpc: 'https://rpc.gravity.xyz'
+  },
+  {
+    name: 'Edu Chain',
+    chainID: 41923,
+    rpc: 'https://rpc.edu-chain.raas.gelato.cloud'
+  },
+  {
+    name: 'ChainBounty',
+    chainID: 51828,
+    rpc: 'https://rpc.chainbounty.io'
+  },
+  {
+    name: 'Miracle Chain',
+    chainID: 92278,
+    rpc: 'https://rpc-miracle-chain-dqfxgxhidy.t.conduit.xyz'
+  },
+  {
+    name: 'BirdLayer',
+    chainID: 53456,
+    rpc: 'https://rpc.birdlayer.xyz'
+  },
+  {
+    name: 'Plume Mainnet',
+    chainID: 98866,
+    rpc: 'https://rpc.plume.org'
+  },
+  {
+    name: 'Humanity Mainnet',
+    chainID: BLOCK_NUM,
+    rpc: 'https://humanity-mainnet.g.alchemy.com/public'
+  },
+  {
+    name: 'Galactica Mainnet',
+    chainID: 613419,
+    rpc: 'https://galactica-mainnet.g.alchemy.com/public'
+  },
+  {
+    name: 'Earnm Mainnet',
+    chainID: 32766,
+    rpc: 'https://earnm-mainnet.g.alchemy.com/public'
+  },
+  { name: 'T-REX', chainID: 1628, rpc: 'https://rpc.trex.xyz' },
+  {
+    name: 'RCADE',
+    chainID: 101069,
+    rpc: 'https://rpc.rcade.network/http'
+  },
+  {
+    name: 'Molten',
+    chainID: 360,
+    rpc: 'https://molten.calderachain.xyz/http'
+  },
+  { name: 'MeerChain', chainID: 98215, rpc: 'https://rpc.tiktrix.gg' },
+  {
+    name: 'HPP Mainnet',
+    chainID: 190415,
+    rpc: 'https://mainnet.hpp.io'
+  },
+  {
+    name: 'Syndicate Network',
+    chainID: 510,
+    rpc: 'https://synd-mainnet.g.alchemy.com/public'
+  },
+  {
+    name: 'Lit Chain',
+    chainID: 175200,
+    rpc: 'https://lit-chain-rpc.litprotocol.com'
+  },
+  {
+    name: 'Muster',
+    chainID: 4078,
+    rpc: 'https://muster.alt.technology'
+  },
+  {
+    name: 'Edge Mainnet',
+    chainID: 3343,
+    rpc: 'https://edge-mainnet.g.alchemy.com/public'
+  },
+  {
+    name: 'JasmyChain',
+    chainID: 680,
+    rpc: 'https://jasmychain-mainnet.alt.technology'
+  }
+]
+>>>>> Processing chain:  Xai
+The current batch poster balance is 2.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 23022 days.
+Chain [Xai] is using AnyTrust DACert as expected.
+**********
+Batch poster summary of [Xai]
+Latest block number on [Xai] is BLOCK_NUM.
+Latest [Xai] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 3 minutes, 59 seconds ago.
+Batch poster backlog is 306 blocks.
+At least 1 batch is expected to be posted every 12.2 hours.
+**********
+
+>>>>> Processing chain:  RARI Mainnet
+The current batch poster balance is 0.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 27 days.
+Chain [RARI Mainnet]: Error checking if AnyTrust reverted to posting calldata on-chain: Encoded function signature "0xBLOCK_NUM" not found on ABI.
+Make sure you are using the correct ABI and that the function exists on it.
+You can look up the signature here: https://openchain.xyz/signatures?query=0xBLOCK_NUM.
+
+Docs: https://viem.sh/docs/contract/decodeFunctionData.html
+Version: viem@1.20.0
+**********
+Batch poster summary of [RARI Mainnet]
+Latest block number on [RARI Mainnet] is BLOCK_NUM.
+Latest [RARI Mainnet] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 2 minutes, 34 seconds ago.
+Batch poster backlog is 11 blocks.
+At least 1 batch is expected to be posted every 12.2 hours.
+**********
+
+>>>>> Processing chain:  XCHAIN
+The current batch poster balance is 1.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 135857 days.
+[getLogsWithBatching] Now batching requests: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"0xeb61c3FABLOCK_NUMcf76412eFb9D0Ce7D8c0290d","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0x11de424","toBlock":"0x172c02f"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+Warning: Failed to check AnyTrust status for chain [XCHAIN]: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"0xeb61c3FABLOCK_NUMcf76412eFb9D0Ce7D8c0290d","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0xBLOCK_NUM","toBlock":"0x172c02f"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+**********
+Batch poster summary of [XCHAIN]
+Latest block number on [XCHAIN] is BLOCK_NUM.
+Latest [XCHAIN] block included on [Parent chain id: 1, block-number BLOCK_NUM] is BLOCK_NUM => 4 hours, 22 minutes, 1 seconds ago.
+Batch poster backlog is 320 blocks.
+At least 1 batch is expected to be posted every 12.2 hours.
+**********
+
+>>>>> Processing chain:  Sanko
+The current batch poster balance is 0.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 74402 days.
+Chain [Sanko] is using AnyTrust DACert as expected.
+**********
+Batch poster summary of [Sanko]
+Latest block number on [Sanko] is BLOCK_NUM.
+Latest [Sanko] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 2 hours, 42 minutes, 49 seconds ago.
+Batch poster backlog is 221 blocks.
+At least 1 batch is expected to be posted every 15.6 hours.
+**********
+
+>>>>> Processing chain:  Superposition
+The current batch poster balance is 0.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 959 days.
+Chain [Superposition] is using AnyTrust DACert as expected.
+**********
+Batch poster summary of [Superposition]
+Latest block number on [Superposition] is BLOCK_NUM.
+Latest [Superposition] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 10 minutes, 4 seconds ago.
+Batch poster backlog is 63 blocks.
+At least 1 batch is expected to be posted every 12.2 hours.
+**********
+
+>>>>> Processing chain:  Mind Network
+The current batch poster balance is 0.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 1640 days.
+Chain [Mind Network]: Error checking if AnyTrust reverted to posting calldata on-chain: Encoded function signature "0x69cacded" not found on ABI.
+Make sure you are using the correct ABI and that the function exists on it.
+You can look up the signature here: https://openchain.xyz/signatures?query=0x69cacded.
+
+Docs: https://viem.sh/docs/contract/decodeFunctionData.html
+Version: viem@1.20.0
+**********
+Batch poster summary of [Mind Network]
+Latest block number on [Mind Network] is BLOCK_NUM.
+Latest [Mind Network] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 36 minutes, 8 seconds ago.
+Batch poster backlog is 2311 blocks.
+At least 1 batch is expected to be posted every 156 hours.
+**********
 
-info Visit https://yarnpkg.com/en/docs/cli/workspace for documentation about this command.
+>>>>> Processing chain:  SX
+The current batch poster balance is 2.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 109164 days.
+[getLogsWithBatching] Now batching requests: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0x11de424","toBlock":"0x172c030"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+Warning: Failed to check AnyTrust status for chain [SX]: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0xBLOCK_NUM","toBlock":"0x172c030"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+**********
+Batch poster summary of [SX]
+Latest block number on [SX] is BLOCK_NUM.
+Latest [SX] block included on [Parent chain id: 1, block-number BLOCK_NUM] is BLOCK_NUM => 5 hours, 28 minutes, 30 seconds ago.
+Batch poster backlog is 2677 blocks.
+At least 1 batch is expected to be posted every 62.4 hours.
+**********
+
+>>>>> Processing chain:  ApeChain
+The current batch poster balance is 0.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 2853 days.
+**********
+Batch poster summary of [ApeChain]
+Latest block number on [ApeChain] is BLOCK_NUM.
+Latest [ApeChain] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 56 minutes, 17 seconds ago.
+Batch poster backlog is 1179 blocks.
+At least 1 batch is expected to be posted every 46.8 hours.
+**********
+
+>>>>> Processing chain:  Gravity Alpha
+The current batch poster balance is 1.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 15278 days.
+[getLogsWithBatching] Now batching requests: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"0xf993AFBLOCK_NUMA0EDaB88B6A5ba3708Bd58239","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0x11de424","toBlock":"0x172c031"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+Warning: Failed to check AnyTrust status for chain [Gravity Alpha]: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"0xf993AFBLOCK_NUMA0EDaB88B6A5ba3708Bd58239","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0xBLOCK_NUM","toBlock":"0x172c031"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+**********
+Batch poster summary of [Gravity Alpha]
+Latest block number on [Gravity Alpha] is BLOCK_NUM.
+Latest [Gravity Alpha] block included on [Parent chain id: 1, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 3 minutes, 52 seconds ago.
+Batch poster backlog is 227 blocks.
+At least 1 batch is expected to be posted every 7488 hours.
+**********
+
+>>>>> Processing chain:  Edu Chain
+The current batch poster balance is 1.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 3598 days.
+Chain [Edu Chain] is using AnyTrust DACert as expected.
+**********
+Batch poster summary of [Edu Chain]
+Latest block number on [Edu Chain] is BLOCK_NUM.
+Latest [Edu Chain] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 9 minutes, 42 seconds ago.
+Batch poster backlog is 684 blocks.
+At least 1 batch is expected to be posted every 62.4 hours.
+**********
+
+>>>>> Processing chain:  ChainBounty
+Chain [ChainBounty]: Skipping - uses ignored function selector 0x8d80ff0a
+>>>>> Processing chain:  Miracle Chain
+The current batch poster balance is 0.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 1866 days.
+Chain [Miracle Chain] is using AnyTrust DACert as expected.
+**********
+Batch poster summary of [Miracle Chain]
+Latest block number on [Miracle Chain] is BLOCK_NUM.
+Latest [Miracle Chain] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 5 minutes, 26 seconds ago.
+Batch poster backlog is 40 blocks.
+At least 1 batch is expected to be posted every 12.2 hours.
+**********
+
+>>>>> Processing chain:  BirdLayer
+**********
+Batch poster summary of [BirdLayer]
+No user activity in the last 24 hours, and hence no batch has been posted.
+
+>>>>> Processing chain:  Plume Mainnet
+The current batch poster balance is 1.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 2767 days.
+[getLogsWithBatching] Now batching requests: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0x11de424","toBlock":"0x172c03b"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+Warning: Failed to check AnyTrust status for chain [Plume Mainnet]: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0x172992d","toBlock":"0x172c03b"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+**********
+Batch poster summary of [Plume Mainnet]
+Latest block number on [Plume Mainnet] is BLOCK_NUM.
+Latest [Plume Mainnet] block included on [Parent chain id: 1, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 6 minutes, 46 seconds ago.
+Batch poster backlog is 685 blocks.
+At least 1 batch is expected to be posted every 12.2 hours.
+**********
+
+>>>>> Processing chain:  Humanity Mainnet
+The current batch poster balance is 1.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 2762 days.
+[getLogsWithBatching] Now batching requests: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0x11de424","toBlock":"0x172c041"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+Warning: Failed to check AnyTrust status for chain [Humanity Mainnet]: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0xBLOCK_NUM","toBlock":"0x172c041"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+**********
+Batch poster summary of [Humanity Mainnet]
+Latest block number on [Humanity Mainnet] is BLOCK_NUM.
+Latest [Humanity Mainnet] block included on [Parent chain id: 1, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 42 minutes, 10 seconds ago.
+Batch poster backlog is 3357 blocks.
+At least 1 batch is expected to be posted every 62.4 hours.
+**********
+
+>>>>> Processing chain:  Galactica Mainnet
+The current batch poster balance is 1.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 4721 days.
+[getLogsWithBatching] Now batching requests: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0x11de424","toBlock":"0x172c044"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+Warning: Failed to check AnyTrust status for chain [Galactica Mainnet]: An internal error was received.
+
+URL: https://eth.llamarpc.com
+Request body: {"method":"eth_getLogs","params":[{"address":"ADDR","topics":["ADDRabf23f999c93c4533d752464"],"fromBlock":"0xBLOCK_NUM","toBlock":"0x172c044"}]}
+
+Details: eth_getLogs range is too large, max is 1k blocks
+Version: viem@1.20.0
+**********
+Batch poster summary of [Galactica Mainnet]
+Latest block number on [Galactica Mainnet] is 97411.
+Latest [Galactica Mainnet] block included on [Parent chain id: 1, block-number BLOCK_NUM] is 97400 => 0 hours, 54 minutes, 12 seconds ago.
+Batch poster backlog is 11 blocks.
+At least 1 batch is expected to be posted every 62.4 hours.
+**********
+
+>>>>> Processing chain:  Earnm Mainnet
+The current batch poster balance is 1.BLOCK_NUM ETH, and balance spent in 24 hours is approx 0.BLOCK_NUM ETH. The current balance can last approximately 29183 days.
+Chain [Earnm Mainnet] is using AnyTrust DACert as expected.
+**********
+Batch poster summary of [Earnm Mainnet]
+Latest block number on [Earnm Mainnet] is BLOCK_NUM.
+Latest [Earnm Mainnet] block included on [Parent chain id: 42161, block-number BLOCK_NUM] is BLOCK_NUM => 0 hours, 40 minutes, 55 seconds ago.
+Batch poster backlog is 297 blocks.
+At least 1 batch is expected to be posted every 62.4 hours.
+**********
+
+>>>>> Processing chain:  T-REX
 
 === RETRYABLE MONITOR ===
 yarn workspace v1.22.22
@@ -72,28 +745,277 @@
 warning package.json: No license field
 $ tsc
 Log file created: logfile.log
-/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/utils/dist/config.js:47
-            throw new Error(`Error reading or parsing config file: ${error.message}`);
-            ^
-
-Error: Error reading or parsing config file: ENOENT: no such file or directory, open '/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/config.ci.json'
-    at getConfig (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/utils/dist/config.js:47:19)
-    at Object.<anonymous> (/home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/retryable-monitor/dist/index.js:90:38)
-    at Module._compile (node:internal/modules/cjs/loader:1364:14)
-    at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
-    at Module.load (node:internal/modules/cjs/loader:1203:32)
-    at Module._load (node:internal/modules/cjs/loader:1019:12)
-    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:128:12)
-    at node:internal/main/run_main_module:28:49
-
-Node.js v18.20.8
-error Command failed with exit code 1.
-info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
-error Command failed.
-Exit code: 1
-Command: /opt/hostedtoolcache/node/18.20.8/x64/bin/node
-Arguments: /usr/local/lib/node_modules/yarn/lib/cli.js dev --configPath=../../config.ci.json --enableAlerting
-Directory: /home/runner/work/arbitrum-monitoring/arbitrum-monitoring/target-branch/packages/retryable-monitor
-Output:
-
-info Visit https://yarnpkg.com/en/docs/cli/workspace for documentation about this command.
+>>>>>> Processing child chains:  [
+  {
+    name: 'Xai',
+    chainID: 660279,
+    orbitRpcUrl: 'https://xai-chain.net/rpc',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'RARI Mainnet',
+    chainID: BLOCK_NUM,
+    orbitRpcUrl: 'https://mainnet.rpc.rarichain.org/http',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'XCHAIN',
+    chainID: 94524,
+    orbitRpcUrl: 'https://xchain-rpc.idex.io',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'Sanko',
+    chainID: 1996,
+    orbitRpcUrl: 'https://mainnet.sanko.xyz',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Superposition',
+    chainID: 55244,
+    orbitRpcUrl: 'https://rpc.superposition.so',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Mind Network',
+    chainID: 228,
+    orbitRpcUrl: 'https://rpc-mainnet.mindnetwork.xyz',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'SX',
+    chainID: 4162,
+    orbitRpcUrl: 'https://rpc-rollup.sx.technology',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'ApeChain',
+    chainID: 33139,
+    orbitRpcUrl: 'https://apechain.calderachain.xyz/http',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Gravity Alpha',
+    chainID: 1625,
+    orbitRpcUrl: 'https://rpc.gravity.xyz',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'Edu Chain',
+    chainID: 41923,
+    orbitRpcUrl: 'https://rpc.edu-chain.raas.gelato.cloud',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'ChainBounty',
+    chainID: 51828,
+    orbitRpcUrl: 'https://rpc.chainbounty.io',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Miracle Chain',
+    chainID: 92278,
+    orbitRpcUrl: 'https://rpc-miracle-chain-dqfxgxhidy.t.conduit.xyz',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'BirdLayer',
+    chainID: 53456,
+    orbitRpcUrl: 'https://rpc.birdlayer.xyz',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Plume Mainnet',
+    chainID: 98866,
+    orbitRpcUrl: 'https://rpc.plume.org',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'Humanity Mainnet',
+    chainID: BLOCK_NUM,
+    orbitRpcUrl: 'https://humanity-mainnet.g.alchemy.com/public',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'Galactica Mainnet',
+    chainID: 613419,
+    orbitRpcUrl: 'https://galactica-mainnet.g.alchemy.com/public',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'Earnm Mainnet',
+    chainID: 32766,
+    orbitRpcUrl: 'https://earnm-mainnet.g.alchemy.com/public',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'T-REX',
+    chainID: 1628,
+    orbitRpcUrl: 'https://rpc.trex.xyz',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'RCADE',
+    chainID: 101069,
+    orbitRpcUrl: 'https://rpc.rcade.network/http',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Molten',
+    chainID: 360,
+    orbitRpcUrl: 'https://molten.calderachain.xyz/http',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'MeerChain',
+    chainID: 98215,
+    orbitRpcUrl: 'https://rpc.tiktrix.gg',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'HPP Mainnet',
+    chainID: 190415,
+    orbitRpcUrl: 'https://mainnet.hpp.io',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'Syndicate Network',
+    chainID: 510,
+    orbitRpcUrl: 'https://synd-mainnet.g.alchemy.com/public',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  },
+  {
+    name: 'Lit Chain',
+    chainID: 175200,
+    orbitRpcUrl: 'https://lit-chain-rpc.litprotocol.com',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Muster',
+    chainID: 4078,
+    orbitRpcUrl: 'https://muster.alt.technology',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'Edge Mainnet',
+    chainID: 3343,
+    orbitRpcUrl: 'https://edge-mainnet.g.alchemy.com/public',
+    parentRpcUrl: 'https://arb1.arbitrum.io/rpc'
+  },
+  {
+    name: 'JasmyChain',
+    chainID: 680,
+    orbitRpcUrl: 'https://jasmychain-mainnet.alt.technology',
+    parentRpcUrl: 'https://eth.llamarpc.com'
+  }
+]
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Xai]: Custom network 660279 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Xai]: Custom network 660279 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [RARI Mainnet]: Custom network BLOCK_NUM must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [RARI Mainnet]: Custom network BLOCK_NUM must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [XCHAIN]: Custom network 94524 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [XCHAIN]: Custom network 94524 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Sanko]: Custom network 1996 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Sanko]: Custom network 1996 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Superposition]: Custom network 55244 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Superposition]: Custom network 55244 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Mind Network]: Custom network 228 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Mind Network]: Custom network 228 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [SX]: Custom network 4162 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [SX]: Custom network 4162 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [ApeChain]: Custom network 33139 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [ApeChain]: Custom network 33139 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Gravity Alpha]: Custom network 1625 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Gravity Alpha]: Custom network 1625 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Edu Chain]: Custom network 41923 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Edu Chain]: Custom network 41923 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [ChainBounty]: Custom network 51828 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [ChainBounty]: Custom network 51828 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Miracle Chain]: Custom network 92278 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Miracle Chain]: Custom network 92278 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [BirdLayer]: Custom network 53456 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [BirdLayer]: Custom network 53456 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Plume Mainnet]: Custom network 98866 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Plume Mainnet]: Custom network 98866 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Humanity Mainnet]: Custom network BLOCK_NUM must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Humanity Mainnet]: Custom network BLOCK_NUM must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Galactica Mainnet]: Custom network 613419 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Galactica Mainnet]: Custom network 613419 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Earnm Mainnet]: Custom network 32766 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Earnm Mainnet]: Custom network 32766 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [T-REX]: Custom network 1628 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [T-REX]: Custom network 1628 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [RCADE]: Custom network 101069 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [RCADE]: Custom network 101069 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Molten]: Custom network 360 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Molten]: Custom network 360 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [MeerChain]: Custom network 98215 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [MeerChain]: Custom network 98215 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [HPP Mainnet]: Custom network 190415 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [HPP Mainnet]: Custom network 190415 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Syndicate Network]: Custom network 510 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Syndicate Network]: Custom network 510 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Lit Chain]: Custom network 175200 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Lit Chain]: Custom network 175200 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Muster]: Custom network 4078 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Muster]: Custom network 4078 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [Edge Mainnet]: Custom network 3343 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [Edge Mainnet]: Custom network 3343 must have isCustom flag set to true
+[SLACK_MESSAGE_START]
+Retryable monitor - Error processing chain [JasmyChain]: Custom network 680 must have isCustom flag set to true
+[SLACK_MESSAGE_END]
+Retryable monitor - Error processing chain [JasmyChain]: Custom network 680 must have isCustom flag set to true
+Done in 5.19s.
+Done in 5.41s.

Filter monitor output to capture only alert summaries instead of
full stdout. This removes noise from yarn build output, debug logs,
and dynamic block numbers.

Changes:
- Use grep to extract assertion monitor summary lines
- Use sed to extract batch poster summary section
- Use grep to extract retryable monitor key lines
- Normalize block numbers and addresses before comparison
- Add [SLACK_MESSAGE_START/END] markers in createSlackPoster for CI mode
- Capture full monitor output instead of sed filtering
- Extract and diff Slack messages separately from full output
- Set NODE_ENV=CI and --enableAlerting when running monitors
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant