[public] Add first class support for Runtime APIs
The Vision
A new set of runtime APIs as proposed by Pierre are on their way (see https://github.com/paritytech/json-rpc-interface-spec/ and paritytech/substrate#12071). The longer term plan will be to remove the existing RPCs, and regardless, we are already expecting users to rely on Runtime API calls much more nowadays rather than exposing such things vi…
The Vision
A new set of runtime APIs as proposed by Pierre are on their way (see https://github.com/paritytech/json-rpc-interface-spec/ and paritytech/substrate#12071). The longer term plan will be to remove the existing RPCs, and regardless, we are already expecting users to rely on Runtime API calls much more nowadays rather than exposing such things via a new RPC method.
Like creating transactions/storage requests/constants, working with Runtime APIs is fiddly and requires knowledge of which methods are available and how to encode calls to them. So, we'd like to be able to also add the APIs needed to safely and easily construct calls to Runtime APIs to subxt.
The Plan
- The major blocker is actually adding type definitions for those Runtime APIs into the metadata (which in turn will lead to a V15 metadata being released, which in turn means we want to bundle together other issues people have with metadata into that update to avoid needing to do another update for as long as possible). We need to start the ball rolling to gather and reach consensus on what needs adding/changing.
- Once that's in place, we need to update Subxt to support V15 metadata.
- Finally, we need to add codegen for Runtime APIs, expose support for them via a new
api.call()
method (or something like that) and support dynamic quering of them, too.
Open Questions
- The first step is the hard one; we need to actually reach consensus around adding this stuff to the metadata in the first place. I expect reaching that consensus and agreeing which other changes need to make it in if so, to take the significant majority of the time here.
This milestone is closed.
No open issues remain. View closed issues or see open milestones in this repository.