1use revm::primitives::{Address, Bytes, U256};
5use serde::{Deserialize, Serialize};
6use std::collections::BTreeMap;
7
8#[derive(Clone, Debug, Serialize, Deserialize, Default)]
10pub enum SnapShotSource {
11 Memory,
12 #[default]
13 Fork,
14}
15
16#[derive(Clone, Debug, Serialize, Deserialize)]
19pub struct SnapShotAccountRecord {
20 pub nonce: u64,
21 pub balance: U256,
22 pub code: Bytes,
23 pub storage: BTreeMap<U256, U256>,
24}
25
26#[derive(Clone, Debug, Default, Serialize, Deserialize)]
28pub struct SnapShot {
29 pub source: SnapShotSource,
30 pub block_num: u64,
31 pub timestamp: u64,
32 pub accounts: BTreeMap<Address, SnapShotAccountRecord>,
33}