nyxd-scraper-shared 1.20.4

Common crate for the sqlite and psql Nyxd blockchain scrapers
Documentation
// Copyright 2023 - Nym Technologies SA <contact@nymtech.net>
// SPDX-License-Identifier: Apache-2.0

use crate::block_processor::types::ParsedTransactionResponse;
use crate::error::ScraperError;
use crate::storage::NyxdScraperTransaction;
use async_trait::async_trait;
use cosmrs::Any;

#[async_trait]
pub trait MsgModule {
    fn type_url(&self) -> String;

    async fn handle_msg(
        &mut self,
        index: usize,
        msg: &Any,
        tx: &ParsedTransactionResponse,
        storage_tx: &mut dyn NyxdScraperTransaction,
    ) -> Result<(), ScraperError>;
}