From 2b75c75bb2da9667f779a163133e613fcd5fa227 Mon Sep 17 00:00:00 2001 From: Rodrigo Quelhas Date: Thu, 2 May 2024 19:06:42 +0100 Subject: [PATCH 1/7] use Cancun config --- frame/evm/src/lib.rs | 4 ++-- precompiles/src/testing/handle.rs | 2 +- primitives/evm/src/validation.rs | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frame/evm/src/lib.rs b/frame/evm/src/lib.rs index d0a1c91c7e..cbc2e4a1c1 100644 --- a/frame/evm/src/lib.rs +++ b/frame/evm/src/lib.rs @@ -185,7 +185,7 @@ pub mod pallet { /// EVM config used in the module. fn config() -> &'static EvmConfig { - &SHANGHAI_CONFIG + &CANCUN_CONFIG } } @@ -792,7 +792,7 @@ impl GasWeightMapping for FixedGasWeightMapping { } } -static SHANGHAI_CONFIG: EvmConfig = EvmConfig::shanghai(); +static CANCUN_CONFIG: EvmConfig = EvmConfig::cancun(); impl Pallet { /// Check whether an account is empty. diff --git a/precompiles/src/testing/handle.rs b/precompiles/src/testing/handle.rs index 0e869700f2..a984a0d6b4 100644 --- a/precompiles/src/testing/handle.rs +++ b/precompiles/src/testing/handle.rs @@ -118,7 +118,7 @@ impl PrecompileHandle for MockHandle { if self .record_cost(crate::evm::costs::call_cost( context.apparent_value, - &evm::Config::london(), + &evm::Config::cancun(), )) .is_err() { diff --git a/primitives/evm/src/validation.rs b/primitives/evm/src/validation.rs index 4ad7bd2cbe..5f98d3629a 100644 --- a/primitives/evm/src/validation.rs +++ b/primitives/evm/src/validation.rs @@ -271,7 +271,7 @@ mod tests { UnknownError, } - static SHANGHAI_CONFIG: evm::Config = evm::Config::shanghai(); + static CANCUN_CONFIG: evm::Config = evm::Config::cancun(); impl From for TestError { fn from(e: TransactionValidationError) -> Self { @@ -345,7 +345,7 @@ mod tests { } = input; CheckEvmTransaction::::new( CheckEvmTransactionConfig { - evm_config: &SHANGHAI_CONFIG, + evm_config: &CANCUN_CONFIG, block_gas_limit: blockchain_gas_limit, base_fee: blockchain_base_fee, chain_id: blockchain_chain_id, From c3501860bdf5186075c45d6f8360ea83b0332771 Mon Sep 17 00:00:00 2001 From: Rodrigo Quelhas Date: Fri, 3 May 2024 15:52:07 +0100 Subject: [PATCH 2/7] feat: support transient storage (EIP-1153) --- frame/evm/src/runner/stack.rs | 13 ++++++++ ts-tests/contracts/eip1153.sol | 57 ++++++++++++++++++++++++++++++++++ ts-tests/package.json | 2 +- ts-tests/tests/test-eip1153.ts | 54 ++++++++++++++++++++++++++++++++ ts-tests/truffle-config.js | 2 +- 5 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 ts-tests/contracts/eip1153.sol create mode 100644 ts-tests/tests/test-eip1153.ts diff --git a/frame/evm/src/runner/stack.rs b/frame/evm/src/runner/stack.rs index b252c95c08..8b0a792b5b 100644 --- a/frame/evm/src/runner/stack.rs +++ b/frame/evm/src/runner/stack.rs @@ -725,6 +725,7 @@ pub struct SubstrateStackState<'vicinity, 'config, T> { vicinity: &'vicinity Vicinity, substate: SubstrateStackSubstate<'config>, original_storage: BTreeMap<(H160, H256), H256>, + transient_storage: BTreeMap<(H160, H256), H256>, recorded: Recorded, weight_info: Option, storage_meter: Option, @@ -750,6 +751,7 @@ impl<'vicinity, 'config, T: Config> SubstrateStackState<'vicinity, 'config, T> { }, _marker: PhantomData, original_storage: BTreeMap::new(), + transient_storage: BTreeMap::new(), recorded: Default::default(), weight_info, storage_meter, @@ -844,6 +846,13 @@ where >::get(address, index) } + fn transient_storage(&self, address: H160, index: H256) -> H256 { + self.transient_storage + .get(&(address, index)) + .copied() + .unwrap_or_default() + } + fn original_storage(&self, address: H160, index: H256) -> Option { Some( self.original_storage @@ -930,6 +939,10 @@ where } } + fn set_transient_storage(&mut self, address: H160, key: H256, value: H256) { + self.transient_storage.insert((address, key), value); + } + fn reset_storage(&mut self, address: H160) { #[allow(deprecated)] let _ = >::remove_prefix(address, None); diff --git a/ts-tests/contracts/eip1153.sol b/ts-tests/contracts/eip1153.sol new file mode 100644 index 0000000000..92ec078f21 --- /dev/null +++ b/ts-tests/contracts/eip1153.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.24; + +contract ReentrancyProtected { + // A constant key for the reentrancy guard stored in Transient Storage. + // This acts as a unique identifier for the reentrancy lock. + bytes32 constant REENTRANCY_GUARD = keccak256("REENTRANCY_GUARD"); + + // Modifier to prevent reentrant calls. + // It checks if the reentrancy guard is set (indicating an ongoing execution) + // and sets the guard before proceeding with the function execution. + // After the function executes, it resets the guard to allow future calls. + modifier nonReentrant() { + // Ensure the guard is not set (i.e., no ongoing execution). + require(tload(REENTRANCY_GUARD) == 0, "Reentrant call detected."); + + // Set the guard to block reentrant calls. + tstore(REENTRANCY_GUARD, 1); + + _; // Execute the function body. + + // Reset the guard after execution to allow future calls. + tstore(REENTRANCY_GUARD, 0); + } + + // Uses inline assembly to access the Transient Storage's tstore operation. + function tstore(bytes32 location, uint value) private { + assembly { + tstore(location, value) + } + } + + // Uses inline assembly to access the Transient Storage's tload operation. + // Returns the value stored at the given location. + function tload(bytes32 location) private returns (uint value) { + assembly { + value := tload(location) + } + } + + function nonReentrantMethod() public nonReentrant() { + (bool success, bytes memory result) = msg.sender.call(""); + if (!success) { + assembly { + revert(add(32, result), mload(result)) + } + } + } + + function test() external { + this.nonReentrantMethod(); + } + + receive() external payable { + this.nonReentrantMethod(); + } +} \ No newline at end of file diff --git a/ts-tests/package.json b/ts-tests/package.json index 7ed4d45ac7..cf0184dba4 100644 --- a/ts-tests/package.json +++ b/ts-tests/package.json @@ -7,7 +7,7 @@ "fmt-check": "prettier ./tests --check", "fmt": "prettier ./tests --write", "build": "truffle compile", - "test": "mocha -r ts-node/register 'tests/**/*.ts'", + "test": "mocha -r ts-node/register 'tests/test-eip1153.ts'", "test-sql": "FRONTIER_BACKEND_TYPE='sql' mocha -r ts-node/register 'tests/**/*.ts'" }, "author": "", diff --git a/ts-tests/tests/test-eip1153.ts b/ts-tests/tests/test-eip1153.ts new file mode 100644 index 0000000000..ef6fbe2151 --- /dev/null +++ b/ts-tests/tests/test-eip1153.ts @@ -0,0 +1,54 @@ +import { expect, use as chaiUse } from "chai"; +import chaiAsPromised from "chai-as-promised"; +import { AbiItem } from "web3-utils"; + +import ReentrancyProtected from "../build/contracts/ReentrancyProtected.json"; +import { GENESIS_ACCOUNT, GENESIS_ACCOUNT_PRIVATE_KEY } from "./config"; +import { createAndFinalizeBlock, customRequest, describeWithFrontier } from "./util"; + +chaiUse(chaiAsPromised); + +describeWithFrontier("Frontier RPC (EIP-1153)", (context) => { + const TEST_CONTRACT_BYTECODE = ReentrancyProtected.bytecode; + const TEST_CONTRACT_ABI = ReentrancyProtected.abi as AbiItem[]; + let contract_address: string = null; + + // Those test are ordered. In general this should be avoided, but due to the time it takes + // to spin up a frontier node, it saves a lot of time. + + before("create the contract", async function () { + this.timeout(15000); + const tx = await context.web3.eth.accounts.signTransaction( + { + from: GENESIS_ACCOUNT, + data: TEST_CONTRACT_BYTECODE, + value: "0x00", + gasPrice: "0x3B9ACA00", + gas: "0x100000", + }, + GENESIS_ACCOUNT_PRIVATE_KEY + ); + await customRequest(context.web3, "eth_sendRawTransaction", [tx.rawTransaction]); + await createAndFinalizeBlock(context.web3); + + const receipt = await context.web3.eth.getTransactionReceipt(tx.transactionHash); + contract_address = receipt.contractAddress; + }); + + it("should detect reentrant call and revert", async function () { + const contract = new context.web3.eth.Contract(TEST_CONTRACT_ABI, contract_address, { + from: GENESIS_ACCOUNT, + gasPrice: "0x3B9ACA00" + }); + + try { + await contract.methods.test().call(); + } catch (error) { + return expect(error.message).to.be.eq( + "Returned error: VM Exception while processing transaction: revert Reentrant call detected." + ); + } + + expect.fail("Expected the contract call to fail"); + }); +}); diff --git a/ts-tests/truffle-config.js b/ts-tests/truffle-config.js index 3a2b265974..16e922a0f7 100644 --- a/ts-tests/truffle-config.js +++ b/ts-tests/truffle-config.js @@ -85,7 +85,7 @@ module.exports = { // Configure your compilers compilers: { solc: { - version: "0.8.2", // Fetch exact version from solc-bin (default: truffle's version) + version: "0.8.25", // Fetch exact version from solc-bin (default: truffle's version) docker: true, // Use "0.5.1" you've installed locally with docker (default: false) // settings: { // See the solidity docs for advice about optimization and evmVersion // optimizer: { From ed47222e85ccaaaab0ae96b669cba3a6c2b60d74 Mon Sep 17 00:00:00 2001 From: Rodrigo Quelhas Date: Fri, 3 May 2024 15:56:32 +0100 Subject: [PATCH 3/7] Update evm dependency --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index afa83a1edf..2f9e55d6ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2291,7 +2291,7 @@ dependencies = [ [[package]] name = "evm" version = "0.41.1" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#d8991ec727ad0fb64fe9957a3cd307387a6701e4" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" dependencies = [ "auto_impl", "environmental", @@ -2311,7 +2311,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#d8991ec727ad0fb64fe9957a3cd307387a6701e4" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" dependencies = [ "parity-scale-codec", "primitive-types", @@ -2322,7 +2322,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#d8991ec727ad0fb64fe9957a3cd307387a6701e4" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" dependencies = [ "environmental", "evm-core", @@ -2333,7 +2333,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#d8991ec727ad0fb64fe9957a3cd307387a6701e4" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" dependencies = [ "auto_impl", "environmental", diff --git a/Cargo.toml b/Cargo.toml index 6b7583e787..68c855bcb8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ derive_more = "0.99" environmental = { version = "1.1.4", default-features = false } ethereum = { version = "0.15.0", default-features = false } ethereum-types = { version = "0.14.1", default-features = false } -evm = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-v1.7.2", default-features = false } +evm = { git = "https://github.com/moonbeam-foundation/evm", branch = "v0.4.1-cancun", default-features = false } futures = "0.3.30" hash-db = { version = "0.16.0", default-features = false } hex = { version = "0.4.3", default-features = false, features = ["alloc"] } From 7dfd999d9e084c6e7b153bb0dd9bc567c8849d70 Mon Sep 17 00:00:00 2001 From: Agusrodri Date: Mon, 6 May 2024 08:36:09 -0700 Subject: [PATCH 4/7] update evm pin --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f9e55d6ff..5588ed8312 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2291,7 +2291,7 @@ dependencies = [ [[package]] name = "evm" version = "0.41.1" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" dependencies = [ "auto_impl", "environmental", @@ -2311,7 +2311,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" dependencies = [ "parity-scale-codec", "primitive-types", @@ -2322,7 +2322,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" dependencies = [ "environmental", "evm-core", @@ -2333,7 +2333,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#3a5847de924dee90179cd4cb540fd06995204fcd" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" dependencies = [ "auto_impl", "environmental", From 982dab02b0e70e04567f91cb41a7bda8830dc24a Mon Sep 17 00:00:00 2001 From: Ahmad Kaouk Date: Wed, 22 May 2024 07:52:49 +0200 Subject: [PATCH 5/7] feat: support cancun selfdestruct changes (EIP-6780) --- Cargo.lock | 8 ++++---- frame/evm/src/lib.rs | 26 ++++---------------------- frame/evm/src/runner/stack.rs | 25 ++++++++++++++++++++++++- frame/evm/src/tests.rs | 2 +- 4 files changed, 33 insertions(+), 28 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5588ed8312..211e149390 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2291,7 +2291,7 @@ dependencies = [ [[package]] name = "evm" version = "0.41.1" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" dependencies = [ "auto_impl", "environmental", @@ -2311,7 +2311,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" dependencies = [ "parity-scale-codec", "primitive-types", @@ -2322,7 +2322,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" dependencies = [ "environmental", "evm-core", @@ -2333,7 +2333,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#cfcc81a1e13f8d6c96b6c0c10015ebf5c85b253a" +source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" dependencies = [ "auto_impl", "environmental", diff --git a/frame/evm/src/lib.rs b/frame/evm/src/lib.rs index cbc2e4a1c1..71896e73f5 100644 --- a/frame/evm/src/lib.rs +++ b/frame/evm/src/lib.rs @@ -75,7 +75,7 @@ use scale_info::TypeInfo; // Substrate use frame_support::{ dispatch::{DispatchResultWithPostInfo, Pays, PostDispatchInfo}, - storage::{child::KillStorageResult, KeyPrefixIterator}, + storage::KeyPrefixIterator, traits::{ fungible::{Balanced, Credit, Debt}, tokens::{ @@ -821,32 +821,14 @@ impl Pallet { /// Remove an account. pub fn remove_account(address: &H160) { if >::contains_key(address) { - // Remember to call `dec_sufficients` when clearing Suicided. - >::insert(address, ()); - - // In theory, we can always have pre-EIP161 contracts, so we - // make sure the account nonce is at least one. let account_id = T::AddressMapping::into_account_id(*address); - frame_system::Pallet::::inc_account_nonce(&account_id); + let _ = frame_system::Pallet::::dec_sufficients(&account_id); } >::remove(address); >::remove(address); - - if T::SuicideQuickClearLimit::get() > 0 { - #[allow(deprecated)] - let res = >::remove_prefix(address, Some(T::SuicideQuickClearLimit::get())); - - match res { - KillStorageResult::AllRemoved(_) => { - >::remove(address); - - let account_id = T::AddressMapping::into_account_id(*address); - let _ = frame_system::Pallet::::dec_sufficients(&account_id); - } - KillStorageResult::SomeRemaining(_) => (), - } - } + #[allow(deprecated)] + let _ = >::remove_prefix(address, None); } /// Create an account. diff --git a/frame/evm/src/runner/stack.rs b/frame/evm/src/runner/stack.rs index 8b0a792b5b..041e435579 100644 --- a/frame/evm/src/runner/stack.rs +++ b/frame/evm/src/runner/stack.rs @@ -620,6 +620,7 @@ where struct SubstrateStackSubstate<'config> { metadata: StackSubstateMetadata<'config>, deletes: BTreeSet, + creates: BTreeSet, logs: Vec, parent: Option>>, } @@ -638,6 +639,7 @@ impl<'config> SubstrateStackSubstate<'config> { metadata: self.metadata.spit_child(gas_limit, is_static), parent: None, deletes: BTreeSet::new(), + creates: BTreeSet::new(), logs: Vec::new(), }; mem::swap(&mut entering, self); @@ -654,7 +656,7 @@ impl<'config> SubstrateStackSubstate<'config> { self.metadata.swallow_commit(exited.metadata)?; self.logs.append(&mut exited.logs); self.deletes.append(&mut exited.deletes); - + self.creates.append(&mut exited.creates); sp_io::storage::commit_transaction(); Ok(()) } @@ -689,10 +691,24 @@ impl<'config> SubstrateStackSubstate<'config> { false } + pub fn created(&self, address: H160) -> bool { + if self.creates.contains(&address) { + return true; + } + + if let Some(parent) = self.parent.as_ref() { + return parent.created(address); + } + + false + } + pub fn set_deleted(&mut self, address: H160) { self.deletes.insert(address); } + pub fn set_created(&mut self, address: H160) { self.creates.insert(address); } + pub fn log(&mut self, address: H160, topics: Vec, data: Vec) { self.logs.push(Log { address, @@ -746,6 +762,7 @@ impl<'vicinity, 'config, T: Config> SubstrateStackState<'vicinity, 'config, T> { substate: SubstrateStackSubstate { metadata, deletes: BTreeSet::new(), + creates: BTreeSet::new(), logs: Vec::new(), parent: None, }, @@ -900,6 +917,10 @@ where self.substate.deleted(address) } + fn created(&self, address: H160) -> bool { + self.substate.created(address) + } + fn inc_nonce(&mut self, address: H160) -> Result<(), ExitError> { let account_id = T::AddressMapping::into_account_id(address); frame_system::Pallet::::inc_account_nonce(&account_id); @@ -956,6 +977,8 @@ where self.substate.set_deleted(address) } + fn set_created(&mut self, address: H160) { self.substate.set_created(address); } + fn set_code(&mut self, address: H160, code: Vec) { log::debug!( target: "evm", diff --git a/frame/evm/src/tests.rs b/frame/evm/src/tests.rs index 455d2b3d19..4d503c2fac 100644 --- a/frame/evm/src/tests.rs +++ b/frame/evm/src/tests.rs @@ -1269,7 +1269,7 @@ fn handle_sufficient_reference() { assert_eq!(account_2.sufficients, 1); EVM::remove_account(&addr_2); let account_2 = frame_system::Account::::get(substrate_addr_2); - assert_eq!(account_2.sufficients, 1); + assert_eq!(account_2.sufficients, 0); }); } From cbb6e4995492119a3e1f58926f91d514222719e7 Mon Sep 17 00:00:00 2001 From: Ahmad Kaouk <56095276+ahmadkaouk@users.noreply.github.com> Date: Wed, 22 May 2024 13:25:11 +0200 Subject: [PATCH 6/7] avoid using deprecated method Co-authored-by: Rodrigo Quelhas <22591718+RomarQ@users.noreply.github.com> --- frame/evm/src/lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frame/evm/src/lib.rs b/frame/evm/src/lib.rs index 71896e73f5..ce1e5c087d 100644 --- a/frame/evm/src/lib.rs +++ b/frame/evm/src/lib.rs @@ -827,8 +827,7 @@ impl Pallet { >::remove(address); >::remove(address); - #[allow(deprecated)] - let _ = >::remove_prefix(address, None); + let _ = >::clear_prefix(address, u32::max_value(), None); } /// Create an account. From c05803ff807a6202d6b379d809edee4ff72125a4 Mon Sep 17 00:00:00 2001 From: Rodrigo Quelhas Date: Wed, 22 May 2024 15:42:44 +0100 Subject: [PATCH 7/7] update evm dependency --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 211e149390..57ffed8c38 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2291,7 +2291,7 @@ dependencies = [ [[package]] name = "evm" version = "0.41.1" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#84979790a742326880c9c418dabe0e9af496cd6a" dependencies = [ "auto_impl", "environmental", @@ -2311,7 +2311,7 @@ dependencies = [ [[package]] name = "evm-core" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#84979790a742326880c9c418dabe0e9af496cd6a" dependencies = [ "parity-scale-codec", "primitive-types", @@ -2322,7 +2322,7 @@ dependencies = [ [[package]] name = "evm-gasometer" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#84979790a742326880c9c418dabe0e9af496cd6a" dependencies = [ "environmental", "evm-core", @@ -2333,7 +2333,7 @@ dependencies = [ [[package]] name = "evm-runtime" version = "0.41.0" -source = "git+https://github.com/moonbeam-foundation/evm?branch=v0.4.1-cancun#8ee491bde0378d154e95ab13b80b8b1b205c3f10" +source = "git+https://github.com/moonbeam-foundation/evm?branch=moonbeam-polkadot-v1.7.2#84979790a742326880c9c418dabe0e9af496cd6a" dependencies = [ "auto_impl", "environmental", diff --git a/Cargo.toml b/Cargo.toml index 68c855bcb8..6b7583e787 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -52,7 +52,7 @@ derive_more = "0.99" environmental = { version = "1.1.4", default-features = false } ethereum = { version = "0.15.0", default-features = false } ethereum-types = { version = "0.14.1", default-features = false } -evm = { git = "https://github.com/moonbeam-foundation/evm", branch = "v0.4.1-cancun", default-features = false } +evm = { git = "https://github.com/moonbeam-foundation/evm", branch = "moonbeam-polkadot-v1.7.2", default-features = false } futures = "0.3.30" hash-db = { version = "0.16.0", default-features = false } hex = { version = "0.4.3", default-features = false, features = ["alloc"] }