diff --git a/Cargo.lock b/Cargo.lock
index 2dc55b391f..671c9004be 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2154,6 +2154,23 @@ dependencies = [
"percent-encoding",
]
+[[package]]
+name = "fp-account"
+version = "1.0.0-dev"
+dependencies = [
+ "hex",
+ "impl-serde",
+ "libsecp256k1",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+]
+
[[package]]
name = "fp-consensus"
version = "2.0.0-dev"
@@ -2465,6 +2482,7 @@ dependencies = [
"fc-rpc",
"fc-rpc-core",
"fc-storage",
+ "fp-account",
"fp-dynamic-fee",
"fp-evm",
"fp-rpc",
@@ -2482,6 +2500,7 @@ dependencies = [
"pallet-transaction-payment-rpc-runtime-api",
"parity-scale-codec",
"sc-basic-authorship",
+ "sc-chain-spec",
"sc-cli",
"sc-client-api",
"sc-consensus",
@@ -2505,7 +2524,6 @@ dependencies = [
"sp-core",
"sp-finality-grandpa",
"sp-inherents",
- "sp-keyring",
"sp-offchain",
"sp-runtime",
"sp-session",
@@ -2522,6 +2540,7 @@ dependencies = [
name = "frontier-template-runtime"
version = "0.0.0"
dependencies = [
+ "fp-account",
"fp-evm",
"fp-rpc",
"fp-self-contained",
@@ -4874,6 +4893,7 @@ version = "6.0.0-dev"
dependencies = [
"environmental",
"evm",
+ "fp-account",
"fp-evm",
"frame-benchmarking",
"frame-support",
@@ -5154,6 +5174,7 @@ name = "pallet-utility"
version = "4.0.0-dev"
source = "git+https://github.com/paritytech/substrate?branch=master#1837f423b494254e1d27834b1c9da34b2c0c2375"
dependencies = [
+ "frame-benchmarking",
"frame-support",
"frame-system",
"parity-scale-codec",
diff --git a/Cargo.toml b/Cargo.toml
index 93769f35d1..ceb42d3fda 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,6 +20,7 @@ members = [
"client/db",
"client/storage",
"client/mapping-sync",
+ "primitives/account",
"primitives/consensus",
"primitives/dynamic-fee",
"primitives/evm",
@@ -41,9 +42,11 @@ environmental = { version = "1.1.3", default-features = false }
ethereum = { version = "0.14.0", default-features = false }
ethereum-types = { version = "0.14.1", default-features = false }
evm = { version = "0.37.0", default-features = false }
+impl-serde = { version = "0.4.0", default-features = false }
jsonrpsee = "0.16.2"
kvdb-rocksdb = "0.17.0"
-libsecp256k1 = "0.7.1"
+libsecp256k1 = { version = "0.7.1", default-features = false }
+log = { version = "0.4.17", default-features = false }
parity-db = "0.4.2"
rlp = { version = "0.5", default-features = false }
scale-codec = { package = "parity-scale-codec", version = "3.2.1", default-features = false, features = ["derive"] }
@@ -53,6 +56,7 @@ serde_json = "1.0"
# Substrate Client
sc-basic-authorship = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate", branch = "master" }
sc-block-builder = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate", branch = "master" }
+sc-chain-spec = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate", branch = "master" }
sc-cli = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate", branch = "master" }
sc-client-api = { version = "4.0.0-dev", git = "https://github.com/paritytech/substrate", branch = "master" }
sc-client-db = { version = "0.10.0-dev", git = "https://github.com/paritytech/substrate", branch = "master" }
@@ -124,6 +128,7 @@ fc-rpc = { version = "2.0.0-dev", path = "client/rpc" }
fc-rpc-core = { version = "1.1.0-dev", path = "client/rpc-core" }
fc-storage = { version = "1.0.0-dev", path = "client/storage" }
# Frontier Primitive
+fp-account = { version = "1.0.0-dev", path = "primitives/account", default-features = false }
fp-consensus = { version = "2.0.0-dev", path = "primitives/consensus", default-features = false }
fp-dynamic-fee = { version = "1.0.0", path = "primitives/dynamic-fee", default-features = false }
fp-ethereum = { version = "1.0.0-dev", path = "primitives/ethereum", default-features = false }
diff --git a/client/cli/src/lib.rs b/client/cli/src/lib.rs
index 1d4c7e668f..e30cb5f4e3 100644
--- a/client/cli/src/lib.rs
+++ b/client/cli/src/lib.rs
@@ -16,6 +16,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+#![deny(unused_crate_dependencies)]
+
mod frontier_db_cmd;
pub use self::frontier_db_cmd::FrontierDbCmd;
diff --git a/client/consensus/src/lib.rs b/client/consensus/src/lib.rs
index 39b17cce14..d65655427d 100644
--- a/client/consensus/src/lib.rs
+++ b/client/consensus/src/lib.rs
@@ -16,6 +16,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+#![deny(unused_crate_dependencies)]
+
use std::{collections::HashMap, marker::PhantomData, sync::Arc};
// Substrate
diff --git a/client/db/src/lib.rs b/client/db/src/lib.rs
index 8f7499dde7..f54defe718 100644
--- a/client/db/src/lib.rs
+++ b/client/db/src/lib.rs
@@ -16,6 +16,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+#![deny(unused_crate_dependencies)]
+
#[cfg(feature = "parity-db")]
mod parity_db_adapter;
mod upgrade;
diff --git a/client/mapping-sync/src/lib.rs b/client/mapping-sync/src/lib.rs
index 774ad93cef..1853a9688b 100644
--- a/client/mapping-sync/src/lib.rs
+++ b/client/mapping-sync/src/lib.rs
@@ -17,6 +17,7 @@
// along with this program. If not, see .
#![allow(clippy::too_many_arguments)]
+#![deny(unused_crate_dependencies)]
mod worker;
diff --git a/client/rpc-core/src/lib.rs b/client/rpc-core/src/lib.rs
index c595bf8a1e..701c095e2f 100644
--- a/client/rpc-core/src/lib.rs
+++ b/client/rpc-core/src/lib.rs
@@ -16,6 +16,8 @@
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
+#![deny(unused_crate_dependencies)]
+
pub mod types;
mod eth;
diff --git a/client/rpc-core/src/types/filter.rs b/client/rpc-core/src/types/filter.rs
index 76cfd4824e..72ffe325ce 100644
--- a/client/rpc-core/src/types/filter.rs
+++ b/client/rpc-core/src/types/filter.rs
@@ -67,7 +67,7 @@ where
/// Filter Address
pub type FilterAddress = VariadicValue;
-/// Topic, supports `A` | `null` | `[A,B,C]` | `[A,[B,C]]` | [null,[B,C]] | [null,[null,C]]
+/// Topic, supports `A` | `null` | `[A,B,C]` | `[A,[B,C]]` | `[null,[B,C]]` | `[null,[null,C]]`
pub type Topic = VariadicValue