feat: nyxd watcher (#6561)

* removed explicit storage_tx within MsgModule, TxModule and BlockModule impls

* created a NyxdWatcher that does not persist processed block info

* removed unused imports
This commit is contained in:
Jędrzej Stuczyński
2026-03-13 13:15:36 +00:00
committed by GitHub
parent 0a5227a894
commit 49c710e651
17 changed files with 738 additions and 251 deletions
@@ -5,9 +5,7 @@ use crate::config::data_observatory::{HttpAuthenticationOptions, WebhookConfig};
use crate::models::WebhookPayload;
use anyhow::Context;
use async_trait::async_trait;
use nyxd_scraper_psql::{
NyxdScraperTransaction, ParsedTransactionResponse, ScraperError, TxModule,
};
use nyxd_scraper_psql::{ParsedTransactionResponse, ScraperError, TxModule};
use reqwest::{Client, Url};
use tracing::{error, info};
@@ -29,11 +27,7 @@ impl WebhookModule {
#[async_trait]
impl TxModule for WebhookModule {
async fn handle_tx(
&mut self,
tx: &ParsedTransactionResponse,
_: &mut dyn NyxdScraperTransaction,
) -> Result<(), ScraperError> {
async fn handle_tx(&mut self, tx: &ParsedTransactionResponse) -> Result<(), ScraperError> {
for (index, msg) in &tx.parsed_messages {
if let Some(parsed_message_type_url) = tx.parsed_message_urls.get(index) {
let payload = WebhookPayload {
+1 -4
View File
@@ -8,9 +8,7 @@ use cosmrs::proto::cosmwasm::wasm::v1::MsgExecuteContract;
use cosmrs::proto::prost::Message;
use nym_validator_client::nyxd::{Any, Name};
use nyxd_scraper_psql::models::DbCoin;
use nyxd_scraper_psql::{
MsgModule, NyxdScraperTransaction, ParsedTransactionResponse, ScraperError,
};
use nyxd_scraper_psql::{MsgModule, ParsedTransactionResponse, ScraperError};
use serde_json::Value;
use time::{OffsetDateTime, PrimitiveDateTime};
use tracing::{error, trace};
@@ -37,7 +35,6 @@ impl MsgModule for WasmModule {
index: usize,
msg: &Any,
tx: &ParsedTransactionResponse,
_storage_tx: &mut dyn NyxdScraperTransaction,
) -> Result<(), ScraperError> {
let message = serde_json::to_value(tx.parsed_messages.get(&index)).unwrap_or_default();
let value = serde_json::to_value(message.clone()).unwrap_or_default();