From f42817b182209020806081e70e65792371fbeb4b Mon Sep 17 00:00:00 2001 From: valentinfernandez1 <33705477+valentinfernandez1@users.noreply.github.com> Date: Mon, 12 Jun 2023 05:16:10 -0300 Subject: [PATCH 01/10] Validate `MultiLocation` for asset-registry (#224) * Validate location for register_reserve_asset * fmt * fmt * fmt * validator refactor * fmt --- pallets/asset-registry/src/lib.rs | 37 +++-- pallets/asset-registry/src/tests.rs | 235 ++++++++++++++++++++-------- 2 files changed, 197 insertions(+), 75 deletions(-) diff --git a/pallets/asset-registry/src/lib.rs b/pallets/asset-registry/src/lib.rs index 2ee81829..f5545aed 100644 --- a/pallets/asset-registry/src/lib.rs +++ b/pallets/asset-registry/src/lib.rs @@ -22,8 +22,8 @@ pub mod pallet { use frame_system::pallet_prelude::*; use xcm::latest::{ - Junction::{GeneralIndex, PalletInstance, Parachain}, - Junctions, MultiLocation, + Junction::{AccountId32, AccountKey20, GeneralIndex, PalletInstance}, + MultiLocation, }; #[pallet::pallet] @@ -97,13 +97,7 @@ pub mod pallet { // verify MultiLocation is valid ensure!( - matches!( - asset_multi_location, - MultiLocation { - parents: 1, - interior: Junctions::X3(Parachain(_), PalletInstance(_), GeneralIndex(_)) - } - ), + Self::valid_asset_location(&asset_multi_location), Error::::WrongMultiLocation ); @@ -137,6 +131,31 @@ pub mod pallet { } } + impl Pallet { + //Validates that the location points to an asset (Native, Frame based, Erc20) as described + // in the xcm-format: https://github.com/paritytech/xcm-format#concrete-identifiers + fn valid_asset_location(location: &MultiLocation) -> bool { + let (split_multilocation, last_junction) = location.clone().split_last_interior(); + + let check = matches!( + last_junction, + Some(AccountId32 { .. }) | + Some(AccountKey20 { .. }) | + Some(PalletInstance(_)) | + None + ); + + check | + match last_junction { + Some(GeneralIndex(_)) => { + let penultimate = split_multilocation.last(); + matches!(penultimate, Some(PalletInstance(_))) + }, + _ => false, + } + } + } + impl xcm_primitives::AssetMultiLocationGetter> for Pallet { fn get_asset_multi_location(asset_id: AssetIdOf) -> Option { AssetIdMultiLocation::::get(asset_id) diff --git a/pallets/asset-registry/src/tests.rs b/pallets/asset-registry/src/tests.rs index 2b5271ff..4430c08b 100644 --- a/pallets/asset-registry/src/tests.rs +++ b/pallets/asset-registry/src/tests.rs @@ -12,84 +12,187 @@ const STATEMINE_ASSET_MULTI_LOCATION: MultiLocation = MultiLocation { ), }; -#[test] -fn register_reserve_asset_works() { - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, - )); - - assert_eq!( - AssetIdMultiLocation::::get(LOCAL_ASSET_ID), - Some(STATEMINE_ASSET_MULTI_LOCATION) - ); - assert_eq!( - AssetMultiLocationId::::get(STATEMINE_ASSET_MULTI_LOCATION), - Some(LOCAL_ASSET_ID) - ); - }); -} +mod register_reserve_assest { + use super::*; + + #[test] + fn register_reserve_asset_works() { + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + STATEMINE_ASSET_MULTI_LOCATION, + )); + + assert_eq!( + AssetIdMultiLocation::::get(LOCAL_ASSET_ID), + Some(STATEMINE_ASSET_MULTI_LOCATION) + ); + assert_eq!( + AssetMultiLocationId::::get(STATEMINE_ASSET_MULTI_LOCATION), + Some(LOCAL_ASSET_ID) + ); + }); + } -#[test] -fn cannot_register_unexisting_asset() { - new_test_ext().execute_with(|| { - let unexisting_asset_id = 9999; + #[test] + fn cannot_register_unexisting_asset() { + new_test_ext().execute_with(|| { + let unexisting_asset_id = 9999; - assert_noop!( - AssetRegistry::register_reserve_asset( + assert_noop!( + AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + unexisting_asset_id, + STATEMINE_ASSET_MULTI_LOCATION, + ), + Error::::AssetDoesNotExist + ); + }); + } + + #[test] + fn cannot_double_register() { + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( RuntimeOrigin::root(), - unexisting_asset_id, + LOCAL_ASSET_ID, STATEMINE_ASSET_MULTI_LOCATION, + )); + + assert_noop!( + AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + STATEMINE_ASSET_MULTI_LOCATION, + ), + Error::::AssetAlreadyRegistered + ); + }); + } + + #[test] + fn valid_locations_succced() { + let native_frame_based_currency = + MultiLocation { parents: 1, interior: X2(Parachain(1000), PalletInstance(1)) }; + let multiasset_pallet_instance = MultiLocation { + parents: 1, + interior: X3(Parachain(1000), PalletInstance(1), GeneralIndex(2)), + }; + let relay_native_currency = MultiLocation { parents: 1, interior: Junctions::Here }; + let erc20_frame_sm_asset = MultiLocation { + parents: 1, + interior: X3( + Parachain(1000), + PalletInstance(2), + AccountId32 { network: Any, id: [0; 32] }, ), - Error::::AssetDoesNotExist - ); - }); -} + }; + let erc20_ethereum_sm_asset = MultiLocation { + parents: 1, + interior: X2(Parachain(2000), AccountKey20 { network: Any, key: [0; 20] }), + }; -#[test] -fn cannot_double_register() { - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, - )); - - assert_noop!( - AssetRegistry::register_reserve_asset( + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( RuntimeOrigin::root(), LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, + native_frame_based_currency, + )); + }); + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + multiasset_pallet_instance, + )); + }); + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + relay_native_currency, + )); + }); + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + erc20_frame_sm_asset, + )); + }); + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + erc20_ethereum_sm_asset, + )); + }); + } + + #[test] + fn invalid_locations_fail() { + let governance_location = MultiLocation { + parents: 1, + interior: X2( + Parachain(1000), + Plurality { id: BodyId::Executive, part: BodyPart::Voice }, ), - Error::::AssetAlreadyRegistered - ); - }); + }; + let invalid_general_index = + MultiLocation { parents: 1, interior: X2(Parachain(1000), GeneralIndex(1u128)) }; + + new_test_ext().execute_with(|| { + assert_noop!( + AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + governance_location, + ), + Error::::WrongMultiLocation + ); + + assert_noop!( + AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + invalid_general_index, + ), + Error::::WrongMultiLocation + ); + }) + } } -#[test] -fn unregister_reserve_asset_works() { - new_test_ext().execute_with(|| { - assert_ok!(AssetRegistry::register_reserve_asset( - RuntimeOrigin::root(), - LOCAL_ASSET_ID, - STATEMINE_ASSET_MULTI_LOCATION, - )); +mod unregister_reserve_asset { + use super::*; - assert_ok!(AssetRegistry::unregister_reserve_asset(RuntimeOrigin::root(), LOCAL_ASSET_ID)); + #[test] + fn unregister_reserve_asset_works() { + new_test_ext().execute_with(|| { + assert_ok!(AssetRegistry::register_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID, + STATEMINE_ASSET_MULTI_LOCATION, + )); - assert!(AssetIdMultiLocation::::get(LOCAL_ASSET_ID).is_none()); - assert!(AssetMultiLocationId::::get(STATEMINE_ASSET_MULTI_LOCATION).is_none()); - }); -} + assert_ok!(AssetRegistry::unregister_reserve_asset( + RuntimeOrigin::root(), + LOCAL_ASSET_ID + )); + + assert!(AssetIdMultiLocation::::get(LOCAL_ASSET_ID).is_none()); + assert!(AssetMultiLocationId::::get(STATEMINE_ASSET_MULTI_LOCATION).is_none()); + }); + } -#[test] -fn cannot_register_unregistered_asset() { - new_test_ext().execute_with(|| { - assert_noop!( - AssetRegistry::unregister_reserve_asset(RuntimeOrigin::root(), LOCAL_ASSET_ID), - Error::::AssetIsNotRegistered - ); - }); + #[test] + fn cannot_register_unregistered_asset() { + new_test_ext().execute_with(|| { + assert_noop!( + AssetRegistry::unregister_reserve_asset(RuntimeOrigin::root(), LOCAL_ASSET_ID), + Error::::AssetIsNotRegistered + ); + }); + } } From 05decb2f2edee2ef165abc7a458d514f1036f8df Mon Sep 17 00:00:00 2001 From: Alexander Kalankhodzhaev Date: Mon, 12 Jun 2023 17:26:29 +0700 Subject: [PATCH 02/10] fix `pallet_xcm_benchmarks::generic::claim_asset` benchmark (#226) --- runtime/trappist/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/trappist/src/lib.rs b/runtime/trappist/src/lib.rs index 8e7e8a95..4687353e 100644 --- a/runtime/trappist/src/lib.rs +++ b/runtime/trappist/src/lib.rs @@ -1136,7 +1136,7 @@ impl_runtime_apis! { fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { let origin = RelayLocation::get(); - let assets: MultiAssets = (Concrete(RelayLocation::get()), 1_000 * UNITS).into(); + let assets: MultiAssets = (Concrete(SelfReserve::get()), 1_000 * UNITS).into(); let ticket = MultiLocation { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } From 3edeaa333076b0d3ef1220b4621e36ee3a62ba4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 11:09:11 +0200 Subject: [PATCH 03/10] Bump docker/login-action from 2.1.0 to 2.2.0 (#219) Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/f4ef78c080cd8ba55a85445d5b36e214a81df20a...465a07811f14bebb1938fbed4728c6a1ff8901fc) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/publish-docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index d9b9cf99..bd9acb5f 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -13,7 +13,7 @@ jobs: uses: actions/checkout@v3 - name: Log in to Docker Hub - uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0 + uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2.2.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From b9fbb819b0af181e1b8bcb97224ef954aa75c8dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Jun 2023 11:09:30 +0200 Subject: [PATCH 04/10] Bump docker/metadata-action from 4.4.0 to 4.5.0 (#218) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.4.0 to 4.5.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/c4ee3adeed93b1fa6a762f209fb01608c1a22f1e...2c0bd771b40637d97bf205cbccdd294a32112176) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build_docker.yml | 2 +- .github/workflows/publish-docker.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_docker.yml b/.github/workflows/build_docker.yml index 2e04e462..c181194a 100644 --- a/.github/workflows/build_docker.yml +++ b/.github/workflows/build_docker.yml @@ -14,7 +14,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@c4ee3adeed93b1fa6a762f209fb01608c1a22f1e # v4.4.0 + uses: docker/metadata-action@2c0bd771b40637d97bf205cbccdd294a32112176 # v4.5.0 with: images: paritytech/trappist diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index bd9acb5f..74025d6c 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -20,7 +20,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@c4ee3adeed93b1fa6a762f209fb01608c1a22f1e # v4.4.0 + uses: docker/metadata-action@2c0bd771b40637d97bf205cbccdd294a32112176 # v4.5.0 with: images: paritytech/trappist From 624b4b280b937512194916aeaa59606038e72631 Mon Sep 17 00:00:00 2001 From: Valentin Fernandez Date: Mon, 12 Jun 2023 14:27:01 -0300 Subject: [PATCH 05/10] fix network id in tests --- pallets/asset-registry/src/tests.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pallets/asset-registry/src/tests.rs b/pallets/asset-registry/src/tests.rs index 4430c08b..dce9bea5 100644 --- a/pallets/asset-registry/src/tests.rs +++ b/pallets/asset-registry/src/tests.rs @@ -85,12 +85,12 @@ mod register_reserve_assest { interior: X3( Parachain(1000), PalletInstance(2), - AccountId32 { network: Any, id: [0; 32] }, + AccountId32 { network: Some(Rococo), id: [0; 32] }, ), }; let erc20_ethereum_sm_asset = MultiLocation { parents: 1, - interior: X2(Parachain(2000), AccountKey20 { network: Any, key: [0; 20] }), + interior: X2(Parachain(2000), AccountKey20 { network: Some(Ethereum { chain_id: 56 }), key: [0; 20] }), }; new_test_ext().execute_with(|| { From 51c90ee6df794020187f0438ad1254e26835e80e Mon Sep 17 00:00:00 2001 From: Valentin Fernandez Date: Mon, 12 Jun 2023 14:32:13 -0300 Subject: [PATCH 06/10] fix network id in tests --- pallets/asset-registry/src/tests.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pallets/asset-registry/src/tests.rs b/pallets/asset-registry/src/tests.rs index dce9bea5..eff1e3a7 100644 --- a/pallets/asset-registry/src/tests.rs +++ b/pallets/asset-registry/src/tests.rs @@ -90,7 +90,10 @@ mod register_reserve_assest { }; let erc20_ethereum_sm_asset = MultiLocation { parents: 1, - interior: X2(Parachain(2000), AccountKey20 { network: Some(Ethereum { chain_id: 56 }), key: [0; 20] }), + interior: X2( + Parachain(2000), + AccountKey20 { network: Some(Ethereum { chain_id: 56 }), key: [0; 20] }, + ), }; new_test_ext().execute_with(|| { From 015258e1b49362fa3c125dca80870bfc81c06b42 Mon Sep 17 00:00:00 2001 From: Valentin Fernandez Date: Mon, 12 Jun 2023 17:09:47 -0300 Subject: [PATCH 07/10] Add missing import --- runtime/trappist/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/trappist/src/lib.rs b/runtime/trappist/src/lib.rs index 4687353e..cab7b0b2 100644 --- a/runtime/trappist/src/lib.rs +++ b/runtime/trappist/src/lib.rs @@ -76,7 +76,7 @@ pub use parachains_common::{ use impls::{DealWithFees, LockdownDmpHandler, RuntimeBlackListedCalls, XcmExecutionManager}; use xcm_config::{ - CollatorSelectionUpdateOrigin, RelayLocation, TrustBackedAssetsConvertedConcreteId, + CollatorSelectionUpdateOrigin, RelayLocation, SelfReserve, TrustBackedAssetsConvertedConcreteId, }; // Polkadot imports From 2a410db170de54234faf583c24bd24109529bd4c Mon Sep 17 00:00:00 2001 From: Alexander Kalankhodzhaev Date: Tue, 13 Jun 2023 14:16:04 +0700 Subject: [PATCH 08/10] include preimage to benchmarks --- runtime/trappist/Cargo.toml | 2 ++ runtime/trappist/src/lib.rs | 1 + 2 files changed, 3 insertions(+) diff --git a/runtime/trappist/Cargo.toml b/runtime/trappist/Cargo.toml index 72aeddc1..d48309da 100644 --- a/runtime/trappist/Cargo.toml +++ b/runtime/trappist/Cargo.toml @@ -145,6 +145,7 @@ std = [ "pallet-dex-rpc-runtime-api/std", "pallet-identity/std", "pallet-lockdown-mode/std", + "pallet-preimage/std", "pallet-multisig/std", "pallet-insecure-randomness-collective-flip/std", "pallet-scheduler/std", @@ -194,6 +195,7 @@ runtime-benchmarks = [ "pallet-dex/runtime-benchmarks", "pallet-identity/runtime-benchmarks", "pallet-lockdown-mode/runtime-benchmarks", + "pallet-preimage/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", "pallet-scheduler/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", diff --git a/runtime/trappist/src/lib.rs b/runtime/trappist/src/lib.rs index cab7b0b2..b12a1a89 100644 --- a/runtime/trappist/src/lib.rs +++ b/runtime/trappist/src/lib.rs @@ -742,6 +742,7 @@ mod benches { [pallet_collective, Council] [pallet_democracy, Democracy] [pallet_lockdown_mode, LockdownMode] + [pallet_preimage, Preimage] [pallet_treasury, Treasury] [pallet_assets, Assets] [pallet_dex, Dex] From 53f884eecbe21958056ec07aa07f7d1c91d2643a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 13:42:50 +0200 Subject: [PATCH 09/10] Bump docker/metadata-action from 4.5.0 to 4.6.0 (#233) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/2c0bd771b40637d97bf205cbccdd294a32112176...818d4b7b91585d195f67373fd9cb0332e31a7175) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build_docker.yml | 2 +- .github/workflows/publish-docker.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_docker.yml b/.github/workflows/build_docker.yml index c181194a..b9d5fdd5 100644 --- a/.github/workflows/build_docker.yml +++ b/.github/workflows/build_docker.yml @@ -14,7 +14,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@2c0bd771b40637d97bf205cbccdd294a32112176 # v4.5.0 + uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 # v4.6.0 with: images: paritytech/trappist diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 74025d6c..6eba337a 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -20,7 +20,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@2c0bd771b40637d97bf205cbccdd294a32112176 # v4.5.0 + uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 # v4.6.0 with: images: paritytech/trappist From 0e199a49df34738f85c178db0023474b5002df09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Jun 2023 13:42:31 +0200 Subject: [PATCH 10/10] Bump docker/build-push-action from 4.0.0 to 4.1.1 (#232) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.1. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/3b5e8027fcad23fda98b2e3ac259d8d67585f671...2eb1c1961a95fc15694676618e422e8ba1d63825) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build_docker.yml | 2 +- .github/workflows/publish-docker.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build_docker.yml b/.github/workflows/build_docker.yml index b9d5fdd5..48c202e1 100644 --- a/.github/workflows/build_docker.yml +++ b/.github/workflows/build_docker.yml @@ -19,7 +19,7 @@ jobs: images: paritytech/trappist - name: Build Docker image - uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 #v4.0.0 + uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 #v4.1.1 with: file: docker/trappist-parachain.dockerfile push: false diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index 6eba337a..840e29d9 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -25,7 +25,7 @@ jobs: images: paritytech/trappist - name: Build and push Docker image - uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 #v4.0.0 + uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825 #v4.1.1 with: file: docker/trappist-parachain.dockerfile push: true