Skip to content

Commit

Permalink
[All] Split up manta_primitives lib.rs & [Manta&Calamari] Port parity…
Browse files Browse the repository at this point in the history
…'s fast-runtime cargo feature (#383)
  • Loading branch information
Adam Reif committed Mar 3, 2022
1 parent e7125c5 commit 52812c6
Show file tree
Hide file tree
Showing 32 changed files with 169 additions and 101 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/check_tests.yml
Expand Up @@ -98,7 +98,7 @@ jobs:
SCCACHE_DIR: /home/runner/.cache/sccache
run: |
source ${HOME}/.cargo/env
cargo test --all-features
cargo test --features=runtime-benchmarks,try-runtime
-
name: stop sccache server
run: sccache --stop-server || true
Expand Down
11 changes: 10 additions & 1 deletion CHANGELOG.md
@@ -1,6 +1,15 @@
# CHANGELOG

## Pending
## Unreleased
### Breaking changes

### Features
- [\#383](https://github.com/Manta-Network/Manta/pull/383) Calamari & Manta support `cargo build --features=fast-runtime`, setting most configurable timers to 2 or 5 minutes (instead of days)

### Improvements

### Bug fixes


### Features
- [\#419](https://github.com/Manta-Network/Manta/pull/419) Add asset manager and XCM support.
Expand Down
6 changes: 5 additions & 1 deletion node/Cargo.toml
Expand Up @@ -105,4 +105,8 @@ try-runtime = [
'calamari-runtime/try-runtime',
'manta-runtime/try-runtime',
'try-runtime-cli',
]
]
fast-runtime = [
"manta-runtime/fast-runtime",
"calamari-runtime/fast-runtime",
]
5 changes: 4 additions & 1 deletion node/src/chain_specs/mod.rs
Expand Up @@ -18,7 +18,10 @@
#![allow(dead_code)]
use cumulus_primitives_core::ParaId;
use hex_literal::hex;
use manta_primitives::{constants, AccountId, AuraId, Balance, Signature};
use manta_primitives::{
constants,
types::{AccountId, AuraId, Balance, Signature},
};
use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup};
use sc_service::{ChainType, Properties};
use serde::{Deserialize, Serialize};
Expand Down
14 changes: 7 additions & 7 deletions node/src/command.rs
Expand Up @@ -25,7 +25,7 @@ use cumulus_client_service::genesis::generate_genesis_block;
use cumulus_primitives_core::ParaId;
use log::info;

use manta_primitives::Header;
use manta_primitives::types::{AuraId, Header};
use polkadot_parachain::primitives::AccountIdConversion;
use sc_cli::{
ChainSpec, CliConfiguration, DefaultConfigurationValues, ImportParams, KeystoreParams,
Expand Down Expand Up @@ -214,7 +214,7 @@ macro_rules! construct_async_run {
runner.async_run(|$config| {
let $components = new_partial::<manta_runtime::RuntimeApi, MantaRuntimeExecutor, _>(
&$config,
crate::service::parachain_build_import_queue::<_, _, manta_primitives::AuraId>,
crate::service::parachain_build_import_queue::<_, _, AuraId>,
)?;
let task_manager = $components.task_manager;
{ $( $code )* }.map(|v| (v, task_manager))
Expand All @@ -223,7 +223,7 @@ macro_rules! construct_async_run {
runner.async_run(|$config| {
let $components = new_partial::<calamari_runtime::RuntimeApi, CalamariRuntimeExecutor, _>(
&$config,
crate::service::parachain_build_import_queue::<_, _, manta_primitives::AuraId>,
crate::service::parachain_build_import_queue::<_, _, AuraId>,
)?;
let task_manager = $components.task_manager;
{ $( $code )* }.map(|v| (v, task_manager))
Expand All @@ -232,7 +232,7 @@ macro_rules! construct_async_run {
runner.async_run(|$config| {
let $components = new_partial::<dolphin_runtime::RuntimeApi, DolphinRuntimeExecutor, _>(
&$config,
crate::service::parachain_build_import_queue::<_, _, manta_primitives::AuraId>,
crate::service::parachain_build_import_queue::<_, _, AuraId>,
)?;
let task_manager = $components.task_manager;
{ $( $code )* }.map(|v| (v, task_manager))
Expand Down Expand Up @@ -436,7 +436,7 @@ pub fn run() -> Result<()> {
crate::service::start_parachain_node::<
manta_runtime::RuntimeApi,
MantaRuntimeExecutor,
manta_primitives::AuraId,
AuraId,
>(config, polkadot_config, id)
.await
.map(|r| r.0)
Expand All @@ -445,7 +445,7 @@ pub fn run() -> Result<()> {
crate::service::start_parachain_node::<
calamari_runtime::RuntimeApi,
CalamariRuntimeExecutor,
manta_primitives::AuraId,
AuraId,
>(config, polkadot_config, id)
.await
.map(|r| r.0)
Expand All @@ -454,7 +454,7 @@ pub fn run() -> Result<()> {
crate::service::start_parachain_node::<
dolphin_runtime::RuntimeApi,
DolphinRuntimeExecutor,
manta_primitives::AuraId,
AuraId,
>(config, polkadot_config, id)
.await
.map(|r| r.0)
Expand Down
2 changes: 1 addition & 1 deletion node/src/rpc.rs
Expand Up @@ -25,7 +25,7 @@ use sp_api::ProvideRuntimeApi;
use sp_block_builder::BlockBuilder;
use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata};

use manta_primitives::{AccountId, Balance, Block, Index as Nonce};
use manta_primitives::types::{AccountId, Balance, Block, Index as Nonce};

/// A type representing all RPC extensions.
pub type RpcExtension = jsonrpc_core::IoHandler<sc_rpc::Metadata>;
Expand Down
2 changes: 1 addition & 1 deletion node/src/service.rs
Expand Up @@ -33,7 +33,7 @@ use cumulus_relay_chain_local::build_relay_chain_interface;
use polkadot_service::NativeExecutionDispatch;

use crate::rpc;
pub use manta_primitives::{AccountId, Balance, Block, Hash, Header, Index as Nonce};
pub use manta_primitives::types::{AccountId, Balance, Block, Hash, Header, Index as Nonce};

use cumulus_client_consensus_relay_chain::Verifier as RelayChainVerifier;
use futures::lock::Mutex;
Expand Down
2 changes: 1 addition & 1 deletion pallets/asset-manager/src/lib.rs
Expand Up @@ -40,7 +40,7 @@ pub mod pallet {
use codec::Codec;
use frame_support::{pallet_prelude::*, transactional, PalletId};
use frame_system::pallet_prelude::*;
use manta_primitives::{AssetIdLocationGetter, UnitsToWeightRatio};
use manta_primitives::assets::{AssetIdLocationGetter, UnitsToWeightRatio};
use scale_info::TypeInfo;
use sp_runtime::{
traits::{AccountIdConversion, AtLeast32BitUnsigned, CheckedAdd, One},
Expand Down
5 changes: 3 additions & 2 deletions pallets/asset-manager/src/mock.rs
Expand Up @@ -25,8 +25,9 @@ use frame_support::{construct_runtime, parameter_types, traits::ConstU32};
use frame_system as system;
use frame_system::EnsureRoot;
use manta_primitives::{
AccountId, AssetId, AssetLocation, AssetRegistarMetadata, AssetStorageMetadata, Balance,
ASSET_STRING_LIMIT,
constants::ASSET_STRING_LIMIT,
types::{AccountId, AssetId, Balance},
assets::{AssetLocation, AssetRegistarMetadata, AssetStorageMetadata},
};
use sp_core::H256;
use sp_runtime::{
Expand Down
2 changes: 1 addition & 1 deletion pallets/asset-manager/src/tests.rs
Expand Up @@ -22,7 +22,7 @@
use crate::{self as asset_manager, AssetIdLocation, UnitsPerSecond};
use asset_manager::mock::*;
use frame_support::{assert_noop, assert_ok};
use manta_primitives::{AssetLocation, AssetRegistarMetadata};
use manta_primitives::assets::{AssetLocation, AssetRegistarMetadata};
use sp_runtime::traits::BadOrigin;
use xcm::{latest::prelude::*, VersionedMultiLocation};

Expand Down
2 changes: 1 addition & 1 deletion pallets/tx-pause/src/mock.rs
Expand Up @@ -27,7 +27,7 @@ use frame_support::{
traits::{ConstU32, ConstU64},
};
use frame_system::EnsureRoot;
use manta_primitives::Balance;
use manta_primitives::types::Balance;

use sp_core::H256;
use sp_runtime::{testing::Header, traits::IdentityLookup};
Expand Down
3 changes: 3 additions & 0 deletions runtime/calamari/Cargo.toml
Expand Up @@ -126,6 +126,9 @@ runtime-benchmarks = [
'pallet-treasury/runtime-benchmarks',
'pallet-preimage/runtime-benchmarks',
]
# Set timing constants (e.g. session period) to faster versions to speed up testing.
fast-runtime = []

std = [
'codec/std',
'serde',
Expand Down
2 changes: 1 addition & 1 deletion runtime/calamari/src/currency.rs
Expand Up @@ -15,7 +15,7 @@
// along with Manta. If not, see <http://www.gnu.org/licenses/>.

#![allow(non_upper_case_globals)]
use manta_primitives::Balance;
use manta_primitives::types::Balance;

pub const KMA: Balance = 1_000_000_000_000; // 12 decimal
pub const cKMA: Balance = KMA / 100; // 10 decimal, cent-MA
Expand Down
2 changes: 1 addition & 1 deletion runtime/calamari/src/fee.rs
Expand Up @@ -17,7 +17,7 @@
use frame_support::weights::{
WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial,
};
use manta_primitives::Balance;
use manta_primitives::types::Balance;
use smallvec::smallvec;
pub use sp_runtime::Perbill;

Expand Down
18 changes: 10 additions & 8 deletions runtime/calamari/src/lib.rs
Expand Up @@ -55,7 +55,9 @@ use frame_system::{
EnsureRoot,
};
use manta_primitives::{
time::*, AccountId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature,
constants::time::*,
prod_or_fast,
types::{AccountId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature},
};
use sp_runtime::{Perbill, Permill};

Expand Down Expand Up @@ -356,13 +358,13 @@ impl pallet_sudo::Config for Runtime {
}

parameter_types! {
pub const LaunchPeriod: BlockNumber = 7 * DAYS;
pub const VotingPeriod: BlockNumber = 7 * DAYS;
pub const FastTrackVotingPeriod: BlockNumber = 3 * HOURS;
pub LaunchPeriod: BlockNumber = prod_or_fast!(7 * DAYS, 5 * MINUTES, "CALAMARI_LAUNCHPERIOD");
pub VotingPeriod: BlockNumber = prod_or_fast!(7 * DAYS, 5 * MINUTES, "CALAMARI_VOTINGPERIOD");
pub FastTrackVotingPeriod: BlockNumber = prod_or_fast!(3 * HOURS, 2 * MINUTES, "CALAMARI_FASTTRACKVOTINGPERIOD");
pub const InstantAllowed: bool = true;
pub const MinimumDeposit: Balance = 1000 * KMA;
pub const EnactmentPeriod: BlockNumber = 1 * DAYS;
pub const CooloffPeriod: BlockNumber = 7 * DAYS;
pub EnactmentPeriod: BlockNumber = prod_or_fast!(1 * DAYS, 2 * MINUTES, "CALAMARI_ENACTMENTPERIOD");
pub CooloffPeriod: BlockNumber = prod_or_fast!(7 * DAYS, 2 * MINUTES, "CALAMARI_COOLOFFPERIOD");
pub const PreimageByteDeposit: Balance = deposit(0, 1);
}

Expand Down Expand Up @@ -488,7 +490,7 @@ parameter_types! {
pub const ProposalBond: Permill = Permill::from_percent(1);
pub const ProposalBondMinimum: Balance = 500 * KMA;
pub const ProposalBondMaximum: Balance = 10_000 * KMA;
pub const SpendPeriod: BlockNumber = 6 * DAYS;
pub SpendPeriod: BlockNumber = prod_or_fast!(6 * DAYS, 2 * MINUTES, "CALAMARI_SPENDPERIOD");
pub const Burn: Permill = Permill::from_percent(0);
pub const TreasuryPalletId: PalletId = PalletId(*b"py/trsry");
}
Expand Down Expand Up @@ -766,7 +768,7 @@ impl cumulus_pallet_dmp_queue::Config for Runtime {

parameter_types! {
// Rotate collator's spot each 6 hours.
pub const Period: u32 = 6 * HOURS;
pub Period: u32 = prod_or_fast!(6 * HOURS, 2 * MINUTES, "CALAMARI_PERIOD");
pub const Offset: u32 = 0;
}

Expand Down
2 changes: 1 addition & 1 deletion runtime/calamari/tests/common/mock.rs
Expand Up @@ -23,7 +23,7 @@ pub use calamari_runtime::{
use frame_support::traits::{GenesisBuild, OnFinalize, OnInitialize};
use manta_primitives::{
helpers::{get_account_id_from_seed, get_collator_keys_from_seed},
AccountId, AuraId, Balance,
types::{AccountId, AuraId, Balance},
};
use sp_core::sr25519;
pub struct ExtBuilder {
Expand Down
2 changes: 1 addition & 1 deletion runtime/calamari/tests/common/mod.rs
Expand Up @@ -19,7 +19,7 @@ pub mod mock;
pub use calamari_runtime::{currency::KMA, Event, Origin, Runtime, System};

use frame_support::weights::{DispatchInfo, Weight};
use manta_primitives::Balance;
use manta_primitives::types::Balance;

pub const BOND_AMOUNT: Balance = 1_000 * KMA;
pub const INITIAL_BALANCE: Balance = 1_000_000_000_000 * KMA;
Expand Down
2 changes: 1 addition & 1 deletion runtime/calamari/tests/integration_tests.rs
Expand Up @@ -42,7 +42,7 @@ use frame_support::{
use manta_primitives::{
constants::time::{DAYS, HOURS},
helpers::{get_account_id_from_seed, get_collator_keys_from_seed},
AccountId, Header,
types::{AccountId, Header},
};

use pallet_transaction_payment::ChargeTransactionPayment;
Expand Down
2 changes: 1 addition & 1 deletion runtime/dolphin/src/currency.rs
Expand Up @@ -15,7 +15,7 @@
// along with Manta. If not, see <http://www.gnu.org/licenses/>.

#![allow(non_upper_case_globals)]
use manta_primitives::Balance;
use manta_primitives::types::Balance;

pub const DOL: Balance = 1_000_000_000_000_000_000; // 18 decimal
pub const cDOL: Balance = DOL / 100; // 16 decimal, cent-DOL
Expand Down
2 changes: 1 addition & 1 deletion runtime/dolphin/src/fee.rs
Expand Up @@ -17,7 +17,7 @@
use frame_support::weights::{
WeightToFeeCoefficient, WeightToFeeCoefficients, WeightToFeePolynomial,
};
use manta_primitives::Balance;
use manta_primitives::types::Balance;
use smallvec::smallvec;
pub use sp_runtime::Perbill;

Expand Down
3 changes: 2 additions & 1 deletion runtime/dolphin/src/lib.rs
Expand Up @@ -55,7 +55,8 @@ use frame_system::{
EnsureRoot,
};
use manta_primitives::{
time::*, AccountId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature,
constants::time::*,
types::{AccountId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature},
};
use sp_runtime::{Perbill, Permill};

Expand Down
9 changes: 5 additions & 4 deletions runtime/dolphin/tests/xcm_mock/parachain.rs
Expand Up @@ -34,7 +34,8 @@ use sp_runtime::{
use sp_std::{convert::TryFrom, prelude::*};

use manta_primitives::{
AssetIdLocationConvert, AssetLocation, FirstAssetTrader, IsNativeConcrete, MultiNativeAsset,
assets::{AssetIdLocationConvert, AssetLocation},
xcm::{FirstAssetTrader, IsNativeConcrete, MultiNativeAsset},
};
use pallet_xcm::XcmPassthrough;
use polkadot_core_primitives::BlockNumber as RelayBlockNumber;
Expand All @@ -52,7 +53,7 @@ use xcm_builder::{
use xcm_executor::{traits::JustTry, Config, XcmExecutor};
use xcm_simulator::Get;

pub use manta_primitives::{AssetId, AssetRegistarMetadata, AssetStorageMetadata};
pub use manta_primitives::{types::AssetId, assets::{AssetRegistarMetadata, AssetStorageMetadata}};
pub type AccountId = AccountId32;
pub type Balance = u128;

Expand Down Expand Up @@ -218,7 +219,7 @@ parameter_types! {
pub XcmFeesAccount: AccountId = AssetManager::account_id();
}

pub type XcmFeesToAccount = manta_primitives::XcmFeesToAccount<
pub type XcmFeesToAccount = manta_primitives::xcm::XcmFeesToAccount<
Assets,
ConvertedConcreteAssetId<
AssetId,
Expand Down Expand Up @@ -574,7 +575,7 @@ impl orml_xtokens::Config for Runtime {
type Event = Event;
type Balance = Balance;
type CurrencyId = CurrencyId;
type AccountIdToMultiLocation = manta_primitives::AccountIdToMultiLocation<AccountId>;
type AccountIdToMultiLocation = manta_primitives::xcm::AccountIdToMultiLocation<AccountId>;
type CurrencyIdConvert =
CurrencyIdtoMultiLocation<AssetIdLocationConvert<AssetId, AssetLocation, AssetManager>>;
type XcmExecutor = XcmExecutor<XcmExecutorConfig>;
Expand Down
2 changes: 1 addition & 1 deletion runtime/dolphin/tests/xcm_tests.rs
Expand Up @@ -20,7 +20,7 @@ mod xcm_mock;

use codec::Encode;
use frame_support::{assert_ok, weights::constants::WEIGHT_PER_SECOND};
use manta_primitives::AssetLocation;
use manta_primitives::assets::AssetLocation;
use xcm::{latest::prelude::*, v2::Response, VersionedMultiLocation, WrapVersion};
use xcm_mock::{parachain::PALLET_ASSET_INDEX, *};
use xcm_simulator::TestExt;
Expand Down
3 changes: 3 additions & 0 deletions runtime/manta/Cargo.toml
Expand Up @@ -109,6 +109,9 @@ runtime-benchmarks = [
'pallet-tx-pause/runtime-benchmarks',
'pallet-preimage/runtime-benchmarks',
]
# Set timing constants (e.g. session period) to faster versions to speed up testing.
fast-runtime = []

std = [
'codec/std',
'serde',
Expand Down
2 changes: 1 addition & 1 deletion runtime/manta/src/currency.rs
Expand Up @@ -15,7 +15,7 @@
// along with Manta. If not, see <http://www.gnu.org/licenses/>.

#![allow(non_upper_case_globals)]
use manta_primitives::Balance;
use manta_primitives::types::Balance;

pub const MANTA: Balance = 1_000_000_000_000_000_000; // 18 decimal
pub const cMANTA: Balance = MANTA / 100; // 16 decimal, cent-MA
Expand Down
2 changes: 1 addition & 1 deletion runtime/manta/src/fee.rs
Expand Up @@ -19,7 +19,7 @@ use frame_support::weights::{
constants::ExtrinsicBaseWeight, WeightToFeeCoefficient, WeightToFeeCoefficients,
WeightToFeePolynomial,
};
use manta_primitives::Balance;
use manta_primitives::types::Balance;
use smallvec::smallvec;
pub use sp_runtime::Perbill;

Expand Down
6 changes: 4 additions & 2 deletions runtime/manta/src/lib.rs
Expand Up @@ -51,7 +51,9 @@ use frame_system::{
EnsureRoot,
};
use manta_primitives::{
time::*, AccountId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature,
constants::time::*,
prod_or_fast,
types::{AccountId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature},
};
use sp_runtime::Perbill;

Expand Down Expand Up @@ -523,7 +525,7 @@ impl cumulus_pallet_dmp_queue::Config for Runtime {
}

parameter_types! {
pub const Period: u32 = 6 * HOURS;
pub Period: u32 = prod_or_fast!(7 * HOURS, 2 * MINUTES, "MANTA_PERIOD");
pub const Offset: u32 = 0;
}

Expand Down

0 comments on commit 52812c6

Please sign in to comment.