bgd-labs / adi-dashboard

a.DI monitoring tool

Home Page:https://adi.onaave.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

a.DI Dashboard

AAVE Delivery Infrastructure Dashboard

This Dashboard facilitates monitoring of the Aave Delivery Infrastructure, offering a simplified interface for browsing envelopes, reading messages, and examining payloads. Links to the Governance V3 interface are provided for easy access to proposals and payloads. The dashboard also includes Slack integration for alerts on events requiring immediate attention.

This application performs scans on configured chains every two minutes, capturing new events emitted by CrossChainController contracts and storing them in a database. In the event of an RPC query range failure, the application will automatically retry during the next retry cycle, which occurs every 5 minutes. The app's status page provides an overview of the scan progress and details of the specific ranges.

Delivery of an envelope is confirmed upon reaching consensus and logging a successful EnvelopeDeliveryAttempted event. Envelopes not delivered within 60 minutes are marked as delivery failures, triggering a notification on Slack.

The application uses Supabase for event data storage and retrieval, and tRPC for type-safe data operations. The front-end interface is built with Next.js, and styled with Tailwind CSS. The app also relies on Vercel Cron Jobs for scheduled scans and Slack Incoming Webhooks for notifications.

Getting started

First, clone the repository and navigate to the project directory.

git clone git@github.com:bgd-labs/adi-dashboard.git
cd adi-dashboard

Set up Supabase

Create a new project on Supabase and set up a new database. use schema.sql to create the required tables and views. Next, update the app configuration by editing CrossChainControllers and AddressBook tables with the addresses of the deployed contracts.

Set Environment Variables

Copy the .env.example file to .env.local and fill in the required environment variables (See comments in .env.example file for reference).

cp .env.example .env.local

To get started, you will need to install the dependencies and run the development server.

npm install
npm run dev

Update/Generate Database Types

When the database structure is updated, in order to generate files, you can generate type definitions for the database using the Supabase CLI:

npm install -g @supabase/cli
cd ./src/server/api && supabase gen types typescript --project-id YOUR_SUPABASE_PROJECT_ID > ./database.types.ts

Alternatively, you can use download the types from the Supabase dashboard and place them in the ./src/server/api folder.

License

Copyright © 2024, Aave DAO, represented by its governance smart contracts.

Created by BGD Labs.

The default license of this repository is BUSL1.1.

IMPORTANT. The BUSL1.1 license of this repository allows for any usage of the software, if respecting the Additional Use Grant limitations, forbidding any use case damaging anyhow the Aave DAO's interests.

About

a.DI monitoring tool

https://adi.onaave.com

License:Other


Languages

Language:TypeScript 91.9%Language:PLpgSQL 6.8%Language:JavaScript 1.2%Language:CSS 0.0%