use std::fmt::Debug;
use fuel_tx::TxId;
use fuels_core::{
codec::{LogDecoder, LogResult},
traits::{Parameterize, Tokenizable},
types::{errors::Result, tx_status::Success},
};
#[derive(Clone, Debug)]
pub struct CallResponse<D> {
pub value: D,
pub tx_status: Success,
pub tx_id: Option<TxId>,
pub log_decoder: LogDecoder,
}
impl<D> CallResponse<D> {
pub fn decode_logs(&self) -> LogResult {
self.log_decoder.decode_logs(&self.tx_status.receipts)
}
pub fn decode_logs_with_type<T: Tokenizable + Parameterize + 'static>(&self) -> Result<Vec<T>> {
self.log_decoder
.decode_logs_with_type::<T>(&self.tx_status.receipts)
}
}