mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 17:01:09 +00:00
RPC call to get all RPC methods (#3613)
* Add meta rpc_methods call. * Sort methods. * Bump runtime. * Change format a bit to support versioning.
This commit is contained in:
committed by
Gavin Wood
parent
45d64a711c
commit
c45a15e559
@@ -5,12 +5,13 @@ authors = ["Parity Technologies <admin@parity.io>"]
|
||||
edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
jsonrpc-core = "13.1.0"
|
||||
pubsub = { package = "jsonrpc-pubsub", version = "13.1.0" }
|
||||
jsonrpc-core = "13.2.0"
|
||||
pubsub = { package = "jsonrpc-pubsub", version = "13.2.0" }
|
||||
log = "0.4"
|
||||
serde = "1.0"
|
||||
serde_json = "1.0"
|
||||
sr-primitives = { path = "../sr-primitives" }
|
||||
|
||||
[target.'cfg(not(target_os = "unknown"))'.dependencies]
|
||||
http = { package = "jsonrpc-http-server", version = "13.1.0" }
|
||||
ws = { package = "jsonrpc-ws-server", version = "13.1.0" }
|
||||
http = { package = "jsonrpc-http-server", version = "13.2.0" }
|
||||
ws = { package = "jsonrpc-ws-server", version = "13.2.0" }
|
||||
|
||||
@@ -40,6 +40,19 @@ pub fn rpc_handler<M: PubSubMetadata>(
|
||||
) -> RpcHandler<M> {
|
||||
let mut io = pubsub::PubSubHandler::default();
|
||||
extension.augment(&mut io);
|
||||
|
||||
// add an endpoint to list all available methods.
|
||||
let mut methods = io.iter().map(|x| x.0.clone()).collect::<Vec<String>>();
|
||||
io.add_method("rpc_methods", {
|
||||
methods.sort();
|
||||
let methods = serde_json::to_value(&methods)
|
||||
.expect("Serialization of Vec<String> is infallible; qed");
|
||||
|
||||
move |_| Ok(serde_json::json!({
|
||||
"version": 1,
|
||||
"methods": methods.clone(),
|
||||
}))
|
||||
});
|
||||
io
|
||||
}
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@ edition = "2018"
|
||||
codec = { package = "parity-scale-codec", version = "1.0.0" }
|
||||
derive_more = "0.14.0"
|
||||
futures03 = { package = "futures-preview", version = "0.3.0-alpha.17", features = ["compat"] }
|
||||
jsonrpc-core = "13.0.0"
|
||||
jsonrpc-core-client = "13.0.0"
|
||||
jsonrpc-derive = "13.0.0"
|
||||
jsonrpc-pubsub = "13.0.0"
|
||||
jsonrpc-core = "13.2.0"
|
||||
jsonrpc-core-client = "13.2.0"
|
||||
jsonrpc-derive = "13.2.0"
|
||||
jsonrpc-pubsub = "13.2.0"
|
||||
log = "0.4"
|
||||
parking_lot = "0.9.0"
|
||||
primitives = { package = "substrate-primitives", path = "../../primitives" }
|
||||
|
||||
@@ -821,12 +821,9 @@ ServiceBuilder<
|
||||
TBl
|
||||
>,
|
||||
>, Error> {
|
||||
let mut config = self.config;
|
||||
session::generate_initial_session_keys(
|
||||
self.client.clone(),
|
||||
config.dev_key_seed.clone().map(|s| vec![s]).unwrap_or_default()
|
||||
)?;
|
||||
let (
|
||||
let ServiceBuilder {
|
||||
marker: _,
|
||||
mut config,
|
||||
client,
|
||||
fetcher,
|
||||
backend,
|
||||
@@ -840,21 +837,12 @@ ServiceBuilder<
|
||||
rpc_extensions,
|
||||
dht_event_tx,
|
||||
rpc_builder,
|
||||
) = (
|
||||
self.client,
|
||||
self.fetcher,
|
||||
self.backend,
|
||||
self.keystore,
|
||||
self.select_chain,
|
||||
self.import_queue,
|
||||
self.finality_proof_request_builder,
|
||||
self.finality_proof_provider,
|
||||
self.network_protocol,
|
||||
self.transaction_pool,
|
||||
self.rpc_extensions,
|
||||
self.dht_event_tx,
|
||||
self.rpc_builder,
|
||||
);
|
||||
} = self;
|
||||
|
||||
session::generate_initial_session_keys(
|
||||
client.clone(),
|
||||
config.dev_key_seed.clone().map(|s| vec![s]).unwrap_or_default()
|
||||
)?;
|
||||
|
||||
new_impl!(
|
||||
TBl,
|
||||
|
||||
Reference in New Issue
Block a user