git.delta.rocks / unique-network / refs/commits / 0c35b0644e0b

difftreelog

Merge remote-tracking branch 'origin/develop' into feature/polkadot-v0.9.12

Yaroslav Bolyukin2021-10-25parents: #99eb74b #01d9f60.patch.diff
in: master

14 files changed

modified.dockerignorediffbeforeafterboth
--- a/.dockerignore
+++ b/.dockerignore
@@ -2,5 +2,8 @@
 .github/
 doc/
 target/
+tests/
 chain-data*/
 smart_contract/
+Dockerfile-parachain
+docker-compose-tests-parachain.yml
modifiedCargo.lockdiffbeforeafterboth
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -385,16 +385,16 @@
 
 [[package]]
 name = "backtrace"
-version = "0.3.61"
+version = "0.3.62"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7a905d892734eea339e896738c14b9afce22b5318f64b951e70bf3844419b01"
+checksum = "091bcdf2da9950f96aa522681ce805e6857f6ca8df73833d35736ab2dc78e152"
 dependencies = [
  "addr2line",
  "cc",
  "cfg-if 1.0.0",
  "libc",
  "miniz_oxide",
- "object",
+ "object 0.27.1",
  "rustc-demangle",
 ]
 
@@ -3179,9 +3179,9 @@
 
 [[package]]
 name = "http-body"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5"
+checksum = "1ff4f84919677303da5f147645dbea6b1881f368d03ac84e1dc09031ebd7b2c6"
 dependencies = [
  "bytes 1.1.0",
  "http",
@@ -3217,9 +3217,9 @@
 
 [[package]]
 name = "hyper"
-version = "0.14.13"
+version = "0.14.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15d1cfb9e4f68655fa04c01f59edb405b6074a0f7118ea881e5026e4a1cd8593"
+checksum = "2b91bb1f221b6ea1f1e4371216b70f40748774c2fb5971b450c07773fb92d26b"
 dependencies = [
  "bytes 1.1.0",
  "futures-channel",
@@ -3724,7 +3724,7 @@
  "pallet-offences-benchmarking",
  "pallet-proxy",
  "pallet-recovery",
- "pallet-scheduler 4.0.0-dev",
+ "pallet-scheduler",
  "pallet-session",
  "pallet-session-benchmarking",
  "pallet-society",
@@ -3832,9 +3832,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.104"
+version = "0.2.105"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b2f96d100e1cf1929e7719b7edb3b90ab5298072638fccd77be9ce942ecdfce"
+checksum = "869d572136620d55835903746bcb5cdc54cb2851fd0aeec53220b4bb65ef3013"
 
 [[package]]
 name = "libloading"
@@ -5093,12 +5093,12 @@
  "pallet-nft-charge-transaction",
  "pallet-nft-transaction-payment",
  "pallet-randomness-collective-flip",
- "pallet-scheduler 3.0.0",
  "pallet-sudo",
  "pallet-timestamp",
  "pallet-transaction-payment",
  "pallet-transaction-payment-rpc-runtime-api",
  "pallet-treasury",
+ "pallet-unq-scheduler",
  "pallet-vesting",
  "pallet-xcm",
  "parachain-info",
@@ -5244,6 +5244,15 @@
 ]
 
 [[package]]
+name = "object"
+version = "0.27.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "once_cell"
 version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6139,25 +6148,6 @@
 
 [[package]]
 name = "pallet-scheduler"
-version = "3.0.0"
-dependencies = [
- "frame-benchmarking",
- "frame-support",
- "frame-system",
- "log",
- "parity-scale-codec",
- "scale-info",
- "serde",
- "sp-core",
- "sp-io",
- "sp-runtime",
- "sp-std",
- "substrate-test-utils",
- "up-sponsorship",
-]
-
-[[package]]
-name = "pallet-scheduler"
 version = "4.0.0-dev"
 source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044"
 dependencies = [
@@ -6380,6 +6370,25 @@
 ]
 
 [[package]]
+name = "pallet-unq-scheduler"
+version = "3.0.0"
+dependencies = [
+ "frame-benchmarking",
+ "frame-support",
+ "frame-system",
+ "log",
+ "parity-scale-codec",
+ "scale-info",
+ "serde",
+ "sp-core",
+ "sp-io",
+ "sp-runtime",
+ "sp-std",
+ "substrate-test-utils",
+ "up-sponsorship",
+]
+
+[[package]]
 name = "pallet-utility"
 version = "4.0.0-dev"
 source = "git+https://github.com/paritytech/substrate.git?branch=polkadot-v0.9.12#d76f39995315ec36980908e4b99709bd14927044"
@@ -6795,9 +6804,9 @@
 
 [[package]]
 name = "pkg-config"
-version = "0.3.20"
+version = "0.3.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c9b1041b4387893b91ee6746cddfc28516aff326a3519fb2adf820932c5e6cb"
+checksum = "12295df4f294471248581bc09bef3c38a5e46f1e36d6a37353621a0c6c357e1f"
 
 [[package]]
 name = "platforms"
@@ -7584,7 +7593,7 @@
  "pallet-offences",
  "pallet-offences-benchmarking",
  "pallet-proxy",
- "pallet-scheduler 4.0.0-dev",
+ "pallet-scheduler",
  "pallet-session",
  "pallet-session-benchmarking",
  "pallet-staking",
@@ -7991,9 +8000,9 @@
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3ca011bd0129ff4ae15cd04c4eef202cadf6c51c21e47aba319b4e0501db741"
+checksum = "ed0cfbc8191465bed66e1718596ee0b0b35d5ee1f41c5df2189d0fe8bde535ba"
 
 [[package]]
 name = "primitive-types"
@@ -10005,9 +10014,9 @@
 
 [[package]]
 name = "signature"
-version = "1.3.1"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c19772be3c4dd2ceaacf03cb41d5885f2a02c4d8804884918e3a258480803335"
+checksum = "02658e48d89f2bec991f9a78e69cfa4c316f8d6a6c4ec12fae1aeb263d486788"
 
 [[package]]
 name = "simba"
@@ -11954,7 +11963,7 @@
  "lazy_static",
  "libc",
  "log",
- "object",
+ "object 0.26.2",
  "paste",
  "psm",
  "rayon",
@@ -12006,7 +12015,7 @@
  "cranelift-wasm",
  "gimli",
  "more-asserts",
- "object",
+ "object 0.26.2",
  "target-lexicon",
  "thiserror",
  "wasmparser",
@@ -12026,7 +12035,7 @@
  "indexmap",
  "log",
  "more-asserts",
- "object",
+ "object 0.26.2",
  "serde",
  "target-lexicon",
  "thiserror",
@@ -12048,7 +12057,7 @@
  "libc",
  "log",
  "more-asserts",
- "object",
+ "object 0.26.2",
  "region",
  "serde",
  "target-lexicon",
@@ -12171,7 +12180,7 @@
  "pallet-offences-benchmarking",
  "pallet-proxy",
  "pallet-recovery",
- "pallet-scheduler 4.0.0-dev",
+ "pallet-scheduler",
  "pallet-session",
  "pallet-session-benchmarking",
  "pallet-society",
modifiedDockerfile-parachaindiffbeforeafterboth
--- a/Dockerfile-parachain
+++ b/Dockerfile-parachain
@@ -1,8 +1,6 @@
-# ===== BUILD ======
-FROM phusion/baseimage:focal-1.0.0 as builder
+# ===== Rust builder =====
+FROM phusion/baseimage:focal-1.0.0 as rust-builder
 LABEL maintainer="Unique.Network"
-
-
 
 ARG RUST_TOOLCHAIN=nightly-2021-06-28
 #ARG RUST_C=1.55.0-nightly
@@ -24,52 +22,57 @@
 #RUN echo $POLKA_VERSION
 #RUN echo $NFT_BRANCH
 
-
+ENV CARGO_HOME="/cargo-home"
+ENV PATH="/cargo-home/bin:$PATH"
 
-ARG PROFILE=release
+RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
 
 RUN apt-get update && \
     apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \
     apt-get install -y cmake pkg-config libssl-dev git clang
 
-# Get project and run it
-
-#RUN git clone -b $NFT_BRANCH https://$USER:$PASS@github.com/UniqueNetwork/unique-chain.git  /nft_parachain
+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 cargo install cargo-chef
 
 RUN mkdir nft_parachain
 WORKDIR /nft_parachain
+
+# ===== Chef =====
+FROM rust-builder as chef
+
 COPY . .
+RUN cargo chef prepare --recipe-path recipe.json
 
+# ===== BUILD ======
+FROM rust-builder as builder
 
-RUN export CARGO_HOME="/cargo-home" && curl https://sh.rustup.rs -sSf | sh -s -- -y
-RUN export PATH="/cargo-home/bin:$PATH" && \
-    export CARGO_HOME="/cargo-home" && \
-    cargo fetch
+RUN mkdir nft_parachain
+WORKDIR /nft_parachain
 
-RUN export PATH="/cargo-home/bin:$PATH" && \
-    export CARGO_HOME="/cargo-home" && \
-    rustup toolchain uninstall $(rustup toolchain list) && \
-    rustup toolchain install $RUST_TOOLCHAIN && \
-#    rustup toolchain install $RUST_C && \
-    rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN && \
-    rustup default $RUST_TOOLCHAIN && \
-    rustup target list --installed && \
-    rustup show
+COPY --from=chef /nft_parachain/recipe.json recipe.json
+ARG PROFILE=release
+RUN cargo chef cook "--$PROFILE" --recipe-path recipe.json
 
-RUN export PATH="/cargo-home/bin:$PATH" && \
-    export CARGO_HOME="/cargo-home" && \
-    cargo build "--$PROFILE"
+COPY . .
+RUN cargo build "--$PROFILE"
    # && \
    # cargo test
 
+# ===== BUILD POLKADOT =====
+FROM rust-builder as builder-polkadot
 
+RUN mkdir nft_parachain
+WORKDIR /nft_parachain
 
 RUN git clone -b $POLKA_VERSION --depth 1 https://github.com/paritytech/polkadot.git && \
     cd polkadot && \
     git tag -n && \
-	export PATH="/cargo-home/bin:$PATH" && \
-	export CARGO_HOME="/cargo-home" && \
 	cargo build --release
 
 # ===== RUN ======
@@ -77,32 +80,28 @@
 FROM phusion/baseimage:focal-1.0.0
 
 ARG PROFILE=release
-
-COPY --from=builder /nft_parachain/target/$PROFILE/nft /nft_private/target/$PROFILE/
-COPY --from=builder /nft_parachain/polkadot/target/$PROFILE/polkadot /polkadot/target/$PROFILE/
 
-RUN apt-get update && \
-        apt-get dist-upgrade -y -o Dpkg::Options::="--force-confold" && \
-        apt-get install -y cmake pkg-config libssl-dev git clang
-
-RUN git clone https://github.com/paritytech/polkadot-launch.git
-
 RUN apt-get -y update && \
       apt-get -y upgrade && \
-      apt-get -y install curl && \
+      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 v15.5.0 && \
       nvm use v15.5.0
-#      npm install --save @polkadot/api && \
-#      npm install --save-dev mochawesome
 
+RUN git clone https://github.com/paritytech/polkadot-launch.git
+
+RUN export NVM_DIR="$HOME/.nvm" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    cd /polkadot-launch && \
+    npm install --global yarn && \
+    yarn
+
+COPY --from=builder /nft_parachain/target/$PROFILE/nft /nft_private/target/$PROFILE/
+COPY --from=builder-polkadot /nft_parachain/polkadot/target/$PROFILE/polkadot /polkadot/target/$PROFILE/
 
 CMD export NVM_DIR="$HOME/.nvm" && \
     [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
     cd /polkadot-launch && \
-    npm install --global yarn && \
-    yarn install && \
-    yarn build && \
     yarn start launch-config.json
deletedDockerfile-testsdiffbeforeafterboth
--- a/Dockerfile-tests
+++ /dev/null
@@ -1,35 +0,0 @@
-# ===== Integration Tests ======
-
-
-FROM ubuntu:20.04
-LABEL maintainer="UniqueNetwork.io"
-
-RUN apt -y update; apt -y upgrade; apt -y install curl
-
-
-RUN mkdir nft_parachain
-WORKDIR /nft_parachain
-
-COPY . .
-
-RUN apt-get -y update && \
-      apt-get -y upgrade && \
-      apt-get -y install curl && \
-      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 v15.5.0 && \
-      nvm use v15.5.0 && \
-      npm install --save @polkadot/api && \ 
-      npm install --save-dev mochawesome
-
-CMD sleep 60
-
-CMD export NVM_DIR="$HOME/.nvm" && \
-    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
-    cd tests && \
-    npm install --global yarn && \ 
-    yarn add mochawesome && \
-    yarn install && \
-    sleep 120 && \
-    NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}
modifiedREADME.mddiffbeforeafterboth
--- a/README.md
+++ b/README.md
@@ -302,8 +302,6 @@
 ```
 // use pallet_contracts::weights::WeightInfo;
 ...
-// use pallet_contracts::chain_extension::UncheckedFrom;
-...
 // pub use pallet_timestamp::Call as TimestampCall;
 ...
 // mod chain_extension;
modifieddocker-compose-tests-parachain.ymldiffbeforeafterboth
--- a/docker-compose-tests-parachain.yml
+++ b/docker-compose-tests-parachain.yml
@@ -31,11 +31,14 @@
     container_name: integration_tests
     image: integration_tests
     build:
-      context: ./
+      context: tests/
       dockerfile: Dockerfile-tests
+    environment:
+      RPC_URL: http://blockchain_nodes:9934/
     volumes:
-      - ./tests/src/config_docker.ts:/nft_parachain/tests/src/config.ts
-      - /home/ubuntu/mochawesome-report:/nft_parachain/tests/mochawesome-report
+      - ./tests/src/config_docker.ts:/nft_parachain/src/config.ts
+      - /home/ubuntu/mochawesome-report:/nft_parachain/mochawesome-report
+      - ./runtime_types.json:/runtime_types.json
 #    command: bash -c 'while true; do sleep 20; df -h; done'
     networks:
       - node_test_network
modifiedpallets/scheduler/Cargo.tomldiffbeforeafterboth
--- a/pallets/scheduler/Cargo.toml
+++ b/pallets/scheduler/Cargo.toml
@@ -1,5 +1,5 @@
 [package]
-name = "pallet-scheduler"
+name = "pallet-unq-scheduler"
 version = "3.0.0"
 authors = ["Parity Technologies <admin@parity.io>"]
 edition = "2018"
modifiedruntime/Cargo.tomldiffbeforeafterboth
--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -69,7 +69,7 @@
     'serde',
     'pallet-inflation/std',
     'pallet-nft/std',
-    'pallet-scheduler/std',
+    'pallet-unq-scheduler/std',
     'pallet-nft-charge-transaction/std',
     'pallet-nft-transaction-payment/std',
     'nft-data-structs/std',
@@ -360,7 +360,7 @@
 pallet-nft = { path = '../pallets/nft', default-features = false, version = '3.0.0' }
 pallet-inflation = { path = '../pallets/inflation', default-features = false, version = '3.0.0' }
 nft-data-structs = { path = '../primitives/nft', default-features = false, version = '0.9.0' }
-pallet-scheduler = { path = '../pallets/scheduler', default-features = false, version = '3.0.0' }
+pallet-unq-scheduler = { path = '../pallets/scheduler', default-features = false, version = '3.0.0' }
 # pallet-contract-helpers = { path = '../pallets/contract-helpers', default-features = false, version = '0.1.0' }
 pallet-nft-transaction-payment = { path = '../pallets/nft-transaction-payment', default-features = false, version = '3.0.0' }
 pallet-nft-charge-transaction = { path = '../pallets/nft-charge-transaction', default-features = false, version = '3.0.0' }
modifiedruntime/src/lib.rsdiffbeforeafterboth
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -764,7 +764,7 @@
 	//pallet_contract_helpers::ContractSponsorshipHandler<Runtime>,
 );
 
-impl pallet_scheduler::Config for Runtime {
+impl pallet_unq_scheduler::Config for Runtime {
 	type Event = Event;
 	type Origin = Origin;
 	type PalletsOrigin = OriginCaller;
@@ -837,7 +837,7 @@
 		// Unique Pallets
 		Inflation: pallet_inflation::{Pallet, Call, Storage} = 60,
 		Nft: pallet_nft::{Pallet, Call, Config<T>, Storage, Event<T>} = 61,
-		Scheduler: pallet_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
+		Scheduler: pallet_unq_scheduler::{Pallet, Call, Storage, Event<T>} = 62,
 		NftPayment: pallet_nft_transaction_payment::{Pallet, Call, Storage} = 63,
 		Charging: pallet_nft_charge_transaction::{Pallet, Call, Storage } = 64,
 		// ContractHelpers: pallet_contract_helpers::{Pallet, Call, Storage} = 65,
addedtests/.dockerignorediffbeforeafterboth
--- /dev/null
+++ b/tests/.dockerignore
@@ -0,0 +1,2 @@
+node_modules/
+Dockerfile-tests
addedtests/Dockerfile-testsdiffbeforeafterboth
--- /dev/null
+++ b/tests/Dockerfile-tests
@@ -0,0 +1,38 @@
+# ===== Integration Tests ======
+
+
+FROM ubuntu:20.04
+LABEL maintainer="UniqueNetwork.io"
+
+RUN apt -y update; apt -y upgrade; apt -y install curl
+
+
+RUN mkdir nft_parachain
+WORKDIR /nft_parachain
+
+RUN apt-get -y update && \
+      apt-get -y upgrade && \
+      apt-get -y install curl jq && \
+      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 v15.5.0 && \
+      nvm alias default v15.5.0 && \
+      nvm use default
+
+ENV YARN_CACHE_FOLDER ~/.yarn
+
+COPY package.json yarn.lock ./
+
+RUN export NVM_DIR="$HOME/.nvm" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    npm install --global yarn && \ 
+    yarn add mochawesome && \
+    yarn --pure-lockfile
+
+COPY . .
+
+CMD export NVM_DIR="$HOME/.nvm" && \
+    [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+    ./scripts/wait_for_first_block.sh && \
+    NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW}
deletedtests/package-lock.jsondiffbeforeafterboth

no changes

addedtests/scripts/wait_for_first_block.shdiffbeforeafterboth
--- /dev/null
+++ b/tests/scripts/wait_for_first_block.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+function do_rpc {
+	curl -s --header "Content-Type: application/json" -XPOST --data "{\"id\":1,\"jsonrpc\":\"2.0\",\"method\":\"$1\",\"params\":[$2]}" $RPC_URL
+}
+
+function is_started {
+    block_hash_rpc=$(do_rpc chain_getFinalizedHead)
+    echo Rpc response = $block_hash_rpc
+	block_hash=$(echo $block_hash_rpc | jq -r .result)
+	echo Head = $block_hash
+	block_id_hex=$(do_rpc chain_getHeader "\"$block_hash\"" | jq -r .result.number)
+	block_id=$((${block_id_hex}))
+	echo Id = $block_id
+	if (( $block_id > 1 )); then
+		return 0
+	fi
+	return 1
+}
+
+while ! is_started; do
+	echo "Waiting for first block..."
+	sleep 12
+done
+echo "Chain is running!"
modifiedtests/src/config_docker.tsdiffbeforeafterboth
--- a/tests/src/config_docker.ts
+++ b/tests/src/config_docker.ts
@@ -6,8 +6,8 @@
 import process from 'process';
 
 const config = {
-  substrateUrl: process.env.substrateUrl || 'ws://172.17.0.1:9944',
-  frontierUrl: process.env.frontierUrl || 'http://172.17.0.1:9933',
+  substrateUrl: process.env.substrateUrl || 'ws://blockchain_nodes:9944',
+  frontierUrl: process.env.frontierUrl || 'http://blockchain_nodes:9933',
 };
 
 export default config;