As the original author of “Ultimate Testing Tool” I must confess that I would like to retract that statement; indeed, what I have learned over the months is that try-runtime-cli
is sub-optimal in many aspects. Although, the fact that it resembles the normal substrate client is also useful for debugability purposes.
All in all, the part of this discussion that I want to highlight is #[cfg(feature = try-runtime)]
is much more valuable than try-runtime-cli
. The full API is listed here.
I think the idea of a FRAME-based runtime being able to expose additional runtime apis that let its internals being deeply tested is awesome, and gives me a piece of mind. I would love to see more clients (including the substrate client) integrate these APIs. Moreover, we should make more pallet expose these APIs.
I thought I had opened an issue for this, but someday I would love to see each Polkadot release contain a try-runtime-enabled wasm blob, and tools like Chopsticks and Fudge, among try-runtime-cli capable of calling them.