git.delta.rocks / unique-network / refs/commits / 065da6d880d8

difftreelog

Merge pull request #849 from UniqueNetwork/feature/xcm-local-stand

Yaroslav Bolyukin2023-01-30parents: #40343ed #9c8c345.patch.diff
in: master
Feature/xcm local stand

16 files changed

modified.docker/additional/xcm-rococo/.envdiffbeforeafterboth
--- a/.docker/additional/xcm-rococo/.env
+++ b/.docker/additional/xcm-rococo/.env
@@ -1,16 +1 @@
-RUST_TOOLCHAIN=nightly-2022-10-09
-UNIQUE_BRANCH="develop"
-
-POLKADOT_BUILD_BRANCH=release-v0.9.34
-
-KARURA_BUILD_BRANCH=release-karura-2.9.5
-ACALA_BUILD_BRANCH=2.9.6
-
-MOONRIVER_BUILD_BRANCH=v0.26.1
-MOONBEAM_BUILD_BRANCH=v0.26.1
-
-STATEMINE_BUILD_BRANCH=parachains-v9271
-STATEMINT_BUILD_BRANCH=parachains-v9271
-WESTMINT_BUILD_BRANCH=parachains-v9290
-
-POLKADOT_LAUNCH_BRANCH="unique-network"
+../../../.env
\ No newline at end of file
deleted.docker/additional/xcm-rococo/Dockerfile-xcm-opal-rococodiffbeforeafterboth
--- a/.docker/additional/xcm-rococo/Dockerfile-xcm-opal-rococo
+++ /dev/null
@@ -1,87 +0,0 @@
-ARG CHAIN=opal
-ARG LAUNCH_CONFIG_FILE=launch-config-xcm-opal-rococo.json
-
-# ===== Rust builder =====
-FROM ubuntu:20.04 as rust-builder
-LABEL maintainer="Unique.Network"
-
-ARG RUST_TOOLCHAIN
-ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-ENV CARGO_HOME="/cargo-home"
-ENV PATH="/cargo-home/bin:$PATH"
-ENV TZ=UTC
-RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
-
-RUN apt-get update && \
-    apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \
-    apt-get clean && \
-    rm -r /var/lib/apt/lists/*
-
-RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
-
-RUN rustup toolchain uninstall $(rustup toolchain list) && \
-    rustup toolchain install ${RUST_TOOLCHAIN} && \
-    rustup default ${RUST_TOOLCHAIN} && \
-    rustup target list --installed && \
-    rustup show
-RUN rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN}
-
-RUN mkdir /unique_parachain
-WORKDIR /unique_parachain
-
-# ===== BUILD ======
-FROM rust-builder as builder-unique
-
-ARG UNIQUE_BRANCH
-ARG CHAIN
-ARG LAUNCH_CONFIG_FILE
-ARG PROFILE=release
-
-WORKDIR /unique_parachain
-#COPY . .
-
-RUN git clone -b ${UNIQUE_BRANCH} https://github.com/UniqueNetwork/unique-chain.git . && \
-#    cd unique-chain && \
-  cargo build --features=${CHAIN}-runtime --$PROFILE
-
-# ===== RUN ======
-FROM ubuntu:20.04
-
-ARG POLKADOT_LAUNCH_BRANCH
-ARG LAUNCH_CONFIG_FILE
-ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH
-ENV LAUNCH_CONFIG_FILE $LAUNCH_CONFIG_FILE
-
-RUN apt-get -y update && \
-      apt-get -y install curl git && \
-      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
-      export NVM_DIR="$HOME/.nvm" && \
-      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-      nvm install v16.16.0 && \
-      nvm use v16.16.0
-
-RUN git clone https://github.com/uniquenetwork/polkadot-launch -b ${POLKADOT_LAUNCH_BRANCH}
-
-RUN export NVM_DIR="$HOME/.nvm" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    cd /polkadot-launch && \
-    npm install --global yarn && \
-    yarn install
-
-COPY --from=builder-unique /unique_parachain/.docker/xcm-config/${LAUNCH_CONFIG_FILE} /polkadot-launch/
-
-COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/
-COPY --from=uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
-COPY --from=uniquenetwork/builder-cumulus:${STATEMINE_BUILD_BRANCH} /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus
-COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
-
-EXPOSE 9844
-EXPOSE 9944
-EXPOSE 9946
-EXPOSE 9947
-EXPOSE 9948
-
-CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    cd /polkadot-launch && \
-    yarn start ${LAUNCH_CONFIG_FILE}
added.docker/additional/xcm-rococo/Dockerfile-xcm-opal-rococo.tempdiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/Dockerfile-xcm-opal-rococo.temp
@@ -0,0 +1,78 @@
+FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot
+FROM uniquenetwork/builder-cumulus:{{ STATEMINE_BUILD_BRANCH }} as cumulus
+
+# ===== Rust builder =====
+FROM ubuntu:20.04 as rust-builder
+LABEL maintainer="Unique.Network"
+
+ENV CARGO_HOME="/cargo-home"
+ENV PATH="/cargo-home/bin:$PATH"
+ENV TZ=UTC
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+RUN apt-get update && \
+    apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \
+    apt-get clean && \
+    rm -r /var/lib/apt/lists/*
+
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
+
+RUN rustup toolchain uninstall $(rustup toolchain list) && \
+    rustup toolchain install {{ RUST_TOOLCHAIN }} && \
+    rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup target list --installed && \
+    rustup show
+RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
+
+RUN mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+# ===== BUILD ======
+FROM rust-builder as builder-unique
+
+ARG BRANCH
+ARG PROFILE=release
+
+WORKDIR /unique_parachain
+#COPY . .
+
+RUN git clone -b {{ BRANCH }} https://github.com/UniqueNetwork/unique-chain.git . && \
+#    cd unique-chain && \
+  cargo build --features=opal-runtime --$PROFILE
+
+# ===== RUN ======
+FROM ubuntu:20.04
+
+RUN apt-get -y update && \
+      apt-get -y install curl git && \
+      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
+      export NVM_DIR="$HOME/.nvm" && \
+      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+      nvm install v16.16.0 && \
+      nvm use v16.16.0
+
+RUN git clone https://github.com/uniquenetwork/polkadot-launch -b {{ POLKADOT_LAUNCH_BRANCH }}
+
+RUN export NVM_DIR="$HOME/.nvm" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    cd /polkadot-launch && \
+    npm install --global yarn && \
+    yarn install
+
+COPY --from=builder-unique /unique_parachain/.docker/additional/xcm-rococo/launch-config-xcm-opal-rococo.json /polkadot-launch/launch-config.json
+
+COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/
+COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+COPY --from=cumulus /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus
+COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
+
+EXPOSE 9844
+EXPOSE 9944
+EXPOSE 9946
+EXPOSE 9947
+EXPOSE 9948
+
+CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    cd /polkadot-launch && \
+    yarn start launch-config.json
deleted.docker/additional/xcm-rococo/Dockerfile-xcm-quartz-rococodiffbeforeafterboth
--- a/.docker/additional/xcm-rococo/Dockerfile-xcm-quartz-rococo
+++ /dev/null
@@ -1,91 +0,0 @@
-ARG CHAIN=quartz
-ARG LAUNCH_CONFIG_FILE=launch-config-xcm-quartz-rococo.json
-
-# ===== Rust builder =====
-FROM ubuntu:20.04 as rust-builder
-LABEL maintainer="Unique.Network"
-
-ARG RUST_TOOLCHAIN
-ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-ENV CARGO_HOME="/cargo-home"
-ENV PATH="/cargo-home/bin:$PATH"
-ENV TZ=UTC
-RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
-
-RUN apt-get update && \
-    apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \
-    apt-get clean && \
-    rm -r /var/lib/apt/lists/*
-
-RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
-
-RUN rustup toolchain uninstall $(rustup toolchain list) && \
-    rustup toolchain install ${RUST_TOOLCHAIN} && \
-    rustup default ${RUST_TOOLCHAIN} && \
-    rustup target list --installed && \
-    rustup show
-RUN rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN}
-
-RUN mkdir /unique_parachain
-WORKDIR /unique_parachain
-
-# ===== BUILD ======
-FROM rust-builder as builder-unique
-
-ARG UNIQUE_BRANCH
-ARG CHAIN
-ARG LAUNCH_CONFIG_FILE
-ARG PROFILE=release
-
-WORKDIR /unique_parachain
-#COPY . .
-
-RUN git clone -b ${UNIQUE_BRANCH} https://github.com/UniqueNetwork/unique-chain.git . && \
-#    cd unique-chain && \
-  cargo build --features=${CHAIN}-runtime --$PROFILE
-
-# ===== RUN ======
-FROM ubuntu:20.04
-
-ARG POLKADOT_LAUNCH_BRANCH
-ARG LAUNCH_CONFIG_FILE
-ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH
-ENV LAUNCH_CONFIG_FILE $LAUNCH_CONFIG_FILE
-
-RUN apt-get -y update && \
-      apt-get -y install curl git && \
-      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
-      export NVM_DIR="$HOME/.nvm" && \
-      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-      nvm install v16.16.0 && \
-      nvm use v16.16.0
-
-RUN git clone https://github.com/uniquenetwork/polkadot-launch -b ${POLKADOT_LAUNCH_BRANCH}
-
-RUN export NVM_DIR="$HOME/.nvm" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    cd /polkadot-launch && \
-    npm install --global yarn && \
-    yarn install
-
-COPY --from=builder-unique /unique_parachain/.docker/xcm-config/${LAUNCH_CONFIG_FILE} /polkadot-launch/
-COPY --from=builder-unique /unique_parachain/.docker/xcm-config/5validators.jsonnet /polkadot-launch/5validators.jsonnet
-COPY --from=builder-unique /unique_parachain/.docker/xcm-config/minBondFix.jsonnet /polkadot-launch/minBondFix.jsonnet
-
-COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/
-COPY --from=uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
-COPY --from=uniquenetwork/builder-moonbeam:${MOONRIVER_BUILD_BRANCH} /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/
-COPY --from=uniquenetwork/builder-cumulus:${STATEMINE_BUILD_BRANCH} /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus
-COPY --from=uniquenetwork/builder-acala:${KARURA_BUILD_BRANCH} /unique_parachain/Acala/target/production/acala /acala/target/release/
-COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
-
-EXPOSE 9844
-EXPOSE 9944
-EXPOSE 9946
-EXPOSE 9947
-EXPOSE 9948
-
-CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    cd /polkadot-launch && \
-    yarn start ${LAUNCH_CONFIG_FILE}
added.docker/additional/xcm-rococo/Dockerfile-xcm-quartz-rococo.tempdiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/Dockerfile-xcm-quartz-rococo.temp
@@ -0,0 +1,84 @@
+FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot
+FROM uniquenetwork/builder-moonbeam:{{ MOONRIVER_BUILD_BRANCH }} as moonbeam
+FROM uniquenetwork/builder-cumulus:{{ STATEMINE_BUILD_BRANCH }} as cumulus
+FROM uniquenetwork/builder-acala:{{ KARURA_BUILD_BRANCH }} as acala
+
+# ===== Rust builder =====
+FROM ubuntu:20.04 as rust-builder
+LABEL maintainer="Unique.Network"
+
+ENV CARGO_HOME="/cargo-home"
+ENV PATH="/cargo-home/bin:$PATH"
+ENV TZ=UTC
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+RUN apt-get update && \
+    apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \
+    apt-get clean && \
+    rm -r /var/lib/apt/lists/*
+
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
+
+RUN rustup toolchain uninstall $(rustup toolchain list) && \
+    rustup toolchain install {{ RUST_TOOLCHAIN }} && \
+    rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup target list --installed && \
+    rustup show
+RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
+
+RUN mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+# ===== BUILD ======
+FROM rust-builder as builder-unique
+
+ARG BRANCH
+ARG PROFILE=release
+
+WORKDIR /unique_parachain
+#COPY . .
+
+RUN git clone -b {{ BRANCH }} https://github.com/UniqueNetwork/unique-chain.git . && \
+#    cd unique-chain && \
+  cargo build --features=quartz-runtime --$PROFILE
+
+# ===== RUN ======
+FROM ubuntu:20.04
+
+RUN apt-get -y update && \
+      apt-get -y install curl git && \
+      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
+      export NVM_DIR="$HOME/.nvm" && \
+      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+      nvm install v16.16.0 && \
+      nvm use v16.16.0
+
+RUN git clone https://github.com/uniquenetwork/polkadot-launch -b {{ POLKADOT_LAUNCH_BRANCH }}
+
+RUN export NVM_DIR="$HOME/.nvm" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    cd /polkadot-launch && \
+    npm install --global yarn && \
+    yarn install
+
+COPY --from=builder-unique /unique_parachain/.docker/additional/xcm-rococo/launch-config-xcm-quartz-rococo.json /polkadot-launch/launch-config.json
+COPY --from=builder-unique /unique_parachain/.docker/xcm-config/5validators.jsonnet /polkadot-launch/5validators.jsonnet
+COPY --from=builder-unique /unique_parachain/.docker/xcm-config/minBondFix.jsonnet /polkadot-launch/minBondFix.jsonnet
+
+COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/
+COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+COPY --from=moonbeam /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/
+COPY --from=cumulus /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus
+COPY --from=acala /unique_parachain/Acala/target/production/acala /acala/target/release/
+COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
+
+EXPOSE 9844
+EXPOSE 9944
+EXPOSE 9946
+EXPOSE 9947
+EXPOSE 9948
+
+CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    cd /polkadot-launch && \
+    yarn start launch-config.json
deleted.docker/additional/xcm-rococo/Dockerfile-xcm-unique-rococodiffbeforeafterboth
--- a/.docker/additional/xcm-rococo/Dockerfile-xcm-unique-rococo
+++ /dev/null
@@ -1,91 +0,0 @@
-ARG CHAIN=unique
-ARG LAUNCH_CONFIG_FILE=launch-config-xcm-unique-rococo.json
-
-# ===== Rust builder =====
-FROM ubuntu:20.04 as rust-builder
-LABEL maintainer="Unique.Network"
-
-ARG RUST_TOOLCHAIN
-ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-ENV CARGO_HOME="/cargo-home"
-ENV PATH="/cargo-home/bin:$PATH"
-ENV TZ=UTC
-RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
-
-RUN apt-get update && \
-    apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \
-    apt-get clean && \
-    rm -r /var/lib/apt/lists/*
-
-RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
-
-RUN rustup toolchain uninstall $(rustup toolchain list) && \
-    rustup toolchain install ${RUST_TOOLCHAIN} && \
-    rustup default ${RUST_TOOLCHAIN} && \
-    rustup target list --installed && \
-    rustup show
-RUN rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN}
-
-RUN mkdir /unique_parachain
-WORKDIR /unique_parachain
-
-# ===== BUILD ======
-FROM rust-builder as builder-unique
-
-ARG UNIQUE_BRANCH
-ARG CHAIN
-ARG LAUNCH_CONFIG_FILE
-ARG PROFILE=release
-
-WORKDIR /unique_parachain
-#COPY . .
-
-RUN git clone -b ${UNIQUE_BRANCH} https://github.com/UniqueNetwork/unique-chain.git . && \
-#    cd unique-chain && \
-  cargo build --features=${CHAIN}-runtime --$PROFILE
-
-# ===== RUN ======
-FROM ubuntu:20.04
-
-ARG POLKADOT_LAUNCH_BRANCH
-ARG LAUNCH_CONFIG_FILE
-ENV POLKADOT_LAUNCH_BRANCH $POLKADOT_LAUNCH_BRANCH
-ENV LAUNCH_CONFIG_FILE $LAUNCH_CONFIG_FILE
-
-RUN apt-get -y update && \
-      apt-get -y install curl git && \
-      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
-      export NVM_DIR="$HOME/.nvm" && \
-      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-      nvm install v16.16.0 && \
-      nvm use v16.16.0
-
-RUN git clone https://github.com/uniquenetwork/polkadot-launch -b ${POLKADOT_LAUNCH_BRANCH}
-
-RUN export NVM_DIR="$HOME/.nvm" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    cd /polkadot-launch && \
-    npm install --global yarn && \
-    yarn install
-
-COPY --from=builder-unique /unique_parachain/.docker/xcm-config/${LAUNCH_CONFIG_FILE} /polkadot-launch/
-COPY --from=builder-unique /unique_parachain/.docker/xcm-config/5validators.jsonnet /polkadot-launch/5validators.jsonnet
-COPY --from=builder-unique /unique_parachain/.docker/xcm-config/minBondFix.jsonnet /polkadot-launch/minBondFix.jsonnet
-
-COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/
-COPY --from=uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
-COPY --from=uniquenetwork/builder-moonbeam:${MOONBEAM_BUILD_BRANCH} /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/
-COPY --from=uniquenetwork/builder-cumulus:${STATEMINT_BUILD_BRANCH} /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus
-COPY --from=uniquenetwork/builder-acala:${ACALA_BUILD_BRANCH} /unique_parachain/Acala/target/production/acala /acala/target/release/
-COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
-
-EXPOSE 9844
-EXPOSE 9944
-EXPOSE 9946
-EXPOSE 9947
-EXPOSE 9948
-
-CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    cd /polkadot-launch && \
-    yarn start ${LAUNCH_CONFIG_FILE}
added.docker/additional/xcm-rococo/Dockerfile-xcm-unique-rococo.tempdiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/Dockerfile-xcm-unique-rococo.temp
@@ -0,0 +1,84 @@
+FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot
+FROM uniquenetwork/builder-moonbeam:{{ MOONBEAM_BUILD_BRANCH }} as moonbeam
+FROM uniquenetwork/builder-cumulus:{{ STATEMINT_BUILD_BRANCH }} as cumulus
+FROM uniquenetwork/builder-acala:{{ ACALA_BUILD_BRANCH }} as acala
+
+# ===== Rust builder =====
+FROM ubuntu:20.04 as rust-builder
+LABEL maintainer="Unique.Network"
+
+ENV CARGO_HOME="/cargo-home"
+ENV PATH="/cargo-home/bin:$PATH"
+ENV TZ=UTC
+RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
+
+RUN apt-get update && \
+    apt-get install -y curl cmake pkg-config libssl-dev git clang llvm libudev-dev protobuf-compiler && \
+    apt-get clean && \
+    rm -r /var/lib/apt/lists/*
+
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
+
+RUN rustup toolchain uninstall $(rustup toolchain list) && \
+    rustup toolchain install {{ RUST_TOOLCHAIN }} && \
+    rustup default {{ RUST_TOOLCHAIN }} && \
+    rustup target list --installed && \
+    rustup show
+RUN rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }}
+
+RUN mkdir /unique_parachain
+WORKDIR /unique_parachain
+
+# ===== BUILD ======
+FROM rust-builder as builder-unique
+
+ARG BRANCH
+ARG PROFILE=release
+
+WORKDIR /unique_parachain
+#COPY . .
+
+RUN git clone -b {{ BRANCH }} https://github.com/UniqueNetwork/unique-chain.git . && \
+#    cd unique-chain && \
+  cargo build --features=unique-runtime --$PROFILE
+
+# ===== RUN ======
+FROM ubuntu:20.04
+
+RUN apt-get -y update && \
+      apt-get -y install curl git && \
+      curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
+      export NVM_DIR="$HOME/.nvm" && \
+      [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+      nvm install v16.16.0 && \
+      nvm use v16.16.0
+
+RUN git clone https://github.com/uniquenetwork/polkadot-launch -b {{ POLKADOT_LAUNCH_BRANCH }}
+
+RUN export NVM_DIR="$HOME/.nvm" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    cd /polkadot-launch && \
+    npm install --global yarn && \
+    yarn install
+
+COPY --from=builder-unique /unique_parachain/.docker/additional/xcm-rococo/launch-config-xcm-unique-rococo.json /polkadot-launch/launch-config.json
+COPY --from=builder-unique /unique_parachain/.docker/xcm-config/5validators.jsonnet /polkadot-launch/5validators.jsonnet
+COPY --from=builder-unique /unique_parachain/.docker/xcm-config/minBondFix.jsonnet /polkadot-launch/minBondFix.jsonnet
+
+COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/
+COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+COPY --from=moonbeam /unique_parachain/moonbeam/target/release/moonbeam /moonbeam/target/release/
+COPY --from=cumulus /unique_parachain/cumulus/target/release/polkadot-parachain /cumulus/target/release/cumulus
+COPY --from=acala /unique_parachain/Acala/target/production/acala /acala/target/release/
+COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
+
+EXPOSE 9844
+EXPOSE 9944
+EXPOSE 9946
+EXPOSE 9947
+EXPOSE 9948
+
+CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    cd /polkadot-launch && \
+    yarn start launch-config.json
modified.docker/additional/xcm-rococo/docker-compose-xcm-opal-rococo.ymldiffbeforeafterboth
--- a/.docker/additional/xcm-rococo/docker-compose-xcm-opal-rococo.yml
+++ b/.docker/additional/xcm-rococo/docker-compose-xcm-opal-rococo.yml
@@ -4,10 +4,9 @@
   xcm_opal_rococo:
     build:
       context: .
-      dockerfile: .Dockerfile-xcm-opal-rococo
+      dockerfile: ./Dockerfile-xcm-opal-rococo
     container_name: xcm-opal-rococo
-    image: xcm-opal-rococo:latest
-    env_file: .env
+    image: xcm-opal-rococo
     expose:
       - 9844
       - 9944
@@ -20,7 +19,4 @@
       - 127.0.0.1:9946:9946
       - 127.0.0.1:9947:9947
       - 127.0.0.1:9948:9948
-    logging:
-      options:
-        max-size: "1m"
-        max-file: "3"
+
modified.docker/additional/xcm-rococo/docker-compose-xcm-quartz-rococo.ymldiffbeforeafterboth
--- a/.docker/additional/xcm-rococo/docker-compose-xcm-quartz-rococo.yml
+++ b/.docker/additional/xcm-rococo/docker-compose-xcm-quartz-rococo.yml
@@ -4,10 +4,9 @@
   xcm_quartz_rococo:
     build:
       context: .
-      dockerfile: .Dockerfile-xcm-quartz-rococo
+      dockerfile: ./Dockerfile-xcm-quartz-rococo
     container_name: xcm-quartz-rococo
-    image: xcm-quartz-rococo:latest
-    env_file: .env
+    image: xcm-quartz-rococo
     expose:
       - 9844
       - 9944
@@ -20,7 +19,4 @@
       - 127.0.0.1:9946:9946
       - 127.0.0.1:9947:9947
       - 127.0.0.1:9948:9948
-    logging:
-      options:
-        max-size: "1m"
-        max-file: "3"
+
modified.docker/additional/xcm-rococo/docker-compose-xcm-unique-rococo.ymldiffbeforeafterboth
--- a/.docker/additional/xcm-rococo/docker-compose-xcm-unique-rococo.yml
+++ b/.docker/additional/xcm-rococo/docker-compose-xcm-unique-rococo.yml
@@ -4,10 +4,9 @@
   xcm_unique_rococo:
     build:
       context: .
-      dockerfile: .Dockerfile-xcm-unique-rococo
+      dockerfile: ./Dockerfile-xcm-unique-rococo
     container_name: xcm-unique-rococo
-    image: xcm-unique-rococo:latest
-    env_file: .env
+    image: xcm-unique-rococo
     expose:
       - 9844
       - 9944
@@ -20,7 +19,4 @@
       - 127.0.0.1:9946:9946
       - 127.0.0.1:9947:9947
       - 127.0.0.1:9948:9948
-    logging:
-      options:
-        max-size: "1m"
-        max-file: "3"
+
added.docker/additional/xcm-rococo/launch-config-xcm-opal-rococo.jsondiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/launch-config-xcm-opal-rococo.json
@@ -0,0 +1,135 @@
+{
+    "relaychain": {
+        "bin": "/polkadot/target/release/polkadot",
+        "chain": "rococo-local",
+        "chainInitializer": [
+                "chainql",
+                "--tla-code=spec=import '${spec}'",
+                "5validators.jsonnet"
+            ],	
+        "nodes": [
+            {
+                "name": "alice",
+                "wsPort": 9844,
+                "rpcPort": 9843,
+                "port": 30444,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "bob",
+                "wsPort": 9855,
+                "rpcPort": 9854,
+                "port": 30555,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "charlie",
+                "wsPort": 9866,
+                "rpcPort": 9865,
+                "port": 30666,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "dave",
+                "wsPort": 9877,
+                "rpcPort": 9876,
+                "port": 30777,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "eve",
+                "wsPort": 9888,
+                "rpcPort": 9887,
+                "port": 30888,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            }
+
+        ],
+        "genesis": {
+            "runtime": {
+                "runtime_genesis_config": {
+                    "parachainsConfiguration": {
+                        "config": {
+                            "validation_upgrade_frequency": 1,
+                            "validation_upgrade_delay": 1
+                        }
+                    }
+                }
+            }
+        }
+    },
+    "parachains": [
+        {
+            "bin": "/unique-chain/target/release/unique-collator",
+            "id": "2095",
+            "balance": "1000000000000000000000000",
+            "nodes": [
+                {
+                    "port": 31200,
+                    "wsPort": 9944,
+                    "rpcPort": 9933,
+                    "name": "alice",
+                    "flags": [
+                       "--unsafe-rpc-external",
+                       "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",
+                       "--unsafe-ws-external"
+		    ]
+                }
+            ]
+        },
+        {
+            "bin": "/cumulus/target/release/cumulus",
+            "id": "1000",
+            "chain": "westmint-local",
+            "balance": "1000000000000000000000000",
+            "nodes": [
+                {
+                    "wsPort": 9948,
+                    "port": 31204,
+                    "name": "alice",
+                    "flags": [
+                       "--unsafe-rpc-external",
+                       "--unsafe-ws-external"
+                    ]
+                }
+            ]
+        }
+    ],
+    "simpleParachains": [],
+    "hrmpChannels": [
+        {
+            "sender": 2095,
+            "recipient": 1000,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        },
+        {
+            "sender": 1000,
+            "recipient": 2095,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        }
+    ],
+    "finalization": false
+}
+
added.docker/additional/xcm-rococo/launch-config-xcm-quartz-rococo.jsondiffbeforeafterboth
after · .docker/additional/xcm-rococo/launch-config-xcm-quartz-rococo.json
1{2    "relaychain": {3        "bin": "/polkadot/target/release/polkadot",4        "chain": "rococo-local",5        "chainInitializer": [6                "chainql",7                "--tla-code=spec=import '${spec}'",8                "5validators.jsonnet"9            ],	10        "nodes": [11            {12                "name": "alice",13                "wsPort": 9844,14                "rpcPort": 9843,15                "port": 30444,16                "flags": [17                    "--unsafe-rpc-external",18                    "--unsafe-ws-external",19                    "-lparachain::candidate_validation=debug"20                ]21            },22            {23                "name": "bob",24                "wsPort": 9855,25                "rpcPort": 9854,26                "port": 30555,27                "flags": [28                    "--unsafe-rpc-external",29                    "--unsafe-ws-external",30                    "-lparachain::candidate_validation=debug"31                ]32            },33            {34                "name": "charlie",35                "wsPort": 9866,36                "rpcPort": 9865,37                "port": 30666,38                "flags": [39                    "--unsafe-rpc-external",40                    "--unsafe-ws-external",41                    "-lparachain::candidate_validation=debug"42                ]43            },44            {45                "name": "dave",46                "wsPort": 9877,47                "rpcPort": 9876,48                "port": 30777,49                "flags": [50                    "--unsafe-rpc-external",51                    "--unsafe-ws-external",52                    "-lparachain::candidate_validation=debug"53                ]54            },55            {56                "name": "eve",57                "wsPort": 9888,58                "rpcPort": 9887,59                "port": 30888,60                "flags": [61                    "--unsafe-rpc-external",62                    "--unsafe-ws-external",63                    "-lparachain::candidate_validation=debug"64                ]65            }6667        ],68        "genesis": {69            "runtime": {70                "runtime_genesis_config": {71                    "parachainsConfiguration": {72                        "config": {73                            "validation_upgrade_frequency": 1,74                            "validation_upgrade_delay": 175                        }76                    }77                }78            }79        }80    },81    "parachains": [82        {83            "bin": "/unique-chain/target/release/unique-collator",84            "id": "2095",85            "balance": "1000000000000000000000000",86            "nodes": [87                {88                    "port": 31200,89                    "wsPort": 9944,90                    "rpcPort": 9933,91                    "name": "alice",92                    "flags": [93                       "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",94                       "--unsafe-rpc-external",95                       "--unsafe-ws-external"96		    ]97                }98            ]99        },100        {101            "bin": "/acala/target/release/acala",102            "id": "2000",103            "chain":  "karura-dev",104            "balance": "1000000000000000000000",105            "chainInitializer": [106                "chainql",107                "-e",108                "(import '${spec}') {id+: '-local'}"109            ],	              110            "nodes": [111                {112                    "wsPort": 9946,113                    "port": 31202,114                    "name": "alice",115                    "flags": [116                       "--unsafe-rpc-external",117                       "--unsafe-ws-external"118                     ]119                }120              ]121        },122        {123            "bin": "/moonbeam/target/release/moonbeam",124            "id": 2023,125            "balance": "1000000000000000000000",126            "chain": "moonriver-local",127            "chainInitializer": [128                "chainql",129                "--tla-code=spec=import '${spec}'",130                "minBondFix.jsonnet"131            ],		    132            "nodes": [133                {134                    "wsPort": 9947,135                    "port": 31203,136                    "name": "alice",137                    "flags": [138                       "--unsafe-rpc-external",139                       "--unsafe-ws-external",140                        "--",141                        "--execution=wasm"142                    ]143                }144            ]145        },146        {147            "bin": "/cumulus/target/release/cumulus",148            "id": "1000",149            "chain": "statemine-local",150            "balance": "1000000000000000000000000",151            "nodes": [152                {153                    "wsPort": 9948,154                    "port": 31204,155                    "name": "alice",156                    "flags": [157                       "--unsafe-rpc-external",158                       "--unsafe-ws-external"159                    ]160                }161            ]162        }163    ],164    "simpleParachains": [],165    "hrmpChannels": [166        {167            "sender": 2095,168            "recipient": 2000,169            "maxCapacity": 8,170            "maxMessageSize": 512171        },172        {173            "sender": 2000,174            "recipient": 2095,175            "maxCapacity": 8,176            "maxMessageSize": 512177        },178        {179            "sender": 2095,180            "recipient": 2023,181            "maxCapacity": 8,182            "maxMessageSize": 512183        },184        {185            "sender": 2023,186            "recipient": 2095,187            "maxCapacity": 8,188            "maxMessageSize": 512189        },190        {191            "sender": 2095,192            "recipient": 1000,193            "maxCapacity": 8,194            "maxMessageSize": 512195        },196        {197            "sender": 1000,198            "recipient": 2095,199            "maxCapacity": 8,200            "maxMessageSize": 512201        }202    ],203    "finalization": false204}205
added.docker/additional/xcm-rococo/launch-config-xcm-unique-rococo.jsondiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/launch-config-xcm-unique-rococo.json
@@ -0,0 +1,200 @@
+{
+    "relaychain": {
+        "bin": "/polkadot/target/release/polkadot",
+        "chain": "rococo-local",
+        "chainInitializer": [
+                "chainql",
+                "--tla-code=spec=import '${spec}'",
+                "5validators.jsonnet"
+            ],	
+        "nodes": [
+            {
+                "name": "alice",
+                "wsPort": 9844,
+                "rpcPort": 9843,
+                "port": 30444,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "bob",
+                "wsPort": 9855,
+                "rpcPort": 9854,
+                "port": 30555,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "charlie",
+                "wsPort": 9866,
+                "rpcPort": 9865,
+                "port": 30666,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "dave",
+                "wsPort": 9877,
+                "rpcPort": 9876,
+                "port": 30777,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            },
+            {
+                "name": "eve",
+                "wsPort": 9888,
+                "rpcPort": 9887,
+                "port": 30888,
+                "flags": [
+                    "--unsafe-rpc-external",
+                    "--unsafe-ws-external",
+                    "-lparachain::candidate_validation=debug"
+                ]
+            }
+
+        ],
+        "genesis": {
+            "runtime": {
+                "runtime_genesis_config": {
+                    "parachainsConfiguration": {
+                        "config": {
+                            "validation_upgrade_frequency": 1,
+                            "validation_upgrade_delay": 1
+                        }
+                    }
+                }
+            }
+        }
+    },
+    "parachains": [
+        {
+            "bin": "/unique-chain/target/release/unique-collator",
+            "id": "2037",
+            "balance": "1000000000000000000000000",
+            "nodes": [
+                {
+                    "port": 31200,
+                    "wsPort": 9944,
+                    "rpcPort": 9933,
+                    "name": "alice",
+                    "flags": [
+                        "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug",
+                        "--unsafe-rpc-external",
+                        "--unsafe-ws-external"
+		    ]
+                }
+            ]
+        },
+        {
+            "bin": "/acala/target/release/acala",
+            "id": "2000",
+            "chain":  "acala-dev",
+            "balance": "1000000000000000000000",
+            "chainInitializer": [
+                    "chainql",
+                    "-e",
+                    "(import '${spec}') {id+: '-local'}"
+            ],	    
+            "nodes": [
+                {
+                    "wsPort": 9946,
+                    "port": 31202,
+                    "name": "alice",
+                    "flags": [
+                        "--unsafe-rpc-external",
+                        "--unsafe-ws-external"
+		            ]
+                }
+              ]
+        },
+        {
+            "bin": "/moonbeam/target/release/moonbeam",
+            "id": "2004",
+            "balance": "1000000000000000000000",
+            "chain": "moonbeam-local",
+            "nodes": [
+                {
+                    "wsPort": 9947,
+                    "port": 31203,
+                    "name": "alice",
+                    "flags": [
+                        "--unsafe-rpc-external",
+                        "--unsafe-ws-external",
+  			            "--",
+                        "--execution=wasm"
+                    ]
+                }
+            ]
+        },
+        {
+            "bin": "/cumulus/target/release/cumulus",
+            "id": "1000",
+            "chain": "statemint-local",
+            "balance": "1000000000000000000000000",
+            "nodes": [
+                {
+                    "wsPort": 9948,
+                    "port": 31204,
+                    "name": "alice",
+                    "flags": [
+                        "--unsafe-rpc-external",
+                        "--unsafe-ws-external"
+		    ]
+                }
+            ]
+        }
+    ],
+    "simpleParachains": [],
+    "hrmpChannels": [
+        {
+            "sender": 2037,
+            "recipient": 2000,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        },
+        {
+            "sender": 2000,
+            "recipient": 2037,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        },
+        {
+            "sender": 2037,
+            "recipient": 2004,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        },
+        {
+            "sender": 2004,
+            "recipient": 2037,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        },
+        {
+            "sender": 2037,
+            "recipient": 1000,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        },
+        {
+            "sender": 1000,
+            "recipient": 2037,
+            "maxCapacity": 8,
+            "maxMessageSize": 512
+        }
+    ],
+    "finalization": false
+}
+
added.docker/additional/xcm-rococo/launch-opal-xcm-stand.shdiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/launch-opal-xcm-stand.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+#export BRANCH=$1
+
+echo -n "Set the branch for clone unique-chain: "
+read BRANCH
+
+if [ -z ${BRANCH} ]; then
+    echo "Ветка для клонирования не задана"
+    exit
+else
+    export BRANCH=$BRANCH
+    echo "BRANCH="$BRANCH
+fi
+
+pip install j2cli
+
+# CHAIN=opal
+# export $CHAIN
+
+export PATH="$PATH:$HOME/.local/bin"
+
+for i in `cat .env`; do export $i; done
+
+j2 Dockerfile-xcm-opal-rococo.temp > Dockerfile-xcm-opal-rococo
+#cat Dockerfile-xcm-opal-rococo.tmp | envsubst > Dockerfile-xcm-opal-rococo
+#exit
+docker-compose -f ./docker-compose-xcm-opal-rococo.yml up -d
added.docker/additional/xcm-rococo/launch-quartz-xcm-stand.shdiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/launch-quartz-xcm-stand.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+#export BRANCH=$1
+
+echo -n "Set the branch for clone unique-chain: "
+read BRANCH
+
+if [ -z ${BRANCH} ]; then
+    echo "Ветка для клонирования не задана"
+    exit
+else
+    export BRANCH=$BRANCH
+    echo "BRANCH="$BRANCH
+fi
+
+pip install j2cli
+
+# CHAIN=quartz
+# export $CHAIN
+
+export PATH="$PATH:$HOME/.local/bin"
+
+for i in `cat .env`; do export $i; done
+
+j2 Dockerfile-xcm-quartz-rococo.temp > Dockerfile-xcm-quartz-rococo
+#cat Dockerfile-xcm-quartz-rococo.tmp | envsubst > Dockerfile-xcm-quartz-rococo
+#exit
+docker-compose -f ./docker-compose-xcm-quartz-rococo.yml up -d
added.docker/additional/xcm-rococo/launch-unique-xcm-stand.shdiffbeforeafterboth
--- /dev/null
+++ b/.docker/additional/xcm-rococo/launch-unique-xcm-stand.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+#export BRANCH=$1
+
+echo -n "Set the branch for clone unique-chain: "
+read BRANCH
+
+if [ -z ${BRANCH} ]; then
+    echo "Ветка для клонирования не задана"
+    exit
+else
+    export BRANCH=$BRANCH
+    echo "BRANCH="$BRANCH
+fi
+
+pip install j2cli
+
+# CHAIN=quartz
+# export $CHAIN
+
+export PATH="$PATH:$HOME/.local/bin"
+
+for i in `cat .env`; do export $i; done
+
+j2 Dockerfile-xcm-unique-rococo.temp > Dockerfile-xcm-unique-rococo
+#cat Dockerfile-xcm-unique-rococo.tmp | envsubst > Dockerfile-xcm-unique-rococo
+#exit
+docker-compose -f ./docker-compose-xcm-unique-rococo.yml up -d