-
Notifications
You must be signed in to change notification settings - Fork 9
⬆️ Upgrade to Polkadot SDK stable2412-2 #470
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
lrazovic
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few minor nits, but overall looks quite good! I'm just a bit worried about this entire XCMv5, maybe a bit "premature" since AH is still not using it. Do you think it is a good idea to proceed with the update? Can we stick to XCMv4 for now and move to v5 after AH also migrates to v5?
d116e92 to
2828880
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR upgrades dependencies to the stable2412-2 release and updates related interfaces and APIs across pallets, nodes, and integration tests. Key changes include:
- Replacing deprecated APIs (e.g. sp_std, treasury extrinsics) with their new counterparts.
- Updating transaction extension, xcm, and runtime API usages to align with the latest versions.
- Upgrading various dependency versions in the Cargo.toml files to ensure compatibility with the new release.
Reviewed Changes
Copilot reviewed 92 out of 93 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| pallets/democracy/src/benchmarking.rs | Replaced sp_std::borrow::Cow with alloc::borrow::Cow |
| pallets/democracy/Cargo.toml | Removed sp-std dependency from std configuration |
| nodes/parachain/src/service.rs | Updated executor config and transaction pool builder usage |
| nodes/parachain/src/rpc.rs | Removed DenyUnsafe property in RPC extensions |
| nodes/parachain/src/command.rs | Updated RPC addressing signature and hwbench function call |
| nodes/parachain/src/chain_spec/* | Replaced legacy account seed methods with sp_keyring alternatives |
| nodes/parachain/Cargo.toml | Added sp-keyring workspace dependency and runtime bench updates |
| integration-tests/src/tests/* | Switched from get_account_id_from_seed to get_public_from_string_or_panic and updated xcm & transaction extension APIs |
| integration-tests/Cargo.toml | Upgraded dependencies, replacing xcm-fee-payment-runtime-api with xcm-runtime-apis |
| Cargo.toml | Upgraded substrate-wasm-builder, orml dependencies, jsonrpsee and other Substrate components |
Files not reviewed (1)
- justfile: Language not supported
Comments suppressed due to low confidence (11)
nodes/parachain/src/service.rs:126
- Confirm that wrapping the transaction pool builder result with Arc::from is intended instead of directly using the builder's build() result; verify that the type conversion is compatible with downstream usage.
let transaction_pool = Arc::from(
nodes/parachain/src/service.rs:235
- Review the updated generic parameters in the aura::run invocation to ensure they match the expected signature for the new version of the API.
let fut = aura::run::<Block, sp_consensus_aura::sr25519::AuthorityPair, _, _, _, _, _, _, _, _>(params);
nodes/parachain/src/rpc.rs:22
- Confirm that the removal of the deny_unsafe usage in RPC extensions does not compromise the security of RPC calls; ensure that the new approach meets security requirements.
pub use sc_rpc::DenyUnsafe;
nodes/parachain/src/command.rs:320
- Ensure that the updated RPC address signature (returning a vector of endpoints) is correctly handled by all downstream consumers.
fn rpc_addr(&self, default_listen_port: u16) -> Result<Option<Vec<sc_cli::RpcEndpoint>>> {
integration-tests/src/tests/transaction_payment.rs:130
- Double-check the new transaction extension API calls (validate and prepare) to ensure they correctly handle fee calculation and error propagation as expected by the updated runtime.
let (_, val, _) = signed_extension.validate(...).expect("tx extension validation failed");
integration-tests/src/tests/runtime_apis.rs:15
- Verify that changing the parameter from 4u32 to 5u32 for the acceptable payment assets query is deliberate and aligns with the new runtime expectations.
let accepted_payment_assets = PolimecRuntime::query_acceptable_payment_assets(5u32).unwrap();
integration-tests/src/tests/governance.rs:238
- Reminder: Uncomment and update the treasury proposal test once the treasury API changes are resolved to maintain comprehensive test coverage.
/// TODO: uncomment later and fix
integration-tests/src/tests/governance.rs:289
- Ensure that the test for slashed treasury proposal funds is revisited and re-enabled with appropriate modifications once the treasury API update is fully integrated.
/// TODO: same here
integration-tests/Cargo.toml:81
- Confirm that replacing xcm-fee-payment-runtime-api with xcm-runtime-apis is consistent across the codebase and does not introduce any compatibility issues.
xcm-runtime-apis.workspace = true
Cargo.toml:54
- Review the upgraded substrate-wasm-builder version to ensure that it is fully compatible with the runtime build and does not introduce unexpected behavior.
substrate-wasm-builder = { version = "25.0.0" }
Cargo.toml:74
- Ensure that upgrading orml-oracle to version 1.3.0 is compatible with the current SDK interfaces and that any breaking changes have been addressed.
orml-oracle = { version = "1.3.0", default-features = false }
2828880 to
e205664
Compare
|
moved back to |
e205664 to
fc38ace
Compare
fc38ace to
51c4399
Compare

What?
closes #446
Tasks
stable2409and1.14.0).stable2412.Additional Context
Treasury::propose_spend(...)integrations tests needs a rework, since that extrinsic is now deprecated, and it should be replaced byTreasury::sped_local(...). We can ignore these tests for now and re-add them in a later PR.Why?
Release analysis posts here.
Some notable PRs:
SignedExtrawith newTransactionExtension. This requires us to reimplement the customCheckNonceas a follow up PR - FRAME: ReintroduceTransactionExtensionas a replacement forSignedExtensionparitytech/polkadot-sdk#3685latest, sov4xcm types are replaced withv5- XCM v5 paritytech/polkadot-sdk#4826 -xcm-fee-payment-runtime-apimodule into the newxcm-runtime-apis- [xcm] runtime api for LocationToAccount conversions paritytech/polkadot-sdk#4857sp-stddependency, replace withallocorcoreHow?
Testing?
cargo t -p pallet-funding)cargo t -p integration-tests)Screenshots (optional)
Syncing with mainnet `polimec`