use serde::{Deserialize, Serialize};
#[cfg(doc)]
use casper_types::Block;
use casper_types::{
contract_messages::Messages, execution::Effects, BlockHash, Digest, Gas, Transfer,
};
#[derive(Copy, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields)]
pub enum BlockIdentifier {
Hash(BlockHash),
Height(u64),
}
#[derive(Copy, Clone, PartialOrd, Ord, PartialEq, Eq, Hash, Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields)]
pub enum GlobalStateIdentifier {
BlockHash(BlockHash),
BlockHeight(u64),
StateRootHash(Digest),
}
#[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)]
pub struct SpeculativeExecutionResult {
pub block_hash: BlockHash,
pub transfers: Vec<Transfer>,
pub limit: Gas,
pub consumed: Gas,
pub effects: Effects,
pub messages: Messages,
pub error: Option<String>,
}