use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum Transaction {
#[serde(rename="pending_transaction")]
PendingTransaction(Box<models::TransactionPendingTransaction>),
#[serde(rename="user_transaction")]
UserTransaction(Box<models::TransactionUserTransaction>),
#[serde(rename="genesis_transaction")]
GenesisTransaction(Box<models::TransactionGenesisTransaction>),
#[serde(rename="block_metadata_transaction")]
BlockMetadataTransaction(Box<models::TransactionBlockMetadataTransaction>),
#[serde(rename="state_checkpoint_transaction")]
StateCheckpointTransaction(Box<models::TransactionStateCheckpointTransaction>),
#[serde(rename="block_epilogue_transaction")]
BlockEpilogueTransaction(Box<models::TransactionBlockEpilogueTransaction>),
#[serde(rename="validator_transaction")]
ValidatorTransaction(Box<models::TransactionValidatorTransaction>),
}
impl Default for Transaction {
fn default() -> Self {
Self::PendingTransaction(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ValidatorTransactionType {
#[serde(rename = "dkg_result")]
DkgResult,
}
impl Default for ValidatorTransactionType {
fn default() -> ValidatorTransactionType {
Self::DkgResult
}
}