-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Fix revive-fixtures build script #8980
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
Merged
Merged
Conversation
This file contains hidden or 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
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
Signed-off-by: Oliver Tale-Yazdi <[email protected]>
athei
approved these changes
Jun 25, 2025
Co-authored-by: Alexander Theißen <[email protected]>
pgherveou
approved these changes
Jun 25, 2025
karolk91
approved these changes
Jun 25, 2025
|
Successfully created backport PR for |
paritytech-release-backport-bot bot
pushed a commit
that referenced
this pull request
Jun 25, 2025
The .polkavm files are not recompiled when deleting `target/pallet-revive-fixtures`. I assume that CI is not caching that folder or the .polkavm file extension. This leads to the `include_bytes!` macro to not finding these files. Tested it here polkadot-fellows/runtimes#785 --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> (cherry picked from commit e774263)
|
Successfully created backport PR for |
paritytech-release-backport-bot bot
pushed a commit
that referenced
this pull request
Jun 26, 2025
The .polkavm files are not recompiled when deleting `target/pallet-revive-fixtures`. I assume that CI is not caching that folder or the .polkavm file extension. This leads to the `include_bytes!` macro to not finding these files. Tested it here polkadot-fellows/runtimes#785 --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> (cherry picked from commit e774263)
EgorPopelyaev
pushed a commit
that referenced
this pull request
Jun 27, 2025
Backport #8980 into `stable2503` from ggwpez. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]>
EgorPopelyaev
pushed a commit
that referenced
this pull request
Jun 27, 2025
Backport #8980 into `stable2503` from ggwpez. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]>
EgorPopelyaev
added a commit
that referenced
this pull request
Jun 30, 2025
Backport #8980 into `stable2506` from ggwpez. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Egor_P <[email protected]>
alstjd0921
added a commit
to bifrost-platform/polkadot-sdk
that referenced
this pull request
Aug 14, 2025
* [stable2503] Backport paritytech#6827 (paritytech#8770) Backport paritytech#6827 into `stable2503` from Overkillus. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Maciej <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Stephane Gurgenidze <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8861 (paritytech#8867) Backport paritytech#8861 into `stable2503` from ordian. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: ordian <[email protected]> * [stable2503] Backport paritytech#8755 (paritytech#8814) Backport paritytech#8755 into `stable2503` from iulianbarbu. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Iulian Barbu <[email protected]> Co-authored-by: Iulian Barbu <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8832 (paritytech#8846) Backport paritytech#8832 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8837 (paritytech#8884) Backport paritytech#8837 into `stable2503` from tdimitrov. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Tsvetomir Dimitrov <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8345: tx/metrics: Add metrics for the RPC v2 transactionWatch_v1_submitAndWatch (paritytech#8759) Backport paritytech#8345 into `stable2503` from lexnv. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8834 (paritytech#8889) Backport paritytech#8834 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Javier Viola <[email protected]> * [stable2503] Backport paritytech#8948 (paritytech#8959) Backport paritytech#8948 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#8787 (paritytech#8913) Backport paritytech#8787 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> * [stable2503] Post crates release adjustments (paritytech#8967) Reordering of the prdocs and clean up after crates release to meet the pipeline requirements * [stable2503] Backport paritytech#8973 (paritytech#8978) Backport paritytech#8973 into `stable2503` from AndreiEres. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Andrei Eres <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#8980 (paritytech#8995) Backport paritytech#8980 into `stable2503` from ggwpez. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> * [stable2503] Post crates release adjustments (paritytech#9009) Reordering of the prdocs and clean up after crates release to meet the pipeline requirements --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: paritytech-release-backport-bot[bot] <191369287+paritytech-release-backport-bot[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> * [stable2503] Backport paritytech#8932 (paritytech#9010) Backport paritytech#8932 into `stable2503` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8694 (paritytech#9030) Backport paritytech#8694 into `stable2503` from tmpolaczyk. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: tmpolaczyk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9050 (paritytech#9068) Backport paritytech#9050 into `stable2503` from ordian. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: ordian <[email protected]> * [stable2503] Backport paritytech#9092 (paritytech#9096) Backport paritytech#9092 into `stable2503` from EgorPopelyaev. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9102 (paritytech#9109) Backport paritytech#9102 into `stable2503` from iulianbarbu. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Iulian Barbu <[email protected]> Co-authored-by: Iulian Barbu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#9130 (paritytech#9130) Partial manual backport of [https://github.com/paritytech/polkadot-sdk/pull/8369](https://github.com/paritytech/polkadot-sdk/pull/8369) - includes only the patched file with `ToParachainDeliveryHelper`, which helps finalize [https://github.com/polkadot-fellows/runtimes/pull/709](https://github.com/polkadot-fellows/runtimes/pull/709) for AHM. _(it is just benchmarking change, nothing else)_ * [stable2503] Post crates.io release updates (paritytech#9138) This PR merges back to the stable2503 crates version bumps, node version bumps and prdocs reordering * [stable2503] Backport paritytech#9139 (paritytech#9144) Backport paritytech#9139 into `stable2503` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#8193 (paritytech#9377) Backport paritytech#8193 into `stable2503` from alvicsam. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexander Samusev <[email protected]> * [stable2503] Backport paritytech#9094 (paritytech#9155) Backport paritytech#9094 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#9137 (paritytech#9199) Backport paritytech#9137 into `stable2503` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: EgorPopelyaev <[email protected]> * [stable2503] Backport paritytech#9179 (paritytech#9303) Backport paritytech#9179 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Branislav Kontur <[email protected]> * [stable2503] Backport paritytech#9264 (paritytech#9275) Backport paritytech#9264 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#9281 (paritytech#9328) Backport paritytech#9281 into `stable2503` from lexnv. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9325 (paritytech#9334) Backport paritytech#9325 into `stable2503` from TDemeco. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Tobi Demeco <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9354 (paritytech#9374) Backport paritytech#9354 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9355 (paritytech#9369) Backport paritytech#9355 into `stable2503` from gui1117. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9195 (paritytech#9404) Backport paritytech#9195 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Adrian Catangiu <[email protected]> * [stable2503] Post crates release updates (paritytech#9408) This PR includes: - crates version bumps - node version bump - prdocs reorderings - and formatting for the pipeline * Bump crate versions in: cumulus/polkadot-parachain/Cargo.toml * Bump spec_version to 1_015_000 * Apply plan * Edit plan * Adjust and apply plan * Edit and apply plan * [stable2407 backport] runtime: make the candidate relay parent progression check more stric… (paritytech#5157) Backports paritytech#5113 on top of stable2407 * Backport paritytech#4791 (paritytech#5247) Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Jun Jiang <[email protected]> * [stable2407] Backport paritytech#5321 (paritytech#5332) Backports paritytech#5321 on the stable release * [stable2407] backport paritytech#4937 (paritytech#5337) Backport paritytech#4937 on the stable release * [stable2407] Backport PoV-reclaim fixes (paritytech#5273, paritytech#5281) (paritytech#5351) Backports paritytech#5273 & paritytech#5281 --------- Co-authored-by: Guillaume Thiolliere <[email protected]> * Move prdocs * [Backport] Bump serde_json from 1.0.120 to 1.0.121 in the known_good_semver group (paritytech#5169) (paritytech#5367) Bumps the known_good_semver group with 1 update: [serde_json](https://github.com/serde-rs/json). Updates `serde_json` from 1.0.120 to 1.0.121 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p> <blockquote> <h2>v1.0.121</h2> <ul> <li>Optimize position search in error path (<a href="https://github.com/serde-rs/json/issues/1160">#1160</a>, thanks <a href="https://github.com/purplesyringa"><code>@purplesyringa</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/serde-rs/json/commit/eca2658a22cb39952783cb6914eb18242659f66a"><code>eca2658</code></a> Release 1.0.121</li> <li><a href="https://github.com/serde-rs/json/commit/b0d678cfb473386830d559b6ab255d9e21ba39c5"><code>b0d678c</code></a> Merge pull request <a href="https://github.com/serde-rs/json/issues/1160">#1160</a> from iex-rs/efficient-position</li> <li><a href="https://github.com/serde-rs/json/commit/b1edc7d13f72880fd0ac569403a409e5f7961d5f"><code>b1edc7d</code></a> Optimize position search in error path</li> <li><a href="https://github.com/serde-rs/json/commit/40dd7f5e862436f02471fe076f3486c55e472bc2"><code>40dd7f5</code></a> Merge pull request <a href="https://github.com/serde-rs/json/issues/1159">#1159</a> from iex-rs/fix-recursion</li> <li><a href="https://github.com/serde-rs/json/commit/6a306e6ee9f47f3b37088217ffe3ebe9bbb54e5a"><code>6a306e6</code></a> Move call to tri! out of check_recursion!</li> <li><a href="https://github.com/serde-rs/json/commit/3f1c6de4af28b1f6c5100da323f2bffaf7c2083f"><code>3f1c6de</code></a> Ignore byte_char_slices clippy lint in test</li> <li><a href="https://github.com/serde-rs/json/commit/3fd6f5f49dc1c732d9b1d7dfece4f02c0d440d39"><code>3fd6f5f</code></a> Merge pull request <a href="https://github.com/serde-rs/json/issues/1153">#1153</a> from dpathakj/master</li> <li><a href="https://github.com/serde-rs/json/commit/fcb5e83e44abe0f9c27c755a240a6ad56312c090"><code>fcb5e83</code></a> Correct documentation URL for Value's Index impl.</li> <li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.120...v1.0.121">compare view</a></li> </ul> </details> <br /> [](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> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> * Move prdoc to release folder * Backport timestamp logging fix (paritytech#5459) paritytech@03c45b9 --------- Co-authored-by: Gonçalo Pestana <[email protected]> * [Backport] Add feature to allow Aura collator to use full PoV size (paritytech#5393) (paritytech#5507) This PR introduces a feature that allows to optionally enable using the full PoV size. Technically, we're ready to enable it by default, but as corresponding runtime changes have not been propagated to the system parachain runtimes yet, doing so could put them at risk. On the other hand, there are teams that could benefit from it right now, and it makes no sense for them to wait for the fellowship release and everything. --------- Co-authored-by: Andrei Sandu <[email protected]> * [Backport] Always include UnpaidExecution, not just when revenue is nonzero (paritytech#5510) Backport paritytech#5369 to stable2407, which was already backported to v1.14 in paritytech#5370 * Update plan * [stable2407] Backport paritytech#5581 (paritytech#5603) Backport paritytech#5581 into `stable2407` (cc @franciscoaguirre). The dry-run shows in `forwarded_xcms` all the messages in the queues at the time of calling the API. Each time the API is called, the result could be different. You could get messages even if you dry-run something that doesn't send a message, like a `System::remark`. This commit fixes this by clearing the message queues before doing the dry-run, so the only messages left are the ones the users of the API actually care about. Co-authored-by: Francisco Aguirre <[email protected]> * [stable2407] Backport paritytech#5466 (paritytech#5524) Backport paritytech#5466 into `stable2407` (cc @ggwpez). <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Backport 1.12.0: check-weight: Disable total pov size check for mandatory extrinsics (paritytech#4592) Backport of paritytech#4571 --------- Co-authored-by: command-bot <> * Implement `CheckMetadataHash` extension (paritytech#4274) (paritytech#4619) This implements the `CheckMetadataHash` extension as described in [RFC78](https://polkadot-fellows.github.io/RFCs/approved/0078-merkleized-metadata.html). Besides the signed extension, the `substrate-wasm-builder` is extended to support generating the metadata-hash. Closes: paritytech#291 --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> * init bifrost-polkadot-base * fix: add legacy transferrable balance to currency trait (#1) * feat: add a getter function to retrieve raw keystore value (#2) * [stable2407] Backport paritytech#5713 (paritytech#5739) Backport paritytech#5713 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * [stable2407] Backport paritytech#3049 (paritytech#5734) Backport paritytech#3049 into `stable2407` from bgallois. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Benjamin Gallois <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Move prdocs to release folder * Bump polkadot node version * Update plan * [stable2407] Backport Fix parity-publish (paritytech#5670) (paritytech#6019) Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * [stable2407] Backport docker fix to 2407 (paritytech#6017) This PR backports fixes for the docker publishing flow from master: - paritytech#5896 - paritytech#5387 * [stable2407] Backport paritytech#5913 (paritytech#6004) Backport paritytech#5913 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#4803 (paritytech#6097) Backport paritytech#4803 into `stable2407` from gotnoshoeson. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Miles Patterson <[email protected]> * [stable2407] Backport paritytech#5599 (paritytech#6068) Backport paritytech#5599 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Shawn Tabrizi <[email protected]> * [stable2407] Backport paritytech#6205 (paritytech#6238) Backport paritytech#6205 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: command-bot <> * [stable2407] Backport paritytech#6148 (paritytech#6232) Backport paritytech#6148 into `stable2407` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Branislav Kontur <[email protected]> * Bump node version * Move prdocs * Update plan * Apply plan * [stable2407] Backport paritytech#6417 (paritytech#6437) Backport paritytech#6417 into `stable2407` from alindima. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alin Dima <[email protected]> * [Release|CI/CD] Fix audiences changelog template (paritytech#6444) This PR addresses an issue mentioned [here](paritytech#6424 (comment)). The problem was that when the prdoc file has two audiences, but only one description like in [prdoc_5660](https://github.com/paritytech/polkadot-sdk/blob/master/prdoc/1.16.0/pr_5660.prdoc) it was ignored by the template. * [stable2407] Backport paritytech#6526 (paritytech#6530) Backport paritytech#6526 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher <[email protected]> * [stable2407] Backport paritytech#6645 (paritytech#6655) Backport paritytech#6645 into `stable2407` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Branislav Kontur <[email protected]> * [stable2407] Backport paritytech#6579 (paritytech#6634) Backport paritytech#6579 into `stable2407` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6603 (paritytech#6668) Backport paritytech#6603 into `stable2407` from lexnv. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Vasile <[email protected]> * Backport paritytech#5887 to `stable2407` (paritytech#6674) This PR accompanies paritytech#6672 to make backported changes consistent across releases. --------- Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6031 (paritytech#6106) Backport paritytech#6031 into `stable2407` from drewstone. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: drewstone <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6080 (paritytech#6180) Backport paritytech#6080 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6540 (paritytech#6591) Backport paritytech#6540 into `stable2407` from Ank4n. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Ankan <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6506 (paritytech#6657) Backport paritytech#6506 into `stable2407` from Dinonard. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Dino Pačandi <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6459 (paritytech#6663) Backport paritytech#6459 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Egor_P <[email protected]> * Bump polkadot node version * Move prdoxs to release folder * Apply plan * Update Cargo.lock * [stable2407] Backport paritytech#6690 (paritytech#6798) Backport paritytech#6690 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6729 (paritytech#6828) Backport paritytech#6729 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6662 (paritytech#6801) Backport paritytech#6662 into `stable2407` from eskimor. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: eskimor <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> * [stable2407] Backport paritytech#5311 (paritytech#6804) Backport paritytech#5311 into `stable2407` from Doordashcon. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Doordashcon <[email protected]> * [stable2407] Backport paritytech#6696 (paritytech#6839) Backport paritytech#6696 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6864 (paritytech#6877) Backport paritytech#6864 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#7050 (paritytech#7058) Backport paritytech#7050 into `stable2407` from skunert. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Sebastian Kunert <[email protected]> * [stable2407] Backport paritytech#7013 (paritytech#7015) Backport paritytech#7013 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: EgorPopelyaev <[email protected]> * Switch to parity-large runners to be able to run on the github (paritytech#7113) * Move prdocs to release folder * Bump node_version * [stable2407] Backport paritytech#7116 (paritytech#7135) Backport paritytech#7116 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Gheorghe <[email protected]> * Move prdoc to release folder * [stable2407] Backport paritytech#6807 (paritytech#7155) Backport paritytech#6807 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6973 (paritytech#7159) Backport paritytech#6973 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6971 (paritytech#7172) Backport paritytech#6971 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * Move prdocs to release folder * Apply plan * [stable2407] Backport paritytech#7365 (paritytech#7380) Backport paritytech#7365 into `stable2407` from vgantchev. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Valery Gantchev <[email protected]> * [stable2407] Backport paritytech#7437 (paritytech#7465) Backport paritytech#7437 into `stable2407` from serban300. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * [stable2407] Backport paritytech#7446 (paritytech#7460) Backport paritytech#7446 into `stable2407` from serban300. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Update plan * Apply changes * Move prdocs to release folder * Bump node version * Backport 1.12.0: check-weight: Disable total pov size check for mandatory extrinsics (paritytech#4592) Backport of paritytech#4571 --------- Co-authored-by: command-bot <> * Implement `CheckMetadataHash` extension (paritytech#4274) (paritytech#4619) This implements the `CheckMetadataHash` extension as described in [RFC78](https://polkadot-fellows.github.io/RFCs/approved/0078-merkleized-metadata.html). Besides the signed extension, the `substrate-wasm-builder` is extended to support generating the metadata-hash. Closes: paritytech#291 --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> * init bifrost-polkadot-base * fix: add legacy transferrable balance to currency trait (#1) * wasm-builder(cherry-pick): Also set mcpu for c deps (paritytech#3777) * update Cargo.lock * feat: add a getter function to retrieve keystore raw value --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: paritytech-cmd-bot-polkadot-sdk[bot] <179002856+paritytech-cmd-bot-polkadot-sdk[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Benjamin Gallois <[email protected]> Co-authored-by: EgorPopelyaev <[email protected]> Co-authored-by: Morgan Adamiec <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Miles Patterson <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Alin Dima <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: drewstone <[email protected]> Co-authored-by: Ankan <[email protected]> Co-authored-by: Dino Pačandi <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: eskimor <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Doordashcon <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]> Co-authored-by: Valery Gantchev <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> * resolve conflicts * chore: pull stable2503 * chore: remove deprecated getter --------- Signed-off-by: Iulian Barbu <[email protected]> Signed-off-by: Alexandru Gheorghe <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: paritytech-release-backport-bot[bot] <191369287+paritytech-release-backport-bot[bot]@users.noreply.github.com> Co-authored-by: Maciej <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Stephane Gurgenidze <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Iulian Barbu <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Tsvetomir Dimitrov <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Andrei Eres <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: tmpolaczyk <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Alexander Samusev <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Tobi Demeco <[email protected]> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: Morgan Adamiec <[email protected]> Co-authored-by: Alin Dima <[email protected]> Co-authored-by: Jun Jiang <[email protected]> Co-authored-by: Sebastian Kunert <[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: Gonçalo Pestana <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: dnjscksdn98 <[email protected]> Co-authored-by: paritytech-cmd-bot-polkadot-sdk[bot] <179002856+paritytech-cmd-bot-polkadot-sdk[bot]@users.noreply.github.com> Co-authored-by: Benjamin Gallois <[email protected]> Co-authored-by: Miles Patterson <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: drewstone <[email protected]> Co-authored-by: Ankan <[email protected]> Co-authored-by: Dino Pačandi <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: eskimor <[email protected]> Co-authored-by: Doordashcon <[email protected]> Co-authored-by: Valery Gantchev <[email protected]> Co-authored-by: Serban Iorga <[email protected]>
alstjd0921
added a commit
to bifrost-platform/polkadot-sdk
that referenced
this pull request
Aug 14, 2025
* [stable2503] Backport paritytech#6827 (paritytech#8770) Backport paritytech#6827 into `stable2503` from Overkillus. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Maciej <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Stephane Gurgenidze <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8861 (paritytech#8867) Backport paritytech#8861 into `stable2503` from ordian. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: ordian <[email protected]> * [stable2503] Backport paritytech#8755 (paritytech#8814) Backport paritytech#8755 into `stable2503` from iulianbarbu. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Iulian Barbu <[email protected]> Co-authored-by: Iulian Barbu <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8832 (paritytech#8846) Backport paritytech#8832 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8837 (paritytech#8884) Backport paritytech#8837 into `stable2503` from tdimitrov. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Tsvetomir Dimitrov <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8345: tx/metrics: Add metrics for the RPC v2 transactionWatch_v1_submitAndWatch (paritytech#8759) Backport paritytech#8345 into `stable2503` from lexnv. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8834 (paritytech#8889) Backport paritytech#8834 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Javier Viola <[email protected]> * [stable2503] Backport paritytech#8948 (paritytech#8959) Backport paritytech#8948 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#8787 (paritytech#8913) Backport paritytech#8787 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> * [stable2503] Post crates release adjustments (paritytech#8967) Reordering of the prdocs and clean up after crates release to meet the pipeline requirements * [stable2503] Backport paritytech#8973 (paritytech#8978) Backport paritytech#8973 into `stable2503` from AndreiEres. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Andrei Eres <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#8980 (paritytech#8995) Backport paritytech#8980 into `stable2503` from ggwpez. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> * [stable2503] Post crates release adjustments (paritytech#9009) Reordering of the prdocs and clean up after crates release to meet the pipeline requirements --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: paritytech-release-backport-bot[bot] <191369287+paritytech-release-backport-bot[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> * [stable2503] Backport paritytech#8932 (paritytech#9010) Backport paritytech#8932 into `stable2503` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#8694 (paritytech#9030) Backport paritytech#8694 into `stable2503` from tmpolaczyk. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: tmpolaczyk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9050 (paritytech#9068) Backport paritytech#9050 into `stable2503` from ordian. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: ordian <[email protected]> * [stable2503] Backport paritytech#9092 (paritytech#9096) Backport paritytech#9092 into `stable2503` from EgorPopelyaev. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9102 (paritytech#9109) Backport paritytech#9102 into `stable2503` from iulianbarbu. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Iulian Barbu <[email protected]> Co-authored-by: Iulian Barbu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#9130 (paritytech#9130) Partial manual backport of [https://github.com/paritytech/polkadot-sdk/pull/8369](https://github.com/paritytech/polkadot-sdk/pull/8369) - includes only the patched file with `ToParachainDeliveryHelper`, which helps finalize [https://github.com/polkadot-fellows/runtimes/pull/709](https://github.com/polkadot-fellows/runtimes/pull/709) for AHM. _(it is just benchmarking change, nothing else)_ * [stable2503] Post crates.io release updates (paritytech#9138) This PR merges back to the stable2503 crates version bumps, node version bumps and prdocs reordering * [stable2503] Backport paritytech#9139 (paritytech#9144) Backport paritytech#9139 into `stable2503` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#8193 (paritytech#9377) Backport paritytech#8193 into `stable2503` from alvicsam. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexander Samusev <[email protected]> * [stable2503] Backport paritytech#9094 (paritytech#9155) Backport paritytech#9094 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#9137 (paritytech#9199) Backport paritytech#9137 into `stable2503` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: EgorPopelyaev <[email protected]> * [stable2503] Backport paritytech#9179 (paritytech#9303) Backport paritytech#9179 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Branislav Kontur <[email protected]> * [stable2503] Backport paritytech#9264 (paritytech#9275) Backport paritytech#9264 into `stable2503` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> * [stable2503] Backport paritytech#9281 (paritytech#9328) Backport paritytech#9281 into `stable2503` from lexnv. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9325 (paritytech#9334) Backport paritytech#9325 into `stable2503` from TDemeco. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Tobi Demeco <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9354 (paritytech#9374) Backport paritytech#9354 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9355 (paritytech#9369) Backport paritytech#9355 into `stable2503` from gui1117. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2503] Backport paritytech#9195 (paritytech#9404) Backport paritytech#9195 into `stable2503` from karolk91. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Adrian Catangiu <[email protected]> * [stable2503] Post crates release updates (paritytech#9408) This PR includes: - crates version bumps - node version bump - prdocs reorderings - and formatting for the pipeline * Bump crate versions in: cumulus/polkadot-parachain/Cargo.toml * Bump spec_version to 1_015_000 * Apply plan * Edit plan * Adjust and apply plan * Edit and apply plan * [stable2407 backport] runtime: make the candidate relay parent progression check more stric… (paritytech#5157) Backports paritytech#5113 on top of stable2407 * Backport paritytech#4791 (paritytech#5247) Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Jun Jiang <[email protected]> * [stable2407] Backport paritytech#5321 (paritytech#5332) Backports paritytech#5321 on the stable release * [stable2407] backport paritytech#4937 (paritytech#5337) Backport paritytech#4937 on the stable release * [stable2407] Backport PoV-reclaim fixes (paritytech#5273, paritytech#5281) (paritytech#5351) Backports paritytech#5273 & paritytech#5281 --------- Co-authored-by: Guillaume Thiolliere <[email protected]> * Move prdocs * [Backport] Bump serde_json from 1.0.120 to 1.0.121 in the known_good_semver group (paritytech#5169) (paritytech#5367) Bumps the known_good_semver group with 1 update: [serde_json](https://github.com/serde-rs/json). Updates `serde_json` from 1.0.120 to 1.0.121 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/serde-rs/json/releases">serde_json's releases</a>.</em></p> <blockquote> <h2>v1.0.121</h2> <ul> <li>Optimize position search in error path (<a href="https://github.com/serde-rs/json/issues/1160">#1160</a>, thanks <a href="https://github.com/purplesyringa"><code>@purplesyringa</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/serde-rs/json/commit/eca2658a22cb39952783cb6914eb18242659f66a"><code>eca2658</code></a> Release 1.0.121</li> <li><a href="https://github.com/serde-rs/json/commit/b0d678cfb473386830d559b6ab255d9e21ba39c5"><code>b0d678c</code></a> Merge pull request <a href="https://github.com/serde-rs/json/issues/1160">#1160</a> from iex-rs/efficient-position</li> <li><a href="https://github.com/serde-rs/json/commit/b1edc7d13f72880fd0ac569403a409e5f7961d5f"><code>b1edc7d</code></a> Optimize position search in error path</li> <li><a href="https://github.com/serde-rs/json/commit/40dd7f5e862436f02471fe076f3486c55e472bc2"><code>40dd7f5</code></a> Merge pull request <a href="https://github.com/serde-rs/json/issues/1159">#1159</a> from iex-rs/fix-recursion</li> <li><a href="https://github.com/serde-rs/json/commit/6a306e6ee9f47f3b37088217ffe3ebe9bbb54e5a"><code>6a306e6</code></a> Move call to tri! out of check_recursion!</li> <li><a href="https://github.com/serde-rs/json/commit/3f1c6de4af28b1f6c5100da323f2bffaf7c2083f"><code>3f1c6de</code></a> Ignore byte_char_slices clippy lint in test</li> <li><a href="https://github.com/serde-rs/json/commit/3fd6f5f49dc1c732d9b1d7dfece4f02c0d440d39"><code>3fd6f5f</code></a> Merge pull request <a href="https://github.com/serde-rs/json/issues/1153">#1153</a> from dpathakj/master</li> <li><a href="https://github.com/serde-rs/json/commit/fcb5e83e44abe0f9c27c755a240a6ad56312c090"><code>fcb5e83</code></a> Correct documentation URL for Value's Index impl.</li> <li>See full diff in <a href="https://github.com/serde-rs/json/compare/v1.0.120...v1.0.121">compare view</a></li> </ul> </details> <br /> [](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> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> * Move prdoc to release folder * Backport timestamp logging fix (paritytech#5459) paritytech@03c45b9 --------- Co-authored-by: Gonçalo Pestana <[email protected]> * [Backport] Add feature to allow Aura collator to use full PoV size (paritytech#5393) (paritytech#5507) This PR introduces a feature that allows to optionally enable using the full PoV size. Technically, we're ready to enable it by default, but as corresponding runtime changes have not been propagated to the system parachain runtimes yet, doing so could put them at risk. On the other hand, there are teams that could benefit from it right now, and it makes no sense for them to wait for the fellowship release and everything. --------- Co-authored-by: Andrei Sandu <[email protected]> * [Backport] Always include UnpaidExecution, not just when revenue is nonzero (paritytech#5510) Backport paritytech#5369 to stable2407, which was already backported to v1.14 in paritytech#5370 * Update plan * [stable2407] Backport paritytech#5581 (paritytech#5603) Backport paritytech#5581 into `stable2407` (cc @franciscoaguirre). The dry-run shows in `forwarded_xcms` all the messages in the queues at the time of calling the API. Each time the API is called, the result could be different. You could get messages even if you dry-run something that doesn't send a message, like a `System::remark`. This commit fixes this by clearing the message queues before doing the dry-run, so the only messages left are the ones the users of the API actually care about. Co-authored-by: Francisco Aguirre <[email protected]> * [stable2407] Backport paritytech#5466 (paritytech#5524) Backport paritytech#5466 into `stable2407` (cc @ggwpez). <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Backport 1.12.0: check-weight: Disable total pov size check for mandatory extrinsics (paritytech#4592) Backport of paritytech#4571 --------- Co-authored-by: command-bot <> * Implement `CheckMetadataHash` extension (paritytech#4274) (paritytech#4619) This implements the `CheckMetadataHash` extension as described in [RFC78](https://polkadot-fellows.github.io/RFCs/approved/0078-merkleized-metadata.html). Besides the signed extension, the `substrate-wasm-builder` is extended to support generating the metadata-hash. Closes: paritytech#291 --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> * init bifrost-polkadot-base * fix: add legacy transferrable balance to currency trait (#1) * feat: add a getter function to retrieve raw keystore value (#2) * [stable2407] Backport paritytech#5713 (paritytech#5739) Backport paritytech#5713 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * [stable2407] Backport paritytech#3049 (paritytech#5734) Backport paritytech#3049 into `stable2407` from bgallois. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Benjamin Gallois <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Move prdocs to release folder * Bump polkadot node version * Update plan * [stable2407] Backport Fix parity-publish (paritytech#5670) (paritytech#6019) Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * [stable2407] Backport docker fix to 2407 (paritytech#6017) This PR backports fixes for the docker publishing flow from master: - paritytech#5896 - paritytech#5387 * [stable2407] Backport paritytech#5913 (paritytech#6004) Backport paritytech#5913 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#4803 (paritytech#6097) Backport paritytech#4803 into `stable2407` from gotnoshoeson. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Miles Patterson <[email protected]> * [stable2407] Backport paritytech#5599 (paritytech#6068) Backport paritytech#5599 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Shawn Tabrizi <[email protected]> * [stable2407] Backport paritytech#6205 (paritytech#6238) Backport paritytech#6205 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: command-bot <> * [stable2407] Backport paritytech#6148 (paritytech#6232) Backport paritytech#6148 into `stable2407` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Branislav Kontur <[email protected]> * Bump node version * Move prdocs * Update plan * Apply plan * [stable2407] Backport paritytech#6417 (paritytech#6437) Backport paritytech#6417 into `stable2407` from alindima. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alin Dima <[email protected]> * [Release|CI/CD] Fix audiences changelog template (paritytech#6444) This PR addresses an issue mentioned [here](paritytech#6424 (comment)). The problem was that when the prdoc file has two audiences, but only one description like in [prdoc_5660](https://github.com/paritytech/polkadot-sdk/blob/master/prdoc/1.16.0/pr_5660.prdoc) it was ignored by the template. * [stable2407] Backport paritytech#6526 (paritytech#6530) Backport paritytech#6526 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: command-bot <> Co-authored-by: Bastian Köcher <[email protected]> * [stable2407] Backport paritytech#6645 (paritytech#6655) Backport paritytech#6645 into `stable2407` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Branislav Kontur <[email protected]> * [stable2407] Backport paritytech#6579 (paritytech#6634) Backport paritytech#6579 into `stable2407` from bkontur. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6603 (paritytech#6668) Backport paritytech#6603 into `stable2407` from lexnv. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Vasile <[email protected]> * Backport paritytech#5887 to `stable2407` (paritytech#6674) This PR accompanies paritytech#6672 to make backported changes consistent across releases. --------- Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6031 (paritytech#6106) Backport paritytech#6031 into `stable2407` from drewstone. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: drewstone <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6080 (paritytech#6180) Backport paritytech#6080 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6540 (paritytech#6591) Backport paritytech#6540 into `stable2407` from Ank4n. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Ankan <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6506 (paritytech#6657) Backport paritytech#6506 into `stable2407` from Dinonard. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Dino Pačandi <[email protected]> Co-authored-by: Egor_P <[email protected]> * [stable2407] Backport paritytech#6459 (paritytech#6663) Backport paritytech#6459 into `stable2407` from franciscoaguirre. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Egor_P <[email protected]> * Bump polkadot node version * Move prdoxs to release folder * Apply plan * Update Cargo.lock * [stable2407] Backport paritytech#6690 (paritytech#6798) Backport paritytech#6690 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6729 (paritytech#6828) Backport paritytech#6729 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6662 (paritytech#6801) Backport paritytech#6662 into `stable2407` from eskimor. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: eskimor <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> * [stable2407] Backport paritytech#5311 (paritytech#6804) Backport paritytech#5311 into `stable2407` from Doordashcon. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Doordashcon <[email protected]> * [stable2407] Backport paritytech#6696 (paritytech#6839) Backport paritytech#6696 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6864 (paritytech#6877) Backport paritytech#6864 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#7050 (paritytech#7058) Backport paritytech#7050 into `stable2407` from skunert. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Sebastian Kunert <[email protected]> * [stable2407] Backport paritytech#7013 (paritytech#7015) Backport paritytech#7013 into `stable2407` from bkchr. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: EgorPopelyaev <[email protected]> * Switch to parity-large runners to be able to run on the github (paritytech#7113) * Move prdocs to release folder * Bump node_version * [stable2407] Backport paritytech#7116 (paritytech#7135) Backport paritytech#7116 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Alexandru Gheorghe <[email protected]> * Move prdoc to release folder * [stable2407] Backport paritytech#6807 (paritytech#7155) Backport paritytech#6807 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6973 (paritytech#7159) Backport paritytech#6973 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * [stable2407] Backport paritytech#6971 (paritytech#7172) Backport paritytech#6971 into `stable2407` from alexggh. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> * Move prdocs to release folder * Apply plan * [stable2407] Backport paritytech#7365 (paritytech#7380) Backport paritytech#7365 into `stable2407` from vgantchev. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> Co-authored-by: Valery Gantchev <[email protected]> * [stable2407] Backport paritytech#7437 (paritytech#7465) Backport paritytech#7437 into `stable2407` from serban300. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * [stable2407] Backport paritytech#7446 (paritytech#7460) Backport paritytech#7446 into `stable2407` from serban300. See the [documentation](https://github.com/paritytech/polkadot-sdk/blob/master/docs/BACKPORT.md) on how to use this bot. <!-- # To be used by other automation, do not modify: original-pr-number: #${pull_number} --> --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> * Update plan * Apply changes * Move prdocs to release folder * Bump node version * Backport 1.12.0: check-weight: Disable total pov size check for mandatory extrinsics (paritytech#4592) Backport of paritytech#4571 --------- Co-authored-by: command-bot <> * Implement `CheckMetadataHash` extension (paritytech#4274) (paritytech#4619) This implements the `CheckMetadataHash` extension as described in [RFC78](https://polkadot-fellows.github.io/RFCs/approved/0078-merkleized-metadata.html). Besides the signed extension, the `substrate-wasm-builder` is extended to support generating the metadata-hash. Closes: paritytech#291 --------- Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> * init bifrost-polkadot-base * fix: add legacy transferrable balance to currency trait (#1) * wasm-builder(cherry-pick): Also set mcpu for c deps (paritytech#3777) * update Cargo.lock * feat: add a getter function to retrieve keystore raw value --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: paritytech-cmd-bot-polkadot-sdk[bot] <179002856+paritytech-cmd-bot-polkadot-sdk[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Benjamin Gallois <[email protected]> Co-authored-by: EgorPopelyaev <[email protected]> Co-authored-by: Morgan Adamiec <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Miles Patterson <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Alin Dima <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: drewstone <[email protected]> Co-authored-by: Ankan <[email protected]> Co-authored-by: Dino Pačandi <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: eskimor <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Doordashcon <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]> Co-authored-by: Valery Gantchev <[email protected]> Co-authored-by: Serban Iorga <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> * resolve conflicts * chore: pull stable2503 * chore: remove deprecated getter --------- Signed-off-by: Iulian Barbu <[email protected]> Signed-off-by: Alexandru Gheorghe <[email protected]> Signed-off-by: Alexandru Vasile <[email protected]> Signed-off-by: Oliver Tale-Yazdi <[email protected]> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: paritytech-release-backport-bot[bot] <191369287+paritytech-release-backport-bot[bot]@users.noreply.github.com> Co-authored-by: Maciej <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Stephane Gurgenidze <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Iulian Barbu <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Tsvetomir Dimitrov <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Alexandru Vasile <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Andrei Eres <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: tmpolaczyk <[email protected]> Co-authored-by: ordian <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Alexander Samusev <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Tobi Demeco <[email protected]> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: Morgan Adamiec <[email protected]> Co-authored-by: Alin Dima <[email protected]> Co-authored-by: Jun Jiang <[email protected]> Co-authored-by: Sebastian Kunert <[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: Gonçalo Pestana <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: Dónal Murray <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: Liam Aharon <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: dnjscksdn98 <[email protected]> Co-authored-by: paritytech-cmd-bot-polkadot-sdk[bot] <179002856+paritytech-cmd-bot-polkadot-sdk[bot]@users.noreply.github.com> Co-authored-by: Benjamin Gallois <[email protected]> Co-authored-by: Miles Patterson <[email protected]> Co-authored-by: Shawn Tabrizi <[email protected]> Co-authored-by: drewstone <[email protected]> Co-authored-by: Ankan <[email protected]> Co-authored-by: Dino Pačandi <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: eskimor <[email protected]> Co-authored-by: Doordashcon <[email protected]> Co-authored-by: Valery Gantchev <[email protected]> Co-authored-by: Serban Iorga <[email protected]>
github-merge-queue bot
pushed a commit
that referenced
this pull request
Oct 1, 2025
#8980 did fix the fellowship CI but it triggers a rebuild of the fixtures every single time you run tests. Annoying during development. Instead of rebuilding, we just move the fixtures into the `target/release` directory where it should be cached by the fellowship CI. Verifying that it works here: polkadot-fellows/runtimes#891 Why: Re-running when the output dir changes will make it re-run every time. Since every run changes the output dir. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
bee344
pushed a commit
that referenced
this pull request
Oct 7, 2025
#8980 did fix the fellowship CI but it triggers a rebuild of the fixtures every single time you run tests. Annoying during development. Instead of rebuilding, we just move the fixtures into the `target/release` directory where it should be cached by the fellowship CI. Verifying that it works here: polkadot-fellows/runtimes#891 Why: Re-running when the output dir changes will make it re-run every time. Since every run changes the output dir. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
alvicsam
pushed a commit
that referenced
this pull request
Oct 17, 2025
The .polkavm files are not recompiled when deleting `target/pallet-revive-fixtures`. I assume that CI is not caching that folder or the .polkavm file extension. This leads to the `include_bytes!` macro to not finding these files. Tested it here polkadot-fellows/runtimes#785 --------- Signed-off-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Alexander Theißen <[email protected]>
alvicsam
pushed a commit
that referenced
this pull request
Oct 17, 2025
#8980 did fix the fellowship CI but it triggers a rebuild of the fixtures every single time you run tests. Annoying during development. Instead of rebuilding, we just move the fixtures into the `target/release` directory where it should be cached by the fellowship CI. Verifying that it works here: polkadot-fellows/runtimes#891 Why: Re-running when the output dir changes will make it re-run every time. Since every run changes the output dir. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
TorstenStueber
pushed a commit
that referenced
this pull request
Dec 4, 2025
This is a fix for the fact that `exec::Key` is exposed from within `pallet_revive::tracing::Tracing` interface, but not from the crate itself making custom tracers effectively unimplementable outside said crate. In my case it's useful for implementing custom tracers for integration with `foundry` Requires no downstream changes This is a fix for the fact that `exec::Key` is exposed from within `pallet_revive::tracing::Tracing` interface, but not from the crate itself making custom tracers effectively unimplementable outside said crate. see here for one of the methods: [`exec::Key` exposed to the implementor, despite not being exported by the `crate`](https://github.com/paritytech/polkadot-sdk/blob/pkhry/expose_key_pallet_revive/substrate/frame/revive/src/tracing.rs#L68) --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Move `to_account_id` host function to `System` pre-compile (#9455) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. cc @athei @pgherveou --------- Co-authored-by: xermicus <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Move `blake2_128` host function to `System` pre-compile (#9454) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. I'm splitting some of the host function migrations into separate PRs, as there are sometimes refactorings involved and this should make reviewing easier. cc @athei @pgherveou [revive] move existing files to prepare evm backend introduction (#9501) - Move exisiting files in pallet-revive to accomodate the upcoming EVM backend - Add solc/resolc compilation feature for fixtures - Add `fn is_pvm` to later distinguish between pvm / evm bytecode --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> align eth-rpc response with geth (#9177) - Update some serde encoding for eth-rpc to match serialization behavior of Geth - Add support for serializing / deserializing EIP7702 tx types - Disable transaction type we don't support yet in try_ino_unchecked_extrinsics --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [revive] revm backend (#9285) Initial EVM support via the REVM crate to create a dual-VM system that can execute both PolkaVM and EVM - Added `AllowEVMBytecode: Get<bool>` to the config to enable/disable EVM call and instantiation - CodeInfo has been updated to add the type of bytecode (EVM / PVM). `migration/v2.rs` takes care of migrating existing storages - The CodeUploadDeposit is not held by a pallet account instead of being held on the uploader, It's automatically refunded when the refcount drops to 0 and the code is removed. - The basic flow of uploading an EVM contract and running it should work - instructions are copied and adapted from REVM they should be ignored in this PR and reviewed in follow-up PR (**reviewers** please ignore `substrate/frame/revive/src/vm/evm/instructions/*` for now) A basic instruction looks like this: ```rust pub fn coinbase<'ext, E: Ext>(context: Context<'_, 'ext, E>) { gas_legacy!(context.interpreter, revm_gas::BASE); push!(context.interpreter, context.host.beneficiary().into_word().into()); } ``` All instructions have been copied from `REVM` and updated with generic types for pallet-revive. Two main changes are required: Replace REVM gas calls with existing benchmarks where available: ```diff - gas_legacy!(context.interpreter, revm_gas::BASE); + gas!(context.interpreter, RuntimeCosts::BlockAuthor); ``` Replace `context.host` calls with `context.extend` (set to `&mut Ext`): ```diff - push!(context.interpreter, context.host.beneficiary().into_word().into()); + let coinbase: Address = context.interpreter.extend.block_author().unwrap_or_default().0.into(); + push!(context.interpreter, coinbase.into_word().into()); ``` - For cases without existing benchmarks (e.g arithmetic, bitwise) , we will keep `gas_legacy!` - The u64 gas value are multiplied by a base cost benchmarked by `evm_opcode` - ### Important Rules - All calls to `context.host` should be removed (initialized to default values) - All calls to `context.interpreter.gas` should be removed (except `gas.memory` handled by `resize_memory!` macro) - See `block_number` implementation as a reference example The following instructions in src/vm/evm/instructions/** need to be updated We probably don't need to touch these implementations here, they use the gas_legacy! macro to charge a low gas value that will be scaled with our gas_to_weight benchmark. The only thing needed here are tests that exercise these instructions <details> - [ ] **add** - [ ] **mul** - [ ] **sub** - [ ] **div** - [ ] **sdiv** - [ ] **rem** - [ ] **smod** - [ ] **addmod** - [ ] **mulmod** - [ ] **exp** - [ ] **signextend** - [ ] **lt** - [ ] **gt** - [ ] **slt** - [ ] **sgt** - [ ] **eq** - [ ] **iszero** - [ ] **bitand** - [ ] **bitor** - [ ] **bitxor** - [ ] **not** - [ ] **byte** - [ ] **shl** - [ ] **shr** - [ ] **sar** - [ ] **clz** - [ ] **jump** - [ ] **jumpi** - [ ] **jumpdest** - [ ] **pc** - [ ] **stop** - [ ] **ret** - [ ] **revert** - [ ] **invalid** - [ ] **mload** - [ ] **mstore** - [ ] **mstore8** - [ ] **msize** - [ ] **mcopy** - [ ] **pop** - [ ] **push0** - [ ] **push** - [ ] **dup** - [ ] **swap** </details> These instructions should be updated from using gas_legacy! to gas! with the appropriate RuntimeCost, the returned value need to be pulled from our `&mut Ext` ctx.interpreter.extend instead of the host or input context value <details> - [x] **block_number** - [ ] **coinbase** - [ ] **timestamp** - [ ] **difficulty** - [ ] **gaslimit** - [ ] **chainid** - [ ] **basefee** - [ ] **blob_basefee** - [ ] **balance** - [ ] **extcodesize** - [ ] **extcodecopy** - [ ] **extcodehash** - [ ] **blockhash** - [ ] **sload** - [ ] **sstore** - [ ] **tload** - [ ] **tstore** - [ ] **log** - [ ] **selfdestruct** - [ ] **selfbalance** - [ ] **keccak256** - [ ] **address** - [ ] **caller** - [ ] **callvalue** - [ ] **calldataload** - [ ] **calldatasize** - [ ] **calldatacopy** - [ ] **codesize** - [ ] **codecopy** - [ ] **returndatasize** - [ ] **returndatacopy** - [ ] **gas** - [ ] **origin** - [ ] **gasprice** - [ ] **blob_hash** </details> These instructions should be updated,, that's where I expect the most code change in the instruction implementation. See how it's done in vm/pvm module, the final result should look pretty similar to what we are doing there with the addition of custom gas_limit calculation that works with our gas model. see also example code here https://github.com/paritytech/revm_example <details> - [ ] **create** - [ ] **create** - [ ] **call** - [ ] **call_code** - [ ] **delegate_call** - [ ] **static_call** </details> --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> [pallet-revive] Expose `AccountInfo` and `ContractInfo` in the public interface (#9606) Part of https://github.com/paritytech/polkadot-sdk/issues/9553 See https://github.com/paritytech/foundry-polkadot/issues/276 Exposes revive types to use in foundry-polkadot project. Should not affect downstream projects. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] EVM backend: Implement tx, block system and call stack instructions (#9414) This PR is part of the road to EVM. - Implement call and create frames, allowing to call and instantiate other contracts. - Implement support for tx info, block info, system and contract opcodes. - The `InstructionResult` <-> `ExecError` conversion functions. --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> [pallet-revive] Update genesis config (#9557) Update pallet-revive Genesis config Make it possible to define accounts (contracts or EOA) that we want to setup at Genesis --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> [pallet-revive] Add `Pallet::set_evm_balance` (#9617) Part of https://github.com/paritytech/polkadot-sdk/issues/9553 See https://github.com/paritytech/foundry-polkadot/issues/273 Adds a balance setter in EVM. Should not affect downstream projects. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> [pallet-revive] EVM backend: implement various missing opcodes (#9385) * [x] system (other PR, no tests) * [x] block_info (other PR) * [x] contract (other PR) * [x] tx_info (other PR) * [x] arithmetic * [x] bitwise * [x] i256 (these are not opcodes so will not test) * [x] host (except `log()`) * [x] memory * [x] control (except `pc()`) * [x] macros (these are not opcodes so will not test) * [x] utility (these are not opcodes so will not test) * [x] stack --------- Signed-off-by: xermicus <[email protected]> Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Alexander Cyon <[email protected]> Co-authored-by: Alexander Cyon <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Dmitry Sinyavin <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: Serban Iorga <[email protected]> [pallet-revive] fix GAS_PRICE (#9679) Currently submitting a transactio to the dev-node or kitchensink will trigger an error when you try to submit a transaction trhough cast (or anything using alloy) as the block gas limit on these runtime is greater than u64::max. This bump the GAS_PRICE to fix this issue, this will eventually be superseeded by the new gas model --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> [pallet-revive] Properly convert `Ext::minimum_balance` value to `U256` (#9705) The value is just cast to `U256` here, without applying the actual conversion factor (`NativeToEthRatio`). There are some tests that apply the same easy conversion via `Into`, without applying the conversion factor. Those tests still succeed, but you might want to go through those usages to not confuse people reading the code. @athei @pgherveou added trace logging in EVM interpreter loop (#9561) Added trace logging for each instruction to evm::run function. solves https://github.com/paritytech/polkadot-sdk/issues/9575 --------- Signed-off-by: xermicus <[email protected]> Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> [pallet-revive] fix CodeInfo owner (#9744) Fix CodeInfo owner, it should always be set to the origin of the transaction --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] fix tracing collect (#9736) Tracing fixes: - collect_trace take `self` instead of `&mut self`, to avoid reusing the tracer state when tracing multiple transactions in a block. - Fix issues related to call traces and the onlyTopCall config option Fix https://github.com/paritytech/contract-issues/issues/156https://github.com/paritytech/contract-issues/issues/156 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive-rpc: use generic RpcClient instead of ReconnectingRpcClient (#9701) This will enable more flexible usage of the revive RPC as a library. Needed so that we can reuse it with an in-memory RPC client for anvil-polkadot: https://github.com/paritytech/foundry-polkadot/issues/238 [pallet-revive] Migrate various getters to `System` pre-compile (#9517) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. Migrates: * `own_code_hash` * `caller_is_origin` * `caller_is_root` * `weight_left` * `minimum_balance` There are some minor other fixes in there (removing leftovers from deprecating chain extensions, stabilizing `block_hash` in overlooked crates, etc.). cc @athei @pgherveou --------- Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] fix salt endianness (#9771) fix <https://github.com/paritytech/polkadot-sdk/issues/9769> --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: add account_id and new_balance_with_dust runtime APIs (#9683) Needed for https://github.com/paritytech/foundry-polkadot/issues/240 revive-fixtures: Provide an env variable to disable compilation (#9791) Right now `pallet-revive-fixtures` is always trying to build the fixtures. It requires `solc` and other stuff for compilation. If you are not requiring the fixtures, because you for example only run `cargo check`, this pull request introduces `SKIP_PALLET_REVIVE_FIXTURES`. When the environment variable is set, the compilation of the fixtures is skipped. It will set the fixtures to `None` and they will panic at runtime. EIP-3607 added check to make sure a contract account cannot transfer funds as an EOA account (#9717) fixes https://github.com/paritytech/polkadot-sdk/issues/9570 --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Add set_storage/set_storage_var_key methods (#9759) ... to be used in polkadot foundry to make sure EVM state is in sync with pallet-revive state. Fixes: https://github.com/paritytech/foundry-polkadot/issues/275 --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> bugfix revm set_storage gas cost (#9823) Fixes bug in revm gasmetering where the initial charge was less than the adjusted charge. --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> pallet revive evm backend add tests for cross vm contract calls (#9768) fixes https://github.com/paritytech/polkadot-sdk/issues/9576 --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] update rpc metadata (#9853) Update eth-rpc metadata files the metadata should have been updated here https://github.com/paritytech/polkadot-sdk/pull/9759 where a new variant was added to an enum used by the runtime api --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: allow changing immutables (#9801) ... to be used in polkadot foundry to make sure EVM state is in sync with pallet-revive state. Fixes: https://github.com/paritytech/foundry-polkadot/issues/277 --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet_transaction_payment]: Share withdrawn tx fee credit with other pallets (#9780) Replaces https://github.com/paritytech/polkadot-sdk/pull/9590. The audit of #9590 showed that holding the txfee as held balance and especially playing around with `providers` causes a lot of troubles. This PR is a much lighter change. It keeps the original withdraw/deposit pattern. It simply stores the withdrawn `Credit` and allows other pallets to withdraw from it. It is also better in terms of performance since all tx signers share a single storage item (instead of a named hold per account). --------- Co-authored-by: joe petrowski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> `pallet-assets`: extract precompiles to a separate crate (#9796) closes #9434 Assets pallet includes `pallet-revive` precompiles and subsequently pull a lot of EVM related dependencies by default. This forces downstream users that only want `pallet-assets` functionality to pull unrelated dependencies and causes confusion (why do we have bunch of ethereum crates in the dependency tree of `pallet-assets`?). This extracts precompiles into its own crate --------- Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> pallet-revive: add custom addr recovery logic in `ReceiptExtractor` (#9878) `ReceiptExtractor` parses blocks and associated transactions in pallet-revive-eth-rpc and is useful for a range of Ethereum node RPCs. When the transactions are impersonated, they are based on a fake signature, which can't be used with the production eth address recovery logic. The recovery logic must be customised in cases where we impersonate transactions, so this PR adds a custom function on the `ReceiptExtractor` which can be used to customize address recovery. Developers using pallet-revive-eth-rpc as a lib should instantiate the `ReceiptExtractor` with the custom constructor if impersonation usecases must be supported. Relevant in context of https://github.com/paritytech/foundry-polkadot/issues/242, to implement anvil-polkadot impersonation. --------- Signed-off-by: Iulian Barbu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> replace forloop solc fixture type with test-case macro (#9841) For all tests of revm instructions replaced `for fixture_type` with test-case macro --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Move revive fixtures into release directory (#9670) https://github.com/paritytech/polkadot-sdk/pull/8980 did fix the fellowship CI but it triggers a rebuild of the fixtures every single time you run tests. Annoying during development. Instead of rebuilding, we just move the fixtures into the `target/release` directory where it should be cached by the fellowship CI. Verifying that it works here: https://github.com/polkadot-fellows/runtimes/pull/891 Why: Re-running when the output dir changes will make it re-run every time. Since every run changes the output dir. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Rework gas mapping (#9803) Replacement of https://github.com/paritytech/polkadot-sdk/pull/9740. Build on top of the new tx payment changes: https://github.com/paritytech/polkadot-sdk/pull/9780 Started a new PR because due to the rebase on top of the new tx payment changes this PR is substantially different and I don't want to invalidate the existing comments on https://github.com/paritytech/polkadot-sdk/pull/9740 which are not implemented, yet. This will change the weight to eth fee mapping according to [this model](https://shade-verse-e97.notion.site/Gas-Mapping-Challenges-Revised-26c8532a7ab580db8222c2ce3023669e). This only changes the estimate returned from the dry run and how the weights are derived from an ethereum transaction. It does not change how contracts observe the gas. This will be done in a follow up. More specifically: 1. The `GAS` opcode should return the new gas. As of right now it returns `ref_time.` 2. The `*_CALL` opcodes should use the passed `gas` parameter and decode it into `Weight`. As of right now the parameter is ignored. That said, even without those follow ups this PR should fix all `InvalidTransaction` errors we are observing. We should add a configurable divisor so that the gas_price is always at least some gwei. That makes it easier to input the values. --------- Signed-off-by: Alexander Theißen <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: PG Herveou <[email protected]> pallet-revive: Bump PolkaVM (#9928) Bumped `polkavm` to the latest version. No semantic changes in that update. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] revm refactor (#9818) Refactor REVM implementation in `pallet-revive` This PR removes technical debt and eliminates tight coupling to specific REVM versions, facilitating integration with other projects (e.g., Foundry). After this refactoring, we primarily depend only on REVM's [`Bytecode`](https://docs.rs/revm/latest/revm/bytecode/struct.Bytecode.html) struct. Most of REVM's generic type system and trait abstractions are unused or had to be ignored to prevent bugs. Interactions with the host in pallet-revive are handled through the `Ext` trait, making REVM's other abstractions unnecessary or potentially harmful. Unused REVM abstractions included: - **Host trait**: Unused in the pallet, we relied on the `DummyHost` default mocked implementation - **Gas field**: Unused, the pallet uses its own gas accounting system - **Methods from `InputsTr`**: Unused most methods had panic implementations since they couldn't be relied upon - **Spec**: Unused: We only maintain the latest fork for each runtime This refactor introduces: - **Interpreter**: Simplified struct containing only the fields actually needed - **Stack**: Simplified implementation using `sp_core::*` instead of `alloy_core::primitives::*` for better integration with the rest of the pallet - **Memory**: Simplified implementation providing only the methods actually needed - **Instructions**: - New instructions don't rely on macros and have a simplified signature: `Fn(&mut interpreter) -> ControlFlow<Halt>` - Removed function pointer table lookup for instructions in favor of match statements, - Unified gas charging: legacy u64 gas charging is now wrapped in `EVMGas` that implements `Token<T>` to provide the associated weight - Removed the `InterpreterAction`, this simplify the interpreter loop to: ```rust loop { let opcode = interpreter.bytecode.opcode(); interpreter.bytecode.relative_jump(1); exec_instruction(interpreter, opcode)?; } ``` - **Error handling**: Opcode that fail return Halt::Err(DispatchError), this remove the need from converting between InstructionResult and `ExecError` like we were previously doing and standardize errors generated on both backends --------- Co-authored-by: 0xRVE <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Allows setting evm balance for non-existing account (#9911) Allows calling set_evm_balance for a non-existing account on pallet-revive. It is needed by foundry to inject EVM accounts. pallet-revive: Fix dry run balance check logic (#9942) Fix fault balance check logic during dry-run: We should not enforce that the sender has enough balance for the fees in case no `gas` is supplied. cc @TorstenStueber --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Allow unlimited contract size in debug mode. (#9831) Fixes https://github.com/paritytech/contract-issues/issues/167 The main changes in this PR are: 1. Added an associated type DebugEnabled 2. Introduced a DebugSettings struct with a single boolean field 3. Added a StorageValue: pub(crate) type DebugSettingsOf<T: Config> = StorageValue<_, DebugSettings<T>, ValueQuery>; 4. Included debug_settings in the GenesisConfig 5. Added a unit test to verify that large EVM contracts can be instantiated. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> pallet-revive update basefee instruction (#9945) The base fee instruction now returns the proper base price instead of a hard coded value. --------- Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Migrate unstable storage host functions to `Storage` pre-compile (#9603) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. Introduces a new `Storage` pre-compile and migrates: * `clear_storage` * `take_storage` * `contains_storage` The new `Storage` pre-compile is introduced, as it requires implementing the `BuiltinPrecompile::call_with_info` function, which cannot be implemented together with `BuiltinPrecompile::call` (implemented by the `System` pre-compile). I've added the `sol_utils` as I (on admittedly quick glance) couldn't find a crate that supports those encodings (Solidity's `bytes`) without requiring an allocator. cc @athei @pgherveou --------- Co-authored-by: xermicus <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Return unified gas for `gas_left` syscalls and opcodes (#9968) In https://github.com/paritytech/polkadot-sdk/pull/9803 we introduced the new gas mapping. However, when contracts are querying the remaining gas we still returned the `ref_time`. This PR changes that. - Added a new `Stack::gas_left` function that calculates the remaining gas as eth gas that matches the gas passed in the transaction. It supports both the `eth_` and non `eth_` flavors of dispatchables. - Changed the PVM syscall `ref_time_left` to return the new unified gas. - Changes the EVM `GAS` opcode to return the new unified gas - When calculating the consumed storage we now take into account what was charged during the current frame - Removed `storage_deposit_limit` from `eth_*` dispatchables. It is always uncapped in this case and the overall limit is conveyed using the tx credit. Now that we can return the proper remaining gas that also includes the storage deposit we can change the EVM `call` instruction next to take the passed `gas` into account. Since the unified gas takes both the txfee and the deposit into account it will be able to limit both effectively. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> [pallet-revive] dev-node constant fee multiplier (#9939) This will let us have stable gas cost (as long as the state of the dev net does not change) In mainnet neither polkadot, nor EVM chains can guarantee stable gas since the state of the blockchain can change between two dry runs, but I would argue that we are better off if we have stable gas cost in testing environments as that is the standard on EVM devnet --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] fix exp overflow (#9991) Update arithmetic tests, and fix potential overflow --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> Wait for transaction receipt if instant seal is enabled (#9914) Fixes https://github.com/paritytech/contract-issues/issues/165 The main changes in this PR are: 1. Add a new API to revive-dev-node to check whether the node has instant seal enabled. 2. Add a new debug API to eth-rpc to check whether the node has instant seal enabled. (optional) 3. Query and cache the node’s instant seal status during eth-rpc initialization. 4. If instant seal is enabled, wait for the transaction receipt to be available --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Implement the consume_all_gas syscall (#9997) This PR implements a new API `consume_all_gas` which is required for 100% EVM `INVALID` opcode compatibility. Since ceding of all remaining gas is handled in the EVM interpreter, I decided to not add a return flag but make this a dedicated syscall for consistency instead. Didn't implement a benchmark since the first (and only) thing this does is consuming all remaining gas anyways. --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> `pallet-xcm`: extract precompiles to a separate crate (#9985) This PR extracts the XCM precompile from `pallet-xcm` into a new standalone crate `pallet-xcm-precompiles` to resolve an unwanted dependency issue. Previously, the XCM precompile was implemented directly in `pallet-xcm/src/precompiles.rs`, which required `pallet-xcm` to depend on `pallet-revive`, introducing it as a transitive dependency for all parachains using `pallet-xcm`. Closes #9955 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] fix subxt submit & add debug statments (#10016) - Fix subxt submit by default it's using `author_submitAndWatchExtrinsic` even though we just want to fire and forget - Add debug instructions to log the signer & nonce of new eth transactions when the node validate the transaction --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Lower the deposit costs for child trie items (#10027) Fixes https://github.com/paritytech/polkadot-sdk/issues/9246 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Fix incorrect `block.gaslimit` (#10026) Fixes https://github.com/paritytech/contract-issues/issues/112 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> frame/revive: ETH block storage (#9418) This PR constructs the Ethereum block in the following way: - events (logs) are captured via an `environmental!` variable to reduce reliance on pallet storage - A maximum of 512 events is allowed per transaction, with the size of an event capped to `self.ext.max_value_size()` - A memory-efficient intermediate block builder is deserialized and serialized back to the pallet storage - The intermediate block builder builds the transaction and event root hashes using low level RLP encoding primitives to achieve around 90% pallet storage optimization - For more details, see https://github.com/paritytech/polkadot-sdk/pull/9764 - A fixup is included for 7702 transaction rlp serialization/deserialization is added to ensure we can build the Ethereum block hash from live Ethereum blocks. - The maximum `CALL_PARAMS_MAX_SIZE` is increased to 512 to 244 to accommodate the transaction added to the Eth call This PR also includes benchmarking: - https://github.com/paritytech/polkadot-sdk/pull/9496 - pallet storage testing and capturing of events / transactions are added at `tests/block_hash.rs` - incremental block storage is tested in `evm/block_hash.rs`, which ensures RLP encoding / hash builder and identical hashes from live ethereum blocks - tested via RPC work - https://github.com/paritytech/polkadot-sdk/pull/9512 - https://github.com/paritytech/polkadot-sdk/pull/9616 - https://github.com/paritytech/polkadot-sdk/pull/9452 Builds upon https://github.com/paritytech/polkadot-sdk/pull/9413 Part of: https://github.com/paritytech/contract-issues/issues/139 --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Lukasz Rubaszewski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] improve revive genesis config (#9988) - Update test to make sure contracts created at genesis are callable - make sure that contracts are brought to existence by minting e.d first --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> added baltathar, charleth, dorothy, and ethan to eth-rpc and revive-d… (#10041) adds more funded accounts to eth-rpc and dev-node --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: PG Herveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Increase event sizes (#10047) Fixes https://github.com/paritytech/contract-issues/issues/140 This increases the maximum event payload size from 416 bytes to 64k. Since https://github.com/paritytech/polkadot-sdk/pull/9418 we charge some additional weight per byte of event payload. This makes it possible to raise the limit while staying within our memory envelope. This artificial weight will add 18us of weight to a maximum sized event. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: when a dry run simulates contract deployment, return the execution result data. (#10032) Fixes https://github.com/paritytech/contract-issues/issues/177 Expose the deployed contract's runtime bytecode in eth_call responses during simulated contract creation. The test from issue https://github.com/paritytech/contract-issues/issues/177 sends an eth_call request without a destination address, while providing contract bytecode in the data field. This simulates a contract creation transaction. The test expects the RPC response to return the result of executing the init code, which is the deployed contract's runtime bytecode. While this result is not returned in actual deployments, it is expected in dry-run simulations. --------- Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> eth-rpc add trace logs (#10065) Add extra tracing logs for estimate_gas and send_raw_transaction --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> pallet_revive: Raise the MaxEthExtrinsicWeight (#10089) Fixes https://github.com/paritytech/contract-issues/issues/194 Factory extrinsics do need more weight. It is fine to raise them to almost the full max extrinsic weight since this is still lower than the block weight. Also improving the error reporting during the dry run in case an extrinsic hits this limit. No more `OutOfGas` but a more descriptive error of how much it is overweight. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> precompiles: Enforce state mutability (#10080) `pallet-assets-precompile`, `pallet-xcm-precompiles` and revive builtin precompile implementations currently violate [Solidity state mutability](https://docs.soliditylang.org/en/latest/grammar.html#syntax-rule-SolidityParser.stateMutability), potentially introducing a new attack vector. This PR implements corresponding checks at the function dispatch. Could be enforced in `pallet-revive`, however: 1. Adding something like a `const MUTATES: bool` to the `Precompile` trait won't help because whether the call is mutating or not depends on the [Solidity function selector.](https://docs.soliditylang.org/en/latest/abi-spec.html#function-selector). 2. Alloy, which we are using to parse the interface definitions prior to calling precompile implementations, doesn't provide a mapping from function selector to its mutability [modifier](https://docs.soliditylang.org/en/latest/cheatsheet.html#modifiers). --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive: fix alloy-consensus dependency (#10090) Needed in order to update foundry-polkadot to the latest master: https://github.com/paritytech/foundry-polkadot/pull/352 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Enforce single-state txpool for revive-dev-node (#10106) Use single-state txpool for dev-node when instant-seal is selected see https://github.com/paritytech/polkadot-sdk/issues/10104 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: Add ExportChainSpec command to revive-dev-node (#10020) Add the `export-chain-spec` command to the revive-dev-node. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive/rpc: Adjust the RPC to utilize the ETH block from storage (#9512) This PR adjusts the RPC layer of pallet-revive to use Ethereum blocks from storage via runtime APIs and establishes proper Ethereum ↔ Substrate block hash mappings. - **New database table**: `eth_to_substrate_blocks` maps Ethereum block hashes to Substrate block hashes and block numbers - **Bidirectional lookups**: Support for both ETH→Substrate and Substrate→ETH hash resolution with backward compatibility fallbacks - **Block pruning**: Updated to remove stale mappings alongside transaction and log data - **Genesis block initialization**: Added `block_storage::on_finalize_build_eth_block()` call in `BuildGenesisConfig` to properly build and store block 0 - Added comprehensive tests for block hash mapping operations - Ethereum vs Substrate hash resolution tests - Fork handling in block pruning tests - Log filtering with Ethereum block hash tests - TransactionInfo deserialization from JSON Value tests The implementation uses a **runtime API approach** where the RPC layer queries the runtime for Ethereum blocks and hashes, which are then mapped to Substrate block hashes in the local SQLite database. This provides: 1. **Backward compatibility**: Falls back to treating hashes as Substrate hashes when no mapping exists 2. **Efficient lookups**: Database indices on both Ethereum and Substrate block hashes 3. **Automatic cleanup**: Block mappings are pruned alongside transaction and log data 4. **Genesis block handling**: Block 0 is built during genesis using the block storage infrastructure Builds upon: https://github.com/paritytech/polkadot-sdk/pull/9418 Part of: https://github.com/paritytech/contract-issues/issues/139 --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Lukasz Rubaszewski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> revive-dev-node enforce --dev (#10109) enforce --dev and default --log in revive-dev-node --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Change bahaviour of contract termination in accordance with EIP-6780 (#9699) fixes https://github.com/paritytech/polkadot-sdk/issues/9621 Behavior of `terminate` is changed in accordance with EIP-6780 (and EVM in general): - `terminate` only deletes the code from storage if it is called in the same transaction the contract was created. - `terminate` does not destroy the contract instantly. The contract is registered for destruction, which happens at the end of the transaction. --------- Signed-off-by: xermicus <[email protected]> Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Only enforce EIP-3607 for dispatchables (#10100) The EIP states that contract addresses cannot be the origin of a transaction. However, we are enforcing this rule for all contract execution (i.e all public function on the pallet). This is a problem for code that uses `pallet_revive` and explicitly wants to allow this. This PR now only enforces this check for dispatchables so that all the `bare_*` functions are unaffected. As a drive-by a regrouped the functions on the `Pallet` so that the public functions are no longer interleaved with the private ones. This got mixed up when we resolved some merge conflicts. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: add interface to implement mocks and pranks (#9909) Needed for: https://github.com/paritytech/foundry-polkadot/pull/334. In foundry-polkadot we need the ability to be able to manipulate the `msg.sender` and the `tx.origin` that a solidity contract sees cheatcode documentation, plus the ability to mock calls and functions. Currently all create/call methods use the `bare_instantiate`/`bare_call` to run things in pallet-revive, the caller then normally gets set automatically, based on what is the call stack, but for `forge test` we need to be able to manipulate, so that we can set it to custom values. Additionally, for delegate_call, bare_call is used, so there is no way to specify we are dealing with a delegate call, so the call is not working correcly. For both this paths, we need a way to inject this information into the execution environment, hence I added an optional hooks interface that we implement from foundry cheatcodes for prank and mock functionality. - [x] Add tests to make sure the hooks functionality does not regress. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [revive] Receipts should include failed tx (#10120) The current implementation incorrectly accumulates receipts in storage to compute the `receipts_root`. However, when an extrinsic fails, all storage changes are reverted causing the receipts to be lost. This PR updates the handling of Ethereum transactions so that they always succeed. The transaction logic is now wrapped in a top-level storage transaction that rolls back all state changes on failure while still producing a valid receipt. A new event `EthExtrinsicRevert` is emitted when an eth transaction reverts. eth-rpc uses this event to set the correct receipt status. This event also serves as a replacement for ExtrinsicFailed to make debugging failed Ethereum transactions easier in tools like Polkadot.js. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> anvil / eth-rpc - fix subscription race (#10146) fix https://github.com/paritytech/polkadot-sdk/issues/10139#issuecomment-3456077366 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alin Dima <[email protected]> pallet_revive: Improve logging (#10157) Just added some more information to the log output during dry_run and transaction creation. This was helpful when debugging if the correct gas was passed in by the client. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: make contract reverted error message more verbose (#10168) Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive-eth-rpc: derive Encode/Decode for subxt-generated types (#10169) Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive_dev_node: Always increment the timestamp by at least one second (#10160) Fixes https://github.com/paritytech/contract-issues/issues/191 cc @albertov19 The instant seal introduces a race condition. Blocks can be build faster than the timestamp resolution of Ethereum. Eth timestamps are only one second granularity. If we build blocks faster it can happen that the timestamp delta between them is zero. This is not allowed. We have to make sure that in instant seal two blocks don't return the same timestamp. This PR does that by always incrementing the timestamp by at least one second. Note that this is a dev-node only change. Production chains won't have this problem as long as the block time is larger than 1 second. Yes, it will produce timestamps in the future. But this seems to be the lesser evil for this dev node. Time is subjective. But the rule to not return duplicate timestamps is dependent on. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Add upload evm code function (#10129) EVM Runtime Code Upload for Foundry Integration This feature enables direct upload of EVM runtime bytecode (deployed contract code without constructor) to the pallet-revive, supporting Foundry's code migration functionality between REVM and pallet-revive execution environments. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive-eth-rpc: fix blocks pruning (#10175) We need to call prune_blocks before the insertion process. Otherwise, if we get a fork, we won't be able to insert it into the DB because it already exists there. In reality, we want the other fork to be pruned instead. Moreover, once we do get a fork we need to prune all the other subsequent blocks of the old fork Return the correct block difficulty from the eth-rpc (#10186) This PR fixes an issue in the eth-rpc/pallet-revive that was causing it to return an incorrect value for the block's difficulty or prevrandao. In the VM/interpreter implementation we use a constant for the block difficulty. However, the eth block construction side was unaware of this constant being used and therefore the RPC was always returning a block difficulty of zero. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive: Fix dust & child contract calls (#10192) When transferring to self we should just return early as it's a noop. Not doing so cause bug in `transfer_with_dust` as we do ``` from.dust -= from.dust to.dust += to.dust ``` We end up with a value of dust - planck (that we burnt from to create dust amount) on the account fix https://github.com/paritytech/contract-issues/issues/211 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive fix reported gas used (#10148) Fix `gas_used` calculation introduced in #9418 to use the actual gas instead of just `ref_time`. With these changes we now guarantee that `tx_cost = effective_gas_price * gas`. Note that since we compute gas as `fee / gas_price`, this can lead to rounding errors when the chain uses `SlowAdjustingFeeUpdate` (i.e. the fee is not a multiple of the gas price). The changes in this PR ensure the fee still matches by burning the rounding remainder. This PR also fixes how the actual fee is computed and introduces a new `compute_actual_fee` in `Config::FeeInfo`. The previous fee calculation was skipping the `extension_weight` in the fee calculation. The updated tests ensure that the tx cost reported in the receipt matches the fees deducted from the user account: https://github.com/paritytech/evm-test-suite/blob/460b2c9aa3a3019d3508bb5a34a2498ea86035ff/src/gas.test.ts?plain=1#L31-L61 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [v2] pallet-revive: support uploading EVM bytecode via upload_code extrinsic. (#10193) Fixes https://github.com/paritytech/contract-issues/issues/182 Add support for EVM bytecode to the upload_code extrinsic. Tests in issue https://github.com/paritytech/contract-issues/issues/182 send hardhat_setCode, which uses revive's upload_code API; this change makes that flow accept and store the EVM bytecode using upload_code extrinsic. This PR deprecates PR: https://github.com/paritytech/polkadot-sdk/pull/10095 Comment explaining test configuration requirements: https://github.com/paritytech/polkadot-sdk/pull/10095#issuecomment-3456450460 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Notify when there is a new best block (#10220) Modify the tx_notifier to send the block hash to the subscribers instead of all transactions hashes. Modify the send_raw_transaction to look for the transaction hash in the transactions field of the evm block. We need this changes in anvil-polkadot: * https://github.com/paritytech/foundry-polkadot/pull/389 * to be able to implement some RPCs like : send_transaction_sync and the filters logic --------- Signed-off-by: Alexandru Cihodaru <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Only fund new accounts with ED (#10233) fixes https://github.com/paritytech/contract-issues/issues/179 In case an account is created by transferring funds to it, and after that a contract is deployed to that account, it will receive the existential deposit twice. This can be done using create2. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> pallet_revive: Add dry-run timestamp override support (#10191) This PR updates `pallet-revive` to **support overriding the block timestamp during dry-run calls**. The dry-run execution now uses the following configuration for `eth_estimateGas` and `eth_call` when the block tag is `pending`: ```text block.timestamp = max(rpc_timestamp, latest_block.timestamp + 1) block.number = latest_block.number + 1 ``` Fixes [#153](https://github.com/paritytech/contract-issues/issues/153), [#205](https://github.com/paritytech/contract-issues/issues/205) Downstream projects using the `ReviveApi::eth_transact` runtime API should either provide a `timestamp` or pass `None`. - Added dry run timestamp to `ExecConfig`. - Added a new parameter to `ReviveApi::eth_transact` for passing the current RPC timestamp. - `eth_estimateGas` and `eth_call` with `pending` block tag will dry run the transaction with the block timestamp set to `max(rpc_timestamp, latest_block.timestamp + 1)` and block number set to `latest_block.number + 1`. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> pallet_revive: use real storage when building the eth genesis block (#10225) When building the eth genesis block, query the real storage items that store the timestamp and block number instead of using the zeroed items. If the chainspec does not customise these, they will remain zeroed. However, anvil does customise these if requested by the user. Needed in order to merge https://github.com/paritytech/foundry-polkadot/pull/391 Remove outdated comment on Tracer Type (#10246) Prestate tracer type is now supported [pallet-revive] fix prestate tracer current address (#10239) Fix prestate tracer not reporting the contract addresses properly. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Add eth_substrate_call extrinsic (#10159) Fixes https://github.com/paritytech/contract-issues/issues/180 This PR introduces `eth_substrate_call`, a new extrinsic in pallet-revive that enables Substrate runtime calls from Ethereum transactions. This allows tools like Hardhat to invoke Substrate extrinsics (e.g., `upload_code`) via the Ethereum RPC. This implements a new approach for dispatching Substrate extrinsics through the magic RUNTIME_PALLETS_ADDR address, which fixes two shortcomings of the previous implementation: 1. Incorrect origin verification - The origin is now correctly verified as EthTransaction. 2. Missing Ethereum transaction receipts - Receipts are now properly generated for all Ethereum transactions. Includes: - New eth-rpc integration test validating end-to-end functionality - Benchmark measuring the extrinsic overhead - Unit tests --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] use run_instant_seal_and_finalize in dev-node (#10252) fix finalized block production with instant-seal by using `run_instant_seal_and_finalize` instead of `run_instant_seal` --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> make contracts create consider is_unlimited_contract_size_allowed (#10224) While running foundry tests from https://github.com/balancer/balancer-v3-monorepo/tree/main/pkg/pool-weighted, found we hit this limit. Foundry environment is configured with unlimited code size, so we need to make sure pallet-revive respects those configurations everywhere. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: add secp256r1 (0x100) precompile (#10267) Add secp256r1 precompile (0x100) --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> fix NextFeeMultiplier update before Revive::on_finalize (#10271) Fix https://github.com/paritytech/polkadot-sdk/issues/10177 Store `base_fee_per_gas` and `block_gas_limit` in the EthBlockBuilderIR, since these values are derived from the NextFeeMultiplier and we can't read it from Revive::on_finalize since this runs (in most Runtime) after TransactionPayment::on_finalize where the value is updated for the next block. also use `BlockNumberFor<T>` for the BlockHash map instead of U256. No release have been performed yet since the introduction of that change, so that should not require any migration. ``` #[pallet::storage] pub(crate) type BlockHash<T: Config> = StorageMap<_, Identity, BlockNumberFor<T>, H256, ValueQuery>; ``` --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Fix EVM tests to pass `data` as part of `code` (#10214) The test code was passing the constructor argument as `data` on EVM. But it should be passed as part of the `code`. This is different from PVM where those are separate. Failing to do so makes those opcodes return the wrong values when `data` is passed to the constructor: ``` CODESIZE CODECOPY CALLDATASIZE CALLDATACOPY CALLDATALOAD ``` Further changes: - I also added some checks to fail instantiation if `data` is non empty when uploading new EVM bytecode. - Return error when trying to construct EVM contract from code hash as this does not make sense since no initcode is stored on-chain. --------- Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> fix genesis eth block builder number again (#10297) Redoes https://github.com/paritytech/polkadot-sdk/pull/10225 for the genesis block number. It was broken again by https://github.com/paritytech/polkadot-sdk/pull/10271 pallet-revive: fix eth tx decoding (#10290) Fix Ethereum transaction decoding --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] improve eth-rpc tests reliability (#10281) Improve eth-rpc tests reliability by replacing substrate-node with revive-dev-node, fixing nonce query in runtime_api_dry_run_addr, and running all tests in a single tokio test function --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: add hook for mocking origin (#10272) While runing some balancer v3 tests: https://github.com/paritytech/foundry-polkadot/issues/287#issuecomment-3502668161, discovered we need a way to mock up the origin as well, so add hook. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive fix prestate diff tracing (#10303) Fix prestate diff-tracing, add missing storage diff for created contracts --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> fix P256Verify precompile address (#10336) fix https://github.com/paritytech/contract-issues/issues/220 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] add tracing for selfdestruct (#10244) Add tracing for selfdestruct --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> [pallet-revive] update evm create benchmark (#10366) Add a benchmark for the EVM CREATE instruction. We are currently reusing the `seal_instantiate` benchmark from PVM instantiation, which is incorrect because instantiating an EVM contract takes different arguments and follows a different code path than creating a PVM contract. This benchmark performs the following steps: - Generates init bytecode of size i, optionally including a balance with dust. - Executes the init code that triggers a single benchmark opcode returning a runtime code of the maximum allowed size (qrevm::primitives::eip170::MAX_CODE_SIZE`). Also fix the order of the weight function arguments, they were wrong causing the weight to be much bigger that what it should be --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive benchmark opcode fix (#10380) Benchmark opcode was using the invalid opcode instead of defining a new one. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Enable force debug in revive dev node (#10383) This change ensures that all types that implement `RuntimeDebug` are fully displayed in log output of the revive dev node, instead of just showing `<wasm:stripped>`. Unfortunately, the trait `RuntimeDebugNoBound`, that we also use frequently in pallet-revive, is not affected and will still output `<wasm:stripped>` (it does not check for the `force-debug` feature flag, instead it only fully outputs values when either one of the features `std` or `try_runtime` is enabled – this is something we implement as a general change). --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> pallet-revive: add DebugSetting for bypassing eip-3607 (#10387) Only works for contract accounts, not precompiles. This is needed so that test nodes like anvil can send transactions from contract accounts, a widely-used feature in tests Needed for https://github.com/paritytech/foundry-polkadot/pull/423 Fix termination (#10302) This PR fixes up termination by changing the behavior to: - The free balance (without ed) should be send away right away to the beneficiary and not be delayed like the contract deletion. - The ed and storage deposit will be send away only when terminating but to the origin (delayed). - The scheduling of the terminate needs to be reverted if the scheduling frame reverts. - `SELFDESTRUCT` should be allowed inside the constructor. The issuing contract will exist as account without code for the remainder of the transaction. - The `terminate` pre-compile should revert if delegate called or its caller was delegate called. This is just my opinion but if we are changing semantics we can might as well add some security. We are increasing the attack surface by allowing the destruction of any contract (not only created in the current tx). - Storage refunds should no longer use `BestEffort`. This is necessary to fail refunds in case some other locks (due to participation in gov for example) prevent sending them away. This is in anticipation of new pre-compiles. - Moved pre-compile interfaces to sol files and made them available to fixtures - Added some Solidity written tests to exercise error cases Those should all be written in Solidity to test both backends at the same time. No more Rust fixtures. @0xRVE can you take those over as I am ooo. - Test that checks that scheduled deletions do properly roll back if a frame fails - Test that value send to a contract after scheduling for deletion is send to the beneficiary (different from Eth where this balance is lost) - Add tests that use `SELFDESTRUCT` to `Terminate.sol`. Need https://github.com/paritytech/devops/issues/4508 but can be tested locally with newest `resolc`. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Alin Dima <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Marian Radu <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: girazoki <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: Lukasz Rubaszewski <[email protected]> Co-authored-by: Paolo La Camera <[email protected]> Co-authored-by: Andrei Eres <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Agustín Rodriguez <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Thang X. Vu <[email protected]> Co-authored-by: DenzelPenzel <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Alexander Cyon <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]> Co-authored-by: Alexander Samusev <[email protected]> Co-authored-by: Omar <[email protected]> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: BDevParity <[email protected]> [pallet-revive] evm remove contract storage slot when writing all zero bytes (#10309) fixes https://github.com/paritytech/contract-issues/issues/216 When an EVM contract writes an all-zero 32-byte storage word, remove the corresponding child‑trie entry so storage-deposit accounting sees bytes/items removed and a refund can be applied. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Fix assertion (#10427) According to assertion message and comment("at least"), `T::MaxDebugBufferLen::get() > MIN_DEBUG_BUF_SIZE` should be changed into `T::MaxDebugBufferLen::get() >= MIN_DEBUG_BUF_SIZE` ```rust // Debug buffer should at least be large enough to accommodate a simple error message const MIN_DEBUG_BUF_SIZE: u32 = 256; assert!( T::MaxDebugBufferLen::get() > MIN_DEBUG_BUF_SIZE, "Debug buffer should have minimum size of {} (current setting is {})", MIN_DEBUG_BUF_SIZE, T::MaxDebugBufferLen::get(), ); ``` For this assertion, the assertion message indicates assertion will fail when max_storage_size > storage_size_limit, which means it requires max_storage_size <= storage_size_limit, but assertion predicate is `max_storage_size < storage_size_limit`. Based on the code semantics, assertion predicate should be changed into `max_storage_size <= storage_size_limit`. ```ru…
TorstenStueber
pushed a commit
that referenced
this pull request
Dec 5, 2025
This is a fix for the fact that `exec::Key` is exposed from within `pallet_revive::tracing::Tracing` interface, but not from the crate itself making custom tracers effectively unimplementable outside said crate. In my case it's useful for implementing custom tracers for integration with `foundry` Requires no downstream changes This is a fix for the fact that `exec::Key` is exposed from within `pallet_revive::tracing::Tracing` interface, but not from the crate itself making custom tracers effectively unimplementable outside said crate. see here for one of the methods: [`exec::Key` exposed to the implementor, despite not being exported by the `crate`](https://github.com/paritytech/polkadot-sdk/blob/pkhry/expose_key_pallet_revive/substrate/frame/revive/src/tracing.rs#L68) --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Move `to_account_id` host function to `System` pre-compile (#9455) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. cc @athei @pgherveou --------- Co-authored-by: xermicus <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Move `blake2_128` host function to `System` pre-compile (#9454) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. I'm splitting some of the host function migrations into separate PRs, as there are sometimes refactorings involved and this should make reviewing easier. cc @athei @pgherveou [revive] move existing files to prepare evm backend introduction (#9501) - Move exisiting files in pallet-revive to accomodate the upcoming EVM backend - Add solc/resolc compilation feature for fixtures - Add `fn is_pvm` to later distinguish between pvm / evm bytecode --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> align eth-rpc response with geth (#9177) - Update some serde encoding for eth-rpc to match serialization behavior of Geth - Add support for serializing / deserializing EIP7702 tx types - Disable transaction type we don't support yet in try_ino_unchecked_extrinsics --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [revive] revm backend (#9285) Initial EVM support via the REVM crate to create a dual-VM system that can execute both PolkaVM and EVM - Added `AllowEVMBytecode: Get<bool>` to the config to enable/disable EVM call and instantiation - CodeInfo has been updated to add the type of bytecode (EVM / PVM). `migration/v2.rs` takes care of migrating existing storages - The CodeUploadDeposit is not held by a pallet account instead of being held on the uploader, It's automatically refunded when the refcount drops to 0 and the code is removed. - The basic flow of uploading an EVM contract and running it should work - instructions are copied and adapted from REVM they should be ignored in this PR and reviewed in follow-up PR (**reviewers** please ignore `substrate/frame/revive/src/vm/evm/instructions/*` for now) A basic instruction looks like this: ```rust pub fn coinbase<'ext, E: Ext>(context: Context<'_, 'ext, E>) { gas_legacy!(context.interpreter, revm_gas::BASE); push!(context.interpreter, context.host.beneficiary().into_word().into()); } ``` All instructions have been copied from `REVM` and updated with generic types for pallet-revive. Two main changes are required: Replace REVM gas calls with existing benchmarks where available: ```diff - gas_legacy!(context.interpreter, revm_gas::BASE); + gas!(context.interpreter, RuntimeCosts::BlockAuthor); ``` Replace `context.host` calls with `context.extend` (set to `&mut Ext`): ```diff - push!(context.interpreter, context.host.beneficiary().into_word().into()); + let coinbase: Address = context.interpreter.extend.block_author().unwrap_or_default().0.into(); + push!(context.interpreter, coinbase.into_word().into()); ``` - For cases without existing benchmarks (e.g arithmetic, bitwise) , we will keep `gas_legacy!` - The u64 gas value are multiplied by a base cost benchmarked by `evm_opcode` - ### Important Rules - All calls to `context.host` should be removed (initialized to default values) - All calls to `context.interpreter.gas` should be removed (except `gas.memory` handled by `resize_memory!` macro) - See `block_number` implementation as a reference example The following instructions in src/vm/evm/instructions/** need to be updated We probably don't need to touch these implementations here, they use the gas_legacy! macro to charge a low gas value that will be scaled with our gas_to_weight benchmark. The only thing needed here are tests that exercise these instructions <details> - [ ] **add** - [ ] **mul** - [ ] **sub** - [ ] **div** - [ ] **sdiv** - [ ] **rem** - [ ] **smod** - [ ] **addmod** - [ ] **mulmod** - [ ] **exp** - [ ] **signextend** - [ ] **lt** - [ ] **gt** - [ ] **slt** - [ ] **sgt** - [ ] **eq** - [ ] **iszero** - [ ] **bitand** - [ ] **bitor** - [ ] **bitxor** - [ ] **not** - [ ] **byte** - [ ] **shl** - [ ] **shr** - [ ] **sar** - [ ] **clz** - [ ] **jump** - [ ] **jumpi** - [ ] **jumpdest** - [ ] **pc** - [ ] **stop** - [ ] **ret** - [ ] **revert** - [ ] **invalid** - [ ] **mload** - [ ] **mstore** - [ ] **mstore8** - [ ] **msize** - [ ] **mcopy** - [ ] **pop** - [ ] **push0** - [ ] **push** - [ ] **dup** - [ ] **swap** </details> These instructions should be updated from using gas_legacy! to gas! with the appropriate RuntimeCost, the returned value need to be pulled from our `&mut Ext` ctx.interpreter.extend instead of the host or input context value <details> - [x] **block_number** - [ ] **coinbase** - [ ] **timestamp** - [ ] **difficulty** - [ ] **gaslimit** - [ ] **chainid** - [ ] **basefee** - [ ] **blob_basefee** - [ ] **balance** - [ ] **extcodesize** - [ ] **extcodecopy** - [ ] **extcodehash** - [ ] **blockhash** - [ ] **sload** - [ ] **sstore** - [ ] **tload** - [ ] **tstore** - [ ] **log** - [ ] **selfdestruct** - [ ] **selfbalance** - [ ] **keccak256** - [ ] **address** - [ ] **caller** - [ ] **callvalue** - [ ] **calldataload** - [ ] **calldatasize** - [ ] **calldatacopy** - [ ] **codesize** - [ ] **codecopy** - [ ] **returndatasize** - [ ] **returndatacopy** - [ ] **gas** - [ ] **origin** - [ ] **gasprice** - [ ] **blob_hash** </details> These instructions should be updated,, that's where I expect the most code change in the instruction implementation. See how it's done in vm/pvm module, the final result should look pretty similar to what we are doing there with the addition of custom gas_limit calculation that works with our gas model. see also example code here https://github.com/paritytech/revm_example <details> - [ ] **create** - [ ] **create** - [ ] **call** - [ ] **call_code** - [ ] **delegate_call** - [ ] **static_call** </details> --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> [pallet-revive] Expose `AccountInfo` and `ContractInfo` in the public interface (#9606) Part of https://github.com/paritytech/polkadot-sdk/issues/9553 See https://github.com/paritytech/foundry-polkadot/issues/276 Exposes revive types to use in foundry-polkadot project. Should not affect downstream projects. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] EVM backend: Implement tx, block system and call stack instructions (#9414) This PR is part of the road to EVM. - Implement call and create frames, allowing to call and instantiate other contracts. - Implement support for tx info, block info, system and contract opcodes. - The `InstructionResult` <-> `ExecError` conversion functions. --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> [pallet-revive] Update genesis config (#9557) Update pallet-revive Genesis config Make it possible to define accounts (contracts or EOA) that we want to setup at Genesis --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Signed-off-by: xermicus <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> [pallet-revive] Add `Pallet::set_evm_balance` (#9617) Part of https://github.com/paritytech/polkadot-sdk/issues/9553 See https://github.com/paritytech/foundry-polkadot/issues/273 Adds a balance setter in EVM. Should not affect downstream projects. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> [pallet-revive] EVM backend: implement various missing opcodes (#9385) * [x] system (other PR, no tests) * [x] block_info (other PR) * [x] contract (other PR) * [x] tx_info (other PR) * [x] arithmetic * [x] bitwise * [x] i256 (these are not opcodes so will not test) * [x] host (except `log()`) * [x] memory * [x] control (except `pc()`) * [x] macros (these are not opcodes so will not test) * [x] utility (these are not opcodes so will not test) * [x] stack --------- Signed-off-by: xermicus <[email protected]> Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Alexander Cyon <[email protected]> Co-authored-by: Alexander Cyon <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Dmitry Sinyavin <[email protected]> Co-authored-by: s0me0ne-unkn0wn <[email protected]> Co-authored-by: Serban Iorga <[email protected]> [pallet-revive] fix GAS_PRICE (#9679) Currently submitting a transactio to the dev-node or kitchensink will trigger an error when you try to submit a transaction trhough cast (or anything using alloy) as the block gas limit on these runtime is greater than u64::max. This bump the GAS_PRICE to fix this issue, this will eventually be superseeded by the new gas model --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> [pallet-revive] Properly convert `Ext::minimum_balance` value to `U256` (#9705) The value is just cast to `U256` here, without applying the actual conversion factor (`NativeToEthRatio`). There are some tests that apply the same easy conversion via `Into`, without applying the conversion factor. Those tests still succeed, but you might want to go through those usages to not confuse people reading the code. @athei @pgherveou added trace logging in EVM interpreter loop (#9561) Added trace logging for each instruction to evm::run function. solves https://github.com/paritytech/polkadot-sdk/issues/9575 --------- Signed-off-by: xermicus <[email protected]> Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> [pallet-revive] fix CodeInfo owner (#9744) Fix CodeInfo owner, it should always be set to the origin of the transaction --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] fix tracing collect (#9736) Tracing fixes: - collect_trace take `self` instead of `&mut self`, to avoid reusing the tracer state when tracing multiple transactions in a block. - Fix issues related to call traces and the onlyTopCall config option Fix https://github.com/paritytech/contract-issues/issues/156https://github.com/paritytech/contract-issues/issues/156 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive-rpc: use generic RpcClient instead of ReconnectingRpcClient (#9701) This will enable more flexible usage of the revive RPC as a library. Needed so that we can reuse it with an in-memory RPC client for anvil-polkadot: https://github.com/paritytech/foundry-polkadot/issues/238 [pallet-revive] Migrate various getters to `System` pre-compile (#9517) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. Migrates: * `own_code_hash` * `caller_is_origin` * `caller_is_root` * `weight_left` * `minimum_balance` There are some minor other fixes in there (removing leftovers from deprecating chain extensions, stabilizing `block_hash` in overlooked crates, etc.). cc @athei @pgherveou --------- Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] fix salt endianness (#9771) fix <https://github.com/paritytech/polkadot-sdk/issues/9769> --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: add account_id and new_balance_with_dust runtime APIs (#9683) Needed for https://github.com/paritytech/foundry-polkadot/issues/240 revive-fixtures: Provide an env variable to disable compilation (#9791) Right now `pallet-revive-fixtures` is always trying to build the fixtures. It requires `solc` and other stuff for compilation. If you are not requiring the fixtures, because you for example only run `cargo check`, this pull request introduces `SKIP_PALLET_REVIVE_FIXTURES`. When the environment variable is set, the compilation of the fixtures is skipped. It will set the fixtures to `None` and they will panic at runtime. EIP-3607 added check to make sure a contract account cannot transfer funds as an EOA account (#9717) fixes https://github.com/paritytech/polkadot-sdk/issues/9570 --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Add set_storage/set_storage_var_key methods (#9759) ... to be used in polkadot foundry to make sure EVM state is in sync with pallet-revive state. Fixes: https://github.com/paritytech/foundry-polkadot/issues/275 --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> bugfix revm set_storage gas cost (#9823) Fixes bug in revm gasmetering where the initial charge was less than the adjusted charge. --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> pallet revive evm backend add tests for cross vm contract calls (#9768) fixes https://github.com/paritytech/polkadot-sdk/issues/9576 --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] update rpc metadata (#9853) Update eth-rpc metadata files the metadata should have been updated here https://github.com/paritytech/polkadot-sdk/pull/9759 where a new variant was added to an enum used by the runtime api --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: allow changing immutables (#9801) ... to be used in polkadot foundry to make sure EVM state is in sync with pallet-revive state. Fixes: https://github.com/paritytech/foundry-polkadot/issues/277 --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet_transaction_payment]: Share withdrawn tx fee credit with other pallets (#9780) Replaces https://github.com/paritytech/polkadot-sdk/pull/9590. The audit of #9590 showed that holding the txfee as held balance and especially playing around with `providers` causes a lot of troubles. This PR is a much lighter change. It keeps the original withdraw/deposit pattern. It simply stores the withdrawn `Credit` and allows other pallets to withdraw from it. It is also better in terms of performance since all tx signers share a single storage item (instead of a named hold per account). --------- Co-authored-by: joe petrowski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Bastian Köcher <[email protected]> `pallet-assets`: extract precompiles to a separate crate (#9796) closes #9434 Assets pallet includes `pallet-revive` precompiles and subsequently pull a lot of EVM related dependencies by default. This forces downstream users that only want `pallet-assets` functionality to pull unrelated dependencies and causes confusion (why do we have bunch of ethereum crates in the dependency tree of `pallet-assets`?). This extracts precompiles into its own crate --------- Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> pallet-revive: add custom addr recovery logic in `ReceiptExtractor` (#9878) `ReceiptExtractor` parses blocks and associated transactions in pallet-revive-eth-rpc and is useful for a range of Ethereum node RPCs. When the transactions are impersonated, they are based on a fake signature, which can't be used with the production eth address recovery logic. The recovery logic must be customised in cases where we impersonate transactions, so this PR adds a custom function on the `ReceiptExtractor` which can be used to customize address recovery. Developers using pallet-revive-eth-rpc as a lib should instantiate the `ReceiptExtractor` with the custom constructor if impersonation usecases must be supported. Relevant in context of https://github.com/paritytech/foundry-polkadot/issues/242, to implement anvil-polkadot impersonation. --------- Signed-off-by: Iulian Barbu <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> replace forloop solc fixture type with test-case macro (#9841) For all tests of revm instructions replaced `for fixture_type` with test-case macro --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Move revive fixtures into release directory (#9670) https://github.com/paritytech/polkadot-sdk/pull/8980 did fix the fellowship CI but it triggers a rebuild of the fixtures every single time you run tests. Annoying during development. Instead of rebuilding, we just move the fixtures into the `target/release` directory where it should be cached by the fellowship CI. Verifying that it works here: https://github.com/polkadot-fellows/runtimes/pull/891 Why: Re-running when the output dir changes will make it re-run every time. Since every run changes the output dir. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Rework gas mapping (#9803) Replacement of https://github.com/paritytech/polkadot-sdk/pull/9740. Build on top of the new tx payment changes: https://github.com/paritytech/polkadot-sdk/pull/9780 Started a new PR because due to the rebase on top of the new tx payment changes this PR is substantially different and I don't want to invalidate the existing comments on https://github.com/paritytech/polkadot-sdk/pull/9740 which are not implemented, yet. This will change the weight to eth fee mapping according to [this model](https://shade-verse-e97.notion.site/Gas-Mapping-Challenges-Revised-26c8532a7ab580db8222c2ce3023669e). This only changes the estimate returned from the dry run and how the weights are derived from an ethereum transaction. It does not change how contracts observe the gas. This will be done in a follow up. More specifically: 1. The `GAS` opcode should return the new gas. As of right now it returns `ref_time.` 2. The `*_CALL` opcodes should use the passed `gas` parameter and decode it into `Weight`. As of right now the parameter is ignored. That said, even without those follow ups this PR should fix all `InvalidTransaction` errors we are observing. We should add a configurable divisor so that the gas_price is always at least some gwei. That makes it easier to input the values. --------- Signed-off-by: Alexander Theißen <[email protected]> Co-authored-by: joe petrowski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: PG Herveou <[email protected]> pallet-revive: Bump PolkaVM (#9928) Bumped `polkavm` to the latest version. No semantic changes in that update. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] revm refactor (#9818) Refactor REVM implementation in `pallet-revive` This PR removes technical debt and eliminates tight coupling to specific REVM versions, facilitating integration with other projects (e.g., Foundry). After this refactoring, we primarily depend only on REVM's [`Bytecode`](https://docs.rs/revm/latest/revm/bytecode/struct.Bytecode.html) struct. Most of REVM's generic type system and trait abstractions are unused or had to be ignored to prevent bugs. Interactions with the host in pallet-revive are handled through the `Ext` trait, making REVM's other abstractions unnecessary or potentially harmful. Unused REVM abstractions included: - **Host trait**: Unused in the pallet, we relied on the `DummyHost` default mocked implementation - **Gas field**: Unused, the pallet uses its own gas accounting system - **Methods from `InputsTr`**: Unused most methods had panic implementations since they couldn't be relied upon - **Spec**: Unused: We only maintain the latest fork for each runtime This refactor introduces: - **Interpreter**: Simplified struct containing only the fields actually needed - **Stack**: Simplified implementation using `sp_core::*` instead of `alloy_core::primitives::*` for better integration with the rest of the pallet - **Memory**: Simplified implementation providing only the methods actually needed - **Instructions**: - New instructions don't rely on macros and have a simplified signature: `Fn(&mut interpreter) -> ControlFlow<Halt>` - Removed function pointer table lookup for instructions in favor of match statements, - Unified gas charging: legacy u64 gas charging is now wrapped in `EVMGas` that implements `Token<T>` to provide the associated weight - Removed the `InterpreterAction`, this simplify the interpreter loop to: ```rust loop { let opcode = interpreter.bytecode.opcode(); interpreter.bytecode.relative_jump(1); exec_instruction(interpreter, opcode)?; } ``` - **Error handling**: Opcode that fail return Halt::Err(DispatchError), this remove the need from converting between InstructionResult and `ExecError` like we were previously doing and standardize errors generated on both backends --------- Co-authored-by: 0xRVE <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Allows setting evm balance for non-existing account (#9911) Allows calling set_evm_balance for a non-existing account on pallet-revive. It is needed by foundry to inject EVM accounts. pallet-revive: Fix dry run balance check logic (#9942) Fix fault balance check logic during dry-run: We should not enforce that the sender has enough balance for the fees in case no `gas` is supplied. cc @TorstenStueber --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Allow unlimited contract size in debug mode. (#9831) Fixes https://github.com/paritytech/contract-issues/issues/167 The main changes in this PR are: 1. Added an associated type DebugEnabled 2. Introduced a DebugSettings struct with a single boolean field 3. Added a StorageValue: pub(crate) type DebugSettingsOf<T: Config> = StorageValue<_, DebugSettings<T>, ValueQuery>; 4. Included debug_settings in the GenesisConfig 5. Added a unit test to verify that large EVM contracts can be instantiated. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alexander Theißen <[email protected]> pallet-revive update basefee instruction (#9945) The base fee instruction now returns the proper base price instead of a hard coded value. --------- Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Migrate unstable storage host functions to `Storage` pre-compile (#9603) Part of closing https://github.com/paritytech/polkadot-sdk/issues/8572. Introduces a new `Storage` pre-compile and migrates: * `clear_storage` * `take_storage` * `contains_storage` The new `Storage` pre-compile is introduced, as it requires implementing the `BuiltinPrecompile::call_with_info` function, which cannot be implemented together with `BuiltinPrecompile::call` (implemented by the `System` pre-compile). I've added the `sol_utils` as I (on admittedly quick glance) couldn't find a crate that supports those encodings (Solidity's `bytes`) without requiring an allocator. cc @athei @pgherveou --------- Co-authored-by: xermicus <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Return unified gas for `gas_left` syscalls and opcodes (#9968) In https://github.com/paritytech/polkadot-sdk/pull/9803 we introduced the new gas mapping. However, when contracts are querying the remaining gas we still returned the `ref_time`. This PR changes that. - Added a new `Stack::gas_left` function that calculates the remaining gas as eth gas that matches the gas passed in the transaction. It supports both the `eth_` and non `eth_` flavors of dispatchables. - Changed the PVM syscall `ref_time_left` to return the new unified gas. - Changes the EVM `GAS` opcode to return the new unified gas - When calculating the consumed storage we now take into account what was charged during the current frame - Removed `storage_deposit_limit` from `eth_*` dispatchables. It is always uncapped in this case and the overall limit is conveyed using the tx credit. Now that we can return the proper remaining gas that also includes the storage deposit we can change the EVM `call` instruction next to take the passed `gas` into account. Since the unified gas takes both the txfee and the deposit into account it will be able to limit both effectively. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> [pallet-revive] dev-node constant fee multiplier (#9939) This will let us have stable gas cost (as long as the state of the dev net does not change) In mainnet neither polkadot, nor EVM chains can guarantee stable gas since the state of the blockchain can change between two dry runs, but I would argue that we are better off if we have stable gas cost in testing environments as that is the standard on EVM devnet --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] fix exp overflow (#9991) Update arithmetic tests, and fix potential overflow --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> Wait for transaction receipt if instant seal is enabled (#9914) Fixes https://github.com/paritytech/contract-issues/issues/165 The main changes in this PR are: 1. Add a new API to revive-dev-node to check whether the node has instant seal enabled. 2. Add a new debug API to eth-rpc to check whether the node has instant seal enabled. (optional) 3. Query and cache the node’s instant seal status during eth-rpc initialization. 4. If instant seal is enabled, wait for the transaction receipt to be available --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> [pallet-revive] Implement the consume_all_gas syscall (#9997) This PR implements a new API `consume_all_gas` which is required for 100% EVM `INVALID` opcode compatibility. Since ceding of all remaining gas is handled in the EVM interpreter, I decided to not add a return flag but make this a dedicated syscall for consistency instead. Didn't implement a benchmark since the first (and only) thing this does is consuming all remaining gas anyways. --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> `pallet-xcm`: extract precompiles to a separate crate (#9985) This PR extracts the XCM precompile from `pallet-xcm` into a new standalone crate `pallet-xcm-precompiles` to resolve an unwanted dependency issue. Previously, the XCM precompile was implemented directly in `pallet-xcm/src/precompiles.rs`, which required `pallet-xcm` to depend on `pallet-revive`, introducing it as a transitive dependency for all parachains using `pallet-xcm`. Closes #9955 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] fix subxt submit & add debug statments (#10016) - Fix subxt submit by default it's using `author_submitAndWatchExtrinsic` even though we just want to fire and forget - Add debug instructions to log the signer & nonce of new eth transactions when the node validate the transaction --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Lower the deposit costs for child trie items (#10027) Fixes https://github.com/paritytech/polkadot-sdk/issues/9246 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Fix incorrect `block.gaslimit` (#10026) Fixes https://github.com/paritytech/contract-issues/issues/112 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> frame/revive: ETH block storage (#9418) This PR constructs the Ethereum block in the following way: - events (logs) are captured via an `environmental!` variable to reduce reliance on pallet storage - A maximum of 512 events is allowed per transaction, with the size of an event capped to `self.ext.max_value_size()` - A memory-efficient intermediate block builder is deserialized and serialized back to the pallet storage - The intermediate block builder builds the transaction and event root hashes using low level RLP encoding primitives to achieve around 90% pallet storage optimization - For more details, see https://github.com/paritytech/polkadot-sdk/pull/9764 - A fixup is included for 7702 transaction rlp serialization/deserialization is added to ensure we can build the Ethereum block hash from live Ethereum blocks. - The maximum `CALL_PARAMS_MAX_SIZE` is increased to 512 to 244 to accommodate the transaction added to the Eth call This PR also includes benchmarking: - https://github.com/paritytech/polkadot-sdk/pull/9496 - pallet storage testing and capturing of events / transactions are added at `tests/block_hash.rs` - incremental block storage is tested in `evm/block_hash.rs`, which ensures RLP encoding / hash builder and identical hashes from live ethereum blocks - tested via RPC work - https://github.com/paritytech/polkadot-sdk/pull/9512 - https://github.com/paritytech/polkadot-sdk/pull/9616 - https://github.com/paritytech/polkadot-sdk/pull/9452 Builds upon https://github.com/paritytech/polkadot-sdk/pull/9413 Part of: https://github.com/paritytech/contract-issues/issues/139 --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Lukasz Rubaszewski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] improve revive genesis config (#9988) - Update test to make sure contracts created at genesis are callable - make sure that contracts are brought to existence by minting e.d first --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> added baltathar, charleth, dorothy, and ethan to eth-rpc and revive-d… (#10041) adds more funded accounts to eth-rpc and dev-node --------- Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: PG Herveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Increase event sizes (#10047) Fixes https://github.com/paritytech/contract-issues/issues/140 This increases the maximum event payload size from 416 bytes to 64k. Since https://github.com/paritytech/polkadot-sdk/pull/9418 we charge some additional weight per byte of event payload. This makes it possible to raise the limit while staying within our memory envelope. This artificial weight will add 18us of weight to a maximum sized event. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: when a dry run simulates contract deployment, return the execution result data. (#10032) Fixes https://github.com/paritytech/contract-issues/issues/177 Expose the deployed contract's runtime bytecode in eth_call responses during simulated contract creation. The test from issue https://github.com/paritytech/contract-issues/issues/177 sends an eth_call request without a destination address, while providing contract bytecode in the data field. This simulates a contract creation transaction. The test expects the RPC response to return the result of executing the init code, which is the deployed contract's runtime bytecode. While this result is not returned in actual deployments, it is expected in dry-run simulations. --------- Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> eth-rpc add trace logs (#10065) Add extra tracing logs for estimate_gas and send_raw_transaction --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: xermicus <[email protected]> pallet_revive: Raise the MaxEthExtrinsicWeight (#10089) Fixes https://github.com/paritytech/contract-issues/issues/194 Factory extrinsics do need more weight. It is fine to raise them to almost the full max extrinsic weight since this is still lower than the block weight. Also improving the error reporting during the dry run in case an extrinsic hits this limit. No more `OutOfGas` but a more descriptive error of how much it is overweight. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> precompiles: Enforce state mutability (#10080) `pallet-assets-precompile`, `pallet-xcm-precompiles` and revive builtin precompile implementations currently violate [Solidity state mutability](https://docs.soliditylang.org/en/latest/grammar.html#syntax-rule-SolidityParser.stateMutability), potentially introducing a new attack vector. This PR implements corresponding checks at the function dispatch. Could be enforced in `pallet-revive`, however: 1. Adding something like a `const MUTATES: bool` to the `Precompile` trait won't help because whether the call is mutating or not depends on the [Solidity function selector.](https://docs.soliditylang.org/en/latest/abi-spec.html#function-selector). 2. Alloy, which we are using to parse the interface definitions prior to calling precompile implementations, doesn't provide a mapping from function selector to its mutability [modifier](https://docs.soliditylang.org/en/latest/cheatsheet.html#modifiers). --------- Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive: fix alloy-consensus dependency (#10090) Needed in order to update foundry-polkadot to the latest master: https://github.com/paritytech/foundry-polkadot/pull/352 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Enforce single-state txpool for revive-dev-node (#10106) Use single-state txpool for dev-node when instant-seal is selected see https://github.com/paritytech/polkadot-sdk/issues/10104 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: Add ExportChainSpec command to revive-dev-node (#10020) Add the `export-chain-spec` command to the revive-dev-node. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive/rpc: Adjust the RPC to utilize the ETH block from storage (#9512) This PR adjusts the RPC layer of pallet-revive to use Ethereum blocks from storage via runtime APIs and establishes proper Ethereum ↔ Substrate block hash mappings. - **New database table**: `eth_to_substrate_blocks` maps Ethereum block hashes to Substrate block hashes and block numbers - **Bidirectional lookups**: Support for both ETH→Substrate and Substrate→ETH hash resolution with backward compatibility fallbacks - **Block pruning**: Updated to remove stale mappings alongside transaction and log data - **Genesis block initialization**: Added `block_storage::on_finalize_build_eth_block()` call in `BuildGenesisConfig` to properly build and store block 0 - Added comprehensive tests for block hash mapping operations - Ethereum vs Substrate hash resolution tests - Fork handling in block pruning tests - Log filtering with Ethereum block hash tests - TransactionInfo deserialization from JSON Value tests The implementation uses a **runtime API approach** where the RPC layer queries the runtime for Ethereum blocks and hashes, which are then mapped to Substrate block hashes in the local SQLite database. This provides: 1. **Backward compatibility**: Falls back to treating hashes as Substrate hashes when no mapping exists 2. **Efficient lookups**: Database indices on both Ethereum and Substrate block hashes 3. **Automatic cleanup**: Block mappings are pruned alongside transaction and log data 4. **Genesis block handling**: Block 0 is built during genesis using the block storage infrastructure Builds upon: https://github.com/paritytech/polkadot-sdk/pull/9418 Part of: https://github.com/paritytech/contract-issues/issues/139 --------- Signed-off-by: Alexandru Vasile <[email protected]> Co-authored-by: Lukasz Rubaszewski <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> revive-dev-node enforce --dev (#10109) enforce --dev and default --log in revive-dev-node --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Change bahaviour of contract termination in accordance with EIP-6780 (#9699) fixes https://github.com/paritytech/polkadot-sdk/issues/9621 Behavior of `terminate` is changed in accordance with EIP-6780 (and EVM in general): - `terminate` only deletes the code from storage if it is called in the same transaction the contract was created. - `terminate` does not destroy the contract instantly. The contract is registered for destruction, which happens at the end of the transaction. --------- Signed-off-by: xermicus <[email protected]> Signed-off-by: Cyrill Leutwiler <[email protected]> Co-authored-by: Robert van Eerdewijk <[email protected]> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: Sebastian Miasojed <[email protected]> Co-authored-by: xermicus <[email protected]> Co-authored-by: Cyrill Leutwiler <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Only enforce EIP-3607 for dispatchables (#10100) The EIP states that contract addresses cannot be the origin of a transaction. However, we are enforcing this rule for all contract execution (i.e all public function on the pallet). This is a problem for code that uses `pallet_revive` and explicitly wants to allow this. This PR now only enforces this check for dispatchables so that all the `bare_*` functions are unaffected. As a drive-by a regrouped the functions on the `Pallet` so that the public functions are no longer interleaved with the private ones. This got mixed up when we resolved some merge conflicts. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: add interface to implement mocks and pranks (#9909) Needed for: https://github.com/paritytech/foundry-polkadot/pull/334. In foundry-polkadot we need the ability to be able to manipulate the `msg.sender` and the `tx.origin` that a solidity contract sees cheatcode documentation, plus the ability to mock calls and functions. Currently all create/call methods use the `bare_instantiate`/`bare_call` to run things in pallet-revive, the caller then normally gets set automatically, based on what is the call stack, but for `forge test` we need to be able to manipulate, so that we can set it to custom values. Additionally, for delegate_call, bare_call is used, so there is no way to specify we are dealing with a delegate call, so the call is not working correcly. For both this paths, we need a way to inject this information into the execution environment, hence I added an optional hooks interface that we implement from foundry cheatcodes for prank and mock functionality. - [x] Add tests to make sure the hooks functionality does not regress. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [revive] Receipts should include failed tx (#10120) The current implementation incorrectly accumulates receipts in storage to compute the `receipts_root`. However, when an extrinsic fails, all storage changes are reverted causing the receipts to be lost. This PR updates the handling of Ethereum transactions so that they always succeed. The transaction logic is now wrapped in a top-level storage transaction that rolls back all state changes on failure while still producing a valid receipt. A new event `EthExtrinsicRevert` is emitted when an eth transaction reverts. eth-rpc uses this event to set the correct receipt status. This event also serves as a replacement for ExtrinsicFailed to make debugging failed Ethereum transactions easier in tools like Polkadot.js. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> anvil / eth-rpc - fix subscription race (#10146) fix https://github.com/paritytech/polkadot-sdk/issues/10139#issuecomment-3456077366 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Alin Dima <[email protected]> pallet_revive: Improve logging (#10157) Just added some more information to the log output during dry_run and transaction creation. This was helpful when debugging if the correct gas was passed in by the client. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: make contract reverted error message more verbose (#10168) Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive-eth-rpc: derive Encode/Decode for subxt-generated types (#10169) Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive_dev_node: Always increment the timestamp by at least one second (#10160) Fixes https://github.com/paritytech/contract-issues/issues/191 cc @albertov19 The instant seal introduces a race condition. Blocks can be build faster than the timestamp resolution of Ethereum. Eth timestamps are only one second granularity. If we build blocks faster it can happen that the timestamp delta between them is zero. This is not allowed. We have to make sure that in instant seal two blocks don't return the same timestamp. This PR does that by always incrementing the timestamp by at least one second. Note that this is a dev-node only change. Production chains won't have this problem as long as the block time is larger than 1 second. Yes, it will produce timestamps in the future. But this seems to be the lesser evil for this dev node. Time is subjective. But the rule to not return duplicate timestamps is dependent on. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Add upload evm code function (#10129) EVM Runtime Code Upload for Foundry Integration This feature enables direct upload of EVM runtime bytecode (deployed contract code without constructor) to the pallet-revive, supporting Foundry's code migration functionality between REVM and pallet-revive execution environments. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive-eth-rpc: fix blocks pruning (#10175) We need to call prune_blocks before the insertion process. Otherwise, if we get a fork, we won't be able to insert it into the DB because it already exists there. In reality, we want the other fork to be pruned instead. Moreover, once we do get a fork we need to prune all the other subsequent blocks of the old fork Return the correct block difficulty from the eth-rpc (#10186) This PR fixes an issue in the eth-rpc/pallet-revive that was causing it to return an incorrect value for the block's difficulty or prevrandao. In the VM/interpreter implementation we use a constant for the block difficulty. However, the eth block construction side was unaware of this constant being used and therefore the RPC was always returning a block difficulty of zero. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive: Fix dust & child contract calls (#10192) When transferring to self we should just return early as it's a noop. Not doing so cause bug in `transfer_with_dust` as we do ``` from.dust -= from.dust to.dust += to.dust ``` We end up with a value of dust - planck (that we burnt from to create dust amount) on the account fix https://github.com/paritytech/contract-issues/issues/211 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> revive fix reported gas used (#10148) Fix `gas_used` calculation introduced in #9418 to use the actual gas instead of just `ref_time`. With these changes we now guarantee that `tx_cost = effective_gas_price * gas`. Note that since we compute gas as `fee / gas_price`, this can lead to rounding errors when the chain uses `SlowAdjustingFeeUpdate` (i.e. the fee is not a multiple of the gas price). The changes in this PR ensure the fee still matches by burning the rounding remainder. This PR also fixes how the actual fee is computed and introduces a new `compute_actual_fee` in `Config::FeeInfo`. The previous fee calculation was skipping the `extension_weight` in the fee calculation. The updated tests ensure that the tx cost reported in the receipt matches the fees deducted from the user account: https://github.com/paritytech/evm-test-suite/blob/460b2c9aa3a3019d3508bb5a34a2498ea86035ff/src/gas.test.ts?plain=1#L31-L61 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [v2] pallet-revive: support uploading EVM bytecode via upload_code extrinsic. (#10193) Fixes https://github.com/paritytech/contract-issues/issues/182 Add support for EVM bytecode to the upload_code extrinsic. Tests in issue https://github.com/paritytech/contract-issues/issues/182 send hardhat_setCode, which uses revive's upload_code API; this change makes that flow accept and store the EVM bytecode using upload_code extrinsic. This PR deprecates PR: https://github.com/paritytech/polkadot-sdk/pull/10095 Comment explaining test configuration requirements: https://github.com/paritytech/polkadot-sdk/pull/10095#issuecomment-3456450460 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Notify when there is a new best block (#10220) Modify the tx_notifier to send the block hash to the subscribers instead of all transactions hashes. Modify the send_raw_transaction to look for the transaction hash in the transactions field of the evm block. We need this changes in anvil-polkadot: * https://github.com/paritytech/foundry-polkadot/pull/389 * to be able to implement some RPCs like : send_transaction_sync and the filters logic --------- Signed-off-by: Alexandru Cihodaru <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Only fund new accounts with ED (#10233) fixes https://github.com/paritytech/contract-issues/issues/179 In case an account is created by transferring funds to it, and after that a contract is deployed to that account, it will receive the existential deposit twice. This can be done using create2. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> pallet_revive: Add dry-run timestamp override support (#10191) This PR updates `pallet-revive` to **support overriding the block timestamp during dry-run calls**. The dry-run execution now uses the following configuration for `eth_estimateGas` and `eth_call` when the block tag is `pending`: ```text block.timestamp = max(rpc_timestamp, latest_block.timestamp + 1) block.number = latest_block.number + 1 ``` Fixes [#153](https://github.com/paritytech/contract-issues/issues/153), [#205](https://github.com/paritytech/contract-issues/issues/205) Downstream projects using the `ReviveApi::eth_transact` runtime API should either provide a `timestamp` or pass `None`. - Added dry run timestamp to `ExecConfig`. - Added a new parameter to `ReviveApi::eth_transact` for passing the current RPC timestamp. - `eth_estimateGas` and `eth_call` with `pending` block tag will dry run the transaction with the block timestamp set to `max(rpc_timestamp, latest_block.timestamp + 1)` and block number set to `latest_block.number + 1`. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Alexander Theißen <[email protected]> pallet_revive: use real storage when building the eth genesis block (#10225) When building the eth genesis block, query the real storage items that store the timestamp and block number instead of using the zeroed items. If the chainspec does not customise these, they will remain zeroed. However, anvil does customise these if requested by the user. Needed in order to merge https://github.com/paritytech/foundry-polkadot/pull/391 Remove outdated comment on Tracer Type (#10246) Prestate tracer type is now supported [pallet-revive] fix prestate tracer current address (#10239) Fix prestate tracer not reporting the contract addresses properly. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] Add eth_substrate_call extrinsic (#10159) Fixes https://github.com/paritytech/contract-issues/issues/180 This PR introduces `eth_substrate_call`, a new extrinsic in pallet-revive that enables Substrate runtime calls from Ethereum transactions. This allows tools like Hardhat to invoke Substrate extrinsics (e.g., `upload_code`) via the Ethereum RPC. This implements a new approach for dispatching Substrate extrinsics through the magic RUNTIME_PALLETS_ADDR address, which fixes two shortcomings of the previous implementation: 1. Incorrect origin verification - The origin is now correctly verified as EthTransaction. 2. Missing Ethereum transaction receipts - Receipts are now properly generated for all Ethereum transactions. Includes: - New eth-rpc integration test validating end-to-end functionality - Benchmark measuring the extrinsic overhead - Unit tests --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] use run_instant_seal_and_finalize in dev-node (#10252) fix finalized block production with instant-seal by using `run_instant_seal_and_finalize` instead of `run_instant_seal` --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> make contracts create consider is_unlimited_contract_size_allowed (#10224) While running foundry tests from https://github.com/balancer/balancer-v3-monorepo/tree/main/pkg/pool-weighted, found we hit this limit. Foundry environment is configured with unlimited code size, so we need to make sure pallet-revive respects those configurations everywhere. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: add secp256r1 (0x100) precompile (#10267) Add secp256r1 precompile (0x100) --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> fix NextFeeMultiplier update before Revive::on_finalize (#10271) Fix https://github.com/paritytech/polkadot-sdk/issues/10177 Store `base_fee_per_gas` and `block_gas_limit` in the EthBlockBuilderIR, since these values are derived from the NextFeeMultiplier and we can't read it from Revive::on_finalize since this runs (in most Runtime) after TransactionPayment::on_finalize where the value is updated for the next block. also use `BlockNumberFor<T>` for the BlockHash map instead of U256. No release have been performed yet since the introduction of that change, so that should not require any migration. ``` #[pallet::storage] pub(crate) type BlockHash<T: Config> = StorageMap<_, Identity, BlockNumberFor<T>, H256, ValueQuery>; ``` --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet_revive: Fix EVM tests to pass `data` as part of `code` (#10214) The test code was passing the constructor argument as `data` on EVM. But it should be passed as part of the `code`. This is different from PVM where those are separate. Failing to do so makes those opcodes return the wrong values when `data` is passed to the constructor: ``` CODESIZE CODECOPY CALLDATASIZE CALLDATACOPY CALLDATALOAD ``` Further changes: - I also added some checks to fail instantiation if `data` is non empty when uploading new EVM bytecode. - Return error when trying to construct EVM contract from code hash as this does not make sense since no initcode is stored on-chain. --------- Co-authored-by: pgherveou <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> fix genesis eth block builder number again (#10297) Redoes https://github.com/paritytech/polkadot-sdk/pull/10225 for the genesis block number. It was broken again by https://github.com/paritytech/polkadot-sdk/pull/10271 pallet-revive: fix eth tx decoding (#10290) Fix Ethereum transaction decoding --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] improve eth-rpc tests reliability (#10281) Improve eth-rpc tests reliability by replacing substrate-node with revive-dev-node, fixing nonce query in runtime_api_dry_run_addr, and running all tests in a single tokio test function --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive: add hook for mocking origin (#10272) While runing some balancer v3 tests: https://github.com/paritytech/foundry-polkadot/issues/287#issuecomment-3502668161, discovered we need a way to mock up the origin as well, so add hook. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive fix prestate diff tracing (#10303) Fix prestate diff-tracing, add missing storage diff for created contracts --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> fix P256Verify precompile address (#10336) fix https://github.com/paritytech/contract-issues/issues/220 --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> [pallet-revive] add tracing for selfdestruct (#10244) Add tracing for selfdestruct --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: PG Herveou <[email protected]> [pallet-revive] update evm create benchmark (#10366) Add a benchmark for the EVM CREATE instruction. We are currently reusing the `seal_instantiate` benchmark from PVM instantiation, which is incorrect because instantiating an EVM contract takes different arguments and follows a different code path than creating a PVM contract. This benchmark performs the following steps: - Generates init bytecode of size i, optionally including a balance with dust. - Executes the init code that triggers a single benchmark opcode returning a runtime code of the maximum allowed size (qrevm::primitives::eip170::MAX_CODE_SIZE`). Also fix the order of the weight function arguments, they were wrong causing the weight to be much bigger that what it should be --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> pallet-revive benchmark opcode fix (#10380) Benchmark opcode was using the invalid opcode instead of defining a new one. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Enable force debug in revive dev node (#10383) This change ensures that all types that implement `RuntimeDebug` are fully displayed in log output of the revive dev node, instead of just showing `<wasm:stripped>`. Unfortunately, the trait `RuntimeDebugNoBound`, that we also use frequently in pallet-revive, is not affected and will still output `<wasm:stripped>` (it does not check for the `force-debug` feature flag, instead it only fully outputs values when either one of the features `std` or `try_runtime` is enabled – this is something we implement as a general change). --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> pallet-revive: add DebugSetting for bypassing eip-3607 (#10387) Only works for contract accounts, not precompiles. This is needed so that test nodes like anvil can send transactions from contract accounts, a widely-used feature in tests Needed for https://github.com/paritytech/foundry-polkadot/pull/423 Fix termination (#10302) This PR fixes up termination by changing the behavior to: - The free balance (without ed) should be send away right away to the beneficiary and not be delayed like the contract deletion. - The ed and storage deposit will be send away only when terminating but to the origin (delayed). - The scheduling of the terminate needs to be reverted if the scheduling frame reverts. - `SELFDESTRUCT` should be allowed inside the constructor. The issuing contract will exist as account without code for the remainder of the transaction. - The `terminate` pre-compile should revert if delegate called or its caller was delegate called. This is just my opinion but if we are changing semantics we can might as well add some security. We are increasing the attack surface by allowing the destruction of any contract (not only created in the current tx). - Storage refunds should no longer use `BestEffort`. This is necessary to fail refunds in case some other locks (due to participation in gov for example) prevent sending them away. This is in anticipation of new pre-compiles. - Moved pre-compile interfaces to sol files and made them available to fixtures - Added some Solidity written tests to exercise error cases Those should all be written in Solidity to test both backends at the same time. No more Rust fixtures. @0xRVE can you take those over as I am ooo. - Test that checks that scheduled deletions do properly roll back if a frame fails - Test that value send to a contract after scheduling for deletion is send to the beneficiary (different from Eth where this balance is lost) - Add tests that use `SELFDESTRUCT` to `Terminate.sol`. Need https://github.com/paritytech/devops/issues/4508 but can be tested locally with newest `resolc`. --------- Signed-off-by: Alexandru Gheorghe <[email protected]> Signed-off-by: Andrei Sandu <[email protected]> Co-authored-by: 0xRVE <[email protected]> Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Co-authored-by: Alin Dima <[email protected]> Co-authored-by: Bastian Köcher <[email protected]> Co-authored-by: Kian Paimani <[email protected]> Co-authored-by: Oliver Tale-Yazdi <[email protected]> Co-authored-by: Marian Radu <[email protected]> Co-authored-by: Karol Kokoszka <[email protected]> Co-authored-by: Francisco Aguirre <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: girazoki <[email protected]> Co-authored-by: Adrian Catangiu <[email protected]> Co-authored-by: Lukasz Rubaszewski <[email protected]> Co-authored-by: Paolo La Camera <[email protected]> Co-authored-by: Andrei Eres <[email protected]> Co-authored-by: Alexandru Gheorghe <[email protected]> Co-authored-by: Egor_P <[email protected]> Co-authored-by: Agustín Rodriguez <[email protected]> Co-authored-by: Branislav Kontur <[email protected]> Co-authored-by: Andrei Sandu <[email protected]> Co-authored-by: Thang X. Vu <[email protected]> Co-authored-by: DenzelPenzel <[email protected]> Co-authored-by: Javier Viola <[email protected]> Co-authored-by: Alexander Cyon <[email protected]> Co-authored-by: Sebastian Kunert <[email protected]> Co-authored-by: Alexander Samusev <[email protected]> Co-authored-by: Omar <[email protected]> Co-authored-by: Guillaume Thiolliere <[email protected]> Co-authored-by: BDevParity <[email protected]> [pallet-revive] evm remove contract storage slot when writing all zero bytes (#10309) fixes https://github.com/paritytech/contract-issues/issues/216 When an EVM contract writes an all-zero 32-byte storage word, remove the corresponding child‑trie entry so storage-deposit accounting sees bytes/items removed and a refund can be applied. --------- Co-authored-by: cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: pgherveou <[email protected]> Fix assertion (#10427) According to assertion message and comment("at least"), `T::MaxDebugBufferLen::get() > MIN_DEBUG_BUF_SIZE` should be changed into `T::MaxDebugBufferLen::get() >= MIN_DEBUG_BUF_SIZE` ```rust // Debug buffer should at least be large enough to accommodate a simple error message const MIN_DEBUG_BUF_SIZE: u32 = 256; assert!( T::MaxDebugBufferLen::get() > MIN_DEBUG_BUF_SIZE, "Debug buffer should have minimum size of {} (current setting is {})", MIN_DEBUG_BUF_SIZE, T::MaxDebugBufferLen::get(), ); ``` For this assertion, the assertion message indicates assertion will fail when max_storage_size > storage_size_limit, which means it requires max_storage_size <= storage_size_limit, but assertion predicate is `max_storage_size < storage_size_limit`. Based on the code semantics, assertion predicate should be changed into `max_storage_size <= storage_size_limit…
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A4-backport-stable2503
Pull request must be backported to the stable2503 release branch
A4-backport-stable2506
Pull request must be backported to the stable2506 release branch
T2-pallets
This PR/Issue is related to a particular pallet.
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.
The .polkavm files are not recompiled when deleting
target/pallet-revive-fixtures. I assume that CI is not caching that folder or the .polkavm file extension. This leads to theinclude_bytes!macro to not finding these files.Tested it here polkadot-fellows/runtimes#785