async-abci 0.1.8

A async abci server.
Documentation
use async_abci::ServerXX;
use tm_abci::{
    ConsensusXX, Mempool, Query, RequestFinalizedBlock, ResponseDeliverTx, ResponseFinalizedBlock,
    Snapshot,
};

#[derive(Debug, Clone)]
struct App {}

#[async_trait::async_trait]
impl ConsensusXX for App {
    async fn finalized_block(&self, req: RequestFinalizedBlock) -> ResponseFinalizedBlock {
        let mut fb = ResponseFinalizedBlock::default();

        for tx in req.transactions {
            let code = tx[0];

            let mut resp = ResponseDeliverTx::default();

            resp.code = code as u32;

            fb.tx_receipt.push(resp);
        }

        fb
    }
}

impl Query for App {}

impl Mempool for App {}

impl Snapshot for App {}

async fn start() {
    env_logger::init();

    let app = App {};

    ServerXX::new(app)
        .bind("127.0.0.1:26658")
        .await
        .unwrap()
        .run()
        .await
        .unwrap();
}

fn main() {
    smol::block_on(start());
}