Skip to content

Commit 8c2d86d

Browse files
yash-atreyarplusq
authored andcommitted
chore(deps): bumps alloy, revm, fork-db (foundry-rs#9150)
* chore(deps): bump alloy, revm, fork-db * fix: chain_id u64 * use SpecId::Osaka in place of PragueEOF * fix(`anvil`): test state files - tackle alloy breaking change alloy-rs/alloy#1486 * fix test * minify state json
1 parent 77aa0c8 commit 8c2d86d

File tree

23 files changed

+316
-205
lines changed

23 files changed

+316
-205
lines changed

Diff for: Cargo.lock

+173-136
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+27-27
Original file line numberDiff line numberDiff line change
@@ -170,39 +170,39 @@ foundry-linking = { path = "crates/linking" }
170170
# solc & compilation utilities
171171
foundry-block-explorers = { version = "0.7.3", default-features = false }
172172
foundry-compilers = { version = "0.11.6", default-features = false }
173-
foundry-fork-db = "0.4.0"
173+
foundry-fork-db = "0.5.0"
174174
solang-parser = "=0.3.3"
175175

176176
## revm
177-
revm = { version = "14.0.3", default-features = false }
178-
revm-primitives = { version = "10.0.0", default-features = false }
179-
revm-inspectors = { version = "0.8.0", features = ["serde"] }
177+
revm = { version = "16.0.0", default-features = false }
178+
revm-primitives = { version = "12.0.0", default-features = false }
179+
revm-inspectors = { version = "0.9.0", features = ["serde"] }
180180

181181
## ethers
182182
ethers-contract-abigen = { version = "2.0.14", default-features = false }
183183

184184
## alloy
185-
alloy-consensus = { version = "0.4.2", default-features = false }
186-
alloy-contract = { version = "0.4.2", default-features = false }
187-
alloy-eips = { version = "0.4.2", default-features = false }
188-
alloy-genesis = { version = "0.4.2", default-features = false }
189-
alloy-json-rpc = { version = "0.4.2", default-features = false }
190-
alloy-network = { version = "0.4.2", default-features = false }
191-
alloy-provider = { version = "0.4.2", default-features = false }
192-
alloy-pubsub = { version = "0.4.2", default-features = false }
193-
alloy-rpc-client = { version = "0.4.2", default-features = false }
194-
alloy-rpc-types = { version = "0.4.2", default-features = true }
195-
alloy-serde = { version = "0.4.2", default-features = false }
196-
alloy-signer = { version = "0.4.2", default-features = false }
197-
alloy-signer-aws = { version = "0.4.2", default-features = false }
198-
alloy-signer-gcp = { version = "0.4.2", default-features = false }
199-
alloy-signer-ledger = { version = "0.4.2", default-features = false }
200-
alloy-signer-local = { version = "0.4.2", default-features = false }
201-
alloy-signer-trezor = { version = "0.4.2", default-features = false }
202-
alloy-transport = { version = "0.4.2", default-features = false }
203-
alloy-transport-http = { version = "0.4.2", default-features = false }
204-
alloy-transport-ipc = { version = "0.4.2", default-features = false }
205-
alloy-transport-ws = { version = "0.4.2", default-features = false }
185+
alloy-consensus = { version = "0.5.2", default-features = false }
186+
alloy-contract = { version = "0.5.2", default-features = false }
187+
alloy-eips = { version = "0.5.2", default-features = false }
188+
alloy-genesis = { version = "0.5.2", default-features = false }
189+
alloy-json-rpc = { version = "0.5.2", default-features = false }
190+
alloy-network = { version = "0.5.2", default-features = false }
191+
alloy-provider = { version = "0.5.2", default-features = false }
192+
alloy-pubsub = { version = "0.5.2", default-features = false }
193+
alloy-rpc-client = { version = "0.5.2", default-features = false }
194+
alloy-rpc-types = { version = "0.5.2", default-features = true }
195+
alloy-serde = { version = "0.5.2", default-features = false }
196+
alloy-signer = { version = "0.5.2", default-features = false }
197+
alloy-signer-aws = { version = "0.5.2", default-features = false }
198+
alloy-signer-gcp = { version = "0.5.2", default-features = false }
199+
alloy-signer-ledger = { version = "0.5.2", default-features = false }
200+
alloy-signer-local = { version = "0.5.2", default-features = false }
201+
alloy-signer-trezor = { version = "0.5.2", default-features = false }
202+
alloy-transport = { version = "0.5.2", default-features = false }
203+
alloy-transport-http = { version = "0.5.2", default-features = false }
204+
alloy-transport-ipc = { version = "0.5.2", default-features = false }
205+
alloy-transport-ws = { version = "0.5.2", default-features = false }
206206

207207
## alloy-core
208208
alloy-dyn-abi = "0.8.5"
@@ -222,8 +222,8 @@ alloy-rlp = "0.3"
222222
alloy-trie = "0.6.0"
223223

224224
## op-alloy
225-
op-alloy-rpc-types = "0.3.3"
226-
op-alloy-consensus = "0.3.3"
225+
op-alloy-rpc-types = "0.5.0"
226+
op-alloy-consensus = "0.5.0"
227227

228228
# macros
229229
proc-macro2 = "1.0.82"

Diff for: crates/anvil/core/src/eth/block.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ impl Block {
7272
parent_beacon_block_root: partial_header.parent_beacon_block_root,
7373
nonce: partial_header.nonce,
7474
base_fee_per_gas: partial_header.base_fee,
75-
requests_root: None,
75+
requests_hash: None,
7676
},
7777
transactions,
7878
ommers,
@@ -160,7 +160,7 @@ mod tests {
160160
excess_blob_gas: Default::default(),
161161
parent_beacon_block_root: Default::default(),
162162
base_fee_per_gas: None,
163-
requests_root: None,
163+
requests_hash: None,
164164
};
165165

166166
let encoded = alloy_rlp::encode(&header);
@@ -201,7 +201,7 @@ mod tests {
201201
parent_beacon_block_root: None,
202202
nonce: B64::ZERO,
203203
base_fee_per_gas: None,
204-
requests_root: None,
204+
requests_hash: None,
205205
};
206206

207207
header.encode(&mut data);
@@ -234,7 +234,7 @@ mod tests {
234234
excess_blob_gas: None,
235235
parent_beacon_block_root: None,
236236
base_fee_per_gas: None,
237-
requests_root: None,
237+
requests_hash: None,
238238
};
239239
let header = Header::decode(&mut data.as_slice()).unwrap();
240240
assert_eq!(header, expected);
@@ -266,7 +266,7 @@ mod tests {
266266
blob_gas_used: None,
267267
excess_blob_gas: None,
268268
parent_beacon_block_root: None,
269-
requests_root: None,
269+
requests_hash: None,
270270
};
271271
assert_eq!(header.hash_slow(), expected_hash);
272272
}

Diff for: crates/anvil/core/src/eth/transaction/mod.rs

+24-2
Original file line numberDiff line numberDiff line change
@@ -1637,7 +1637,6 @@ pub fn convert_to_anvil_receipt(receipt: AnyTransactionReceipt) -> Option<Receip
16371637
to,
16381638
blob_gas_price,
16391639
blob_gas_used,
1640-
state_root,
16411640
inner: AnyReceiptEnvelope { inner: receipt_with_bloom, r#type },
16421641
authorization_list,
16431642
},
@@ -1656,7 +1655,6 @@ pub fn convert_to_anvil_receipt(receipt: AnyTransactionReceipt) -> Option<Receip
16561655
to,
16571656
blob_gas_price,
16581657
blob_gas_used,
1659-
state_root,
16601658
authorization_list,
16611659
inner: match r#type {
16621660
0x00 => TypedReceipt::Legacy(receipt_with_bloom),
@@ -1896,4 +1894,28 @@ mod tests {
18961894

18971895
assert_eq!(receipt, expected);
18981896
}
1897+
1898+
#[test]
1899+
fn deser_to_type_tx() {
1900+
let tx = r#"
1901+
{
1902+
"EIP1559": {
1903+
"chainId": "0x7a69",
1904+
"nonce": "0x0",
1905+
"gas": "0x5209",
1906+
"maxFeePerGas": "0x77359401",
1907+
"maxPriorityFeePerGas": "0x1",
1908+
"to": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
1909+
"value": "0x0",
1910+
"accessList": [],
1911+
"input": "0x",
1912+
"r": "0x85c2794a580da137e24ccc823b45ae5cea99371ae23ee13860fcc6935f8305b0",
1913+
"s": "0x41de7fa4121dab284af4453d30928241208bafa90cdb701fe9bc7054759fe3cd",
1914+
"yParity": "0x0",
1915+
"hash": "0x8c9b68e8947ace33028dba167354fde369ed7bbe34911b772d09b3c64b861515"
1916+
}
1917+
}"#;
1918+
1919+
let _typed_tx: TypedTransaction = serde_json::from_str(tx).unwrap();
1920+
}
18991921
}

Diff for: crates/anvil/src/eth/backend/db.rs

+54
Original file line numberDiff line numberDiff line change
@@ -559,3 +559,57 @@ impl IntoIterator for SerializableHistoricalStates {
559559
self.0.into_iter()
560560
}
561561
}
562+
563+
#[cfg(test)]
564+
mod test {
565+
use super::*;
566+
567+
#[test]
568+
fn test_deser_block() {
569+
let block = r#"{
570+
"header": {
571+
"parentHash": "0xceb0fe420d6f14a8eeec4319515b89acbb0bb4861cad9983d529ab4b1e4af929",
572+
"ommersHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
573+
"beneficiary": "0x0000000000000000000000000000000000000000",
574+
"stateRoot": "0xe1423fd180478ab4fd05a7103277d64496b15eb914ecafe71eeec871b552efd1",
575+
"transactionsRoot": "0x2b5598ef261e5f88e4303bb2b3986b3d5c0ebf4cd9977daebccae82a6469b988",
576+
"receiptsRoot": "0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa",
577+
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
578+
"difficulty": "0x0",
579+
"number": "0x2",
580+
"gasLimit": "0x1c9c380",
581+
"gasUsed": "0x5208",
582+
"timestamp": "0x66cdc823",
583+
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
584+
"nonce": "0x0000000000000000",
585+
"baseFeePerGas": "0x342a1c58",
586+
"blobGasUsed": "0x0",
587+
"excessBlobGas": "0x0",
588+
"extraData": "0x"
589+
},
590+
"transactions": [
591+
{
592+
"EIP1559": {
593+
"chainId": "0x7a69",
594+
"nonce": "0x0",
595+
"gas": "0x5209",
596+
"maxFeePerGas": "0x77359401",
597+
"maxPriorityFeePerGas": "0x1",
598+
"to": "0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266",
599+
"value": "0x0",
600+
"accessList": [],
601+
"input": "0x",
602+
"r": "0x85c2794a580da137e24ccc823b45ae5cea99371ae23ee13860fcc6935f8305b0",
603+
"s": "0x41de7fa4121dab284af4453d30928241208bafa90cdb701fe9bc7054759fe3cd",
604+
"yParity": "0x0",
605+
"hash": "0x8c9b68e8947ace33028dba167354fde369ed7bbe34911b772d09b3c64b861515"
606+
}
607+
}
608+
],
609+
"ommers": []
610+
}
611+
"#;
612+
613+
let _block: SerializableBlock = serde_json::from_str(block).unwrap();
614+
}
615+
}

Diff for: crates/anvil/src/eth/backend/mem/mod.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1868,7 +1868,7 @@ impl Backend {
18681868
gas_limit,
18691869
gas_used,
18701870
timestamp,
1871-
requests_root,
1871+
requests_hash,
18721872
extra_data,
18731873
mix_hash,
18741874
nonce,
@@ -1903,7 +1903,7 @@ impl Backend {
19031903
blob_gas_used,
19041904
excess_blob_gas,
19051905
parent_beacon_block_root,
1906-
requests_root,
1906+
requests_hash,
19071907
},
19081908
size: Some(size),
19091909
transactions: alloy_rpc_types::BlockTransactions::Hashes(
@@ -2415,7 +2415,6 @@ impl Backend {
24152415
block_hash: Some(block_hash),
24162416
from: info.from,
24172417
to: info.to,
2418-
state_root: None,
24192418
blob_gas_price: Some(blob_gas_price),
24202419
blob_gas_used: blob_gas_used.map(|g| g as u128),
24212420
authorization_list: None,

Diff for: crates/anvil/src/hardfork.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@ impl From<EthereumHardfork> for SpecId {
135135
EthereumHardfork::Cancun | EthereumHardfork::Latest => Self::CANCUN,
136136
EthereumHardfork::Prague => Self::PRAGUE,
137137
// TODO: switch to latest after activation
138-
EthereumHardfork::PragueEOF => Self::PRAGUE_EOF,
138+
// EOF is included in OSAKA from Revm 16.0.0
139+
EthereumHardfork::PragueEOF => Self::OSAKA,
139140
}
140141
}
141142
}

Diff for: crates/anvil/test-data/state-dump-legacy-stress.json

+1-1
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)