Skip to content

Commit 4dddde8

Browse files
authored
Implement solidity codecs on xcm::latest (polkadot-evm#1614)
* feat: ✨ implement solidity codecs on xcm::latest * refactor: 🔥 delete commented code * fix: 🐛 manage missing cases for network_id_from_bytes
1 parent 06b861f commit 4dddde8

File tree

1 file changed

+7
-19
lines changed
  • precompiles/src/solidity/codec

1 file changed

+7
-19
lines changed

precompiles/src/solidity/codec/xcm.rs

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,10 @@ use alloc::{string::String, vec::Vec};
2323
use frame_support::{ensure, traits::ConstU32};
2424
use sp_core::H256;
2525
use sp_weights::Weight;
26-
use xcm::lts::{Junction, Junctions, Location, NetworkId};
26+
use xcm::{
27+
latest::{Junction, Junctions, Location, NetworkId},
28+
v5::{ROCOCO_GENESIS_HASH, WESTEND_GENESIS_HASH},
29+
};
2730

2831
use crate::solidity::{
2932
codec::{bytes::*, Codec, Reader, Writer},
@@ -76,21 +79,6 @@ pub(crate) fn network_id_to_bytes(network_id: Option<NetworkId>) -> Vec<u8> {
7679
encoded.append(&mut block_hash.into());
7780
encoded
7881
}
79-
Some(NetworkId::Westend) => {
80-
encoded.push(5u8);
81-
encoded.push(4u8);
82-
encoded
83-
}
84-
Some(NetworkId::Rococo) => {
85-
encoded.push(6u8);
86-
encoded.push(5u8);
87-
encoded
88-
}
89-
Some(NetworkId::Wococo) => {
90-
encoded.push(7u8);
91-
encoded.push(6u8);
92-
encoded
93-
}
9482
Some(NetworkId::Ethereum { chain_id }) => {
9583
encoded.push(8u8);
9684
encoded.push(7u8);
@@ -152,9 +140,9 @@ pub(crate) fn network_id_from_bytes(encoded_bytes: Vec<u8>) -> MayRevert<Option<
152140
block_hash,
153141
}))
154142
}
155-
5 => Ok(Some(NetworkId::Westend)),
156-
6 => Ok(Some(NetworkId::Rococo)),
157-
7 => Ok(Some(NetworkId::Wococo)),
143+
5 => Ok(Some(NetworkId::ByGenesis(WESTEND_GENESIS_HASH))),
144+
6 => Ok(Some(NetworkId::ByGenesis(ROCOCO_GENESIS_HASH))),
145+
7 => Err(RevertReason::custom("Wococo Network is no longer supported").into()),
158146
8 => {
159147
let mut chain_id: [u8; 8] = Default::default();
160148
chain_id.copy_from_slice(encoded_network_id.read_raw_bytes(8)?);

0 commit comments

Comments
 (0)