Skip to content

Commit 9feaff7

Browse files
committed
enable discord notifications into test channel
1 parent 2fcaf92 commit 9feaff7

File tree

7 files changed

+31
-28
lines changed

7 files changed

+31
-28
lines changed

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ Use the admin UI (`../alert-config-admin`) or insert directly into the `alert_ru
126126
- `addresses` — contract addresses to watch (NULL = any)
127127
- `topic0s` — event signatures to match (NULL = any)
128128
- `sighashes` — function selectors for traces (NULL = any)
129-
- `data_filters` — optional JSONB filter on decoded data
129+
- `data_filters` — optional JSONB filter on decoded data (notification-only — all data is always persisted regardless of filters)
130130
- `topic` — Discord channel (OETH, OUSD, ARM, etc.)
131131
- `severity` — low, medium, high, critical, broken, highlight
132132

squid.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ deploy:
2222
- RPC_SONIC_ENV
2323
- ALERT_CONFIG_DB_URL
2424
- RAILWAY_DATABASE_URL
25+
- DISCORD_WEBHOOK_URL_TEST
2526
- DISCORD_WEBHOOK_URL_OGN
2627
- DISCORD_WEBHOOK_URL_OGN_ALERTS
2728
- DISCORD_WEBHOOK_URL_OGN_BUYBACKS

src/alert-config/migration.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ CREATE TABLE alert_rule (
159159
suicide_refund_address TEXT[] CHECK (array_all_match(suicide_refund_address, 'address')),
160160
trace_error BOOLEAN, -- true = only failed traces, NULL = any
161161

162-
-- Conditions on decoded data — evaluated after matching.
162+
-- Conditions on decoded data — controls NOTIFICATIONS ONLY.
163+
-- All on-chain data is always persisted regardless of these filters.
163164
-- Supports AND/OR trees with comparison operators.
164165
data_filters JSONB CHECK (is_valid_filter(data_filters)),
165166

src/main-base.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ const start = async () => {
3232
chainId: base.id,
3333
processors: [configAlert, persistenceProcessor],
3434
stateSchema: 'base',
35-
// postValidation: async (ctx) => {
36-
// await processDiscordQueue()
37-
// await processOncallQueue()
38-
// await processLokiQueue()
39-
// },
35+
postValidation: async (ctx) => {
36+
await processDiscordQueue()
37+
// await processOncallQueue()
38+
// await processLokiQueue()
39+
},
4040
fields: DEFAULT_FIELDS,
4141
}).catch((err) => {
4242
throw err

src/main-sonic.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ const start = async () => {
3232
chainId: sonic.id,
3333
processors: [configAlert, persistenceProcessor],
3434
stateSchema: 'sonic',
35-
// postValidation: async (ctx) => {
36-
// await processDiscordQueue()
37-
// await processOncallQueue()
38-
// await processLokiQueue()
39-
// },
35+
postValidation: async (ctx) => {
36+
await processDiscordQueue()
37+
// await processOncallQueue()
38+
// await processLokiQueue()
39+
},
4040
fields: DEFAULT_FIELDS,
4141
}).catch((err) => {
4242
throw err

src/main.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ const start = async () => {
3939
chainId: mainnet.id,
4040
processors: [...customProcessors, configAlert, persistenceProcessor],
4141
stateSchema: 'mainnet',
42-
// postValidation: async (ctx) => {
43-
// await processDiscordQueue()
44-
// await processOncallQueue()
45-
// await processLokiQueue()
46-
// },
42+
postValidation: async (ctx) => {
43+
await processDiscordQueue()
44+
// await processOncallQueue()
45+
// await processLokiQueue()
46+
},
4747
fields: DEFAULT_FIELDS,
4848
}).catch((err) => {
4949
throw err

src/notify/discord.ts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@ import { sortBy } from 'lodash'
33

44
import { Severity, Topic, severityEmojis, topicThumbnails } from './const'
55

6+
const testUrl = process.env['DISCORD_WEBHOOK_URL_TEST']
67
const webhookUrls: Record<Topic, string> = {
7-
Governance: process.env['DISCORD_WEBHOOK_URL_GOVERNANCE'] ?? '',
8-
OGN: process.env['DISCORD_WEBHOOK_URL_OGN'] ?? '',
9-
'OGN Alerts': process.env['DISCORD_WEBHOOK_URL_OGN_ALERTS'] ?? '',
10-
'OGN Buybacks': process.env['DISCORD_WEBHOOK_URL_OGN_BUYBACKS'] ?? '',
11-
OETH: process.env['DISCORD_WEBHOOK_URL_OETH'] ?? '',
12-
superOETHb: process.env['DISCORD_WEBHOOK_URL_SUPER_OETH_B'] ?? '',
13-
OUSD: process.env['DISCORD_WEBHOOK_URL_OUSD'] ?? '',
14-
xOGN: process.env['DISCORD_WEBHOOK_URL_XOGN'] ?? '',
15-
primeETH: process.env['DISCORD_WEBHOOK_URL_PRIME_ETH'] ?? '',
16-
ARM: process.env['DISCORD_WEBHOOK_URL_ARM'] ?? '',
17-
OS: process.env['DISCORD_WEBHOOK_URL_OS'] ?? '',
8+
Governance: testUrl ?? process.env['DISCORD_WEBHOOK_URL_GOVERNANCE'] ?? '',
9+
OGN: testUrl ?? process.env['DISCORD_WEBHOOK_URL_OGN'] ?? '',
10+
'OGN Alerts': testUrl ?? process.env['DISCORD_WEBHOOK_URL_OGN_ALERTS'] ?? '',
11+
'OGN Buybacks': testUrl ?? process.env['DISCORD_WEBHOOK_URL_OGN_BUYBACKS'] ?? '',
12+
OETH: testUrl ?? process.env['DISCORD_WEBHOOK_URL_OETH'] ?? '',
13+
superOETHb: testUrl ?? process.env['DISCORD_WEBHOOK_URL_SUPER_OETH_B'] ?? '',
14+
OUSD: testUrl ?? process.env['DISCORD_WEBHOOK_URL_OUSD'] ?? '',
15+
xOGN: testUrl ?? process.env['DISCORD_WEBHOOK_URL_XOGN'] ?? '',
16+
primeETH: testUrl ?? process.env['DISCORD_WEBHOOK_URL_PRIME_ETH'] ?? '',
17+
ARM: testUrl ?? process.env['DISCORD_WEBHOOK_URL_ARM'] ?? '',
18+
OS: testUrl ?? process.env['DISCORD_WEBHOOK_URL_OS'] ?? '',
1819
}
1920

2021
const clients: Record<Topic, WebhookClient | undefined> = {

0 commit comments

Comments
 (0)