revm_statetest_types/
blockchain.rs

1//! Blockchain test types for Ethereum state tests.
2//!
3//! This module contains structures for deserializing blockchain test JSON files
4//! from the Ethereum test suite.
5
6use crate::{deserialize_maybe_empty, AccountInfo, TestAuthorization};
7use alloy_eip7928::BlockAccessList;
8use context::{transaction::AccessList, BlockEnv, TxEnv};
9use context_interface::block::BlobExcessGasAndPrice;
10use primitives::{Address, Bytes, FixedBytes, TxKind, B256, U256};
11use serde::Deserialize;
12use std::collections::BTreeMap;
13
14/// Blockchain test suite containing multiple test cases
15#[derive(Debug, PartialEq, Eq, Deserialize)]
16pub struct BlockchainTest(pub BTreeMap<String, BlockchainTestCase>);
17
18/// Individual blockchain test case
19#[derive(Debug, PartialEq, Eq, Deserialize)]
20#[serde(rename_all = "camelCase")]
21pub struct BlockchainTestCase {
22    /// Genesis block header
23    pub genesis_block_header: BlockHeader,
24    /// Genesis block RLP encoding
25    #[serde(rename = "genesisRLP")]
26    pub genesis_rlp: Option<Bytes>,
27    /// List of blocks in the test
28    pub blocks: Vec<Block>,
29    /// Post-state accounts (optional)
30    pub post_state: Option<BTreeMap<Address, Account>>,
31    /// Pre-state accounts
32    pub pre: State,
33    /// Last block hash
34    pub lastblockhash: B256,
35    /// Network specification
36    pub network: ForkSpec,
37    /// Seal engine type
38    #[serde(default)]
39    pub seal_engine: SealEngine,
40}
41
42/// Block header structure
43#[derive(Debug, PartialEq, Eq, Clone, Deserialize, Default)]
44#[serde(rename_all = "camelCase")]
45pub struct BlockHeader {
46    /// Bloom filter for logs
47    pub bloom: Bytes,
48    /// Block coinbase/beneficiary address
49    pub coinbase: Address,
50    /// Block difficulty (pre-merge) or 0 (post-merge)
51    pub difficulty: U256,
52    /// Extra data field
53    pub extra_data: Bytes,
54    /// Gas limit for this block
55    pub gas_limit: U256,
56    /// Gas used by all transactions in this block
57    pub gas_used: U256,
58    /// Block hash
59    pub hash: B256,
60    /// Mix hash for PoW validation
61    pub mix_hash: B256,
62    /// PoW nonce
63    pub nonce: FixedBytes<8>,
64    /// Block number
65    pub number: U256,
66    /// Parent block hash
67    pub parent_hash: B256,
68    /// Root hash of the receipt trie
69    pub receipt_trie: B256,
70    /// State root hash after executing this block
71    pub state_root: B256,
72    /// Block timestamp
73    pub timestamp: U256,
74    /// Root hash of the transaction trie
75    pub transactions_trie: B256,
76    /// Uncle hash (ommers hash)
77    pub uncle_hash: B256,
78    /// Base fee per gas (EIP-1559)
79    pub base_fee_per_gas: Option<U256>,
80    /// Withdrawals root hash (post-Shanghai)
81    pub withdrawals_root: Option<B256>,
82    /// Blob gas used (EIP-4844)
83    pub blob_gas_used: Option<U256>,
84    /// Excess blob gas (EIP-4844)
85    pub excess_blob_gas: Option<U256>,
86    /// Parent beacon block root (EIP-4788)
87    pub parent_beacon_block_root: Option<B256>,
88    /// Requests hash (for future EIPs)
89    pub requests_hash: Option<B256>,
90    /// Target blobs per block (EIP-4844 related)
91    pub target_blobs_per_block: Option<U256>,
92}
93
94/// Block structure containing header and transactions
95#[derive(Debug, PartialEq, Eq, Deserialize, Default)]
96#[serde(rename_all = "camelCase")]
97pub struct Block {
98    /// Block header (when provided directly)
99    pub block_header: Option<BlockHeader>,
100    /// RLP-encoded block data
101    pub rlp: Bytes,
102    /// Expected exception for invalid blocks
103    pub expect_exception: Option<String>,
104    /// List of transactions in the block
105    pub transactions: Option<Vec<Transaction>>,
106    /// Uncle/ommer headers
107    pub uncle_headers: Option<Vec<BlockHeader>>,
108    /// Withdrawals in the block (post-Shanghai)
109    pub withdrawals: Option<Vec<Withdrawal>>,
110    /// Block access list
111    pub block_access_list: Option<BlockAccessList>,
112    /// Withdrawal requests (EIP-7002)
113    pub withdrawal_requests: Option<Vec<WithdrawalRequest>>,
114    /// Consolidation requests (EIP-7251)
115    pub consolidation_requests: Option<Vec<ConsolidationRequest>>,
116}
117
118/// Transaction structure
119#[derive(Debug, PartialEq, Eq, Deserialize)]
120#[serde(rename_all = "camelCase")]
121pub struct Transaction {
122    /// Transaction type
123    #[serde(rename = "type")]
124    pub transaction_type: Option<U256>,
125    /// Transaction sender
126    #[serde(default)]
127    pub sender: Option<Address>,
128    /// Transaction data/input
129    pub data: Bytes,
130    /// Gas limit
131    pub gas_limit: U256,
132    /// Gas price (legacy transactions)
133    pub gas_price: Option<U256>,
134    /// Transaction nonce
135    pub nonce: U256,
136    /// ECDSA signature r value
137    pub r: U256,
138    /// ECDSA signature s value
139    pub s: U256,
140    /// ECDSA signature v value
141    pub v: U256,
142    /// Ether value to transfer
143    pub value: U256,
144    /// Target address
145    #[serde(default, deserialize_with = "deserialize_maybe_empty")]
146    pub to: Option<Address>,
147    /// Chain ID for replay protection
148    pub chain_id: Option<U256>,
149    /// Access list (EIP-2930)
150    pub access_list: Option<AccessList>,
151    /// Maximum fee per gas (EIP-1559)
152    pub max_fee_per_gas: Option<U256>,
153    /// Maximum priority fee per gas (EIP-1559)
154    pub max_priority_fee_per_gas: Option<U256>,
155    /// Blob versioned hashes (EIP-4844)
156    pub blob_versioned_hashes: Option<Vec<B256>>,
157    /// Maximum fee per blob gas (EIP-4844)
158    pub max_fee_per_blob_gas: Option<U256>,
159    /// Authorization list (EIP-7702)
160    pub authorization_list: Option<Vec<TestAuthorization>>,
161    /// Transaction hash
162    pub hash: Option<B256>,
163}
164
165/// Withdrawal structure
166#[derive(Debug, PartialEq, Eq, Deserialize, Clone)]
167#[serde(rename_all = "camelCase")]
168pub struct Withdrawal {
169    /// Withdrawal index
170    pub index: U256,
171    /// Validator index
172    pub validator_index: U256,
173    /// Withdrawal recipient address
174    pub address: Address,
175    /// Withdrawal amount in gwei
176    pub amount: U256,
177}
178
179/// Withdrawal request structure (EIP-7002)
180///
181/// Represents an execution layer triggerable withdrawal request.
182#[derive(Debug, PartialEq, Eq, Deserialize, Clone)]
183#[serde(rename_all = "camelCase")]
184pub struct WithdrawalRequest {
185    /// Address of the source of the exit
186    pub source_address: Address,
187    /// Validator public key (48 bytes)
188    pub validator_pubkey: FixedBytes<48>,
189    /// Amount of withdrawn ether in gwei
190    pub amount: U256,
191}
192
193/// Consolidation request structure (EIP-7251)
194///
195/// Represents a consolidation request for validator consolidation.
196#[derive(Debug, PartialEq, Eq, Deserialize, Clone)]
197#[serde(rename_all = "camelCase")]
198pub struct ConsolidationRequest {
199    /// Source address
200    pub source_address: Address,
201    /// Source public key (48 bytes)
202    pub source_pubkey: FixedBytes<48>,
203    /// Target public key (48 bytes)
204    pub target_pubkey: FixedBytes<48>,
205}
206
207/// Ethereum blockchain test data state
208#[derive(Clone, Debug, Eq, PartialEq, Deserialize, Default)]
209pub struct State(pub BTreeMap<Address, Account>);
210
211impl State {
212    /// Return state as genesis state
213    pub fn into_genesis_state(self) -> BTreeMap<Address, AccountInfo> {
214        self.0
215            .into_iter()
216            .map(|(address, account)| {
217                let storage = account
218                    .storage
219                    .iter()
220                    .filter(|(_, v)| !v.is_zero())
221                    .map(|(k, v)| (*k, *v))
222                    .collect();
223                let account_info = AccountInfo {
224                    balance: account.balance,
225                    nonce: account.nonce.to::<u64>(),
226                    code: account.code,
227                    storage,
228                };
229                (address, account_info)
230            })
231            .collect::<BTreeMap<_, _>>()
232    }
233}
234
235/// An account
236#[derive(Debug, PartialEq, Eq, Deserialize, Clone, Default)]
237#[serde(deny_unknown_fields)]
238pub struct Account {
239    /// Balance
240    pub balance: U256,
241    /// Code
242    pub code: Bytes,
243    /// Nonce
244    pub nonce: U256,
245    /// Storage
246    pub storage: BTreeMap<U256, U256>,
247}
248
249/// Fork specification
250#[derive(Debug, PartialEq, Eq, PartialOrd, Hash, Ord, Clone, Copy, Deserialize)]
251pub enum ForkSpec {
252    /// Frontier
253    Frontier,
254    /// Frontier to Homestead
255    FrontierToHomesteadAt5,
256    /// Homestead
257    Homestead,
258    /// Homestead to Tangerine
259    HomesteadToDaoAt5,
260    /// Homestead to Tangerine
261    HomesteadToEIP150At5,
262    /// Tangerine
263    EIP150,
264    /// Spurious Dragon
265    EIP158,
266    /// Spurious Dragon to Byzantium
267    EIP158ToByzantiumAt5,
268    /// Byzantium
269    Byzantium,
270    /// Byzantium to Constantinople
271    ByzantiumToConstantinopleAt5,
272    /// Byzantium to Constantinople
273    ByzantiumToConstantinopleFixAt5,
274    /// Constantinople
275    Constantinople,
276    /// Constantinople fix
277    ConstantinopleFix,
278    /// Istanbul
279    Istanbul,
280    /// Berlin
281    Berlin,
282    /// Berlin to London
283    BerlinToLondonAt5,
284    /// London
285    London,
286    /// Paris aka The Merge
287    #[serde(alias = "Merge")]
288    Paris,
289    /// Paris to Shanghai transition
290    ParisToShanghaiAtTime15k,
291    /// Shanghai
292    Shanghai,
293    /// Shanghai to Cancun transition
294    ShanghaiToCancunAtTime15k,
295    /// Merge EOF test
296    #[serde(alias = "Merge+3540+3670")]
297    MergeEOF,
298    /// After Merge Init Code test
299    #[serde(alias = "Merge+3860")]
300    MergeMeterInitCode,
301    /// After Merge plus new PUSH0 opcode
302    #[serde(alias = "Merge+3855")]
303    MergePush0,
304    /// Cancun
305    Cancun,
306    /// Cancun to Prague transition
307    CancunToPragueAtTime15k,
308    /// Prague
309    Prague,
310    /// Prague to Osaka transition
311    PragueToOsakaAtTime15k,
312    /// Osaka
313    Osaka,
314    /// BPO1 to BPO2 transition
315    BPO1ToBPO2AtTime15k,
316    /// Amsterdam
317    Amsterdam,
318}
319
320/// Possible seal engines
321#[derive(Debug, PartialEq, Eq, Default, Deserialize)]
322pub enum SealEngine {
323    /// No consensus checks
324    #[default]
325    NoProof,
326    /// Proof of Work
327    Ethash,
328}
329
330impl BlockHeader {
331    /// Convert BlockHeader to BlockEnv
332    pub fn to_block_env(
333        &self,
334        blob_excess_gas_and_price: Option<BlobExcessGasAndPrice>,
335    ) -> BlockEnv {
336        BlockEnv {
337            number: self.number,
338            beneficiary: self.coinbase,
339            timestamp: self.timestamp,
340            gas_limit: self.gas_limit.to::<u64>(),
341            basefee: self.base_fee_per_gas.unwrap_or_default().to::<u64>(),
342            difficulty: self.difficulty,
343            prevrandao: if self.difficulty.is_zero() {
344                Some(self.mix_hash)
345            } else {
346                None
347            },
348            blob_excess_gas_and_price,
349        }
350    }
351}
352
353impl Transaction {
354    /// Convert Transaction to TxEnv
355    /// Note: The 'to' and 'sender' fields need to be provided separately in the reth model
356    pub fn to_tx_env(&self) -> Result<TxEnv, String> {
357        // Determine transaction type
358        let tx_type = self.transaction_type.map(|t| t.to::<u8>()).unwrap_or(0);
359
360        // Set transaction kind (to address)
361        let kind = if let Some(to_addr) = self.to {
362            TxKind::Call(to_addr)
363        } else {
364            TxKind::Create
365        };
366
367        let Some(sender) = self.sender else {
368            return Err("Sender is required".to_string());
369        };
370
371        // Build the base transaction
372        let mut builder = TxEnv::builder()
373            .tx_type(Some(tx_type))
374            .caller(sender)
375            .gas_limit(self.gas_limit.to::<u64>())
376            .nonce(self.nonce.to::<u64>())
377            .value(self.value)
378            .data(self.data.clone())
379            .access_list(self.access_list.clone().unwrap_or_default())
380            .blob_hashes(self.blob_versioned_hashes.clone().unwrap_or_default())
381            .max_fee_per_blob_gas(self.max_fee_per_blob_gas.unwrap_or_default().to::<u128>())
382            .authorization_list_signed(
383                self.authorization_list
384                    .clone()
385                    .map(|auth_list| auth_list.into_iter().map(Into::into).collect::<Vec<_>>())
386                    .unwrap_or_default(),
387            )
388            .kind(kind);
389
390        // Set chain ID if present
391        if let Some(chain_id) = self.chain_id {
392            let chain_id = chain_id.to::<u64>();
393            // 0 chain id is considered as no chain id
394            if chain_id != 0 {
395                builder = builder.chain_id(Some(chain_id));
396            }
397        }
398
399        // Handle gas pricing based on transaction type
400        builder = match tx_type {
401            0 | 1 => {
402                // Legacy or EIP-2930 transaction
403                if let Some(gas_price) = self.gas_price {
404                    builder.gas_price(gas_price.to::<u128>())
405                } else {
406                    builder
407                }
408            }
409            2..=4 => {
410                // EIP-1559 or EIP-4844 transaction
411                let mut b = builder;
412                if let Some(max_fee) = self.max_fee_per_gas {
413                    b = b.gas_price(max_fee.to::<u128>());
414                }
415                if let Some(priority_fee) = self.max_priority_fee_per_gas {
416                    b = b.gas_priority_fee(Some(priority_fee.to::<u128>()));
417                }
418                b
419            }
420            _ => {
421                // For unknown types, try to use gas_price if available
422                if let Some(gas_price) = self.gas_price {
423                    builder.gas_price(gas_price.to::<u128>())
424                } else {
425                    builder
426                }
427            }
428        };
429
430        builder
431            .build()
432            .map_err(|e| format!("Failed to build TxEnv: {e:?}"))
433    }
434}
435
436impl BlockchainTestCase {
437    /// Get the genesis block environment
438    pub fn genesis_block_env(&self) -> BlockEnv {
439        self.genesis_block_header.to_block_env(None)
440    }
441}
442
443#[cfg(test)]
444mod test {
445    use primitives::address;
446
447    use super::*;
448
449    #[test]
450    fn test_transaction_deserialization() {
451        let tx = r#"
452        {
453            "type": "0x00",
454            "chainId": "0x01",
455            "nonce": "0x00",
456            "gasPrice": "0x0a",
457            "gasLimit": "0x05f5e100",
458            "to": "0x1000000000000000000000000000000000000000",
459            "value": "0x00",
460            "data": "0x",
461            "v": "0x25",
462            "r": "0x52665e44edaa715e7c5f531675a96a47c7827593adf02f5d9b97c4bc952500ec",
463            "s": "0x1b4d3b625da8720d6a05d67ad1aa986089717cd0ff4fef2ee0e76779f9746957",
464            "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
465        }"#;
466        let _: Transaction = serde_json::from_str(tx).unwrap();
467    }
468
469    #[test]
470    fn test_blockchain_test_deserialization() {
471        // Test that we can deserialize the sample JSON
472        let result: Result<BlockchainTest, _> = serde_json::from_str(SAMPLE);
473
474        // Note: The test may fail because the sample JSON has a different structure
475        // than what reth expects (e.g., network is a string instead of ForkSpec enum)
476        // This is expected as the formats differ slightly
477        if let Err(e) = result {
478            println!("Expected deserialization error due to format differences: {e}");
479        }
480    }
481
482    #[test]
483    fn test_fork_spec_deserialization() {
484        // Test ForkSpec enum deserialization
485        let fork_specs = vec![
486            ("\"Frontier\"", ForkSpec::Frontier),
487            ("\"Homestead\"", ForkSpec::Homestead),
488            ("\"Byzantium\"", ForkSpec::Byzantium),
489            ("\"Constantinople\"", ForkSpec::Constantinople),
490            ("\"Istanbul\"", ForkSpec::Istanbul),
491            ("\"Berlin\"", ForkSpec::Berlin),
492            ("\"London\"", ForkSpec::London),
493            ("\"Paris\"", ForkSpec::Paris),
494            ("\"Merge\"", ForkSpec::Paris), // Alias test
495            ("\"Shanghai\"", ForkSpec::Shanghai),
496            ("\"Cancun\"", ForkSpec::Cancun),
497            (
498                "\"CancunToPragueAtTime15k\"",
499                ForkSpec::CancunToPragueAtTime15k,
500            ),
501            ("\"Prague\"", ForkSpec::Prague),
502            (
503                "\"PragueToOsakaAtTime15k\"",
504                ForkSpec::PragueToOsakaAtTime15k,
505            ),
506            ("\"Osaka\"", ForkSpec::Osaka),
507            ("\"BPO1ToBPO2AtTime15k\"", ForkSpec::BPO1ToBPO2AtTime15k),
508            ("\"Amsterdam\"", ForkSpec::Amsterdam),
509        ];
510
511        for (json, expected) in fork_specs {
512            let result: ForkSpec = serde_json::from_str(json).unwrap();
513            assert_eq!(result, expected);
514        }
515    }
516
517    #[test]
518    fn test_transaction_conversion() {
519        use crate::blockchain::Transaction;
520        use primitives::{Bytes, U256};
521
522        let tx = Transaction {
523            transaction_type: Some(U256::from(0)),
524            sender: Some(address!("0x1000000000000000000000000000000000000000")),
525            data: Bytes::default(),
526            gas_limit: U256::from(21000),
527            gas_price: Some(U256::from(1000000000)),
528            nonce: U256::from(0),
529            r: U256::from(1),
530            s: U256::from(2),
531            v: U256::from(27),
532            value: U256::from(1000),
533            chain_id: Some(U256::from(1)),
534            access_list: None,
535            max_fee_per_gas: None,
536            max_priority_fee_per_gas: None,
537            max_fee_per_blob_gas: None,
538            hash: None,
539            to: None,
540            authorization_list: None,
541            blob_versioned_hashes: None,
542        };
543
544        // Test conversion with dummy sender and to address
545        let tx_env = tx.to_tx_env().unwrap();
546
547        assert_eq!(tx_env.tx_type, 0);
548        assert_eq!(tx_env.nonce, 0);
549        assert_eq!(tx_env.gas_limit, 21000);
550        assert_eq!(tx_env.gas_price, 1000000000);
551        assert_eq!(tx_env.value, U256::from(1000));
552    }
553
554    const SAMPLE: &str = r#"
555    {
556    "tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py::test_transaction_gas_limit_cap_at_transition[fork_PragueToOsakaAtTime15k-blockchain_test]": {
557        "network": "PragueToOsakaAtTime15k",
558        "genesisBlockHeader": {
559            "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
560            "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
561            "coinbase": "0x0000000000000000000000000000000000000000",
562            "stateRoot": "0xfe13aa0b3a4ea731b1715a429c1cf100db415262a5bdd49478dc7b9e61cbf1df",
563            "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
564            "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
565            "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
566            "difficulty": "0x00",
567            "number": "0x00",
568            "gasLimit": "0x044aa200",
569            "gasUsed": "0x00",
570            "timestamp": "0x00",
571            "extraData": "0x00",
572            "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
573            "nonce": "0x0000000000000000",
574            "baseFeePerGas": "0x07",
575            "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
576            "blobGasUsed": "0x00",
577            "excessBlobGas": "0x00",
578            "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
579            "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
580            "hash": "0x04b688c25df122da84e0b1a21b90dd8f898e6005cdc2d1ac6c60ded9ff9b2de4"
581        },
582        "pre": {
583            "0x00000000219ab540356cbb839cbe05303d7705fa": {
584                "nonce": "0x01",
585                "balance": "0x00",
586                "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033",
587                "storage": {
588                    "0x22": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b",
589                    "0x23": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71",
590                    "0x24": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c",
591                    "0x25": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c",
592                    "0x26": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30",
593                    "0x27": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1",
594                    "0x28": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c",
595                    "0x29": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193",
596                    "0x2a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1",
597                    "0x2b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b",
598                    "0x2c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220",
599                    "0x2d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f",
600                    "0x2e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e",
601                    "0x2f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784",
602                    "0x30": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb",
603                    "0x31": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb",
604                    "0x32": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab",
605                    "0x33": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4",
606                    "0x34": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f",
607                    "0x35": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa",
608                    "0x36": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c",
609                    "0x37": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167",
610                    "0x38": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7",
611                    "0x39": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0",
612                    "0x3a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544",
613                    "0x3b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765",
614                    "0x3c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4",
615                    "0x3d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1",
616                    "0x3e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636",
617                    "0x3f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c",
618                    "0x40": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7"
619                }
620            },
621            "0x00000961ef480eb55e80d19ad83579a64c007002": {
622                "nonce": "0x01",
623                "balance": "0x00",
624                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd",
625                "storage": {}
626            },
627            "0x0000bbddc7ce488642fb579f8b00f3a590007251": {
628                "nonce": "0x01",
629                "balance": "0x00",
630                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd",
631                "storage": {}
632            },
633            "0x0000f90827f1c53a10cb7a02335b175320002935": {
634                "nonce": "0x01",
635                "balance": "0x00",
636                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500",
637                "storage": {}
638            },
639            "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
640                "nonce": "0x01",
641                "balance": "0x00",
642                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
643                "storage": {}
644            },
645            "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
646                "nonce": "0x00",
647                "balance": "0x3635c9adc5dea00000",
648                "code": "0x",
649                "storage": {}
650            },
651            "0x0000000000000000000000000000000000001000": {
652                "nonce": "0x01",
653                "balance": "0x00",
654                "code": "0x60016000540160005500",
655                "storage": {}
656            }
657        },
658        "postState": {
659            "0x00000000219ab540356cbb839cbe05303d7705fa": {
660                "nonce": "0x01",
661                "balance": "0x00",
662                "code": "0x60806040526004361061003f5760003560e01c806301ffc9a71461004457806322895118146100a4578063621fd130146101ba578063c5f2892f14610244575b600080fd5b34801561005057600080fd5b506100906004803603602081101561006757600080fd5b50357fffffffff000000000000000000000000000000000000000000000000000000001661026b565b604080519115158252519081900360200190f35b6101b8600480360360808110156100ba57600080fd5b8101906020810181356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184600183028401116401000000008311171561010957600080fd5b91939092909160208101903564010000000081111561012757600080fd5b82018360208201111561013957600080fd5b8035906020019184600183028401116401000000008311171561015b57600080fd5b91939092909160208101903564010000000081111561017957600080fd5b82018360208201111561018b57600080fd5b803590602001918460018302840111640100000000831117156101ad57600080fd5b919350915035610304565b005b3480156101c657600080fd5b506101cf6110b5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102095781810151838201526020016101f1565b50505050905090810190601f1680156102365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025057600080fd5b506102596110c7565b60408051918252519081900360200190f35b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a70000000000000000000000000000000000000000000000000000000014806102fe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f8564090700000000000000000000000000000000000000000000000000000000145b92915050565b6030861461035d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118056026913960400191505060405180910390fd5b602084146103b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061179c6036913960400191505060405180910390fd5b6060821461040f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806118786029913960400191505060405180910390fd5b670de0b6b3a7640000341015610470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806118526026913960400191505060405180910390fd5b633b9aca003406156104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806117d26033913960400191505060405180910390fd5b633b9aca00340467ffffffffffffffff811115610535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602781526020018061182b6027913960400191505060405180910390fd5b6060610540826114ba565b90507f649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c589898989858a8a6105756020546114ba565b6040805160a0808252810189905290819060208201908201606083016080840160c085018e8e80828437600083820152601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690910187810386528c815260200190508c8c808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690920188810386528c5181528c51602091820193918e019250908190849084905b83811015610648578181015183820152602001610630565b50505050905090810190601f1680156106755780820380516001836020036101000a031916815260200191505b5086810383528881526020018989808284376000838201819052601f9091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169092018881038452895181528951602091820193918b019250908190849084905b838110156106ef5781810151838201526020016106d7565b50505050905090810190601f16801561071c5780820380516001836020036101000a031916815260200191505b509d505050505050505050505050505060405180910390a1600060028a8a600060801b604051602001808484808284377fffffffffffffffffffffffffffffffff0000000000000000000000000000000090941691909301908152604080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0818403018152601090920190819052815191955093508392506020850191508083835b602083106107fc57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016107bf565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610859573d6000803e3d6000fd5b5050506040513d602081101561086e57600080fd5b5051905060006002806108846040848a8c6116fe565b6040516020018083838082843780830192505050925050506040516020818303038152906040526040518082805190602001908083835b602083106108f857805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016108bb565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610955573d6000803e3d6000fd5b5050506040513d602081101561096a57600080fd5b5051600261097b896040818d6116fe565b60405160009060200180848480828437919091019283525050604080518083038152602092830191829052805190945090925082918401908083835b602083106109f457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016109b7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610a51573d6000803e3d6000fd5b5050506040513d6020811015610a6657600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610ada57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610a9d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d6020811015610b4c57600080fd5b50516040805160208101858152929350600092600292839287928f928f92018383808284378083019250505093505050506040516020818303038152906040526040518082805190602001908083835b60208310610bd957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610b9c565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610c36573d6000803e3d6000fd5b5050506040513d6020811015610c4b57600080fd5b50516040518651600291889160009188916020918201918291908601908083835b60208310610ca957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610c6c565b6001836020036101000a0380198251168184511680821785525050505050509050018367ffffffffffffffff191667ffffffffffffffff1916815260180182815260200193505050506040516020818303038152906040526040518082805190602001908083835b60208310610d4e57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610d11565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610dab573d6000803e3d6000fd5b5050506040513d6020811015610dc057600080fd5b5051604080516020818101949094528082019290925280518083038201815260609092019081905281519192909182918401908083835b60208310610e3457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610df7565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015610e91573d6000803e3d6000fd5b5050506040513d6020811015610ea657600080fd5b50519050858114610f02576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260548152602001806117486054913960600191505060405180910390fd5b60205463ffffffff11610f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117276021913960400191505060405180910390fd5b602080546001019081905560005b60208110156110a9578160011660011415610fa0578260008260208110610f9157fe5b0155506110ac95505050505050565b600260008260208110610faf57fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061102557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101610fe8565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa158015611082573d6000803e3d6000fd5b5050506040513d602081101561109757600080fd5b50519250600282049150600101610f6e565b50fe5b50505050505050565b60606110c26020546114ba565b905090565b6020546000908190815b60208110156112f05781600116600114156111e6576002600082602081106110f557fe5b01548460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061116b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161112e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156111c8573d6000803e3d6000fd5b5050506040513d60208110156111dd57600080fd5b505192506112e2565b600283602183602081106111f657fe5b015460405160200180838152602001828152602001925050506040516020818303038152906040526040518082805190602001908083835b6020831061126b57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161122e565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa1580156112c8573d6000803e3d6000fd5b5050506040513d60208110156112dd57600080fd5b505192505b6002820491506001016110d1565b506002826112ff6020546114ba565b600060401b6040516020018084815260200183805190602001908083835b6020831061135a57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909201916020918201910161131d565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790527fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000095909516920191825250604080518083037ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8018152601890920190819052815191955093508392850191508083835b6020831061143f57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101611402565b51815160209384036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161790526040519190930194509192505080830381855afa15801561149c573d6000803e3d6000fd5b5050506040513d60208110156114b157600080fd5b50519250505090565b60408051600880825281830190925260609160208201818036833701905050905060c082901b8060071a60f81b826000815181106114f457fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060061a60f81b8260018151811061153757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060051a60f81b8260028151811061157a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060041a60f81b826003815181106115bd57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060031a60f81b8260048151811061160057fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060021a60f81b8260058151811061164357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060011a60f81b8260068151811061168657fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060001a60f81b826007815181106116c957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535050919050565b6000808585111561170d578182fd5b83861115611719578182fd5b505082019391909203915056fe4465706f736974436f6e74726163743a206d65726b6c6520747265652066756c6c4465706f736974436f6e74726163743a207265636f6e7374727563746564204465706f7369744461746120646f6573206e6f74206d6174636820737570706c696564206465706f7369745f646174615f726f6f744465706f736974436f6e74726163743a20696e76616c6964207769746864726177616c5f63726564656e7469616c73206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c7565206e6f74206d756c7469706c65206f6620677765694465706f736974436f6e74726163743a20696e76616c6964207075626b6579206c656e6774684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f20686967684465706f736974436f6e74726163743a206465706f7369742076616c756520746f6f206c6f774465706f736974436f6e74726163743a20696e76616c6964207369676e6174757265206c656e677468a2646970667358221220dceca8706b29e917dacf25fceef95acac8d90d765ac926663ce4096195952b6164736f6c634300060b0033",
663                "storage": {
664                    "0x22": "0xf5a5fd42d16a20302798ef6ed309979b43003d2320d9f0e8ea9831a92759fb4b",
665                    "0x23": "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71",
666                    "0x24": "0xc78009fdf07fc56a11f122370658a353aaa542ed63e44c4bc15ff4cd105ab33c",
667                    "0x25": "0x536d98837f2dd165a55d5eeae91485954472d56f246df256bf3cae19352a123c",
668                    "0x26": "0x9efde052aa15429fae05bad4d0b1d7c64da64d03d7a1854a588c2cb8430c0d30",
669                    "0x27": "0xd88ddfeed400a8755596b21942c1497e114c302e6118290f91e6772976041fa1",
670                    "0x28": "0x87eb0ddba57e35f6d286673802a4af5975e22506c7cf4c64bb6be5ee11527f2c",
671                    "0x29": "0x26846476fd5fc54a5d43385167c95144f2643f533cc85bb9d16b782f8d7db193",
672                    "0x2a": "0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1",
673                    "0x2b": "0xffff0ad7e659772f9534c195c815efc4014ef1e1daed4404c06385d11192e92b",
674                    "0x2c": "0x6cf04127db05441cd833107a52be852868890e4317e6a02ab47683aa75964220",
675                    "0x2d": "0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f",
676                    "0x2e": "0xdf6af5f5bbdb6be9ef8aa618e4bf8073960867171e29676f8b284dea6a08a85e",
677                    "0x2f": "0xb58d900f5e182e3c50ef74969ea16c7726c549757cc23523c369587da7293784",
678                    "0x30": "0xd49a7502ffcfb0340b1d7885688500ca308161a7f96b62df9d083b71fcc8f2bb",
679                    "0x31": "0x8fe6b1689256c0d385f42f5bbe2027a22c1996e110ba97c171d3e5948de92beb",
680                    "0x32": "0x8d0d63c39ebade8509e0ae3c9c3876fb5fa112be18f905ecacfecb92057603ab",
681                    "0x33": "0x95eec8b2e541cad4e91de38385f2e046619f54496c2382cb6cacd5b98c26f5a4",
682                    "0x34": "0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f",
683                    "0x35": "0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa",
684                    "0x36": "0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c",
685                    "0x37": "0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167",
686                    "0x38": "0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7",
687                    "0x39": "0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0",
688                    "0x3a": "0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544",
689                    "0x3b": "0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765",
690                    "0x3c": "0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4",
691                    "0x3d": "0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1",
692                    "0x3e": "0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636",
693                    "0x3f": "0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c",
694                    "0x40": "0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7"
695                }
696            },
697            "0x00000961ef480eb55e80d19ad83579a64c007002": {
698                "nonce": "0x01",
699                "balance": "0x00",
700                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd",
701                "storage": {}
702            },
703            "0x0000bbddc7ce488642fb579f8b00f3a590007251": {
704                "nonce": "0x01",
705                "balance": "0x00",
706                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd",
707                "storage": {}
708            },
709            "0x0000f90827f1c53a10cb7a02335b175320002935": {
710                "nonce": "0x01",
711                "balance": "0x00",
712                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500",
713                "storage": {
714                    "0x00": "0x04b688c25df122da84e0b1a21b90dd8f898e6005cdc2d1ac6c60ded9ff9b2de4"
715                }
716            },
717            "0x000f3df6d732807ef1319fb7b8bb8522d0beac02": {
718                "nonce": "0x01",
719                "balance": "0x00",
720                "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500",
721                "storage": {
722                    "0x1a98": "0x3a97"
723                }
724            },
725            "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": {
726                "nonce": "0x01",
727                "balance": "0x3635c9adc5de996bf0",
728                "code": "0x",
729                "storage": {}
730            },
731            "0x0000000000000000000000000000000000001000": {
732                "nonce": "0x01",
733                "balance": "0x00",
734                "code": "0x60016000540160005500",
735                "storage": {
736                    "0x00": "0x01"
737                }
738            },
739            "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": {
740                "nonce": "0x00",
741                "balance": "0x01f938",
742                "code": "0x",
743                "storage": {}
744            }
745        },
746        "lastblockhash": "0xd4c4adfc3e91b0f8855851d598b43c9aa24e46dc03463a1e6e39154a3b9baf11",
747        "config": {
748            "network": "PragueToOsakaAtTime15k",
749            "chainid": "0x01",
750            "blobSchedule": {
751                "Cancun": {
752                    "target": "0x03",
753                    "max": "0x06",
754                    "baseFeeUpdateFraction": "0x32f0ed"
755                },
756                "Prague": {
757                    "target": "0x06",
758                    "max": "0x09",
759                    "baseFeeUpdateFraction": "0x4c6964"
760                },
761                "Osaka": {
762                    "target": "0x06",
763                    "max": "0x09",
764                    "baseFeeUpdateFraction": "0x4c6964"
765                }
766            }
767        },
768        "genesisRLP": "0xf9025df90257a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0fe13aa0b3a4ea731b1715a429c1cf100db415262a5bdd49478dc7b9e61cbf1dfa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000808084044aa200808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c0c0c0",
769        "blocks": [
770            {
771                "blockHeader": {
772                    "parentHash": "0x04b688c25df122da84e0b1a21b90dd8f898e6005cdc2d1ac6c60ded9ff9b2de4",
773                    "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
774                    "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
775                    "stateRoot": "0xc1f2dd64894ad795674b904a05d8b1e25e44c1bcab551f891561505cf9d23ec0",
776                    "transactionsTrie": "0x62a7a0c935742f0a198a50f095a7936080f099512e3c0f55cf245251e52b8956",
777                    "receiptTrie": "0x06f890d54ec65d8650b6c73eefd1fbc39f78b5b25f4e1ec10885c9f29f84ee98",
778                    "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
779                    "difficulty": "0x00",
780                    "number": "0x01",
781                    "gasLimit": "0x044aa200",
782                    "gasUsed": "0xa868",
783                    "timestamp": "0x3a97",
784                    "extraData": "0x",
785                    "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
786                    "nonce": "0x0000000000000000",
787                    "baseFeePerGas": "0x07",
788                    "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
789                    "blobGasUsed": "0x00",
790                    "excessBlobGas": "0x00",
791                    "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
792                    "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
793                    "hash": "0xd4c4adfc3e91b0f8855851d598b43c9aa24e46dc03463a1e6e39154a3b9baf11"
794                },
795                "transactions": [
796                    {
797                        "type": "0x00",
798                        "chainId": "0x01",
799                        "nonce": "0x00",
800                        "gasPrice": "0x0a",
801                        "gasLimit": "0x01c9c381",
802                        "to": "0x0000000000000000000000000000000000001000",
803                        "value": "0x00",
804                        "data": "0x",
805                        "v": "0x26",
806                        "r": "0xf6fc2259158f1ab63eef05e3a8c55ca90621f289349ed04f0bdb90190aea976d",
807                        "s": "0x1298f50281fe143647f01741fb7e68f0dc82e47a05fe5a9b6193c1270c5e3658",
808                        "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
809                    }
810                ],
811                "uncleHeaders": [],
812                "withdrawals": [],
813                "rlp": "0xf902c5f9025ba004b688c25df122da84e0b1a21b90dd8f898e6005cdc2d1ac6c60ded9ff9b2de4a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0c1f2dd64894ad795674b904a05d8b1e25e44c1bcab551f891561505cf9d23ec0a062a7a0c935742f0a198a50f095a7936080f099512e3c0f55cf245251e52b8956a006f890d54ec65d8650b6c73eefd1fbc39f78b5b25f4e1ec10885c9f29f84ee98b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800184044aa20082a868823a9780a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855f863f861800a8401c9c381940000000000000000000000000000000000001000808026a0f6fc2259158f1ab63eef05e3a8c55ca90621f289349ed04f0bdb90190aea976da01298f50281fe143647f01741fb7e68f0dc82e47a05fe5a9b6193c1270c5e3658c0c0",
814                "blocknumber": "1"
815            },
816            {
817                "rlp": "0xf902c3f90259a0d4c4adfc3e91b0f8855851d598b43c9aa24e46dc03463a1e6e39154a3b9baf11a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa050671d216437ec3e13a03ff464ed91146fd61165e8adc1622e58d9be953ae4a5a04657b722e50dc4184f522f842bee4abeae676efe01b43d96ca1ca68695982cfda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800284044aa20080823a9880a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b4218080a00000000000000000000000000000000000000000000000000000000000000000a0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855f863f861010a8401c9c381940000000000000000000000000000000000001000808025a032fd9f592d89b3468bcee7034fab624e546d8efb4f27d62a53e4f7b1382430cca06563508d39899cc529f5d0686a530ac145d68393c858f08edaada21f17e704b7c0c0",
818                "expectException": "TransactionException.GAS_LIMIT_EXCEEDS_MAXIMUM",
819                "rlp_decoded": {
820                    "blockHeader": {
821                        "parentHash": "0xd4c4adfc3e91b0f8855851d598b43c9aa24e46dc03463a1e6e39154a3b9baf11",
822                        "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
823                        "coinbase": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba",
824                        "stateRoot": "0x50671d216437ec3e13a03ff464ed91146fd61165e8adc1622e58d9be953ae4a5",
825                        "transactionsTrie": "0x4657b722e50dc4184f522f842bee4abeae676efe01b43d96ca1ca68695982cfd",
826                        "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
827                        "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
828                        "difficulty": "0x00",
829                        "number": "0x02",
830                        "gasLimit": "0x044aa200",
831                        "gasUsed": "0x00",
832                        "timestamp": "0x3a98",
833                        "extraData": "0x",
834                        "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
835                        "nonce": "0x0000000000000000",
836                        "baseFeePerGas": "0x07",
837                        "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
838                        "blobGasUsed": "0x00",
839                        "excessBlobGas": "0x00",
840                        "parentBeaconBlockRoot": "0x0000000000000000000000000000000000000000000000000000000000000000",
841                        "requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
842                        "hash": "0x64bf114af5b2312b734d3f7a94f15858210602292527a869c05e4f3083585385"
843                    },
844                    "transactions": [
845                        {
846                            "type": "0x00",
847                            "chainId": "0x01",
848                            "nonce": "0x01",
849                            "gasPrice": "0x0a",
850                            "gasLimit": "0x01c9c381",
851                            "to": "0x0000000000000000000000000000000000001000",
852                            "value": "0x00",
853                            "data": "0x",
854                            "v": "0x25",
855                            "r": "0x32fd9f592d89b3468bcee7034fab624e546d8efb4f27d62a53e4f7b1382430cc",
856                            "s": "0x6563508d39899cc529f5d0686a530ac145d68393c858f08edaada21f17e704b7",
857                            "sender": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
858                        }
859                    ],
860                    "uncleHeaders": [],
861                    "withdrawals": [],
862                    "blocknumber": "2"
863                }
864            }
865        ],
866        "sealEngine": "NoProof",
867        "_info": {
868            "hash": "0xa19f6207b969ec0c5baa2aa6218e6410818c163eb88be6b39e61955ed4cc50c5",
869            "comment": "`execution-spec-tests` generated test",
870            "filling-transition-tool": "ethereum-spec-evm-resolver 0.0.5",
871            "description": "Test transaction gas limit cap behavior at the Osaka transition.\n\n    Before timestamp 15000: No gas limit cap (transactions with gas > 30M are valid)\n    At/after timestamp 15000: Gas limit cap of 30M is enforced",
872            "url": "https://github.com/ethereum/execution-spec-tests/blob/fusaka-devnet-2@v1.2.0/tests/osaka/eip7825_transaction_gas_limit_cap/test_tx_gas_limit.py#L118",
873            "fixture-format": "blockchain_test",
874            "reference-spec": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-7825.md",
875            "reference-spec-version": "47cbfed315988c0bd4d10002c110ae402504cd94",
876            "eels-resolution": {
877                "git-url": "https://github.com/spencer-tb/execution-specs.git",
878                "branch": "forks/osaka",
879                "commit": "bc829598ff1923f9215a6a407ef74621077fd3bb"
880            }
881        }
882    }
883}
884    "#;
885}