diff --git a/Cargo.toml b/Cargo.toml
index ddede94b56d167b297a028f2c5abfe6e6d52b2ab..ca6c88e22916c60c35e1d039612a0d0c12ab2ad6 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,35 +11,235 @@ version = "0.3.0"
 [workspace]
 resolver = "2"
 
+default-members = ["node"]
+
 members = [
     "node",
 
     'end2end-tests',
     'live-tests',
-    
-    'pallets/certification',
-    'pallets/duniter-test-parameters',
-    'pallets/duniter-test-parameters/macro',
-    'pallets/duniter-wot',
-    'pallets/identity',
-    'pallets/membership',
-    'pallets/oneshot-account',
-    'pallets/authority-members',
-    'pallets/universal-dividend',
-    'pallets/upgrade-origin',
-    
+
+    'pallets/*',
+
     'primitives/membership',
-    
+
     'runtime/common',
     "runtime/gdev",
-
     # "runtime/g1",
     # "runtime/gtest",
+
     'xtask',
 ]
 
-[profile.release]
-panic = "unwind"
 
 [workspace.dependencies]
+
+#===============================================================================
+#                           Substrate dependencies
+#===============================================================================
+
+babe = { package = "sc-consensus-babe", git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+manual-seal = { package = "sc-consensus-manual-seal", git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+
+frame-system = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
+frame-benchmarking = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+frame-benchmarking-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+
+pallet-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+pallet-transaction-payment = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
+pallet-transaction-payment-rpc = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+
+sc-basic-authorship = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-chain-spec = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
+sc-client-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-consensus = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-client-db = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
+sc-consensus-uncles = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-executor = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-finality-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-keystore = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-network = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-rpc-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-service = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
+sc-telemetry = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-transaction-pool = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sc-transaction-pool-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+
 sp-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
+sp-authority-discovery = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-block-builder = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-blockchain = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-consensus = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-consensus-babe = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-core = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-finality-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-inherents = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-io = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-offchain = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-keyring = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-keystore = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-runtime = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-session = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-storage = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-timestamp = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-transaction-pool = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+sp-trie = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+
+substrate-frame-rpc-system = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+
+try-runtime-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
+
+substrate-build-script-utils = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' }
+
+#===============================================================================
+#                           crate.io dependencies 
+#===============================================================================
+async-io = "1.3"
+clap = { version = "4.0", features = ["derive"] }
+clap_complete = { version = "4" }
+futures = { version = "0.3.1", features = ["compat"] }
+hex = "0.4.3"
+jsonrpsee = { version = "0.15.1", features = ["server"] }
+lazy_static = "1.4.0"
+log = "0.4"
+maplit = '1.0.2'
+memmap2 = "0.5.0"
+serde = "1.0"
+serde_json = "1.0.64"
+tracing-core = "0.1.28"
+
+
+[profile.release]
+panic = "unwind"
+
+# The list of dependencies below (which can be both direct and indirect dependencies) are crates
+# that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of
+# their debug info might be missing) or to require to be frequently recompiled. We compile these
+# dependencies with `opt-level=3` even in "dev" mode in order to make "dev" mode more usable.
+# The majority of these crates are cryptographic libraries.
+#
+# This list is only relevant when running `cargo build` from within
+# the Duniter-v2s workspace.
+#
+# If you see an error mentioning "profile package spec ... did not match any packages", it
+# probably concerns this list.
+#
+# This list is ordered alphabetically.
+[profile.dev.package]
+blake2 = { opt-level = 3 }
+blake2-rfc = { opt-level = 3 }
+blake2b_simd = { opt-level = 3 }
+chacha20poly1305 = { opt-level = 3 }
+cranelift-codegen = { opt-level = 3 }
+cranelift-wasm = { opt-level = 3 }
+crc32fast = { opt-level = 3 }
+crossbeam-deque = { opt-level = 3 }
+crypto-mac = { opt-level = 3 }
+curve25519-dalek = { opt-level = 3 }
+ed25519-dalek = { opt-level = 3 }
+flate2 = { opt-level = 3 }
+futures-channel = { opt-level = 3 }
+hashbrown = { opt-level = 3 }
+hash-db = { opt-level = 3 }
+hmac = { opt-level = 3 }
+httparse = { opt-level = 3 }
+integer-sqrt = { opt-level = 3 }
+keccak = { opt-level = 3 }
+libm = { opt-level = 3 }
+libsecp256k1 = { opt-level = 3 }
+libz-sys = { opt-level = 3 }
+mio = { opt-level = 3 }
+nalgebra = { opt-level = 3 }
+num-bigint = { opt-level = 3 }
+parking_lot = { opt-level = 3 }
+parking_lot_core = { opt-level = 3 }
+percent-encoding = { opt-level = 3 }
+primitive-types = { opt-level = 3 }
+ring = { opt-level = 3 }
+rustls = { opt-level = 3 }
+sha2 = { opt-level = 3 }
+sha3 = { opt-level = 3 }
+smallvec = { opt-level = 3 }
+snow = { opt-level = 3 }
+twox-hash = { opt-level = 3 }
+uint = { opt-level = 3 }
+wasmi = { opt-level = 3 }
+x25519-dalek = { opt-level = 3 }
+yamux = { opt-level = 3 }
+zeroize = { opt-level = 3 }
+
+
+[patch.crates-io]
+
+#[patch."https://github.com/duniter/substrate"]
+#fork-tree = { path = "../substrate/utils/fork-tree" }
+#frame-support = { path = "../substrate/frame/support" }
+#frame-support-procedural = { path = "../substrate/frame/support/procedural" }
+#frame-support-procedural-tools = { path = "../substrate/frame/support/procedural/tools" }
+#frame-system = { path = "../substrate/frame/system" }
+#frame-benchmarking = { path = "../substrate/frame/benchmarking" }
+#frame-benchmarking-cli = { path = "../substrate/utils/frame/benchmarking-cli" }
+#sc-basic-authorship = { path = "../substrate/client/basic-authorship" }
+#sc-block-builder = { path = "../substrate/client/block-builder" }
+#sc-chain-spec = { path = "../substrate/client/chain-spec" }
+#sc-cli = { path = "../substrate/client/cli" }
+#sc-client-api = { path = "../substrate/client/api" }
+#sc-client-db = { path = "../substrate/client/db" }
+#sc-consensus = { path = "../substrate/client/consensus/common" }
+#sc-consensus-aura = { path = "../substrate/client/consensus/aura" }
+#sc-consensus-babe = { path = "../substrate/client/consensus/babe" }
+#sc-consensus-manual-seal = { path = "../substrate/client/consensus/manual-seal" }
+#sc-consensus-slots = { path = "../substrate/client/consensus/slots" }
+#sc-consensus-uncles = { path = "../substrate/client/consensus/uncles" }
+#sc-executor = { path = "../substrate/client/executor" }
+#sc-executor-common = { path = "../substrate/client/executor/common" }
+#sc-executor-wasmi = { path = "../substrate/client/executor/wasmi" }
+#sc-executor-wasmtime = { path = "../substrate/client/executor/wasmtime" }
+#sc-finality-grandpa = { path = "../substrate/client/finality-grandpa" }
+#sc-keystore = { path = "../substrate/client/keystore" }
+#sc-network = { path = "../substrate/client/network" }
+#sc-rpc-api = { path = "../substrate/client/rpc-api" }
+#sc-service = { path = "../substrate/client/service" }
+#sc-telemetry = { path = "../substrate/client/telemetry" }
+#sc-transaction-pool = { path = "../substrate/client/transaction-pool" }
+#sc-transaction-pool-api = { path = "../substrate/client/transaction-pool/api" }
+#sp-api = { path = "../substrate/primitives/api" }
+#sp-application-crypto = { path = "../substrate/primitives/application-crypto" }
+#sp-arithmetic = { path = "../substrate/primitives/arithmetic" }
+#sp-authority-discovery = { path = "../substrate/primitives/authority-discovery" }
+#sp-authorship = { path = "../substrate/primitives/authorship" }
+#sp-block-builder = { path = "../substrate/primitives/block-builder" }
+#sp-blockchain = { path = "../substrate/primitives/blockchain" }
+#sp-consensus = { path = "../substrate/primitives/consensus/common" }
+#sp-consensus-babe = { path = "../substrate/primitives/consensus/babe" }
+#sp-consensus-slots = { path = "../substrate/primitives/consensus/slots" }
+#sp-consensus-vrf = { path = "../substrate/primitives/consensus/vrf" }
+#sp-core = { path = "../substrate/primitives/core" }
+#sp-core-hashing = { path = "../substrate/primitives/core/hashing" }
+#sp-core-hashing-proc-macro = { path = "../substrate/primitives/core/hashing/proc-macro" }
+#sp-debug-derive = { path = "../substrate/primitives/debug-derive" }
+#sp-externalities = { path = "../substrate/primitives/externalities" }
+#sp-finality-grandpa = { path = "../substrate/primitives/finality-grandpa" }
+#sp-inherents = { path = "../substrate/primitives/inherents" }
+#sp-io = { path = "../substrate/primitives/io" }
+#sp-keyring = { path = "../substrate/primitives/keyring" }
+#sp-keystore = { path = "../substrate/primitives/keystore" }
+#sp-maybe-compressed-blob = { path = "../substrate/primitives/maybe-compressed-blob" }
+#sp-offchain = { path = "../substrate/primitives/offchain" }
+#sp-panic-handler = { path = "../substrate/primitives/panic-handler" }
+#sp-rpc = { path = "../substrate/primitives/rpc" }
+#sp-runtime = { path = "../substrate/primitives/runtime" }
+#sp-session = { path = "../substrate/primitives/session" }
+#sp-staking = { path = "../substrate/primitives/staking" }
+#sp-state-machine = { path = "../substrate/primitives/state-machine" }
+#sp-std = { path = "../substrate/primitives/std" }
+#sp-storage = { path = "../substrate/primitives/storage" }
+#sp-timestamp = { path = "../substrate/primitives/timestamp" }
+#sp-tracing = { path = "../substrate/primitives/tracing" }
+#sp-transaction-pool = { path = "../substrate/primitives/transaction-pool" }
+#sp-trie = { path = "../substrate/primitives/trie" }
+#sp-version = { path = "../substrate/primitives/version" }
+#sp-weights = { path = "../substrate/primitives/weights" }
+#substrate-prometheus-endpoint = { path = "../substrate/utils/prometheus" }
diff --git a/node/Cargo.toml b/node/Cargo.toml
index c0ce5a8e9d223dc6127de167872687a0db026497..fd2fbb8239b57a8e74c4ecdf6dc836e775eef7be 100644
--- a/node/Cargo.toml
+++ b/node/Cargo.toml
@@ -1,14 +1,3 @@
-# [package]
-# authors.workspace = true
-# build = 'build.rs'
-# description = ''
-# edition = "2021"
-# homepage = 'https://duniter.org'
-# license = 'AGPL-3.0'
-# repository = 'https://git.duniter.org/nodes/rust/duniter-v2s'
-# version = '0.3.0'
-
-# [PROJECT_DIR]/bar/Cargo.toml
 [package]
 name = "duniter"
 build = "build.rs"
@@ -44,25 +33,30 @@ runtime-benchmarks = [
     'sc-client-db/runtime-benchmarks',
 ]
 try-runtime = [
-	#"g1-runtime/try-runtime",
-	"gdev-runtime/try-runtime",
-	#"gtest-runtime/try-runtime",
-	"try-runtime-cli"
+    #"g1-runtime/try-runtime",
+    "gdev-runtime/try-runtime",
+    #"gtest-runtime/try-runtime",
+    "try-runtime-cli",
 ]
 
 [build-dependencies]
 clap = { version = "4.0" }
-#clap_complete = { version = "4.0" }
-substrate-build-script-utils = { git = 'https://github.com/duniter/substrate', branch = 'duniter-substrate-v0.9.32' }
+substrate-build-script-utils = { workspace = true }
 
 [dev-dependencies]
 rusty-hook = "^0.11.2"
 
 # Dependencies for specific targets
 [target.'cfg(any(target_arch="x86_64", target_arch="aarch64"))'.dependencies]
-sc-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false, features = ["wasmtime"] }
-sc-service = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false, features = ["wasmtime"] }
-sp-trie = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", features = ["memory-tracker"] }
+sc-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false, features = [
+    "wasmtime",
+] }
+sc-service = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false, features = [
+    "wasmtime",
+] }
+sp-trie = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", features = [
+    "memory-tracker",
+] }
 
 
 [dependencies]
@@ -76,197 +70,64 @@ pallet-oneshot-account = { path = '../pallets/oneshot-account' }
 sp-membership = { path = '../primitives/membership' }
 
 # crates.io dependencies
-async-io = "1.3"
-clap = { version = "4.0", features = ["derive"] }
-clap_complete = { version = "4" }
-futures = { version = "0.3.1", features = ["compat"] }
-hex = "0.4.3"
-jsonrpsee = { version = "0.15.1", features = ["server"] }
-lazy_static = "1.4.0"
-log = "0.4"
-maplit = '1.0.2'
-memmap2 = "0.5.0"
-serde = "1.0"
-serde_json = "1.0.64"
-tracing-core = "0.1.28"
+async-io = { workspace = true }
+clap = { workspace = true }
+clap_complete = { workspace = true }
+futures = { workspace = true }
+hex = { workspace = true }
+jsonrpsee = { workspace = true }
+lazy_static = { workspace = true }
+log = { workspace = true }
+maplit = { workspace = true }
+memmap2 = { workspace = true }
+serde = { workspace = true }
+serde_json = { workspace = true }
+tracing-core = { workspace = true }
 
 # substrate dependencies
-frame-benchmarking = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-frame-benchmarking-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-frame-system = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
-pallet-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-pallet-transaction-payment = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
-pallet-transaction-payment-rpc = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-basic-authorship = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-chain-spec = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
-sc-client-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-consensus = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-babe = { package = "sc-consensus-babe", git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-manual-seal = { package = "sc-consensus-manual-seal", git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-client-db = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
-sc-consensus-uncles = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-executor = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-finality-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-keystore = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-network = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-rpc-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-service = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", default-features = false }
-sc-telemetry = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-transaction-pool = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sc-transaction-pool-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-api = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-authority-discovery = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-block-builder = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-blockchain = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-consensus = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-consensus-babe = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-core = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-finality-grandpa = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-inherents = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-io = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-offchain = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-keyring = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-keystore = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-runtime = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-session = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-storage = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-timestamp = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-transaction-pool = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-sp-trie = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-substrate-frame-rpc-system = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32" }
-try-runtime-cli = { git = "https://github.com/duniter/substrate", branch = "duniter-substrate-v0.9.32", optional = true }
-
-# The list of dependencies below (which can be both direct and indirect dependencies) are crates
-# that are suspected to be CPU-intensive, and that are unlikely to require debugging (as some of
-# their debug info might be missing) or to require to be frequently recompiled. We compile these
-# dependencies with `opt-level=3` even in "dev" mode in order to make "dev" mode more usable.
-# The majority of these crates are cryptographic libraries.
-#
-# This list is only relevant when running `cargo build` from within
-# the Duniter-v2s workspace.
-#
-# If you see an error mentioning "profile package spec ... did not match any packages", it
-# probably concerns this list.
-#
-# This list is ordered alphabetically.
-[profile.dev.package]
-blake2 = { opt-level = 3 }
-blake2-rfc = { opt-level = 3 }
-blake2b_simd = { opt-level = 3 }
-chacha20poly1305 = { opt-level = 3 }
-cranelift-codegen = { opt-level = 3 }
-cranelift-wasm = { opt-level = 3 }
-crc32fast = { opt-level = 3 }
-crossbeam-deque = { opt-level = 3 }
-crypto-mac = { opt-level = 3 }
-curve25519-dalek = { opt-level = 3 }
-ed25519-dalek = { opt-level = 3 }
-flate2 = { opt-level = 3 }
-futures-channel = { opt-level = 3 }
-hashbrown = { opt-level = 3 }
-hash-db = { opt-level = 3 }
-hmac = { opt-level = 3 }
-httparse = { opt-level = 3 }
-integer-sqrt = { opt-level = 3 }
-keccak = { opt-level = 3 }
-libm = { opt-level = 3 }
-libsecp256k1 = { opt-level = 3 }
-libz-sys = { opt-level = 3 }
-mio = { opt-level = 3 }
-nalgebra = { opt-level = 3 }
-num-bigint = { opt-level = 3 }
-parking_lot = { opt-level = 3 }
-parking_lot_core = { opt-level = 3 }
-percent-encoding = { opt-level = 3 }
-primitive-types = { opt-level = 3 }
-ring = { opt-level = 3 }
-rustls = { opt-level = 3 }
-sha2 = { opt-level = 3 }
-sha3 = { opt-level = 3 }
-smallvec = { opt-level = 3 }
-snow = { opt-level = 3 }
-twox-hash = { opt-level = 3 }
-uint = { opt-level = 3 }
-wasmi = { opt-level = 3 }
-x25519-dalek = { opt-level = 3 }
-yamux = { opt-level = 3 }
-zeroize = { opt-level = 3 }
-
-[profile.release]
-# Substrate runtime requires unwinding.
-panic = "unwind"
-
-[patch.crates-io]
-
-#[patch."https://github.com/duniter/substrate"]
-#fork-tree = { path = "../substrate/utils/fork-tree" }
-#frame-support = { path = "../substrate/frame/support" }
-#frame-support-procedural = { path = "../substrate/frame/support/procedural" }
-#frame-support-procedural-tools = { path = "../substrate/frame/support/procedural/tools" }
-#frame-system = { path = "../substrate/frame/system" }
-#frame-benchmarking = { path = "../substrate/frame/benchmarking" }
-#frame-benchmarking-cli = { path = "../substrate/utils/frame/benchmarking-cli" }
-#sc-basic-authorship = { path = "../substrate/client/basic-authorship" }
-#sc-block-builder = { path = "../substrate/client/block-builder" }
-#sc-chain-spec = { path = "../substrate/client/chain-spec" }
-#sc-cli = { path = "../substrate/client/cli" }
-#sc-client-api = { path = "../substrate/client/api" }
-#sc-client-db = { path = "../substrate/client/db" }
-#sc-consensus = { path = "../substrate/client/consensus/common" }
-#sc-consensus-aura = { path = "../substrate/client/consensus/aura" }
-#sc-consensus-babe = { path = "../substrate/client/consensus/babe" }
-#sc-consensus-manual-seal = { path = "../substrate/client/consensus/manual-seal" }
-#sc-consensus-slots = { path = "../substrate/client/consensus/slots" }
-#sc-consensus-uncles = { path = "../substrate/client/consensus/uncles" }
-#sc-executor = { path = "../substrate/client/executor" }
-#sc-executor-common = { path = "../substrate/client/executor/common" }
-#sc-executor-wasmi = { path = "../substrate/client/executor/wasmi" }
-#sc-executor-wasmtime = { path = "../substrate/client/executor/wasmtime" }
-#sc-finality-grandpa = { path = "../substrate/client/finality-grandpa" }
-#sc-keystore = { path = "../substrate/client/keystore" }
-#sc-network = { path = "../substrate/client/network" }
-#sc-rpc-api = { path = "../substrate/client/rpc-api" }
-#sc-service = { path = "../substrate/client/service" }
-#sc-telemetry = { path = "../substrate/client/telemetry" }
-#sc-transaction-pool = { path = "../substrate/client/transaction-pool" }
-#sc-transaction-pool-api = { path = "../substrate/client/transaction-pool/api" }
-#sp-api = { path = "../substrate/primitives/api" }
-#sp-application-crypto = { path = "../substrate/primitives/application-crypto" }
-#sp-arithmetic = { path = "../substrate/primitives/arithmetic" }
-#sp-authority-discovery = { path = "../substrate/primitives/authority-discovery" }
-#sp-authorship = { path = "../substrate/primitives/authorship" }
-#sp-block-builder = { path = "../substrate/primitives/block-builder" }
-#sp-blockchain = { path = "../substrate/primitives/blockchain" }
-#sp-consensus = { path = "../substrate/primitives/consensus/common" }
-#sp-consensus-babe = { path = "../substrate/primitives/consensus/babe" }
-#sp-consensus-slots = { path = "../substrate/primitives/consensus/slots" }
-#sp-consensus-vrf = { path = "../substrate/primitives/consensus/vrf" }
-#sp-core = { path = "../substrate/primitives/core" }
-#sp-core-hashing = { path = "../substrate/primitives/core/hashing" }
-#sp-core-hashing-proc-macro = { path = "../substrate/primitives/core/hashing/proc-macro" }
-#sp-debug-derive = { path = "../substrate/primitives/debug-derive" }
-#sp-externalities = { path = "../substrate/primitives/externalities" }
-#sp-finality-grandpa = { path = "../substrate/primitives/finality-grandpa" }
-#sp-inherents = { path = "../substrate/primitives/inherents" }
-#sp-io = { path = "../substrate/primitives/io" }
-#sp-keyring = { path = "../substrate/primitives/keyring" }
-#sp-keystore = { path = "../substrate/primitives/keystore" }
-#sp-maybe-compressed-blob = { path = "../substrate/primitives/maybe-compressed-blob" }
-#sp-offchain = { path = "../substrate/primitives/offchain" }
-#sp-panic-handler = { path = "../substrate/primitives/panic-handler" }
-#sp-rpc = { path = "../substrate/primitives/rpc" }
-#sp-runtime = { path = "../substrate/primitives/runtime" }
-#sp-session = { path = "../substrate/primitives/session" }
-#sp-staking = { path = "../substrate/primitives/staking" }
-#sp-state-machine = { path = "../substrate/primitives/state-machine" }
-#sp-std = { path = "../substrate/primitives/std" }
-#sp-storage = { path = "../substrate/primitives/storage" }
-#sp-timestamp = { path = "../substrate/primitives/timestamp" }
-#sp-tracing = { path = "../substrate/primitives/tracing" }
-#sp-transaction-pool = { path = "../substrate/primitives/transaction-pool" }
-#sp-trie = { path = "../substrate/primitives/trie" }
-#sp-version = { path = "../substrate/primitives/version" }
-#sp-weights = { path = "../substrate/primitives/weights" }
-#substrate-prometheus-endpoint = { path = "../substrate/utils/prometheus" }
+frame-benchmarking = { workspace = true }
+frame-benchmarking-cli = { workspace = true }
+frame-system = { workspace = true }
+pallet-grandpa = { workspace = true }
+pallet-transaction-payment = { workspace = true }
+pallet-transaction-payment-rpc = { workspace = true }
+pallet-transaction-payment-rpc-runtime-api = { workspace = true }
+sc-basic-authorship = { workspace = true }
+sc-chain-spec = { workspace = true }
+sc-cli = { workspace = true }
+sc-client-api = { workspace = true }
+sc-consensus = { workspace = true }
+babe = { workspace = true }
+manual-seal = { workspace = true }
+sc-client-db = { workspace = true }
+sc-consensus-uncles = { workspace = true }
+sc-executor = { workspace = true }
+sc-finality-grandpa = { workspace = true }
+sc-keystore = { workspace = true }
+sc-network = { workspace = true }
+sc-rpc-api = { workspace = true }
+sc-service = { workspace = true }
+sc-telemetry = { workspace = true }
+sc-transaction-pool = { workspace = true }
+sc-transaction-pool-api = { workspace = true }
+sp-api = { workspace = true }
+sp-authority-discovery = { workspace = true }
+sp-block-builder = { workspace = true }
+sp-blockchain = { workspace = true }
+sp-consensus = { workspace = true }
+sp-consensus-babe = { workspace = true }
+sp-core = { workspace = true }
+sp-finality-grandpa = { workspace = true }
+sp-inherents = { workspace = true }
+sp-io = { workspace = true }
+sp-offchain = { workspace = true }
+sp-keyring = { workspace = true }
+sp-keystore = { workspace = true }
+sp-runtime = { workspace = true }
+sp-session = { workspace = true }
+sp-storage = { workspace = true }
+sp-timestamp = { workspace = true }
+sp-transaction-pool = { workspace = true }
+sp-trie = { workspace = true }
+substrate-frame-rpc-system = { workspace = true }
+try-runtime-cli = { workspace = true, optional = true }