use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TransactionBlockMetadataTransaction {
#[serde(rename = "version")]
pub version: String,
#[serde(rename = "hash")]
pub hash: String,
#[serde(rename = "state_change_hash")]
pub state_change_hash: String,
#[serde(rename = "event_root_hash")]
pub event_root_hash: String,
#[serde(rename = "state_checkpoint_hash", skip_serializing_if = "Option::is_none")]
pub state_checkpoint_hash: Option<String>,
#[serde(rename = "gas_used")]
pub gas_used: String,
#[serde(rename = "success")]
pub success: bool,
#[serde(rename = "vm_status")]
pub vm_status: String,
#[serde(rename = "accumulator_root_hash")]
pub accumulator_root_hash: String,
#[serde(rename = "changes")]
pub changes: Vec<models::WriteSetChange>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "epoch")]
pub epoch: String,
#[serde(rename = "round")]
pub round: String,
#[serde(rename = "events")]
pub events: Vec<models::Event>,
#[serde(rename = "previous_block_votes_bitvec")]
pub previous_block_votes_bitvec: Vec<i32>,
#[serde(rename = "proposer")]
pub proposer: String,
#[serde(rename = "failed_proposer_indices")]
pub failed_proposer_indices: Vec<i32>,
#[serde(rename = "timestamp")]
pub timestamp: String,
#[serde(rename = "block_metadata_extension", skip_serializing_if = "Option::is_none")]
pub block_metadata_extension: Option<Box<models::BlockMetadataTransactionBlockMetadataExtension>>,
#[serde(rename = "type")]
pub r#type: Type,
}
impl TransactionBlockMetadataTransaction {
pub fn new(version: String, hash: String, state_change_hash: String, event_root_hash: String, gas_used: String, success: bool, vm_status: String, accumulator_root_hash: String, changes: Vec<models::WriteSetChange>, id: String, epoch: String, round: String, events: Vec<models::Event>, previous_block_votes_bitvec: Vec<i32>, proposer: String, failed_proposer_indices: Vec<i32>, timestamp: String, r#type: Type) -> TransactionBlockMetadataTransaction {
TransactionBlockMetadataTransaction {
version,
hash,
state_change_hash,
event_root_hash,
state_checkpoint_hash: None,
gas_used,
success,
vm_status,
accumulator_root_hash,
changes,
id,
epoch,
round,
events,
previous_block_votes_bitvec,
proposer,
failed_proposer_indices,
timestamp,
block_metadata_extension: None,
r#type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "block_metadata_transaction")]
BlockMetadataTransaction,
}
impl Default for Type {
fn default() -> Type {
Self::BlockMetadataTransaction
}
}