-
Notifications
You must be signed in to change notification settings - Fork 0
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
Outbound queue v2 #4
Conversation
Workflow
which means we can execute multiple commands on Ethereum in one message.
|
@@ -172,3 +174,13 @@ impl Default for AssetMetadata { | |||
|
|||
/// Maximum length of a string field in ERC20 token metada | |||
const METADATA_FIELD_MAX_LEN: u32 = 32; | |||
|
|||
// Origin for high-priority governance commands | |||
pub fn primary_governance_origin() -> H256 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is now a V1-only type, so should go in core/src/v1/mod.rs
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
850fe96
Actually it's V2 specific.
The usage in
polkadot-sdk/bridges/snowbridge/pallets/outbound-queue-v2/src/send_message_impl.rs
Lines 45 to 47 in ba03ae6
if ticket.origin != primary_governance_origin() { | |
ensure!(!Self::operating_mode().is_halted(), SendError::Halted); | |
} |
} | ||
|
||
// Origin for lower-priority governance commands | ||
pub fn second_governance_origin() -> H256 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
...rachains/integration-tests/emulated/tests/bridges/bridge-hub-westend/src/tests/snowbridge.rs
Outdated
Show resolved
Hide resolved
Check details in emulated tests how to construct transfer message for both ENA&PNA with XCMV5 instructions.
|
fffd895
to
df137c0
Compare
9492f1e
to
d359108
Compare
bridges/snowbridge/pallets/outbound-queue-v2/runtime-api/src/lib.rs
Outdated
Show resolved
Hide resolved
bridges/snowbridge/pallets/outbound-queue-v2/runtime-api/src/lib.rs
Outdated
Show resolved
Hide resolved
/// - `metadata`: Metadata to include in the instantiated ERC20 contract on Ethereum | ||
#[pallet::call_index(11)] | ||
#[pallet::weight(T::WeightInfo::register_token())] | ||
pub fn register_token_v2( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alternatively can we reimplement the original register_token
extrinsic to optionally use V2 protocol, depending on a config field in storage.
When the ethereum contracts have been upgraded to V2, we can configure register_token
to use V2.
The benefit is that user-level apps won't need to change any code to register tokens using V2.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually, ignore my comment, I realize we need separate register extrinsics for V1 and V2 as they have different fee-taking behavior.
I see now there is also the problem of how to provide WETH as the fees for these governance calls. On BH users can only provide DOT
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we need to make the rewards pallet support both WETH and DOT.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how to provide WETH as the fees for these governance calls.
Actually there is no fee charged for governance calls. So it's possible pendingOrder
bound with zero fee and no need to reward in this case.
polkadot-sdk/bridges/snowbridge/pallets/outbound-queue-v2/src/lib.rs
Lines 278 to 281 in fb3b30c
// No fee for governance order | |
if !order.fee.is_zero() { | |
T::RewardLedger::deposit(envelope.reward_address, order.fee.into())?; | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem is that then no off-chain relayer will be incentivized to deliver the message. Letting users optionally pay using DOT is a solution we should consider.
Another issue is that when we make register_token_v2
permissionless, there is still no way for many parachains to call the extrinsic since they won't have HRMP channels registered.
So I think we have to force users to route their governance calls through AH and provide DOT. In which case, BH will see message like:
AliasOrigin /Parachain/Hydra
ReceiveTeleportedAsset (DOT, 10)
DepositAsset (DOT, /Parachain/Hydra)
Transact(EthereumSystem.register_token_v2)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So I think we have to force users to route their governance calls through AH and provide DOT.
Agree. All calls should be through AH.
But I'd assume in this case the fee could also be swapped to WETH
beforehand in AH so that in BH we only use WETH
as fee for simplicity. Some todo logic here:
polkadot-sdk/bridges/snowbridge/primitives/router/src/outbound/v2/convert.rs
Lines 289 to 294 in cff1cba
// Todo: Validate fee asset is WETH | |
let fee_amount = match fee_asset { | |
Asset { id: _, fun: Fungible(amount) } => Some(*amount), | |
_ => None, | |
} | |
.ok_or(AssetResolutionFailed)?; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would also prefer a solution where we only have 1 asset type in the rewards pallet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, that would be best.
If we move governance extrinsics such as register-token, create-agent to AH, then that would neatly solve the problem
As we could burn the WETH on AH and then send message to BH with the weth reward for the outbound message
Example flow:
- User calls
EthereumSystem.register_token
extrinsic on AH, supplying WETH for reward - WETH is burnt, and AH sends
Transact(EthereumSystem.register_token)
XCM to BH - On BH, the low-level
EthereumSystem.register_token
adds burnt WETH to rewards pallet and queues outbound command
use alloy_sol_types::SolValue; | ||
|
||
sol! { | ||
struct InboundMessageWrapper { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it possible to use modules as namespaces instead of appending Wrapper
to the struct names? Thinking of this pattern:
mod abi {
sol! {
struct InboundMessageWrapper { ... }
}
}
Then we can reference the type using abi::InboundMessage
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The point of adding the abi
namespace is that we rename InboundMessageWrapper
and CommandWrapper
to InboundMessage
and Command
respectively
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, it seems a bit cubersome with InboundMessage
and InboundMessageWrapper
.
The reason is that it's not allowed to add macro #[derive(Encode, Decode, RuntimeDebug, PartialEq,TypeInfo)]
into InboundMessageWrapper which is required for storing the data on chain, or error as follows:
--> /Users/yangrong/Projects/polkadot-sdk/bridges/snowbridge/primitives/core/src/outbound/v2.rs:31:12
|
31 | #[derive(Encode, Decode, RuntimeDebug, PartialEq,TypeInfo)]
| ^^^^^^ the trait `WrapperTypeEncode` is not implemented for `alloy_primitives::FixedBytes<32>`, which is required by `alloy_primitives::FixedBytes<32>: Encode`
|
= help: the following other types implement trait `WrapperTypeEncode`:
&T
&mut T
Arc<T>
Box<T>
Cow<'a, T>
Rc<T>
alloy_primitives::bytes::Bytes
parity_scale_codec::Ref<'a, T, U>
and 3 others
= note: required for `alloy_primitives::FixedBytes<32>` to implement `Encode`
= note: this error originates in the derive macro `Encode` (in Nightly builds, run with -Z macro-backtrace for more info)
...
So InboundMessageWrapper
is the intermediate data structure only for abi encode, will be converted to InboundMessage
here when storing on chain.
})?; | ||
|
||
// Inspect AliasOrigin as V2 message | ||
let mut instructions = message.clone().0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like this logic should be inside XcmConverter
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's for compatible with V1, for xcm which does not contain AliasOrigin
will fallback to EthereumBlobExporterV1
.
polkadot-sdk/cumulus/parachains/runtimes/bridge-hubs/bridge-hub-westend/src/xcm_config.rs
Lines 220 to 224 in cff1cba
type MessageExporter = ( | |
XcmOverBridgeHubRococo, | |
crate::bridge_to_ethereum_config::SnowbridgeExporterV2, | |
crate::bridge_to_ethereum_config::SnowbridgeExporter, | |
); |
} | ||
|
||
pub fn convert(&mut self) -> Result<Message, XcmConverterError> { | ||
let result = match self.jump_to() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think its safe to just "jump" over instructions, we should validate each instruction in turn to see whether it matches expectations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Co-authored-by: Vincent Geddes <117534+vgeddes@users.noreply.github.com>
# Description Made as a follow-up of polkadot-fellows/runtimes#499 ## Integration N/A ## Review Notes N/A --------- Co-authored-by: Dónal Murray <donal.murray@parity.io>
… as reserved (paritytech#6703) Fixes paritytech#6598. --------- Co-authored-by: GitHub Action <action@github.com>
This might actually happen in non malicious cases. Co-authored-by: eskimor <eskimor@no-such-url.com>
* Add a bunch of differential tests to ensure that responses from eth-rpc matches the one from `geth` - These [tests](https://github.com/paritytech/polkadot-sdk/blob/pg/fix-geth-diff/substrate/frame/revive/rpc/examples/js/src/geth-diff.test.ts) are not run in CI for now but can be run locally with ```bash cd revive/rpc/examples/js bun test ``` * EVM RPC server will not fail gas_estimation if no gas is specified, I updated pallet-revive to add an extra `skip_transfer` boolean check to replicate this behavior in our pallet * `eth_transact` and `bare_eth_transact` api have been updated to use `GenericTransaction` directly as this is what is used by `eth_estimateGas` and `eth_call` ## TODO - [ ] Add tests the new `skip_transfer` flag --------- Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Alexander Theißen <alex.theissen@me.com>
…itytech#6516) Bumps the ci_dependencies group with 3 updates in the / directory: [lycheeverse/lychee-action](https://github.com/lycheeverse/lychee-action), [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance) and [codecov/codecov-action](https://github.com/codecov/codecov-action). Updates `lycheeverse/lychee-action` from 2.0.2 to 2.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/lycheeverse/lychee-action/releases">lycheeverse/lychee-action's releases</a>.</em></p> <blockquote> <h2>Version 2.1.0</h2> <h2>What's Changed</h2> <ul> <li>Add missing argument <code>failIfEmpty</code> by <a href="https://github.com/LitoMore"><code>@LitoMore</code></a> in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/261">lycheeverse/lychee-action#261</a></li> <li>Fix bugs about the exit code by <a href="https://github.com/YDX-2147483647"><code>@YDX-2147483647</code></a> in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/262">lycheeverse/lychee-action#262</a></li> <li>Bump lychee version to 0.17.0 by <a href="https://github.com/mre"><code>@mre</code></a> in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/263">lycheeverse/lychee-action#263</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/LitoMore"><code>@LitoMore</code></a> made their first contribution in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/261">lycheeverse/lychee-action#261</a></li> <li><a href="https://github.com/YDX-2147483647"><code>@YDX-2147483647</code></a> made their first contribution in <a href="https://redirect.github.com/lycheeverse/lychee-action/pull/262">lycheeverse/lychee-action#262</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/lycheeverse/lychee-action/compare/v2...v2.1.0">https://github.com/lycheeverse/lychee-action/compare/v2...v2.1.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/lycheeverse/lychee-action/commit/f81112d0d2814ded911bd23e3beaa9dda9093915"><code>f81112d</code></a> Bump version to 0.17.0 (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/263">#263</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/988c4c129a79e6d2aa7e28cc1ec14997c3b4e831"><code>988c4c1</code></a> Fix bugs about the exit code (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/262">#262</a>)</li> <li><a href="https://github.com/lycheeverse/lychee-action/commit/ae4699150ab670dcfb64cc74e8680e776d9caae2"><code>ae46991</code></a> Add missing argument <code>failIfEmpty</code> (<a href="https://redirect.github.com/lycheeverse/lychee-action/issues/261">#261</a>)</li> <li>See full diff in <a href="https://github.com/lycheeverse/lychee-action/compare/7cd0af4c74a61395d455af97419279d86aafaede...f81112d0d2814ded911bd23e3beaa9dda9093915">compare view</a></li> </ul> </details> <br /> Updates `actions/attest-build-provenance` from 1.4.3 to 1.4.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/actions/attest-build-provenance/releases">actions/attest-build-provenance's releases</a>.</em></p> <blockquote> <h2>v1.4.4</h2> <h2>What's Changed</h2> <ul> <li>Bump predicate action from 1.1.3 to 1.1.4 by <a href="https://github.com/bdehamer"><code>@bdehamer</code></a> in <a href="https://redirect.github.com/actions/attest-build-provenance/pull/310">actions/attest-build-provenance#310</a> <ul> <li>Bump <code>@actions/core</code> from 1.10.1 to 1.11.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/actions/attest-build-provenance/pull/275">actions/attest-build-provenance#275</a></li> <li>Bump <code>@actions/attest</code> from 1.4.2 to 1.5.0 by <a href="https://github.com/bdehamer"><code>@bdehamer</code></a> in <a href="https://redirect.github.com/actions/attest-build-provenance/pull/309">actions/attest-build-provenance#309</a> <ul> <li>Fix SLSA provenance bug related to <code>workflow_ref</code> OIDC token claims containing the "@" symbol in the tag name (<a href="https://redirect.github.com/actions/toolkit/pull/1863">actions/toolkit#1863</a>)</li> </ul> </li> </ul> </li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/actions/attest-build-provenance/compare/v1.4.3...v1.4.4">https://github.com/actions/attest-build-provenance/compare/v1.4.3...v1.4.4</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/actions/attest-build-provenance/commit/ef244123eb79f2f7a7e75d99086184180e6d0018"><code>ef24412</code></a> bump predicate from 1.1.3 to 1.1.4 (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/310">#310</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/36fa7d009e22618ca7cd599486979b8150596c74"><code>36fa7d0</code></a> bump <code>@actions/attest</code> from 1.4.2 to 1.5.0 (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/309">#309</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/390c0bb1a35248f1131918ae2ff5fbebb9c49da4"><code>390c0bb</code></a> Bump <code>@types/node</code> from 22.8.1 to 22.8.7 in the npm-development group (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/305">#305</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/21da615079f466933bace548cfb08958dd87adbb"><code>21da615</code></a> Bump the npm-development group with 3 updates (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/299">#299</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/0704961b8bd76c74543032539a4b87550ca97441"><code>0704961</code></a> Bump actions/publish-immutable-action in the actions-minor group (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/298">#298</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/d01b0709fadd560939726341a0459eef1833df34"><code>d01b070</code></a> Bump the npm-development group with 3 updates (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/278">#278</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/b1d65e4607685bd199bc1fa97811cbac797bd0ab"><code>b1d65e4</code></a> Add workflow file for publishing releases to immutable action package (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/277">#277</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/3a2769405e23849cccd820e7eab22ac9e0f57754"><code>3a27694</code></a> Bump <code>@actions/core</code> from 1.10.1 to 1.11.1 (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/275">#275</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/dff1ae69a71254b807bee9e2f72c7ab0eed66e60"><code>dff1ae6</code></a> prevent e2e workflows on forks (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/272">#272</a>)</li> <li><a href="https://github.com/actions/attest-build-provenance/commit/e5892d032c30c69d4973a976c8bf77e9e470abdf"><code>e5892d0</code></a> Bump the npm-development group with 3 updates (<a href="https://redirect.github.com/actions/attest-build-provenance/issues/263">#263</a>)</li> <li>Additional commits viewable in <a href="https://github.com/actions/attest-build-provenance/compare/1c608d11d69870c2092266b3f9a6f3abbf17002c...ef244123eb79f2f7a7e75d99086184180e6d0018">compare view</a></li> </ul> </details> <br /> Updates `codecov/codecov-action` from 4 to 5 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/codecov/codecov-action/releases">codecov/codecov-action's releases</a>.</em></p> <blockquote> <h2>v5.0.0</h2> <h2>v5 Release</h2> <p><code>v5</code> of the Codecov GitHub Action will use the <a href="https://github.com/codecov/wrapper">Codecov Wrapper</a> to encapsulate the <a href="https://github.com/codecov/codecov-cli">CLI</a>. This will help ensure that the Action gets updates quicker.</p> <h3>Migration Guide</h3> <p>The <code>v5</code> release also coincides with the opt-out feature for tokens for public repositories. In the <code>Global Upload Token</code> section of the settings page of an organization in codecov.io, you can set the ability for Codecov to receive a coverage reports from any source. This will allow contributors or other members of a repository to upload without needing access to the Codecov token. For more details see <a href="https://docs.codecov.com/docs/codecov-tokens#uploading-without-a-token">how to upload without a token</a>.</p> <blockquote> <p>[!WARNING]<br /> <strong>The following arguments have been changed</strong></p> <ul> <li><code>file</code> (this has been deprecated in favor of <code>files</code>)</li> <li><code>plugin</code> (this has been deprecated in favor of <code>plugins</code>)</li> </ul> </blockquote> <p>The following arguments have been added:</p> <ul> <li><code>binary</code></li> <li><code>gcov_args</code></li> <li><code>gcov_executable</code></li> <li><code>gcov_ignore</code></li> <li><code>gcov_include</code></li> <li><code>report_type</code></li> <li><code>skip_validation</code></li> <li><code>swift_project</code></li> </ul> <p>You can see their usage in the <code>action.yml</code> <a href="https://github.com/codecov/codecov-action/blob/main/action.yml">file</a>.</p> <h2>What's Changed</h2> <ul> <li>chore(deps): bump to eslint9+ and remove eslint-config-google by <a href="https://github.com/thomasrockhu-codecov"><code>@thomasrockhu-codecov</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1591">codecov/codecov-action#1591</a></li> <li>build(deps-dev): bump <code>@octokit/webhooks-types</code> from 7.5.1 to 7.6.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1595">codecov/codecov-action#1595</a></li> <li>build(deps-dev): bump typescript from 5.6.2 to 5.6.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1604">codecov/codecov-action#1604</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/parser</code> from 8.8.0 to 8.8.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1601">codecov/codecov-action#1601</a></li> <li>build(deps): bump <code>@actions/core</code> from 1.11.0 to 1.11.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1597">codecov/codecov-action#1597</a></li> <li>build(deps): bump github/codeql-action from 3.26.9 to 3.26.11 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1596">codecov/codecov-action#1596</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/eslint-plugin</code> from 8.8.0 to 8.8.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1600">codecov/codecov-action#1600</a></li> <li>build(deps-dev): bump eslint from 9.11.1 to 9.12.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1598">codecov/codecov-action#1598</a></li> <li>build(deps): bump github/codeql-action from 3.26.11 to 3.26.12 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1609">codecov/codecov-action#1609</a></li> <li>build(deps): bump actions/checkout from 4.2.0 to 4.2.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1608">codecov/codecov-action#1608</a></li> <li>build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1607">codecov/codecov-action#1607</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/parser</code> from 8.8.1 to 8.9.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1612">codecov/codecov-action#1612</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/eslint-plugin</code> from 8.8.1 to 8.9.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1611">codecov/codecov-action#1611</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/eslint-plugin</code> from 8.9.0 to 8.10.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1615">codecov/codecov-action#1615</a></li> <li>build(deps-dev): bump eslint from 9.12.0 to 9.13.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1618">codecov/codecov-action#1618</a></li> <li>build(deps): bump github/codeql-action from 3.26.12 to 3.26.13 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1617">codecov/codecov-action#1617</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/parser</code> from 8.9.0 to 8.10.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1614">codecov/codecov-action#1614</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/eslint-plugin</code> from 8.10.0 to 8.11.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1620">codecov/codecov-action#1620</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/parser</code> from 8.10.0 to 8.11.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1619">codecov/codecov-action#1619</a></li> <li>build(deps-dev): bump <code>@types/jest</code> from 29.5.13 to 29.5.14 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1622">codecov/codecov-action#1622</a></li> <li>build(deps): bump actions/checkout from 4.2.1 to 4.2.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1625">codecov/codecov-action#1625</a></li> <li>build(deps): bump github/codeql-action from 3.26.13 to 3.27.0 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1624">codecov/codecov-action#1624</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/eslint-plugin</code> from 8.11.0 to 8.12.1 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1626">codecov/codecov-action#1626</a></li> <li>build(deps-dev): bump <code>@typescript-eslint/eslint-plugin</code> from 8.12.1 to 8.12.2 by <a href="https://github.com/dependabot"><code>@dependabot</code></a> in <a href="https://redirect.github.com/codecov/codecov-action/pull/1629">codecov/codecov-action#1629</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md">codecov/codecov-action's changelog</a>.</em></p> <blockquote> <h2>4.0.0-beta.2</h2> <h3>Fixes</h3> <ul> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/1085">#1085</a> not adding -n if empty to do-upload command</li> </ul> <h2>4.0.0-beta.1</h2> <p><code>v4</code> represents a move from the <a href="https://github.com/codecov/uploader">universal uploader</a> to the <a href="https://github.com/codecov/codecov-cli">Codecov CLI</a>. Although this will unlock new features for our users, the CLI is not yet at feature parity with the universal uploader.</p> <h3>Breaking Changes</h3> <ul> <li>No current support for <code>aarch64</code> and <code>alpine</code> architectures.</li> <li>Tokenless uploading is unsuported</li> <li>Various arguments to the Action have been removed</li> </ul> <h2>3.1.4</h2> <h3>Fixes</h3> <ul> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/967">#967</a> Fix typo in README.md</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/971">#971</a> fix: add back in working dir</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/969">#969</a> fix: CLI option names for uploader</li> </ul> <h3>Dependencies</h3> <ul> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/970">#970</a> build(deps-dev): bump <code>@types/node</code> from 18.15.12 to 18.16.3</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/979">#979</a> build(deps-dev): bump <code>@types/node</code> from 20.1.0 to 20.1.2</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/981">#981</a> build(deps-dev): bump <code>@types/node</code> from 20.1.2 to 20.1.4</li> </ul> <h2>3.1.3</h2> <h3>Fixes</h3> <ul> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/960">#960</a> fix: allow for aarch64 build</li> </ul> <h3>Dependencies</h3> <ul> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/957">#957</a> build(deps-dev): bump jest-junit from 15.0.0 to 16.0.0</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/958">#958</a> build(deps): bump openpgp from 5.7.0 to 5.8.0</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/959">#959</a> build(deps-dev): bump <code>@types/node</code> from 18.15.10 to 18.15.12</li> </ul> <h2>3.1.2</h2> <h3>Fixes</h3> <ul> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/718">#718</a> Update README.md</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/851">#851</a> Remove unsupported path_to_write_report argument</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/898">#898</a> codeql-analysis.yml</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/901">#901</a> Update README to contain correct information - inputs and negate feature</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/955">#955</a> fix: add in all the extra arguments for uploader</li> </ul> <h3>Dependencies</h3> <ul> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/819">#819</a> build(deps): bump openpgp from 5.4.0 to 5.5.0</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/835">#835</a> build(deps): bump node-fetch from 3.2.4 to 3.2.10</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/840">#840</a> build(deps): bump ossf/scorecard-action from 1.1.1 to 2.0.4</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/841">#841</a> build(deps): bump <code>@actions/core</code> from 1.9.1 to 1.10.0</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/843">#843</a> build(deps): bump <code>@actions/github</code> from 5.0.3 to 5.1.1</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/869">#869</a> build(deps): bump node-fetch from 3.2.10 to 3.3.0</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/872">#872</a> build(deps-dev): bump jest-junit from 13.2.0 to 15.0.0</li> <li><a href="https://redirect.github.com/codecov/codecov-action/issues/879">#879</a> build(deps): bump decode-uri-component from 0.2.0 to 0.2.2</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/codecov/codecov-action/commit/5c47607acb93fed5485fdbf7232e8a31425f672a"><code>5c47607</code></a> fix: override commit and pr values for PR cases (<a href="https://redirect.github.com/codecov/codecov-action/issues/1657">#1657</a>)</li> <li><a href="https://github.com/codecov/codecov-action/commit/3b1354a6c45db9f1008891f4eafc1a7e94ce1d18"><code>3b1354a</code></a> chore(release): 5.0.1 (<a href="https://redirect.github.com/codecov/codecov-action/issues/1656">#1656</a>)</li> <li><a href="https://github.com/codecov/codecov-action/commit/2e2a9c6d5862d22e0f8cfb59d46bc47bf8eb1fe0"><code>2e2a9c6</code></a> fix: update tokenless branch logic (<a href="https://redirect.github.com/codecov/codecov-action/issues/1650">#1650</a>)</li> <li><a href="https://github.com/codecov/codecov-action/commit/cfc521b7a1dcdbcf0ecf149c162c19ff9bd9568c"><code>cfc521b</code></a> Update README.md</li> <li><a href="https://github.com/codecov/codecov-action/commit/06425412c8015bc1ab2385b41c7ea204f77b91bf"><code>0642541</code></a> fix: use marketplace v5 badge (<a href="https://redirect.github.com/codecov/codecov-action/issues/1646">#1646</a>)</li> <li><a href="https://github.com/codecov/codecov-action/commit/968872560f81e7bdde9272853e65f2507c0eca7c"><code>9688725</code></a> Update README.md</li> <li><a href="https://github.com/codecov/codecov-action/commit/2112eaec1bedbdabc7e93d5312449d0d62b07c60"><code>2112eae</code></a> chore(deps): bump wrapper to 0.0.23 (<a href="https://redirect.github.com/codecov/codecov-action/issues/1644">#1644</a>)</li> <li><a href="https://github.com/codecov/codecov-action/commit/193421c5b3d1aca4209c9754f224ca0d85729414"><code>193421c</code></a> fixL use the correct source (<a href="https://redirect.github.com/codecov/codecov-action/issues/1642">#1642</a>)</li> <li><a href="https://github.com/codecov/codecov-action/commit/6018df70b05b191502ce08196e76e30ea3578615"><code>6018df7</code></a> fix: update container builds (<a href="https://redirect.github.com/codecov/codecov-action/issues/1640">#1640</a>)</li> <li><a href="https://github.com/codecov/codecov-action/commit/eff1a643d6887ee5935d4ca343e9076dc377d416"><code>eff1a64</code></a> fix: add missing vars (<a href="https://redirect.github.com/codecov/codecov-action/issues/1638">#1638</a>)</li> <li>Additional commits viewable in <a href="https://github.com/codecov/codecov-action/compare/v4...v5">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Migrates pallet-session-benchmarking to bench V2 syntax. Part of: * paritytech#6202 --------- Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com> Co-authored-by: Giuseppe Re <giuseppe.re@parity.io>
…ch#6300) Migrates pallet-offences-benchmarking to benchmark v2 syntax. Part of: * paritytech#6202 --------- Co-authored-by: Giuseppe Re <giuseppe.re@parity.io>
This PR contains following changes in release pipelines: - re-built Create Release Draft workflow - binaries builds are moved completely to the `Release - Build node release candidate` flow - added upload of all the release artefacts to the S3 - adjusted `Release - Publish Docker Image` workflow, so that it will match now the new release flow.
…6735) On some systems trying to re-create the output directory will lead to an error. Fixes paritytech/subxt#1876 --------- Co-authored-by: Bastian Köcher <git@kchr.de>
Bump Asset-Hub westend spec version --------- Co-authored-by: GitHub Action <action@github.com>
Add publish-check-compile workflow This Applies staged prdocs then configures crate deps to pull from crates.io for our already published crates and local paths for things to be published. Then runs cargo check on the result. This results in a build state consitent with that of publish time and should catch compile errors that we would of otherwise ran into mid pubish. This acts as a supplement to the check-semver job. check-semver works on a high level and judges what changes are incorrect and why. This job just runs the change, sees if it compiles, and if not spits out a compile error.
) This PR provides a number of improvements around handling limits and priorities in the fork-aware transaction pool. #### Notes to reviewers. #### Following are the notable changes: 1. #### [Better support](paritytech@414ec3c) for `Usurped` transactions When any view reports an `Usurped` transaction (replaced by other with higher priority) it is removed from all the views (also inactive). Removal is implemented by simply submitting usurper transaction to all the views. It is also ensured that usurped tx will not sneak into the `view_store` in newly created view (this is why `ViewStore::pending_txs_replacements` was added). 1. #### [`TimedTransactionSource`](paritytech@f10590f) introduced: Every view now has an information when the transaction entered the pool. Enforce limits (now only for future txs) uses this timestamp to find worst transactions. Having common timestamp ensures coherent assessment of the transaction's importance across different views. This also could later be used to select which ready transaction shall be dropped. 1. #### `DroppedWatcher`: [improved logic](paritytech@560db28) for future transactions For future transaction - if the last referencing view is removed, the transaction will be dropped from the pool. This prevents future unincluded and un-promoted transactions from staying in the pool for long time. #### And some minor changes: 1. [simplified](paritytech@2d0bbf8) the flow in `update_view_with_mempool` (code duplication + minor bug fix). 2. `graph::BasePool`: [handling priorities](paritytech@c9f2d39) for future transaction improved (previously transaction with lower prio was reported as failed), 3. `graph::listener`: dedicated `limit_enforced`/`usurped`/`dropped` [calls added](paritytech@7b58a68), 4. flaky test [fixed](paritytech@e0a7bc6) 5. new tests added, related to: paritytech#5809 --------- Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Iulian Barbu <14218860+iulianbarbu@users.noreply.github.com>
No need to have them in the umbrella crate also by having them in the umbrella crate they are bleeding into the normal build. --------- Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Alexander Theißen <alex.theissen@me.com>
… final in S3 (paritytech#6748) This PR adds the pipeline, that moves release candidate artefacts from `polkadot-stableYYMM-rcX` bucket to the one that is going to be the final `polkadot-stableYYMM` (bucket name matches the tag name). So that it could be used for publishing later without a need to re-build it again.
## [0.8.3] - 2024-12-03 This release includes two fixes for small memory leaks on edge-cases in the notification and request-response protocols. ### Fixed - req-resp: Fix memory leak of pending substreams ([paritytech#297](paritytech/litep2p#297)) - notification: Fix memory leak of pending substreams ([paritytech#296](paritytech/litep2p#296)) cc @paritytech/networking --------- Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
…ech#6754) This PR has changes to the `command-backport.yml`: - swapped action that creates backports PRs from master to the stable branches and added another app with more permissions
…ytech#6419) # Description Closes paritytech#6335. ## Integration N/A ## Review Notes `RuntimeTarget` is converted to return path to the custom target JSON file --------- Signed-off-by: Jarkko Sakkinen <jarkko@parity.io> Co-authored-by: Alexander Theißen <alex.theissen@me.com> Co-authored-by: Koute <koute@users.noreply.github.com>
…#6636) # Description These changes should enhance the quality of benchmark results by excluding worker initialization time from the measurements and reducing the overall duration of the benchmarks. ### Integration It should not affect any downstream projects. ### Review Notes - Workers initialize once per benchmark to avoid side effects. - The listen address is assigned when a worker starts. - Benchmarks are divided into two groups by size to create better charts for comparison. --------- Co-authored-by: GitHub Action <action@github.com>
Closed in favor of the upstream paritytech#6706 |
Resolves: https://linear.app/snowfork/issue/SNO-1205