In Substrate code, there is logic to determine the way in which extrinsics should be submitted to the runtime (ref: https://github.com/paritytech/substrate/blob/v3.0.0/client/transaction-pool/src/api.rs#L174). This logic is based on the version of Substrate's
TaggedTransactionQueue. Does the version of the transaction queue line up with any of the versions that Substrate runtimes advertise via their metadata (e.g. extrinsic version, metadata version)? What versions of Polkadot use which transaction versions?
It seems like maybe this should be advertised by way of the
apis attribute on the
RuntimeVersion type, but I'm not sure how to decode the API ID.