From 37e76bc01ac19d7a5912f1a436e94e57ec0eeb87 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Mon, 22 May 2023 08:04:35 +0000 Subject: [PATCH] fix: make runtime build on 0.9.42 --- --- a/Cargo.lock +++ b/Cargo.lock @@ -13701,6 +13701,7 @@ dependencies = [ "app-promotion-rpc", "fc-db", + "fc-mapping-sync", "fc-rpc", "fc-rpc-core", "fp-rpc", --- a/runtime/common/config/ethereum.rs +++ b/runtime/common/config/ethereum.rs @@ -4,7 +4,7 @@ traits::{FindAuthor}, parameter_types, ConsensusEngineId, }; -use sp_runtime::{RuntimeAppPublic, Perbill}; +use sp_runtime::{RuntimeAppPublic, Perbill, traits::ConstU32}; use crate::{ runtime_common::{ config::sponsoring::DefaultSponsoringRateLimit, @@ -84,6 +84,8 @@ type OnChargeTransaction = pallet_evm::EVMCurrencyAdapter; type TransactionValidityHack = pallet_evm_transaction_payment::TransactionValidityHack; type FindAuthor = EthereumFindAuthor; + type Timestamp = crate::Timestamp; + type WeightInfo = pallet_evm::weights::SubstrateWeight; } impl pallet_evm_migration::Config for Runtime { @@ -99,6 +101,9 @@ type RuntimeEvent = RuntimeEvent; type StateRoot = pallet_ethereum::IntermediateStateRoot; type PostLogContent = PostBlockAndTxnHashes; + // Space for revert reason. Ethereum transactions are not cheap, and overall size is much less + // than the substrate tx size, so we can afford this + type ExtraDataLength = ConstU32<32>; } parameter_types! { --- a/runtime/common/config/substrate.rs +++ b/runtime/common/config/substrate.rs @@ -36,7 +36,7 @@ use pallet_transaction_payment::{Multiplier, ConstFeeMultiplier}; use crate::{ runtime_common::DealWithFees, Runtime, RuntimeEvent, RuntimeCall, RuntimeOrigin, PalletInfo, - System, Balances, Treasury, SS58Prefix, Version, + System, Balances, SS58Prefix, Version, }; use up_common::{types::*, constants::*}; @@ -142,10 +142,15 @@ type Balance = Balance; /// The ubiquitous event type. type RuntimeEvent = RuntimeEvent; - type DustRemoval = Treasury; + // FIXME: Is () the new treasury? + type DustRemoval = (); type ExistentialDeposit = ExistentialDeposit; type AccountStore = System; type WeightInfo = pallet_balances::weights::SubstrateWeight; + type HoldIdentifier = [u8; 16]; + type FreezeIdentifier = [u8; 16]; + type MaxHolds = (); + type MaxFreezes = (); } parameter_types! { --- a/runtime/common/config/xcm/mod.rs +++ b/runtime/common/config/xcm/mod.rs @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . use frame_support::{ - traits::{Everything, Nothing, Get, ConstU32}, + traits::{Everything, Nothing, Get, ConstU32, ProcessMessageError}, parameter_types, }; use frame_system::EnsureRoot; @@ -114,26 +114,18 @@ ); pub trait TryPass { -<<<<<<< HEAD - fn try_pass(origin: &MultiLocation, message: &mut [Instruction]) -> Result<(), ()>; -======= fn try_pass( origin: &MultiLocation, message: &mut [Instruction], ) -> Result<(), ProcessMessageError>; ->>>>>>> fd33b0ac (fixup pallets) } #[impl_trait_for_tuples::impl_for_tuples(30)] impl TryPass for Tuple { -<<<<<<< HEAD - fn try_pass(origin: &MultiLocation, message: &mut [Instruction]) -> Result<(), ()> { -======= fn try_pass( origin: &MultiLocation, message: &mut [Instruction], ) -> Result<(), ProcessMessageError> { ->>>>>>> fd33b0ac (fixup pallets) for_tuples!( #( Tuple::try_pass(origin, message)?; )* ); @@ -159,7 +151,7 @@ message: &mut [Instruction], max_weight: Weight, weight_credit: &mut Weight, - ) -> Result<(), ()> { + ) -> Result<(), ProcessMessageError> { Deny::try_pass(origin, message)?; Allow::should_execute(origin, message, max_weight, weight_credit) } @@ -227,6 +219,7 @@ type SovereignAccountOf = LocationToAccountId; type MaxLockers = ConstU32<8>; type WeightInfo = crate::weights::xcm::SubstrateWeight; + type AdminOrigin = EnsureRoot; #[cfg(feature = "runtime-benchmarks")] type ReachableDest = ReachableDest; } --- a/runtime/common/config/xcm/nativeassets.rs +++ b/runtime/common/config/xcm/nativeassets.rs @@ -102,7 +102,8 @@ for UsingOnlySelfCurrencyComponents { fn new() -> Self { - Self(0, Zero::zero(), PhantomData) + // FIXME: benchmark + Self(Weight::from_parts(0, 0), Zero::zero(), PhantomData) } fn buy_weight(&mut self, _weight: Weight, payment: Assets) -> Result { --- a/runtime/common/runtime_apis.rs +++ b/runtime/common/runtime_apis.rs @@ -35,7 +35,7 @@ ) => { use sp_std::prelude::*; use sp_api::impl_runtime_apis; - use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H256, U256, H160, Bytes}; + use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H256, U256, H160}; use sp_runtime::{ Permill, traits::Block as BlockT, @@ -250,6 +250,14 @@ fn metadata() -> OpaqueMetadata { OpaqueMetadata::new(Runtime::metadata().into()) } + + fn metadata_at_version(version: u32) -> Option { + Runtime::metadata_at_version(version) + } + + fn metadata_versions() -> sp_std::vec::Vec { + Runtime::metadata_versions() + } } impl sp_block_builder::BlockBuilder for Runtime { @@ -311,7 +319,7 @@ fn account_code_at(address: H160) -> Vec { use pallet_evm::OnMethodCall; ::OnMethodCall::get_code(&address) - .unwrap_or_else(|| EVM::account_codes(address)) + .unwrap_or_else(|| pallet_evm::AccountCodes::::get(address)) } fn author() -> H160 { @@ -321,7 +329,7 @@ fn storage_at(address: H160, index: U256) -> H256 { let mut tmp = [0u8; 32]; index.to_big_endian(&mut tmp); - EVM::account_storages(address, H256::from_slice(&tmp[..])) + pallet_evm::AccountStorages::::get(address, H256::from_slice(&tmp[..])) } #[allow(clippy::redundant_closure)] @@ -401,15 +409,15 @@ } fn current_transaction_statuses() -> Option> { - Ethereum::current_transaction_statuses() + pallet_ethereum::CurrentTransactionStatuses::::get() } fn current_block() -> Option { - Ethereum::current_block() + pallet_ethereum::CurrentBlock::::get() } fn current_receipts() -> Option> { - Ethereum::current_receipts() + pallet_ethereum::CurrentReceipts::::get() } fn current_all() -> ( @@ -418,9 +426,9 @@ Option> ) { ( - Ethereum::current_block(), - Ethereum::current_receipts(), - Ethereum::current_transaction_statuses() + pallet_ethereum::CurrentBlock::::get(), + pallet_ethereum::CurrentReceipts::::get(), + pallet_ethereum::CurrentTransactionStatuses::::get() ) } @@ -653,12 +661,12 @@ impl up_pov_estimate_rpc::PovEstimateApi for Runtime { #[allow(unused_variables)] - fn pov_estimate(uxt: Bytes) -> ApplyExtrinsicResult { + fn pov_estimate(uxt: Vec) -> ApplyExtrinsicResult { #[cfg(feature = "pov-estimate")] { use codec::Decode; - let uxt_decode = <::Extrinsic as Decode>::decode(&mut &*uxt) + let uxt_decode = <::Extrinsic as Decode>::decode(&mut &uxt) .map_err(|_| DispatchError::Other("failed to decode the extrinsic")); let uxt = match uxt_decode { --- a/runtime/common/weights/xcm.rs +++ b/runtime/common/weights/xcm.rs @@ -244,5 +244,9 @@ .saturating_add(T::DbWeight::get().reads(9_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } + + fn force_suspension() -> Weight { + Default::default() + } } --- a/runtime/opal/Cargo.toml +++ b/runtime/opal/Cargo.toml @@ -220,7 +220,7 @@ orml-xcm-support = { workspace = true } pallet-aura = { workspace = true } pallet-authorship = { workspace = true } -pallet-balances = { workspace = true } +pallet-balances = { features = ["insecure_zero_ed"], workspace = true } pallet-preimage = { workspace = true } pallet-session = { workspace = true } pallet-sudo = { workspace = true } --- a/runtime/quartz/Cargo.toml +++ b/runtime/quartz/Cargo.toml @@ -212,7 +212,7 @@ orml-xcm-support = { workspace = true } pallet-aura = { workspace = true } pallet-authorship = { workspace = true } -pallet-balances = { workspace = true } +pallet-balances = { features = ["insecure_zero_ed"], workspace = true } pallet-preimage = { workspace = true } pallet-session = { workspace = true } pallet-sudo = { workspace = true } --- a/runtime/tests/Cargo.toml +++ b/runtime/tests/Cargo.toml @@ -9,37 +9,37 @@ refungible = [] [dependencies] -up-data-structs = { default-features = false, path = "../../primitives/data-structs" } +up-data-structs = { workspace = true } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -sp-std = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +sp-core = { workspace = true } +sp-io = { workspace = true } +sp-runtime = { workspace = true } +sp-std = { workspace = true } -frame-support = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +frame-support = { workspace = true } +frame-system = { workspace = true } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.42" } +pallet-balances = { features = ["insecure_zero_ed"], workspace = true } +pallet-timestamp = { workspace = true } +pallet-transaction-payment = { workspace = true } -pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.42" } -pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v0.9.42" } +pallet-ethereum = { workspace = true } +pallet-evm = { workspace = true } -pallet-common.path = "../../pallets/common" -pallet-fungible.path = "../../pallets/fungible" -pallet-nonfungible.path = "../../pallets/nonfungible" -pallet-refungible.path = "../../pallets/refungible" -pallet-structure.path = "../../pallets/structure" -pallet-unique.path = "../../pallets/unique" +pallet-common = { workspace = true } +pallet-fungible = { workspace = true } +pallet-nonfungible = { workspace = true } +pallet-refungible = { workspace = true } +pallet-structure = { workspace = true } +pallet-unique = { workspace = true } -pallet-evm-coder-substrate.path = "../../pallets/evm-coder-substrate" +pallet-evm-coder-substrate = { workspace = true } -parity-scale-codec = { version = "3.2.2", default-features = false, features = ["derive"] } -scale-info = "*" +codec = { workspace = true } +scale-info = { workspace = true } evm-coder = { workspace = true } -up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v0.9.42" } +up-sponsorship = { workspace = true } xcm = { workspace = true } pallet-xcm = { workspace = true } pallet-configuration = { workspace = true } --- a/runtime/unique/Cargo.toml +++ b/runtime/unique/Cargo.toml @@ -211,7 +211,7 @@ orml-xcm-support = { workspace = true } pallet-aura = { workspace = true } pallet-authorship = { workspace = true } -pallet-balances = { workspace = true } +pallet-balances = { features = ["insecure_zero_ed"], workspace = true } pallet-preimage = { workspace = true } pallet-session = { workspace = true } pallet-sudo = { workspace = true } -- gitstuff