git.delta.rocks / unique-network / refs/commits / c6842c8d831a

difftreelog

Merge pull request #815 from UniqueNetwork/feature/sapphire-is-quartz

Yaroslav Bolyukin2022-12-29parents: #a2c419c #4dff934.patch.diff
in: master
Move sapphire to quartz

11 files changed

modified.github/workflows/forkless-update-data.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-data.yml
+++ b/.github/workflows/forkless-update-data.yml
@@ -38,14 +38,14 @@
             network {quartz}, wasm_name {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}
             network {unique}, wasm_name {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}
             network {opal}, wasm_name {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}
-            network {sapphire}, wasm_name {opal}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}
+            network {sapphire}, wasm_name {quartz}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}
 
   forkless-update-data:
     needs: execution-marix
     # The type of runner that the job will run on
     runs-on: [self-hosted-ci,large]
     timeout-minutes: 1380
-    
+
     name: ${{ matrix.network }}-data
     strategy:
       matrix:
@@ -74,7 +74,7 @@
             REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
             RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
             POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}
-            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}            
+            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}
             # POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
             # MAINNET_TAG=${{ matrix.mainnet_tag }}
             MAINNET_BRANCH=${{ matrix.mainnet_branch }}
@@ -163,7 +163,7 @@
       - name: Stop running containers
         if: always()                   # run this step always
         run: docker-compose -f ".docker/docker-compose-forkless-data.${{ matrix.network }}.yml" down --volumes
-        
+
       - name: Remove builder cache
         if: always()                   # run this step always
         run: |
modified.github/workflows/forkless-update-nodata.ymldiffbeforeafterboth
--- a/.github/workflows/forkless-update-nodata.yml
+++ b/.github/workflows/forkless-update-nodata.yml
@@ -37,7 +37,7 @@
             network {quartz}, wasm_name {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}
             network {unique}, wasm_name {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}
             network {opal}, wasm_name {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}
-            network {sapphire}, wasm_name {opal}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}
+            network {sapphire}, wasm_name {quartz}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}
 
 
   forkless-update-nodata:
@@ -53,7 +53,7 @@
 
     strategy:
       matrix:
-        include: ${{fromJson(needs.execution-marix.outputs.matrix)}}    
+        include: ${{fromJson(needs.execution-marix.outputs.matrix)}}
 
     steps:
       - name: Clean Workspace
@@ -76,7 +76,7 @@
             REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
             RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
             POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }}
-            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}            
+            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}
             # POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
             # MAINNET_TAG=${{ matrix.mainnet_tag }}
             MAINNET_BRANCH=${{ matrix.mainnet_branch }}
@@ -163,8 +163,8 @@
       - name: Show docker logs
         if: success() || failure()
         run: cat './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}/node-parachain.log'
-                
-      - name: Run Parallel tests 
+
+      - name: Run Parallel tests
         working-directory: tests
         run: |
           yarn install
@@ -175,7 +175,7 @@
           NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW}
         env:
           RPC_URL: http://127.0.0.1:9933/
-    
+
       - name: Test Report Parallel
         uses: phoenix-actions/test-reporting@v8
         id: test-report-parallel
@@ -185,10 +185,10 @@
           path: tests/mochawesome-report/test-parallel-*.json    # Path to test results
           reporter: mochawesome-json
           fail-on-error: 'false'
-          
-      - name: Run Sequential tests 
+
+      - name: Run Sequential tests
         working-directory: tests
-        if: success() || failure() 
+        if: success() || failure()
         run: |
           yarn install
           yarn add mochawesome
@@ -198,7 +198,7 @@
           NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW}
         env:
           RPC_URL: http://127.0.0.1:9933/
-    
+
       - name: Test Report Sequential
         uses: phoenix-actions/test-reporting@v8
         id: test-report-sequential
@@ -212,7 +212,7 @@
       - name: Stop running containers
         if: always()                   # run this step always
         run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down
-        
+
       - name: Remove builder cache
         if: always()                   # run this step always
         run: |
modified.github/workflows/integration-tests.ymldiffbeforeafterboth
--- a/.github/workflows/integration-tests.yml
+++ b/.github/workflows/integration-tests.yml
@@ -36,10 +36,10 @@
         with:
           matrix: |
             network {opal}, wasm_name {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}
-            network {sapphire}, wasm_name {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}
+            network {sapphire}, wasm_name {quartz}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}
             network {quartz}, wasm_name {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}
             network {unique}, wasm_name {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}
- 
+
   parallel-test:
     needs: nodes-execution-matrix
     # The type of runner that the job will run on
@@ -77,14 +77,14 @@
             REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
             RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
             POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
-            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}            
+            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}
             POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
             MAINNET_TAG=${{ matrix.mainnet_tag }}
             MAINNET_BRANCH=${{ matrix.mainnet_branch }}
             NETWORK=${{ matrix.network }}
             BRANCH=${{ github.head_ref }}
             WASM_NAME=${{ matrix.wasm_name }}
-            
+
       - name: Show build configuration
         run: cat .docker/docker-compose.node.${{ matrix.network }}.yml
 
@@ -95,7 +95,7 @@
           output_file: .docker/launch-config-forkless-nodata.json
           variables: |
             NETWORK=${{ matrix.network }}
-            
+
       - name: Show launch-config-forkless configuration
         run: cat .docker/launch-config-forkless-nodata.json
 
@@ -172,8 +172,8 @@
           path: tests/mochawesome-report/test-parallel-*.json    # Path to test results
           reporter: mochawesome-json
           fail-on-error: 'false'
-    
-             
+
+
       - name: Stop running containers
         if: always()                   # run this step always
         run: docker-compose -f ".docker/docker-compose.node.${{ matrix.network }}.yml" down --volumes
@@ -184,7 +184,7 @@
           docker builder prune -f -a
           docker system prune -f
           docker image prune -f -a
-          
+
       - name: List files in Workspace
         if: always()
         run: ls -la ./
@@ -226,14 +226,14 @@
             REPO_URL=${{ github.server_url }}/${{ github.repository }}.git
             RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
             POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
-            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}            
+            POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }}
             POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
             MAINNET_TAG=${{ matrix.mainnet_tag }}
             MAINNET_BRANCH=${{ matrix.mainnet_branch }}
             NETWORK=${{ matrix.network }}
             BRANCH=${{ github.head_ref }}
             WASM_NAME=${{ matrix.wasm_name }}
-            
+
       - name: Show build configuration
         run: cat .docker/docker-compose.node.${{ matrix.network }}.yml
 
@@ -244,7 +244,7 @@
           output_file: .docker/launch-config-forkless-nodata.json
           variables: |
             NETWORK=${{ matrix.network }}
-            
+
       - name: Show launch-config-forkless configuration
         run: cat .docker/launch-config-forkless-nodata.json
 
@@ -321,7 +321,7 @@
           path: tests/mochawesome-report/test-sequential-*.json    # Path to test results
           reporter: mochawesome-json
           fail-on-error: 'false'
-       
+
       - name: Stop running containers
         if: always()                   # run this step always
         run: docker-compose -f ".docker/docker-compose.node.${{ matrix.network }}.yml" down --volumes
@@ -332,7 +332,7 @@
           docker builder prune -f -a
           docker system prune -f
           docker image prune -f -a
-          
+
       - name: List files in Workspace
         if: always()
         run: ls -la ./
modified.github/workflows/node-only-update.ymldiffbeforeafterboth
--- a/.github/workflows/node-only-update.yml
+++ b/.github/workflows/node-only-update.yml
@@ -38,7 +38,7 @@
         with:
           matrix: |
             network {opal}, wasm_name {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}
-            network {sapphire}, wasm_name {opal}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}
+            network {sapphire}, wasm_name {quartz}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}
             network {quartz}, wasm_name {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}
             network {unique}, wasm_name {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}
 
@@ -214,7 +214,7 @@
           docker exec node-parachain kill -SIGUSR1 ${PID}
           echo "SIGUSR1 sent to Polkadot-launch PID: $PID"
           sleep 60s
-          echo -e "Show logs of node-parachain container.\n"          
+          echo -e "Show logs of node-parachain container.\n"
           docker logs ${ContainerID}
 
       - name: Get chain logs in case of docker image crashed after Polkadot Launch restart
modified.github/workflows/try-runtime.ymldiffbeforeafterboth
--- a/.github/workflows/try-runtime.yml
+++ b/.github/workflows/try-runtime.yml
@@ -34,7 +34,7 @@
         with:
           matrix: |
             network {opal}, wasm_name {opal}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}
-            network {sapphire}, wasm_name {opal}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}}
+            network {sapphire}, wasm_name {quartz}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}}
             network {quartz}, wasm_name {quartz}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}
             network {unique}, wasm_name {unique}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}
 
@@ -49,7 +49,7 @@
     strategy:
       matrix:
         include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}
-  
+
     steps:
 
       - name: Clean Workspace
@@ -79,13 +79,13 @@
 
       - name: Build the stack
         run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up --build  --force-recreate --timeout 300 --remove-orphans --exit-code-from try-runtime
- 
+
       - name: Collect Docker Logs
         if: success() || failure()
         uses: jwalton/gh-docker-logs@v2.2.0
         with:
           dest: './try-runtime-logs.${{ matrix.network }}'
-          images: 'try-runtime' 
+          images: 'try-runtime'
 
       - name: Show docker logs
         run: cat './try-runtime-logs.${{ matrix.network }}/try-runtime.log'
@@ -93,7 +93,7 @@
       - name: Stop running containers
         if: always()                   # run this step always
         run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down
-        
+
       - name: Remove builder cache
         if: always()                   # run this step always
         run: |
modifiednode/cli/Cargo.tomldiffbeforeafterboth
--- a/node/cli/Cargo.toml
+++ b/node/cli/Cargo.toml
@@ -340,7 +340,7 @@
     'opal-runtime?/try-runtime',
     'try-runtime-cli/try-runtime',
 ]
-sapphire-runtime = ['opal-runtime', 'opal-runtime/become-sapphire']
+sapphire-runtime = ['quartz-runtime', 'quartz-runtime/become-sapphire']
 pov-estimate = [
     'unique-runtime?/pov-estimate',
     'quartz-runtime?/pov-estimate',
modifiedruntime/opal/Cargo.tomldiffbeforeafterboth
--- a/runtime/opal/Cargo.toml
+++ b/runtime/opal/Cargo.toml
@@ -47,7 +47,7 @@
     'sp-runtime/runtime-benchmarks',
     'xcm-builder/runtime-benchmarks',
     'pallet-maintenance/runtime-benchmarks',
-    'cumulus-pallet-parachain-system/runtime-benchmarks'
+    'cumulus-pallet-parachain-system/runtime-benchmarks',
 ]
 try-runtime = [
     'frame-try-runtime',
@@ -196,7 +196,6 @@
     'foreign-assets',
     'pallet-test-utils',
 ]
-become-sapphire = []
 pov-estimate = []
 
 refungible = []
modifiedruntime/opal/src/lib.rsdiffbeforeafterboth
before · runtime/opal/src/lib.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617//! The Substrate Node Template runtime. This can be compiled with `#[no_std]`, ready for Wasm.1819#![cfg_attr(not(feature = "std"), no_std)]20// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.21#![recursion_limit = "1024"]22#![allow(clippy::from_over_into, clippy::identity_op)]23#![allow(clippy::fn_to_numeric_cast_with_truncation)]24// Make the WASM binary available.25#[cfg(feature = "std")]26include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));2728extern crate alloc;2930use frame_support::parameter_types;3132use sp_version::RuntimeVersion;33use sp_runtime::create_runtime_str;3435use up_common::types::*;3637#[path = "../../common/mod.rs"]38mod runtime_common;3940pub mod xcm_barrier;4142#[cfg(test)]43mod tests;4445pub use runtime_common::*;4647#[cfg(feature = "become-sapphire")]48pub const RUNTIME_NAME: &str = "sapphire";49#[cfg(feature = "become-sapphire")]50pub const TOKEN_SYMBOL: &str = "QTZ";5152#[cfg(not(feature = "become-sapphire"))]53pub const RUNTIME_NAME: &str = "opal";54#[cfg(not(feature = "become-sapphire"))]55pub const TOKEN_SYMBOL: &str = "OPL";5657/// This runtime version.58pub const VERSION: RuntimeVersion = RuntimeVersion {59	spec_name: create_runtime_str!(RUNTIME_NAME),60	impl_name: create_runtime_str!(RUNTIME_NAME),61	authoring_version: 1,62	spec_version: 936040,63	impl_version: 0,64	apis: RUNTIME_API_VERSIONS,65	transaction_version: 3,66	state_version: 0,67};6869parameter_types! {70	pub const Version: RuntimeVersion = VERSION;71}72#[cfg(feature = "become-sapphire")]73parameter_types! {74	pub const SS58Prefix: u16 = 8883;75	pub const ChainId: u64 = 8883;76}7778#[cfg(not(feature = "become-sapphire"))]79parameter_types! {80	pub const SS58Prefix: u16 = 42;81	pub const ChainId: u64 = 8882;82}8384construct_runtime!(opal);8586impl_common_runtime_apis!();8788cumulus_pallet_parachain_system::register_validate_block!(89	Runtime = Runtime,90	BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::<Runtime, Executive>,91	CheckInherents = CheckInherents,92);
after · runtime/opal/src/lib.rs
1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617//! The Substrate Node Template runtime. This can be compiled with `#[no_std]`, ready for Wasm.1819#![cfg_attr(not(feature = "std"), no_std)]20// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.21#![recursion_limit = "1024"]22#![allow(clippy::from_over_into, clippy::identity_op)]23#![allow(clippy::fn_to_numeric_cast_with_truncation)]24// Make the WASM binary available.25#[cfg(feature = "std")]26include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs"));2728extern crate alloc;2930use frame_support::parameter_types;3132use sp_version::RuntimeVersion;33use sp_runtime::create_runtime_str;3435use up_common::types::*;3637#[path = "../../common/mod.rs"]38mod runtime_common;3940pub mod xcm_barrier;4142#[cfg(test)]43mod tests;4445pub use runtime_common::*;4647pub const RUNTIME_NAME: &str = "opal";48pub const TOKEN_SYMBOL: &str = "OPL";4950/// This runtime version.51pub const VERSION: RuntimeVersion = RuntimeVersion {52	spec_name: create_runtime_str!(RUNTIME_NAME),53	impl_name: create_runtime_str!(RUNTIME_NAME),54	authoring_version: 1,55	spec_version: 936040,56	impl_version: 0,57	apis: RUNTIME_API_VERSIONS,58	transaction_version: 3,59	state_version: 0,60};6162parameter_types! {63	pub const Version: RuntimeVersion = VERSION;64	pub const SS58Prefix: u16 = 42;65	pub const ChainId: u64 = 8882;66}6768construct_runtime!(opal);6970impl_common_runtime_apis!();7172cumulus_pallet_parachain_system::register_validate_block!(73	Runtime = Runtime,74	BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::<Runtime, Executive>,75	CheckInherents = CheckInherents,76);
modifiedruntime/quartz/Cargo.tomldiffbeforeafterboth
--- a/runtime/quartz/Cargo.toml
+++ b/runtime/quartz/Cargo.toml
@@ -182,6 +182,7 @@
 ]
 limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing']
 quartz-runtime = ['refungible', 'app-promotion', 'collator-selection', 'foreign-assets']
+become-sapphire = []
 pov-estimate = []
 
 refungible = []
modifiedruntime/quartz/src/lib.rsdiffbeforeafterboth
--- a/runtime/quartz/src/lib.rs
+++ b/runtime/quartz/src/lib.rs
@@ -44,6 +44,9 @@
 
 pub use runtime_common::*;
 
+#[cfg(feature = "become-sapphire")]
+pub const RUNTIME_NAME: &str = "sapphire";
+#[cfg(not(feature = "become-sapphire"))]
 pub const RUNTIME_NAME: &str = "quartz";
 pub const TOKEN_SYMBOL: &str = "QTZ";
 
@@ -61,6 +64,15 @@
 
 parameter_types! {
 	pub const Version: RuntimeVersion = VERSION;
+}
+#[cfg(feature = "become-sapphire")]
+parameter_types! {
+	pub const SS58Prefix: u16 = 8883;
+	pub const ChainId: u64 = 8883;
+}
+
+#[cfg(not(feature = "become-sapphire"))]
+parameter_types! {
 	pub const SS58Prefix: u8 = 255;
 	pub const ChainId: u64 = 8881;
 }
modifiedtests/src/pallet-presence.test.tsdiffbeforeafterboth
--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -69,7 +69,7 @@
       const collatorSelection = ['authorship', 'session', 'collatorselection', 'identity'];
       const testUtils = 'testutils';
 
-      if (chain.eq('OPAL by UNIQUE') || chain.eq('SAPPHIRE by UNIQUE')) {
+      if (chain.eq('OPAL by UNIQUE')) {
         requiredPallets.push(
           refungible,
           foreignAssets,
@@ -77,7 +77,7 @@
           testUtils,
           ...rmrkPallets,
         );
-      } else if (chain.eq('QUARTZ by UNIQUE')) {
+      } else if (chain.eq('QUARTZ by UNIQUE') || chain.eq('SAPPHIRE by UNIQUE')) {
         requiredPallets.push(
           refungible,
           appPromotion,