-
Notifications
You must be signed in to change notification settings - Fork 740
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
substrate-offchain: upgrade hyper to v1 #5919
Conversation
7b88c43
to
7d5636a
Compare
Review required! Latest push from author must always be reviewed |
I've rebased on master and fixed fmt fails with rustfmt nightly but still have to fix some tests are failing in CI (worked fine on my apple silicon mac) |
7d5636a
to
bdf5d57
Compare
bdf5d57
to
760258e
Compare
type Receiver = mpsc::Receiver<Result<hyper::body::Frame<hyper::body::Bytes>, hyper::Error>>; | ||
|
||
type HyperClient = client::Client<HttpsConnector<client::connect::HttpConnector>, Body>; | ||
type LazyClient = Lazy<HyperClient, Box<dyn FnOnce() -> HyperClient + Send>>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once rustc has stabilized TAIT, this boxing can be avoided.
The other option is implementing similar thing as once_cell::Lazy
with once_cell::OnceCell
and std::cell::Cell
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, this is fine
Ok(Self(Arc::new(Lazy::new(Box::new(|| { | ||
let connector = builder.https_or_http().enable_http1().enable_http2().build(); | ||
client::Client::builder(TokioExecutor::new()).build(connector) | ||
}))))) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The above boxing is needed to resolve this; This should be a Lazy
with closure, otherwise we cannot return std::io::Result<Self>
and Self.0
becomes Lazy<std::io::Result<HyperClient>>
, which is quite inconvenient to use
substrate/client/offchain/src/lib.rs
Outdated
@@ -160,7 +160,7 @@ impl<RA, Block: traits::Block, Storage> OffchainWorkers<RA, Block, Storage> { | |||
"offchain-worker".into(), | |||
num_cpus::get(), | |||
)), | |||
shared_http_client: api::SharedClient::new(), | |||
shared_http_client: api::SharedClient::new().unwrap(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, this requires unwrap anyway...
@bkchr Is it ok to move the shared_http_client
to the OffchainWorkerOptions type
such that we can bail early from the service builder if this fails?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, I thought that all the unwrap()
calls were inside the test codes but this was not 🙃 Maybe I should change the return type to std::io::Result<Self>
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay. I'll wait for 😃
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should handle the error here and just pass SharedHttpClient in the OffChainWorkerOptions instead to avoid breaking this api.
We will break the API any way 🙈 As we need to do it, I think returning Result
from new
sounds better to me
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should handle the error here and just pass SharedHttpClient in the OffChainWorkerOptions instead to avoid breaking this api.
We will break the API any way 🙈 As we need to do it, I think returning
Result
fromnew
sounds better to me
Do you mean this new
method, OffchainWorkers::new
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, ignore my comment and change OffchainWorkers::new()
to return Result<Self, Error>
instead of Self
bot fmt |
@niklasad1 https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/7524560 was started for your command Comment |
@niklasad1 Command |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me modulo the unwrap stuff
760258e
to
34275f1
Compare
Formatted |
2e5457f
to
5e798a3
Compare
I have no idea why |
745834b
to
4647f23
Compare
The CI failure seems to be caused from docker image push timeout. I wonder if I should take some action for it 🤔 |
prdoc/pr_5919.prdoc
Outdated
|
||
crates: | ||
- name: sc-offchain | ||
bump: minor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
bump: minor | |
bump: major |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! I've applied this change
4647f23
to
9738ac7
Compare
I'm rebasing to re-trigger failed required-actions |
Head branch was pushed to by a user without write access
9738ac7
to
2621027
Compare
You don't have to do that, that merge queue will merge it to master before running the tests anyway. By rebasing now you removed this from the merge queue.... Some job is probably flaky but don't rebase again and let's try to add it to the merge queue again. |
Oh, I thought that "required" checks were necessary 😅 Sorry |
Yeah, they are but these failed checks are really unrelated to your PR and "might" have been fixed on master concurrently, it's fine to rebase just avoid to do it when it's added to the merge queue. |
@ShoyuVanilla please merge master |
2621027
to
c67188a
Compare
Hi, this one seems still CI broken |
@jasl Is there anything that I should/could do for CI failure? I'm not familiar with CI and not sure the failure is related to this PR or not 😅 |
try to rebase one more time, sorry about this |
No problem 😄 |
Head branch was pushed to by a user without write access
c67188a
to
014c0ff
Compare
014c0ff
to
bab6482
Compare
5a14285
* Bump prost-build from 0.12.4 to 0.13.2 (#6144) Bumps [prost-build](https://github.com/tokio-rs/prost) from 0.12.4 to 0.13.2. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tokio-rs/prost/blob/master/CHANGELOG.md">prost-build's changelog</a>.</em></p> <blockquote> <h1>Prost version 0.13.2</h1> <p><em>PROST!</em> is a <a href="https://developers.google.com/protocol-buffers/">Protocol Buffers</a> implementation for the <a href="https://www.rust-lang.org/">Rust Language</a>. <code>prost</code> generates simple, idiomatic Rust code from <code>proto2</code> and <code>proto3</code> files.</p> <h2>Features</h2> <ul> <li>prost-build: Add protoc executable path to Config (<a href="https://redirect.github.com/tokio-rs/prost/issues/1126">#1126</a>)</li> <li>prost-build: Extract file descriptor loading from compile_protos() (<a href="https://redirect.github.com/tokio-rs/prost/issues/1067">#1067</a>)</li> </ul> <h2>Bug Fixes</h2> <ul> <li>prost-types: Fix date-time parsing (<a href="https://redirect.github.com/tokio-rs/prost/issues/1096">#1096</a>)</li> <li>prost-types: '+' is not a numeric digit (<a href="https://redirect.github.com/tokio-rs/prost/issues/1104">#1104</a>)</li> <li>prost-types: Converting DateTime to Timestamp is fallible (<a href="https://redirect.github.com/tokio-rs/prost/issues/1095">#1095</a>)</li> <li>prost-types: Parse timestamp with long second fraction (<a href="https://redirect.github.com/tokio-rs/prost/issues/1106">#1106</a>)</li> <li>prost-types: Format negative fractional duration (<a href="https://redirect.github.com/tokio-rs/prost/issues/1110">#1110</a>)</li> <li>prost-types: Allow unknown local time offset (<a href="https://redirect.github.com/tokio-rs/prost/issues/1109">#1109</a>)</li> </ul> <h2>Styling</h2> <ul> <li>Remove use of legacy numeric constants (<a href="https://redirect.github.com/tokio-rs/prost/issues/1089">#1089</a>)</li> <li>Move encoding functions into separate modules (<a href="https://redirect.github.com/tokio-rs/prost/issues/1111">#1111</a>)</li> <li>Remove needless borrow (<a href="https://redirect.github.com/tokio-rs/prost/issues/1122">#1122</a>)</li> </ul> <h2>Testing</h2> <ul> <li>Add tests for public interface of DecodeError (<a href="https://redirect.github.com/tokio-rs/prost/issues/1120">#1120</a>)</li> <li>Add <code>parse_date</code> fuzzing target (<a href="https://redirect.github.com/tokio-rs/prost/issues/1127">#1127</a>)</li> <li>Fix build without std (<a href="https://redirect.github.com/tokio-rs/prost/issues/1134">#1134</a>)</li> <li>Change some proptest to kani proofs (<a href="https://redirect.github.com/tokio-rs/prost/issues/1133">#1133</a>)</li> <li>Add <code>parse_duration</code> fuzzing target (<a href="https://redirect.github.com/tokio-rs/prost/issues/1129">#1129</a>)</li> <li>fuzz: Fix building of fuzzing targets (<a href="https://redirect.github.com/tokio-rs/prost/issues/1107">#1107</a>)</li> <li>fuzz: Add fuzz targets to workspace (<a href="https://redirect.github.com/tokio-rs/prost/issues/1117">#1117</a>)</li> </ul> <h2>Miscellaneous Tasks</h2> <ul> <li>Move old protobuf benchmark into prost (<a href="https://redirect.github.com/tokio-rs/prost/issues/1100">#1100</a>)</li> <li>Remove allow clippy::derive_partial_eq_without_eq (<a href="https://redirect.github.com/tokio-rs/prost/issues/1115">#1115</a>)</li> <li>Run <code>cargo test</code> without <code>all-targets</code> (<a href="https://redirect.github.com/tokio-rs/prost/issues/1118">#1118</a>)</li> <li>dependabot: Add github actions (<a href="https://redirect.github.com/tokio-rs/prost/issues/1121">#1121</a>)</li> <li>Update to cargo clippy version 1.80 (<a href="https://redirect.github.com/tokio-rs/prost/issues/1128">#1128</a>)</li> </ul> <h2>Build</h2> <ul> <li>Use <code>proc-macro</code> in Cargo.toml (<a href="https://redirect.github.com/tokio-rs/prost/issues/1102">#1102</a>)</li> <li>Ignore missing features in <code>tests</code> crates (<a href="https://redirect.github.com/tokio-rs/prost/issues/1101">#1101</a>)</li> <li>Use separated build directory for protobuf (<a href="https://redirect.github.com/tokio-rs/prost/issues/1103">#1103</a>)</li> <li>protobuf: Don't install unused test proto (<a href="https://redirect.github.com/tokio-rs/prost/issues/1116">#1116</a>)</li> <li>protobuf: Use crate <code>cmake</code> (<a href="https://redirect.github.com/tokio-rs/prost/issues/1137">#1137</a>)</li> <li>deps: Update devcontainer to Debian Bookworm release (<a href="https://redirect.github.com/tokio-rs/prost/issues/1114">#1114</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tokio-rs/prost/commit/57e794203106db483e5115e7e67502ef6f2c7ad8"><code>57e7942</code></a> chore: Release version 0.13.2 (<a href="https://redirect.github.com/tokio-rs/prost/issues/1139">#1139</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/8424775d78b13239df3cf3fe888236770a0cd839"><code>8424775</code></a> build(protobuf): Use crate <code>cmake</code> (<a href="https://redirect.github.com/tokio-rs/prost/issues/1137">#1137</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/21208abf667313866f79d3d1438310c4dc20bdff"><code>21208ab</code></a> build(deps): bump model-checking/kani-github-action from 0.32 to 1.1 (<a href="https://redirect.github.com/tokio-rs/prost/issues/1125">#1125</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/0c79864443621f20d92f9acc78a6ab0e7821dab0"><code>0c79864</code></a> tests(fuzz): Add <code>parse_duration</code> fuzzing target (<a href="https://redirect.github.com/tokio-rs/prost/issues/1129">#1129</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/52046b943fdf6f79461725027245f890c7b4f514"><code>52046b9</code></a> tests: Change some proptest to kani proofs (<a href="https://redirect.github.com/tokio-rs/prost/issues/1133">#1133</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/ee59dd5a9fe0935ad50e6ddbea5d23e3c6419468"><code>ee59dd5</code></a> tests: Fix build without std (<a href="https://redirect.github.com/tokio-rs/prost/issues/1134">#1134</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/e773f5f6d38f74d0efff876011a2fd0d002aed4c"><code>e773f5f</code></a> feat(prost-build): Add protoc executable path to Config (<a href="https://redirect.github.com/tokio-rs/prost/issues/1126">#1126</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/753bd92a85a3aa305d9d96b5c6363dc58d6356e6"><code>753bd92</code></a> ci(clippy): Update to cargo clippy version 1.80 (<a href="https://redirect.github.com/tokio-rs/prost/issues/1128">#1128</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/df3e58e5d113a0dcf8b6735a5d04cde2d74e5df3"><code>df3e58e</code></a> tests(fuzz): Add <code>parse_date</code> fuzzing target (<a href="https://redirect.github.com/tokio-rs/prost/issues/1127">#1127</a>)</li> <li><a href="https://github.com/tokio-rs/prost/commit/409b93214ed8d98fbb364031ccf330ce4e7caa32"><code>409b932</code></a> style: Remove needless borrow (<a href="https://redirect.github.com/tokio-rs/prost/issues/1122">#1122</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tokio-rs/prost/compare/v0.12.4...v0.13.2">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=prost-build&package-manager=cargo&previous-version=0.12.4&new-version=0.13.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 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> Co-authored-by: Bastian Köcher <[email protected]> * Bump the ci_dependencies group across 1 directory with 5 updates (#6035) Bumps the ci_dependencies group with 5 updates in the / directory: | Package | From | To | | --- | --- | --- | | [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action) | `1.10.0` | `2.0.1` | | [Swatinem/rust-cache](https://github.com/swatinem/rust-cache) | `2.7.3` | `2.7.5` | | [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.6.1` | `3.7.1` | | [docker/build-push-action](https://github.com/docker/build-push-action) | `6.8.0` | `6.9.0` | | [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) | `1.10.0` | `1.10.1` | Updates `lycheeverse/lychee-action` from 1.10.0 to 2.0.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lycheeverse/lychee-action/releases">lycheeverse/lychee-action's releases</a>.</em></p> <blockquote> <h2>Version 2.0.1</h2> <h2>What's Changed</h2> <ul> <li>Don't remove the lychee config file by <a href="https://github.com/dmathieu"><code>@dmathieu</code></a> in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/255">lycheeverse/lychee-action#255</a></li> <li>Bump lycheeverse/lychee-action from 1 to 2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/252">lycheeverse/lychee-action#252</a></li> <li>Fix variable name in docs by <a href="https://github.com/kdeldycke"><code>@kdeldycke</code></a> in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/253">lycheeverse/lychee-action#253</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/dmathieu"><code>@dmathieu</code></a> made their first contribution in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/255">lycheeverse/lychee-action#255</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lycheeverse/lychee-action/compare/v2...v2.0.1">https://github.com/lycheeverse/lychee-action/compare/v2...v2.0.1</a></p> <h2>Version 2.0.0</h2> <h2>Breaking Changes</h2> <p><strong>Note:</strong> This release improves the action's robustness by changing default behaviors. Changes are only required if you want to opt out of the new failure conditions. Most users won't need to modify their existing configurations.</p> <h3>Fail pipeline on error by default</h3> <p>We've changed the default behavior: pipelines will now fail on broken links automatically. This addresses user feedback that not failing on broken links was unexpected (see [issue <a href="https://redirect.github.com/lycheeverse/lychee-action/issues/71">#71</a>](<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/71">lycheeverse/lychee-action#71</a>)).</p> <p><strong>What you need to do:</strong></p> <ul> <li>Update to version 2 of this action to apply this change.</li> <li>Users of the <code>lychee-action@master</code> branch don't need to make any changes, as <code>fail: true</code> has been the default there for a while.</li> <li>If you prefer the old behavior, explicitly set <code>fail</code> to <code>false</code> when updating:</li> </ul> <pre lang="yaml"><code>- name: Link Checker id: lychee uses: lycheeverse/lychee-action@v2 with: fail: false # Don't fail action on broken links </code></pre> <h3>Fail pipeline if no links were found</h3> <p>Similar to the above change, we now fail the pipeline if no links are found during a run. This helps warn users about potential configuration issues.</p> <p><strong>What you need to do:</strong></p> <ul> <li>If you expect links to be found in your pipeline run, you don't need to do anything.</li> <li>If you expect no links in your pipeline run, you can opt out like this:</li> </ul> <pre lang="yaml"><code>- name: Link Checker id: lychee uses: lycheeverse/lychee-action@v2 with: failIfEmpty: false # Don't fail action if no links were found </code></pre> <p>For a more detailed description of the technical aspects behind these changes, please see the full changelog below.</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lycheeverse/lychee-action/commit/2bb232618be239862e31382c5c0eaeba12e5e966"><code>2bb2326</code></a> don't remove the lychee config file (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/255">#255</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/731bf1a2affebd80fab6515ba61d2648a76929a4"><code>731bf1a</code></a> Fix variable name (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/253">#253</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/e360f3c89142a5391e094404ea45e5494f1317dd"><code>e360f3c</code></a> Bump lycheeverse/lychee-action from 1 to 2 (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/252">#252</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/f87f0a62993c2647717456af92593666acb3a500"><code>f87f0a6</code></a> Update version to <code>lycheeverse/lychee-action@v2</code> in docs</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/7da8ec1fc4e01b5a12062ac6c589c10a4ce70d67"><code>7da8ec1</code></a> Test latest lychee version tag (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/236">#236</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/6cba5a96c25bf6571c0dc0d1521a2ddbae78ea59"><code>6cba5a9</code></a> Bump version to 0.16.x, respect new tag names (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/249">#249</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/e71a9a10faeb8c75aa21760b2f706f7831adadc7"><code>e71a9a1</code></a> Split up steps in action (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/248">#248</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/897f08a07f689df1a43076f4374af272f66a6dd1"><code>897f08a</code></a> action.yml: fix failing CI (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/246">#246</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/22c8e46b8f296cda676f8f92c634c4a87b436779"><code>22c8e46</code></a> Set exit_code correctly as output (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/245">#245</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/5047c2a4052946424ce139fe111135f6d7c0fe0b"><code>5047c2a</code></a> README: update actions/cache to v4 (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/243">#243</a>)</li> <li>Additional commits viewable in <a href="https://github.com/lycheeverse/lychee-action/compare/2b973e86fc7b1f6b36a93795fe2c9c6ae1118621...2bb232618be239862e31382c5c0eaeba12e5e966">compare view</a></li> </ul> </details> <br /> Updates `Swatinem/rust-cache` from 2.7.3 to 2.7.5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/swatinem/rust-cache/releases">Swatinem/rust-cache's releases</a>.</em></p> <blockquote> <h2>v2.7.5</h2> <h2>What's Changed</h2> <ul> <li>Upgrade checkout action from version 3 to 4 by <a href="https://github.com/carsten-wenderdel"><code>@carsten-wenderdel</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/190">Swatinem/rust-cache#190</a></li> <li>fix: usage of <code>deprecated</code> version of <code>node</code> by <a href="https://github.com/hamirmahal"><code>@hamirmahal</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/197">Swatinem/rust-cache#197</a></li> <li>Only run macOsWorkaround() on macOS by <a href="https://github.com/heksesang"><code>@heksesang</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/206">Swatinem/rust-cache#206</a></li> <li>Support Cargo.lock format cargo-lock v4 by <a href="https://github.com/NobodyXu"><code>@NobodyXu</code></a> in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/211">Swatinem/rust-cache#211</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/carsten-wenderdel"><code>@carsten-wenderdel</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/190">Swatinem/rust-cache#190</a></li> <li><a href="https://github.com/hamirmahal"><code>@hamirmahal</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/197">Swatinem/rust-cache#197</a></li> <li><a href="https://github.com/heksesang"><code>@heksesang</code></a> made their first contribution in <a href="https://redirect.github.com/Swatinem/rust-cache/pull/206">Swatinem/rust-cache#206</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/Swatinem/rust-cache/compare/v2.7.3...v2.7.5">https://github.com/Swatinem/rust-cache/compare/v2.7.3...v2.7.5</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Swatinem/rust-cache/commit/82a92a6e8fbeee089604da2575dc567ae9ddeaab"><code>82a92a6</code></a> 2.7.5</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/598fe25fa107b2fd526fc6471f6e48de7cd12083"><code>598fe25</code></a> update dependencies, rebuild</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/8f842c2d455cfe3d0d5a4b28f53f5389b51b71bf"><code>8f842c2</code></a> Support Cargo.lock format cargo-lock v4 (<a href="https://redirect.github.com/swatinem/rust-cache/issues/211">#211</a>)</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/96a8d65dbafbc7d145a9b2b6c3b12ee335738cd2"><code>96a8d65</code></a> Only run macOsWorkaround() on macOS (<a href="https://redirect.github.com/swatinem/rust-cache/issues/206">#206</a>)</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/9bdad043e88c75890e36ad3bbc8d27f0090dd609"><code>9bdad04</code></a> fix: usage of <code>deprecated</code> version of <code>node</code> (<a href="https://redirect.github.com/swatinem/rust-cache/issues/197">#197</a>)</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/f7a52f691454d93c6ce0dff6666a5cb399b8d06e"><code>f7a52f6</code></a> "add jsonpath test"</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/2bceda39122b2cc71e6e26ad729b92b44d101f4b"><code>2bceda3</code></a> "update dependencies"</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/640a22190e7a783d4c409684cea558f081f92012"><code>640a221</code></a> Upgrade checkout action from version 3 to 4 (<a href="https://redirect.github.com/swatinem/rust-cache/issues/190">#190</a>)</li> <li><a href="https://github.com/Swatinem/rust-cache/commit/158274163087d4d4d49dfcc6a39806493e413240"><code>1582741</code></a> update dependencies</li> <li>See full diff in <a href="https://github.com/swatinem/rust-cache/compare/23bce251a8cd2ffc3c1075eaa2367cf899916d84...82a92a6e8fbeee089604da2575dc567ae9ddeaab">compare view</a></li> </ul> </details> <br /> Updates `docker/setup-buildx-action` from 3.6.1 to 3.7.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/setup-buildx-action/releases">docker/setup-buildx-action's releases</a>.</em></p> <blockquote> <h2>v3.7.1</h2> <ul> <li>Switch back to <code>uuid</code> package by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/369">docker/setup-buildx-action#369</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.7.0...v3.7.1">https://github.com/docker/setup-buildx-action/compare/v3.7.0...v3.7.1</a></p> <h2>v3.7.0</h2> <ul> <li>Always set <code>buildkitd-flags</code> if opt-in by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/363">docker/setup-buildx-action#363</a></li> <li>Remove <code>uuid</code> package and switch to <code>crypto</code> by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/366">docker/setup-buildx-action#366</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.35.0 to 0.39.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/362">docker/setup-buildx-action#362</a></li> <li>Bump path-to-regexp from 6.2.2 to 6.3.0 in <a href="https://redirect.github.com/docker/setup-buildx-action/pull/354">docker/setup-buildx-action#354</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v3.6.1...v3.7.0">https://github.com/docker/setup-buildx-action/compare/v3.6.1...v3.7.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/docker/setup-buildx-action/commit/c47758b77c9736f4b2ef4073d4d51994fabfe349"><code>c47758b</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/369">#369</a> from crazy-max/revert-crypto</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/8fea3825134d99989287350b6429e3e86fa5d320"><code>8fea382</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/2874e980e877332a8fe575054d8c083109b8fede"><code>2874e98</code></a> switch back to uuid package</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/8026d2bc3645ea78b0d2544766a1225eb5691f89"><code>8026d2b</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/362">#362</a> from docker/dependabot/npm_and_yarn/docker/actions-to...</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/e51aab53e9e6264bc11f62da6fbc352686b2147f"><code>e51aab5</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/fd7390e14dc77aa9df3fbc8a021cf91ac9fe7aa5"><code>fd7390e</code></a> build(deps): bump <code>@docker/actions-toolkit</code> from 0.35.0 to 0.39.0</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/910a3040053b5bd9636a487f0054cfe150829ae7"><code>910a304</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/366">#366</a> from crazy-max/remove-uuid</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/3623ee443e01d4daf9e9107d28e162a058c52ca8"><code>3623ee4</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/e0e5ecf670bf33d756abc55962778de1286f70e1"><code>e0e5ecf</code></a> remove uuid package and switch to crypto</li> <li><a href="https://github.com/docker/setup-buildx-action/commit/5334dd0cdd27e0ac92d6c98d35f3398fcc13195f"><code>5334dd0</code></a> Merge pull request <a href="https://redirect.github.com/docker/setup-buildx-action/issues/363">#363</a> from crazy-max/set-buildkitd-flags-optin</li> <li>Additional commits viewable in <a href="https://github.com/docker/setup-buildx-action/compare/988b5a0280414f521da01fcc63a27aeeb4b104db...c47758b77c9736f4b2ef4073d4d51994fabfe349">compare view</a></li> </ul> </details> <br /> Updates `docker/build-push-action` from 6.8.0 to 6.9.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/build-push-action/releases">docker/build-push-action's releases</a>.</em></p> <blockquote> <h2>v6.9.0</h2> <ul> <li>Bump <code>@docker/actions-toolkit</code> from 0.38.0 to 0.39.0 in <a href="https://redirect.github.com/docker/build-push-action/pull/1234">docker/build-push-action#1234</a></li> <li>Bump path-to-regexp from 6.2.2 to 6.3.0 in <a href="https://redirect.github.com/docker/build-push-action/pull/1232">docker/build-push-action#1232</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/build-push-action/compare/v6.8.0...v6.9.0">https://github.com/docker/build-push-action/compare/v6.8.0...v6.9.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/docker/build-push-action/commit/4f58ea79222b3b9dc2c8bbdd6debcef730109a75"><code>4f58ea7</code></a> Merge pull request <a href="https://redirect.github.com/docker/build-push-action/issues/1234">#1234</a> from docker/dependabot/npm_and_yarn/docker/actions-t...</li> <li><a href="https://github.com/docker/build-push-action/commit/49b5ea61c60477d214908bb6e23ce05c074ef04e"><code>49b5ea6</code></a> chore: update generated content</li> <li><a href="https://github.com/docker/build-push-action/commit/13c9fddd72db0ce3cd9d87eb53e0480d2a32a77b"><code>13c9fdd</code></a> chore(deps): Bump <code>@docker/actions-toolkit</code> from 0.38.0 to 0.39.0</li> <li><a href="https://github.com/docker/build-push-action/commit/e44afff3590e1d4f93b6adc72376512edb012a7c"><code>e44afff</code></a> Merge pull request <a href="https://redirect.github.com/docker/build-push-action/issues/1232">#1232</a> from docker/dependabot/npm_and_yarn/path-to-regexp-6...</li> <li><a href="https://github.com/docker/build-push-action/commit/67ebad331f4ca45e39184b280dbacb11eb3beae0"><code>67ebad3</code></a> chore(deps): Bump path-to-regexp from 6.2.2 to 6.3.0</li> <li>See full diff in <a href="https://github.com/docker/build-push-action/compare/32945a339266b759abcbdc89316275140b0fc960...4f58ea79222b3b9dc2c8bbdd6debcef730109a75">compare view</a></li> </ul> </details> <br /> Updates `actions-rust-lang/setup-rust-toolchain` from 1.10.0 to 1.10.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/releases">actions-rust-lang/setup-rust-toolchain's releases</a>.</em></p> <blockquote> <h2>v1.10.1</h2> <ul> <li>Fix problem matcher for rustfmt output. The format has changed since <a href="https://redirect.github.com/rust-lang/rustfmt/pull/5971">rust-lang/rustfmt#5971</a> and now follows the form "filename:line". Thanks to <a href="https://github.com/0xcypher02"><code>@0xcypher02</code></a> for pointing out the problem.</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1...v1.10.1">https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1...v1.10.1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md">actions-rust-lang/setup-rust-toolchain'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> <h2>[Unreleased]</h2> <h2>[1.10.1] - 2024-10-01</h2> <ul> <li>Fix problem matcher for rustfmt output. The format has changed since <a href="https://redirect.github.com/rust-lang/rustfmt/pull/5971">rust-lang/rustfmt#5971</a> and now follows the form "filename:line". Thanks to <a href="https://github.com/0xcypher02"><code>@0xcypher02</code></a> for pointing out the problem.</li> </ul> <h2>[1.10.0] - 2024-09-23</h2> <ul> <li>Add new parameter <code>cache-directories</code> that is propagated to <code>Swatinem/rust-cache</code> (<a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/44">#44</a> by <a href="https://github.com/pranc1ngpegasus"><code>@pranc1ngpegasus</code></a>)</li> <li>Add new parameter <code>cache-key</code> that is propagated to <code>Swatinem/rust-cache</code> as <code>key</code> (<a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/41">#41</a> by <a href="https://github.com/iainlane"><code>@iainlane</code></a>)</li> <li>Make rustup toolchain installation more robust in light of planned changes <a href="https://redirect.github.com/rust-lang/rustup/issues/3635">rust-lang/rustup#3635</a> and <a href="https://redirect.github.com/rust-lang/rustup/pull/3985">rust-lang/rustup#3985</a></li> <li>Allow installing multiple Rust toolchains by specifying multiple versions in the <code>toolchain</code> input parameter.</li> <li>Configure the <code>rustup override</code> behavior via the new <code>override</code> input. (<a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/38">#38</a>)</li> </ul> <h2>[1.9.0] - 2024-06-08</h2> <ul> <li>Add extra argument <code>cache-on-failure</code> and forward it to <code>Swatinem/rust-cache</code>. (<a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/39">#39</a> by <a href="https://github.com/samuelhnrq"><code>@samuelhnrq</code></a>)<br /> Set the default the value to true. This will result in more caching than previously. This helps when large dependencies are compiled only for testing to fail.</li> </ul> <h2>[1.8.0] - 2024-01-13</h2> <ul> <li>Allow specifying subdirectories for cache.</li> <li>Fix toolchain file overriding.</li> </ul> <h2>[1.7.0] - 2024-01-11</h2> <ul> <li>Allow overriding the toolchain file with explicit <code>toolchain</code> input. (<a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/26">#26</a>)</li> </ul> <h2>[1.6.0] - 2023-12-04</h2> <h3>Added</h3> <ul> <li>Allow disabling problem matchers (<a href="https://redirect.github.com/actions-rust-lang/setup-rust-toolchain/issues/27">#27</a>) This can be useful when having a matrix of jobs, that produce the same errors.</li> </ul> <h2>[1.5.0] - 2023-05-29</h2> <h3>Added</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions-rust-lang/setup-rust-toolchain/commit/11df97af8e8102fd60b60a77dfbf58d40cd843b8"><code>11df97a</code></a> Update the rustfmt problem matcher</li> <li>See full diff in <a href="https://github.com/actions-rust-lang/setup-rust-toolchain/compare/4d1965c9142484e48d40c19de54b5cba84953a06...11df97af8e8102fd60b60a77dfbf58d40cd843b8">compare view</a></li> </ul> </details> <br /> 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> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * runtime: remove ttl (#5461) Resolves https://github.com/paritytech/polkadot-sdk/issues/4776 This will enable proper core-sharing between paras, even if one of them is not producing blocks. TODO: - [x] duplicate first entry in the claim queue if the queue used to be empty - [x] don't back anything if at the end of the block there'll be a session change - [x] write migration for removing the availability core storage - [x] update and write unit tests - [x] prdoc - [x] add zombienet test for synchronous backing - [x] add zombienet test for core-sharing paras where one of them is not producing any blocks _Important note:_ The `ttl` and `max_availability_timeouts` fields of the HostConfiguration are not removed in this PR, due to #64. Adding the workaround with the storage version check for every use of the active HostConfiguration in all runtime APIs would be insane, as it's used in almost all runtime APIs. So even though the ttl and max_availability_timeouts fields will now be unused, they will remain part of the host configuration. These will be removed in a separate PR once #64 is fixed. Tracked by https://github.com/paritytech/polkadot-sdk/issues/6067 --------- Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: command-bot <> * [pallet-nfts, pallet_uniques] - Expose private structs (#6087) # Description This PR exposes pallet_nfts and pallet_uniques structs, so other pallets can access storage to use it for extending nft functionalities. In pallet uniques it also exposes collection and asset metadata storage as they are private. ## Integration This integration allows nfts and uniques extension pallets to use then private - now public structs to retrieve and parse storage from pallet_nfts. We are building cross-chain NFT pallet and in order to transfer collection that houses multiple NFT owners we need to manually remove NFTs and Collections from storage without signers. We would also like to refund deposits on origin chain and we were unable to as struct data was private. We have built cross-chain pallet that allows to send nfts or collections between two pallets in abstract way without having to look which pallet parachain (If nfts or uniques) implements. ## Review Notes Code exposes private structs to public structs. No breaking change. Build runs fine, tests are also ok. <img width="468" alt="screen1" src="https://github.com/user-attachments/assets/f31f60b5-390c-4497-b46b-59dd561204ae"> <img width="664" alt="screen2" src="https://github.com/user-attachments/assets/7e2aa71c-3bc4-49a9-8afc-47d4f45f4359"> <img width="598" alt="screen3" src="https://github.com/user-attachments/assets/10f4e427-858f-460d-8644-f5750494edb0"> PR is tied with following issue: Closes #5959 # Checklist * [x] My PR includes a detailed description as outlined in the "Description" and its two subsections above. * [x] My PR follows the [labeling requirements]( https://github.com/paritytech/polkadot-sdk/blob/master/docs/contributor/CONTRIBUTING.md#Process ) of this project (at minimum one label for `T` required) * External contributors: ask maintainers to put the right label on your PR. * [ ] 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) --------- Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: command-bot <> * [Backport] Version bumps from stable2409-1 (#6153) This PR backports regular version bumps and prdocs reordering from the current stable release back to master * Fix TrustedQueryApi Error (#6170) Related to https://github.com/paritytech/polkadot-sdk/issues/6161 This seems to fix the `JavaScript heap out of memory` error encountered in the bridge zombienet tests lately. This is just a partial fix, since we also need to address https://github.com/paritytech/polkadot-sdk/issues/6133 in order to fully fix the bridge zombienet tests * [pallet-revive] Eth RPC integration (#5866) This PR introduces the necessary changes to pallet-revive for integrating with our Ethereum JSON-RPC. The RPC proxy itself will be added in a follow up. ## Changes - A new pallet::call `Call::eth_transact`. This is used as a wrapper to accept unsigned Ethereum transaction, valid call will be routed to `Call::call` or `Call::instantiate_with_code` - A custom UncheckedExtrinsic struct, that wraps the generic one usually and add the ability to check eth_transact calls sent from an Ethereum JSON-RPC proxy. - Generated types and traits to support implementing a JSON-RPC Ethereum proxy. ## Flow Overview: - A user submits a transaction via MetaMask or another Ethereum-compatible wallet. - The proxy dry run the transaction and add metadata to the call (gas limit in Weight, storage deposit limit, and length of bytecode and constructor input for contract instantiation) - The raw transaction, along with the additional metadata, is submitted to the node as an unsigned extrinsic. - On the runtime, our custom UncheckedExtrinsic define a custom Checkable implementation that converts the unsigned extrinsics into checked one - It recovers the signer - validates the payload, and injects signed extensions, allowing the system to increment the nonce and charge the appropriate fees. - re-route the call to pallet-revive::Call::call or pallet-revive::Call::instantiateWithCode ## Dependencies - https://github.com/koute/polkavm/pull/188 ## Follow up PRs - #5926 - #6147 (previously #5953) - #5502 --------- Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> * [pallet-revive] fix fixture build path (#6174) Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> * `fatxpool`: `LocalTransactionPool` implemented (#6104) [`LocalTransactionPool` trait](https://github.com/paritytech/polkadot-sdk/blob/d5b96e9e7f24adc1799f8e426c5cb69b4f2dbf8a/substrate/client/transaction-pool/api/src/lib.rs#L408-L426) is now implemented for `ForkAwareTransactionPool`. Closes #5493 * Use bool::then instead of then_some with function calls (#6156) I noticed that hardware benchmarks are being run even though we pass the --no-hardware-benchmarks cli flag. After some debugging, the cause is an incorrect usage of the `then_some` method. From [std docs](https://doc.rust-lang.org/std/primitive.bool.html#method.then_some): > Arguments passed to then_some are eagerly evaluated; if you are passing the result of a function call, it is recommended to use [then](https://doc.rust-lang.org/std/primitive.bool.html#method.then), which is lazily evaluated. ```rust let mut a = 0; let mut function_with_side_effects = || { a += 1; }; true.then_some(function_with_side_effects()); false.then_some(function_with_side_effects()); // `a` is incremented twice because the value passed to `then_some` is // evaluated eagerly. assert_eq!(a, 2); ``` This PR fixes all the similar usages of the `then_some` method across the codebase. polkadot address: 138eUqXvUYT3o4GdbnWQfGRzM8yDWh5Q2eFrFULL7RAXzdWD --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Assets in pool with native can be used in `query_weight_to_asset_fee` (#6080) A follow-up to https://github.com/paritytech/polkadot-sdk/pull/5599. Assets in a pool with the native one are returned from `query_acceptable_payment_assets`. Now those assets can be used in `query_weight_to_asset_fee` to get the correct amount that needs to be paid. --------- Co-authored-by: command-bot <> * [pallet-revive] Add pallet to AH westend (#5502) Add pallet-revive to Westend runtime, and configure the runtime to accept Ethereum signed transaction * Polkadot OmniNode Docs (#6094) provides low-level documentation on how the omni-node is meant to work. This is meant to act as reusable material for other teams (e.g. Papermoon and W3F) to use and integrate into the high level Polkadot documentation. Broadly speaking, for omni-node to have great rust-docs, we need to focus on the following crates, all of which got a bit of love in this PR: 1. `sp-genesis-builder` 2. `polkadot-omni-node` 3. `polkadot-omni-node-lib` 4. `frame-omni-bencher` On top of this, we have now: * `polkadot_sdk_docs::guides` contains two new steps demonstrating the most basic version of composing your pallet, putting it into a runtime, and putting that runtime into omni-node * `polkadot_sdk_docs::reference_docs::omni_node` to explain in more detail how omni-node differs from the old-school node. * `polkadot_sdk_docs::reference_docs::frame_weight_benchmarking` to finally have a minimal reference about weights and benchmarking. * It provides tests for some of the steps in https://github.com/paritytech/polkadot-sdk/issues/5568 closes https://github.com/paritytech/polkadot-sdk/issues/5568 closes https://github.com/paritytech/polkadot-sdk/issues/4781 Next steps - [x] Ensure the README of the parachain template is up-to-date. @iulianbarbu - [ ] Readme for `polkadot-omni-node` and similar is updated. For now, use `cargo-readme` and copy over the rust-docs. To build the branch locally and run this: https://paritytech.github.io/polkadot-sdk/master/polkadot_sdk_docs/meta_contributing/index.html#how-to-develop-locally --------- Co-authored-by: Iulian Barbu <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]> Co-authored-by: Michal Kucharczyk <[email protected]> * Fix `zombienet-bridges-0001-asset-transfer-works` (#6175) Closes https://github.com/paritytech/polkadot-sdk/issues/6161 Westend BridgeHub freezes for a while at block 3 and if we try to init the bridge and fund the accounts during that time, it fails. So we wait untill all the parachains produced at least 10 blocks, in order to make sure that they work reliably. * [pallet-revive] fix hardcoded gas in tests (#6192) Fix hardcoded gas limits in tests --------- Co-authored-by: GitHub Action <[email protected]> * Added Trusted Query API implementation for Westend and Rococo relay chains (#6212) Added missing API methods to Rococo and Westend parachains. Preparatory work for making chopstick tests run smoothly. Follow-up of [PR#6039](https://github.com/paritytech/polkadot-sdk/pull/6039) * Snowbridge: PNA Audit Better Documentation and minor Refactorings (#6216) # Description Snowbridge PNA has been audited. A number of issues where raised due to not understanding the fee model for Polkadot Native Assets(PNA) implementation. This PR addresses this by adding more comments and better naming of private functions. ## Integration None, documentation and private method name changes. * Enable approval-voting-parallel by default on kusama (#6218) The approval-voting-parallel introduced with https://github.com/paritytech/polkadot-sdk/pull/4849 has been tested on `versi` and approximately 3 weeks on parity's existing kusama nodes https://github.com/paritytech/devops/issues/3583, things worked as expected, so enable it by default on all kusama nodes in the next release. The next step will be enabling by default on polkadot if no issue arrises while running on kusama. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> * pallet macro: Support instantiable pallets in tasks (#5194) Fix https://github.com/paritytech/polkadot-sdk/issues/5185 also implement handling of attr in expansion in construct-runtime --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> * Disable tests reported in #6062 (#6064) Flaky tests reported in #6062 #6063 (already fixed) Thx! * Fix a tiny typo (#6229) Just fix a tiny typo * pallet-message-queue: Fix max message size calculation (#6205) The max size of a message should not depend on the weight left in a given execution context. Instead the max message size depends on the service weights configured for the pallet. A message that may does not fit into `on_idle` is not automatically overweight, because it may can be executed successfully in `on_initialize` or in another block in `on_idle` when there is more weight left. --------- Co-authored-by: GitHub Action <[email protected]> * `RuntimeGenesiConfig`: json macro added (#5813) This PR adds `build_struct_json_patch` which helps to generate a JSON used for preset. Here is doc and example: https://github.com/paritytech/polkadot-sdk/blob/d868b858758d3886d16c8ba8feb3c93c188044f3/substrate/frame/support/src/generate_genesis_config.rs#L168-L266 And real-world usage: https://github.com/paritytech/polkadot-sdk/blob/d868b858758d3886d16c8ba8feb3c93c188044f3/cumulus/parachains/runtimes/assets/asset-hub-rococo/src/genesis_config_presets.rs#L37-L61 Closes #5700 --------- Co-authored-by: Sebastian Kunert <[email protected]> * substrate-offchain: upgrade hyper to v1 (#5919) Closes #4896 * pallet-revive: Add stateful address mapping (#6096) Fixes #5576 This allows contracts to be used with an AccountId32 through normal extrinsics and not only through the eth compat layer. It works by adding a new extrinsic `map_account` that lets people register their AccountId32. --------- Co-authored-by: command-bot <> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> * Fix migrations for pallet-xcm (#6148) Relates to: https://github.com/paritytech/polkadot-sdk/pull/4826 Relates to: https://github.com/paritytech/polkadot-sdk/issues/3214 ## Description `pallet-xcm` stores some operational data that uses `Versioned*` XCM types. When we add a new XCM version (XV), we deprecate XV-2 and remove XV-3. Without proper migration, this can lead to issues with [undecodable storage](https://github.com/paritytech/polkadot-sdk/actions/runs/11381324568/job/31662577532?pr=6092), as was identified on the XCMv5 branch where XCMv2 was removed. This PR extends the existing `MigrateToLatestXcmVersion` to include migration for the `Queries`, `LockedFungibles`, and `RemoteLockedFungibles` storage types. Additionally, more checks were added to `try_state` for these types. ## TODO - [x] create tracking issue for `polkadot-fellows` https://github.com/polkadot-fellows/runtimes/issues/492 - [x] Add missing `MigrateToLatestXcmVersion` for westend - [x] fix pallet-xcm `Queries` - fails for Westend https://github.com/paritytech/polkadot-sdk/actions/runs/11381324568/job/31662577532?pr=6092 - `V2` was removed from `Versioned*` stuff, but we have a live data with V2 e.g. Queries - e.g. Kusama or Polkadot relay chains ``` VersionNotifier: { origin: { V2: { parents: 0 interior: { X1: { Parachain: 2,124 } } } } isActive: true } ``` ![image](https://github.com/user-attachments/assets/f59f761b-46a7-4def-8aea-45c4e41c0a00) - [x] fix also for `RemoteLockedFungibles` - [x] fix also for `LockedFungibles` ## Follow-ups - [ ] deploy on Westend chains before XCMv5 - [ ] https://github.com/paritytech/polkadot-sdk/issues/6188 --------- Co-authored-by: command-bot <> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> * asset-hubs: simplify xcm-config (#6222) `ForeignCreatorsSovereignAccountOf` is used by `ForeignCreators` filter to convert location to `AccountId`, _after_ `ForeignCreators::IsForeign` filter passes for an (asset, location) pair. The `IsForeign` filter is the actual differentiator, so if a location passes it, we should support converting it to an `AccountId`. As such, this commit replaces `ForeignCreatorsSovereignAccountOf` converter with the more general `LocationToAccountId` converter. Signed-off-by: Adrian Catangiu <[email protected]> * Switch node side to v2 candidate receipts (#5679) on top of https://github.com/paritytech/polkadot-sdk/pull/5423 This PR implements the plumbing work required for https://github.com/paritytech/polkadot-sdk/issues/5047 . I also added additional helper methods gated by feature "test" in primitives. TODO: - [x] PRDoc --------- Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: GitHub Action <[email protected]> * Fix a flaky zombienet test - 0004-coretime-smoke-test (#6236) In the test log I noticed that the batch transaction which configures the coretime chain fails. However when rerunning the transaction manually - it worked. Then I noticed that the coretime chain is initially registered via zombienet and then re-registered via `0004-configure-relay.js`. Because of this there is a period of time when it's not producing blocks and `0004-configure-broker.js` fails to setup the coretime chain. My theory is that the transaction has failed because the coretime chain is stalled during the re-registration. Fixes https://github.com/paritytech/polkadot-sdk/issues/6226 * fix experimental-ump-signals tests (#6214) Resolves https://github.com/paritytech/polkadot-sdk/issues/6200 Also sets the feature on the rococo-parachain. Will be useful for zombienet testing * remove parachains_assigner code (#6171) Resolves https://github.com/paritytech/polkadot-sdk/issues/5970 Removes the code of the legacy parachains assigner, which was used prior to coretime. Now that all networks are upgraded to use the coretime assigner, we can remove it. * [pallet-revive] Add Ethereum JSON-RPC server (#6147) Redo of https://github.com/paritytech/polkadot-sdk/pull/5953 --------- Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: GitHub Action <[email protected]> * [pallet-revive] Update typeInfo (#6263) Update typeinfo impl to make it transparent for subxt see https://github.com/paritytech/subxt/pull/1845 --------- Co-authored-by: GitHub Action <[email protected]> * pallet-revive: Trade code size for call stack depth (#6264) This will reduce the call stack depth in order to raise the allowed code size. Should allow around 100KB of instructions. This is necessary to stay within the memory envelope. More code size is more appropriate for testing right now. We will re-evaluate parameters once we have 64bit support. --------- Co-authored-by: GitHub Action <[email protected]> * [pallet-revive] implement tx origin API (#6105) Implement a syscall to retreive the transaction origin. --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Alexander Theißen <[email protected]> * Use frame umbrella crate in `pallet-proxy` and `pallet-multisig` (#5995) A step towards https://github.com/paritytech/polkadot-sdk/issues/4782 In order to nail down the right preludes in `polkadot-sdk-frame`, we need to migrate a number of pallets to be written with it. Moreover, migrating our pallets to this simpler patter will encourage the ecosystem to also follow along. If this PR is approved and has no unwanted negative consequences, I will make a tracking issue to migrate all pallets to this umbrella crate. TODO: - [x] fix frame benchmarking template. Can we detect the umbrella crate in there and have an `if else`? cc @ggwpez - [x] Migrate benchmarking to v2 @re-gius a good candidate for you, you can open a PR against my branch. - [x] tracking issue with follow-ups --------- Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: Giuseppe Re <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Migrate pallet-vesting benchmark to v2 (#6254) Part of: - #6202. * Migrate pallet-timestamp benchmark to v2 (#6258) Part of: - #6202 --------- Co-authored-by: Dónal Murray <[email protected]> * [Identity] Decouple usernames from identities (#5554) This PR refactors `pallet-identity` to decouple usernames from identities. Main changes in this PR: - Separate usernames from identities in storage, allowing for correct deposit accounting - Introduce the option for username authorities to put up a deposit to issue a username - Allow authorities to remove usernames by declaring the intent to do so, then removing the username after the grace period expires - Refactor the authority storage to be keyed by suffix rather than owner account. - Introduce the concept of a system provider for a username, different from a governance allocation, allowing for usernames set by the system and not a specific authority - Implement multi-block migration to enable all of the changes described above --------- Signed-off-by: georgepisaltu <[email protected]> Co-authored-by: Ankan <[email protected]> * pallet-revive: Use custom target to build test fixtures (#6266) This removes the need to use a custom toolchain to build the contract test fixtures. Instead, we supply a custom target and use the currently in use upstream toolchain. --------- Co-authored-by: Jan Bujak <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> Co-authored-by: command-bot <> * Fix review in #6258 (#6275) Co-authored-by: Shawn Tabrizi <[email protected]> * Refactor `pallet-grandpa` to use `v2` benchmarks (#6073) # Description This PR moves the `pallet-grandpa` to the `v2` of `frame_benchmarking`. I submitted PR #6025 as an external contributor from my own fork, so I made this one from within this repo to see how the process would change. ## Integration N/A ## Review Notes Same as #6025, straightforward. --------- Co-authored-by: Shawn Tabrizi <[email protected]> * [pallet-revive] rpc server add docker file (#6278) Add a docker for pallet-revive eth-rpc Tested with ``` sudo docker build . -t eth-rpc -f substrate/frame/revive/rpc/Dockerfile sudo docker run --network="host" -e RUST_LOG="info,eth-rpc=debug" eth-rpc ``` --------- Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> * Bump a timeout in zombienet coretime smoke test (#6268) polkadot/zombienet_tests/smoke/0004-coretime-smoke-test.zndsl still timeouts on CI from time to time. Bumping the timeout a bit more. Related to https://github.com/paritytech/polkadot-sdk/issues/6226 --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Migrate pallet-utility to benchmark v2 (#6276) Part of: - #6202. --------- Co-authored-by: Dónal Murray <[email protected]> * [ci] Add publish docker for eth-rpc (#6286) close https://github.com/paritytech/ci_cd/issues/1073 * Add overhead benchmark to frame-omni-bencher (#5891) # Benchmark Overhead Command for Parachains This implements the `benchmark overhead` command for parachains. Full context is available at: https://github.com/paritytech/polkadot-sdk/issues/5303. Previous attempt was this https://github.com/paritytech/polkadot-sdk/pull/5283, but here we have integration into frame-omni-bencher and improved tooling. ## Changes Overview Users are now able to use `frame-omni-bencher` to generate `extrinsic_weight.rs` and `block_weight.rs` files for their runtime. The core logic for generating these remains untouched; this PR provides mostly machinery to make it work for parachains at all. Similar to the pallet benchmarks, we gain the option to benchmark based on just a runtime: ``` frame-omni-bencher v1 benchmark overhead --runtime {{runtime}} ``` or with a spec: ``` frame-omni-bencher v1 benchmark overhead --chain {{spec}} --genesis-builder spec ``` In this case, the genesis state is generated from the runtime presets. However, it is also possible to use `--chain` and genesis builder `spec` to generate the genesis state from the chain spec. Additionally, we use metadata to perform some checks based on the pallets the runtime exposes: - If we see the `ParaInherent` pallet, we assume that we are dealing with a relay chain. This means that we don't need proof recording during import (since there is no storage weight). - If we detect the `ParachainSystem` pallet, we assume that we are dealing with a parachain and take corresponding actions like patching a para id into the genesis state. On the inherent side, I am currently supplying the standard inherents every parachain needs. In the current state, `frame-omni-bencher` supports all system chains. In follow-up PRs, we could add additional inherents to increase compatibility. Since we are building a block during the benchmark, we also need to build an extrinsic. By default, I am leveraging subxt to build the xt dynamically. If a chain is not compatible with the `SubstrateConfig` that comes with `subxt`, it can provide a custom extrinsic builder to benchmarking-cli. This requires either a custom bencher implementation or an integration into the parachains node. Also cumulus-test-runtime has been migrated to provide genesis configs. ## Chain Compatibility The current version here is compatible with the system chains and common substrate chains. The way to go for others would be to customize the frame-omni-bencher by providing a custom extrinsicbuilder. I did an example implementation that works for mythical: https://github.com/skunert/mythical-bencher ## Follow-Ups - After #6040 is finished, we should integrate this here to make the tooling truly useful. In the current form, the state is fairly small and not representative. ## How to Review I recommend starting from [here](https://github.com/paritytech/polkadot-sdk/pull/5891/files#diff-50830ff756b3ac3403b7739d66c9e3a5185dbea550669ca71b28d19c7a2a54ecR264), this method is the main entry point for omni-bencher and `polkadot` binary. TBD: - [x] PRDoc --------- Co-authored-by: Michal Kucharczyk <[email protected]> * [pallet-revive] code size API (#6260) This PR implements the contract API to query the code size of a given address. --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: GitHub Action <[email protected]> Co-authored-by: command-bot <> Co-authored-by: PG Herveou <[email protected]> * Publish `polkadot-omni-node` binary (#6057) Closes https://github.com/paritytech/polkadot-sdk/issues/5566 Publish the `polkadot-omni-node` binary This is a best effort. I'm not very familiar with the release / publishing process and also not sure how to test this. @paritytech/release-engineering can you take a look on this PR please ? --------- Co-authored-by: EgorPopelyaev <[email protected]> * [pallet-revive] implement the block hash API (#6246) - Bound T::Hash to H256 - Implement the block hash API --------- Signed-off-by: xermicus <[email protected]> Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: command-bot <> Co-authored-by: GitHub Action <[email protected]> * [pallet-revive] Add metrics to eth-rpc (#6288) Add metrics for eth-rpc --------- Co-authored-by: GitHub Action <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> * Remove `riscv` feature flag (#6305) Since https://github.com/paritytech/polkadot-sdk/pull/6266 we no longer require a custom toolchain to build the `pallet-revive-fixtures`. Hence we no longer have to guard the build behind a feature flag. --------- Co-authored-by: GitHub Action <[email protected]> * `candidate-validation`: RFC103 implementation (#5847) Part of https://github.com/paritytech/polkadot-sdk/issues/5047 On top of https://github.com/paritytech/polkadot-sdk/pull/5679 --------- Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: GitHub Action <[email protected]> * Update Treasury to Support Relay Chain Block Number Provider (#3970) The goal of this PR is to have the treasury pallet work on a parachain which does not produce blocks on a regular schedule, thus can use the relay chain as a block provider. Because blocks are not produced regularly, we cannot make the assumption that block number increases monotonically, and thus have new logic to handle multiple spend periods passing between blocks. --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Muharem <[email protected]> * collation-generation: use v2 receipts (#5908) Part of https://github.com/paritytech/polkadot-sdk/issues/5047 Plus some cleanups --------- Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: GitHub Action <[email protected]> * [eth-rpc] Fixes (#6317) Various fixes for the release of eth-rpc & ah-westend-runtime - Bump asset-hub westend spec version - Fix the status of the Receipt to properly report failed transactions - Fix value conversion between native and eth decimal representation --------- Co-authored-by: GitHub Action <[email protected]> * Refactor pallet `claims` (#6318) - [x] Removing `without_storage_info` and adding bounds on the stored types for pallet `claims` - issue https://github.com/paritytech/polkadot-sdk/issues/6289 - [x] Migrating to benchmarking V2 - https://gi…
Closes #4896