mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 00:31:02 +00:00
Expose GRANDPA RPC API from Millau node (#408)
* expose GRANDPA RPC API from Millau node * fmt
This commit is contained in:
committed by
Bastian Köcher
parent
f52c839d6e
commit
6167e50238
@@ -28,6 +28,7 @@ sc-consensus = "0.8"
|
|||||||
sc-consensus-aura = "0.8"
|
sc-consensus-aura = "0.8"
|
||||||
sc-executor = "0.8"
|
sc-executor = "0.8"
|
||||||
sc-finality-grandpa = "0.8"
|
sc-finality-grandpa = "0.8"
|
||||||
|
sc-finality-grandpa-rpc = "0.8"
|
||||||
sc-service = "0.8"
|
sc-service = "0.8"
|
||||||
sc-rpc = "2.0"
|
sc-rpc = "2.0"
|
||||||
sc-transaction-pool = "2.0"
|
sc-transaction-pool = "2.0"
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ use sc_client_api::{ExecutorProvider, RemoteBackend};
|
|||||||
use sc_executor::native_executor_instance;
|
use sc_executor::native_executor_instance;
|
||||||
pub use sc_executor::NativeExecutor;
|
pub use sc_executor::NativeExecutor;
|
||||||
use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState};
|
use sc_finality_grandpa::{FinalityProofProvider as GrandpaFinalityProofProvider, SharedVoterState};
|
||||||
|
use sc_finality_grandpa_rpc::GrandpaRpcHandler;
|
||||||
use sc_service::{error::Error as ServiceError, Configuration, TaskManager};
|
use sc_service::{error::Error as ServiceError, Configuration, TaskManager};
|
||||||
use sp_consensus_aura::sr25519::AuthorityPair as AuraPair;
|
use sp_consensus_aura::sr25519::AuthorityPair as AuraPair;
|
||||||
use sp_inherents::InherentDataProviders;
|
use sp_inherents::InherentDataProviders;
|
||||||
@@ -160,19 +161,33 @@ pub fn new_full(config: Configuration) -> Result<TaskManager, ServiceError> {
|
|||||||
let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default();
|
let telemetry_connection_sinks = sc_service::TelemetryConnectionSinks::default();
|
||||||
|
|
||||||
let rpc_extensions_builder = {
|
let rpc_extensions_builder = {
|
||||||
|
use sc_finality_grandpa_rpc::GrandpaApi;
|
||||||
use sc_rpc::DenyUnsafe;
|
use sc_rpc::DenyUnsafe;
|
||||||
use substrate_frame_rpc_system::{FullSystem, SystemApi};
|
use substrate_frame_rpc_system::{FullSystem, SystemApi};
|
||||||
|
|
||||||
let client = client.clone();
|
let client = client.clone();
|
||||||
let pool = transaction_pool.clone();
|
let pool = transaction_pool.clone();
|
||||||
|
|
||||||
Box::new(move |_, _| {
|
let justification_stream = grandpa_link.justification_stream();
|
||||||
|
let shared_authority_set = grandpa_link.shared_authority_set().clone();
|
||||||
|
let finality_proof_provider = GrandpaFinalityProofProvider::new_for_service(backend.clone(), client.clone());
|
||||||
|
|
||||||
|
Box::new(move |_, subscription_executor| {
|
||||||
|
let shared_voter_state = SharedVoterState::empty();
|
||||||
|
|
||||||
let mut io = jsonrpc_core::IoHandler::default();
|
let mut io = jsonrpc_core::IoHandler::default();
|
||||||
io.extend_with(SystemApi::to_delegate(FullSystem::new(
|
io.extend_with(SystemApi::to_delegate(FullSystem::new(
|
||||||
client.clone(),
|
client.clone(),
|
||||||
pool.clone(),
|
pool.clone(),
|
||||||
DenyUnsafe::No,
|
DenyUnsafe::No,
|
||||||
)));
|
)));
|
||||||
|
io.extend_with(GrandpaApi::to_delegate(GrandpaRpcHandler::new(
|
||||||
|
shared_authority_set.clone(),
|
||||||
|
shared_voter_state,
|
||||||
|
justification_stream.clone(),
|
||||||
|
subscription_executor,
|
||||||
|
finality_proof_provider.clone(),
|
||||||
|
)));
|
||||||
|
|
||||||
io
|
io
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user