@w3f/monitoring-config
TypeScript icon, indicating that this package has built-in type declarations

0.0.13 • Public • Published

Monitoring Configuration

This package contains the configuration processing and validation logic for the Chain Watcher application.

Main Component

Config Processor (config-processor.ts)

Processes configuration files and transforms them into structured monitoring groups.

Key responsibilities:

  • Loading and validating YAML configuration files:
    • Ensures required fields are present
    • Validates field formats and values
    • Checks cross-field dependencies
  • Applying defaults:
    • Uses defaults.chains if group.chains not provided
    • Uses defaults.monitors if group.monitors not provided
    • Uses defaults.alerts if group.alerts not provided
    • Applies default comparison types for monitors
  • Building final monitoring structure:
    • Creates separate group for each chain configuration
    • Transforms addresses to chain-specific SS58 format
    • Merges monitor-level settings and account-level settings with priority to accounts
    • Converts decimal balance strings to chain-specific BigInt values

Example output:

[
  {
    name: "validators group",
    chain: Chain.Polkadot,
    monitors: [
      {
        name: MonitorType.Staking,
        settings: { commission: 10, handlers: { include: ["CommissionChanged"] } }
      }
    ],
    accounts: [
      {
        name: "5Grw...utQY",
        hex: "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d",
        ss58: "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
        Staking: {
          commission: 5,
          commissionComparison: ComparisonType.LessThanOrEqual,
          selfStakeComparison: ComparisonType.GreaterThanOrEqual,
          selfStake: 10005000000000n
        }
      }
    ],
    alerts: {
      messengerType: "matrix",
      targets: ["!room:matrix.org"]
    }
  }
]

Supporting Components

Account Settings Builder (account-settings-builder.ts)

Builds account monitor settings by combining monitor and account-level configurations, applying defaults, and converting decimal balances to BigInt values.

Config Validator (config-validator.ts)

Performs validation of raw configuration data without modifying it. Ensures proper structure, required fields, and valid formats.

Address Transformer (address-transformer.ts)

Handles blockchain address transformations between hex and SS58 formats, ensuring correct chain-specific encoding.

/@w3f/monitoring-config/

    Package Sidebar

    Install

    npm i @w3f/monitoring-config

    Weekly Downloads

    7

    Version

    0.0.13

    License

    MIT

    Unpacked Size

    40.9 kB

    Total Files

    24

    Last publish

    Collaborators

    • w3f-devops
    • webops.w3f