- Mar 01, 2025
-
-
command-bot authored
-
Ankan authored
-
- Feb 28, 2025
-
-
Alexandru Vasile authored
This PR handles a case where we called the `poll_next` on an outbound substream notification to check if the stream is closed. It is entirely possible that the `poll_next` would return an `io::error`, for example end of file. This PR ensures that we make the distinction between unexpected incoming data, and error originated from `poll_next`. While at it, the bulk of the PR change propagates the PeerID from the network behavior, through the notification handler, to the notification outbound stream for logging purposes. cc @paritytech/networking Part of: https://github.com/paritytech/polkadot-sdk/issues/7722 --------- Signed-off-by:
Alexandru Vasile <alexandru.vasile@parity.io>
-
Sebastian Kunert authored
Follow-up of https://github.com/paritytech/polkadot-sdk/pull/7638, which attempted to remove contracts-rococo. But there were some leftover weight files still chilling in the repo.
-
Alexander Theißen authored
Fixes https://github.com/paritytech/polkadot-sdk/issues/6723 ## Motivation Internal auditors recommended to not truncate Polkadot Addresses when deriving Ethereum addresses from it. Reasoning is that they are raw public keys where truncating could lead to collisions when weaknesses in those curves are discovered in the future. Additionally, some pallets generate account addresses in a way where only the suffix we were truncating contains any entropy. The changes in this PR act as a safe guard against those two points. ## Changes made We change the `to_address` function to first hash the AccountId32 and then use trailing 20 bytes as `AccountId20`. If the `AccountId32` ends with 12x 0xEE we keep our current behaviour of just truncating those trailing bytes. ## Security Discussion This will allow us to still recover the original `AccountId20` because those are constructed by just adding those 12 bytes. Please note that generating an ed25519 key pair where the trailing 12 bytes are 0xEE is theoretically possible as 96bits is not a huge search space. However, this cannot be used as an attack vector. It will merely allow this address to interact with `pallet_revive` without registering as the fallback account is the same as the actual address. The ultimate vanity address. In practice, this is not relevant since the 0xEE addresses are not valid public keys for sr25519 which is used almost everywhere. tl:dr: We keep truncating in case of an Ethereum address derived account id. This is safe as those are already derived via keccak. In every other case where we have to assume that the account id might be a public key. Therefore we first hash and then take the trailing bytes. ## Do we need a Migration for Westend No. We changed the name of the mapping. This means the runtime will not try to read the old data. Ethereum keys are unaffected by this change. We just advise people to re-register their AccountId32 in case they need to use it as it is a very small circle of users (just 3 addresses registered). This will not cause disturbance on Westend. --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
-
Egor_P authored
This PR updates `pgpgkms`, tool to sign releases, to the latest version to fix the issue wiht the `debian` publishing form the pipeline. Address: https://github.com/paritytech/release-engineering/issues/248
-
Serban Iorga authored
Related to https://github.com/paritytech/polkadot-sdk/issues/7360 This PR adds `DecodeWithMemTracking` as a trait bound for `Header`, `Block` and `TransactionExtension` and derives it for all the types that implement these traits in `polkadot-sdk`.
-
- Feb 27, 2025
-
-
Raymond Cheung authored
A follow-up PR to simplify event assertions by introducing `contains_event`, allowing event checks without needing exact field matches. This reduces redundancy and makes tests more flexible. Partially addresses #6119 by providing an alternative way to assert events. Reference: [PR #7594 - Discussion](https://github.com/paritytech/polkadot-sdk/pull/7594#discussion_r1965566349) --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by:
Branislav Kontur <bkontur@gmail.com> Co-authored-by:
Bastian Köcher <git@kchr.de>
-
Utkarsh Bhardwaj authored
# Description * This PR adds a new extrinsic `poke_deposit` to `pallet-multisig`. This extrinsic will be used to re-adjust the deposits made in the pallet to create a multisig operation after AHM. * Part of #5591 ## Review Notes * Added a new extrinsic `poke_deposit` in `pallet-multisig`. * Added a new event `DepositPoked` to be emitted upon a successful call of the extrinsic. * Although the immediate use of the extrinsic will be to give back some of the deposit after the AH-migration, the extrinsic is written such that it can work if the deposit decreases or increases (both). * The call to the extrinsic would be `free` if an actual adjustment is made to the deposit and `paid` otherwise. * Added tests to test all scenarios. ## TO-DOs * [x] Add Benchmark * [x] Run CI cmd bot to benchmark --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by:
Giuseppe Re <giuseppe.re@parity.io>
-
huntbounty authored
Resolves #7536 --------- Signed-off-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
-
Egor_P authored
This PR backports version bumps and prdocs reorg from the latest stable branch back to master
-
Alexandru Vasile authored
This PR ensures compatibility in terms of expectations between the libp2p and litep2p network backends at the notification protocol level. The libp2p node is tested with the `Notification` behavior that contains the protocol controller, while litep2p is tested at the lowest level API (without substrate shim layers). ## Notification Behavior (I) Libp2p protocol controller will eagerly reopen a closed substream, even if it is the one that closed it: - When a node (libp2p or litep2p) closes the substream with **libp2p**, the **libp2p** controller will reopen the substream - When **libp2p** closes the substream with a node (either litep2p with no controller or libp2p), the **libp2p** controller will reopen the substream - However in this case, libp2p was the one closing the substream signaling it is no longer interested in communicating with the other side (II) Notifications are lost and not reported to the higher level in the following scenario: - T0: Node A opens a substream with Node B - T1: Node A closes the substream or the connection with Node B - T2: Node B sends a notification to Node A => *notification is lost* and never reported - T3: Node B detects the closed substream or connection ## Testing This PR effectively checks: - connectivity at the notification level - litep2p rejecting libp2p substream and keep-alive mechanism functionality - libp2p disconnecting libp2p and connection re-establishment (and all the other permutations) - idling of connections with active substreams and keep-alive mechanism is not enforced Prior work: - https://github.com/paritytech/polkadot-sdk/pull/7361 cc @paritytech/networking --------- Signed-off-by:
Alexandru Vasile <alexandru.vasile@parity.io> Co-authored-by:
Dmitry Markin <dmitry@markin.tech>
-
Mrisho Lukamba authored
Closes #7573 @skunert @bkchr --------- Co-authored-by:
Bastian Köcher <git@kchr.de> Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by:
Sebastian Kunert <skunert49@gmail.com>
-
- Feb 26, 2025
-
-
Ankan authored
closes https://github.com/paritytech/polkadot-sdk/issues/5742 Need to be backported to stable2503 release. With the migration of staking accounts to [fungible currency](https://github.com/paritytech/polkadot-sdk/pull/5501), we can now allow pool users to stake directly and vice versa. This update introduces a configurable filter mechanism to determine which accounts can join a nomination pool. ## Example Usage ### 1. Allow any account to join a pool To permit all accounts to join a nomination pool, use the `Nothing` filter: ```rust impl pallet_nomination_pools::Config for Runtime { ... type Filter = Nothing; } ``` ### 2. Restrict direct stakers from joining a pool To prevent direct stakers from joining a nomination pool, use `pallet_staking::AllStakers`: ```rust impl pallet_nomination_pools::Config for Runtime { ... type Filter = pallet_staking::AllStakers<Runtime>; } ``` ### 3. Define a custom filter For more granular control, you can define a custom filter: ```rust struct MyCustomFilter<T: Config>(core::marker::PhantomData<T>); impl<T: Config> Contains<T::AccountId> for MyCustomFilter<T> { fn contains(account: &T::AccountId) -> bool { todo!("Implement custom logic. Return `false` to allow the account to join a pool.") } } ``` --------- Co-authored-by:
Bastian Köcher <info@kchr.de>
-
xermicus authored
This PR changes the behavior of delegate calls when the callee is not a contract account: Instead of returning a `CodeNotFound` error, this is allowed and the caller observes a successful call with empty output. The change makes for example the following contract behave the same as on EVM: ```Solidity contract DelegateCall { function delegateToLibrary() external returns (bool) { address testAddress = 0x0000000000000000000000000000000000000000; (bool success, ) = testAddress.delegatecall( abi.encodeWithSignature("test()") ); return success; } } ``` Closes https://github.com/paritytech/revive/issues/235 --------- Signed-off-by:
xermicus <cyrill@parity.io> Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
-
Ludovic_Domingues authored
# Description Migrated polkadot-runtime-common paras_registrar benchmarking to the new benchmarking syntax v2. This is part of #6202 --------- Co-authored-by:
Giuseppe Re <giuseppe.re@parity.io>
-
PG Herveou authored
Add ECrecover 0x1 precompile and remove the unstable equivalent host function. - depend on https://github.com/paritytech/polkadot-sdk/pull/7676 --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by:
Alexander Theißen <alex.theissen@me.com>
-
Ludovic_Domingues authored
# Description Migrating polkadot-runtime-parachains paras_inherent benchmarking to the new benchmarking syntax v2. This is part of #6202 --------- Co-authored-by:
Giuseppe Re <giuseppe.re@parity.io>
-
Ludovic_Domingues authored
# Description Migrated polkadot-runtime-parachains initializer benchmarking to the new benchmarking syntax v2. This is part of #6202 Co-authored-by:
Giuseppe Re <giuseppe.re@parity.io>
-
Serban Iorga authored
Closes https://github.com/paritytech/polkadot-sdk/issues/7707 We need to add `pallet-revive` to penpal westend for testing cross-contract XCM scenarios purposes
-
Ludovic_Domingues authored
# Description Migrated polkadot-runtime-common crowdloan benchmarking to the new benchmarking syntax v2. this is part of #6202 Co-authored-by:
Giuseppe Re <giuseppe.re@parity.io> Co-authored-by:
seemantaggarwal <32275622+seemantaggarwal@users.noreply.github.com>
-
clangenb authored
Extracted from #7473. Part of: https://github.com/paritytech/polkadot-sdk/issues/5704. --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by:
Branislav Kontur <bkontur@gmail.com>
-
Branislav Kontur authored
Relates to: https://github.com/paritytech/polkadot-sdk/issues/7541 Relates to: https://github.com/paritytech/polkadot-sdk/issues/7566 This PR contains improved test cases that rely on the governance location as preparation for AHM to capture the state as it is. It introduces `execute_as_governance_call`, which can be configured with various governance location setups instead of the hard-coded `Location::parent()`. Additionally, it adds a test for `authorize_upgrade` to all SP testnets. ## TODO - [x] rewrite all tests using `RuntimeHelper::<Runtime>::execute_as_governance` (because it is using hard-coded `Location::parent()`) to use `RuntimeHelper::<Runtime>::execute_as_governance_call` ## Follow-up - [ ] add similar test for westend-runtime - [ ] add test that ensure xcm-executor adds `ClearOrigin` before all side-effect sent to different chain --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
-
clangenb authored
There were already previous efforts to remove the contracts-rococo chain, see #5471, which was done as a response to this comment https://github.com/paritytech/polkadot-sdk/pull/5288#discussion_r1711157476. This PR intends to fix the parts that were overlooked back then, and remove all traces of contracts-rococo as it is intended to be replaced by a new testnet including pallet-revive.
-
- Feb 25, 2025
-
-
Giuseppe Re authored
The runtime API implemented version is not explicitly shown in metadata, so here we add it to improve developer experience. We need to bump `frame-metadata` and `merkleized-metadata` to allow this new feature. This closes #7352 . _Refactor_: also changing all the occurrences of `ViewFunctionMethod` to just `ViewFunction` for metadata types. --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
-
CrabGopher authored
# Description Seems like SubstrateWeights that used T::DBWeights was not public unlike the frame_system's Call weights. PR just made those weights public ## Integration Instead of using `()` impl which used RockDB weights, ExtensionWeights can be used to to use the provided DBWeights to System config
-
Rohit Sarpotdar authored
removed run-relay references removed in PR #7549
-
- Feb 24, 2025
-
-
Niklas Adolfsson authored
Partly fixes #7403 Subxt depends still on sp-crypto-hashing v0.7 but it's only one dependency after removing the substrate-compat feature which is probably "acceptable"
-
PG Herveou authored
Fix tracing should wrap around the entire call stack execution --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
-
Francisco Aguirre authored
The `PayFees` instruction should only ever be used once. If it's used more than once, it's just a noop. --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by:
Adrian Catangiu <adrian@parity.io>
-
CrabGopher authored
`sc-cli` brings rocksdb dependency into frame-benchmarking-cli when used with `default-features = false`. This PR makes rocksdb deps optional that sc-cli brings in some of the crates. I think I covered all the crates that depend on sc-cli but please let me know if I missed any. Fixes: https://github.com/paritytech/polkadot-sdk/issues/3793
-
Daniel Shiposha authored
# Description Fixes #7413 ## Integration This PR updates the `DryRunApi`. The signature of the `dry_run_call` is changed, and the XCM version of the return values of `dry_run_xcm` now follows the version of the input XCM program. ## Review Notes * **The `DryRunApi` is modified** * **Added the `Router::clear_messages` to `dry_run_xcm` common implementation** * **Fixed the xcmp-queue's Router's clear_messages: channels details' first_index and last_index are reset when clearing** * **The MIN_XCM_VERSION is added** * The common implementation in the `pallet-xcm` is modified accordingly * The `DryRunApi` tests are modified to account for testing old XCM versions * The implementation from the `pallet-xcm` is used where it was not used (including the `DryRunApi` tests) * All the runtime implementations are modified according to the Runtime API change --------- Co-authored-by:
Adrian Catangiu <adrian@parity.io>
-
Raymond Cheung authored
# Description This PR introduces a lightweight log-capturing mechanism for XCM unit tests, simplifying debugging by enabling structured log assertions. It partially addresses #6119 and #6125, offering an optional way to verify logs in tests while remaining unobtrusive in normal execution. # Key Changes * [x] Introduces a log capture utility in `sp_tracing`. * [x] Adds XCM test examples demonstrating how and when to use log capturing. # Review Notes: * The log capture mechanism is opt-in and does not affect existing tests unless explicitly used. * The implementation is minimal and does not add complexity to existing test setups. * It provides a structured alternative to [`sp_tracing::init_for_tests()`](https://paritytech.github.io/polkadot-sdk/master/sp_tracing/fn.init_for_tests.html) for log verification in automated tests. --------- Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
-
seemantaggarwal authored
Adding chain-spec-builder as a subcommand into Polkadot omni node
-
paritytech-cmd-bot-polkadot-sdk[bot] authored
Auto-update of all weights for 2025-02-21-1740149841. Subweight results: - [now vs master](https://weights.tasty.limo/compare?repo=polkadot-sdk&threshold=5&path_pattern=.%2F**%2Fweights%2F**%2F*.rs%2C.%2F**%2Fweights.rs&method=asymptotic&ignore_errors=true&unit=time&old=master&new=update-weights-weekly-2025-02-21-1740149841) - [now vs polkadot-v1.15.6 (2025-01-16)](https://weights.tasty.limo/compare?repo=polkadot-sdk&threshold=5&path_pattern=.%2F**%2Fweights%2F**%2F*.rs%2C.%2F**%2Fweights.rs&method=asymptotic&ignore_errors=true&unit=time&old=polkadot-v1.15.6&new=update-weights-weekly-2025-02-21-1740149841) - [now vs polkadot-v1.16.2 (2024-11-14)](https://weights.tasty.limo/compare?repo=polkadot-sdk&threshold=5&path_pattern=.%2F**%2Fweights%2F**%2F*.rs%2C.%2F**%2Fweights.rs&method=asymptotic&ignore_errors=true&unit=time&old=polkadot-v1.16.2&new=update-weights-weekly-2025-02-21-1740149841) Co-authored-by:
github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
-
- Feb 23, 2025
-
-
Davide Galassi authored
Essentially, this locks `bandersnatch_vrfs` to a specific branch of a repository I control. This is a temporary workaround to avoid issues like https://github.com/paritytech/polkadot-sdk/issues/7653 until https://github.com/paritytech/polkadot-sdk/pull/7669 is ready. Closes: https://github.com/paritytech/polkadot-sdk/issues/7653 @drskalman --------- Co-authored-by:
Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
-
- Feb 22, 2025