Wait for block import in parachain consensus (#271)

* Wait for block import in parachain consensus

There was a bug in the parachain consensus that when importing a relay
chain block that sets a new best parachain block, but the required
parachain block was not yet imported. This pr fixes this by waiting for
the block to be imported.

* Finish docs
This commit is contained in:
Bastian Köcher
2021-01-05 23:14:27 +01:00
committed by GitHub
parent ed8fc4f4a3
commit 9dc7cc5735
14 changed files with 812 additions and 316 deletions
+16 -17
View File
@@ -55,15 +55,15 @@ pub use sp_runtime::{Perbill, Permill};
// XCM imports
use polkadot_parachain::primitives::Sibling;
use xcm::v0::{MultiLocation, NetworkId, Junction};
use xcm::v0::{Junction, MultiLocation, NetworkId};
use xcm_builder::{
ParentIsDefault, SiblingParachainConvertsVia, AccountId32Aliases, LocationInverter,
SovereignSignedViaLocation, SiblingParachainAsNative,
RelayChainAsNative, SignedAccountId32AsNative, CurrencyAdapter
AccountId32Aliases, CurrencyAdapter, LocationInverter, ParentIsDefault, RelayChainAsNative,
SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative,
SovereignSignedViaLocation,
};
use xcm_executor::{
XcmExecutor, Config,
traits::{NativeAsset, IsConcrete},
traits::{IsConcrete, NativeAsset},
Config, XcmExecutor,
};
pub type SessionHandlers = ();
@@ -256,17 +256,16 @@ type LocationConverter = (
AccountId32Aliases<RococoNetwork, AccountId>,
);
type LocalAssetTransactor =
CurrencyAdapter<
// Use this currency:
Balances,
// Use this currency when it is a fungible asset matching the given location or name:
IsConcrete<RococoLocation>,
// Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID:
LocationConverter,
// Our chain's account ID type (we can't get away without mentioning it explicitly):
AccountId,
>;
type LocalAssetTransactor = CurrencyAdapter<
// Use this currency:
Balances,
// Use this currency when it is a fungible asset matching the given location or name:
IsConcrete<RococoLocation>,
// Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID:
LocationConverter,
// Our chain's account ID type (we can't get away without mentioning it explicitly):
AccountId,
>;
type LocalOriginConverter = (
SovereignSignedViaLocation<LocationConverter, Origin>,