- Jan 31, 2024
-
-
Branislav Kontur authored
[frame] `#[pallet::composite_enum]` improved variant count handling + removed `pallet_balances`'s `MaxHolds` config (#2657) I started this investigation/issue based on @liamaharon question [here](https://github.com/paritytech/polkadot-sdk/pull/1801#discussion_r1410452499). ## Problem The `pallet_balances` integrity test should correctly detect that the runtime has correct distinct `HoldReasons` variant count. I assume the same situation exists for RuntimeFreezeReason. It is not a critical problem, if we set `MaxHolds` with a sufficiently large value, everything should be ok. However, in this case, the integrity_test check becomes less useful. **Situation for "any" runtime:** - `HoldReason` enums from different pallets: ```rust /// from pallet_nis #[pallet::composite_enum] pub enum HoldReason { NftReceipt, } /// from pallet_preimage #[pallet::composite_enum] pub enum HoldReason { Preimage, } // from pallet_state-trie-migration #[pallet::composite_enum] pub enum HoldReason { SlashForContinueMigrate, SlashForMigrateCustomTop, SlashForMigrateCustomChild, } ``` - generated `RuntimeHoldReason` enum looks like: ```rust pub enum RuntimeHoldReason { #[codec(index = 32u8)] Preimage(pallet_preimage::HoldReason), #[codec(index = 38u8)] Nis(pallet_nis::HoldReason), #[codec(index = 42u8)] StateTrieMigration(pallet_state_trie_migration::HoldReason), } ``` - composite enum `RuntimeHoldReason` variant count is detected as `3` - we set `type MaxHolds = ConstU32<3>` - `pallet_balances::integrity_test` is ok with `3`(at least 3) However, the real problem can occur in a live runtime where some functionality might stop working. This is due to a total of 5 distinct hold reasons (for pallets with multi-instance support, it is even more), and not all of them can be used because of an incorrect `MaxHolds`, which is deemed acceptable according to the `integrity_test`: ``` // pseudo-code - if we try to call all of these: T::Currency::hold(&pallet_nis::HoldReason::NftReceipt.into(), &nft_owner, deposit)?; T::Currency::hold(&pallet_preimage::HoldReason::Preimage.into(), &nft_owner, deposit)?; T::Currency::hold(&pallet_state_trie_migration::HoldReason::SlashForContinueMigrate.into(), &nft_owner, deposit)?; // With `type MaxHolds = ConstU32<3>` these two will fail T::Currency::hold(&pallet_state_trie_migration::HoldReason::SlashForMigrateCustomTop.into(), &nft_owner, deposit)?; T::Currency::hold(&pallet_state_trie_migration::HoldReason::SlashForMigrateCustomChild.into(), &nft_owner, deposit)?; ``` ## Solutions A macro `#[pallet::*]` expansion is extended of `VariantCount` implementation for the `#[pallet::composite_enum]` enum type. This expansion generates the `VariantCount` implementation for pallets' `HoldReason`, `FreezeReason`, `LockId`, and `SlashReason`. Enum variants must be plain enum values without fields to ensure a deterministic count. The composite runtime enum, `RuntimeHoldReason` and `RuntimeFreezeReason`, now sets `VariantCount::VARIANT_COUNT` as the sum of pallets' enum `VariantCount::VARIANT_COUNT`: ```rust #[frame_support::pallet(dev_mode)] mod module_single_instance { #[pallet::composite_enum] pub enum HoldReason { ModuleSingleInstanceReason1, ModuleSingleInstanceReason2, } ... } #[frame_support::pallet(dev_mode)] mod module_multi_instance { #[pallet::composite_enum] pub enum HoldReason<I: 'static = ()> { ModuleMultiInstanceReason1, ModuleMultiInstanceReason2, ModuleMultiInstanceReason3, } ... } impl self::sp_api_hidden_includes_construct_runtime::hidden_include::traits::VariantCount for RuntimeHoldReason { const VARIANT_COUNT: u32 = 0 + module_single_instance::HoldReason::VARIANT_COUNT + module_multi_instance::HoldReason::<module_multi_instance::Instance1>::VARIANT_COUNT + module_multi_instance::HoldReason::<module_multi_instance::Instance2>::VARIANT_COUNT + module_multi_instance::HoldReason::<module_multi_instance::Instance3>::VARIANT_COUNT; } ``` In addition, `MaxHolds` is removed (as suggested [here](https://github.com/paritytech/polkadot-sdk/pull/2657#discussion_r1443324573)) from `pallet_balances`, and its `Holds` are now bounded to `RuntimeHoldReason::VARIANT_COUNT`. Therefore, there is no need to let the runtime specify `MaxHolds`. ## For reviewers Relevant changes can be found here: - `substrate/frame/support/procedural/src/lib.rs` - `substrate/frame/support/procedural/src/pallet/parse/composite.rs` - `substrate/frame/support/procedural/src/pallet/expand/composite.rs` - `substrate/frame/support/procedural/src/construct_runtime/expand/composite_helper.rs` - `substrate/frame/support/procedural/src/construct_runtime/expand/hold_reason.rs` - `substrate/frame/support/procedural/src/construct_runtime/expand/freeze_reason.rs` - `substrate/frame/support/src/traits/misc.rs` And the rest of the files is just about removed `MaxHolds` from `pallet_balances` ## Next steps Do the same for `MaxFreezes` https://github.com/paritytech/polkadot-sdk/issues/2997. --------- Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: gupnik <[email protected]>
-
- Jan 30, 2024
-
-
Alexander Samusev authored
cc https://github.com/paritytech/ci_cd/issues/926 --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: Vladimir Istyufeev <[email protected]>
-
Oliver Tale-Yazdi authored
Add `Balances::force_adjust_total_issuance` as preparation for fixing https://github.com/polkadot-fellows/runtimes/issues/147. Important changes in `substrate/frame/balances/src/lib.rs`. TODO: - [x] Update weights --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher <[email protected]>
-
dharjeezy authored
closes https://github.com/polkadot-fellows/help-center/issues/1 --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
Robert Hambrock authored
Moves `pallet_mmr` back behind `pallet_session` to address polkadot-fellows/runtimes#160. Opening draft for CI - should be merged or closed depending on outcome of w3f/polkadot-spec#718. --------- Co-authored-by: Adrian Catangiu <[email protected]>
-
Kian Paimani authored
This fixes a bug in nomination pools that msitakenly claimed the rewards, upon pool destruction, into the caller of `unbond` and not the actual member. More description and a PA coming soon. Opening this for now to expediate backport. --------- Co-authored-by: Gonçalo Pestana <[email protected]>
-
- Jan 29, 2024
-
-
Lulu authored
While including files cross crate works locally. When pushed to crates.io each crate is seperate so the file path no longer exists. Instead change it to a symlink, which cargo will change to a read directory when published.
-
PG Herveou authored
-
- Jan 28, 2024
-
-
dependabot[bot] authored
Bumps [polkavm-derive](https://github.com/koute/polkavm) from 0.4.0 to 0.5.0. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/koute/polkavm/commit/fe4f77a161bfe6ae247c7290b3e314a713865071"><code>fe4f77a</code></a> Add more tests</li> <li><a href="https://github.com/koute/polkavm/commit/170d1bf2ff468eefd7b46a56bacb2996a480ce25"><code>170d1bf</code></a> Rework <code>R_RISCV_HI20</code>/<code>R_RISCV_LO12_I</code>/<code>R_RISCV_LO12_S</code> relocations</li> <li><a href="https://github.com/koute/polkavm/commit/97310bb7a2cf0c109957c3f6e59f2dfc9f1a470d"><code>97310bb</code></a> Support more types of relocations</li> <li><a href="https://github.com/koute/polkavm/commit/09ae074e680072f6839d565062ff78d0427e3bca"><code>09ae074</code></a> Add a slightly better error message</li> <li><a href="https://github.com/koute/polkavm/commit/02f1a061c34a355805a3e73b8a1a98775ced609e"><code>02f1a06</code></a> Make error messages about unsupported relocations more human-readable</li> <li><a href="https://github.com/koute/polkavm/commit/4c7e40dd7be9ac7608124e74859448376b671a66"><code>4c7e40d</code></a> Support importing of the same function from multiple places</li> <li><a href="https://github.com/koute/polkavm/commit/35968d9b1625fde61df420d1a42614a730cfdadc"><code>35968d9</code></a> Update the test blob build script</li> <li><a href="https://github.com/koute/polkavm/commit/3b2176d3835157e7e1f76787c96abf91b4b8ba9a"><code>3b2176d</code></a> Reexport <code>ProgramParseError</code> from <code>polkavm-linker</code></li> <li><a href="https://github.com/koute/polkavm/commit/200124014fd5b666af5b7ea4b80016332bd77883"><code>2001240</code></a> Support <code>unsafe fn</code>s in <code>#[polkavm_export]</code></li> <li><a href="https://github.com/koute/polkavm/commit/9b76ec57b7e949f17c62d6c11a41699ac1699623"><code>9b76ec5</code></a> Remove the need for a linker script</li> <li>Additional commits viewable in <a href="https://github.com/koute/polkavm/compare/v0.4.0...v0.5.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=polkavm-derive&package-manager=cargo&previous-version=0.4.0&new-version=0.5.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
- Jan 27, 2024
-
-
Gonçalo Pestana authored
This PR removes current default for `RewardDestination`, which may cause confusion since a ledger should not have a default reward destination: either it has a reward destination, or something is wrong. It also changes the `Payee`'s reward destination in storage from `ValueQuery` to `OptionQuery`. In addition, it adds a `try_state` check to make sure each bonded ledger have a valid reward destination. Closes https://github.com/paritytech/polkadot-sdk/issues/2063 --------- Co-authored-by: command-bot <> Co-authored-by: Ross Bulat <[email protected]>
-
Adel Arja authored
This PR is related to [this](https://github.com/paritytech/polkadot-sdk/issues/154) issue. The idea is to add `OrdNoBound` and `PartialOrdNoBound` macros to the substrate `*NoBound` macros. closes #2198 ✄ ----------------------------------------------------------------------------- Thank you for your Pull Request!
🙏 Please make sure it follows the contribution guidelines outlined in [this document](https://github.com/paritytech/polkadot-sdk/blob/master/docs/CONTRIBUTING.md) and fill out the sections below. Once you're ready to submit your PR for review, please delete this section and leave only the text under the "Description" heading. # Description *Please include a summary of the changes and the related issue. Please also include relevant motivation and context, including:* - What does this PR do? - Why are these changes needed? - How were these changes implemented and what do they affect? *Use [Github semantic linking](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) to address any open issues this PR relates to or closes.* Fixes # (issue number, *if applicable*) Closes # (issue number, *if applicable*) # Checklist - [ ] My PR includes a detailed description as outlined in the "Description" section above - [ ] My PR follows the [labeling requirements](CONTRIBUTING.md#Process) of this project (at minimum one label for `T` required) - [ ] I have made corresponding changes to the documentation (if applicable) - [ ] I have added tests that prove my fix is effective or that my feature works (if applicable) You can remove the "Checklist" section once all have been checked. Thank you for your contribution! ✄ ----------------------------------------------------------------------------- --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: command-bot <> -
Sergej Sakac authored
This PR allows Coretime regions to be transferable via XCM. --------- Co-authored-by: Dónal Murray <[email protected]>
-
- Jan 26, 2024
-
-
Alexander Theißen authored
Printing the `Schedule` is a useful debugging tool and general sanity check. It is much more easy to interpret than the raw weights. The printing relied on using `println` and hence was only available from the native runtime. This is no longer available. This is why in this PR we switch to using `log` which works from Wasm. I made sure that the `WeightDebug` is only derived when `runtime-benchmarks` is set so that we don't increase the size of the binary. Some other changes were necessary to make this actually work inside the runtime. For example, I needed to remove `format!` and usage of floats. Please note that this removed the decimal from the number because truncating the fraction without using floats would not be easy and would require custom code. I think the precision here is sufficient. This is how the output looks like now: ``` Schedule { limits: Limits { event_topics: 4, globals: 256, locals: 1024, parameters: 128, memory_pages: 16, table_size: 4096, br_table_size: 256, subject_len: 32, payload_len: 16384, runtime_memory: 134217728, }, instruction_weights: InstructionWeights { base: 2565, _phantom: PhantomData<kitchensink_runtime::Runtime>, }, host_fn_weights: HostFnWeights { caller: 322 ns, 6 bytes, is_contract: 28 µs, 2684 bytes, code_hash: 29 µs, 2688 bytes, own_code_hash: 400 ns, 6 bytes, caller_is_origin: 176 ns, 3 bytes, caller_is_root: 158 ns, 3 bytes, address: 315 ns, 6 bytes, gas_left: 355 ns, 6 bytes, balance: 1 µs, 6 bytes, value_transferred: 314 ns, 6 bytes, minimum_balance: 318 ns, 6 bytes, block_number: 313 ns, 6 bytes, now: 325 ns, 6 bytes, weight_to_fee: 1 µs, 14 bytes, input: 263 ns, 6 bytes, input_per_byte: 989 ps, 0 bytes, r#return: 0 ps, 45 bytes, return_per_byte: 320 ps, 0 bytes, terminate: 1 ms, 5266 bytes, random: 1 µs, 10 bytes, deposit_event: 1 µs, 10 bytes, deposit_event_per_topic: 127 µs, 2508 bytes, deposit_event_per_byte: 501 ps, 0 bytes, debug_message: 226 ns, 7 bytes, debug_message_per_byte: 1 ns, 0 bytes, set_storage: 131 µs, 293 bytes, set_storage_per_new_byte: 576 ps, 0 bytes, set_storage_per_old_byte: 184 ps, 1 bytes, set_code_hash: 297 µs, 3090 bytes, clear_storage: 131 µs, 289 bytes, clear_storage_per_byte: 92 ps, 1 bytes, contains_storage: 29 µs, 289 bytes, contains_storage_per_byte: 213 ps, 1 bytes, get_storage: 29 µs, 297 bytes, get_storage_per_byte: 980 ps, 1 bytes, take_storage: 131 µs, 297 bytes, take_storage_per_byte: 921 ps, 1 bytes, transfer: 156 µs, 2520 bytes, call: 484 µs, 2721 bytes, delegate_call: 406 µs, 2637 bytes, call_transfer_surcharge: 607 µs, 5227 bytes, call_per_cloned_byte: 970 ps, 0 bytes, instantiate: 1 ms, 2731 bytes, instantiate_transfer_surcharge: 131 µs, 2549 bytes, instantiate_per_input_byte: 1 ns, 0 bytes, instantiate_per_salt_byte: 1 ns, 0 bytes, hash_sha2_256: 377 ns, 8 bytes, hash_sha2_256_per_byte: 1 ns, 0 bytes, hash_keccak_256: 767 ns, 8 bytes, hash_keccak_256_per_byte: 3 ns, 0 bytes, hash_blake2_256: 443 ns, 8 bytes, hash_blake2_256_per_byte: 1 ns, 0 bytes, hash_blake2_128: 440 ns, 8 bytes, hash_blake2_128_per_byte: 1 ns, 0 bytes, ecdsa_recover: 45 µs, 77 bytes, ecdsa_to_eth_address: 11 µs, 42 bytes, sr25519_verify: 41 µs, 112 bytes, sr25519_verify_per_byte: 5 ns, 1 bytes, reentrance_count: 174 ns, 3 bytes, account_reentrance_count: 248 ns, 40 bytes, instantiation_nonce: 154 ns, 3 bytes, add_delegate_dependency: 131 µs, 2606 bytes, remove_delegate_dependency: 130 µs, 2568 bytes, }, } ############################################### Lazy deletion weight per key: Weight(ref_time: 126109302, proof_size: 70) Lazy deletion keys per block: 15859 ```
-
Liam Aharon authored
Related https://github.com/paritytech/polkadot-sdk/issues/3032 --- Using https://github.com/liamaharon/cargo-workspace-version-tools/ `cargo run -- sync --path ../polkadot-sdk` --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
Oliver Tale-Yazdi authored
Fix the Pools `v7` migration. --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Branislav Kontur <[email protected]>
-
- Jan 25, 2024
-
-
Alexandru Vasile authored
This PR backports the changes from https://github.com/paritytech/json-rpc-interface-spec/pull/107. The `transaction` class becomes `transactionWatch`, and the other functionality remains the same. // cc @paritytech/subxt-team --------- Signed-off-by: Alexandru Vasile <[email protected]>
-
Michal Kucharczyk authored
We don't need dependency on `json_patch` there is implementation of needed function in `sc_chain_spec` crate. This PR makes this function publicly available and removes the dep.
-
- Jan 24, 2024
-
-
dependabot[bot] authored
Bumps [arbitrary](https://github.com/rust-fuzz/arbitrary) from 1.3.0 to 1.3.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-fuzz/arbitrary/blob/main/CHANGELOG.md">arbitrary's changelog</a>.</em></p> <blockquote> <h2>1.3.2</h2> <p>Released 2023-10-30.</p> <h3>Added</h3> <ul> <li>Added <code>Arbitrary</code> implementations for <code>Arc<[T]></code> and <code>Rc<[T]></code>. <a href="https://redirect.github.com/rust-fuzz/arbitrary/pull/160">#160</a></li> </ul> <hr /> <h2>1.3.1</h2> <p>Released 2023-10-11.</p> <h3>Fixed</h3> <ul> <li>Fixed an issue with generating collections of collections in <code>arbitrary_take_rest</code> where <code><Vec<Vec<u8>>>::arbitrary_take_rest</code> would never generate <code>vec![vec![]]</code> for example. See <a href="https://redirect.github.com/rust-fuzz/arbitrary/pull/159">#159</a> for details.</li> </ul> <hr /> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/66e75c5bf57275d400d3ebc746e0cee4f6ff9596"><code>66e75c5</code></a> Bump to version 1.3.1</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/04054dfa1a0f07b233db0581c2d61615df737ade"><code>04054df</code></a> Merge pull request <a href="https://redirect.github.com/rust-fuzz/arbitrary/issues/160">#160</a> from kpreid/arcslice</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/ef5dff63e4f3079acc6455445f0a8080d4857813"><code>ef5dff6</code></a> Implement <code>Arbitrary</code> for <code>Arc\<[A]></code> and <code>Rc\<[A]></code>.</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/b3e8342ea8dc8437aff3d3a1f5b95b7c02bf57f5"><code>b3e8342</code></a> Bump to version 1.3.1</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/c1fa740bb777940bda77a4154d035805b4ecce5b"><code>c1fa740</code></a> Merge pull request <a href="https://redirect.github.com/rust-fuzz/arbitrary/issues/159">#159</a> from fitzgen/arbitrary-take-rest-and-collections-of-c...</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/f19fd7a512fe953e902954d01fe046475d8f01a7"><code>f19fd7a</code></a> Add clippy allow for existing code running afoul of new clippy lint</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/27560f182b5f0feb8dbd70791cbadd6fbd622411"><code>27560f1</code></a> Fix <code>Unstructured::arbitrary_take_rest_iter</code> for collections of collections</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/80d6bfe5e8c864a05ed8c1f0a107bca632ea8c61"><code>80d6bfe</code></a> Merge pull request <a href="https://redirect.github.com/rust-fuzz/arbitrary/issues/157">#157</a> from jyn514/ip-addr</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/7d3364edb6a39554c4b97f0d0548289f001121fe"><code>7d3364e</code></a> impl Arbitrary for IpAddr</li> <li><a href="https://github.com/rust-fuzz/arbitrary/commit/0bdbec8a9fdf19a18e6cb8ffe4022b9a6a588cf2"><code>0bdbec8</code></a> Merge pull request <a href="https://redirect.github.com/rust-fuzz/arbitrary/issues/151">#151</a> from Ekleog-NEAR/patch-2</li> <li>Additional commits viewable in <a href="https://github.com/rust-fuzz/arbitrary/compare/v1.3.0...v1.3.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=arbitrary&package-manager=cargo&previous-version=1.3.0&new-version=1.3.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
Bumps [docify](https://github.com/sam0x17/docify) from 0.2.6 to 0.2.7. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/sam0x17/docify/releases">docify's releases</a>.</em></p> <blockquote> <h2>v0.2.7</h2> <p>updates toml to 0.8</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/sam0x17/docify/commit/a6bb26159613db316c14392215f08479d60093e1"><code>a6bb261</code></a> bump to v0.2.7</li> <li><a href="https://github.com/sam0x17/docify/commit/22b6e0cbedb47cf86dd8e9b394557508a6af20d0"><code>22b6e0c</code></a> Merge pull request <a href="https://redirect.github.com/sam0x17/docify/issues/24">#24</a> from kayabaNerve/main</li> <li><a href="https://github.com/sam0x17/docify/commit/19d3cd625d3d4f699d1aeeb6d08a8408b495724b"><code>19d3cd6</code></a> toml 0.8</li> <li>See full diff in <a href="https://github.com/sam0x17/docify/compare/v0.2.6...v0.2.7">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docify&package-manager=cargo&previous-version=0.2.6&new-version=0.2.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Just van Stam authored
Moved from: https://github.com/paritytech/polkadot/pull/6951 closes https://github.com/paritytech/polkadot-sdk/issues/490 - [x] update cumulus --- This PR introduces transactional processing of certain xcm instructions. For the list of instructions checkout https://github.com/paritytech/polkadot-sdk/issues/490. The transactional processing is implemented as an xcm-executor config item. The two implementations in this PR are `FrameTransactionalProcessor` and `()`. The `()` implementation does no transactional processing. Each implementation of the `ProcessTransaction` trait has an `IS_TRANSACTIONAL` const that tells the XCVM if transactional processing is actually implemented. If Transactional processing is implemented, changes to touched registers should also be rolled back to prevent inconsistencies. Note for reviewers: Check out the following safety assumption: https://github.com/paritytech/polkadot-sdk/pull/1222/files#diff-4effad7d8c1c9de19fd27e18661cbf2128c8718f3b2420a27d2f816e0749ea53R30 --------- Co-authored-by: Keith Yeung <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: command-bot <>
-
Branislav Kontur authored
## Summary This PR consolidates `pallet-state-trie-migration` as a part of https://github.com/paritytech/polkadot-sdk/issues/226 / https://github.com/paritytech/polkadot-sdk/issues/171: `pallet-state-trie-migration`: - [x] replace `Currency` with `fungible` traits - [x] run benchmarks - [x] refactor to `DefaultConfig` `pallet_nicks`: - [x] remove others: - [x] remove `as Fn*` or `asFun*` stuff based on discussion [here](https://github.com/paritytech/polkadot-sdk/issues/226#issuecomment-1822861445) --------- Co-authored-by: Richard Melkonian <[email protected]> Co-authored-by: command-bot <>
-
- Jan 23, 2024
-
-
Branislav Kontur authored
There were several improvements and PRs that didn't apply to all runtimes, so this PR attempts to align those small differences. In addition, the PR eliminates unused dependencies across multiple modules. Relates to PR for `polkadot-fellows`: https://github.com/polkadot-fellows/runtimes/pull/154
-
Alexandru Vasile authored
The [archive](https://github.com/paritytech/json-rpc-interface-spec/blob/main/src/api/archive.md) API is unstable and subject to change. This PR enables the `archive` class of the RPC-V2 spec to substrate based chains. The `archive` API is enabled for archive nodes: - the state of the blocks is in archive mode - the block's bodies are in archive mode While at it, this PR extends the `BlocksPrunning` enum with an `is_archive` helper to check if the pruning mode keeps the block's bodies for long enough. Defaults used for the `archive` API: - a maximum of 5 responses are provided for descendants queries (this is similar to chainHead) - a maximum of 8 item queries are accepted at a time Before stabilizing the API we should look into these defaults and adjust after collecting some data. --------- Signed-off-by: Alexandru Vasile <[email protected]>
-
Niklas Adolfsson authored
This is a rather big change in jsonrpsee, the major things in this bump are: - Server backpressure (the subscription impls are modified to deal with that) - Allow custom error types / return types (remove jsonrpsee::core::Error and jsonrpee::core::CallError) - Bug fixes (graceful shutdown in particular not used by substrate anyway) - Less dependencies for the clients in particular - Return type requires Clone in method call responses - Moved to tokio channels - Async subscription API (not used in this PR) Major changes in this PR: - The subscriptions are now bounded and if subscription can't keep up with the server it is dropped - CLI: add parameter to configure the jsonrpc server bounded message buffer (default is 64) - Add our own subscription helper to deal with the unbounded streams in substrate The most important things in this PR to review is the added helpers functions in `substrate/client/rpc/src/utils.rs` and the rest is pretty much chore. Regarding the "bounded buffer limit" it may cause the server to handle the JSON-RPC calls slower than before. The message size limit is bounded by "--rpc-response-size" thus "by default 10MB * 64 = 640MB" but the subscription message size is not covered by this limit and could be capped as well. Hopefully the last release prior to 1.0, sorry in advance for a big PR Previous attempt: https://github.com/paritytech/substrate/pull/13992 Resolves https://github.com/paritytech/polkadot-sdk/issues/748, resolves https://github.com/paritytech/polkadot-sdk/issues/627
-
dependabot[bot] authored
Bumps [substrate-bip39](https://github.com/paritytech/substrate-bip39) from 0.4.4 to 0.4.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/paritytech/substrate-bip39/commits/v0.4.5">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=substrate-bip39&package-manager=cargo&previous-version=0.4.4&new-version=0.4.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
- Jan 22, 2024
-
-
Davide Galassi authored
Step towards https://github.com/paritytech/polkadot-sdk/issues/1975 As reported https://github.com/paritytech/polkadot-sdk/issues/1975#issuecomment-1774534225 I'd like to encapsulate crypto related stuff in a dedicated folder. Currently all cryptographic primitive wrappers are all sparsed in `substrate/core` which contains "misc core" stuff. To simplify the process, as the first step with this PR I propose to move the cryptographic hashing there. The `substrate/crypto` folder was already created to contains `ec-utils` crate. Notes: - rename `sp-core-hashing` to `sp-crypto-hashing` - rename `sp-core-hashing-proc-macro` to `sp-crypto-hashing-proc-macro` - As the crates name is changed I took the freedom to restart fresh from version 0.1.0 for both crates --------- Co-authored-by: Robert Hambrock <[email protected]>
-
dependabot[bot] authored
Bumps [wasm-instrument](https://github.com/paritytech/wasm-instrument) from 0.3.0 to 0.4.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/paritytech/wasm-instrument/blob/master/CHANGELOG.md">wasm-instrument's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <p>All notable changes to this project will be documented in this file.</p> <p>The format is based on <a href="https://keepachangelog.com/en/1.0.0/">Keep a Changelog</a>, and this project adheres to <a href="https://semver.org/spec/v2.0.0.html">Semantic Versioning</a>.</p> <p>The semantic versioning guarantees cover the interface to the substrate runtime which includes this pallet as a dependency. This module will also add storage migrations whenever changes require it. Stability with regard to offchain tooling is explicitly excluded from this guarantee: For example adding a new field to an in-storage data structure will require changes to frontends to properly display it. However, those changes will still be regarded as a minor version bump.</p> <p>The interface provided to smart contracts will adhere to semver with one exception: Even major version bumps will be backwards compatible with regard to already deployed contracts. In other words: Upgrading this pallet will not break pre-existing contracts.</p> <h2>[Unreleased]</h2> <h3>New</h3> <ul> <li>Add new gas metering method: mutable global + local gas function <a href="https://redirect.github.com/paritytech/wasm-instrument/pull/34">#34</a></li> <li>Account for locals initialization costs <a href="https://redirect.github.com/paritytech/wasm-instrument/pull/38">#38</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/paritytech/wasm-instrument/commits/v0.4.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=wasm-instrument&package-manager=cargo&previous-version=0.3.0&new-version=0.4.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Nikos Kontakis authored
This PR wraps the `Snapshot`, `SnapshotMetadata` and `DesiredTargets` storage items in the [EPM pallet](https://paritytech.github.io/substrate/master/pallet_election_provider_multi_phase/index.html) in order to keep them in sync throughout the election lifetime and in order to be killed together. Prior to this PR, these storage items were mutated in different places in the pallet; In addition 2 helper `fns` are introduced for chekcing if all the wrapped storage items exist or not; Fixes #413 ; --------- Co-authored-by: Gonçalo Pestana <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
-
dependabot[bot] authored
Bumps [memmap2](https://github.com/RazrFalcon/memmap2-rs) from 0.5.10 to 0.9.3. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/RazrFalcon/memmap2-rs/blob/master/CHANGELOG.md">memmap2's changelog</a>.</em></p> <blockquote> <h2>[0.9.3] - 2023-12-19</h2> <h3>Fixed</h3> <ul> <li>Build on Android.</li> </ul> <h2>[0.9.2] - 2023-12-17</h2> <h3>Fixed</h3> <ul> <li>Build on FreeBSD.</li> </ul> <h2>[0.9.1] - 2023-12-16</h2> <h3>Changed</h3> <ul> <li>Added <code>MmapOptions::huge</code> method to support mapping hugetlb. Linux only. <a href="https://github.com/ollie-etl"><code>@ollie-etl</code></a> <a href="https://github.com/oliverbunting"><code>@oliverbunting</code></a></li> </ul> <h2>[0.9.0] - 2023-10-03</h2> <h3>Changed</h3> <ul> <li>The <code>Advice</code> struct was split into two enums: <code>Advice</code> and <code>UncheckedAdvice</code>.<!-- raw HTML omitted --> <code>Advice</code> can be passed to safe <code>advise</code> and <code>advise_range</code> methods. And <code>UncheckedAdvice</code> can be passed to unsafe <code>unchecked_advise</code> and <code>unchecked_advise_range</code> methods.<!-- raw HTML omitted --> <a href="https://github.com/adamreichold"><code>@adamreichold</code></a></li> </ul> <h2>[0.8.0] - 2023-09-25</h2> <h3>Changed</h3> <ul> <li>The <code>Advice</code> type is a struct and not an enum now. <a href="https://github.com/adamreichold"><code>@adamreichold</code></a></li> </ul> <h3>Fixed</h3> <ul> <li>Some of the <code>Advise</code> variants were unsound and now require <code>unsafe</code> to be constructed. <a href="https://github.com/adamreichold"><code>@adamreichold</code></a></li> </ul> <h2>[0.7.1] - 2023-06-24</h2> <h3>Fixed</h3> <ul> <li>Mapping beyond 4GB offset on 32 bit glibc. Linux-only. <a href="https://github.com/lvella"><code>@lvella</code></a></li> </ul> <h2>[0.7.0] - 2023-06-08</h2> <h3>Added</h3> <ul> <li><code>Mmap::remap</code>, <code>MmapMut::remap</code> and <code>MmapRaw::remap</code>. Linux-only. <a href="https://github.com/Phantomical"><code>@Phantomical</code></a></li> <li><code>Advice::PopulateRead</code> and <code>Advice::PopulateWrite</code>. Linux-only. <a href="https://github.com/Jesse-Bakker"><code>@Jesse-Bakker</code></a></li> </ul> <h3>Changed</h3> <ul> <li>libc crate >= 0.2.143 is required now.</li> </ul> <h2>[0.6.2] - 2023-05-24</h2> <h3>Fixed</h3> <ul> <li>Alignment for empty files on Windows. <a href="https://github.com/timvisee"><code>@timvisee</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/5a49e8ab0bda97770a6ed972633dfb862e17cd38"><code>5a49e8a</code></a> Version bump.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/1079b61f400542a5a4b946d9f57761eb2ae674a4"><code>1079b61</code></a> Fix build on Android.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/c82f49b2969807e3ae9f2e835917ddfd2bd1d25d"><code>c82f49b</code></a> Version bump.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/faafbfd031e283ab6ef637e8c9d6a5d85e84602b"><code>faafbfd</code></a> Fix formatting.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/428bb9bf061af89c33d6188dfa4abff2ffcd7e31"><code>428bb9b</code></a> Fix tests.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/55109c68837e80f3c00f4a56a75a6abd49ead7c7"><code>55109c6</code></a> Disable huge tables support for freebsd, since it doesn't support them.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/c173463cc3bfae8b5e6f19ae909af89dd11afe39"><code>c173463</code></a> Version bump.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/e5faf1339d21ecbe4f62a803050aaae415c96a8d"><code>e5faf13</code></a> Fix madvise tests to not assume 4k pages.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/3c71286cebd43b49e87449490608024e6b05596b"><code>3c71286</code></a> Add huge pages support.</li> <li><a href="https://github.com/RazrFalcon/memmap2-rs/commit/f16835d01ad1d36198718e23273558f1947fc138"><code>f16835d</code></a> Version bump.</li> <li>Additional commits viewable in <a href="https://github.com/RazrFalcon/memmap2-rs/compare/v0.5.10...v0.9.3">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=memmap2&package-manager=cargo&previous-version=0.5.10&new-version=0.9.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Bastian Köcher authored
Changes `sc-informant` to respect the `--disable-log-color` CLI flag. Closes: https://github.com/paritytech/polkadot-sdk/issues/2795 --------- Co-authored-by: Michal Kucharczyk <[email protected]>
-
joe petrowski authored
Clean up all the old syntax. --------- Co-authored-by: command-bot <> Co-authored-by: gupnik <[email protected]> Co-authored-by: Nikhil Gupta <[email protected]> Co-authored-by: Maksym H <[email protected]>
-
- Jan 20, 2024
-
-
dependabot[bot] authored
Bumps [comfy-table](https://github.com/nukesor/comfy-table) from 7.0.1 to 7.1.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/nukesor/comfy-table/releases">comfy-table's releases</a>.</em></p> <blockquote> <h2>v7.1.0</h2> <h2>[7.1.0] - 2023-10-21</h2> <h3>Added</h3> <ul> <li>Add helper methods <code>(col,row)_count</code> and <code>is_empty</code>. The first set of methods return the number of columns and rows respectively. The method <code>is_empty</code> returns if the table is empty (contains no data rows). Implemented by <a href="https://github.com/Techassi">Techassi</a> in <a href="https://redirect.github.com/Nukesor/comfy-table/pull/119">#119</a>.</li> </ul> <h3>Chore</h3> <ul> <li>Bump crossterm dependency</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Nukesor/comfy-table/blob/main/CHANGELOG.md">comfy-table's changelog</a>.</em></p> <blockquote> <h2>[7.1.0] - 2023-10-21</h2> <h3>Added</h3> <ul> <li>Add helper methods <code>(col,row)_count</code> and <code>is_empty</code>. The first set of methods return the number of columns and rows respectively. The method <code>is_empty</code> returns if the table is empty (contains no data rows). Implemented by <a href="https://github.com/Techassi">Techassi</a> in <a href="https://redirect.github.com/Nukesor/comfy-table/pull/119">#119</a>.</li> </ul> <h3>Chore</h3> <ul> <li>Bump crossterm dependency</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Nukesor/comfy-table/commit/ef14a132f09a520ecac6945dc8e2529fb627f403"><code>ef14a13</code></a> chore: Release comfy-table version 7.1.0</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/3f0563e2b71157cf002b04c738a46da28876f6c3"><code>3f0563e</code></a> docs: Update changelog</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/fb636c9e72a0f7c3df102d497a5e61e683fda40b"><code>fb636c9</code></a> Merge pull request <a href="https://redirect.github.com/nukesor/comfy-table/issues/125">#125</a> from Nukesor/dependabot/github_actions/actions/checko...</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/f3c9e1d64fc22b8e675e7ebb18c2c49e621f4d0e"><code>f3c9e1d</code></a> build(deps): bump actions/checkout from 3 to 4</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/ec99e06bbe216426fe5d4734597fe745fdb87d63"><code>ec99e06</code></a> Merge pull request <a href="https://redirect.github.com/nukesor/comfy-table/issues/128">#128</a> from Nukesor/updates</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/329f4c9d7a042747234a60a681b7635eba27ad02"><code>329f4c9</code></a> change: Use 1.70 in CI for criterion</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/1b6d45290dae53a06a152dca3584f2156b87bfae"><code>1b6d452</code></a> bump: Crossterm</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/af3924c0daced677a9d8a2956c84fbfb50cca5e9"><code>af3924c</code></a> chore: Clippy issues</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/aebf4ef66d16ae356fdbac5d2ff5f2d2025fb48a"><code>aebf4ef</code></a> Merge pull request <a href="https://redirect.github.com/nukesor/comfy-table/issues/119">#119</a> from Techassi/feature/row-col-count</li> <li><a href="https://github.com/Nukesor/comfy-table/commit/9f45a5e2d6c9f266f1bd6537fcf974b216359a1f"><code>9f45a5e</code></a> Merge pull request <a href="https://redirect.github.com/nukesor/comfy-table/issues/122">#122</a> from ip1981/ip1981/cell-hash</li> <li>Additional commits viewable in <a href="https://github.com/nukesor/comfy-table/compare/v7.0.1...v7.1.0">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=comfy-table&package-manager=cargo&previous-version=7.0.1&new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Doordashcon authored
Part of https://github.com/paritytech/polkadot-sdk/issues/239. Invariant 1. The number of entries in `Tips` should be equal to `Reasons`. 2. If `OpenTip.finders_fee` is true, then `OpenTip.deposit` should be greater than zero. 3. Reasons exists for each Tip[`OpenTip.reason`], implying equal length of storage. polkadot address: 12zsKEDVcHpKEWb99iFt3xrTCQQXZMu477nJQsTBBrof5k2h --------- Co-authored-by: Gonçalo Pestana <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]>
-
- Jan 19, 2024
-
-
PG Herveou authored
-
Nazar Mokrynskyi authored
I have a use case that for safety requires all contained data structures to be `#[repr(C)]` or `#[repr(transparent)]` and it seemed like non-invasive change.
-
Robin Freyler authored
In https://github.com/paritytech/polkadot-sdk/pull/2941 we found out that the new Wasmi (register) is very effective at optimizing away certain benchmark bytecode constructs in a way that created an unfair advantage over Wasmi (stack) which yielded our former benchmarks to be ineffective at properly measuring the performance impact. This PR adjusts both affected benchmarks to fix the stated problems. Affected are - `instr_i64const` -> `instr_i64add`: Renamed since it now measures the performance impact of the Wasm `i64.add` instruction with locals as inputs and outputs. This makes it impossible for Wasmi (register) to aggressively optimize away the entire function body (as it previously did) but still provides a way for Wasmi (register) to shine with its register based execution model. - `call_with_code_per_byte`: Now uses `local.get` instead of `i32.const` for the `if` condition which prevents Wasmi (register) to aggressively optimizing away whole parts of the `if` creating an unfair advantage. cc @athei --------- Co-authored-by: command-bot <> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Ignacio Palacios <[email protected]>
-
Oliver Tale-Yazdi authored
Using just `nightly` is too generic and can fail on different systems. Now its fixed to the nightly version of the CI. Another way would be to use a toolchain file, since this already assumes `rustup`. Signed-off-by: Oliver Tale-Yazdi <[email protected]>
-
dependabot[bot] authored
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.149 to 0.2.152. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/libc/releases">libc's releases</a>.</em></p> <blockquote> <h2>0.2.152</h2> <h2>What's Changed</h2> <ul> <li>openbsd: syscall() has been removed in upcoming OpenBSD 7.5 by <a href="https://github.com/semarie"><code>@semarie</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3479">rust-lang/libc#3479</a></li> <li>adding tcp_info to openbsd by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3481">rust-lang/libc#3481</a></li> <li>iadding yser_fpxregs_struct data to linux/musl i686. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3477">rust-lang/libc#3477</a></li> <li>strftime* api for *BSD by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3483">rust-lang/libc#3483</a></li> <li>strftime_l for Linux glibc/musl by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3484">rust-lang/libc#3484</a></li> <li>adding iocb data for io_submit syscall for linux/glibc. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3486">rust-lang/libc#3486</a></li> <li>Re-enable <code>i686-pc-windows-gnu</code> CI by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3489">rust-lang/libc#3489</a></li> <li>Stop testing on FreeBSD 12 by <a href="https://github.com/asomers"><code>@asomers</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3475">rust-lang/libc#3475</a></li> <li>Add <code>ifreq</code>, <code>ifconf</code> and related constants to Android by <a href="https://github.com/arctic-alpaca"><code>@arctic-alpaca</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3487">rust-lang/libc#3487</a></li> <li>Add waitid function for OpenBSD by <a href="https://github.com/lcheylus"><code>@lcheylus</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3490">rust-lang/libc#3490</a></li> <li>adding SOMAXCONN to redox by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3491">rust-lang/libc#3491</a></li> <li>Fix typos in comments by <a href="https://github.com/asomers"><code>@asomers</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3492">rust-lang/libc#3492</a></li> <li>fix typos in libc by <a href="https://github.com/Takashiidobe"><code>@Takashiidobe</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3496">rust-lang/libc#3496</a></li> <li>apple adding tcp_connection_info struct by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3482">rust-lang/libc#3482</a></li> <li>Improve the version parser of Emscripten by <a href="https://github.com/kleisauke"><code>@kleisauke</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3498">rust-lang/libc#3498</a></li> <li>Add constants from <!-- raw HTML omitted --> by <a href="https://github.com/GuillaumeGomez"><code>@GuillaumeGomez</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3505">rust-lang/libc#3505</a></li> <li>Define <code>TFD_TIMER_*</code> constants on FreeBSD. by <a href="https://github.com/sunfishcode"><code>@sunfishcode</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3506">rust-lang/libc#3506</a></li> <li>Add support for posix_spawn on OpenBSD by <a href="https://github.com/nuudlman"><code>@nuudlman</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3502">rust-lang/libc#3502</a></li> <li>clock_nanosleep for dragonflybsd, moving constants freebsd only too. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3509">rust-lang/libc#3509</a></li> <li>solarish add fcntl's O_DIRECT constant. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3503">rust-lang/libc#3503</a></li> <li>Unpin cc dependency version by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3511">rust-lang/libc#3511</a></li> <li>redox: add openpty, login_tty, TIOCSCTTY, and organize functions by <a href="https://github.com/jackpot51"><code>@jackpot51</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3512">rust-lang/libc#3512</a></li> <li>Move all seccomp consts and structs into top-level mod by <a href="https://github.com/boustrophedon"><code>@boustrophedon</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3343">rust-lang/libc#3343</a></li> <li>freebsd 15 support proposal. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3508">rust-lang/libc#3508</a></li> <li>Prepare workflow for merge queue by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3514">rust-lang/libc#3514</a></li> <li>Allow dead_code on <code>clockid_t</code> by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3516">rust-lang/libc#3516</a></li> <li>Add more items from <code>include/linux/sched.h</code> header by <a href="https://github.com/GuillaumeGomez"><code>@GuillaumeGomez</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3515">rust-lang/libc#3515</a></li> <li>fix typo by <a href="https://github.com/shuoer86"><code>@shuoer86</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3517">rust-lang/libc#3517</a></li> <li>Add sigsuspend to more targets: bsd, haiku, and solarish by <a href="https://github.com/asomers"><code>@asomers</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3518">rust-lang/libc#3518</a></li> <li>Tweak libc-0.2 CI by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3519">rust-lang/libc#3519</a></li> <li>fuchsia adding pthread_set/getname_np by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3520">rust-lang/libc#3520</a></li> <li>Prepare docs for libc v0.3 by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3510">rust-lang/libc#3510</a></li> <li>Merge main into libc-0.2 by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3521">rust-lang/libc#3521</a></li> <li>Prepare release for v0.2.152 by <a href="https://github.com/JohnTitor"><code>@JohnTitor</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3522">rust-lang/libc#3522</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Takashiidobe"><code>@Takashiidobe</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3496">rust-lang/libc#3496</a></li> <li><a href="https://github.com/nuudlman"><code>@nuudlman</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3502">rust-lang/libc#3502</a></li> <li><a href="https://github.com/boustrophedon"><code>@boustrophedon</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3343">rust-lang/libc#3343</a></li> <li><a href="https://github.com/shuoer86"><code>@shuoer86</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/libc/pull/3517">rust-lang/libc#3517</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-lang/libc/compare/0.2.151...0.2.152">https://github.com/rust-lang/libc/compare/0.2.151...0.2.152</a></p> <h2>0.2.151</h2> <h2>What's Changed</h2> <ul> <li>Add new constants to be used in (linux) sysctl by <a href="https://github.com/GuillaumeGomez"><code>@GuillaumeGomez</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3423">rust-lang/libc#3423</a></li> <li>openbsd ifreq implementation refinement ifru_data member using proper… by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3390">rust-lang/libc#3390</a></li> <li>adding reboot to netbsd/openbsd. by <a href="https://github.com/devnexen"><code>@devnexen</code></a> in <a href="https://redirect.github.com/rust-lang/libc/pull/3426">rust-lang/libc#3426</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rust-lang/libc/commit/3d175191e6c6ad2b97de090d86d28dbfa4d271a3"><code>3d17519</code></a> Merge pull request <a href="https://redirect.github.com/rust-lang/libc/issues/3522">#3522</a> from JohnTitor/libc-0.2.152</li> <li><a href="https://github.com/rust-lang/libc/commit/0f5d2c1d419543819f072169eab72a85abd2e9d2"><code>0f5d2c1</code></a> Prepare release for v0.2.152</li> <li><a href="https://github.com/rust-lang/libc/commit/ee500ca0541809005b4ec4c7157add1e170dc545"><code>ee500ca</code></a> Merge pull request <a href="https://redirect.github.com/rust-lang/libc/issues/3521">#3521</a> from rust-lang/main</li> <li><a href="https://github.com/rust-lang/libc/commit/72093f38fbc3c3fec485b0aba6f1ef81ad59ca1e"><code>72093f3</code></a> Auto merge of <a href="https://redirect.github.com/rust-lang/libc/issues/3510">#3510</a> - JohnTitor:prepare-libc-0.3, r=JohnTitor</li> <li><a href="https://github.com/rust-lang/libc/commit/e5612b92d30668eea24495a2d6d84ed1f601f437"><code>e5612b9</code></a> Auto merge of <a href="https://redirect.github.com/rust-lang/libc/issues/3520">#3520</a> - devnexen:fuchsia_upd, r=JohnTitor</li> <li><a href="https://github.com/rust-lang/libc/commit/44ba265df55df13b37a3e1e2145053b68196074d"><code>44ba265</code></a> fuchsia adding pthread_set/getname_np</li> <li><a href="https://github.com/rust-lang/libc/commit/2f93bfb7678e18a9fc5373dec49384bd23f601c3"><code>2f93bfb</code></a> Auto merge of <a href="https://redirect.github.com/rust-lang/libc/issues/3519">#3519</a> - JohnTitor:tweak-libc-0.2-ci, r=JohnTitor</li> <li><a href="https://github.com/rust-lang/libc/commit/11f7c7b89d9bfe8c53dcca7571c4965fa3375aab"><code>11f7c7b</code></a> Auto merge of <a href="https://redirect.github.com/rust-lang/libc/issues/3518">#3518</a> - asomers:more-sigsuspend, r=JohnTitor</li> <li><a href="https://github.com/rust-lang/libc/commit/0b9596b22c59cd97409c017cc4dc0620e15bd87c"><code>0b9596b</code></a> Tweak libc-0.2 CI</li> <li><a href="https://github.com/rust-lang/libc/commit/5594447694db909c1ad8fa191a8ac0df734cdd23"><code>5594447</code></a> Auto merge of <a href="https://redirect.github.com/rust-lang/libc/issues/3517">#3517</a> - shuoer86:main, r=JohnTitor</li> <li>Additional commits viewable in <a href="https://github.com/rust-lang/libc/compare/0.2.149...0.2.152">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libc&package-manager=cargo&previous-version=0.2.149&new-version=0.2.152)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
Liam Aharon authored
Closes #1323 cc @xlc --------- Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
-
- Jan 18, 2024
-
-
Gonçalo Pestana authored
A bonded ledger fetched with the `StakingLedger` implementation exposes a method `ledger.controller()` that returns the controller of the ledger. However, that controller is computed and stored under the `ledger.controller` field on the fly - i.e when the ledger is fetched from storage using the `StakingLedger::get` method. The controller field is never stored in storage. This PR add a few more tests checks and improves the ledger try-state checks to make sure these invariants hold true. --------- Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Kian Paimani <[email protected]>
-