From 1a568e2ace0f3a2e694e25d1d943386e75181032 Mon Sep 17 00:00:00 2001 From: DaniPopes <57450786+DaniPopes@users.noreply.github.com> Date: Tue, 16 Jul 2024 20:53:06 +0200 Subject: [PATCH] chore(deps): bump to revm 11 --- Cargo.lock | 78 +++++++++++++++++++++++--- Cargo.toml | 6 +- crates/revmc-builtins/src/lib.rs | 2 +- crates/revmc-context/src/lib.rs | 2 +- crates/revmc/src/compiler/translate.rs | 2 +- crates/revmc/src/tests/mod.rs | 2 +- crates/revmc/src/tests/runner.rs | 6 +- 7 files changed, 81 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ff0a40943..63261a5b4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,6 +44,19 @@ version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +[[package]] +name = "alloy-eips" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f76ecab54890cdea1e4808fc0891c7e6cfcf71fe1a9fe26810c7280ef768f4ed" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "c-kzg", + "once_cell", + "serde", +] + [[package]] name = "alloy-primitives" version = "0.7.6" @@ -72,10 +85,22 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b155716bab55763c95ba212806cf43d05bcc70e5f35b02bad20cf5ec7fe11fed" dependencies = [ + "alloy-rlp-derive", "arrayvec", "bytes", ] +[[package]] +name = "alloy-rlp-derive" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d83524c1f6162fcb5b0decf775498a125066c86dda6066ed609531b0e912f85a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.68", +] + [[package]] name = "anes" version = "0.1.6" @@ -407,6 +432,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62dc83a094a71d43eeadd254b1ec2d24cb6a0bb6cadce00df51f0db594711a32" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -431,6 +468,20 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" +[[package]] +name = "c-kzg" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "serde", +] + [[package]] name = "cast" version = "0.3.0" @@ -2059,9 +2110,9 @@ dependencies = [ [[package]] name = "revm" -version = "10.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355bde4e21578c241f9379fbb344a73d254969b5007239115e094dda1511cd34" +checksum = "44102920a77b38b0144f4b84dcaa31fe44746e78f53685c2ca0149af5312e048" dependencies = [ "auto_impl", "cfg-if", @@ -2072,9 +2123,9 @@ dependencies = [ [[package]] name = "revm-interpreter" -version = "6.0.0" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dfd24faa3cbbd96e0976103d1e174d6559b8036730f70415488ee21870d578" +checksum = "b2b319602039af3d130f792beba76592e7744bb3c4f2db5179758be33985a16b" dependencies = [ "paste", "phf", @@ -2084,11 +2135,12 @@ dependencies = [ [[package]] name = "revm-precompile" -version = "8.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c669c9b105dbb41133c17bf7f34d29368e358a7fee8fcc289e90dbfb024dfc4" +checksum = "86b441000a0d30e06269f822f42a13fa6bec922e951a84b643818651472c4fe6" dependencies = [ "aurora-engine-modexp", + "cfg-if", "k256", "once_cell", "revm-primitives", @@ -2099,10 +2151,11 @@ dependencies = [ [[package]] name = "revm-primitives" -version = "5.0.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "902184a7a781550858d4b96707098da357429f1e4545806fd5b589f455555cf2" +checksum = "b518f536bacee396eb28a43f0984b25b2cd80f052ba4f2e794d554d711c13f33" dependencies = [ + "alloy-eips", "alloy-primitives", "auto_impl", "bitflags 2.6.0", @@ -2687,6 +2740,15 @@ dependencies = [ "once_cell", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "tiny-keccak" version = "2.0.2" diff --git a/Cargo.toml b/Cargo.toml index a08626b61..9d2f85329 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,9 +44,9 @@ revmc-cranelift = { version = "0.1.0", path = "crates/revmc-cranelift", default- revmc-llvm = { version = "0.1.0", path = "crates/revmc-llvm", default-features = false } alloy-primitives = { version = "0.7.0", default-features = false } -revm = { version = "10.0.0", default-features = false } -revm-primitives = { version = "5.0.0", default-features = false } -revm-interpreter = { version = "6.0.0", default-features = false } +revm = { version = "11.0.0", default-features = false } +revm-primitives = { version = "6.0.0", default-features = false } +revm-interpreter = { version = "7.0.0", default-features = false } ruint = { version = "1.12.1", default-features = false } color-eyre = "0.6" diff --git a/crates/revmc-builtins/src/lib.rs b/crates/revmc-builtins/src/lib.rs index 9c1517729..23e5596ef 100644 --- a/crates/revmc-builtins/src/lib.rs +++ b/crates/revmc-builtins/src/lib.rs @@ -263,7 +263,7 @@ pub unsafe extern "C" fn __revmc_builtin_blockhash( ecx: &mut EvmContext<'_>, number_ptr: &mut EvmWord, ) -> InstructionResult { - let hash = try_host!(ecx.host.block_hash(number_ptr.to_u256())); + let hash = try_host!(ecx.host.block_hash(as_u64_saturated!(number_ptr.to_u256()))); *number_ptr = EvmWord::from_be_bytes(hash.0); InstructionResult::Continue } diff --git a/crates/revmc-context/src/lib.rs b/crates/revmc-context/src/lib.rs index 44a3f7705..fbf6db661 100644 --- a/crates/revmc-context/src/lib.rs +++ b/crates/revmc-context/src/lib.rs @@ -803,7 +803,7 @@ mod tests { ) -> Option { unimplemented!() } - fn block_hash(&mut self, number: U256) -> Option { + fn block_hash(&mut self, number: u64) -> Option { unimplemented!() } fn balance(&mut self, address: Address) -> Option<(U256, bool)> { diff --git a/crates/revmc/src/compiler/translate.rs b/crates/revmc/src/compiler/translate.rs index 491257f4e..1cff30268 100644 --- a/crates/revmc/src/compiler/translate.rs +++ b/crates/revmc/src/compiler/translate.rs @@ -995,7 +995,7 @@ impl<'a, B: Backend> FunctionCx<'a, B> { self.return_common(InstructionResult::Revert); goto_return!(no_branch); } - op::INVALID => goto_return!(fail InstructionResult::InvalidEFOpcode), + op::INVALID => goto_return!(fail InstructionResult::InvalidFEOpcode), op::SELFDESTRUCT => { self.fail_if_staticcall(InstructionResult::StateChangeDuringStaticCall); let sp = self.sp_after_inputs(); diff --git a/crates/revmc/src/tests/mod.rs b/crates/revmc/src/tests/mod.rs index 6906a16ad..3483e8ee3 100644 --- a/crates/revmc/src/tests/mod.rs +++ b/crates/revmc/src/tests/mod.rs @@ -48,7 +48,7 @@ tests! { }), invalid(@raw { bytecode: &[op::INVALID], - expected_return: InstructionResult::InvalidEFOpcode, + expected_return: InstructionResult::InvalidFEOpcode, expected_gas: 0, }), unknown(@raw { diff --git a/crates/revmc/src/tests/runner.rs b/crates/revmc/src/tests/runner.rs index 6e03ea326..49218e799 100644 --- a/crates/revmc/src/tests/runner.rs +++ b/crates/revmc/src/tests/runner.rs @@ -151,6 +151,7 @@ pub fn def_env() -> &'static Env { gas_priority_fee: Some(U256::from(0x69)), blob_hashes: vec![B256::repeat_byte(0xb7), B256::repeat_byte(0xb8)], max_fee_per_blob_gas: None, + authorization_list: None, #[cfg(feature = "optimism")] optimism: Default::default(), }, @@ -241,8 +242,8 @@ impl Host for TestHost { self.host.load_account(address) } - fn block_hash(&mut self, number: U256) -> Option { - Some(number.into()) + fn block_hash(&mut self, number: u64) -> Option { + Some(U256::from(number).into()) } fn balance(&mut self, address: Address) -> Option<(U256, bool)> { @@ -310,6 +311,7 @@ pub fn with_evm_context, &mut EvmStack, &mut usize Bytes::copy_from_slice(bytecode), )), hash: None, + bytecode_address: None, target_address: DEF_ADDR, caller: DEF_CALLER, call_value: DEF_VALUE,