This repository has been archived by the owner on Oct 22, 2024. It is now read-only.
forked from paritytech/polkadot-sdk
-
Notifications
You must be signed in to change notification settings - Fork 1
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fixes paritytech#4625. Specifically, the `cfg` attribute `windows` refers to the compile target and not the build environment, and in the case of cross-compilation, the build environment and target can differ. However, the line modified is related to documentation generation, so there should be no critical issue with this change.
…4542) Currently, `chain-spec-builder` only creates a spec with `Live` chain type. This PR adds the ability to specify it while keeping the same default. --------- Co-authored-by: Kian Paimani <[email protected]>
…aritytech#4624) Co-authored-by: Bastian Köcher <[email protected]>
…itytech#4595) Validators already have been upgraded so they could already receive the new `CollationWithParentHeadData` response when fetching collation. However this is only sent by collators when the parachain has more than 1 core is assigned. TODO: - [x] PRDoc --------- Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
Addresses [this](paritytech#3155 (comment)).
…aritytech#4634) Depends on paritytech#4621. Implemented the [`XcmPaymentApi`](paritytech#3607) and [`DryRunApi`](paritytech#3872) on all system parachains. More scenarios can be tested on both rococo and westend if all system parachains implement this APIs. The objective is for all XCM-enabled runtimes to implement them. After demonstrating fee estimation in a UI on the testnets, come the fellowship runtimes. Step towards paritytech#690.
Fixes paritytech#4552 --------- Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher <[email protected]>
Tested each bootnode with `--reserved-only --reserved-nodes`
## Runtime Apis Introduces the following runtime apis to facilitate dapps and wallets in integrating with the `DelegateStake` functionalities of the pools (related: paritytech#3905). These apis are meant to support pool and member migration, as well as lazy application of pending slashes of pool members. ```rust fn pool_pending_slash(pool_id: PoolId) -> Balance; fn member_pending_slash(member: AccountId) -> Balance; fn pool_needs_delegate_migration(pool_id: PoolId) -> bool; fn member_needs_delegate_migration(member: AccountId) -> bool; ``` ## Refactors - Introduces newtypes for `Agent`, `Delegator`, `Pool` and `[Pool]Member`. And refactors `StakeAdapter` and `DelegationInterface` to accept the above types. This will help make these apis typesafe against using wrong account type. - Fixing `DelegationInterface` apis to return optional (instead of default value if key does not exist). - Rename struct `Agent` that wraps `AgentLedger` to `AgentOuterLedger` which is clearer (naming wise) and different from the newtype `Agent`. - Cleaning up new Pool events (related to `Delegation` feature of pool). --------- Signed-off-by: Matteo Muraca <[email protected]> Signed-off-by: Alexandru Gheorghe <[email protected]> Signed-off-by: Andrei Sandu <[email protected]> Signed-off-by: Adrian Catangiu <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Signed-off-by: divdeploy <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Signed-off-by: hongkuang <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: gemini132 <[email protected]> Co-authored-by: Matteo Muraca <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alessandro Siniscalchi <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Ross Bulat <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: Sam Johnson <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Niklas Adolfsson <[email protected]> Co-authored-by: Dastan <[email protected]> Co-authored-by: Clara van Staden <[email protected]> Co-authored-by: Ron <[email protected]> Co-authored-by: Vincent Geddes <[email protected]> Co-authored-by: Svyatoslav Nikolsky <[email protected]> Co-authored-by: Michal Kucharczyk <[email protected]> Co-authored-by: Dino Pačandi <[email protected]> Co-authored-by: Andrei Eres <[email protected]> Co-authored-by: Alin Dima <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]> Co-authored-by: gupnik <[email protected]> Co-authored-by: Vladimir Istyufeev <[email protected]> Co-authored-by: Lulu <[email protected]> Co-authored-by: Juan Girini <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Kutsal Kaan Bilgin <[email protected]> Co-authored-by: Ermal Kaleci <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: divdeploy <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sergej Sakac <[email protected]> Co-authored-by: Squirrel <[email protected]> Co-authored-by: HongKuang <[email protected]> Co-authored-by: Tsvetomir Dimitrov <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Aaro Altonen <[email protected]> Co-authored-by: Dmitry Markin <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Léa Narzis <[email protected]> Co-authored-by: Gonçalo Pestana <[email protected]> Co-authored-by: georgepisaltu <[email protected]> Co-authored-by: command-bot <> Co-authored-by: PG Herveou <[email protected]> Co-authored-by: jimwfs <[email protected]> Co-authored-by: jimwfs <[email protected]> Co-authored-by: polka.dom <[email protected]>
Makes all storage items in parachain-system public so that these can be used by other pallets &/or runtimes. --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: command-bot <>
Tested each bootnode with `--reserved-only` `--reserved-nodes` Kusama ``` polkadot --chain kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWKvYf6qKaAF8UUDw3KsTwjHLnvkED23yxHbH3npMe8w4G" --no-hardware-benchmarks polkadot --chain kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/kusama.bootnode.amforc.com/tcp/30001/p2p/12D3KooWKvYf6qKaAF8UUDw3KsTwjHLnvkED23yxHbH3npMe8w4G" --no-hardware-benchmarks ``` Asset Hub Kusama ``` ./polkadot-parachain --chain asset-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWHy1CPndZYphwdVqMb295KPC6LRt17Ae3zNSr7evzeF5a" --no-hardware-benchmarks ./polkadot-parachain --chain asset-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-kusama.bootnode.amforc.com/tcp/30007/p2p/12D3KooWHy1CPndZYphwdVqMb295KPC6LRt17Ae3zNSr7evzeF5a" --no-hardware-benchmarks ``` Bridge Hub Kusama ``` ./polkadot-parachain --chain bridge-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWNyTBwRvCz1Ey2SgC1f3MvymhiAyLEa3cL8kU5gFH3V7Z" --no-hardware-benchmarks ./polkadot-parachain --chain bridge-hub-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30010/p2p/12D3KooWNyTBwRvCz1Ey2SgC1f3MvymhiAyLEa3cL8kU5gFH3V7Z" --no-hardware-benchmarks ``` Coretime Kusama ``` ./polkadot-parachain --chain coretime-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/coretime-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWPrgxrrumrANp6Bp2SMEwMQHPHDbPzA1HbcrakZrbFi5P" --no-hardware-benchmarks ./polkadot-parachain --chain coretime-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/coretime-kusama.bootnode.amforc.com/tcp/30013/p2p/12D3KooWPrgxrrumrANp6Bp2SMEwMQHPHDbPzA1HbcrakZrbFi5P" --no-hardware-benchmarks ``` People Kusama ``` ./polkadot-parachain --chain people-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-kusama.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWPjzgKZe5jdG6TY4gwcFq8QxyyhqsYbQo6N29pwGePWLA" --no-hardware-benchmarks ./polkadot-parachain --chain people-kusama --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-kusama.bootnode.amforc.com/tcp/30004/p2p/12D3KooWPjzgKZe5jdG6TY4gwcFq8QxyyhqsYbQo6N29pwGePWLA" --no-hardware-benchmarks ``` People Westend ``` ./polkadot-parachain --chain people-westend --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-westend.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWE1btdwDhNpApg8BEe2QwJxdVDtz6a6BRhgTeUh9HMhWs" --no-hardware-benchmarks ./polkadot-parachain --chain people-westend --base-path /tmp/node --reserved-only --reserved-nodes "/dns/people-westend.bootnode.amforc.com/tcp/30016/p2p/12D3KooWE1btdwDhNpApg8BEe2QwJxdVDtz6a6BRhgTeUh9HMhWs" --no-hardware-benchmarks ``` Polkadot ``` polkadot --chain polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWT2HyZx5C6BBeLbCKhYG2SqJYuiu7sLMxGzUcQBko3BMr" --no-hardware-benchmarks polkadot --chain polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/polkadot.bootnode.amforc.com/tcp/30001/p2p/12D3KooWT2HyZx5C6BBeLbCKhYG2SqJYuiu7sLMxGzUcQBko3BMr" --no-hardware-benchmarks ``` Asset Hub Polkadot ``` ./polkadot-parachain --chain asset-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWDLxPXYnSHjNwq9ibqgxuzRni5VViuGNSjNe3ueqVgqE3" --no-hardware-benchmarks ./polkadot-parachain --chain asset-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/asset-hub-polkadot.bootnode.amforc.com/tcp/30007/p2p/12D3KooWDLxPXYnSHjNwq9ibqgxuzRni5VViuGNSjNe3ueqVgqE3" --no-hardware-benchmarks ``` Bridge Hub Polkadot ``` ./polkadot-parachain --chain bridge-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWGT5E56rAHfT5dY1pMLTrpAgV72yfDtD1Y5tPCHaTsifp" --no-hardware-benchmarks ./polkadot-parachain --chain bridge-hub-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/bridge-hub-polkadot.bootnode.amforc.com/tcp/30010/p2p/12D3KooWGT5E56rAHfT5dY1pMLTrpAgV72yfDtD1Y5tPCHaTsifp" --no-hardware-benchmarks ``` Collectives Polkadot ``` ./polkadot-parachain --chain collectives-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/collectives-polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWL6v6FHMtCP5VsiDbMHLRFiW6YBtv37BarpW3hLqnDski" --no-hardware-benchmarks ./polkadot-parachain --chain collectives-polkadot --base-path /tmp/node --reserved-only --reserved-nodes "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30013/p2p/12D3KooWL6v6FHMtCP5VsiDbMHLRFiW6YBtv37BarpW3hLqnDski" --no-hardware-benchmarks ```
This PR adds possibility to publish container images for the `chain-spec-builder` binary on the regular basis. Related to: paritytech/release-engineering#190
- Addresses [this](paritytech#3155 (comment)). - Technical content got adopted from the existing [solochain readme](https://github.com/paritytech/polkadot-sdk/tree/master/templates/solochain). - Updated some broken links there. - The docker instructions will work after paritytech#4637. - See the [rendered version](https://github.com/paritytech/polkadot-sdk/blob/rzadp/minimal-template-readme/templates/minimal/README.md). --------- Co-authored-by: gupnik <[email protected]>
As requested [here](paritytech#3155 (comment)). The Dockerfiles are inspired by [this one](https://github.com/paritytech/polkadot-sdk/blob/aa32faaebf64426becb2feeede347740eb7a3908/docker/dockerfiles/polkadot/polkadot_builder.Dockerfile).
…h#4674) `[check-runtime-migration` now takes more than 30 minutes. Quick fix with increased timeout.
Co-authored-by: Oliver Tale-Yazdi <[email protected]>
This PR implements the `READ_ONLY` flag to be used as a `Callflag` in the `call` function. The flag indicates that the callee is restricted from modifying the state during call execution. It is equivalent to Ethereum's [STATICCALL](https://eips.ethereum.org/EIPS/eip-214). --------- Co-authored-by: command-bot <> Co-authored-by: Andrew Jones <[email protected]> Co-authored-by: Alexander Theißen <[email protected]>
Signed-off-by: Alexandru Gheorghe <[email protected]>
Since the fix for paritytech#4559 was to add a codeSubstitute to the rococo-parachains, we should update the chain-specs in the repo. The json diffs are not super easy to review, so if you want to manually check: - Run for example `jd -o people-rococo.diff people-rococo-from-this-branch.json people-rococo-master.json` - Check in the resulting diff file that only `codeSubstitutes` field is changed
This allows to use custom para_ids with cumulus-test-runtime. Zombienet is patching the genesis entries for `ParachainInfo`. This did not work with `test-parachain` because it was using the `test_pallet` for historic reasons I guess.
Added reference doc about: - the pallet genesis config and genesis build, - runtime `genesis-builder` API, - presets, - interacting with the `chain-spec-builder` tool I've added [minimal runtime](https://github.com/paritytech/polkadot-sdk/tree/mku-chain-spec-guide/docs/sdk/src/reference_docs/chain_spec_runtime) to demonstrate above topics. I also sneaked in some little improvement to `chain-spec-builder` which allows to parse output of the `list-presets` command. --------- Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]>
…ech#4646) In order to receive a username in `pallet-identity`, users have to, among other things, provide a signature of the desired username. Right now, there is an [extra encoding step](https://github.com/paritytech/polkadot-sdk/blob/4ab078d6754147ce731523292dd1882f8a7b5775/substrate/frame/identity/src/lib.rs#L1119) when generating the payload to sign. Encoding a `Vec` adds extra bytes related to the length, which changes the payload. This is unnecessary and confusing as users expect the payload to sign to be just the username bytes. This PR fixes this issue by validating the signature directly against the username bytes. --------- Signed-off-by: georgepisaltu <[email protected]>
This Dockerfile seems outdated - it currently fails to build (on my machine). I don't see it being built anywhere on CI. I did a couple of tweaks to make it build. --------- Co-authored-by: Alexander Samusev <[email protected]>
some minor text fixes.
Follow up on paritytech#4414 to clean up the old storage. --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]>
In preparation for launching re-enabling (paritytech#2418), we need to adjust the disabling strategy of statement-distribution to use the relay parent's state instead of the latest state (union of active leaves). This will also ensure no raciness of getting the latest state vs accepting statements from disabling validators at the cost of being more lenient/potentially accepting more statements from disabled validators. - [x] PRDoc
Inherited workspace dependencies cannot be renamed by the crate using them (see [1](rust-lang/cargo#12546), [2](https://stackoverflow.com/questions/76792343/can-inherited-dependencies-in-rust-be-aliased-in-the-cargo-toml-file)). Since we want to use inherited workspace dependencies everywhere, we first need to unify all aliases that we use for a dependency throughout the workspace. The umbrella crate is currently excluded from this procedure, since it should be able to export the crates by their original name without much hassle. For example: one crate may alias `parity-scale-codec` to `codec`, while another crate does not alias it at all. After this change, all crates have to use `codec` as name. The problematic combinations were: - conflicting aliases: most crates aliases as `A` but some use `B`. - missing alias: most of the crates alias a dep but some dont. - superfluous alias: most crates dont alias a dep but some do. The script that i used first determines whether most crates opted to alias a dependency or not. From that info it decides whether to use an alias or not. If it decided to use an alias, the most common one is used everywhere. To reproduce, i used [this](https://github.com/ggwpez/substrate-scripts/blob/master/uniform-crate-alias.py) python script in combination with [this](https://github.com/ggwpez/zepter/blob/38ad10585fe98a5a86c1d2369738bc763a77057b/renames.json) error output from Zepter. --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
Now Polkadot-SDK is ansi_term free --------- Co-authored-by: Bastian Köcher <[email protected]>
Bumps [backtrace](https://github.com/rust-lang/backtrace-rs) from 0.3.69 to 0.3.71. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/backtrace-rs/releases">backtrace's releases</a>.</em></p> <blockquote> <h2>0.3.71</h2> <p>This is mostly CI changes, with a very mild bump to our effective cc crate version recorded, and a small modification to a previous changeset to allow backtrace to run at its current checked-in MSRV on Windows. Sorry about that! We will be getting 0.3.70 yanked shortly.</p> <h2>What's Changed</h2> <ul> <li>Make sgx functions exist with cfg(miri) by <a href="https://github.com/saethlin"><code>@saethlin</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/591">rust-lang/backtrace-rs#591</a></li> <li>Update version of cc crate by <a href="https://github.com/jfgoog"><code>@jfgoog</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/592">rust-lang/backtrace-rs#592</a></li> <li>Pull back MSRV on Windows by <a href="https://github.com/workingjubilee"><code>@workingjubilee</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/598">rust-lang/backtrace-rs#598</a></li> <li>Force frame pointers on all i686 tests by <a href="https://github.com/workingjubilee"><code>@workingjubilee</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/601">rust-lang/backtrace-rs#601</a></li> <li>Use rustc from stage0 instead of stage0-sysroot by <a href="https://github.com/Nilstrieb"><code>@Nilstrieb</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/602">rust-lang/backtrace-rs#602</a></li> <li>Cut backtrace 0.3.71 by <a href="https://github.com/workingjubilee"><code>@workingjubilee</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/599">rust-lang/backtrace-rs#599</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/jfgoog"><code>@jfgoog</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/592">rust-lang/backtrace-rs#592</a></li> <li><a href="https://github.com/Nilstrieb"><code>@Nilstrieb</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/602">rust-lang/backtrace-rs#602</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-lang/backtrace-rs/compare/0.3.70...0.3.71">https://github.com/rust-lang/backtrace-rs/compare/0.3.70...0.3.71</a></p> <h2>0.3.70</h2> <h2>New API</h2> <ul> <li>A <code>BacktraceFrame</code> can now have <code>resolve(&mut self)</code> called on it thanks to <a href="https://github.com/fraillt"><code>@fraillt</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/526">rust-lang/backtrace-rs#526</a></li> </ul> <h2>Platform Support</h2> <p>We added support for new platforms in this release!</p> <ul> <li>Thanks to <a href="https://github.com/bzEq"><code>@bzEq</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/508">rust-lang/backtrace-rs#508</a> we now have AIX support!</li> <li>Thanks to <a href="https://github.com/sthibaul"><code>@sthibaul</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/567">rust-lang/backtrace-rs#567</a> we now have GNU/Hurd support!</li> <li>Thanks to <a href="https://github.com/dpaoliello"><code>@dpaoliello</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/587">rust-lang/backtrace-rs#587</a> we now support "emulation-compatible" AArch64 Windows (aka arm64ec)</li> </ul> <h3>Windows</h3> <ul> <li>Rewrite msvc backtrace support to be much faster on 64-bit platforms by <a href="https://github.com/wesleywiser"><code>@wesleywiser</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/569">rust-lang/backtrace-rs#569</a></li> <li>Fix i686-pc-windows-gnu missing dbghelp module by <a href="https://github.com/wesleywiser"><code>@wesleywiser</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/571">rust-lang/backtrace-rs#571</a></li> <li>Fix build errors on <code>thumbv7a-*-windows-msvc</code> targets by <a href="https://github.com/kleisauke"><code>@kleisauke</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/573">rust-lang/backtrace-rs#573</a></li> <li>Fix panic in backtrace symbolication on win7 by <a href="https://github.com/roblabla"><code>@roblabla</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/578">rust-lang/backtrace-rs#578</a></li> <li>remove few unused windows ffi fn by <a href="https://github.com/klensy"><code>@klensy</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/576">rust-lang/backtrace-rs#576</a></li> <li>Make dbghelp look for PDBs next to their exe/dll. by <a href="https://github.com/michaelwoerister"><code>@michaelwoerister</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/584">rust-lang/backtrace-rs#584</a></li> <li>Revert 32-bit dbghelp to a version WINE (presumably) likes by <a href="https://github.com/ChrisDenton"><code>@ChrisDenton</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/588">rust-lang/backtrace-rs#588</a></li> <li>Update for Win10+ by <a href="https://github.com/ChrisDenton"><code>@ChrisDenton</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/589">rust-lang/backtrace-rs#589</a></li> </ul> <h3>SGX</h3> <p>Thanks to</p> <ul> <li>Adjust frame IP in SGX relative to image base by <a href="https://github.com/mzohreva"><code>@mzohreva</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/566">rust-lang/backtrace-rs#566</a></li> </ul> <h2>Internals</h2> <p>We did a bunch more work on our CI and internal cleanups</p> <ul> <li>Modularise CI workflow and validate outputs for binary size checks. by <a href="https://github.com/detly"><code>@detly</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/549">rust-lang/backtrace-rs#549</a></li> <li>Commit Cargo.lock by <a href="https://github.com/bjorn3"><code>@bjorn3</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/562">rust-lang/backtrace-rs#562</a></li> <li>Enable calling build.rs externally v2 by <a href="https://github.com/pitaj"><code>@pitaj</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/568">rust-lang/backtrace-rs#568</a></li> <li>Upgrade to 2021 ed and inline panics by <a href="https://github.com/nyurik"><code>@nyurik</code></a> in <a href="https://redirect.github.com/rust-lang/backtrace-rs/pull/538">rust-lang/backtrace-rs#538</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/7be8953188582ea83f1e88622ccdfcab1a49461c"><code>7be8953</code></a><code>rust-lang/backtrace-rs#599</code></li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/c31ea5ba7ac52f5c15c65cfec7d7b5d0bcf00eed"><code>c31ea5b</code></a><code>rust-lang/backtrace-rs#602</code></li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/193125abc094b433859c4fdb2e672d391a6bdf8d"><code>193125a</code></a><code>rust-lang/backtrace-rs#601</code></li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/bdc8b8241b16bb20124a3cec86e1b339e4c008a1"><code>bdc8b82</code></a> Merge pull request <a href="https://redirect.github.com/rust-lang/backtrace-rs/issues/598">#598</a> from workingjubilee/pull-back-msrv</li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/edc9f5cae874bf008e52558e4b2c6c86847c9575"><code>edc9f5c</code></a> hack out binary size checks</li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/4c8fe973eb39f4cd31c3d6dfd74c6b670de6911a"><code>4c8fe97</code></a> add Windows to MSRV tests</li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/84dfe2472456a000d7cced566b06f3bada898f8e"><code>84dfe24</code></a> hack CI</li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/3f08ec085fb5bb4edfb084cf9e3170e953a44107"><code>3f08ec0</code></a> Pull back MSRV-breaking ptr::from_ref</li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/6fa4b85b9962c3e1be8c2e5cc605cd078134152b"><code>6fa4b85</code></a><code>rust-lang/backtrace-rs#592</code></li> <li><a href="https://github.com/rust-lang/backtrace-rs/commit/ea7dc8e964d0046d92382e40308876130e5301ba"><code>ea7dc8e</code></a><code>rust-lang/backtrace-rs#591</code></li> <li>Additional commits viewable in <a href="https://github.com/rust-lang/backtrace-rs/compare/0.3.69...0.3.71">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=backtrace&package-manager=cargo&previous-version=0.3.69&new-version=0.3.71)](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 this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
As per paritytech#3326, removes pallet::getter macro usage from the pallet-identity. The syntax `StorageItem::<T, I>::get()` should be used instead. Also makes all storage values public cc @muraca --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: command-bot <>
…ble litep2p metrics (paritytech#4977) This PR extends the metrics exposed by the peerstore with the total number of banned peers. The new metric is exposed under `substrate_sub_libp2p_peerset_num_banned_peers`. To easily extend metrics in the future, the `fn num_known_peers` is removed in favor of `fn status`. While at it, enable the metrics for litep2p: - total number of peers from peerstore (needed to debug memory consumption) - total number of banned peers from peerstore (needed to debug reputation bans and disconnects) Have added a couple of tests to validate that the number of banned peers is exposed properly. Part of: paritytech#4681 ### Testing Done Using [subp2p-explorer](https://github.com/lexnv/subp2p-explorer) have submitted random data on tx protocol. The peer gets banned, the num of banned peers is incremented then the peer is disconnected. cc @paritytech/networking --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Dmitry Markin <[email protected]>
…itytech#5103) This PR effectively skips over cases where the blockchain reports the genesis block as leaf. The issue manifests as the blockchain getting stuck and not importing blocks after a while. Although the root-cause of why the blockchain reports the genesis as leaf is not scoped, this hot-fix is unblocking the new release. While at it, added some extra debug logs to identify issues more easily in the future. ### Issue ``` 2024-07-22 10:06:08.708 DEBUG tokio-runtime-worker db::blockchain: Checking for displaced leaves after finalization. leaves=[0xd62aea69664b74c55b7e79ab5855b117d213156a5e9ab05ad0737772aaf42c14, 0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe] finalized_block_hash=0x8f8e…7f34 finalized_block_number=24148459 2024-07-22 10:06:08.708 DEBUG tokio-runtime-worker db::blockchain: Handle displaced leaf 0xd62aea69664b74c55b7e79ab5855b117d213156a5e9ab05ad0737772aaf42c14 (elapsed 25.74µs) leaf_number=24148577 2024-07-22 10:06:08.709 DEBUG tokio-runtime-worker db::blockchain: Leaf points to the finalized header 0xd62aea69664b74c55b7e79ab5855b117d213156a5e9ab05ad0737772aaf42c14, skipping for now (elapsed 70.72µs) // This is Kusama genesis 2024-07-22 10:06:08.709 DEBUG tokio-runtime-worker db::blockchain: Handle displaced leaf 0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe (elapsed 127.271µs) leaf_number=0 2024-07-22 10:06:08.709 DEBUG tokio-runtime-worker db::blockchain: Skip more blocks until we get all blocks on finalized chain until the height of the parent block current_hash=0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe current_num=0 finalized_num=24148458 ``` ### Before ``` 2024-07-20 00:45:00.234 INFO tokio-runtime-worker substrate: ⚙️ Preparing 0.0 bps, target=#24116589 (50 peers), best: #24116498 (0xb846…8720), finalized #24116493 (0x50b6…2445), ⬇ 2.3MiB/s ⬆ 2.6kiB/s ... 2024-07-20 14:05:18.572 INFO tokio-runtime-worker substrate: ⚙️ Syncing 0.0 bps, target=#24124495 (51 peers), best: #24119976 (0x6970…aeb3), finalized #24119808 (0xd900…abe4), ⬇ 2.2MiB/s ⬆ 3.1kiB/s 2024-07-20 14:05:23.573 INFO tokio-runtime-worker substrate: ⚙️ Syncing 0.0 bps, target=#24124495 (51 peers), best: #24119976 (0x6970…aeb3), finalized #24119808 (0xd900…abe4), ⬇ 2.2MiB/s ⬆ 5.8kiB/s ``` ### After ``` 2024-07-22 10:41:10.897 DEBUG tokio-runtime-worker db::blockchain: Handle displaced leaf 0x4e8cf3ff18e7d13ff7fec28f9fc8ce6eff5492ed8dc046e961b76dec5c0cfddf (elapsed 39.26µs) leaf_number=24150969 2024-07-22 10:41:10.897 DEBUG tokio-runtime-worker db::blockchain: Leaf points to the finalized header 0x4e8cf3ff18e7d13ff7fec28f9fc8ce6eff5492ed8dc046e961b76dec5c0cfddf, skipping for now (elapsed 49.69µs) 2024-07-22 10:41:10.897 DEBUG tokio-runtime-worker db::blockchain: Skip genesis block 0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe reporterd as leaf (elapsed 54.57µs) 2024-07-22 10:41:10.897 DEBUG tokio-runtime-worker db::blockchain: Finished with result DisplacedLeavesAfterFinalization { displaced_leaves: [], displaced_blocks: [] } (elapsed 58.78µs) finalized_block_hash=0x02b3…5338 finalized_block_number=24150967 2024-07-22 10:41:12.357 INFO tokio-runtime-worker substrate: 🏆 Imported #24150970 (0x4e8c…fddf → 0x3637…56bb) 2024-07-22 10:41:12.862 INFO tokio-runtime-worker substrate: 💤 Idle (50 peers), best: #24150970 (0x3637…56bb), finalized #24150967 (0x02b3…5338), ⬇ 2.0MiB/s ⬆ 804.7kiB/s 2024-07-22 10:41:14.772 DEBUG tokio-runtime-worker db::blockchain: Checking for displaced leaves after finalization. leaves=[0x363763b16c23fc20a84f38f67014fa7ae6ba9c708fc074890016699e5ca756bb, 0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe] finalized_block_hash=0xa1534a105b90e7036a18ac1c646cd2bd6c41c66cc055817f4f51209ab9070e5c finalized_block_number=24150968 2024-07-22 10:41:14.772 DEBUG tokio-runtime-worker db::blockchain: Handle displaced leaf 0x363763b16c23fc20a84f38f67014fa7ae6ba9c708fc074890016699e5ca756bb (elapsed 62.48µs) leaf_number=24150970 2024-07-22 10:41:14.772 DEBUG tokio-runtime-worker db::blockchain: Leaf points to the finalized header 0x363763b16c23fc20a84f38f67014fa7ae6ba9c708fc074890016699e5ca756bb, skipping for now (elapsed 71.76µs) 2024-07-22 10:41:14.772 DEBUG tokio-runtime-worker db::blockchain: Skip genesis block 0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe reporterd as leaf (elapsed 75.96µs) 2024-07-22 10:41:14.772 DEBUG tokio-runtime-worker db::blockchain: Finished with result DisplacedLeavesAfterFinalization { displaced_leaves: [], displaced_blocks: [] } (elapsed 80.27µs) finalized_block_hash=0xa153…0e5c finalized_block_number=24150968 2024-07-22 10:41:14.795 DEBUG tokio-runtime-worker db::blockchain: Checking for displaced leaves after finalization. leaves=[0x363763b16c23fc20a84f38f67014fa7ae6ba9c708fc074890016699e5ca756bb, 0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe] finalized_block_hash=0xa1534a105b90e7036a18ac1c646cd2bd6c41c66cc055817f4f51209ab9070e5c finalized_block_number=24150968 2024-07-22 10:41:14.795 DEBUG tokio-runtime-worker db::blockchain: Handle displaced leaf 0x363763b16c23fc20a84f38f67014fa7ae6ba9c708fc074890016699e5ca756bb (elapsed 39.67µs) leaf_number=24150970 2024-07-22 10:41:14.795 DEBUG tokio-runtime-worker db::blockchain: Leaf points to the finalized header 0x363763b16c23fc20a84f38f67014fa7ae6ba9c708fc074890016699e5ca756bb, skipping for now (elapsed 50.3µs) 2024-07-22 10:41:14.795 DEBUG tokio-runtime-worker db::blockchain: Skip genesis block 0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe reporterd as leaf (elapsed 54.52µs) 2024-07-22 10:41:14.795 DEBUG tokio-runtime-worker db::blockchain: Finished with result DisplacedLeavesAfterFinalization { displaced_leaves: [], displaced_blocks: [] } (elapsed 58.66µs) finalized_block_hash=0xa153…0e5c finalized_block_number=24150968 2024-07-22 10:41:17.863 INFO tokio-runtime-worker substrate: 💤 Idle (50 peers), best: #24150970 (0x3637…56bb), finalized #24150968 (0xa153…0e5c), ⬇ 1.2MiB/s ⬆ 815.0kiB/s 2024-07-22 10:41:18.399 INFO tokio-runtime-worker substrate: 🏆 Imported #24150971 (0x3637…56bb → 0x4ee3…5f7c) ``` Closes: paritytech#5088 --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Bastian Köcher <[email protected]>
Pallet tx-pause and safe-mode are both audited, see: paritytech#4445 --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]>
…h#5042) Since paritytech#4772, the benchamrks triggers its own assignments, but the mocks weren't properly hooked up, so that the approval is sent as well, so they would have counted as no-shows and impact the time it takes for a block to be approved. Fixed by adding mocks for availability recovery and candidate-validation and hook those into the benchmark. Signed-off-by: Alexandru Gheorghe <[email protected]>
closes paritytech#143 Polkadot address: 12GyGD3QhT4i2JJpNzvMf96sxxBLWymz4RdGCxRH5Rj5agKW --------- Co-authored-by: Muharem <[email protected]>
…rocesses (paritytech#4946) When building multiple runtimes in parallel, each of them will try to use the concurrency set by the parent cargo process. For example, in a system with 8 cpu cores, building 3 runtimes in parallel creates 8 * 3 tasks. This results in the system hanging because of the high cpu and memory usage. This PR allows the substrate_wasm_builder to use the same [jobserver][1] as the parent cargo process, making all invocations of cargo share the same concurrency pool. So in a system with 8 cores, there will never be more than 8 tasks running at the same time. Implementation roughly based on [cargo][2] but with less unsafe. This can be tested by telling cargo to use half the cpu cores, like `cargo build -j4` in an 8 core machine. Before this PR it will use 100% cpu when building 2 runtimes in parallel, after this PR it will always use 50%. [1]: https://doc.rust-lang.org/cargo/reference/build-scripts.html#jobserver [2]: https://github.com/rust-lang/cargo/blob/d1b5f0759eedf5f1126c781c64232856956069ad/src/cargo/util/context/mod.rs#L271 --------- Co-authored-by: Bastian Köcher <[email protected]>
…tech#5120) Bumps the known_good_semver group with 1 update: [clap](https://github.com/clap-rs/clap). Updates `clap` from 4.5.9 to 4.5.10 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.10</h2> <h2>[4.5.10] - 2024-07-23</h2> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.10] - 2024-07-23</h2> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/clap-rs/clap/commit/6243d6546301855c6fc71680e2bf6976f064aee1"><code>6243d65</code></a> fix: Only generate stubs if has subcommands</li> <li><a href="https://github.com/clap-rs/clap/commit/f5965e586292d31b2a2cbd83f19d145180471012"><code>f5965e5</code></a> chore: Update dependencies</li> <li>See full diff in <a href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.9...v4.5.10">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.9&new-version=4.5.10)](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>
We are definitely going to use BLS12-381 for BEEFY and it is hard coded in JAM's spec. This PR implements missing tests for bls12-381 crypto, migrate BEEFY BLS crypto to bls12-381 and adapt the BEEFY primitive tests accordingly. --------- Co-authored-by: Davide Galassi <[email protected]>
…itytech#4345) The current `json_patch::merge` function will replace the default configuration with the builder action if the action is not a JSON Object, which means, if not configured, the current code will try to use `Value::Null` as the config, which (almost?) always fails, making it mandatory to configure `with_genesis_config...`. This change uses a JSON Object as the default values, which means the code will continue using the default config if none is given. Co-authored-by: Bastian Köcher <[email protected]>
…port doesn't have try-runtime. (paritytech#5099) Status: Ready for review Fix paritytech#5092 Introduce a new macro in frame-support which discard content if `try-runtime` is not enabled. Use this macro inside `frame-support-procedural` to generate code only when `frame-support` is compiled with `try-runtime`. --------- Co-authored-by: Bastian Köcher <[email protected]>
# Conflicts: # .github/review-bot.yml # .github/scripts/check-workspace.py # .github/scripts/common/lib.sh # .github/workflows/check-licenses.yml # .github/workflows/check-links.yml # .github/workflows/check-prdoc.yml # .github/workflows/check-runtime-migration.yml # .github/workflows/check-semver.yml # .github/workflows/checks-quick.yml # .github/workflows/misc-sync-templates.yml # .github/workflows/publish-check-crates.yml # .github/workflows/publish-claim-crates.yml # .github/workflows/release-10_rc-automation.yml # .github/workflows/release-30_publish_release_draft.yml # .github/workflows/release-50_publish-docker.yml # .github/workflows/release-srtool.yml # .github/workflows/tests-linux-stable.yml # .github/workflows/tests.yml # Cargo.lock # bridges/snowbridge/pallets/ethereum-client/Cargo.toml # bridges/snowbridge/pallets/ethereum-client/src/mock.rs # cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-rococo/Cargo.toml # cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/Cargo.toml # cumulus/parachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/lib.rs # cumulus/parachains/runtimes/assets/asset-hub-westend/Cargo.toml # cumulus/parachains/runtimes/assets/asset-hub-westend/src/xcm_config.rs # cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml # cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs # cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/Cargo.toml # cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.