Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[0.39.0] - 2025-02-04
This release is mostly bug fixes and changes. The only change that should be a breaking change is removing the
substrate-compat
feature flag (see #1850), which we'll go into more detail about.The
substrate-compat
feature flag has been removed.The
substrate-compat
feature flag essentially provided:subxt::config::Header
trait for anything implementingsp_runtime::traits::Header
(here).subxt::config::Hasher
and anything implementingsp_runtime::traits::Hasher
(here).subxt_core::tx::PairSigner
type which could be given something implementingsp_core::Pair
and then be used to sign transactions (here).sp_runtime::AccountId32
and related forsubxt::utils::AccountId32
(here).sp_runtime::MultiAddress
andsubxt::utils::MultiAddress
(here).sp_runtime::MultiSignature
andsubxt::utils::MultiSignature
(here).While useful, providing these features in Subxt is almost impossible to maintain: we can only support a single version of
sp_runtime
/sp_core
at a time, but many versions are in use in the wild. This led to various issues regarding the mismatch betweensp_*
crates in use and a given version of Subxt. More generally, the goal of Subxt is to be independent from any specific version of Substrate, and communicate via the exposed RPC APIs in order to work across any compatible Substrate version (or indeed, alternative implementations that follow things like the RPC spec).As a result, we've taken the decision to remove this compatibility layer from Subxt itself. To migrate away from this feature, we suggest:
subxt_signer
instead, if it's a viable alternative in your case.The hope is that this pattern is applicable to any such types that you find useful to share between Substrate and Subxt code. Please raise an issue if you can't find a solution in your case, and we'll endeavour to help!
The result of this is that your code will work against whichever Substrate crate versions you are using, at the cost of this code no longer being included behind the
substrate-compat
feature flag.A full list of relevant changes and fixes (nothing was added in this release) is as follows:
Changed
thiserror
(#1856)jsonrpsee
insubxt::ext
(#1843)Fixed