use bytes::Bytes;
use serde::Serialize;
use super::super::{Code, Event};
use crate::prelude::*;
#[doc = include_str!("../doc/response-checktx.md")]
#[derive(Clone, PartialEq, Eq, Debug, Default, Serialize)]
pub struct CheckTx {
pub code: Code,
pub data: Bytes,
pub log: String,
pub info: String,
pub gas_wanted: i64,
pub gas_used: i64,
pub events: Vec<Event>,
pub codespace: String,
pub sender: String,
pub priority: i64,
pub mempool_error: String,
}
tendermint_pb_modules! {
use super::CheckTx;
impl From<CheckTx> for pb::abci::ResponseCheckTx {
fn from(check_tx: CheckTx) -> Self {
Self {
code: check_tx.code.into(),
data: check_tx.data,
log: check_tx.log,
info: check_tx.info,
gas_wanted: check_tx.gas_wanted,
gas_used: check_tx.gas_used,
events: check_tx.events.into_iter().map(Into::into).collect(),
codespace: check_tx.codespace,
sender: check_tx.sender,
priority: check_tx.priority,
mempool_error: check_tx.mempool_error,
}
}
}
impl TryFrom<pb::abci::ResponseCheckTx> for CheckTx {
type Error = crate::Error;
fn try_from(check_tx: pb::abci::ResponseCheckTx) -> Result<Self, Self::Error> {
Ok(Self {
code: check_tx.code.into(),
data: check_tx.data,
log: check_tx.log,
info: check_tx.info,
gas_wanted: check_tx.gas_wanted,
gas_used: check_tx.gas_used,
events: check_tx
.events
.into_iter()
.map(TryInto::try_into)
.collect::<Result<_, _>>()?,
codespace: check_tx.codespace,
sender: check_tx.sender,
priority: check_tx.priority,
mempool_error: check_tx.mempool_error,
})
}
}
impl Protobuf<pb::abci::ResponseCheckTx> for CheckTx {}
}