Move Externalities into its own crate (#3775)

* Move `Externalities` into `substrate-externalities`

- `Externalities` now support generic extensions
- Split of `primtives-storage` for storage primitive types

* Move the externalities scoping into `substrate-externalities`

* Fix compilation

* Review feedback

* Adds macro for declaring extensions

* Fix benchmarks

* Introduce `ExtensionStore` trait

* Last review comments

* Implement it for `ExtensionStore`
This commit is contained in:
Bastian Köcher
2019-10-09 15:50:30 +02:00
committed by GitHub
parent 984c6ac839
commit 8a39be474e
95 changed files with 1600 additions and 1420 deletions
+8 -7
View File
@@ -247,11 +247,12 @@ impl<T: Trait> ProvideInherent for Module<T> {
mod tests {
use super::*;
use runtime_io::{with_externalities, TestExternalities};
use runtime_io::TestExternalities;
use primitives::H256;
use sr_primitives::traits::{BlakeTwo256, IdentityLookup, OnFinalize, Header as HeaderT};
use sr_primitives::testing::Header;
use sr_primitives::Perbill;
use sr_primitives::{
set_and_run_with_externalities, testing::Header, Perbill,
traits::{BlakeTwo256, IdentityLookup, OnFinalize, Header as HeaderT},
};
use support::{assert_ok, impl_outer_origin, parameter_types};
use srml_system as system;
use std::cell::RefCell;
@@ -321,7 +322,7 @@ mod tests {
#[test]
fn median_works() {
let t = system::GenesisConfig::default().build_storage::<Test>().unwrap();
with_externalities(&mut TestExternalities::new(t), || {
set_and_run_with_externalities(&mut TestExternalities::new(t), || {
FinalityTracker::update_hint(Some(500));
assert_eq!(FinalityTracker::median(), 250);
assert!(NOTIFICATIONS.with(|n| n.borrow().is_empty()));
@@ -331,7 +332,7 @@ mod tests {
#[test]
fn notifies_when_stalled() {
let t = system::GenesisConfig::default().build_storage::<Test>().unwrap();
with_externalities(&mut TestExternalities::new(t), || {
set_and_run_with_externalities(&mut TestExternalities::new(t), || {
let mut parent_hash = System::parent_hash();
for i in 2..106 {
System::initialize(&i, &parent_hash, &Default::default(), &Default::default());
@@ -350,7 +351,7 @@ mod tests {
#[test]
fn recent_notifications_prevent_stalling() {
let t = system::GenesisConfig::default().build_storage::<Test>().unwrap();
with_externalities(&mut TestExternalities::new(t), || {
set_and_run_with_externalities(&mut TestExternalities::new(t), || {
let mut parent_hash = System::parent_hash();
for i in 2..106 {
System::initialize(&i, &parent_hash, &Default::default(), &Default::default());