diff --git a/.baedeker/collator-selection.jsonnet b/.baedeker/collator-selection.jsonnet index 4f41662da5..61c2f8e209 100644 --- a/.baedeker/collator-selection.jsonnet +++ b/.baedeker/collator-selection.jsonnet @@ -2,18 +2,21 @@ local m = import 'baedeker-library/mixin/spec.libsonnet', ; +function(relay_spec) + local relay = { name: 'relay', bin: 'bin/polkadot', validatorIdAssignment: 'staking', spec: {Genesis:{ - chain: 'rococo-local', + chain: relay_spec, modify:: m.genericRelay($), }}, nodes: { [name]: { bin: $.bin, wantedKeys: 'relay', + expectedDataPath: '/parity', }, for name in ['alice', 'bob', 'charlie', 'dave', 'eve'] }, @@ -30,6 +33,9 @@ local unique = { [name]: { bin: $.bin, wantedKeys: 'para', + extraArgs: [ + '--increase-future-pool', + ], }, for name in ['alpha', 'beta', 'gamma', 'delta'] }, diff --git a/.baedeker/forkless-data.jsonnet b/.baedeker/forkless-data.jsonnet index 288eae9ebc..38b6b9c8fb 100644 --- a/.baedeker/forkless-data.jsonnet +++ b/.baedeker/forkless-data.jsonnet @@ -17,6 +17,7 @@ local relay = { [name]: { bin: $.bin, wantedKeys: 'relay', + expectedDataPath: '/parity', }, for name in ['alice', 'bob', 'charlie', 'dave', 'eve'] }, @@ -54,6 +55,9 @@ local unique = { [name]: { bin: $.bin, wantedKeys: 'para', + extraArgs: [ + '--increase-future-pool', + ], }, for name in ['alice', 'bob'] }, diff --git a/.baedeker/node-only.jsonnet b/.baedeker/node-only.jsonnet index 797ce99827..9c816d4b9e 100644 --- a/.baedeker/node-only.jsonnet +++ b/.baedeker/node-only.jsonnet @@ -2,18 +2,21 @@ local m = import 'baedeker-library/mixin/spec.libsonnet', ; +function(relay_spec) + local relay = { name: 'relay', bin: 'bin/polkadot', validatorIdAssignment: 'staking', spec: {Genesis:{ - chain: 'rococo-local', + chain: relay_spec, modify:: m.genericRelay($), }}, nodes: { [name]: { bin: $.bin, wantedKeys: 'relay', + expectedDataPath: '/parity', }, for name in ['alice', 'bob', 'charlie', 'dave', 'eve'] }, @@ -30,6 +33,9 @@ local unique = { [name]: { bin: $.bin, wantedKeys: 'para', + extraArgs: [ + '--increase-future-pool', + ], }, for name in ['alice', 'bob'] }, diff --git a/.baedeker/rewrites.example.jsonnet b/.baedeker/rewrites.example.jsonnet index 322cbc30dd..e4289a1309 100644 --- a/.baedeker/rewrites.example.jsonnet +++ b/.baedeker/rewrites.example.jsonnet @@ -1,17 +1,25 @@ local dotenv = { - [std.splitLimit(line, "=", 2)[0]]: std.splitLimit(line, "=", 2)[1] - for line in std.split(importstr "../.env", "\n") - if line != "" - if std.member(line, "=") + [std.splitLimit(line, '=', 2)[0]]: std.splitLimit(line, '=', 2)[1] + for line in std.split(importstr '../.env', '\n') + if line != '' + if std.member(line, '=') }; function(prev, repoDir) -(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({ - 'bin/unique':'%s/target/release/unique-collator' % repoDir, - 'bin/polkadot':{dockerImage:'uniquenetwork/builder-polkadot:%s' % dotenv.POLKADOT_MAINNET_BRANCH}, - 'bin/acala':{dockerImage:'uniquenetwork/builder-acala:%s' % dotenv.ACALA_BUILD_BRANCH}, - 'bin/moonbeam':{dockerImage:'uniquenetwork/builder-moonbeam:%s' % dotenv.MOONBEAM_BUILD_BRANCH}, - 'bin/cumulus':{dockerImage:'uniquenetwork/builder-cumulus:%s' % dotenv.STATEMINE_BUILD_BRANCH}, - 'bin/astar':{dockerImage:'uniquenetwork/builder-astar:%s' % dotenv.ASTAR_BUILD_BRANCH}, - 'bin/polkadex':{dockerImage:'uniquenetwork/builder-polkadex:%s' % dotenv.POLKADEX_BUILD_BRANCH}, -})(prev) + (import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths( + { + 'bin/unique': '%s/target/release/unique-collator' % repoDir, + 'bin/polkadot': { dockerImage: 'uniquenetwork/builder-polkadot:%s' % dotenv.POLKADOT_MAINNET_BRANCH }, + 'bin/acala': { dockerImage: 'uniquenetwork/builder-acala:%s' % dotenv.ACALA_BUILD_BRANCH }, + 'bin/moonbeam': { dockerImage: 'uniquenetwork/builder-moonbeam:%s' % dotenv.MOONBEAM_BUILD_BRANCH }, + 'bin/cumulus': { dockerImage: 'uniquenetwork/builder-cumulus:%s' % dotenv.STATEMINE_BUILD_BRANCH }, + 'bin/astar': { dockerImage: 'uniquenetwork/builder-astar:%s' % dotenv.ASTAR_BUILD_BRANCH }, + 'bin/polkadex': { dockerImage: 'uniquenetwork/builder-polkadex:%s' % dotenv.POLKADEX_BUILD_BRANCH }, + 'bin/hydradx': { dockerImage: 'uniquenetwork/builder-hydraDx:%s' % dotenv.HYDRADX_BUILD_BRANCH }, + }, + extra_node_mixin={ + extraArgs+: [ + '-lxcm=trace', + ], + }, + )(prev) diff --git a/.baedeker/xcm-opal-async-backing.jsonnet b/.baedeker/xcm-opal-async-backing.jsonnet new file mode 100644 index 0000000000..4a6b3c1d70 --- /dev/null +++ b/.baedeker/xcm-opal-async-backing.jsonnet @@ -0,0 +1,72 @@ +local +m = import 'baedeker-library/mixin/spec.libsonnet', +; + +function(relay_spec) + +local relay = { + name: 'relay', + bin: 'bin/polkadot', + validatorIdAssignment: 'staking', + spec: {Genesis:{ + chain: relay_spec, + modify:: bdk.mixer([ + m.genericRelay($), + { + genesis+: { + runtimeGenesis+: { + runtime+: { + configuration+: { + config+: { + async_backing_params+: { + allowed_ancestry_len: 3, + max_candidate_depth: 4, + }, + scheduling_lookahead:5, + max_validators_per_core:1, + minimum_backing_votes:1, + needed_approvals:1, + on_demand_cores:5, + }, + }, + }, + }, + }, + }, + ]), + }}, + nodes: { + [name]: { + bin: $.bin, + wantedKeys: 'relay', + expectedDataPath: '/parity', + }, + for name in ['alice', 'bob', 'charlie', 'dave', 'eve'] + }, +}; + +local unique = { + name: 'unique', + bin: 'bin/unique', + paraId: 1001, + spec: {Genesis:{ + modify:: m.genericPara($), + }}, + nodes: { + [name]: { + bin: $.bin, + wantedKeys: 'para', + extraArgs: [ + '--increase-future-pool', + ], + }, + for name in ['alice', 'bob', 'charlie', 'dave', 'eve'] + }, +}; + +relay + { + parachains: { + [para.name]: para, + for para in [unique] + }, +} diff --git a/.baedeker/xcm-opal.jsonnet b/.baedeker/xcm-opal.jsonnet index e70e9c89fa..994e615ea7 100644 --- a/.baedeker/xcm-opal.jsonnet +++ b/.baedeker/xcm-opal.jsonnet @@ -19,13 +19,14 @@ local relay = { [name]: { bin: $.bin, wantedKeys: 'relay', + expectedDataPath: '/parity', }, for name in ['alice', 'bob', 'charlie', 'dave', 'eve'] }, }; -local opal = { - name: 'opal', +local unique = { + name: 'unique', bin: 'bin/unique', paraId: 1001, spec: {Genesis:{ @@ -35,6 +36,9 @@ local opal = { [name]: { bin: $.bin, wantedKeys: 'para', + extraArgs: [ + '--increase-future-pool', + ], }, for name in ['alice', 'bob'] }, @@ -42,7 +46,7 @@ local opal = { local westmint = { name: 'westmint', - bin: 'bin/cumulus', + bin: 'bin/assethub', paraId: 1002, spec: {Genesis:{ chain: 'westmint-local', @@ -52,6 +56,7 @@ local westmint = { [name]: { bin: $.bin, wantedKeys: 'para', + expectedDataPath: '/parity', }, for name in ['alice', 'bob'] }, @@ -60,6 +65,6 @@ local westmint = { relay + { parachains: { [para.name]: para, - for para in [opal, westmint] + for para in [unique, westmint] }, } diff --git a/.baedeker/xcm-quartz.jsonnet b/.baedeker/xcm-quartz.jsonnet index 68312dc538..9e396743dd 100644 --- a/.baedeker/xcm-quartz.jsonnet +++ b/.baedeker/xcm-quartz.jsonnet @@ -24,13 +24,14 @@ local relay = { [name]: { bin: $.bin, wantedKeys: 'relay', + expectedDataPath: '/parity', }, for name in ['alice', 'bob', 'charlie', 'dave', 'eve', 'ferdie'] }, }; -local quartz = { - name: 'quartz', +local unique = { + name: 'unique', bin: 'bin/unique', paraId: 1001, spec: {Genesis:{ @@ -40,6 +41,9 @@ local quartz = { [name]: { bin: $.bin, wantedKeys: 'para', + extraArgs: [ + '--increase-future-pool', + ], }, for name in ['alice', 'bob'] }, @@ -86,7 +90,7 @@ local moonriver = { local statemine = { name: 'statemine', - bin: 'bin/cumulus', + bin: 'bin/assethub', paraId: 1004, spec: {Genesis:{ chain: 'statemine-local', @@ -96,6 +100,7 @@ local statemine = { [name]: { bin: $.bin, wantedKeys: 'para', + expectedDataPath: '/parity', }, for name in ['alice', 'bob'] }, @@ -121,6 +126,6 @@ local shiden = { relay + { parachains: { [para.name]: para, - for para in [quartz, karura, moonriver, statemine, shiden] + for para in [unique, karura, moonriver, statemine, shiden] }, } diff --git a/.baedeker/xcm-unique.jsonnet b/.baedeker/xcm-unique.jsonnet index aac590e0df..865de8a5c4 100644 --- a/.baedeker/xcm-unique.jsonnet +++ b/.baedeker/xcm-unique.jsonnet @@ -11,22 +11,23 @@ local relay = { spec: {Genesis:{ chain: relay_spec, modify:: m.genericRelay($, hrmp = std.join([], [ - [[$.parachains[a].paraId, $.parachains[b].paraId, 8, 512], [$.parachains[b].paraId, $.parachains[a].paraId, 8, 512]], - for [a, b] in [ + // [[$.parachains[a].paraId, $.parachains[b].paraId, 8, 512], [$.parachains[b].paraId, $.parachains[a].paraId, 8, 512]], + // for [a, b] in [ // ['unique', 'acala'], // ['unique', 'moonbeam'], // ['unique', 'statemint'], // ['unique', 'astar'], // ['unique', 'polkadex'], - ] + // ] ])), }}, nodes: { [name]: { bin: $.bin, wantedKeys: 'relay', + expectedDataPath: '/parity', }, - for name in ['alice', 'bob', 'charlie', 'dave', 'eve', 'ferdie', 'gregory'] + for name in ['alice', 'bob', 'charlie', 'dave', 'eve', 'ferdie', 'gregory', 'holly'] }, }; @@ -41,6 +42,9 @@ local unique = { [name]: { bin: $.bin, wantedKeys: 'para', + extraArgs: [ + '--increase-future-pool', + ], }, for name in ['alice', 'bob'] }, @@ -87,7 +91,7 @@ local moonbeam = { local statemint = { name: 'statemint', - bin: 'bin/cumulus', + bin: 'bin/assethub', paraId: 1004, spec: {Genesis:{ chain: 'statemint-local', @@ -97,6 +101,7 @@ local statemint = { [name]: { bin: $.bin, wantedKeys: 'para-ed', + expectedDataPath: '/parity', }, for name in ['alice', 'bob'] }, @@ -136,9 +141,28 @@ local polkadex = { }, }; +local hydraDx = { + name: 'hydraDx', + bin: 'bin/hydradx', + paraId: 1007, + spec: {Genesis:{ + chain: 'local', + modify:: m.genericPara($), + }}, + nodes: { + [name]: { + bin: $.bin, + wantedKeys: 'para', + legacyRpc: true, + }, + for name in ['alice', 'bob'] + }, +}; + + relay + { parachains: { [para.name]: para, - for para in [unique, acala, moonbeam, statemint, astar, polkadex] + for para in [unique, acala, moonbeam, statemint, astar, polkadex, hydraDx] }, } diff --git a/.docker/Dockerfile-acala.j2 b/.docker/Dockerfile-acala.j2 index b337d76f54..cc0de2594f 100644 --- a/.docker/Dockerfile-acala.j2 +++ b/.docker/Dockerfile-acala.j2 @@ -17,6 +17,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ + rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \ rustup target list --installed && \ rustup show diff --git a/.docker/Dockerfile-astar.j2 b/.docker/Dockerfile-astar.j2 index 12222c7a11..311aa3410a 100644 --- a/.docker/Dockerfile-astar.j2 +++ b/.docker/Dockerfile-astar.j2 @@ -17,6 +17,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ + rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \ rustup target list --installed && \ rustup show diff --git a/.docker/Dockerfile-chain-dev b/.docker/Dockerfile-chain-dev index a19bf8c885..19ed4ffb04 100644 --- a/.docker/Dockerfile-chain-dev +++ b/.docker/Dockerfile-chain-dev @@ -1,6 +1,5 @@ FROM uniquenetwork/services:latest -ARG RUST_TOOLCHAIN ARG NETWORK ENV DEBIAN_FRONTEND=noninteractive @@ -9,13 +8,6 @@ ENV NETWORK=$NETWORK ENV CARGO_HOME="/cargo-home" ENV PATH="/cargo-home/bin:$PATH" -RUN echo "$NETWORK\n" && echo "$RUST_TOOLCHAIN\n" - -RUN rustup toolchain uninstall $(rustup toolchain list) && \ - rustup toolchain install $RUST_TOOLCHAIN && \ - rustup default $RUST_TOOLCHAIN && \ - rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN - RUN mkdir /dev_chain COPY . /dev_chain diff --git a/.docker/Dockerfile-chain-dev-unit b/.docker/Dockerfile-chain-dev-unit index 5ea2305bbe..12856428e8 100644 --- a/.docker/Dockerfile-chain-dev-unit +++ b/.docker/Dockerfile-chain-dev-unit @@ -4,14 +4,8 @@ ENV DEBIAN_FRONTEND=noninteractive ENV CARGO_HOME="/cargo-home" ENV PATH="/cargo-home/bin:$PATH" -ARG RUST_TOOLCHAIN ARG NETWORK -RUN rustup toolchain uninstall $(rustup toolchain list) && \ - rustup toolchain install $RUST_TOOLCHAIN && \ - rustup default $RUST_TOOLCHAIN && \ - rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN - RUN mkdir /dev_chain COPY . /dev_chain diff --git a/.docker/Dockerfile-collators.j2 b/.docker/Dockerfile-collators.j2 deleted file mode 100644 index fe248477c3..0000000000 --- a/.docker/Dockerfile-collators.j2 +++ /dev/null @@ -1,63 +0,0 @@ -FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot - -# ===== Rust builder ===== -FROM uniquenetwork/services:latest as rust-builder - -ENV CARGO_HOME="/cargo-home" -ENV PATH="/cargo-home/bin:$PATH" -ENV TZ=UTC -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 - -WORKDIR /unique_parachain - -ARG PROFILE=release - -RUN git clone https://github.com/UniqueNetwork/unique-chain.git -b {{ BRANCH }} . && \ - cargo build --features={{ NETWORK }}-runtime --$PROFILE - -# ===== RUN ====== - -FROM ubuntu:22.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/target/release/unique-collator /unique-chain/target/release/ -COPY --from=builder-unique /unique_parachain/launch-config.json /polkadot-launch/launch-config.json - -COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/ - -EXPOSE 9844 -EXPOSE 9944 -EXPOSE 9833 -EXPOSE 40333 -EXPOSE 30333 - -CMD export NVM_DIR="$HOME/.nvm" && \ - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ - cd /polkadot-launch && \ - yarn start launch-config.json diff --git a/.docker/Dockerfile-cumulus.j2 b/.docker/Dockerfile-cumulus.j2 index e35ace29d9..afb05e7970 100644 --- a/.docker/Dockerfile-cumulus.j2 +++ b/.docker/Dockerfile-cumulus.j2 @@ -17,6 +17,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ + rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \ rustup target list --installed && \ rustup show diff --git a/.docker/Dockerfile-hydradx b/.docker/Dockerfile-hydradx new file mode 100644 index 0000000000..e92c99b466 --- /dev/null +++ b/.docker/Dockerfile-hydradx @@ -0,0 +1,50 @@ +# ===== Rust builder ===== +FROM ubuntu:22.04 as rust-builder +LABEL maintainer="Unique.Network" + +ARG 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 install "${RUST_TOOLCHAIN}" && \ + rustup target add wasm32-unknown-unknown --toolchain "${RUST_TOOLCHAIN}" && \ + rustup default "${RUST_TOOLCHAIN}" && \ + rustup component add --toolchain "${RUST_TOOLCHAIN}" rust-src && \ + rustup target list --installed && \ + rustup show + +RUN mkdir /unique_parachain +WORKDIR /unique_parachain + +# ===== BUILD BIN ===== +FROM rust-builder as builder-hydradx-bin + +ARG HYDRADX_BUILD_BRANCH + +WORKDIR /unique_parachain + +RUN git clone --depth 1 -b "${HYDRADX_BUILD_BRANCH}" https://github.com/galacticcouncil/HydraDX-node.git + +RUN --mount=type=cache,target=/cargo-home/registry \ + --mount=type=cache,target=/cargo-home/git \ + --mount=type=cache,target=/unique_parachain/parachain/target \ + cd HydraDX-node && \ + CARGO_INCREMENTAL=0 cargo build --release --locked && \ + mkdir /unique_parachain/Hydradx && \ + mv ./target/release/hydradx /unique_parachain/Hydradx/hydradx + +# ===== BIN ====== + +FROM ubuntu:22.04 as builder-hydradx + +COPY --from=builder-hydradx-bin /unique_parachain/Hydradx/hydradx /bin/hydradx +ENTRYPOINT ["/bin/hydradx"] diff --git a/.docker/Dockerfile-polkadot.j2 b/.docker/Dockerfile-hydradx.j2 similarity index 63% rename from .docker/Dockerfile-polkadot.j2 rename to .docker/Dockerfile-hydradx.j2 index 2aa33ff76f..f42bcd7f4b 100644 --- a/.docker/Dockerfile-polkadot.j2 +++ b/.docker/Dockerfile-hydradx.j2 @@ -17,29 +17,31 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ + rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \ rustup target list --installed && \ rustup show RUN mkdir /unique_parachain WORKDIR /unique_parachain -# ===== BUILD POLKADOT ===== -FROM rust-builder as builder-polkadot-bin +# ===== BUILD ACALA ===== +FROM rust-builder as builder-hydradx-bin WORKDIR /unique_parachain -RUN git clone -b {{ POLKADOT_BUILD_BRANCH }} --depth 1 https://github.com/paritytech/polkadot.git +RUN git clone --depth 1 -b {{ HYDRADX_BUILD_BRANCH }} https://github.com/galacticcouncil/HydraDX-node.git RUN --mount=type=cache,target=/cargo-home/registry \ --mount=type=cache,target=/cargo-home/git \ - --mount=type=cache,target=/unique_parachain/polkadot/target \ - cd polkadot && \ + --mount=type=cache,target=/unique_parachain/parachain/target \ + cd HydraDX-node && \ CARGO_INCREMENTAL=0 cargo build --release --locked && \ - mv ./target/release/polkadot /unique_parachain/polkadot/ + mkdir /unique_parachain/Hydradx && \ + mv ./target/release/hydradx /unique_parachain/Hydradx/hydradx # ===== BIN ====== -FROM ubuntu:22.04 as builder-polkadot +FROM ubuntu:22.04 as builder-hydradx -COPY --from=builder-polkadot-bin /unique_parachain/polkadot/polkadot /bin/polkadot -ENTRYPOINT ["/bin/polkadot"] +COPY --from=builder-hydradx-bin /unique_parachain/Hydradx/hydradx /bin/hydradx +ENTRYPOINT ["/bin/hydradx"] diff --git a/.docker/Dockerfile-moonbeam.j2 b/.docker/Dockerfile-moonbeam.j2 index 3bb81c43c8..927b306147 100644 --- a/.docker/Dockerfile-moonbeam.j2 +++ b/.docker/Dockerfile-moonbeam.j2 @@ -17,6 +17,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ + rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \ rustup target list --installed && \ rustup show diff --git a/.docker/Dockerfile-parachain b/.docker/Dockerfile-parachain deleted file mode 100644 index fe96fe2d36..0000000000 --- a/.docker/Dockerfile-parachain +++ /dev/null @@ -1,68 +0,0 @@ -ARG POLKADOT_BUILD_BRANCH -FROM uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} as polkadot - -# ===== Rust builder ===== -FROM uniquenetwork/services:latest as rust-builder -ARG RUST_TOOLCHAIN= -ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN - -ENV CARGO_HOME="/cargo-home" -ENV PATH="/cargo-home/bin:$PATH" -ENV TZ=UTC -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 PROFILE=release -ARG NETWORK -ARG REPO_URL -ARG BRANCH - -RUN echo "NETWORK="${NETWORK} - -WORKDIR /unique_parachain - -RUN git clone https://github.com/UniqueNetwork/unique-chain.git -b $BRANCH . && \ - cargo build --features=${NETWORK}-runtime --$PROFILE - -# ===== RUN ====== - -FROM ubuntu:22.04 - -ARG POLKADOT_LAUNCH_BRANCH= - -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/target/release/unique-collator /unique-chain/target/release/ -COPY --from=builder-unique /unique_parachain/launch-config.json /polkadot-launch/launch-config.json - -COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/ - -CMD export NVM_DIR="$HOME/.nvm" && \ - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ - cd /polkadot-launch && \ - yarn start launch-config.json \ No newline at end of file diff --git a/.docker/Dockerfile-parachain-upgrade-data.j2 b/.docker/Dockerfile-parachain-upgrade-data.j2 deleted file mode 100644 index e63f5b159a..0000000000 --- a/.docker/Dockerfile-parachain-upgrade-data.j2 +++ /dev/null @@ -1,86 +0,0 @@ -FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot - -# ===== Rust builder ===== -FROM uniquenetwork/services:latest as rust-builder - -ENV CARGO_HOME="/cargo-home" -ENV PATH="/cargo-home/bin:$PATH" -ENV TZ=UTC - -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 current version ====== -FROM rust-builder as builder-unique-current - -ARG PROFILE=release - -WORKDIR /unique_parachain - -RUN git clone https://github.com/UniqueNetwork/unique-chain.git -b {{ MAINNET_BRANCH }} . && \ - cargo build --features={{ NETWORK }}-runtime --$PROFILE - -# ===== BUILD target version ====== -FROM rust-builder as builder-unique-target - -ARG PROFILE=release - -COPY . /unique_parachain -WORKDIR /unique_parachain - -RUN cargo build --features={{ NETWORK }}-runtime{{ EXTRA_FEATURES }} --$PROFILE - -# ===== RUN ====== -FROM ubuntu:22.04 - -ENV RELAY_CHAIN_TYPE={{ RELAY_CHAIN_TYPE }} -ENV REPLICA_FROM={{ REPLICA_FROM }} -ENV DESTINATION_SPEC_VERSION={{ DESTINATION_SPEC_VERSION }} -ENV NEW_PARA_BIN=/unique-chain/target/release/unique-collator -ENV NEW_PARA_WASM=/unique-chain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm - -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 v18.16.0 && \ - nvm use v18.16.0 - -RUN env - -COPY --from=builder-unique-current /unique_parachain/target/release/unique-collator /unique-chain/current/release/ -COPY --from=builder-unique-target /unique_parachain/target/release/unique-collator /unique-chain/target/release/ -COPY --from=builder-unique-target /unique_parachain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm /unique-chain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm - -COPY --from=builder-unique-target /unique_parachain/.docker/forkless-config/zombienet-forkless-data.toml /unique-chain/tests/zombienet-forkless.toml -COPY --from=builder-unique-target /unique_parachain/.docker/forkless-config/fork.jsonnet /unique-chain/tests/fork.jsonnet -COPY --from=builder-unique-target /unique_parachain/tests/ /unique-chain/tests/ - -COPY --from=uniquenetwork/builder-chainql:{{ CHAINQL }} /chainql/target/release/chainql /chainql/target/release/ - -COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/ -COPY --from=polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm -COPY --from=polkadot /unique_parachain/polkadot/target/release/wbuild/rococo-runtime/rococo_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/rococo-runtime/rococo_runtime.compact.compressed.wasm - -EXPOSE 33044 -EXPOSE 33055 -EXPOSE 33066 -EXPOSE 33077 -EXPOSE 33088 -EXPOSE 33144 -EXPOSE 33155 - -CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" REPLICA_FROM NEW_PARA_BIN NEW_PARA_WASM RELAY_CHAIN_TYPE DESTINATION_SPEC_VERSION && \ - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ - cd /unique-chain/tests && \ - npm install --global yarn && \ - yarn install && \ - export DEBUG=zombie::metrics && yarn frankenstein zombienet-forkless.toml diff --git a/.docker/Dockerfile-parachain-upgrade.j2 b/.docker/Dockerfile-parachain-upgrade.j2 deleted file mode 100644 index 0e2739f16e..0000000000 --- a/.docker/Dockerfile-parachain-upgrade.j2 +++ /dev/null @@ -1,71 +0,0 @@ -FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot - -# ===== Rust builder ===== -FROM uniquenetwork/services:latest as rust-builder - -ENV CARGO_HOME="/cargo-home" -ENV PATH="/cargo-home/bin:$PATH" -ENV TZ=UTC - -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 current version ====== -FROM rust-builder as builder-unique-current - -ARG PROFILE=release - -WORKDIR /unique_parachain - -RUN git clone https://github.com/UniqueNetwork/unique-chain.git -b {{ MAINNET_BRANCH }} . && \ - cargo build --features={{ NETWORK }}-runtime --$PROFILE - -# ===== BUILD target version ====== -FROM rust-builder as builder-unique-target - -ARG PROFILE=release - -COPY . /unique_parachain -WORKDIR /unique_parachain - -RUN cargo build --features={{ NETWORK }}-runtime --$PROFILE - -# ===== RUN ====== -FROM ubuntu:22.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-current /unique_parachain/target/release/unique-collator /unique-chain/current/release/ -COPY --from=builder-unique-target /unique_parachain/target/release/unique-collator /unique-chain/target/release/ -COPY --from=builder-unique-target /unique_parachain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm /unique-chain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm - -COPY --from=builder-unique-target /unique_parachain/.docker/forkless-config/launch-config-forkless-nodata.json /polkadot-launch/launch-config.json - -COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/ -COPY --from=polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm - -CMD export NVM_DIR="$HOME/.nvm" && \ - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ - cd /polkadot-launch && \ - yarn start launch-config.json --test-upgrade-parachains diff --git a/.docker/Dockerfile-polkadex.j2 b/.docker/Dockerfile-polkadex.j2 index 23c20f6295..a5ea6cf7c7 100644 --- a/.docker/Dockerfile-polkadex.j2 +++ b/.docker/Dockerfile-polkadex.j2 @@ -17,6 +17,7 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none RUN rustup toolchain install {{ RUST_TOOLCHAIN }} && \ rustup target add wasm32-unknown-unknown --toolchain {{ RUST_TOOLCHAIN }} && \ rustup default {{ RUST_TOOLCHAIN }} && \ + rustup component add --toolchain {{ RUST_TOOLCHAIN }} rust-src && \ rustup target list --installed && \ rustup show diff --git a/.docker/Dockerfile-testnet.j2 b/.docker/Dockerfile-testnet.j2 deleted file mode 100644 index 97eccca70e..0000000000 --- a/.docker/Dockerfile-testnet.j2 +++ /dev/null @@ -1,65 +0,0 @@ -# ===== Rust builder ===== -FROM uniquenetwork/services:latest as rust-builder -ARG RUST_TOOLCHAIN= - -ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN -ENV CARGO_HOME="/cargo-home" -ENV PATH="/cargo-home/bin:$PATH" -ENV TZ=UTC - -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 PROFILE=release - -WORKDIR /unique_parachain - -RUN git clone -b {{ BRANCH }} https://github.com/UniqueNetwork/unique-chain.git && \ - cd unique-chain && \ - cargo build --features={{ NETWORK }}-runtime --$PROFILE - -# ===== RUN ====== - -FROM ubuntu:22.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/unique-chain/.docker/testnet-config/launch-config.json /polkadot-launch/launch-config.json -COPY --from=builder-unique /unique_parachain/unique-chain/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/ - -EXPOSE 9844 -EXPOSE 9944 -EXPOSE 9833 -EXPOSE 40333 -EXPOSE 30333 - -CMD export NVM_DIR="$HOME/.nvm" && \ - [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \ - cd /polkadot-launch && \ - yarn start launch-config.json diff --git a/.docker/Dockerfile-try-runtime.j2 b/.docker/Dockerfile-try-runtime.j2 index 9d6c24307f..3eda406897 100644 --- a/.docker/Dockerfile-try-runtime.j2 +++ b/.docker/Dockerfile-try-runtime.j2 @@ -1,17 +1,18 @@ # ===== Rust builder ===== -FROM uniquenetwork/services:latest as rust-builder +FROM ubuntu:22.04 as rust-builder +LABEL maintainer="Unique.Network" -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 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 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 mkdir /unique_parachain WORKDIR /unique_parachain @@ -29,4 +30,4 @@ RUN echo "Requested features: {{ NETWORK }}-runtime\n" && \ echo "Fork from: {{ REPLICA_FROM }}\n" && \ cargo build --features=try-runtime,{{ NETWORK }}-runtime --release -CMD cargo run --release --features {{ NETWORK }}-runtime,try-runtime -- try-runtime --runtime target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm -lruntime=debug -ltry-runtime::cli=debug on-runtime-upgrade --checks live --uri {{ REPLICA_FROM }} +CMD cargo run --release --features {{ NETWORK }}-runtime,try-runtime -- try-runtime --runtime target/release/wbuild/{{ NETWORK }}-runtime/{{ NETWORK }}_runtime.compact.compressed.wasm -lruntime=debug -ltry-runtime::cli=debug on-runtime-upgrade --checks live --uri {{ REPLICA_FROM }} diff --git a/.docker/Dockerfile-unique b/.docker/Dockerfile-unique index 06aded347e..301a243acb 100644 --- a/.docker/Dockerfile-unique +++ b/.docker/Dockerfile-unique @@ -14,14 +14,6 @@ RUN apt-get update && \ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none -ARG RUST_TOOLCHAIN -RUN echo "Using Rust '$RUST_TOOLCHAIN'" && \ - rustup toolchain install $RUST_TOOLCHAIN && \ - rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN} && \ - rustup default $RUST_TOOLCHAIN && \ - rustup target list --installed && \ - rustup show - RUN mkdir /unique_parachain WORKDIR /unique_parachain @@ -32,7 +24,7 @@ WORKDIR /unique_parachain COPY . unique-chain/ -ARG RUNTIME_FEATURES +ARG FEATURES # registry for Updating registry. It is safe to cache it, because it only contains references to the dependency files, # and the caches for the files themselves are set in Cargo.lock, which won't be updated because of --locked flag # git for Updating git repository. It is safe to cache it, because git dependencies are cached by revision, @@ -46,8 +38,8 @@ RUN --mount=type=cache,target=/cargo-home/registry \ --mount=type=cache,target=/cargo-home/git \ --mount=type=cache,target=/unique_parachain/unique-chain/target \ cd unique-chain && \ - echo "Using runtime features '$RUNTIME_FEATURES'" && \ - CARGO_INCREMENTAL=0 cargo build --profile integration-tests --features=fast-inflation,"$RUNTIME_FEATURES" --locked && \ + echo "Using runtime features ${FEATURES}" && \ + CARGO_INCREMENTAL=0 cargo build --profile integration-tests --features=fast-inflation,"${FEATURES}" --locked && \ mv ./target/integration-tests/unique-collator /unique_parachain/unique-chain/ && \ cd target/integration-tests/wbuild && find . -name "*.wasm" -exec sh -c 'mkdir -p "../../../wasm/$(dirname {})"; cp {} "../../../wasm/{}"' \; diff --git a/.docker/Dockerfile-unique-release b/.docker/Dockerfile-unique-release index ab378b11c9..3c1f0462fc 100644 --- a/.docker/Dockerfile-unique-release +++ b/.docker/Dockerfile-unique-release @@ -14,14 +14,6 @@ RUN apt-get update && \ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none -ARG RUST_TOOLCHAIN -RUN echo "Using Rust '$RUST_TOOLCHAIN'" && \ - rustup toolchain install $RUST_TOOLCHAIN && \ - rustup target add wasm32-unknown-unknown --toolchain ${RUST_TOOLCHAIN} && \ - rustup default $RUST_TOOLCHAIN && \ - rustup target list --installed && \ - rustup show - RUN mkdir /unique_parachain WORKDIR /unique_parachain @@ -33,12 +25,12 @@ WORKDIR /unique_parachain ARG UNIQUE_VERSION RUN git clone -b "$UNIQUE_VERSION" --depth 1 https://github.com/uniquenetwork/unique-chain.git -ARG RUNTIME_FEATURES +ARG FEATURES RUN --mount=type=cache,target=/cargo-home/registry \ --mount=type=cache,target=/cargo-home/git \ --mount=type=cache,target=/unique_parachain/polkadot/target \ cd unique-chain && \ - CARGO_INCREMENTAL=0 cargo build --release --features="$RUNTIME_FEATURES" --locked && \ + CARGO_INCREMENTAL=0 cargo build --release --features="${FEATURES}" --locked && \ mv ./target/release/unique-collator /unique_parachain/unique-chain/ # ===== BIN ====== diff --git a/.docker/additional/Dockerfile-chainql b/.docker/additional/Dockerfile-chainql deleted file mode 100644 index 25d4a6e768..0000000000 --- a/.docker/additional/Dockerfile-chainql +++ /dev/null @@ -1,40 +0,0 @@ -# ===== Rust builder ===== -FROM ubuntu:22.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 nightly-2023-05-22 && \ - rustup default nightly-2023-05-22 && \ - rustup target list --installed && \ - rustup show -RUN rustup target add wasm32-unknown-unknown --toolchain nightly-2023-05-22 - -RUN mkdir /unique_parachain -WORKDIR /unique_parachain - -# ===== BUILD CHAINQL ===== -FROM rust-builder as builder-chainql-bin - -RUN mkdir chainql -WORKDIR /chainql - -RUN git clone -b {{ CHAINQL }} --depth 1 https://github.com/UniqueNetwork/chainql.git . && \ - cargo build --release - -# ===== RUN ====== - -FROM ubuntu:22.04 as builder-chainql - -COPY --from=builder-chainql-bin /chainql/target/release/chainql /chainql/target/release/chainql diff --git a/.docker/additional/Dockerfile-polkadot b/.docker/additional/Dockerfile-polkadot deleted file mode 100644 index 4d0783a128..0000000000 --- a/.docker/additional/Dockerfile-polkadot +++ /dev/null @@ -1,45 +0,0 @@ -# ===== Rust builder ===== -FROM ubuntu:22.04 as rust-builder -LABEL maintainer="Unique.Network" - -ARG RUST_TOOLCHAIN=nightly-2023-05-22 - -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 POLKADOT ===== -FROM rust-builder as builder-polkadot-bin - -ARG POLKADOT_BUILD_BRANCH=release-v0.9.33 - -WORKDIR /unique_parachain - -RUN git clone -b $POLKADOT_BUILD_BRANCH --depth 1 https://github.com/paritytech/polkadot.git && \ - cd polkadot && \ - cargo build --release - -# ===== BIN ====== - -FROM ubuntu:22.04 as builder-polkadot - -COPY --from=builder-polkadot-bin /unique_parachain/polkadot/target/release/polkadot /unique_parachain/polkadot/target/release/polkadot -COPY --from=builder-polkadot-bin /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm diff --git a/.docker/docker-compose.collators.j2 b/.docker/docker-compose.collators.j2 deleted file mode 100644 index ad7bb4d290..0000000000 --- a/.docker/docker-compose.collators.j2 +++ /dev/null @@ -1,10 +0,0 @@ -version: "3.5" - -services: - forkless-data: - image: uniquenetwork/ci-collator-selection-local:{{ NETWORK }}-{{ BUILD_TAG }} - container_name: collator-selection-{{ NETWORK }} - expose: - - 9944 - ports: - - 127.0.0.1:9944:9944 diff --git a/.docker/docker-compose.forkless-data.j2 b/.docker/docker-compose.forkless-data.j2 deleted file mode 100644 index 4ab0e70ba9..0000000000 --- a/.docker/docker-compose.forkless-data.j2 +++ /dev/null @@ -1,24 +0,0 @@ -version: "3.5" - -services: - forkless-data: - image: uniquenetwork/ci-forkless-data-local:{{ NETWORK }}-{{ BUILD_TAG }} - container_name: forkless-data-{{ NETWORK }} - expose: - - 9944 - - 33044 - - 33055 - - 33066 - - 33077 - - 33088 - - 33144 - - 33155 - ports: - - 127.0.0.1:9944:9944 - - 127.0.0.1:33044:33044 - - 127.0.0.1:33055:33055 - - 127.0.0.1:33066:33066 - - 127.0.0.1:33077:33077 - - 127.0.0.1:33088:33088 - - 127.0.0.1:33144:33144 - - 127.0.0.1:33155:33155 diff --git a/.docker/docker-compose.forkless-nodata.j2 b/.docker/docker-compose.forkless-nodata.j2 deleted file mode 100644 index 34975d4f83..0000000000 --- a/.docker/docker-compose.forkless-nodata.j2 +++ /dev/null @@ -1,10 +0,0 @@ -version: "3.5" - -services: - forkless-nodata: - image: uniquenetwork/ci-forkless-nodata-local:{{ NETWORK }}-{{ BUILD_TAG }} - container_name: forkless-nodata - expose: - - 9944 - ports: - - 127.0.0.1:9944:9944 diff --git a/.docker/docker-compose.gov.j2 b/.docker/docker-compose.gov.j2 index b411da8672..f86ae261f2 100644 --- a/.docker/docker-compose.gov.j2 +++ b/.docker/docker-compose.gov.j2 @@ -4,9 +4,7 @@ services: node-dev: build: args: - - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" - "NETWORK={{ NETWORK }}" - - "WASM_NAME={{ WASM_NAME }}" context: ../ dockerfile: .docker/Dockerfile-chain-dev image: node-dev diff --git a/.docker/docker-compose.tmp-dev.j2 b/.docker/docker-compose.tmp-dev.j2 index bfac7fa28a..94af4d3f6a 100644 --- a/.docker/docker-compose.tmp-dev.j2 +++ b/.docker/docker-compose.tmp-dev.j2 @@ -4,7 +4,6 @@ services: node-dev: build: args: - - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" - "NETWORK={{ NETWORK }}" context: ../ dockerfile: .docker/Dockerfile-chain-dev diff --git a/.docker/docker-compose.tmp-node.j2 b/.docker/docker-compose.tmp-node.j2 deleted file mode 100644 index e5e9d6b4a4..0000000000 --- a/.docker/docker-compose.tmp-node.j2 +++ /dev/null @@ -1,36 +0,0 @@ -version: "3.5" - -services: - node-parachain: - build: - args: - - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" - - "BRANCH={{ BRANCH }}" - - "REPO_URL={{ REPO_URL }}" - - "NETWORK={{ NETWORK }}" - - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}" - - "POLKADOT_LAUNCH_BRANCH={{ POLKADOT_LAUNCH_BRANCH }}" - - "MAINNET_TAG={{ MAINNET_TAG }}" - - "MAINNET_BRANCH={{ MAINNET_BRANCH }}" - - "WASM_NAME={{ WASM_NAME }}" - context: ../ - dockerfile: .docker/Dockerfile-parachain-node-only - image: node-parachain - container_name: node-parachain - volumes: - - type: bind - source: ./launch-config-forkless-nodata.json - target: /polkadot-launch/launch-config.json - read_only: true - expose: - - 9944 - - 9945 - - 9844 - ports: - - 127.0.0.1:9944:9944 - - 127.0.0.1:9945:9945 - - 127.0.0.1:9844:9844 - logging: - options: - max-size: "1m" - max-file: "3" diff --git a/.docker/docker-compose.tmp-unit.j2 b/.docker/docker-compose.tmp-unit.j2 index 831ddffb5e..eb9376d7fc 100644 --- a/.docker/docker-compose.tmp-unit.j2 +++ b/.docker/docker-compose.tmp-unit.j2 @@ -6,7 +6,6 @@ services: context: ../ dockerfile: .docker/Dockerfile-chain-dev-unit args: - - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" - "NETWORK={{ NETWORK }}" image: node-dev container_name: node-dev diff --git a/.docker/forkless-config/launch-config-forkless-nodata.j2 b/.docker/forkless-config/launch-config-forkless-nodata.j2 deleted file mode 100644 index d170cb22e1..0000000000 --- a/.docker/forkless-config/launch-config-forkless-nodata.j2 +++ /dev/null @@ -1,128 +0,0 @@ -{ - "relaychain": { - "bin": "/polkadot/target/release/polkadot", - "upgradeBin": "/polkadot/target/release/polkadot", - "upgradeWasm": "/polkadot/target/release/wbuild/{{ RELAY_CHAIN_TYPE }}-runtime/{{ RELAY_CHAIN_TYPE }}_runtime.compact.compressed.wasm", - "chain": "{{ RELAY_CHAIN_TYPE }}-local", - "nodes": [ - { - "name": "alice", - "rpcPort": 9844, - "port": 30444, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "bob", - "rpcPort": 9855, - "port": 30555, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "charlie", - "rpcPort": 9866, - "port": 30666, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "dave", - "rpcPort": 9877, - "port": 30777, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "eve", - "rpcPort": 9888, - "port": 30888, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - } - ], - "genesis": { - "runtime": { - "runtime_genesis_config": { - "parachainsConfiguration": { - "config": { - "validation_upgrade_frequency": 1, - "validation_upgrade_delay": 1 - } - } - } - } - } - }, - "parachains": [ - { - "bin": "/unique-chain/current/release/unique-collator", - "upgradeBin": "/unique-chain/target/release/unique-collator", - "upgradeWasm": "/unique-chain/target/release/wbuild/{{ WASM_NAME }}-runtime/{{ WASM_NAME }}_runtime.compact.compressed.wasm", - "id": "1000", - "balance": "1000000000000000000000000", - "nodes": [ - { - "port": 31200, - "rpcPort": 9944, - "name": "alice", - "flags": [ - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external", - "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug", - "--ws-max-connections=1000", - "--", - "--port=31335", - "--ws-port=9745", - "--rpc-port=9734" - ] - }, - { - "port": 31201, - "rpcPort": 9945, - "name": "bob", - "flags": [ - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external", - "-lxcm=trace,parity_ws::handler=debug,jsonrpsee_core=trace,jsonrpsee-core=trace,jsonrpsee_ws_server=debug", - "--ws-max-connections=1000", - "--", - "--port=31337", - "--ws-port=9747", - "--rpc-port=9737" - ] - } - ] - } - ], - "simpleParachains": [], - "hrmpChannels": [], - "finalization": false -} diff --git a/.docker/testnet-config/launch-config.json b/.docker/testnet-config/launch-config.json deleted file mode 100644 index 01d230cbb6..0000000000 --- a/.docker/testnet-config/launch-config.json +++ /dev/null @@ -1,147 +0,0 @@ -{ - "relaychain": { - "bin": "/polkadot/target/release/polkadot", - "chain": "rococo-local", - "nodes": [ - { - "name": "alice", - "rpcPort": 9844, - "port": 30444, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "bob", - "rpcPort": 9855, - "port": 30555, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "charlie", - "rpcPort": 9866, - "port": 30666, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "dave", - "rpcPort": 9877, - "port": 30777, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - }, - { - "name": "eve", - "rpcPort": 9888, - "port": 30888, - "flags": [ - "-lparachain::candidate_validation=debug", - "-lxcm=trace", - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external" - ] - } - ], - "genesis": { - "runtime": { - "runtime_genesis_config": { - "parachainsConfiguration": { - "config": { - "validation_upgrade_frequency": 1, - "validation_upgrade_delay": 1 - } - } - } - } - } - }, - "parachains": [ - { - "bin": "/unique-chain/target/release/unique-collator", - "id": "1000", - "balance": "1000000000000000000000000", - "nodes": [ - { - "port": 31200, - "rpcPort": 9944, - "name": "alice", - "flags": [ - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external", - "-lxcm=trace" - ] - }, - { - "port": 31201, - "rpcPort": 9945, - "name": "bob", - "flags": [ - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external", - "-lxcm=trace" - ] - }, - { - "port": 31202, - "rpcPort": 9946, - "name": "charlie", - "flags": [ - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external", - "-lxcm=trace" - ] - }, - { - "port": 31203, - "rpcPort": 9947, - "name": "dave", - "flags": [ - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external", - "-lxcm=trace" - ] - }, - { - "port": 31204, - "rpcPort": 9948, - "name": "eve", - "flags": [ - "--rpc-cors=all", - "--unsafe-rpc-external", - "--unsafe-ws-external", - "-lxcm=trace" - ] - } - ] - } - ], - "simpleParachains": [], - "hrmpChannels": [], - "finalization": false -} diff --git a/.env b/.env index aa7bc4b705..fe5f68bc8d 100644 --- a/.env +++ b/.env @@ -1,33 +1,26 @@ -RUST_TOOLCHAIN=nightly-2023-05-22 -POLKADOT_LAUNCH_BRANCH=unique-network -RELAY_CHAIN_TYPE=westend -CHAINQL=v0.4.1 -DESTINATION_SPEC_VERSION=v942057 +RUST_TOOLCHAIN=nightly-2024-04-10 +RELAY_CHAIN_TYPE=rococo -POLKADOT_MAINNET_BRANCH=release-v1.0.0 -STATEMINT_BUILD_BRANCH=release-parachains-v9430 -ACALA_BUILD_BRANCH=2.21.0 -MOONBEAM_BUILD_BRANCH=runtime-2500 -ASTAR_BUILD_BRANCH=v5.18.0 -UNIQUE_MAINNET_BRANCH=release-v10010063 +POLKADOT_MAINNET_BRANCH=v1.9.0 +STATEMINT_BUILD_BRANCH=1.9.0 +ACALA_BUILD_BRANCH=2.25.0 +MOONBEAM_BUILD_BRANCH=runtime-2901 +ASTAR_BUILD_BRANCH=v5.39.1 +HYDRADX_BUILD_BRANCH=v27.0.0 +POLKADEX_BUILD_BRANCH=v6.0.0 +UNIQUE_MAINNET_BRANCH=release-v10030070 UNIQUE_REPLICA_FROM=wss://ws.unique.network:443 -POLKADEX_BUILD_BRANCH=v1.1.0 - -KUSAMA_MAINNET_BRANCH=release-v1.0.0 -STATEMINE_BUILD_BRANCH=release-parachains-v9430 -KARURA_BUILD_BRANCH=xnft-poc -MOONRIVER_BUILD_BRANCH=runtime-2500 -SHIDEN_BUILD_BRANCH=v5.18.0 -QUARTZ_MAINNET_BRANCH=release-v10010063 +KUSAMA_MAINNET_BRANCH=v1.9.0 +STATEMINE_BUILD_BRANCH=1.9.0 +KARURA_BUILD_BRANCH=2.25.0 +MOONRIVER_BUILD_BRANCH=runtime-2901 +SHIDEN_BUILD_BRANCH=v5.39.1 +QUARTZ_MAINNET_BRANCH=release-v10030070 QUARTZ_REPLICA_FROM=wss://ws-quartz.unique.network:443 -UNIQUEWEST_MAINNET_BRANCH=release-v1.0.0 -WESTMINT_BUILD_BRANCH=parachains-v9430 -OPAL_MAINNET_BRANCH=release-v10010063 +UNIQUEWEST_MAINNET_BRANCH=v1.9.0 +WESTMINT_BUILD_BRANCH=1.9.0 +OPAL_MAINNET_BRANCH=release-v10030070 OPAL_REPLICA_FROM=wss://ws-opal.unique.network:443 -UNIQUEEAST_MAINNET_BRANCH=release-v1.0.0 -SAPPHIRE_MAINNET_BRANCH=release-v10010063 -SAPPHIRE_REPLICA_FROM=wss://ws-sapphire.unique.network:443 - diff --git a/.github/actions/prepare/action.yml b/.github/actions/prepare/action.yml index 6c4e817950..f2efbfcaaa 100644 --- a/.github/actions/prepare/action.yml +++ b/.github/actions/prepare/action.yml @@ -15,7 +15,7 @@ runs: run: | echo "LAST_COMMIT_SHA=${GITHUB_SHA}" >> ${GITHUB_ENV} - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@4 + uses: mad9000/actions-find-and-replace-string@5 id: ref_slug with: source: ${{ github.head_ref }} diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml deleted file mode 100644 index 69968a70f2..0000000000 --- a/.github/workflows/canary.yml +++ /dev/null @@ -1,12 +0,0 @@ -on: - workflow_call: - -jobs: - - market-e2e-test: - name: market e2e tests - uses: ./.github/workflows/market-test.yml - secrets: inherit - - - diff --git a/.github/workflows/ci-develop.yml b/.github/workflows/ci-develop.yml index e9f200efe0..21b86b779a 100644 --- a/.github/workflows/ci-develop.yml +++ b/.github/workflows/ci-develop.yml @@ -26,11 +26,6 @@ jobs: uses: ./.github/workflows/unit-test.yml secrets: inherit - canary: - if: github.event.pull_request.draft == false && contains(github.event.pull_request.labels.*.name, 'CI-canary') - uses: ./.github/workflows/canary.yml - secrets: inherit - xcm: if: github.event.pull_request.draft == false && contains(github.event.pull_request.labels.*.name, 'CI-xcm') uses: ./.github/workflows/xcm.yml @@ -67,7 +62,7 @@ jobs: secrets: inherit governance: - if: github.event.pull_request.draft == false && contains(github.event.pull_request.labels.*.name, 'CI-gov') + if: github.event.pull_request.draft == false && contains(github.event.pull_request.labels.*.name, 'CI-governance') uses: ./.github/workflows/governance.yml secrets: inherit diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 1434295f45..91d8bac83b 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -24,10 +24,6 @@ jobs: uses: ./.github/workflows/unit-test.yml secrets: inherit - # canary: - # uses: ./.github/workflows/canary.yml - # secrets: inherit # pass all secrets from initial workflow to nested - xcm: uses: ./.github/workflows/xcm.yml secrets: inherit # pass all secrets from initial workflow to nested diff --git a/.github/workflows/codestyle.yml b/.github/workflows/codestyle.yml index da2407ba3a..93bfa0604c 100644 --- a/.github/workflows/codestyle.yml +++ b/.github/workflows/codestyle.yml @@ -13,17 +13,17 @@ jobs: steps: - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Install toolchain version from .env uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} targets: wasm32-unknown-unknown - components: rustfmt, clippy + components: rustfmt, clippy - name: Run cargo fmt run: cargo fmt -- --check # In that mode it returns only exit code. - name: Cargo fmt state @@ -35,12 +35,12 @@ jobs: steps: - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Install modules run: cd js-packages && yarn - name: Run ESLint @@ -50,17 +50,21 @@ jobs: clippy: runs-on: [ self-hosted-ci ] steps: - - uses: actions/checkout@v3.1.0 + - name: Clean Workspace + uses: AutoModality/action-clean@v1.1.0 + - uses: actions/checkout@v4.1.7 + with: + ref: ${{ github.head_ref }} - name: Install substrate dependencies run: sudo apt install -y libssl-dev pkg-config libclang-dev clang protobuf-compiler - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Install toolchain version from .env uses: dtolnay/rust-toolchain@master with: toolchain: ${{ env.RUST_TOOLCHAIN }} targets: wasm32-unknown-unknown - components: rustfmt, clippy + components: rustfmt, clippy - name: Run cargo check run: cargo clippy --features=quartz-runtime,unique-runtime,try-runtime,runtime-benchmarks --tests -- -Dwarnings env: diff --git a/.github/workflows/collator-selection.yml b/.github/workflows/collator-selection.yml index 3603290fb0..23f158f057 100644 --- a/.github/workflows/collator-selection.yml +++ b/.github/workflows/collator-selection.yml @@ -1,4 +1,4 @@ -name: collator-selection-test-run +name: collator-selection # Controls when the action will run. on: @@ -15,25 +15,22 @@ env: jobs: prepare-execution-marix: - name: Prepare execution matrix - - runs-on: [self-hosted-ci] + runs-on: [ self-hosted-ci ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} steps: - - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 @@ -42,13 +39,11 @@ jobs: matrix: | network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}} network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}} - network {sapphire}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}} collator-selection: - needs: prepare-execution-marix # The type of runner that the job will run on - runs-on: [self-hosted-ci,large] + runs-on: [ self-hosted-ci ] timeout-minutes: 1380 @@ -69,7 +64,7 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -78,57 +73,24 @@ jobs: uses: ./.github/actions/prepare - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@4 - id: branchname - with: - source: ${{ github.head_ref }} - find: '/' - replace: '-' - - - name: Generate ENV related extend Dockerfile file for POLKADOT - uses: cuchi/jinja2-action@v1.2.0 - with: - template: .docker/Dockerfile-polkadot.j2 - output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} - - - name: Prepare polkadot - uses: ./.github/actions/buildContainer + - name: Check and pull polkadot image id: polkadot + uses: cloudposse/github-action-docker-image-exists@main with: - container: uniquenetwork/builder-polkadot + registry: registry.hub.docker.com + organization: parity + repository: polkadot + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} tag: ${{ matrix.relay_branch }} - context: .docker - dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} - dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - # - name: pull needed images - # run: | - # docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} - - # - name: Build unique-chain - # run: | - # docker build --file .docker/Dockerfile-unique \ - # --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} \ - # --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} \ - # --tag uniquenetwork/ci-collator-selection-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-${{ env.BUILD_SHA }} \ - # . - - # - name: Push docker image version - # run: docker push uniquenetwork/ci-collator-selection-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-${{ env.BUILD_SHA }} - - name: Prepare latest uses: ./.github/actions/buildContainer @@ -139,23 +101,25 @@ jobs: context: . dockerfile: .docker/Dockerfile-unique args: | - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }},session-test-timings - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + --build-arg FEATURES=${{ matrix.network }}-runtime,session-test-timings dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Install baedeker - uses: UniqueNetwork/baedeker-action/setup@built + uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output + with: + useCache: false - name: Setup library run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library - name: Start network - uses: UniqueNetwork/baedeker-action@built + uses: UniqueNetwork/baedeker-action@v1-no-debug-output + if: success() id: bdk with: jpath: | @@ -164,8 +128,8 @@ jobs: relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local inputs: | .baedeker/collator-selection.jsonnet - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, extra_node_mixin={extraArgs: []}) - name: Upload network config uses: actions/upload-artifact@v3 @@ -174,21 +138,28 @@ jobs: path: ${{ steps.bdk.outputs.composeProject }} retention-days: 2 - - name: Run tests + - name: Ensure network is alive working-directory: js-packages/tests + id: alive1 + if: ${{ !cancelled() && steps.bdk.outcome == 'success' }} run: | - yarn install + yarn yarn add mochawesome - # Wanted by both wait_for_first_block - # export RPC_URL="${RELAY_SAPPHIRE_HTTP_URL:-${RELAY_OPAL_HTTP_URL:-${RELAY_QUARTZ_HTTP_URL:-${RELAY_UNIQUE_HTTP_URL:-}}}}" ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} + + - name: Run tests + working-directory: js-packages/tests + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} + run: | echo "Ready to start tests" NOW=$(date +%s) && yarn testCollators --reporter mochawesome --reporter-options reportFilename=test-collators-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: Test Report - uses: phoenix-actions/test-reporting@v10 + uses: phoenix-actions/test-reporting@v15 id: test-report if: success() || failure() with: diff --git a/.github/workflows/execution-matrix.yml b/.github/workflows/execution-matrix.yml deleted file mode 100644 index 1a55b4b172..0000000000 --- a/.github/workflows/execution-matrix.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: Reusable workflow - -on: - workflow_call: - # Map the workflow outputs to job outputs - outputs: - matrix: - description: "The first output string" - value: ${{ jobs.create-matrix.outputs.matrix_output }} - -jobs: - - create-marix: - - name: Prepare execution matrix - - runs-on: self-hosted-ci - outputs: - matrix_output: ${{ steps.create_matrix.outputs.matrix }} - - steps: - - - name: Clean Workspace - uses: AutoModality/action-clean@v1.1.0 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 - with: - ref: ${{ github.head_ref }} #Checking out head commit - - - name: Read .env file - uses: xom9ikk/dotenv@v2 - - - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v4 - id: create_matrix - with: - matrix: | - network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} - network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} - network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} - diff --git a/.github/workflows/forkless-update-data.yml b/.github/workflows/forkless-update-data.yml index b15aaf9ea4..be65f50bef 100644 --- a/.github/workflows/forkless-update-data.yml +++ b/.github/workflows/forkless-update-data.yml @@ -2,8 +2,11 @@ # https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586869792/Forkless+update+with+data # Triger: only call from main workflow(re-usable workflows) +name: forkless-update-data + on: workflow_call: + workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel @@ -13,7 +16,7 @@ jobs: name: execution matrix - runs-on: self-hosted-ci + runs-on: [ self-hosted-ci ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} @@ -23,28 +26,27 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | - network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}, wasm_name {opal}, fork_source {${{ env.OPAL_REPLICA_FROM }}} - network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}, wasm_name {quartz}, fork_source {${{ env.SAPPHIRE_REPLICA_FROM }}} - network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz}, fork_source {${{ env.QUARTZ_REPLICA_FROM }}} - network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique}, fork_source {${{ env.UNIQUE_REPLICA_FROM }}} + network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, fork_source {${{ env.OPAL_REPLICA_FROM }}} + network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, fork_source {${{ env.QUARTZ_REPLICA_FROM }}} + network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, fork_source {${{ env.UNIQUE_REPLICA_FROM }}} forkless-data: needs: prepare-execution-matrix # The type of runner that the job will run on - runs-on: [self-hosted-ci,large] + runs-on: [ self-hosted-ci,large ] timeout-minutes: 1380 @@ -62,7 +64,7 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -71,33 +73,24 @@ jobs: uses: ./.github/actions/prepare - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Generate ENV related extend Dockerfile file for POLKADOT - uses: cuchi/jinja2-action@v1.2.0 - with: - template: .docker/Dockerfile-polkadot.j2 - output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} - - - name: Prepare polkadot - uses: ./.github/actions/buildContainer + - name: Check and pull polkadot image id: polkadot + uses: cloudposse/github-action-docker-image-exists@main with: - container: uniquenetwork/builder-polkadot + registry: registry.hub.docker.com + organization: parity + repository: polkadot + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} tag: ${{ matrix.relay_branch }} - context: .docker - dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} - dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - name: Prepare latest uses: ./.github/actions/buildContainer @@ -108,8 +101,7 @@ jobs: context: . dockerfile: .docker/Dockerfile-unique args: | - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + --build-arg FEATURES=${{ matrix.network }}-runtime dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} @@ -120,18 +112,21 @@ jobs: image: ${{ steps.latest.outputs.name }} directory: /wasm - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Install baedeker - uses: UniqueNetwork/baedeker-action/setup@built + uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output + with: + useCache: false - name: Setup library run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library - name: Start network - uses: UniqueNetwork/baedeker-action@built + uses: UniqueNetwork/baedeker-action@v1-no-debug-output + if: success() id: bdk with: jpath: | @@ -142,33 +137,53 @@ jobs: fork_source=${{ matrix.fork_source }} inputs: | .baedeker/forkless-data.jsonnet - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, extra_node_mixin={extraArgs: []}) - - name: "Reconcile: runtime is upgraded" + - name: Ensure network is alive working-directory: js-packages/tests + id: alive1 + if: ${{ !cancelled() && steps.bdk.outcome == 'success' }} run: | - yarn + yarn ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} + + - name: "Reconcile: runtime is upgraded" + working-directory: js-packages/tests + id: reconcile1 + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} + run: | echo "Executing upgrade" - yarn ts-node --esm util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm + yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm ../scripts/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.network }}-runtime/${{ matrix.network }}_runtime.compact.compressed.wasm env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - - name: Run Parallel tests after forkless upgrade + - name: Ensure network is alive working-directory: js-packages/tests + id: alive2 + if: ${{ !cancelled() && steps.reconcile1.outcome == 'success' }} run: | - yarn add mochawesome + yarn ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} + + - name: Run Parallel tests after forkless upgrade + working-directory: js-packages/tests + if: ${{ !cancelled() && steps.alive2.outcome == 'success' }} + run: | echo "Ready to start tests" NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: Run Sequential tests after forkless upgrade - if: success() || failure() working-directory: js-packages/tests - run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} + if: ${{ !cancelled() && steps.alive2.outcome == 'success' }} + run: | + NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} diff --git a/.github/workflows/forkless-update-nodata.yml b/.github/workflows/forkless-update-nodata.yml index 7408ee4c28..26eb23b8a0 100644 --- a/.github/workflows/forkless-update-nodata.yml +++ b/.github/workflows/forkless-update-nodata.yml @@ -2,8 +2,11 @@ # Forkless update without data replication # Triger: only call from main workflow(re-usable workflows) +name: forkless-update-nodata + on: workflow_call: + workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel @@ -13,7 +16,7 @@ jobs: name: execution matrix - runs-on: self-hosted-ci + runs-on: [ self-hosted-ci ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} @@ -23,28 +26,27 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | - network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime}, wasm_name {opal} - network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime}, wasm_name {quartz} - network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime}, wasm_name {quartz} - network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime}, wasm_name {unique} + network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}} + network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}} + network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}} forkless-nodata: needs: prepare-execution-matrix # The type of runner that the job will run on - runs-on: [self-hosted-ci,large] + runs-on: [ self-hosted-ci,large ] timeout-minutes: 1380 @@ -62,7 +64,7 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -71,33 +73,24 @@ jobs: uses: ./.github/actions/prepare - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Generate ENV related extend Dockerfile file for POLKADOT - uses: cuchi/jinja2-action@v1.2.0 - with: - template: .docker/Dockerfile-polkadot.j2 - output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} - - - name: Prepare polkadot - uses: ./.github/actions/buildContainer + - name: Check and pull polkadot image id: polkadot + uses: cloudposse/github-action-docker-image-exists@main with: - container: uniquenetwork/builder-polkadot + registry: registry.hub.docker.com + organization: parity + repository: polkadot + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} tag: ${{ matrix.relay_branch }} - context: .docker - dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} - dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - name: Prepare mainnet uses: ./.github/actions/buildContainer @@ -108,8 +101,7 @@ jobs: context: .docker dockerfile: Dockerfile-unique-release args: | - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + --build-arg NETWORK=${{ matrix.network }} --build-arg UNIQUE_VERSION=${{ matrix.mainnet_branch }} dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} @@ -123,8 +115,7 @@ jobs: context: . dockerfile: .docker/Dockerfile-unique args: | - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + --build-arg FEATURES=${{ matrix.network }}-runtime dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} @@ -135,54 +126,76 @@ jobs: image: ${{ steps.latest.outputs.name }} directory: /wasm - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Install baedeker - uses: UniqueNetwork/baedeker-action/setup@built + uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output + with: + useCache: false - name: Setup library run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library - name: Start network - uses: UniqueNetwork/baedeker-action@built + uses: UniqueNetwork/baedeker-action@v1-no-debug-output id: bdk + if: success() with: jpath: | .baedeker/vendor tla-str: | - relay_spec=rococo-local + relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local inputs: | .baedeker/node-only.jsonnet - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}}) # nodata build uses old runtime, but new chain, thus we use mainnet image for spec generation, and then latest image for nodes. - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, for_chain = false) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, extra_node_mixin={extraArgs: []}, for_chain = false) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}, extra_node_mixin={extraArgs: []}) - - name: "Reconcile: runtime is upgraded" + - name: Ensure network is alive working-directory: js-packages/tests + id: alive1 + if: ${{ !cancelled() && steps.bdk.outcome == 'success' }} run: | yarn + yarn add mochawesome ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} + + - name: "Reconcile: runtime is upgraded" + working-directory: js-packages/tests + id: reconcile1 + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} + run: | echo "Executing upgrade" - yarn ts-node --esm util/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.wasm_name }}-runtime/${{ matrix.wasm_name }}_runtime.compact.compressed.wasm + yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm ../scripts/authorizeEnactUpgrade.ts ${{ steps.wasms.outputs.dir }}/${{ matrix.network }}-runtime/${{ matrix.network }}_runtime.compact.compressed.wasm env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - - name: Run Parallel tests after forkless upgrade + - name: Ensure network is alive working-directory: js-packages/tests + id: alive2 + if: ${{ !cancelled() && steps.reconcile1.outcome == 'success' }} run: | - yarn add mochawesome ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} + + - name: Run Parallel tests after forkless upgrade + working-directory: js-packages/tests + if: ${{ !cancelled() && steps.alive2.outcome == 'success' }} + run: | echo "Ready to start tests" NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: Run Sequential tests after forkless upgrade - if: success() || failure() working-directory: js-packages/tests + if: ${{ !cancelled() && steps.alive2.outcome == 'success' }} run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} diff --git a/.github/workflows/generate-execution-matrix.yml b/.github/workflows/generate-execution-matrix.yml deleted file mode 100644 index 4881399e53..0000000000 --- a/.github/workflows/generate-execution-matrix.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Prepare execution matrix - -on: - workflow_call: - # Map the workflow outputs to job outputs - outputs: - matrix_values: - description: "Matix output" - matrix: ${{ jobs.prepare-execution-matrix.outputs.matrix }} - - -#concurrency: -# group: ${{ github.workflow }}-${{ github.head_ref }} -# cancel-in-progress: true - - -jobs: - prepare-execution-matrix: - name: Generate output - runs-on: self-hosted-ci - # Map the job outputs to step outputs - outputs: - matrix: ${{ steps.create_matrix.outputs.matrix }} - - steps: - - - name: Clean Workspace - uses: AutoModality/action-clean@v1.1.0 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 - with: - ref: ${{ github.head_ref }} #Checking out head commit - - - name: Read .env file - uses: xom9ikk/dotenv@v2 - - - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v4 - id: create_matrix - with: - matrix: | - network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.OPAL_MAINNET_TAG }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} - network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} - network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} diff --git a/.github/workflows/governance.yml b/.github/workflows/governance.yml index dc0ce2d210..88941ac98b 100644 --- a/.github/workflows/governance.yml +++ b/.github/workflows/governance.yml @@ -1,16 +1,17 @@ # Governance tests in --dev mode with gov-test-timings feature enabled to reduce gov timings -name: governance tests +name: governance # Triger: only call from main workflow(re-usable workflows) on: workflow_call: + workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: prepare-execution-marix: name: Prepare execution matrix - runs-on: self-hosted-ci + runs-on: [ self-hosted ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} @@ -19,27 +20,26 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | - network {unique}, wasm_name {unique} - network {quartz}, wasm_name {quartz} - network {opal}, wasm_name {opal} - network {sapphire}, wasm_name {quartz} + network {unique} + network {quartz} + network {opal} dev_build_int_tests: needs: prepare-execution-marix # The type of runner that the job will run on - runs-on: [self-hosted-ci, medium] + runs-on: [ self-hosted-ci, medium ] timeout-minutes: 1380 name: ${{ matrix.network }} @@ -54,12 +54,12 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Generate ENV related extend file for docker-compose uses: cuchi/jinja2-action@v1.2.0 @@ -67,19 +67,17 @@ jobs: template: .docker/docker-compose.gov.j2 output_file: .docker/docker-compose.${{ matrix.network }}.yml variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} NETWORK=${{ matrix.network }} - WASM_NAME=${{ matrix.wasm_name }} - name: Show build configuration run: cat .docker/docker-compose.${{ matrix.network }}.yml - name: Build the stack - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans + run: docker compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Run tests working-directory: js-packages/tests @@ -93,7 +91,7 @@ jobs: RPC_URL: http://127.0.0.1:9944/ - name: Test Report - uses: phoenix-actions/test-reporting@v10 + uses: phoenix-actions/test-reporting@v15 id: test-report if: success() || failure() # run this step even if previous step failed with: @@ -108,7 +106,7 @@ jobs: - name: Stop running containers if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down + run: docker compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down - name: Remove builder cache if: always() # run this step always diff --git a/.github/workflows/make-bench.yml b/.github/workflows/make-bench.yml index dc6485a2df..1eb47cc09f 100644 --- a/.github/workflows/make-bench.yml +++ b/.github/workflows/make-bench.yml @@ -17,26 +17,19 @@ jobs: - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 - - uses: actions/checkout@v3.3.0 + - uses: actions/checkout@v4.1.7 with: ref: develop - name: Read .env file - uses: xom9ikk/dotenv@v2.1.1 + uses: xom9ikk/dotenv@v2.3.0.3.0 - name: Install substrate dependencies run: sudo apt install -y curl cmake make libssl-dev pkg-config libclang-dev clang protobuf-compiler - - name: Install actual toolchain - uses: actions-rs/toolchain@v1.0.7 - with: - toolchain: ${{ env.RUST_TOOLCHAIN }} - default: true - target: wasm32-unknown-unknown - - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 - name: RUN benchmarking run: | @@ -50,8 +43,8 @@ jobs: working-directory: js-packages/scripts run: | yarn - yarn ts-node --esm calibrate.ts - yarn ts-node --esm calibrateApply.ts + yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm calibrate.ts + yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm calibrateApply.ts - name: show git diff run: | diff --git a/.github/workflows/market-test.yml b/.github/workflows/market-test.yml deleted file mode 100644 index 1661935024..0000000000 --- a/.github/workflows/market-test.yml +++ /dev/null @@ -1,216 +0,0 @@ -# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586509375/Market+e2e+test -# Nested workflow for lunching Market e2e tests from external repository https://github.com/UniqueNetwork/market-e2e-tests - -name: market api tests - -# Controls when the action will run. -on: - workflow_call: - - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - - prepare-execution-marix: - - name: Prepare execution matrix - - runs-on: [self-hosted-ci] - outputs: - matrix: ${{ steps.create_matrix.outputs.matrix }} - - steps: - - - name: Clean Workspace - uses: AutoModality/action-clean@v1.1.0 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 - with: - ref: ${{ github.head_ref }} #Checking out head commit - - - name: Read .env file - uses: xom9ikk/dotenv@v2 - - - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v4 - id: create_matrix - with: - matrix: | - network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}} - - - market_test: - needs: prepare-execution-marix - # The type of runner that the job will run on - runs-on: [self-hosted-ci,large] - timeout-minutes: 360 - - name: ${{ matrix.network }} - - continue-on-error: true #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false. - - strategy: - matrix: - include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} - - steps: - - name: Clean Workspace - uses: AutoModality/action-clean@v1.1.0 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - name: Checkout master repo - uses: actions/checkout@master - with: - ref: ${{ github.head_ref }} #Checking out head commit - - - name: Checkout Market e2e tests - uses: actions/checkout@v3.1.0 - with: - repository: 'UniqueNetwork/market-e2e-tests' - ssh-key: ${{ secrets.GH_PAT }} - path: 'qa-tests' - ref: 'master' - - - name: Read .env file - uses: xom9ikk/dotenv@v2 - - - name: Copy qa-tests/.env.example to qa-tests/.env - working-directory: qa-tests - run: cp .env.docker .env - - - name: Generate ENV related extend file for docker-compose - uses: cuchi/jinja2-action@v1.2.0 - with: - template: qa-tests/.docker/docker-compose.tmp-market.j2 - output_file: qa-tests/.docker/docker-compose.${{ matrix.network }}.yml - variables: | - 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 }} - NETWORK=${{ matrix.network }} - BRANCH=${{ github.head_ref }} - - - - name: Show build configuration - working-directory: qa-tests - run: cat .docker/docker-compose.${{ matrix.network }}.yml - - - name: Start node-parachain - working-directory: qa-tests - run: docker-compose -f ".docker/docker-compose.market.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate node-parachain - - - uses: actions/setup-node@v3.5.1 - with: - node-version: 18 - - - name: Setup TypeScript - working-directory: qa-tests - run: | - npm install -g ts-node - npm install - - - name: Copy qa-tests/.env.docker to qa-tests/.env - working-directory: qa-tests - run: | - rm -rf .env - cp .env.docker .env - -# Temporary disable node readyness check. Have to dig into the script logic. -# - name: Wait for chain up and running -# working-directory: js-packages/tests -# run: | -# yarn install -# ../scripts/wait_for_first_block.sh -# echo "Ready to start tests" -# env: -# RPC_URL: http://127.0.0.1:9944/ - - - name: Wait for chain up and running - run: | - sleep 1200s - echo "Ready to start Market e2e tests" - - - name: Show content of .env file and Generate accounts - working-directory: qa-tests - run: | - cat .env - ts-node ./src/scripts/create-market-accounts.ts - - - name: Copy qa-tests/.env to qa-tests/.env.docker - working-directory: qa-tests - run: | - rm -rf .env.docker - cp .env .env.docker - - - name: Get chain logs - if: always() # run this step always - run: | - docker exec node-parachain cat /polkadot-launch/9944.log - docker exec node-parachain cat /polkadot-launch/9945.log - docker exec node-parachain cat /polkadot-launch/alice.log - docker exec node-parachain cat /polkadot-launch/eve.log - docker exec node-parachain cat /polkadot-launch/dave.log - docker exec node-parachain cat /polkadot-launch/charlie.log - - - name: Deploy contracts - run: | - cd qa-tests - ts-node ./src/scripts/deploy-contract.ts - - - name: Timeout for debug - if: failure() - run: sleep 300s - - - name: Import test data - working-directory: qa-tests - run: ts-node ./src/scripts/create-test-collections.ts - - - name: Show content of qa-test .env - working-directory: qa-tests - run: cat .env - - - name: Read qa -test .env file Before market start - uses: xom9ikk/dotenv@v2 - with: - path: qa-tests/ - - - name: local-market:start - run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" up -d --build - - - name: Wait for market readyness - working-directory: qa-tests - run: src/scripts/wait-market-ready.sh - shell: bash - - - name: Install dependecies - working-directory: qa-tests - run: | - npm ci - npm install -D @playwright/test - npx playwright install-deps - npx playwright install - - - name: Show content of qa-test .env - working-directory: qa-tests - run: cat .env - - - name: Test API interface - working-directory: qa-tests - run: | - npx playwright test --workers=3 --quiet .*.api.test.ts --reporter=github --config playwright.config.ts - - - name: Timeout for debug - if: failure() - run: sleep 300s - - - name: Stop running containers - if: always() # run this step always - run: docker-compose -f "qa-tests/.docker/docker-compose.market.yml" -f "qa-tests/.docker/docker-compose.${{ matrix.network }}.yml" down --volumes - - - name: Remove builder cache - if: always() # run this step always - run: | - docker builder prune -f - docker system prune -f diff --git a/.github/workflows/node-only-update.yml b/.github/workflows/node-only-update.yml index 8724ba6350..d42a00cf0e 100644 --- a/.github/workflows/node-only-update.yml +++ b/.github/workflows/node-only-update.yml @@ -1,11 +1,12 @@ # https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586837028/Nodes+only+update # Node only update with restart polkadot-launch process. -name: nodes-only update +name: node-only-update # Triger: only call from main workflow(re-usable workflows) on: workflow_call: + workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel @@ -15,7 +16,7 @@ jobs: name: execution matrix - runs-on: self-hosted-ci + runs-on: [ self-hosted-ci ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} @@ -25,28 +26,27 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | - network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, runtime_features {opal-runtime} - network {sapphire}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}}, runtime_features {sapphire-runtime} - network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, runtime_features {quartz-runtime} - network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, runtime_features {unique-runtime} + network {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}} + network {quartz}, mainnet_branch {${{ env.QUARTZ_MAINNET_BRANCH }}}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}} + network {unique}, mainnet_branch {${{ env.UNIQUE_MAINNET_BRANCH }}}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}} node-only-update: needs: prepare-execution-matrix # The type of runner that the job will run on - runs-on: [self-hosted-ci] + runs-on: [ self-hosted-ci ] timeout-minutes: 2880 # 48 hours for execution jobs. @@ -68,7 +68,7 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -77,33 +77,24 @@ jobs: uses: ./.github/actions/prepare - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Generate ENV related extend Dockerfile file for POLKADOT - uses: cuchi/jinja2-action@v1.2.0 - with: - template: .docker/Dockerfile-polkadot.j2 - output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} - - - name: Prepare polkadot - uses: ./.github/actions/buildContainer + - name: Check and pull polkadot image id: polkadot + uses: cloudposse/github-action-docker-image-exists@main with: - container: uniquenetwork/builder-polkadot + registry: registry.hub.docker.com + organization: parity + repository: polkadot + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} tag: ${{ matrix.relay_branch }} - context: .docker - dockerfile: Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} - dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - name: Prepare mainnet uses: ./.github/actions/buildContainer @@ -114,8 +105,7 @@ jobs: context: .docker dockerfile: Dockerfile-unique-release args: | - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + --build-arg FEATURES=${{ matrix.network }}-runtime --build-arg UNIQUE_VERSION=${{ matrix.mainnet_branch }} dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} @@ -129,30 +119,32 @@ jobs: context: . dockerfile: .docker/Dockerfile-unique args: | - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + --build-arg FEATURES=${{ matrix.network }}-runtime dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - name: Checkout at '${{ matrix.mainnet_branch }}' branch - uses: actions/checkout@master + uses: actions/checkout@v4.1.7 with: #ref: ${{ github.head_ref }} ref: ${{ matrix.mainnet_branch }} #Checking out head commit path: ${{ matrix.mainnet_branch }} - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Install baedeker - uses: UniqueNetwork/baedeker-action/setup@built + uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output + with: + useCache: false - name: Setup library run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library - name: Start network - uses: UniqueNetwork/baedeker-action@built + uses: UniqueNetwork/baedeker-action@v1-no-debug-output + if: success() id: bdk with: jpath: | @@ -161,32 +153,40 @@ jobs: relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local inputs: | .baedeker/node-only.jsonnet - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.name }}'}}) - ephemeral:snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}}) + ephemeral:snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}, extra_node_mixin={extraArgs: []}) - - name: Run Parallel tests before Node Parachain upgrade - working-directory: ${{ matrix.mainnet_branch }}/tests - if: success() + - name: Ensure network is alive + working-directory: ${{ matrix.mainnet_branch }}/js-packages/tests + id: alive1 + if: ${{ !cancelled() && steps.bdk.outcome == 'success' }} run: | yarn yarn add mochawesome - # TODO: Update to new script structure after mainnet will have it - ./scripts/wait_for_first_block.sh + ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} + + - name: Run Parallel tests before Node Parachain upgrade + working-directory: ${{ matrix.mainnet_branch }}/js-packages/tests + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} + run: | echo "Ready to start tests" NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: Run Sequential tests before Node Parachain upgrade - if: success() || failure() - working-directory: ${{ matrix.mainnet_branch }}/tests + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} + working-directory: ${{ matrix.mainnet_branch }}/js-packages/tests run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: "Reconcile: only one old node" - if: success() || failure() - uses: UniqueNetwork/baedeker-action/reconcile@built + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} + id: reconcile1 + uses: UniqueNetwork/baedeker-action/reconcile@v1-no-debug-output with: baedeker: ${{ steps.bdk.outputs.baedeker }} # Chain should always be built with the mainnet spec, this we first set binary for all nodes expect one, then set mainnet binary for the last node, and then force chainspec to be still generated from mainnet @@ -196,15 +196,18 @@ jobs: snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}) - name: Ensure network is alive - if: success() + working-directory: ${{ matrix.mainnet_branch }}/js-packages/tests + id: alive2 + if: ${{ !cancelled() && steps.reconcile1.outcome == 'success' }} run: | - ./js-packages/scripts/wait_for_first_block.sh + ../scripts/wait_for_first_block.sh env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: "Reconcile: all nodes are updated" - if: success() || failure() - uses: UniqueNetwork/baedeker-action/reconcile@built + if: ${{ !cancelled() && steps.alive2.outcome == 'success' }} + id: reconcile2 + uses: UniqueNetwork/baedeker-action/reconcile@v1-no-debug-output with: baedeker: ${{ steps.bdk.outputs.baedeker }} # Chain should always be built with the mainnet spec, this we first set binary for all nodes, and then force chainspec to be still generated from mainnet @@ -212,22 +215,27 @@ jobs: snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, for_chain = false) snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.mainnet.outputs.name }}'}}) + - name: Ensure network is alive + working-directory: ${{ matrix.mainnet_branch }}/js-packages/tests + id: alive3 + if: ${{ !cancelled() && steps.reconcile2.outcome == 'success' }} + run: | + ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} + - name: Run Parallel tests after Node Parachain upgrade - working-directory: ${{ matrix.mainnet_branch }}/tests - if: success() || failure() # run this step even if previous step failed + working-directory: ${{ matrix.mainnet_branch }}/js-packages/tests + if: ${{ !cancelled() && steps.alive3.outcome == 'success' }} run: | - yarn install - yarn add mochawesome - # TODO: Update to new script structure after mainnet will have it - ./scripts/wait_for_first_block.sh echo "Ready to start tests" NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: Run Sequential tests after Node Parachain upgrade - if: success() || failure() - working-directory: ${{ matrix.mainnet_branch }}/tests + if: ${{ !cancelled() && steps.alive3.outcome == 'success' }} + working-directory: ${{ matrix.mainnet_branch }}/js-packages/tests run: NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} env: RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} diff --git a/.github/workflows/polkadot-types.yml b/.github/workflows/polkadot-types.yml index ec29dd9ef0..b13d5f910a 100644 --- a/.github/workflows/polkadot-types.yml +++ b/.github/workflows/polkadot-types.yml @@ -1,6 +1,6 @@ # Integration test in --dev mode # https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586411104/Integration+tests -name: Polkadot types +name: polkadot-types # Triger: only call from main workflow(re-usable workflows) on: @@ -19,7 +19,7 @@ jobs: polkadot_generate_types: # The type of runner that the job will run on - runs-on: [self-hosted-ci,medium] + runs-on: [ self-hosted-ci,medium ] timeout-minutes: 1380 name: ${{ matrix.network }} @@ -29,8 +29,6 @@ jobs: strategy: matrix: include: - - network: "sapphire" - usage: "" - network: "opal" usage: "" - network: "quartz" @@ -44,12 +42,12 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Generate ENV related extend file for docker-compose uses: cuchi/jinja2-action@v1.2.0 @@ -57,18 +55,17 @@ jobs: template: .docker/docker-compose.tmp-dev.j2 output_file: .docker/docker-compose.${{ matrix.network }}.yml variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} NETWORK=${{ matrix.network }} - name: Show build configuration run: cat .docker/docker-compose.${{ matrix.network }}.yml - name: Build the stack - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans + run: docker compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 # - name: Install jq # run: sudo apt install jq -y @@ -86,7 +83,7 @@ jobs: - name: Stop running containers if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down + run: docker compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down - name: Remove builder cache if: always() # run this step always diff --git a/.github/workflows/schedule-trigger-for-develop-build.yml b/.github/workflows/schedule-trigger-for-develop-build.yml index ae1c35a8be..4f569a81e8 100644 --- a/.github/workflows/schedule-trigger-for-develop-build.yml +++ b/.github/workflows/schedule-trigger-for-develop-build.yml @@ -16,7 +16,7 @@ jobs: - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 - name: Checkout 🛎 - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v4.1.7 with: # check out all branches fetch-depth: 0 diff --git a/.github/workflows/testnet-build.yml b/.github/workflows/testnet-build.yml deleted file mode 100644 index 3a2241ed46..0000000000 --- a/.github/workflows/testnet-build.yml +++ /dev/null @@ -1,128 +0,0 @@ -name: testnet-image-build - -# Controls when the action will run. -on: - workflow_call: - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -#Define Workflow variables -env: - REPO_URL: ${{ github.server_url }}/${{ github.repository }} - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - - prepare-execution-marix: - - name: Prepare execution matrix - - runs-on: [self-hosted-ci,medium] - outputs: - matrix: ${{ steps.create_matrix.outputs.matrix }} - - steps: - - - name: Clean Workspace - uses: AutoModality/action-clean@v1.1.0 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 - with: - ref: ${{ github.head_ref }} #Checking out head commit - - - name: Read .env file - uses: xom9ikk/dotenv@v2 - - - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v4 - id: create_matrix - with: - matrix: | - network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}} - network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}} - network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}} - - testnet-build: - needs: prepare-execution-marix - # The type of runner that the job will run on - runs-on: [self-hosted-ci,medium] - - timeout-minutes: 600 - - name: ${{ matrix.network }} - - continue-on-error: true #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false. - - strategy: - matrix: - include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} - - steps: - - name: Skip if pull request is in Draft - if: github.event.pull_request.draft == true - run: exit 1 - - - name: Clean Workspace - uses: AutoModality/action-clean@v1.1.0 - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 - with: - ref: ${{ github.head_ref }} #Checking out head commit - - - name: Read .env file - uses: xom9ikk/dotenv@v2 - - - name: Generate ENV related extend file for docker-compose - uses: cuchi/jinja2-action@v1.2.0 - with: - template: .docker/Dockerfile-testnet.j2 - output_file: .docker/Dockerfile-testnet.${{ matrix.network }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - NETWORK=${{ matrix.network }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} - POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }} - NETWORK=${{ matrix.network }} - BRANCH=${{ github.head_ref }} - - - name: Show build configuration - run: cat .docker/Dockerfile-testnet.${{ matrix.network }}.yml - - - name: Show launch-config configuration - run: cat launch-config.json - - - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@4 - id: branchname - with: - source: ${{ github.head_ref }} - find: '/' - replace: '-' - - - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 - with: - username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} - password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - - name: Pull polkadot docker image - run: docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} - - - name: Build the stack - run: cd .docker/ && docker build --file ./Dockerfile-testnet.${{ matrix.network }}.yml --tag uniquenetwork/${{ matrix.network }}-testnet-local-nightly:nightly-${{ steps.branchname.outputs.value }}-${{ github.sha }} . - - - name: Push docker version image - run: docker push uniquenetwork/${{ matrix.network }}-testnet-local-nightly:nightly-${{ steps.branchname.outputs.value }}-${{ github.sha }} - - - name: Clean Workspace - if: always() - uses: AutoModality/action-clean@v1.1.0 - - - name: Remove builder cache - if: always() # run this step always - run: | - docker builder prune -f - docker system prune -f diff --git a/.github/workflows/try-runtime.yml b/.github/workflows/try-runtime.yml index 4cbebc2b92..262e8baef7 100644 --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -2,8 +2,11 @@ # https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2587656213/Try+runtime # Triger: only call from main workflow(re-usable workflows) +name: try-runtime + on: workflow_call: + workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: @@ -11,7 +14,7 @@ jobs: name: Prepare execution matrix - runs-on: self-hosted-ci + runs-on: [ self-hosted-ci ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} @@ -21,28 +24,27 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | - network {opal}, wasm_name {opal}, replica_from_address {${{ env.OPAL_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 }}} + network {opal}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} + network {quartz}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} + network {unique}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} try-runtime-build: needs: prepare-execution-marix # The type of runner that the job will run on - runs-on: [self-hosted-ci] + runs-on: [ self-hosted-ci ] continue-on-error: true #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false. name: ${{ matrix.network }}-try-runtime-build @@ -56,7 +58,7 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -65,10 +67,10 @@ jobs: uses: ./.github/actions/prepare - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} @@ -80,16 +82,14 @@ jobs: template: .docker/Dockerfile-try-runtime.j2 output_file: .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} NETWORK=${{ matrix.network }} - WASM_NAME=${{ matrix.wasm_name }} REPLICA_FROM=${{ matrix.replica_from_address }} - name: Show build Dockerfile run: cat .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@4 + uses: mad9000/actions-find-and-replace-string@5 id: branchname with: source: ${{ github.head_ref }} @@ -138,7 +138,7 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -151,7 +151,7 @@ jobs: echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@4 + uses: mad9000/actions-find-and-replace-string@5 id: branchname with: source: ${{ github.head_ref }} @@ -159,7 +159,7 @@ jobs: replace: '-' - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Generate ENV related extend file for docker-compose uses: cuchi/jinja2-action@v1.2.0 @@ -173,18 +173,18 @@ jobs: - name: Show build configuration run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - name: Build the stack - run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 + run: docker compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 - name: Check if docker logs consist logs related to Runtime Upgrade testing. if: success() @@ -244,7 +244,7 @@ jobs: - name: Stop running containers if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down + run: docker compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down - name: Remove builder cache if: always() # run this step always diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 6a399fb1df..4a4070c7d6 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -1,18 +1,19 @@ # https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586738699/Unit+Tests # Re-Usable Workflow for lanching Unit tests -name: unit tests +name: unit-tests # Controls when the action will run. # Triger: only call from main workflow(re-usable workflows) on: workflow_call: + workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: unit_tests: # The type of runner that the job will run on - runs-on: [self-hosted-ci,medium] + runs-on: [ self-hosted-ci,medium ] timeout-minutes: 1380 name: ${{ github.base_ref }} @@ -25,31 +26,28 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Generate ENV related extend file for docker-compose uses: cuchi/jinja2-action@v1.2.0 with: template: .docker/docker-compose.tmp-unit.j2 output_file: .docker/docker-compose.unit.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - - name: Show build configuration run: cat .docker/docker-compose.unit.yml - name: Build the stack - run: docker-compose -f ".docker/docker-compose.unit.yml" up --build --force-recreate --timeout 300 --remove-orphans --exit-code-from node-dev + run: docker compose -f ".docker/docker-compose.unit.yml" up --build --force-recreate --timeout 300 --remove-orphans --exit-code-from node-dev - name: Stop running containers if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.unit.yml" down + run: docker compose -f ".docker/docker-compose.unit.yml" down - name: Remove builder cache if: always() # run this step always diff --git a/.github/workflows/xcm.yml b/.github/workflows/xcm.yml index f21933d620..8344b6751e 100644 --- a/.github/workflows/xcm.yml +++ b/.github/workflows/xcm.yml @@ -16,7 +16,7 @@ jobs: prepare-execution-marix: name: Prepare execution matrix - runs-on: [self-hosted-ci] + runs-on: [ self-hosted-ci ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} @@ -25,21 +25,21 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | - network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.WESTMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testXcmOpal}, runtime_features {opal-runtime} - network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONRIVER_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINE_BUILD_BRANCH }}}, astar_version {${{ env.SHIDEN_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testFullXcmQuartz}, runtime_features {quartz-runtime} - network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, cumulus_version {${{ env.STATEMINT_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, polkadex_version {${{ env.POLKADEX_BUILD_BRANCH }}}, runtest {testFullXcmUnique}, runtime_features {unique-runtime} + network {opal}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}}, assethub_version {${{ env.WESTMINT_BUILD_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, acala_repository {acala-node}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, runtest {testXcmOpal} + network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, assethub_version {${{ env.STATEMINE_BUILD_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, acala_repository {karura-node}, moonbeam_version {${{ env.MOONRIVER_BUILD_BRANCH }}}, astar_version {${{ env.SHIDEN_BUILD_BRANCH }}}, runtest {testFullXcmQuartz} + network {unique}, relay_branch {${{ env.POLKADOT_MAINNET_BRANCH }}}, assethub_version {${{ env.STATEMINT_BUILD_BRANCH }}}, acala_version {${{ env.ACALA_BUILD_BRANCH }}}, acala_repository {acala-node}, moonbeam_version {${{ env.MOONBEAM_BUILD_BRANCH }}}, astar_version {${{ env.ASTAR_BUILD_BRANCH }}}, runtest {testFullXcmUnique} xcm: needs: prepare-execution-marix @@ -65,7 +65,7 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -74,235 +74,121 @@ jobs: uses: ./.github/actions/prepare - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - # Check POLKADOT version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for POLKADOT - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull polkadot image + id: polkadot + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-polkadot.j2 - output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} + registry: registry.hub.docker.com + organization: parity + repository: polkadot + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ matrix.relay_branch }} - - name: Check if the dockerhub repository contains the needed version POLKADOT - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB POLKADOT repository - POLKADOT_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadot/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "POLKADOT TAGS:" - echo $POLKADOT_TAGS - # Check correct version POLKADOT and build it if it doesn't exist in POLKADOT TAGS - if [[ ${POLKADOT_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.relay_branch }}"($|[[:space:]]) ]]; then - echo "Repository has needed POLKADOT version"; - docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} - else - echo "Repository has not needed POLKADOT version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-polkadot.${{ matrix.relay_branch }}.yml --tag uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} . - echo "Push needed POLKADOT version to the repository"; - docker push uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} - fi - shell: bash - - # Check ACALA version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for ACALA - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull acala image + id: acala + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-acala.j2 - output_file: .docker/Dockerfile-acala.${{ matrix.acala_version }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - ACALA_BUILD_BRANCH=${{ matrix.acala_version }} + registry: registry.hub.docker.com + organization: acala + repository: ${{ matrix.acala_repository }} + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ matrix.acala_version }} - - name: Check if the dockerhub repository contains the needed ACALA version - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB repository - ACALA_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-acala/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "ACALA TAGS:" - echo $ACALA_TAGS - # Check correct version ACALA and build it if it doesn't exist in ACALA TAGS - if [[ ${ACALA_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.acala_version }}"($|[[:space:]]) ]]; then - echo "Repository has needed ACALA version"; - docker pull uniquenetwork/builder-acala:${{ matrix.acala_version }} - else - echo "Repository has not needed ACALA version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-acala.${{ matrix.acala_version }}.yml --tag uniquenetwork/builder-acala:${{ matrix.acala_version }} . - echo "Push needed ACALA version to the repository"; - docker push uniquenetwork/builder-acala:${{ matrix.acala_version }} - fi - shell: bash - - # Check MOONBEAM version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for MOONBEAM - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull MOONBEAM image + id: moonbeam + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-moonbeam.j2 - output_file: .docker/Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - MOONBEAM_BUILD_BRANCH=${{ matrix.moonbeam_version }} + registry: registry.hub.docker.com + organization: moonbeamfoundation + repository: moonbeam + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ matrix.moonbeam_version }} - - name: Check if the dockerhub repository contains the needed MOONBEAM version - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB repository - MOONBEAM_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-moonbeam/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "MOONBEAM TAGS:" - echo $MOONBEAM_TAGS - # Check correct version MOONBEAM and build it if it doesn't exist in MOONBEAM TAGS - if [[ ${MOONBEAM_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.moonbeam_version }}"($|[[:space:]]) ]]; then - echo "Repository has needed MOONBEAM version"; - docker pull uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} - else - echo "Repository has not needed MOONBEAM version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-moonbeam.${{ matrix.moonbeam_version }}.yml --tag uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} . - echo "Push needed MOONBEAM version to the repository"; - docker push uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }} - fi - shell: bash - - # Check CUMULUS version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for CUMULUS - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull ASSETHUB image + id: assethub + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-cumulus.j2 - output_file: .docker/Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - CUMULUS_BUILD_BRANCH=${{ matrix.cumulus_version }} + registry: registry.hub.docker.com + organization: parity + repository: polkadot-parachain + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ matrix.assethub_version }} - - name: Check if the dockerhub repository contains the needed CUMULUS version - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB repository - CUMULUS_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-cumulus/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "CUMULUS TAGS:" - echo $CUMULUS_TAGS - # Check correct version CUMULUS and build it if it doesn't exist in CUMULUS TAGS - if [[ ${CUMULUS_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.cumulus_version }}"($|[[:space:]]) ]]; then - echo "Repository has needed CUMULUS version"; - docker pull uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} - else - echo "Repository has not needed CUMULUS version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-cumulus.${{ matrix.cumulus_version }}.yml --tag uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} . - echo "Push needed CUMULUS version to the repository"; - docker push uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} - fi - shell: bash - - # Check ASTAR version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for ASTAR - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull ASTAR image + id: astar + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-astar.j2 - output_file: .docker/Dockerfile-astar.${{ matrix.astar_version }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - ASTAR_BUILD_BRANCH=${{ matrix.astar_version }} + registry: registry.hub.docker.com + organization: staketechnologies + repository: astar-collator + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ matrix.astar_version }} - - name: Check if the dockerhub repository contains the needed ASTAR version - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB repository - ASTAR_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-astar/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "ASTAR TAGS:" - echo $ASTAR_TAGS - # Check correct version ASTAR and build it if it doesn't exist in ASTAR TAGS - if [[ ${ASTAR_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.astar_version }}"($|[[:space:]]) ]]; then - echo "Repository has needed ASTAR version"; - docker pull uniquenetwork/builder-astar:${{ matrix.astar_version }} - else - echo "Repository has not needed ASTAR version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-astar.${{ matrix.astar_version }}.yml --tag uniquenetwork/builder-astar:${{ matrix.astar_version }} . - echo "Push needed ASTAR version to the repository"; - docker push uniquenetwork/builder-astar:${{ matrix.astar_version }} - fi - shell: bash - - # Check POLKADEX version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for POLKADEX - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull POLKADEX image + id: polkadex + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-polkadex.j2 - output_file: .docker/Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADEX_BUILD_BRANCH=${{ matrix.polkadex_version }} - - - name: Check if the dockerhub repository contains the needed POLKADEX version - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB repository - POLKADEX_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadex/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "POLKADEX TAGS:" - echo $POLKADEX_TAGS - # Check correct version POLKADEX and build it if it doesn't exist in POLKADEX TAGS - if [[ ${POLKADEX_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.polkadex_version }}"($|[[:space:]]) ]]; then - echo "Repository has needed POLKADEX version"; - docker pull uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }} - else - echo "Repository has not needed POLKADEX version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-polkadex.${{ matrix.polkadex_version }}.yml --tag uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }} . - echo "Push needed POLKADEX version to the repository"; - docker push uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }} - fi - shell: bash - - - name: Build unique-chain - run: | - docker build --file .docker/Dockerfile-unique \ - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} \ - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} \ - --tag uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} \ - . - - - name: Push docker image version - run: docker push uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} + registry: registry.hub.docker.com + organization: polkadex + repository: mainnet + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ env.POLKADEX_BUILD_BRANCH }} - - uses: actions/setup-node@v3.5.1 + - name: Prepare Hydradx + uses: ./.github/actions/buildContainer + id: hydradx + with: + container: uniquenetwork/builder-hydradx + tag: ${{ env.HYDRADX_BUILD_BRANCH }} + context: . + dockerfile: .docker/Dockerfile-hydradx + args: | + --build-arg HYDRADX_BUILD_BRANCH=${{ env.HYDRADX_BUILD_BRANCH }} + --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + + - name: Prepare latest + uses: ./.github/actions/buildContainer + id: latest with: - node-version: 18 + container: uniquenetwork/ci-xcm-local + tag: ${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} + context: . + dockerfile: .docker/Dockerfile-unique + args: | + --build-arg FEATURES=${{ matrix.network }}-runtime + dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + + - uses: actions/setup-node@v4.0.2 + with: + node-version: 20 - name: Install baedeker - uses: UniqueNetwork/baedeker-action/setup@built + uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output + with: + useCache: false - name: Setup library run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library - name: Start network - uses: UniqueNetwork/baedeker-action@built + uses: UniqueNetwork/baedeker-action@v1-no-debug-output id: bdk with: jpath: | @@ -311,13 +197,14 @@ jobs: relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local inputs: | .baedeker/xcm-${{ matrix.network }}.jsonnet - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/acala':{dockerImage:'uniquenetwork/builder-acala:${{ matrix.acala_version }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/moonbeam':{dockerImage:'uniquenetwork/builder-moonbeam:${{ matrix.moonbeam_version }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/cumulus':{dockerImage:'uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/astar':{dockerImage:'uniquenetwork/builder-astar:${{ matrix.astar_version }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadex':{dockerImage:'uniquenetwork/builder-polkadex:${{ matrix.polkadex_version }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/unique':{dockerImage:'${{ steps.latest.outputs.name }}'}}, extra_node_mixin={extraArgs: []}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/acala':{dockerImage:'${{ steps.acala.outputs.image }}:${{ steps.acala.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/moonbeam':{dockerImage:'${{ steps.moonbeam.outputs.image }}:${{ steps.moonbeam.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/assethub':{dockerImage:'${{ steps.assethub.outputs.image }}:${{ steps.assethub.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/astar':{dockerImage:'${{ steps.astar.outputs.image }}:${{ steps.astar.outputs.tag }}', docker:'/usr/local/bin/astar-collator'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadex':{dockerImage:'${{ steps.polkadex.outputs.image }}:${{ steps.polkadex.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/hydradx':{dockerImage:'${{ steps.latest.outputs.name }}'}}) - name: Upload network config uses: actions/upload-artifact@v3 @@ -326,28 +213,36 @@ jobs: path: ${{ steps.bdk.outputs.composeProject }} retention-days: 2 - - name: Yarn install + - name: Ensure network is alive working-directory: js-packages/tests + id: alive1 + if: ${{ !cancelled() && steps.bdk.outcome == 'success' }} run: | - yarn install + yarn yarn add mochawesome + ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: Call HRMP initialization - working-directory: js-packages/tests + working-directory: js-packages/scripts + id: hrmp + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} run: | - yarn ts-node --esm util/createHrmp.ts ${{matrix.network}} + yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm createHrmp.ts ${{matrix.network}} - name: Run XCM tests working-directory: js-packages/tests + id: tests + if: ${{ !cancelled() && steps.hrmp.outcome == 'success' }} run: | - # Wanted by both wait_for_first_block - export RPC_URL="${RELAY_OPAL_HTTP_URL:-${RELAY_QUARTZ_HTTP_URL:-${RELAY_UNIQUE_HTTP_URL:-}}}" - ../scripts/wait_for_first_block.sh echo "Ready to start tests" NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW} + env: + RPC_URL: ${{ env.RELAY_UNIQUE_HTTP_URL }} - name: XCM Test Report - uses: phoenix-actions/test-reporting@v10 + uses: phoenix-actions/test-reporting@v15 id: test-report if: success() || failure() with: diff --git a/.github/workflows/xnft.yml b/.github/workflows/xnft.yml index 4d2752e580..6a819aa280 100644 --- a/.github/workflows/xnft.yml +++ b/.github/workflows/xnft.yml @@ -16,7 +16,7 @@ jobs: prepare-execution-marix: name: Prepare execution matrix - runs-on: [self-hosted-ci] + runs-on: [ self-hosted-ci ] outputs: matrix: ${{ steps.create_matrix.outputs.matrix }} @@ -25,19 +25,19 @@ jobs: uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Create Execution matrix uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | - network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, runtest {all-quartz}, runtime_features {quartz-runtime} + network {quartz}, relay_branch {${{ env.KUSAMA_MAINNET_BRANCH }}}, acala_version {${{ env.KARURA_BUILD_BRANCH }}}, acala_repository {karura-node}, runtest {all-quartz} xnft: needs: prepare-execution-marix @@ -60,10 +60,11 @@ jobs: run: exit 1 - name: Clean Workspace + if: always() uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -72,117 +73,89 @@ jobs: uses: ./.github/actions/prepare - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Log in to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v3.2.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - # Check POLKADOT version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for POLKADOT - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull polkadot image + id: polkadot + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-polkadot.j2 - output_file: .docker/Dockerfile-polkadot.${{ matrix.relay_branch }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} + registry: registry.hub.docker.com + organization: parity + repository: polkadot + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ matrix.relay_branch }} - - name: Check if the dockerhub repository contains the needed version POLKADOT - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB POLKADOT repository - POLKADOT_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-polkadot/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "POLKADOT TAGS:" - echo $POLKADOT_TAGS - # Check correct version POLKADOT and build it if it doesn't exist in POLKADOT TAGS - if [[ ${POLKADOT_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.relay_branch }}"($|[[:space:]]) ]]; then - echo "Repository has needed POLKADOT version"; - docker pull uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} - else - echo "Repository has not needed POLKADOT version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-polkadot.${{ matrix.relay_branch }}.yml --tag uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} . - echo "Push needed POLKADOT version to the repository"; - docker push uniquenetwork/builder-polkadot:${{ matrix.relay_branch }} - fi - shell: bash - - # Check ACALA version and build it if it doesn't exist in repository - - name: Generate ENV related extend Dockerfile file for ACALA - uses: cuchi/jinja2-action@v1.2.0 + - name: Check and pull acala image + id: acala + uses: cloudposse/github-action-docker-image-exists@main with: - template: .docker/Dockerfile-acala.j2 - output_file: .docker/Dockerfile-acala.${{ matrix.acala_version }}.yml - variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - ACALA_BUILD_BRANCH=${{ matrix.acala_version }} - - - name: Check if the dockerhub repository contains the needed ACALA version - run: | - # aquire token - TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${{ secrets.CORE_DOCKERHUB_USERNAME }}'", "password": "'${{ secrets.CORE_DOCKERHUB_TOKEN }}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token) - export TOKEN=$TOKEN - - # Get TAGS from DOCKERHUB repository - ACALA_TAGS=$(curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/uniquenetwork/builder-acala/tags/?page_size=100 | jq -r '."results"[]["name"]') - # Show TAGS - echo "ACALA TAGS:" - echo $ACALA_TAGS - # Check correct version ACALA and build it if it doesn't exist in ACALA TAGS - if [[ ${ACALA_TAGS[*]} =~ (^|[[:space:]])"${{ matrix.acala_version }}"($|[[:space:]]) ]]; then - echo "Repository has needed ACALA version"; - docker pull uniquenetwork/builder-acala:${{ matrix.acala_version }} - else - echo "Repository has not needed ACALA version, so build it"; - cd .docker/ && docker build --file ./Dockerfile-acala.${{ matrix.acala_version }}.yml --tag uniquenetwork/builder-acala:${{ matrix.acala_version }} . - echo "Push needed ACALA version to the repository"; - docker push uniquenetwork/builder-acala:${{ matrix.acala_version }} - fi - shell: bash - - - name: Build unique-chain - run: | - docker build --file .docker/Dockerfile-unique \ - --build-arg RUNTIME_FEATURES=${{ matrix.runtime_features }} \ - --build-arg RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} \ - --tag uniquenetwork/ci-xnft-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} \ - . - - - name: Push docker image version - run: docker push uniquenetwork/ci-xnft-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} + registry: registry.hub.docker.com + organization: acala + repository: ${{ matrix.acala_repository }} + login: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + tag: ${{ matrix.acala_version }} - - uses: actions/setup-node@v3.5.1 + - name: Prepare latest + uses: ./.github/actions/buildContainer + id: latest with: - node-version: 18 + container: uniquenetwork/ci-xnft-local + tag: ${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }} + context: . + dockerfile: .docker/Dockerfile-unique + args: | + --build-arg FEATURES=${{ matrix.network }}-runtime + dockerhub_username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + dockerhub_token: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + + - uses: actions/setup-node@v4.0.2 + with: + node-version: 20 - name: Clone xnft-tests - run: git clone https://github.com/UniqueNetwork/xnft-tests.git + run: git clone -b master https://github.com/UniqueNetwork/xnft-tests.git - name: Install baedeker - uses: UniqueNetwork/baedeker-action/setup@built + uses: UniqueNetwork/baedeker-action/setup@v1-no-debug-output + with: + useCache: false - name: Setup library run: mkdir -p .baedeker/vendor/ && git clone https://github.com/UniqueNetwork/baedeker-library .baedeker/vendor/baedeker-library - name: Start network - uses: UniqueNetwork/baedeker-action@built + uses: UniqueNetwork/baedeker-action@v1-no-debug-output + if: success() id: bdk with: jpath: | .baedeker/vendor tla-str: | - relay_spec=rococo-local + relay_spec=${{ env.RELAY_CHAIN_TYPE }}-local inputs: | xnft-tests/.baedeker/testnets.jsonnet - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'uniquenetwork/builder-polkadot:${{ matrix.relay_branch }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/quartz':{dockerImage:'uniquenetwork/ci-xnft-local:${{ matrix.network }}-${{ env.REF_SLUG }}-${{ env.BUILD_SHA }}'}}) - snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/karura':{dockerImage:'uniquenetwork/builder-acala:${{ matrix.acala_version }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/polkadot':{dockerImage:'${{ steps.polkadot.outputs.image }}:${{ steps.polkadot.outputs.tag }}'}}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/quartz':{dockerImage:'${{ steps.latest.outputs.name }}'}}, extra_node_mixin={extraArgs: []}) + snippet:(import 'baedeker-library/ops/rewrites.libsonnet').rewriteNodePaths({'bin/karura':{dockerImage:'${{ steps.acala.outputs.image }}:${{ steps.acala.outputs.tag }}'}}) + + - name: Ensure network is alive + working-directory: js-packages/tests + id: alive1 + if: ${{ !cancelled() && steps.bdk.outcome == 'success' }} + run: | + yarn + yarn add mochawesome + ../scripts/wait_for_first_block.sh + env: + RPC_URL: ${{ env.RELAY_QUARTZ_HTTP_URL }} - name: Yarn install working-directory: xnft-tests @@ -192,11 +165,14 @@ jobs: - name: Run XNFT Tests working-directory: xnft-tests + if: ${{ !cancelled() && steps.alive1.outcome == 'success' }} run: | NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW} + env: + RPC_URL: ${{ env.RELAY_QUARTZ_HTTP_URL }} - name: XNFT Tests Report - uses: phoenix-actions/test-reporting@v10 + uses: phoenix-actions/test-reporting@v15 id: test-report if: success() || failure() with: @@ -205,10 +181,6 @@ jobs: reporter: mochawesome-json fail-on-error: 'false' - - name: Clean Workspace - if: always() - uses: AutoModality/action-clean@v1.1.0 - - name: Remove builder cache if: always() run: | diff --git a/.github/workflows/yarn-dev.yml b/.github/workflows/yarn-dev.yml index bde90bd0d8..5eb4ab7f7f 100644 --- a/.github/workflows/yarn-dev.yml +++ b/.github/workflows/yarn-dev.yml @@ -1,19 +1,18 @@ # Integration test in --dev mode # https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2586411104/Integration+tests -name: yarn dev +name: yarn-dev # Triger: only call from main workflow(re-usable workflows) on: workflow_call: - - + workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: dev_build_int_tests: # The type of runner that the job will run on - runs-on: [self-hosted-ci,medium] + runs-on: [ self-hosted-ci,medium ] timeout-minutes: 1380 name: ${{ matrix.network }} @@ -24,22 +23,20 @@ jobs: matrix: include: - network: "opal" - - network: "sapphire" - network: "quartz" - network: "unique" steps: - - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3.1.0 + - uses: actions/checkout@v4.1.7 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file - uses: xom9ikk/dotenv@v2 + uses: xom9ikk/dotenv@v2.3.0 - name: Generate ENV related extend file for docker-compose uses: cuchi/jinja2-action@v1.2.0 @@ -47,19 +44,17 @@ jobs: template: .docker/docker-compose.tmp-dev.j2 output_file: .docker/docker-compose.${{ matrix.network }}.yml variables: | - RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} NETWORK=${{ matrix.network }} - - name: Show build configuration run: cat .docker/docker-compose.${{ matrix.network }}.yml - name: Build the stack - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans + run: docker compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans - - uses: actions/setup-node@v3.5.1 + - uses: actions/setup-node@v4.0.2 with: - node-version: 18 + node-version: 20 - name: Run tests working-directory: js-packages/tests @@ -73,7 +68,7 @@ jobs: RPC_URL: http://127.0.0.1:9944/ - name: Test Report - uses: phoenix-actions/test-reporting@v10 + uses: phoenix-actions/test-reporting@v15 id: test-report if: success() || failure() # run this step even if previous step failed with: @@ -90,17 +85,17 @@ jobs: working-directory: js-packages/scripts run: | yarn install - npx ts-node --esm ./benchmarks/mintFee/index.ts + node --no-warnings=ExperimentalWarning --loader ts-node/esm ./benchmarks/mintFee/index.ts - name: Run benchmark opsFee tests working-directory: js-packages/scripts run: | yarn install - npx ts-node --esm ./benchmarks/opsFee/index.ts + node --no-warnings=ExperimentalWarning --loader ts-node/esm ./benchmarks/opsFee/index.ts - name: Stop running containers if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down + run: docker compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down - name: Remove builder cache if: always() # run this step always diff --git a/.vscode/settings.json b/.vscode/settings.json index 0b8bca5e0a..c922ad3bf5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -10,5 +10,5 @@ "SKIP_WASM_BUILD": "1" }, "rust-analyzer.cargo.features": ["runtime-benchmarks", "try-runtime"], - "solidity.packageDefaultDependenciesDirectory": "tests/node_modules" + "solidity.packageDefaultDependenciesDirectory": "js-packages/node_modules" } diff --git a/Cargo.lock b/Cargo.lock index 62e79b387c..58aea4f4ff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -23,11 +23,11 @@ dependencies = [ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ - "gimli 0.28.0", + "gimli 0.29.0", ] [[package]] @@ -36,25 +36,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "aead" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" -dependencies = [ - "generic-array 0.14.7", -] - -[[package]] -name = "aead" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", -] - [[package]] name = "aead" version = "0.5.2" @@ -67,105 +48,48 @@ dependencies = [ [[package]] name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", -] - -[[package]] -name = "aes" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" -dependencies = [ - "cfg-if", - "cipher 0.3.0", - "cpufeatures", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher 0.4.4", "cpufeatures", ] -[[package]] -name = "aes-gcm" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" -dependencies = [ - "aead 0.4.3", - "aes 0.7.5", - "cipher 0.3.0", - "ctr 0.8.0", - "ghash 0.4.4", - "subtle 2.4.1", -] - [[package]] name = "aes-gcm" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "831010a0f742e1209b3bcea8fab6a8e149051ba6099432c8cb2cc117dec3ead1" dependencies = [ - "aead 0.5.2", - "aes 0.8.3", + "aead", + "aes", "cipher 0.4.4", - "ctr 0.9.2", - "ghash 0.5.0", - "subtle 2.4.1", -] - -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", -] - -[[package]] -name = "aesni" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" -dependencies = [ - "cipher 0.2.5", - "opaque-debug 0.3.0", + "ctr", + "ghash", + "subtle 2.5.0", ] [[package]] name = "ahash" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.15", "once_cell", "version_check", ] [[package]] name = "ahash" -version = "0.8.6" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "getrandom 0.2.11", + "getrandom 0.2.15", "once_cell", "version_check", "zerocopy", @@ -173,18 +97,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "always-assert" @@ -218,57 +142,58 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.4" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.4" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.2" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.1" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "app-promotion-rpc" @@ -292,9 +217,9 @@ dependencies = [ [[package]] name = "aquamarine" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df752953c49ce90719c7bf1fc587bc8227aed04732ea0c0f85e5397d7fdbd1a1" +checksum = "d1da02abba9f9063d786eab1509833ebb2fac0f966862ca59439c76b9c566760" dependencies = [ "include_dir", "itertools 0.10.5", @@ -305,10 +230,18 @@ dependencies = [ ] [[package]] -name = "arc-swap" -version = "1.6.0" +name = "aquamarine" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +checksum = "21cc1548309245035eb18aa7f0967da6bc65587005170c56e6ef2788a4cf3f4e" +dependencies = [ + "include_dir", + "itertools 0.10.5", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.66", +] [[package]] name = "ark-bls12-377" @@ -436,7 +369,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", ] [[package]] @@ -447,9 +380,9 @@ checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" [[package]] name = "array-bytes" -version = "6.2.0" +version = "6.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de17a919934ad8c5cc99a1a74de4e2dab95d6121a8f27f94755ff525b630382c" +checksum = "5d5dde061bd34119e902bbb2d9b90c5692635cf59fb91d582c2b68043f1b8293" [[package]] name = "arrayref" @@ -466,41 +399,19 @@ dependencies = [ "nodrop", ] -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" -[[package]] -name = "asn1-rs" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33" -dependencies = [ - "asn1-rs-derive 0.1.0", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror", - "time", -] - [[package]] name = "asn1-rs" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" dependencies = [ - "asn1-rs-derive 0.4.0", + "asn1-rs-derive", "asn1-rs-impl", "displaydoc", "nom", @@ -510,18 +421,6 @@ dependencies = [ "time", ] -[[package]] -name = "asn1-rs-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - [[package]] name = "asn1-rs-derive" version = "0.4.0" @@ -564,28 +463,26 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.1.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37875bd9915b7d67c2f117ea2c30a0989874d0b2cb694fe25403c85763c0c9e" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener 3.1.0", - "event-listener-strategy", + "event-listener-strategy 0.5.2", "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "async-executor" -version = "1.7.2" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc5ea910c42e5ab19012bab31f53cb4d63d54c3a27730f9a833a88efcf4bb52d" +checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0" dependencies = [ - "async-lock 3.1.1", "async-task", "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.0.1", + "fastrand 2.1.0", + "futures-lite 2.3.0", "slab", ] @@ -623,22 +520,21 @@ dependencies = [ [[package]] name = "async-io" -version = "2.2.0" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9d5715c2d329bf1b4da8d60455b99b187f27ba726df2883799af9af60997" +checksum = "dcccb0f599cfa2f8ace422d3555572f47424da5648a4382a9dd0310ff8210884" dependencies = [ - "async-lock 3.1.1", + "async-lock 3.3.0", "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.0.1", + "futures-lite 2.3.0", "parking", - "polling 3.3.0", - "rustix 0.38.25", + "polling 3.7.0", + "rustix 0.38.34", "slab", "tracing", - "waker-fn", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -652,13 +548,13 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.1.1" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655b9c7fe787d3b25cc0f804a1a8401790f0c5bc395beb5a64dc77d8de079105" +checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" dependencies = [ - "event-listener 3.1.0", - "event-listener-strategy", - "pin-project-lite 0.2.13", + "event-listener 4.0.3", + "event-listener-strategy 0.4.0", + "pin-project-lite 0.2.14", ] [[package]] @@ -685,43 +581,43 @@ dependencies = [ "cfg-if", "event-listener 3.1.0", "futures-lite 1.13.0", - "rustix 0.38.25", + "rustix 0.38.34", "windows-sys 0.48.0", ] [[package]] name = "async-signal" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" +checksum = "afe66191c335039c7bb78f99dc7520b0cbb166b3a1cb33a03f53d8a1c6f2afda" dependencies = [ - "async-io 2.2.0", - "async-lock 2.8.0", + "async-io 2.3.2", + "async-lock 3.3.0", "atomic-waker", "cfg-if", "futures-core", "futures-io", - "rustix 0.38.25", + "rustix 0.38.34", "signal-hook-registry", "slab", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "async-task" -version = "4.5.0" +version = "4.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4eb2cdb97421e01129ccb49169d8279ed21e829929144f4a22a6e54ac549ca1" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -734,7 +630,7 @@ dependencies = [ "futures-sink", "futures-util", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -749,47 +645,35 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "auto_impl" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fee3da8ef1276b0bee5dd1c7258010d8fffd31801447323115a25560e1327b89" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ - "proc-macro-error", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11" dependencies = [ - "addr2line 0.21.0", + "addr2line 0.22.0", "cc", "cfg-if", "libc", "miniz_oxide", - "object 0.32.1", + "object 0.35.0", "rustc-demangle", ] @@ -799,12 +683,6 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" -[[package]] -name = "base16ct" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" - [[package]] name = "base16ct" version = "0.2.0" @@ -819,9 +697,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.5" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" @@ -840,11 +724,11 @@ dependencies = [ [[package]] name = "binary-merkle-tree" -version = "10.0.0" +version = "15.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a399848a68a5196a04c19db5bfc4dca3cd0989a3165150f06c1ad1bc8882aa34" +checksum = "4b5c0fd4282c30c05647e1052d71bf1a0c8067ab1e9a8fc6d0c292dce0ecb237" dependencies = [ - "hash-db 0.16.0", + "hash-db", "log", ] @@ -869,13 +753,13 @@ dependencies = [ "lazy_static", "lazycell", "peeking_take_while", - "prettyplease 0.2.15", + "prettyplease 0.2.20", "proc-macro2", "quote", "regex", "rustc-hash", "shlex", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -884,15 +768,31 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93f2635620bf0b9d4576eb7bb9a38a55df78bd1205d26fa994b25911a69f212f" dependencies = [ - "bitcoin_hashes", + "bitcoin_hashes 0.11.0", ] +[[package]] +name = "bitcoin-internals" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9425c3bf7089c983facbae04de54513cce73b41c7f9ff8c845b54e7bc64ebbfb" + [[package]] name = "bitcoin_hashes" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" +[[package]] +name = "bitcoin_hashes" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1930a4dabfebb8d7d9992db18ebe3ae2876f0a305fab206fd168df931ede293b" +dependencies = [ + "bitcoin-internals", + "hex-conservative", +] + [[package]] name = "bitflags" version = "1.3.2" @@ -901,9 +801,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" [[package]] name = "bitvec" @@ -913,6 +813,7 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", + "serde", "tap", "wyz", ] @@ -972,9 +873,9 @@ dependencies = [ [[package]] name = "blake3" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0231f06152bf547e9c2b5194f247cd97aacf6dcd8b15d8e5ec0663f64580da87" +checksum = "30cca6d3674597c30ddf2c587bf8d9d65c9a84d2326d941cc79c9842dfe0ef52" dependencies = [ "arrayref", "arrayvec 0.7.4", @@ -989,7 +890,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding 0.1.5", + "block-padding", "byte-tools", "byteorder", "generic-array 0.12.4", @@ -1013,16 +914,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "block-modes" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" -dependencies = [ - "block-padding 0.2.1", - "cipher 0.2.5", -] - [[package]] name = "block-padding" version = "0.1.5" @@ -1032,26 +923,17 @@ dependencies = [ "byte-tools", ] -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - [[package]] name = "blocking" -version = "1.5.1" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" +checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" dependencies = [ - "async-channel 2.1.0", - "async-lock 3.1.1", + "async-channel 2.3.1", "async-task", - "fastrand 2.0.1", "futures-io", - "futures-lite 2.0.1", + "futures-lite 2.3.0", "piper", - "tracing", ] [[package]] @@ -1076,9 +958,9 @@ dependencies = [ [[package]] name = "bounded-collections" -version = "0.1.9" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca548b6163b872067dc5eb82fd130c56881435e30367d2073594a3d9744120dd" +checksum = "d32385ecb91a31bddaf908e8dcf4a15aef1bcd3913cc03ebfad02ff6d568abc1" dependencies = [ "log", "parity-scale-codec", @@ -1097,9 +979,9 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" -version = "0.3.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be3b4fafc31f17da1b4ea403c4118e4f4f1d9a5a696729b374551d582e48633b" +checksum = "7366e856da4c5f49e1ef94c3ea401854fe52310696561e24b7509d2f963d7210" dependencies = [ "parity-scale-codec", "scale-info", @@ -1115,23 +997,13 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] -[[package]] -name = "bstr" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "542f33a8835a0884b006a0c3df3dadd99c0c3f296ed26c2fdc8028e01ad6230c" -dependencies = [ - "memchr", - "serde", -] - [[package]] name = "build-helper" version = "0.1.1" @@ -1143,9 +1015,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -1161,9 +1033,9 @@ checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" [[package]] name = "bytemuck" -version = "1.14.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" +checksum = "78834c15cb5d5efe3452d58b1e8ba890dd62d21907f867f383358198e56ebca5" [[package]] name = "byteorder" @@ -1173,9 +1045,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "bzip2-sys" @@ -1200,18 +1072,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.5" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e34637b3140142bdf929fb439e8aa4ebad7651ebf7b1080b3930aa16ac1459ff" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" dependencies = [ "serde", ] @@ -1224,7 +1096,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.20", + "semver 1.0.23", "serde", "serde_json", "thiserror", @@ -1232,23 +1104,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.83" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" dependencies = [ "jobserver", "libc", -] - -[[package]] -name = "ccm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aca1a8fbc20b50ac9673ff014abfb2b5f4085ee1a850d408f14a159c5853ac7" -dependencies = [ - "aead 0.3.2", - "cipher 0.2.5", - "subtle 2.4.1", + "once_cell", ] [[package]] @@ -1262,9 +1124,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.15.5" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" +checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" dependencies = [ "smallvec", ] @@ -1308,7 +1170,7 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" dependencies = [ - "aead 0.5.2", + "aead", "chacha20", "cipher 0.4.4", "poly1305", @@ -1317,16 +1179,16 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.31" +version = "0.4.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", "wasm-bindgen", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -1337,7 +1199,7 @@ checksum = "b9b68e3193982cd54187d71afdb2a271ad4cf8af157858e9cb911b91321de143" dependencies = [ "core2", "multibase", - "multihash", + "multihash 0.17.0", "serde", "unsigned-varint", ] @@ -1351,15 +1213,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "cipher" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "cipher" version = "0.4.4" @@ -1382,9 +1235,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.6.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", "libc", @@ -1393,9 +1246,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.4.8" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2275f18819641850fa26c89acc84d465c1bf91ce57bc2748b28c420473352f64" +checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" dependencies = [ "clap_builder", "clap_derive", @@ -1403,43 +1256,43 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.4.8" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07cdf1b148b25c1e1f7a42225e30a0d99a615cd4637eae7365548dd4529b95bc" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", "clap_lex", "strsim", + "terminal_size", ] [[package]] name = "clap_derive" -version = "4.4.7" +version = "4.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" dependencies = [ - "heck", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "clap_lex" -version = "0.6.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" +checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "coarsetime" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71367d3385c716342014ad17e3d19f7788ae514885a1f4c24f500260fb365e1a" +checksum = "13b3839cf01bb7960114be3ccf2340f541b6d0c81f8690b007b2b39f750f7e5d" dependencies = [ "libc", - "once_cell", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasix", "wasm-bindgen", ] @@ -1455,18 +1308,18 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "comfy-table" -version = "7.1.0" +version = "7.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c64043d6c7b7a4c58e39e7efccfdea7b93d885a795d0c054a69dbbf4dd52686" +checksum = "b34115915337defe99b2aff5c2ce6771e5fbc4079f4b506301f5cf394c8452f7" dependencies = [ - "strum 0.25.0", - "strum_macros 0.25.3", + "strum 0.26.2", + "strum_macros 0.26.2", "unicode-width", ] @@ -1478,37 +1331,37 @@ checksum = "2382f75942f4b3be3690fe4f86365e9c853c1587d6ee58212cebf6e2a9ccd101" [[package]] name = "concurrent-queue" -version = "2.3.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f057a694a54f12365049b0958a1685bb52d567f5593b355fbf685838e873d400" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] [[package]] name = "console" -version = "0.15.7" +version = "0.15.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" dependencies = [ "encode_unicode", "lazy_static", "libc", "unicode-width", - "windows-sys 0.45.0", + "windows-sys 0.52.0", ] [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "const-random" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aaf16c9c2c612020bcfd042e170f6e32de9b9d75adb5277cdbbd2e2c8c8299a" +checksum = "87e00182fe74b066627d63b85fd550ac2998d4b0bd86bfed477a0ae4c7c71359" dependencies = [ "const-random-macro", ] @@ -1519,7 +1372,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d839f2a20b0aee515dc581a6172f2321f96cab76c1a38a4c584a194955390e" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.15", "once_cell", "tiny-keccak", ] @@ -1550,9 +1403,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -1560,9 +1413,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "core2" @@ -1594,9 +1447,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -1625,7 +1478,7 @@ dependencies = [ "gimli 0.27.3", "hashbrown 0.13.2", "log", - "regalloc2", + "regalloc2 0.6.1", "smallvec", "target-lexicon", ] @@ -1699,72 +1552,48 @@ dependencies = [ "wasmtime-types", ] -[[package]] -name = "crc" -version = "3.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" dependencies = [ - "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.15" +version = "0.9.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" dependencies = [ - "autocfg", - "cfg-if", "crossbeam-utils", - "memoffset 0.9.0", - "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -1772,18 +1601,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" -[[package]] -name = "crypto-bigint" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" -dependencies = [ - "generic-array 0.14.7", - "rand_core 0.6.4", - "subtle 2.4.1", - "zeroize", -] - [[package]] name = "crypto-bigint" version = "0.5.5" @@ -1792,7 +1609,7 @@ checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array 0.14.7", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle 2.5.0", "zeroize", ] @@ -1824,26 +1641,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ "generic-array 0.14.7", - "subtle 2.4.1", -] - -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.4.1", -] - -[[package]] -name = "ctr" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" -dependencies = [ - "cipher 0.3.0", + "subtle 2.5.0", ] [[package]] @@ -1857,9 +1655,9 @@ dependencies = [ [[package]] name = "cumulus-client-cli" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "858e5a1c2d26c304d75cc7158ed2579f0ff90b68f2d07a2395d073249d485424" +checksum = "d2b5137986e7a4374bf410e4e11ce02c9807c5d3200d590960056220963ecdbf" dependencies = [ "clap", "parity-scale-codec", @@ -1867,6 +1665,7 @@ dependencies = [ "sc-cli", "sc-client-api", "sc-service", + "sp-blockchain", "sp-core", "sp-runtime", "url", @@ -1874,16 +1673,16 @@ dependencies = [ [[package]] name = "cumulus-client-collator" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be58c6ef9780a83267e0b9db50a01158d58ad37ba45ed8162a9ea1b2d61d119c" +checksum = "9f7dde39268c86d2975bdd608d114dd52cd8803618196bc7606e684b9090d24d" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", "cumulus-primitives-core", "futures", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-overseer", @@ -1898,17 +1697,17 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b73f52d21017ff0f2dc6542f2873e1dc3e17561656d6af0810fb813fb553694" +checksum = "8fbbba68555835c2e2d7f1c17060d3cd6fafafdb16597a2e680e7376f71dec51" dependencies = [ "async-trait", "cumulus-client-collator", "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", + "cumulus-client-parachain-inherent", "cumulus-primitives-aura", "cumulus-primitives-core", - "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-interface", "futures", "parity-scale-codec", @@ -1941,9 +1740,9 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ec580468eb700a2776cac54871704b3c3894bc0646c3b8375756bfffd24928f" +checksum = "8b6ff3972c798e87b918e3065d7b52aabb3fc871136b7dde7c708d20567b509f" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -1971,9 +1770,9 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a859c95a853e37c642b613be517d3d9c410a67204a5bd92eb35c5daaffa44d" +checksum = "cf2ff43b5735f8f1a306aa8c44d9efe5bb50c3a3b29afa18728e7a5321a6ba70" dependencies = [ "anyhow", "async-trait", @@ -1987,16 +1786,16 @@ dependencies = [ [[package]] name = "cumulus-client-network" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac979caafb16a47493dfce7509decadad81f982c0110473ab69389af663678d" +checksum = "f10d8141b3de22f002b94fafd9a372f351ee55ad41e1c40ad6534024f176f5bb" dependencies = [ "async-trait", "cumulus-relay-chain-interface", "futures", "futures-timer", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-parachain-primitives", "polkadot-primitives", @@ -2010,10 +1809,35 @@ dependencies = [ ] [[package]] -name = "cumulus-client-pov-recovery" +name = "cumulus-client-parachain-inherent" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4031cda3e64955d57166068a27d544f46f4a9e4c14268a09d8b67eeac7fc51d" +checksum = "6ebeda41b913144e0dbaf57a9537fed6f37ee14c5f31f1bd23808f87e8515ec7" +dependencies = [ + "async-trait", + "cumulus-primitives-core", + "cumulus-primitives-parachain-inherent", + "cumulus-relay-chain-interface", + "cumulus-test-relay-sproof-builder", + "parity-scale-codec", + "sc-client-api", + "scale-info", + "sp-api", + "sp-crypto-hashing", + "sp-inherents", + "sp-runtime", + "sp-state-machine", + "sp-std", + "sp-storage", + "sp-trie", + "tracing", +] + +[[package]] +name = "cumulus-client-pov-recovery" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cf51e1e7cfe82e68a93a4f3221181f8258664f0c4113e4d7c846e449b3596f3" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2025,7 +1849,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-overseer", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-client-api", "sc-consensus", "sp-consensus", @@ -2036,9 +1860,9 @@ dependencies = [ [[package]] name = "cumulus-client-service" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a72ee1a2276f11243b905676b60b77ca981c567cbed3795455b464502c3d4cb8" +checksum = "ebb334fbaedca019671b900bba71fb7cf70244d9436a832b1c5d67491569359d" dependencies = [ "cumulus-client-cli", "cumulus-client-collator", @@ -2046,6 +1870,7 @@ dependencies = [ "cumulus-client-network", "cumulus-client-pov-recovery", "cumulus-primitives-core", + "cumulus-primitives-proof-size-hostfunction", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", @@ -2072,9 +1897,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071cdddd31e2b0d47a74249675de828857f61eb5f6afa36cfcf63ea6ee2b60f2" +checksum = "47ec277f09a2c2b693bca6283eb6bc10aede2eaee43a7c395911235d8b632dab" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -2091,9 +1916,9 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1cb9d43cdfeedea19b4f6b8386e5b6264a97938b29f5c711a84e9dc7105ff7" +checksum = "28e34c35fdd757c548cabaf8b65cabe5ae1c0fab7e143e85a99ab69ec58ad35f" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2109,21 +1934,25 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" -version = "0.4.1" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20d2280051998fcf113f04d25d4b39f27b449570b6350fdfb7e92541cb0aae7" +checksum = "a19c40a5d04f60562fb38195766104deeb8cec71c11ec77796ee9373cccdb325" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", + "cumulus-primitives-proof-size-hostfunction", "environmental", + "frame-benchmarking", "frame-support", "frame-system", "impl-trait-for-tuples", "log", + "pallet-message-queue", "parity-scale-codec", "polkadot-parachain-primitives", + "polkadot-runtime-common", "polkadot-runtime-parachains", "scale-info", "sp-core", @@ -2141,21 +1970,21 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84baea20d10325b2501b6fa06d4a7902a43d6a6c62c71b5309e75c3ad8ae1441" +checksum = "befbaf3a1ce23ac8476481484fef5f4d500cbd15b4dad6380ce1d28134b0c1f7" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "cumulus-pallet-xcm" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff03e14a0f5847bdee67a673ee945d3acd5c1d7238d46993208dcbfb774e27f" +checksum = "7610ae16cac552adc823ba68deb26e5d3a9de189ef79ae26c79e43ddcfeabef1" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2170,20 +1999,21 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6af9816dd6564149729ba133c2c984c88fb15c4a2cb66f57be06b9147744e51" +checksum = "6614dcdbe6c24fcc8677bf158a8c627a3467d262acdc8a0e7d8a3d3d767a757c" dependencies = [ + "bounded-collections", "bp-xcm-bridge-hub-router", "cumulus-primitives-core", "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-message-queue", "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", - "rand_chacha 0.3.1", "scale-info", "sp-core", "sp-io", @@ -2195,9 +2025,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51c2ecd2393555e89245676fd49003fdc68dc7aa108f83f8c5ff5f8936ce5543" +checksum = "1b70d13f3fca1dfaeb868f4fff79c58fef8fa4f8e381a9002d93c50c23683abf" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2210,9 +2040,9 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d40f62add2352287be4cb58b0017a91f61d953e2c6d2777c20d93185558196e1" +checksum = "617d02361f5c7df87b6be98b4974241b6836fbaa7d9e786db80eb38bc8636751" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -2228,33 +2058,36 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d0b1e0e6dcf393dbf05b31122a8c4739acf407a96ec8fd707886f36ee95c355" +checksum = "87d64a55b7b9c3a945e543712630708f36407ab49ad8a2fa9f3d1404093a3e8e" dependencies = [ "async-trait", "cumulus-primitives-core", - "cumulus-relay-chain-interface", - "cumulus-test-relay-sproof-builder", "parity-scale-codec", - "sc-client-api", "scale-info", - "sp-api", "sp-core", "sp-inherents", - "sp-runtime", - "sp-state-machine", "sp-std", - "sp-storage", "sp-trie", - "tracing", +] + +[[package]] +name = "cumulus-primitives-proof-size-hostfunction" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "764e27968dce7d5c455dbaf9ba81c037fc5690afc085aa4aa2a4cdfe53716b74" +dependencies = [ + "sp-externalities", + "sp-runtime-interface", + "sp-trie", ] [[package]] name = "cumulus-primitives-timestamp" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771ef4a34f7bcd4e8782f73d8dbd0df031b1c1c82e54b06af69f88df2cddc316" +checksum = "abf270c68a2cbf68b31cb4e8c4b5fc43665627ec6960cde04c393120e053ccef" dependencies = [ "cumulus-primitives-core", "futures", @@ -2266,14 +2099,14 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4ef704f5a346711d0448f82e57dc5784b186f4bf5e3efbbca0df814b203539" +checksum = "beeca40e85d6da3751343a3fc8dd5b335c9a06ba9897a5b36f726d139b7646de" dependencies = [ "cumulus-primitives-core", "frame-support", "log", - "pallet-xcm-benchmarks", + "pallet-asset-conversion", "parity-scale-codec", "polkadot-runtime-common", "polkadot-runtime-parachains", @@ -2287,9 +2120,9 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9518b7440b3f887433058b000a564e06b6799fd6d2776f4d035b2802c67742eb" +checksum = "2ec58113249ac91ceb4da1c846f6474cd4b6616100d0b29a86845b177caad52f" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2312,9 +2145,9 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af081ef8885042e7ae96e9d1cf32ec6f0616fe4cb78f0325ed7c5accded687fb" +checksum = "cbb531263c11cfd73f17090106fff2385ca7b02b39102c367f4c13fb1251e9dd" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2331,45 +2164,52 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a1635ecc0bc20e7907a559983c818e4130ecfd899635e831f3f9b93966082c" +checksum = "e1a416b2e6a5c99d78049b91425dbdb844f4351fd9fb61da47b70c2f90cf2ed4" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", + "parking_lot 0.12.3", "polkadot-availability-recovery", "polkadot-collator-protocol", "polkadot-core-primitives", "polkadot-network-bridge", "polkadot-node-collation-generation", + "polkadot-node-core-chain-api", + "polkadot-node-core-prospective-parachains", "polkadot-node-core-runtime-api", "polkadot-node-network-protocol", "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "polkadot-service", "sc-authority-discovery", + "sc-client-api", "sc-network", "sc-network-common", "sc-service", "sc-tracing", "sc-utils", "sp-api", + "sp-blockchain", "sp-consensus", "sp-consensus-babe", "sp-runtime", "substrate-prometheus-endpoint", + "tokio", "tracing", ] [[package]] name = "cumulus-relay-chain-rpc-interface" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce507996b8e97e07e3687c1c55159b38f56b2550b476c727114ab2e7ad7b2bf1" +checksum = "e011f8da350318316e80356dca70bee537d8f8fb29bb99d1765348b0ab6f6d88" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -2381,7 +2221,7 @@ dependencies = [ "parity-scale-codec", "pin-project", "polkadot-overseer", - "rand 0.8.5", + "rand", "sc-client-api", "sc-rpc-api", "sc-service", @@ -2397,6 +2237,7 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-storage", + "sp-version", "thiserror", "tokio", "tokio-util", @@ -2406,9 +2247,9 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59b921a9cb6758faa1c739f135fd87aa1e10a4e86a1c1db3119b396a62287cf2" +checksum = "d1e730a7524f50acb03c24476323c4dad35690baf85175ad0f91a2dffed85b39" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -2419,19 +2260,6 @@ dependencies = [ "sp-trie", ] -[[package]] -name = "curve25519-dalek" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b85542f99a2dfa2a1b8e192662741c9859a846b296bef1c92ef9b58b5a216" -dependencies = [ - "byteorder", - "digest 0.8.1", - "rand_core 0.5.1", - "subtle 2.4.1", - "zeroize", -] - [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -2441,15 +2269,15 @@ dependencies = [ "byteorder", "digest 0.9.0", "rand_core 0.5.1", - "subtle 2.4.1", + "subtle 2.5.0", "zeroize", ] [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "0a677b8922c94e01bdbb12126b0bc852f00447528dee1782229af9c720c3f348" dependencies = [ "cfg-if", "cpufeatures", @@ -2458,7 +2286,7 @@ dependencies = [ "fiat-crypto", "platforms", "rustc_version", - "subtle 2.4.1", + "subtle 2.5.0", "zeroize", ] @@ -2470,7 +2298,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -2488,9 +2316,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.110" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7129e341034ecb940c9072817cd9007974ea696844fc4dd582dc1653a7fbe2e8" +checksum = "bb497fad022245b29c2a0351df572e2d67c1046bcef2260ebc022aec81efea82" dependencies = [ "cc", "cxxbridge-flags", @@ -2500,9 +2328,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.110" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a24f3f5f8eed71936f21e570436f024f5c2e25628f7496aa7ccd03b90109d5" +checksum = "9327c7f9fbd6329a200a5d4aa6f674c60ab256525ff0084b52a889d4e4c60cee" dependencies = [ "cc", "codespan-reporting", @@ -2510,72 +2338,50 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "cxxbridge-flags" -version = "1.0.110" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06fdd177fc61050d63f67f5bd6351fac6ab5526694ea8e359cd9cd3b75857f44" +checksum = "688c799a4a846f1c0acb9f36bb9c6272d9b3d9457f3633c7753c6057270df13c" [[package]] name = "cxxbridge-macro" -version = "1.0.110" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "587663dd5fb3d10932c8aecfe7c844db1bcf0aee93eeab08fac13dc1212c2e7f" +checksum = "928bc249a7e3cd554fd2e8e08a426e9670c50bbfc9a621653cfa9accc9641783" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] -name = "darling" -version = "0.14.4" +name = "dashmap" +version = "5.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", + "cfg-if", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.10", ] [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "data-encoding-macro" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20c01c06f5f429efdf2bae21eb67c28b3df3cf85b7dd2d8ef09c0838dac5d33e" +checksum = "f1559b6cba622276d6d63706db152618eeb15b89b3e4041446b05876e352e639" dependencies = [ "data-encoding", "data-encoding-macro-internal", @@ -2583,9 +2389,9 @@ dependencies = [ [[package]] name = "data-encoding-macro-internal" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0047d07f2c89b17dd631c80450d69841a6b5d7fb17278cbc43d7e4cfcf2576f3" +checksum = "332d754c0af53bc87c108fed664d121ecf59207ec4196041f04d6ab9002ad33f" dependencies = [ "data-encoding", "syn 1.0.109", @@ -2593,46 +2399,21 @@ dependencies = [ [[package]] name = "der" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" -dependencies = [ - "const-oid", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "der" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ "const-oid", "zeroize", ] -[[package]] -name = "der-parser" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" -dependencies = [ - "asn1-rs 0.3.1", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", -] - [[package]] name = "der-parser" version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs", "displaydoc", "nom", "num-bigint", @@ -2642,9 +2423,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.9" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ "powerfmt", ] @@ -2672,34 +2453,14 @@ dependencies = [ ] [[package]] -name = "derive_builder" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.11.2" +name = "derive-syn-parse" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" +checksum = "d65d7ce8132b7c0e54497a4d9a55a1c2a0912a0d786cf894472ba818fba45762" dependencies = [ - "darling", "proc-macro2", "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" -dependencies = [ - "derive_builder_core", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] @@ -2748,7 +2509,7 @@ dependencies = [ "block-buffer 0.10.4", "const-oid", "crypto-common", - "subtle 2.4.1", + "subtle 2.5.0", ] [[package]] @@ -2801,33 +2562,33 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "docify" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4235e9b248e2ba4b92007fe9c646f3adf0ffde16dc74713eacc92b8bc58d8d2f" +checksum = "43a2f138ad521dc4a2ced1a4576148a6a610b4c5923933b062a263130a6802ce" dependencies = [ "docify_macros", ] [[package]] name = "docify_macros" -version = "0.2.6" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47020e12d7c7505670d1363dd53d6c23724f71a90a3ae32ff8eba40de8404626" +checksum = "1a081e51fb188742f5a7a1164ad752121abcb22874b21e2c3b0dd040c515fdad" dependencies = [ "common-path", - "derive-syn-parse", + "derive-syn-parse 0.2.0", "once_cell", "proc-macro2", "quote", "regex", - "syn 2.0.39", + "syn 2.0.66", "termcolor", - "toml 0.7.8", + "toml 0.8.13", "walkdir", ] @@ -2839,9 +2600,9 @@ checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "dtoa" @@ -2872,21 +2633,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" - -[[package]] -name = "ecdsa" -version = "0.14.8" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" -dependencies = [ - "der 0.6.1", - "elliptic-curve 0.12.3", - "rfc6979 0.3.1", - "signature 1.6.4", -] +checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" [[package]] name = "ecdsa" @@ -2894,12 +2643,13 @@ version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "der 0.7.8", + "der", "digest 0.10.7", - "elliptic-curve 0.13.8", - "rfc6979 0.4.0", - "signature 2.2.0", - "spki 0.7.2", + "elliptic-curve", + "rfc6979", + "serdect", + "signature", + "spki", ] [[package]] @@ -2908,22 +2658,22 @@ version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ - "pkcs8 0.10.2", - "signature 2.2.0", + "pkcs8", + "signature", ] [[package]] name = "ed25519-dalek" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f628eaec48bfd21b865dc2950cfa014450c01d2fa2b69a86c2fd5844ec523c0" +checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "ed25519", "rand_core 0.6.4", "serde", "sha2 0.10.8", - "subtle 2.4.1", + "subtle 2.5.0", "zeroize", ] @@ -2947,9 +2697,9 @@ version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "ed25519", - "hashbrown 0.14.2", + "hashbrown 0.14.5", "hex", "rand_core 0.6.4", "sha2 0.10.8", @@ -2958,31 +2708,9 @@ dependencies = [ [[package]] name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "elliptic-curve" -version = "0.12.3" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" -dependencies = [ - "base16ct 0.1.1", - "crypto-bigint 0.4.9", - "der 0.6.1", - "digest 0.10.7", - "ff 0.12.1", - "generic-array 0.14.7", - "group 0.12.1", - "hkdf", - "pem-rfc7468", - "pkcs8 0.9.0", - "rand_core 0.6.4", - "sec1 0.3.0", - "subtle 2.4.1", - "zeroize", -] +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "elliptic-curve" @@ -2990,16 +2718,17 @@ version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ - "base16ct 0.2.0", - "crypto-bigint 0.5.5", + "base16ct", + "crypto-bigint", "digest 0.10.7", - "ff 0.13.0", + "ff", "generic-array 0.14.7", - "group 0.13.0", - "pkcs8 0.10.2", + "group", + "pkcs8", "rand_core 0.6.4", - "sec1 0.7.3", - "subtle 2.4.1", + "sec1", + "serdect", + "subtle 2.5.0", "zeroize", ] @@ -3015,7 +2744,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9720bba047d567ffc8a3cba48bf19126600e249ab7f128e9233e6376976a116" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "syn 1.0.109", @@ -3023,40 +2752,40 @@ dependencies = [ [[package]] name = "enumflags2" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5998b4f30320c9d93aed72f63af821bfdac50465b75428fce77b48ec482c3939" +checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.8" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" +checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "enumn" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ad8cef1d801a4686bfd8919f0b30eac4c8e48968c437a6405ded4fb5272d2b" +checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "env_logger" -version = "0.10.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" dependencies = [ "humantime", "is-terminal", @@ -3079,12 +2808,12 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.7" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -3104,20 +2833,20 @@ dependencies = [ [[package]] name = "ethereum" -version = "0.14.0" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a89fb87a9e103f71b903b80b670200b54cc67a07578f070681f1fffb7396fb7" +checksum = "2e04d24d20b8ff2235cffbf242d5092de3aa45f77c5270ddbfadd2778ca13fea" dependencies = [ "bytes", "ethereum-types", - "hash-db 0.15.2", + "hash-db", "hash256-std-hasher", "parity-scale-codec", "rlp", "scale-info", "serde", "sha3 0.10.8", - "triehash", + "trie-root", ] [[package]] @@ -3150,23 +2879,56 @@ checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" dependencies = [ "concurrent-queue", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] -name = "event-listener-strategy" -version = "0.3.0" +name = "event-listener" +version = "4.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96b852f1345da36d551b9473fa1e2b1eb5c5195585c6c018118bc92a8d91160" +checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ - "event-listener 3.1.0", - "pin-project-lite 0.2.13", + "concurrent-queue", + "parking", + "pin-project-lite 0.2.14", ] [[package]] -name = "evm" -version = "0.39.1" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", + "parking", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "event-listener-strategy" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +dependencies = [ + "event-listener 4.0.3", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "event-listener-strategy" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" +dependencies = [ + "event-listener 5.3.1", + "pin-project-lite 0.2.14", +] + +[[package]] +name = "evm" +version = "0.41.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "767f43e9630cc36cf8ff2777cbb0121b055f0d1fd6eaaa13b46a1808f0d0e7e9" dependencies = [ "auto_impl", "environmental", @@ -3185,9 +2947,9 @@ dependencies = [ [[package]] name = "evm-coder" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b88ae5a449e7e9dfef59c0dd2df396bc56d81a6f4e297490c0c64aa73f7f7ad4" +checksum = "51a19d57bff1055ffd8f4d542975e7d06c86463df8e4af3d6a1680d1930f7eea" dependencies = [ "ethereum", "evm-coder-procedural", @@ -3198,9 +2960,9 @@ dependencies = [ [[package]] name = "evm-coder-procedural" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6223c1063c1f53380b4b9aaf2e4d82eba4808c661c61265619b804b09b7a6b1a" +checksum = "dbb7660d6ee88979a37e8c92fc910a974a19c88aad45355db6ec35a31bef2a69" dependencies = [ "Inflector", "hex", @@ -3221,8 +2983,9 @@ dependencies = [ [[package]] name = "evm-core" -version = "0.39.0" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1da6cedc5cedb4208e59467106db0d1f50db01b920920589f8e672c02fdc04f" dependencies = [ "parity-scale-codec", "primitive-types", @@ -3232,8 +2995,9 @@ dependencies = [ [[package]] name = "evm-gasometer" -version = "0.39.0" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dc0eb591abc5cd7b05bef6a036c2bb6c66ab6c5e0c5ce94bfe377ab670b1fd7" dependencies = [ "environmental", "evm-core", @@ -3243,8 +3007,9 @@ dependencies = [ [[package]] name = "evm-runtime" -version = "0.39.0" -source = "git+https://github.com/rust-blockchain/evm?rev=b7b82c7e1fc57b7449d6dfa6826600de37cc1e65#b7b82c7e1fc57b7449d6dfa6826600de37cc1e65" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84bbe09b64ae13a29514048c1bb6fda6374ac0b4f6a1f15a443348ab88ef42cd" dependencies = [ "auto_impl", "environmental", @@ -3276,28 +3041,29 @@ dependencies = [ [[package]] name = "expander" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f86a749cf851891866c10515ef6c299b5c69661465e9c3bbe7e07a2b77fb0f7" +checksum = "00e83c02035136f1592a47964ea60c05a50e4ed8b5892cfac197063850898d4d" dependencies = [ "blake2 0.10.6", "fs-err", + "prettier-please", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] -name = "fake-simd" -version = "0.1.2" +name = "fallible-iterator" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fallible-iterator" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" [[package]] name = "fastrand" @@ -3310,9 +3076,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "fatality" @@ -3342,7 +3108,7 @@ dependencies = [ [[package]] name = "fc-api" version = "1.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "async-trait", "fp-storage", @@ -3354,7 +3120,7 @@ dependencies = [ [[package]] name = "fc-consensus" version = "2.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "async-trait", "fp-consensus", @@ -3370,7 +3136,7 @@ dependencies = [ [[package]] name = "fc-db" version = "2.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "async-trait", "fc-api", @@ -3379,7 +3145,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-db", "smallvec", "sp-blockchain", @@ -3391,7 +3157,7 @@ dependencies = [ [[package]] name = "fc-mapping-sync" version = "2.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "fc-db", "fc-storage", @@ -3400,7 +3166,7 @@ dependencies = [ "futures", "futures-timer", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-utils", "sp-api", @@ -3412,7 +3178,7 @@ dependencies = [ [[package]] name = "fc-rpc" version = "2.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "ethereum", "ethereum-types", @@ -3432,7 +3198,7 @@ dependencies = [ "pallet-evm", "parity-scale-codec", "prometheus", - "rand 0.8.5", + "rand", "rlp", "sc-client-api", "sc-consensus-aura", @@ -3452,6 +3218,7 @@ dependencies = [ "sp-consensus", "sp-consensus-aura", "sp-core", + "sp-externalities", "sp-inherents", "sp-io", "sp-runtime", @@ -3466,20 +3233,22 @@ dependencies = [ [[package]] name = "fc-rpc-core" version = "1.1.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "ethereum", "ethereum-types", "jsonrpsee", + "rlp", "rustc-hex", "serde", "serde_json", + "sp-crypto-hashing", ] [[package]] name = "fc-storage" version = "1.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "ethereum", "ethereum-types", @@ -3496,21 +3265,12 @@ dependencies = [ [[package]] name = "fdlimit" -version = "0.2.1" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +checksum = "e182f7dbc2ef73d9ef67351c5fbbea084729c48362d3ce9dd44c28e32e277fe5" dependencies = [ "libc", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "rand_core 0.6.4", - "subtle 2.4.1", + "thiserror", ] [[package]] @@ -3520,14 +3280,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ "rand_core 0.6.4", - "subtle 2.4.1", + "subtle 2.5.0", ] [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "file-per-thread-logger" @@ -3541,14 +3301,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.22" +version = "0.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4029edd3e734da6fe05b6cd7bd2960760a616bd2ddd0d59a0124746d6272af0" +checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.3.5", - "windows-sys 0.48.0", + "redox_syscall 0.4.1", + "windows-sys 0.52.0", ] [[package]] @@ -3563,7 +3323,7 @@ dependencies = [ "log", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "scale-info", ] @@ -3574,7 +3334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand 0.8.5", + "rand", "rustc-hex", "static_assertions", ] @@ -3587,9 +3347,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.28" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" +checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" dependencies = [ "crc32fast", "libz-sys", @@ -3613,18 +3373,18 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" -version = "11.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2d0a4310dcf0e5cce78e35e60dc2fda80ef61c8f8fc382e685dfc24fcf5db9" +checksum = "e93d3f0315c2eccf23453609e0ab92fe7c6ad1ca8129bcaf80b9a08c8d7fc52b" dependencies = [ "parity-scale-codec", ] [[package]] name = "form_urlencoded" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -3632,7 +3392,7 @@ dependencies = [ [[package]] name = "fp-account" version = "1.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "hex", "impl-serde", @@ -3651,7 +3411,7 @@ dependencies = [ [[package]] name = "fp-consensus" version = "2.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "ethereum", "parity-scale-codec", @@ -3663,7 +3423,7 @@ dependencies = [ [[package]] name = "fp-ethereum" version = "1.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "ethereum", "ethereum-types", @@ -3676,7 +3436,7 @@ dependencies = [ [[package]] name = "fp-evm" version = "3.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "evm", "frame-support", @@ -3692,7 +3452,7 @@ dependencies = [ [[package]] name = "fp-rpc" version = "3.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "ethereum", "ethereum-types", @@ -3709,7 +3469,7 @@ dependencies = [ [[package]] name = "fp-self-contained" version = "1.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "frame-support", "parity-scale-codec", @@ -3721,7 +3481,7 @@ dependencies = [ [[package]] name = "fp-storage" version = "2.0.0" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "parity-scale-codec", "serde", @@ -3735,9 +3495,9 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dd4946d63eab00d899f08a7e74e965cc6785c2298efaea6a2752905f4810407" +checksum = "9fee087c6a7ddbc6dcfb6a6015d4b2787ecbb2113ed8b8bee8ff15f2bdf93f94" dependencies = [ "frame-support", "frame-support-procedural", @@ -3761,12 +3521,12 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" -version = "29.0.0" +version = "35.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e51c371bff90ba44767a79e72a036d7d648cee621cd2fe9f693e8c1d62941e" +checksum = "38f1660c2e59d206386658ca7fa867c2ccdb44429cc8a5a16a2975a338aa7047" dependencies = [ "Inflector", - "array-bytes 6.2.0", + "array-bytes 6.2.3", "chrono", "clap", "comfy-table", @@ -3780,7 +3540,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "rand 0.8.5", + "rand", "rand_pcg", "sc-block-builder", "sc-cli", @@ -3810,21 +3570,21 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03911cf3675af64252a6de7b4f383eafa80d5ea5830184e7a0739aeb0b95272d" +checksum = "c5c3bff645e46577c69c272733c53fa3a77d1ee6e40dfb66157bc94b0740b8fc" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "frame-election-provider-support" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebad507fb038db2f7ce982d30bd9828a59785c9a4780348d59cd6cceaee80d1a" +checksum = "d651327ec98d12fbdb0d25346de929e3ea2ab8a1ef85570794d9d8d54f204f28" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3840,10 +3600,11 @@ dependencies = [ [[package]] name = "frame-executive" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dda2c20ea3267ee20c9a5482f320236510c4ade6aec1dd930cb57dc5651c64f" +checksum = "e3d4502dd4218aaf90240527adb789b9620fcada2af76f4751a8a852583eb0c2" dependencies = [ + "aquamarine 0.3.3", "frame-support", "frame-system", "frame-try-runtime", @@ -3871,9 +3632,9 @@ dependencies = [ [[package]] name = "frame-remote-externalities" -version = "0.32.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a30013df51f4d4e58472c4fecdbfeb141234ece5f6355e5b3a3e51d3f87d452d" +checksum = "c935bea33258c329e9ad4784a720aa4b1faff8c5af474f14e0898db11b7cb8ab" dependencies = [ "futures", "indicatif", @@ -3882,6 +3643,7 @@ dependencies = [ "parity-scale-codec", "serde", "sp-core", + "sp-crypto-hashing", "sp-io", "sp-runtime", "sp-state-machine", @@ -3893,11 +3655,12 @@ dependencies = [ [[package]] name = "frame-support" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "023504bbdd0e8d1ebe3d9d289b009337cdb9a24c5e74615ffd7b188aa1664c2d" +checksum = "81aecbbc1c62055e8ce472283bc655bf6c0f968a4d22d504bf6aad4ea44ccbc4" dependencies = [ - "aquamarine", + "aquamarine 0.5.0", + "array-bytes 6.2.3", "bitflags 1.3.2", "docify", "environmental", @@ -3916,7 +3679,7 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-core", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-debug-derive", "sp-genesis-builder", "sp-inherents", @@ -3934,55 +3697,56 @@ dependencies = [ [[package]] name = "frame-support-procedural" -version = "20.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6bc383298353ff2790ac1a301262c21ac196dbc26ef67a2213c46524a06dd1" +checksum = "732fa43a05789f4ffb96955017e40643199d586c3d211754df5824a195f4eab5" dependencies = [ "Inflector", "cfg-expr", - "derive-syn-parse", - "expander 2.0.0", + "derive-syn-parse 0.1.5", + "expander 2.1.0", "frame-support-procedural-tools", "itertools 0.10.5", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-core-hashing", - "syn 2.0.39", + "sp-crypto-hashing", + "syn 2.0.66", ] [[package]] name = "frame-support-procedural-tools" -version = "9.0.0" +version = "11.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3ac1266522a8c9a2d2d26d205ec3028b88582d5f3cd5cbc75d0ec8271d197b7" +checksum = "b482a1d18fa63aed1ff3fe3fcfb3bc23d92cb3903d6b9774f75dc2c4e1001c3a" dependencies = [ "frame-support-procedural-tools-derive", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "frame-support-procedural-tools-derive" -version = "10.0.0" +version = "12.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c078db2242ea7265faa486004e7fd8daaf1a577cfcac0070ce55d926922883" +checksum = "ed971c6435503a099bdac99fe4c5bea08981709e5b5a0a8535a1856f48561191" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "frame-system" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e316407c45a5093c833966a906301aa0dcbd05048061cd9cde2548d017bfd9" +checksum = "f7537b5e23f584bf54f26c6297e0260b54fac5298be43a115176a310f256a4ab" dependencies = [ "cfg-if", + "docify", "frame-support", "log", "parity-scale-codec", @@ -3998,9 +3762,9 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b1388055d29a7a1c4d41b1623d3fcbc9d7f31d17abe04500b270b26901d926" +checksum = "ea3c6bd0f5700363a845d4c0f83ea3478cdfcfe404d08f35865b78ebc5d37c0a" dependencies = [ "frame-benchmarking", "frame-support", @@ -4014,9 +3778,9 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17572a34fd866ad6cab6977a2c30b38645e0a499b3486de00ae9103f7002d6d3" +checksum = "7ae4e8decf1630ed6731e8912d1ed4ac3986d86c68f59580f2a9f61909150c41" dependencies = [ "parity-scale-codec", "sp-api", @@ -4024,9 +3788,9 @@ dependencies = [ [[package]] name = "frame-try-runtime" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f082e770275f9b46ddf46b09bc7a993f84db691c39d9e4d038ac07443cb17a18" +checksum = "bad42234b76beabf35bbc9a54566f0060b8d3d4fe93726007f02896e8beb91e3" dependencies = [ "frame-support", "parity-scale-codec", @@ -4056,11 +3820,11 @@ dependencies = [ [[package]] name = "fs4" -version = "0.6.6" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eeb4ed9e12f43b7fa0baae3f9cdda28352770132ef2e09a23760c29cae8bd47" +checksum = "29f9df8a11882c4e3335eb2d18a0137c505d9ca927470b0cac9c6f0ae07d28f7" dependencies = [ - "rustix 0.38.25", + "rustix 0.38.34", "windows-sys 0.48.0", ] @@ -4072,9 +3836,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" dependencies = [ "futures-channel", "futures-core", @@ -4087,9 +3851,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" dependencies = [ "futures-core", "futures-sink", @@ -4097,15 +3861,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" [[package]] name = "futures-executor" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" dependencies = [ "futures-core", "futures-task", @@ -4115,9 +3879,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" @@ -4130,33 +3894,32 @@ dependencies = [ "futures-io", "memchr", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "waker-fn", ] [[package]] name = "futures-lite" -version = "2.0.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3831c2651acb5177cbd83943f3d9c8912c5ad03c76afcc0e9511ba568ec5ebb" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ - "fastrand 2.0.1", + "fastrand 2.1.0", "futures-core", "futures-io", - "memchr", "parking", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -4167,32 +3930,32 @@ checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ "futures-io", "rustls 0.20.9", - "webpki 0.22.4", + "webpki", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" dependencies = [ "futures-channel", "futures-core", @@ -4201,7 +3964,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "pin-utils", "slab", ] @@ -4258,9 +4021,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -4268,23 +4031,23 @@ dependencies = [ ] [[package]] -name = "ghash" -version = "0.4.4" +name = "getrandom_or_panic" +version = "0.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" +checksum = "6ea1015b5a70616b688dc230cfe50c8af89d972cb132d5a622814d29773b10b9" dependencies = [ - "opaque-debug 0.3.0", - "polyval 0.5.3", + "rand", + "rand_core 0.6.4", ] [[package]] name = "ghash" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +checksum = "f0d8a4362ccb29cb0b265253fb0a2728f592895ee6854fd9bc13f2ffda266ff1" dependencies = [ - "opaque-debug 0.3.0", - "polyval 0.6.1", + "opaque-debug 0.3.1", + "polyval", ] [[package]] @@ -4293,45 +4056,51 @@ version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" dependencies = [ - "fallible-iterator", + "fallible-iterator 0.2.0", "indexmap 1.9.3", "stable_deref_trait", ] [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "stable_deref_trait", +] [[package]] -name = "glob" -version = "0.3.1" +name = "gimli" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] -name = "globset" -version = "0.4.13" +name = "glob" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759c97c1e17c55525b57192c06a267cda0ac5210b222d6b82189a2338fa1c13d" -dependencies = [ - "aho-corasick", - "bstr", - "fnv", - "log", - "regex", -] +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] -name = "group" -version = "0.12.1" +name = "governor" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" dependencies = [ - "ff 0.12.1", - "rand_core 0.6.4", - "subtle 2.4.1", + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.3", + "portable-atomic", + "quanta", + "rand", + "smallvec", + "spinning_top", ] [[package]] @@ -4340,16 +4109,16 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff 0.13.0", + "ff", "rand_core 0.6.4", - "subtle 2.4.1", + "subtle 2.5.0", ] [[package]] name = "h2" -version = "0.3.22" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", @@ -4357,7 +4126,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.1.0", + "indexmap 2.2.6", "slab", "tokio", "tokio-util", @@ -4366,9 +4135,9 @@ dependencies = [ [[package]] name = "handlebars" -version = "4.5.0" +version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa67bab9ff362228eb3d00bd024a4965d8231bbb7921167f0cfa66c6626b225" +checksum = "d08485b96a0e6393e9e4d1b8d48cf74ad6c063cd905eb33f42c1ce3f0377539b" dependencies = [ "log", "pest", @@ -4378,12 +4147,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "hash-db" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" - [[package]] name = "hash-db" version = "0.16.0" @@ -4405,7 +4168,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.7", + "ahash 0.7.8", ] [[package]] @@ -4414,16 +4177,16 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", ] [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", "allocator-api2", "serde", ] @@ -4434,7 +4197,7 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" dependencies = [ - "hashbrown 0.14.2", + "hashbrown 0.14.5", ] [[package]] @@ -4444,19 +4207,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -4464,6 +4224,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex-conservative" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20" + [[package]] name = "hex-literal" version = "0.4.1" @@ -4472,9 +4238,9 @@ checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" [[package]] name = "hkdf" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ "hmac 0.12.1", ] @@ -4489,16 +4255,6 @@ dependencies = [ "digest 0.9.0", ] -[[package]] -name = "hmac" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" -dependencies = [ - "crypto-mac 0.11.1", - "digest 0.9.0", -] - [[package]] name = "hmac" version = "0.12.1" @@ -4521,11 +4277,11 @@ dependencies = [ [[package]] name = "home" -version = "0.5.5" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -4541,9 +4297,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ "bytes", "fnv", @@ -4552,13 +4308,13 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ "bytes", "http", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", ] [[package]] @@ -4587,9 +4343,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.27" +version = "0.14.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" dependencies = [ "bytes", "futures-channel", @@ -4601,8 +4357,8 @@ dependencies = [ "httparse", "httpdate", "itoa", - "pin-project-lite 0.2.13", - "socket2 0.4.10", + "pin-project-lite 0.2.14", + "socket2 0.5.7", "tokio", "tower-service", "tracing", @@ -4619,25 +4375,24 @@ dependencies = [ "http", "hyper", "log", - "rustls 0.21.9", - "rustls-native-certs", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", "tokio", - "tokio-rustls", - "webpki-roots 0.25.2", + "tokio-rustls 0.24.1", ] [[package]] name = "iana-time-zone" -version = "0.1.58" +version = "0.1.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.52.0", ] [[package]] @@ -4649,12 +4404,6 @@ dependencies = [ "cc", ] -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - [[package]] name = "idna" version = "0.2.3" @@ -4668,9 +4417,9 @@ dependencies = [ [[package]] name = "idna" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -4692,7 +4441,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6b0422c86d7ce0e97169cc42e04ae643caf278874a7a3c87b8150a220dc7e1e" dependencies = [ - "async-io 2.2.0", + "async-io 2.3.2", "core-foundation", "fnv", "futures", @@ -4775,12 +4524,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.2", + "hashbrown 0.14.5", ] [[package]] @@ -4791,9 +4540,9 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "indicatif" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" dependencies = [ "console", "instant", @@ -4813,9 +4562,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", ] @@ -4835,32 +4584,13 @@ dependencies = [ "num-traits", ] -[[package]] -name = "interceptor" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8a11ae2da61704edada656798b61c94b35ecac2c58eb955156987d5e6be90b" -dependencies = [ - "async-trait", - "bytes", - "log", - "rand 0.8.5", - "rtcp", - "rtp", - "thiserror", - "tokio", - "waitgroup", - "webrtc-srtp", - "webrtc-util", -] - [[package]] name = "io-lifetimes" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi", "libc", "windows-sys 0.48.0", ] @@ -4877,7 +4607,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.5", + "socket2 0.5.7", "widestring", "windows-sys 0.48.0", "winreg", @@ -4891,13 +4621,13 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" +checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" dependencies = [ - "hermit-abi 0.3.3", - "rustix 0.38.25", - "windows-sys 0.48.0", + "hermit-abi", + "libc", + "windows-sys 0.52.0", ] [[package]] @@ -4909,6 +4639,12 @@ dependencies = [ "winapi", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "itertools" version = "0.10.5" @@ -4929,33 +4665,33 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.65" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "367a292944c07385839818bb71c8d76611138e2dedb0677d035b8da21d29c78b" +checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" dependencies = [ "jsonrpsee-core", "jsonrpsee-http-client", @@ -4963,105 +4699,106 @@ dependencies = [ "jsonrpsee-server", "jsonrpsee-types", "jsonrpsee-ws-client", + "tokio", "tracing", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8b3815d9f5d5de348e5f162b316dc9cdf4548305ebb15b4eb9328e66cf27d7a" +checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" dependencies = [ "futures-util", "http", "jsonrpsee-core", - "jsonrpsee-types", "pin-project", - "rustls-native-certs", + "rustls-native-certs 0.7.0", + "rustls-pki-types", "soketto", "thiserror", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", "tokio-util", "tracing", - "webpki-roots 0.25.2", + "url", ] [[package]] name = "jsonrpsee-core" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b5dde66c53d6dcdc8caea1874a45632ec0fcf5b437789f1e45766a1512ce803" +checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" dependencies = [ "anyhow", - "arrayvec 0.7.4", - "async-lock 2.8.0", "async-trait", "beef", - "futures-channel", "futures-timer", "futures-util", - "globset", "hyper", "jsonrpsee-types", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "pin-project", + "rand", "rustc-hash", "serde", "serde_json", - "soketto", "thiserror", "tokio", + "tokio-stream", "tracing", ] [[package]] name = "jsonrpsee-http-client" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5f9fabdd5d79344728521bb65e3106b49ec405a78b66fbff073b72b389fa43" +checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" dependencies = [ "async-trait", "hyper", "hyper-rustls", "jsonrpsee-core", "jsonrpsee-types", - "rustc-hash", "serde", "serde_json", "thiserror", "tokio", + "tower", "tracing", + "url", ] [[package]] name = "jsonrpsee-proc-macros" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44e8ab85614a08792b9bff6c8feee23be78c98d0182d4c622c05256ab553892a" +checksum = "7d0bb047e79a143b32ea03974a6bf59b62c2a4c5f5d42a381c907a8bbb3f75c0" dependencies = [ - "heck", - "proc-macro-crate 1.3.1", + "heck 0.4.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.66", ] [[package]] name = "jsonrpsee-server" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4d945a6008c9b03db3354fb3c83ee02d2faa9f2e755ec1dfb69c3551b8f4ba" +checksum = "12d8b6a9674422a8572e0b0abb12feeb3f2aeda86528c80d0350c2bd0923ab41" dependencies = [ - "futures-channel", "futures-util", "http", "hyper", "jsonrpsee-core", "jsonrpsee-types", + "pin-project", + "route-recognizer", "serde", "serde_json", "soketto", + "thiserror", "tokio", "tokio-stream", "tokio-util", @@ -5071,48 +4808,49 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245ba8e5aa633dd1c1e4fae72bce06e71f42d34c14a2767c6b4d173b57bee5e5" +checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" dependencies = [ "anyhow", "beef", "serde", "serde_json", "thiserror", - "tracing", ] [[package]] name = "jsonrpsee-ws-client" -version = "0.16.3" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e1b3975ed5d73f456478681a417128597acd6a2487855fdb7b4a3d4d195bf5e" +checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" dependencies = [ "http", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", + "url", ] [[package]] name = "k256" -version = "0.13.2" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f01b677d82ef7a676aa37e099defd83a28e15687112cafdd112d60236b6115b" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ "cfg-if", - "ecdsa 0.16.9", - "elliptic-curve 0.13.8", + "ecdsa", + "elliptic-curve", "once_cell", + "serdect", "sha2 0.10.8", ] [[package]] name = "keccak" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] @@ -5139,7 +4877,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf7a85fe66f9ff9cd74e169fdd2c94c6e1e74c412c99a73b4df3200b5d3760b2" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] @@ -5150,7 +4888,7 @@ checksum = "b644c70b92285f66bfc2032922a79000ea30af7bc2ab31902992a5dcb9b434f6" dependencies = [ "kvdb", "num_cpus", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "regex", "rocksdb", "smallvec", @@ -5158,9 +4896,9 @@ dependencies = [ [[package]] name = "landlock" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1530c5b973eeed4ac216af7e24baf5737645a6272e361f1fb95710678b67d9cc" +checksum = "9baa9eeb6e315942429397e617a190f4fdc696ef1ee0342939d641029cbb4ea7" dependencies = [ "enumflags2", "libc", @@ -5181,18 +4919,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libloading" -version = "0.7.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19" dependencies = [ "cfg-if", - "winapi", + "windows-targets 0.52.5", ] [[package]] @@ -5203,14 +4941,14 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libp2p" -version = "0.51.3" +version = "0.51.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f210d259724eae82005b5c48078619b7745edb7b76de370b03f8ba59ea103097" +checksum = "f35eae38201a993ece6bdc823292d6abd1bffed1c4d0f4a3517d2bd8e1d917fe" dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.11", + "getrandom 0.2.15", "instant", "libp2p-allow-block-list", "libp2p-connection-limits", @@ -5228,7 +4966,6 @@ dependencies = [ "libp2p-swarm", "libp2p-tcp", "libp2p-wasm-ext", - "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", "multiaddr", @@ -5273,13 +5010,13 @@ dependencies = [ "libp2p-identity", "log", "multiaddr", - "multihash", + "multihash 0.17.0", "multistream-select", "once_cell", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", "quick-protobuf", - "rand 0.8.5", + "rand", "rw-stream-sink", "smallvec", "thiserror", @@ -5296,7 +5033,7 @@ dependencies = [ "futures", "libp2p-core", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "smallvec", "trust-dns-resolver", ] @@ -5333,9 +5070,9 @@ dependencies = [ "ed25519-dalek", "log", "multiaddr", - "multihash", + "multihash 0.17.0", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "thiserror", "zeroize", @@ -5360,7 +5097,7 @@ dependencies = [ "libp2p-swarm", "log", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "smallvec", "thiserror", @@ -5382,7 +5119,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "tokio", @@ -5418,7 +5155,7 @@ dependencies = [ "log", "once_cell", "quick-protobuf", - "rand 0.8.5", + "rand", "sha2 0.10.8", "snow", "static_assertions", @@ -5440,7 +5177,7 @@ dependencies = [ "libp2p-core", "libp2p-swarm", "log", - "rand 0.8.5", + "rand", "void", ] @@ -5458,9 +5195,9 @@ dependencies = [ "libp2p-identity", "libp2p-tls", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "quinn-proto", - "rand 0.8.5", + "rand", "rustls 0.20.9", "thiserror", "tokio", @@ -5478,7 +5215,7 @@ dependencies = [ "libp2p-core", "libp2p-identity", "libp2p-swarm", - "rand 0.8.5", + "rand", "smallvec", ] @@ -5497,7 +5234,7 @@ dependencies = [ "libp2p-identity", "libp2p-swarm-derive", "log", - "rand 0.8.5", + "rand", "smallvec", "tokio", "void", @@ -5509,7 +5246,7 @@ version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fba456131824ab6acd4c7bf61e9c0f0a3014b5fc9868ccb8e10d344594cdc4f" dependencies = [ - "heck", + "heck 0.4.1", "quote", "syn 1.0.109", ] @@ -5540,12 +5277,12 @@ dependencies = [ "futures-rustls", "libp2p-core", "libp2p-identity", - "rcgen 0.10.0", + "rcgen", "ring 0.16.20", "rustls 0.20.9", "thiserror", - "webpki 0.22.4", - "x509-parser 0.14.0", + "webpki", + "x509-parser", "yasna", ] @@ -5563,37 +5300,6 @@ dependencies = [ "wasm-bindgen-futures", ] -[[package]] -name = "libp2p-webrtc" -version = "0.4.0-alpha.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba48592edbc2f60b4bc7c10d65445b0c3964c07df26fdf493b6880d33be36f8" -dependencies = [ - "async-trait", - "asynchronous-codec", - "bytes", - "futures", - "futures-timer", - "hex", - "if-watch", - "libp2p-core", - "libp2p-identity", - "libp2p-noise", - "log", - "multihash", - "quick-protobuf", - "quick-protobuf-codec", - "rand 0.8.5", - "rcgen 0.9.3", - "serde", - "stun", - "thiserror", - "tinytemplate", - "tokio", - "tokio-util", - "webrtc", -] - [[package]] name = "libp2p-websocket" version = "0.41.0" @@ -5605,12 +5311,12 @@ dependencies = [ "futures-rustls", "libp2p-core", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "quicksink", "rw-stream-sink", "soketto", "url", - "webpki-roots 0.22.6", + "webpki-roots", ] [[package]] @@ -5628,13 +5334,12 @@ dependencies = [ [[package]] name = "libredox" -version = "0.0.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "libc", - "redox_syscall 0.4.1", ] [[package]] @@ -5665,7 +5370,7 @@ dependencies = [ "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand 0.8.5", + "rand", "serde", "sha2 0.9.9", "typenum", @@ -5679,7 +5384,7 @@ checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" dependencies = [ "crunchy", "digest 0.9.0", - "subtle 2.4.1", + "subtle 2.5.0", ] [[package]] @@ -5702,9 +5407,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.12" +version = "1.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97137b25e321a73eef1418d1d5d2eda4d77e12813f8e6dead84bc52c5870a7b" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" dependencies = [ "cc", "pkg-config", @@ -5758,9 +5463,9 @@ checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "linux-raw-sys" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "lioness" @@ -5776,9 +5481,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -5786,9 +5491,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] name = "lru" @@ -5852,7 +5557,7 @@ dependencies = [ "macro_magic_core", "macro_magic_macros", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -5862,11 +5567,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "468155613a44cfd825f1fb0ffa532b018253920d404e6fca1e8d43155198a46d" dependencies = [ "const-random", - "derive-syn-parse", + "derive-syn-parse 0.1.5", "macro_magic_core_macros", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -5877,7 +5582,7 @@ checksum = "9ea73aa640dc01d62a590d48c0c3521ed739d53b27f919b25c3551e233481654" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -5888,7 +5593,7 @@ checksum = "ef9d79ae96aaba821963320eb2b6e34d17df1e5a83d8a1985c29cc5be59577b3" dependencies = [ "macro_magic_core", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -5929,20 +5634,10 @@ dependencies = [ ] [[package]] -name = "md-5" -version = "0.10.6" +name = "memchr" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "memfd" @@ -5950,7 +5645,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" dependencies = [ - "rustix 0.38.25", + "rustix 0.38.34", ] [[package]] @@ -5963,12 +5658,12 @@ dependencies = [ ] [[package]] -name = "memoffset" -version = "0.6.5" +name = "memmap2" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" dependencies = [ - "autocfg", + "libc", ] [[package]] @@ -5980,34 +5675,13 @@ dependencies = [ "autocfg", ] -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - [[package]] name = "memory-db" version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ - "hash-db 0.16.0", -] - -[[package]] -name = "merlin" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e261cf0f8b3c42ded9f7d2bb59dea03aa52bc8a1cbc7482f9fc3fd1229d3b42" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.5.1", - "zeroize", + "hash-db", ] [[package]] @@ -6029,7 +5703,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69672161530e8aeca1d1400fbf3f1a1747ff60ea604265a4e906c2442df20532" dependencies = [ "futures", - "rand 0.8.5", + "rand", "thrift", ] @@ -6041,18 +5715,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "87dfd01fe195c66b572b37921ad8803d010623c0aca821bea2302239d155cdae" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" dependencies = [ "libc", "wasi 0.11.0+wasi-snapshot-preview1", @@ -6070,25 +5744,25 @@ dependencies = [ "bitflags 1.3.2", "blake2 0.10.6", "c2-chacha", - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "either", "hashlink", "lioness", "log", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "rand_chacha 0.3.1", "rand_distr", - "subtle 2.4.1", + "subtle 2.5.0", "thiserror", "zeroize", ] [[package]] name = "mmr-gadget" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62eff76fd1de7bad43b0e9e666970ae11ef8c24f49622585362c21ae5470986f" +checksum = "59b5265ecba4e5fc2c242798fc7795f6bf7ce7c9ab909ecea7df3f8242fa74af" dependencies = [ "futures", "log", @@ -6106,11 +5780,10 @@ dependencies = [ [[package]] name = "mmr-rpc" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a387f061e68601d268aade23387eaaf6542e82b357ebc1f8d6a95a251b996d30" +checksum = "dfab619df48bac956375483e4d57e995fbfaec310c86cfbc420e905506b67002" dependencies = [ - "anyhow", "jsonrpsee", "parity-scale-codec", "serde", @@ -6159,7 +5832,7 @@ dependencies = [ "data-encoding", "log", "multibase", - "multihash", + "multihash 0.17.0", "percent-encoding", "serde", "static_assertions", @@ -6189,12 +5862,55 @@ dependencies = [ "blake3", "core2", "digest 0.10.7", - "multihash-derive", + "multihash-derive 0.8.0", "sha2 0.10.8", "sha3 0.10.8", "unsigned-varint", ] +[[package]] +name = "multihash" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd8a792c1694c6da4f68db0a9d707c72bd260994da179e6030a5dcee00bb815" +dependencies = [ + "core2", + "digest 0.10.7", + "multihash-derive 0.8.0", + "sha2 0.10.8", + "unsigned-varint", +] + +[[package]] +name = "multihash" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "076d548d76a0e2a0d4ab471d0b1c36c577786dfc4471242035d97a12a735c492" +dependencies = [ + "core2", + "unsigned-varint", +] + +[[package]] +name = "multihash-codetable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6d815ecb3c8238d00647f8630ede7060a642c9f704761cd6082cb4028af6935" +dependencies = [ + "blake2b_simd", + "blake2s_simd", + "blake3", + "core2", + "digest 0.10.7", + "multihash-derive 0.9.0", + "ripemd", + "serde", + "sha1", + "sha2 0.10.8", + "sha3 0.10.8", + "strobe-rs", +] + [[package]] name = "multihash-derive" version = "0.8.0" @@ -6209,6 +5925,31 @@ dependencies = [ "synstructure", ] +[[package]] +name = "multihash-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "890e72cb7396cb99ed98c1246a97b243cc16394470d94e0bc8b0c2c11d84290e" +dependencies = [ + "core2", + "multihash 0.19.1", + "multihash-derive-impl", +] + +[[package]] +name = "multihash-derive-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38685e08adb338659871ecfc6ee47ba9b22dcc8abcf6975d379cc49145c3040" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + [[package]] name = "multimap" version = "0.8.3" @@ -6231,9 +5972,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.32.3" +version = "0.32.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +checksum = "3ea4908d4f23254adda3daa60ffef0f1ac7b8c3e9a864cf3cc154b251908a2ef" dependencies = [ "approx", "matrixmultiply", @@ -6258,11 +5999,11 @@ dependencies = [ [[package]] name = "names" -version = "0.13.0" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7d66043b25d4a6cccb23619d10c19c25304b355a7dccd4a8e11423dd2382146" +checksum = "7bddcd3bf5144b6392de80e04c347cd7fab2508f6df16a85fc496ecd5cec39bc" dependencies = [ - "rand 0.8.5", + "rand", ] [[package]] @@ -6326,9 +6067,9 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" +checksum = "416060d346fbaf1f23f9512963e3e878f1a78e707cb699ba9215761754244307" dependencies = [ "bytes", "futures", @@ -6346,9 +6087,25 @@ dependencies = [ "bitflags 1.3.2", "cfg-if", "libc", - "memoffset 0.6.5", ] +[[package]] +name = "nix" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" +dependencies = [ + "bitflags 2.5.0", + "cfg-if", + "libc", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "no-std-net" version = "0.6.0" @@ -6377,6 +6134,12 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -6385,24 +6148,29 @@ checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-complex" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-format" version = "0.4.4" @@ -6415,21 +6183,19 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -6437,9 +6203,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", "libm", @@ -6451,29 +6217,29 @@ version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi", "libc", ] [[package]] name = "num_enum" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683751d591e6d81200c39fb0d1032608b77724f34114db54f571ff1317b337c0" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c11e44798ad209ccdd91fc192f0526a369a01234f7373e1b141c96d7cee4f0e" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -6496,20 +6262,20 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] [[package]] -name = "oid-registry" -version = "0.4.0" +name = "object" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a" +checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e" dependencies = [ - "asn1-rs 0.3.1", + "memchr", ] [[package]] @@ -6518,18 +6284,18 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opal-runtime" -version = "1.3.0" +version = "1.9.0" dependencies = [ "app-promotion-rpc", "cumulus-pallet-aura-ext", @@ -6567,7 +6333,7 @@ dependencies = [ "pallet-balances", "pallet-balances-adapter", "pallet-base-fee", - "pallet-collator-selection", + "pallet-collator-selection 5.0.0", "pallet-collective", "pallet-common", "pallet-configuration", @@ -6586,6 +6352,7 @@ dependencies = [ "pallet-inflation", "pallet-maintenance", "pallet-membership", + "pallet-message-queue", "pallet-nonfungible", "pallet-preimage", "pallet-ranked-collective", @@ -6605,6 +6372,7 @@ dependencies = [ "pallet-unique", "pallet-utility", "pallet-xcm", + "parachains-common", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-common", @@ -6617,6 +6385,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", @@ -6646,9 +6415,9 @@ checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -6664,9 +6433,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" [[package]] name = "orchestra" -version = "0.3.3" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d78e1deb2a8d54fc1f063a544130db4da31dfe4d5d3b493186424910222a76" +checksum = "92829eef0328a3d1cd22a02c0e51deb92a5362df3e7d21a4e9bdc38934694e66" dependencies = [ "async-trait", "dyn-clonable", @@ -6681,15 +6450,15 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.3.3" +version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d035b1f968d91a826f2e34a9d6d02cb2af5aa7ca39ebd27922d850ab4b2dd2c6" +checksum = "1344346d5af32c95bbddea91b18a88cc83eac394192d20ef2fc4c40a74332355" dependencies = [ - "expander 2.0.0", - "indexmap 2.1.0", + "expander 2.1.0", + "indexmap 2.2.6", "itertools 0.11.0", "petgraph", - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -6706,8 +6475,9 @@ dependencies = [ [[package]] name = "orml-traits" -version = "0.6.1" -source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=unique-polkadot-v1.3.0#99604b000be6252597cfcb82eee82554f6a07a0e" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83bbad8c343fdef0b5002b532c7590790807083b47f0b0a0f14a28ee865fbaa0" dependencies = [ "frame-support", "impl-trait-for-tuples", @@ -6726,8 +6496,9 @@ dependencies = [ [[package]] name = "orml-utilities" -version = "0.6.1" -source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=unique-polkadot-v1.3.0#99604b000be6252597cfcb82eee82554f6a07a0e" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad0231512e11fc4e015fc723cdb7782c24d154ccbbe49ded4be82a426dd960e" dependencies = [ "frame-support", "parity-scale-codec", @@ -6741,8 +6512,9 @@ dependencies = [ [[package]] name = "orml-vesting" -version = "0.6.1" -source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=unique-polkadot-v1.3.0#99604b000be6252597cfcb82eee82554f6a07a0e" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49c3f3693177da8c0d9d44b7b0d1eb4197f202f7302cab5c0ce54ba9d777cd42" dependencies = [ "frame-support", "frame-system", @@ -6756,8 +6528,9 @@ dependencies = [ [[package]] name = "orml-xcm-support" -version = "0.6.1" -source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=unique-polkadot-v1.3.0#99604b000be6252597cfcb82eee82554f6a07a0e" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78e7a62c91ab5eb34d2257dbe328b0db11ec0e7cda34160413655ca0d936e2cf" dependencies = [ "frame-support", "orml-traits", @@ -6770,10 +6543,10 @@ dependencies = [ [[package]] name = "orml-xtokens" -version = "0.6.1" -source = "git+https://github.com/uniquenetwork/open-runtime-module-library?branch=unique-polkadot-v1.3.0#99604b000be6252597cfcb82eee82554f6a07a0e" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93ce3e8787e8f630b561ec645eb85181d4fa81dd08a76b798fc781b7e83e49f" dependencies = [ - "cumulus-primitives-core", "frame-support", "frame-system", "log", @@ -6790,31 +6563,9 @@ dependencies = [ "staging-xcm-executor", ] -[[package]] -name = "p256" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" -dependencies = [ - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", - "sha2 0.10.8", -] - -[[package]] -name = "p384" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" -dependencies = [ - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", - "sha2 0.10.8", -] - [[package]] name = "pallet-app-promotion" -version = "0.2.1" +version = "0.2.2" dependencies = [ "frame-benchmarking", "frame-support", @@ -6834,11 +6585,30 @@ dependencies = [ "up-data-structs", ] +[[package]] +name = "pallet-asset-conversion" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dbd5ff1c6f662d330beb109f6180ee66ed9cd7710cad28f3d15c444556fcce4" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-api", + "sp-arithmetic", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-asset-rate" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740aebbcfefe8528f56ff8a339f810520a28df3ec159d016ef719aaa9f131af4" +checksum = "a5a492d16d0f7423cb2d7ca6fa6b4d423a4f4e2f67d2dc92d84d5988fcc33cfb" dependencies = [ "frame-benchmarking", "frame-support", @@ -6850,11 +6620,47 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-asset-tx-payment" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf34819002b9d6c8d7a28d89207498f63288de6689061fe9c1fb7c55454ff8" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "pallet-transaction-payment", + "parity-scale-codec", + "scale-info", + "serde", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-assets" +version = "32.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "805543c2ea1f10f14bc767f156b8ec80785345b683eaa59dea84d28745a87ee3" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-aura" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04fbef67cf62445b7fd8e68241e6b71d9fb8c77abb3d52259eebf525a4cd5586" +checksum = "e3f1176f435a94b510b99bc2aaaa84788d60f8c5352c5f34f165b37523e448a1" dependencies = [ "frame-support", "frame-system", @@ -6870,9 +6676,9 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" -version = "25.0.0" +version = "31.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda272a66bbf1602579efcede67606ac43cda6d462ad551c527d8cadc871813d" +checksum = "6a9c124d86227da7ae9073cc2984c0384c7830f7fa61450c0990c56837335da2" dependencies = [ "frame-support", "frame-system", @@ -6887,9 +6693,9 @@ dependencies = [ [[package]] name = "pallet-authorship" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d38eab59f7d15fe43c81fc3cd92f4c1f895ca6d0efb74fc2a6d6d7d3d34d413" +checksum = "8168348a94c479b7da001b3f0d1100210704eda8ce72c58aac456f1d866d7d67" dependencies = [ "frame-support", "frame-system", @@ -6902,9 +6708,9 @@ dependencies = [ [[package]] name = "pallet-babe" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b12430ca4b79b27231acb1ff3f99d33d6503fbeba40bfc8380e42d59b6d52b0" +checksum = "37353294183655c76cdc56ffc5edf777b1e2275af59ae73c8aa255b6d941b362" dependencies = [ "frame-benchmarking", "frame-support", @@ -6927,11 +6733,11 @@ dependencies = [ [[package]] name = "pallet-bags-list" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d49c4448e51a5c64d63a4263aebeb2dfb90dabb48746e178b337fb7f533d45f" +checksum = "dc3f838e96a2cbd06731beb72b755ccc5bd05bcc696717a1148bdddfe9062e93" dependencies = [ - "aquamarine", + "aquamarine 0.5.0", "docify", "frame-benchmarking", "frame-election-provider-support", @@ -6950,10 +6756,11 @@ dependencies = [ [[package]] name = "pallet-balances" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de2915b425ae77d63ba25c194780599b7be25307454a138cfb316c16d001e68" +checksum = "d3565d525dd88e07da5b2309cd6ffe7447ddc5406eeaa2cb26157d35787a69a7" dependencies = [ + "docify", "frame-benchmarking", "frame-support", "frame-system", @@ -6988,7 +6795,7 @@ dependencies = [ [[package]] name = "pallet-base-fee" version = "1.0.0" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "fp-evm", "frame-support", @@ -7001,9 +6808,9 @@ dependencies = [ [[package]] name = "pallet-beefy" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8563fce9fdb0e557015c0b58ed7ea7d5c1a4a1ddb1d27bf56e040d6bbf5c79e9" +checksum = "a1371a2f241fd33b794b0e824f28be9de76e7544a2602421e1c4a58cb0eccef6" dependencies = [ "frame-support", "frame-system", @@ -7022,11 +6829,11 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee3ed75c348ba23064cea40dab623719ef348bfe67ea39f195f82e2e7a7d0115" +checksum = "c32a1e978b043f4bf7cfcdb130a51dda4dbade1de5b85d2d634082edbc08f9cb" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "binary-merkle-tree", "frame-support", "frame-system", @@ -7048,9 +6855,9 @@ dependencies = [ [[package]] name = "pallet-bounties" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c0fb83c88f217e5bfe07a69a6d8a6c32d01241159ab81705ba5d4c3e24aaab" +checksum = "e23273ffc30d94c725cb37ac1f45a40e308d8e8bfab251a299d4ed1fa9e8e46f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7065,11 +6872,29 @@ dependencies = [ "sp-std", ] +[[package]] +name = "pallet-broker" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b05f01c3d279cd661eba2c391844bac03fa5f979b9de821e6eb1cbe6069dfc" +dependencies = [ + "bitvec", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-arithmetic", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-child-bounties" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2246ce705aee37f9b6ad818e3646910d31ef4191e1c234bff054a710ef8d8a38" +checksum = "46f1f5d1f6420b72e7fff2fa9146f1f13f68e3a3d293b421d9b9d34ad0dfa134" dependencies = [ "frame-benchmarking", "frame-support", @@ -7099,7 +6924,7 @@ dependencies = [ "pallet-session", "pallet-timestamp", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "serde", "sp-consensus-aura", @@ -7112,26 +6937,47 @@ dependencies = [ ] [[package]] -name = "pallet-collective" -version = "25.0.0" +name = "pallet-collator-selection" +version = "12.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dddb120b5ee520146617a8c49b4d4c980ba9188918d43085539bf78815e7ec1d" +checksum = "26edc27ed73c658e6f3d37b4cc8822be3f293e1f0dc58830b42c272781ac8a44" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-authorship", + "pallet-balances", + "pallet-session", "parity-scale-codec", + "rand", "scale-info", - "sp-core", - "sp-io", "sp-runtime", + "sp-staking", "sp-std", ] [[package]] -name = "pallet-common" -version = "0.1.14" +name = "pallet-collective" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241ffbf21673fca6bf8caa2ee35088a18704b95d174e32280cb7569f58af7c61" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-common" +version = "0.1.14" dependencies = [ "bondrewd", "ethereum", @@ -7175,9 +7021,9 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c8ff7512a377b708f71772e5169550cebc8f74bc8c26553015698eaa0975356" +checksum = "f51344679f168ecc258bf52d0a9578f6c3043e2aff4b9147004c7b8429460370" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7193,9 +7039,9 @@ dependencies = [ [[package]] name = "pallet-democracy" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed9f24ad18db2eeae0f03ba1743a82aaf300e0bbd6cdcb1119b0da93eef3d77f" +checksum = "1603fc7a149fd1f8bc43349035a69370a024acc95d6a10a37d3b9e1f22cc58ab" dependencies = [ "frame-benchmarking", "frame-support", @@ -7212,9 +7058,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "481178ef558a9409d9c12fc01279b517e3a0a7797664e89761447dba3a182ce6" +checksum = "da78b2feeba1286b66ac20cbfbcd321fe9d1d2bc15e9e31292023e9a66dbb819" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7223,7 +7069,7 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sp-arithmetic", "sp-core", @@ -7236,9 +7082,9 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5ab6413ec88b64acf849a202795c67940dc3bcc846ce03bd0893b90e2119ecf" +checksum = "e1b20f98b9a1497a59d2b0eca0051c5ada89851bf29b26fda3a2cfe934a32116" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7251,9 +7097,9 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021da1d28b604b3654f895987dcb1ccb47d73102b31bc84c8f784bed261f01d8" +checksum = "de22659bdd6190e4f94936f0d338e67dde80e537fe22c30eb96ceab9f0d9914f" dependencies = [ "frame-benchmarking", "frame-support", @@ -7272,7 +7118,7 @@ dependencies = [ [[package]] name = "pallet-ethereum" version = "4.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "ethereum", "ethereum-types", @@ -7295,7 +7141,7 @@ dependencies = [ [[package]] name = "pallet-evm" version = "6.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "environmental", "evm", @@ -7304,7 +7150,7 @@ dependencies = [ "frame-benchmarking", "frame-support", "frame-system", - "hash-db 0.16.0", + "hash-db", "hex", "hex-literal", "impl-trait-for-tuples", @@ -7377,7 +7223,7 @@ dependencies = [ [[package]] name = "pallet-evm-precompile-simple" version = "2.0.0-dev" -source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.3.0#2b684850edc955bcd3c3943216e451364ff0afa3" +source = "git+https://github.com/uniquenetwork/unique-frontier?branch=unique-polkadot-v1.9.0#edc28caf745f80d0616dcb26a43401596971a5f8" dependencies = [ "fp-evm", "ripemd", @@ -7402,9 +7248,9 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05634a197738c999a3032393916182fedccce13cb063fc330ee9bf810cd53b49" +checksum = "24717c932bd68705e3a5b6b9311a31e57b354274de1c373feb9ca920f6a3e439" dependencies = [ "docify", "frame-benchmarking", @@ -7424,6 +7270,7 @@ dependencies = [ name = "pallet-foreign-assets" version = "0.1.0" dependencies = [ + "derivative", "frame-benchmarking", "frame-support", "frame-system", @@ -7473,9 +7320,9 @@ dependencies = [ [[package]] name = "pallet-grandpa" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87c7f4cd94a526054dfebf7a84fbcaf6385033defa246ad83e321e71f8c5a92" +checksum = "d9f8a78e4f5e2399596fa918f22e588e034d78c13a46925313abb4b152a9d919" dependencies = [ "frame-benchmarking", "frame-support", @@ -7514,14 +7361,15 @@ dependencies = [ [[package]] name = "pallet-identity" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "735bf6c19d30299e2d448797170a67d41c6a8ba593fb3a71ce4e11d3b85c60e9" +checksum = "33bca13843a11add3909a8c4bffae547ba9fa3a11c07ac2f8afd670acd85cb15" dependencies = [ "enumflags2", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-io", @@ -7531,9 +7379,9 @@ dependencies = [ [[package]] name = "pallet-im-online" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59eb1c68cc6b4700ad1d2a81ba847ff7b37406aa0326b7716825155d3f985762" +checksum = "39cb6cbcef9e9ab68a5e79429a1f32ebc8114e4c9c2c2b0356c1db212e3e0bc2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7552,9 +7400,9 @@ dependencies = [ [[package]] name = "pallet-indices" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0893ae7f2211010e92bf57fe31f18e2223a2f97f6d6393aa7192e283ec520beb" +checksum = "a3e23345544e9b6635d296195c355a768c82a9e1d82138378ef5b80102828664" dependencies = [ "frame-benchmarking", "frame-support", @@ -7600,9 +7448,9 @@ dependencies = [ [[package]] name = "pallet-membership" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e1504034588eb733f8ce98b77757e9a7390662313aa133ef1e3b9fbb94359c7" +checksum = "b8bb958b03ec28b6e7e97abfca28acb1c1d8e91ad5194537f6550c348fc60f54" dependencies = [ "frame-benchmarking", "frame-support", @@ -7618,10 +7466,11 @@ dependencies = [ [[package]] name = "pallet-message-queue" -version = "28.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0776bf51d03bd746159063fa1357234feb85114273d40ef3aa3efba65d091eb4" +checksum = "063b2e7912fbbe67985e68e460f2f242b90de48a63a1f03dd2ae022154ba25e9" dependencies = [ + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -7638,9 +7487,9 @@ dependencies = [ [[package]] name = "pallet-mmr" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b9789cac80b48e9427724d0b400f984fb844fc711fc2dd2d0cdccdedda7169" +checksum = "44f5356b869f71205d53ed686846075ebb7d67824f334289ebbe6c61766c90c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7657,9 +7506,9 @@ dependencies = [ [[package]] name = "pallet-multisig" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea2785a0bfb1884a8283bf65010bb7189c8fce958ced9947a8c71c148ef199f" +checksum = "284ff5c6675ac6438c2f4a20d75627ad4b6d7c78bb5fd911198e34ce48bc7cf2" dependencies = [ "frame-benchmarking", "frame-support", @@ -7674,9 +7523,9 @@ dependencies = [ [[package]] name = "pallet-nis" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aa7ec891b7f1801a405095a2ad2c70eef94d2abe86792eee54794de23cbd035" +checksum = "948a11c933d345bfd7750e92b5650656e4d967f4fbcf7e36200ef7063985b9c6" dependencies = [ "frame-benchmarking", "frame-support", @@ -7691,9 +7540,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" -version = "22.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1896f33fff0c41934532fb492078d78b784f301ddd81e5041dd8e8279e652c49" +checksum = "781148c86c07aca84f471d06b449d7098e94d76bc08dd7e69bcb2572264d1b20" dependencies = [ "frame-support", "frame-system", @@ -7711,9 +7560,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b27cbf4a47cc79862d254f16b38c68fd2dda087ce58e7c0021859d89718e865a" +checksum = "d267d96d52b7bb17b5bd1333375f86a58595a457218ddc82ddec32c194806713" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7732,9 +7581,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" -version = "20.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c256cc530a19ff614f2af9b5c95ae9aa777a2bf1542aa455ae65e842f8c924" +checksum = "cc2055f407f235071239494548d86f4f6d5c6ec24968fd8dcac553e00e08588d" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -7765,9 +7614,9 @@ dependencies = [ [[package]] name = "pallet-offences" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3fd14c02ed4b689652826aa93284aada5a2cf859df3cc34ad88b2fd410a8c50" +checksum = "8f42b47ac29f107f30213d259cc0f73e1270743b66909fc7c9079d691a891b5a" dependencies = [ "frame-support", "frame-system", @@ -7783,9 +7632,9 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1b3ae77cfb16f0495372853d42a44e34ab7b183bd8996a8cee91715f783ff49" +checksum = "2d0745d6fd98a6ef7b19139470a28f9b9530b425c03dc02fbd773c989fe0a96b" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -7808,9 +7657,9 @@ dependencies = [ [[package]] name = "pallet-preimage" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed40405c758b52375cfc75aac74f10ff9bb9480569e5cfca42682e2db6c387" +checksum = "6d01a900fe79c5f0762ccc29a11dda2799830ce233aa5384b2f13d9cc28e2e70" dependencies = [ "frame-benchmarking", "frame-support", @@ -7826,9 +7675,9 @@ dependencies = [ [[package]] name = "pallet-proxy" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbc0b550f5cbbad51f9daf795cc7046d40bbff256dae8d6072fd710ab40fd3a" +checksum = "61918227f99ed2b322bf9050337773c8a40908b2f6a800352a20485e5ba0ef1c" dependencies = [ "frame-benchmarking", "frame-support", @@ -7842,13 +7691,14 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8181da7fd6b9adf4f8641c5bcb156cd209e3226eea87ee9f9b1ac41f8e37c714" +checksum = "47fbdfc5da0a70c788be3ea594153c825b4e79ae6a83499f38c251cdb5a726c0" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", @@ -7861,9 +7711,9 @@ dependencies = [ [[package]] name = "pallet-recovery" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "889fddd16cfdea09c2ae4dc8e9f67a1ec4b8ac680412cffb772fa572489ec687" +checksum = "7cf473e4b04cd9ba40ed8963a03499de0a1a84c8eb9343b569b15bab6bb47a79" dependencies = [ "frame-benchmarking", "frame-support", @@ -7877,9 +7727,9 @@ dependencies = [ [[package]] name = "pallet-referenda" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "592ff9873af379bf55e835072afd787cd6435204213ac484e86345b026f4ae4e" +checksum = "b515fdbcade5b8a507e1a8ffc8b5a59725b1c8c71cfc6f8f5ae490e4a33f732c" dependencies = [ "assert_matches", "frame-benchmarking", @@ -7915,11 +7765,27 @@ dependencies = [ "up-data-structs", ] +[[package]] +name = "pallet-root-testing" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7926eb378bda52162a713aca44a6faab5fc7d6867f82ac14ba375df2b33eaa7f" +dependencies = [ + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", +] + [[package]] name = "pallet-scheduler" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3508a51d359c6640577feead9dc00667f38cec385baad77b636c61ff746ffe24" +checksum = "44f81ff1151067225c2c359a132880e084a1c72656457fe443147ed2e6daaac2" dependencies = [ "docify", "frame-benchmarking", @@ -7936,9 +7802,9 @@ dependencies = [ [[package]] name = "pallet-session" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "768a6fb5333efc2bd2a3538c1d6ffa4178398660d4e3be89f2eb82d4e9088ae6" +checksum = "17951aa288869e5afe5815eedc7038dd50b9741d215b66323ff4a12f5686ac15" dependencies = [ "frame-support", "frame-system", @@ -7959,9 +7825,9 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5401cee669394e86a15851ace4ad60ef1b4d656f11ff22c83d8004051279ea59" +checksum = "118d0e5a8c09dbb1c7326021335aab36546846c678b3ce79301ace02cec260f7" dependencies = [ "frame-benchmarking", "frame-support", @@ -7969,7 +7835,7 @@ dependencies = [ "pallet-session", "pallet-staking", "parity-scale-codec", - "rand 0.8.5", + "rand", "sp-runtime", "sp-session", "sp-std", @@ -7977,9 +7843,9 @@ dependencies = [ [[package]] name = "pallet-society" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36959be2c7f810ba6b8ece8cfe2ee515774c1c776f1ed0bebf3b9e8068f6a435" +checksum = "7f3255dc30ce7ebfd7ee59b1890d1f0091f416f486532d4eaf795dc209e3c28e" dependencies = [ "frame-benchmarking", "frame-support", @@ -7996,9 +7862,9 @@ dependencies = [ [[package]] name = "pallet-staking" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bed335abd32d357dd9750dae7fb87b01dfd8fe69faadcb94a6e0e0a43057d923" +checksum = "baeb3d22e737307280e2047cba983cc9aa477a6f4c3001e8c1f07077d148c8f7" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -8020,21 +7886,21 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" -version = "10.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8878e29f3d001ac1b1b714621f462e41a9d1fa8f385657f955e8a1ec0684d7" +checksum = "efca5a4a423427d2c83af5fe07ab648c16b91e3782c3cc23316fe0bd96b4c794" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "pallet-staking-reward-fn" -version = "16.0.0" +version = "21.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45b6f832653badb5f70bdfecc1ded64b02b8159b27f18515af03f8b80f1b023b" +checksum = "1e341c47481040b68edcf166ad34633c4c5da20d1559413e68387da935a6ae18" dependencies = [ "log", "sp-arithmetic", @@ -8042,19 +7908,20 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" -version = "11.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773c0d24ad4da4b505e47b43e91c8c0af4e835f16104bc770732a4796c174748" +checksum = "b398bbc910ed6e7e2fd76251910a8895e7c3343023e2279124568a1c860cab54" dependencies = [ "parity-scale-codec", "sp-api", + "sp-staking", ] [[package]] name = "pallet-state-trie-migration" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "550292d79f281fd1bfbbf2643f10cef3d67068075d46374295f2efe7f7113da0" +checksum = "de51e792bcf770a00c5adf8db67f35dae450f445d36fa4b650980017063a62aa" dependencies = [ "frame-benchmarking", "frame-support", @@ -8087,9 +7954,9 @@ dependencies = [ [[package]] name = "pallet-sudo" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcec9f73ecb8d0439a13043a253a9fd90aa6bf5aece6470194bbfc7f79256d88" +checksum = "a00abb554e916fd31ffbc792bff01e2dd9961a0a4bb781d27ef5f30c908ac2f6" dependencies = [ "docify", "frame-benchmarking", @@ -8105,7 +7972,7 @@ dependencies = [ [[package]] name = "pallet-template-transaction-payment" version = "3.0.0" -source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v1.3.0#6071a67116a08ef81083337360de376b63c0ea1c" +source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v1.9.0#f61acb0c67e58e16f9a4d9ab3a82b5cac1a5bede" dependencies = [ "frame-benchmarking", "frame-support", @@ -8136,9 +8003,9 @@ dependencies = [ [[package]] name = "pallet-timestamp" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b25ec8749cf3f481b5e5199be701bac0dea835851b83fc7c455192762711858d" +checksum = "bb766403f8cabcedb1725326befd7253de3e4c1d3b3d5f7c40adc49ebee5040c" dependencies = [ "docify", "frame-benchmarking", @@ -8157,9 +8024,9 @@ dependencies = [ [[package]] name = "pallet-tips" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b17cf8b964e5533f1f5ac1f087f3f69adfead754cb5dd25abe395ec1e7abc9" +checksum = "fee0ebf5ee31239f9017785cecd54b46be26edef126b6369af477d67f5088ffb" dependencies = [ "frame-benchmarking", "frame-support", @@ -8177,9 +8044,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ef7ceaac786e41613731e3bc48284f1aa3ec260934abda2daed949de6e5ada" +checksum = "12df1de833ad0abff5daa53f80594d6ef66d250cc1ae073c01e406ce37bbf25e" dependencies = [ "frame-support", "frame-system", @@ -8194,9 +8061,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" -version = "27.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99adb3915b29d04362648a4be9114de3bfe37c431f214b1ef96b71f358950d9d" +checksum = "17b3e7cc2ef454af06e0d73e180d2f22c7f6714dca7c1d4a3cc95786041e42c2" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -8211,9 +8078,9 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07d87fdc4028155367c6ea98143054a6c00b38bfd77ec08681e289e429e35505" +checksum = "4e060567db5e59e3f26cc274cb9fc5db5af160ac67062d61e488f7887fef5470" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -8224,9 +8091,9 @@ dependencies = [ [[package]] name = "pallet-treasury" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dd462af11574485864023849e0622916b611dbc88111192fb39b1e6d7e666ba" +checksum = "174da255855136b4bf7174a1499ddf20134efe75d59fac4709244fe813534656" dependencies = [ "docify", "frame-benchmarking", @@ -8271,9 +8138,9 @@ dependencies = [ [[package]] name = "pallet-utility" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85a8a6941da32837e4297e0d8abe0a5c94f348a119cccbf27b0f99ee01246c0e" +checksum = "73c54ec28e67769b35a650d497ddd10bf0dd783d14965a1034cdcb71ae1d1442" dependencies = [ "frame-benchmarking", "frame-support", @@ -8288,9 +8155,9 @@ dependencies = [ [[package]] name = "pallet-vesting" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd29411ef24eb6a856adf1bc33b37ead4835a25dafb1c4c8c95b13fa5247748f" +checksum = "4a5627016e1cb40d02bf589507429558208c05948d1399ab405307bfe3b1d967" dependencies = [ "frame-benchmarking", "frame-support", @@ -8304,9 +8171,9 @@ dependencies = [ [[package]] name = "pallet-whitelist" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d37304829099cfec7d17df70cfe11ccf6cb7bd624eab80e8e79e895859454540" +checksum = "a68e2271ffe7a20565b7539931b9c01f29039ab151ac14fd93032e81f250727f" dependencies = [ "frame-benchmarking", "frame-support", @@ -8320,15 +8187,16 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "4.0.0" +version = "10.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04d5e5404d9dadb39390949aadc2c641c16ce4cb0f47ed7a7ff584ab914c2984" +checksum = "bd52ee00a54f8b6ff3a90e97622b2403667ef25105dd08d71d45a7075c0ba478" dependencies = [ "bounded-collections", "frame-benchmarking", "frame-support", "frame-system", "log", + "pallet-balances", "parity-scale-codec", "scale-info", "serde", @@ -8337,14 +8205,15 @@ dependencies = [ "sp-runtime", "sp-std", "staging-xcm", + "staging-xcm-builder", "staging-xcm-executor", ] [[package]] name = "pallet-xcm-benchmarks" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6bfdc94e39541b111db7d2c2a95a18a3c3bb42dd37c20b8705727e617ce00c9" +checksum = "3af346fe874360fdd3e36a63cac72a891283b63a2865b28f8afccaa63472fd40" dependencies = [ "frame-benchmarking", "frame-support", @@ -8360,11 +8229,56 @@ dependencies = [ "staging-xcm-executor", ] +[[package]] +name = "parachains-common" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5539fb10c2901cf120d3db87f6ee1568696ccce30cea1a0d0cdee31f64f1da37" +dependencies = [ + "cumulus-primitives-core", + "cumulus-primitives-utility", + "frame-support", + "frame-system", + "log", + "pallet-asset-tx-payment", + "pallet-assets", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection 12.0.1", + "pallet-message-queue", + "pallet-xcm", + "parity-scale-codec", + "polkadot-primitives", + "scale-info", + "sp-consensus-aura", + "sp-core", + "sp-io", + "sp-runtime", + "sp-std", + "staging-parachain-info", + "staging-xcm", + "staging-xcm-executor", + "substrate-wasm-builder", +] + +[[package]] +name = "parity-bip39" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" +dependencies = [ + "bitcoin_hashes 0.13.0", + "rand", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + [[package]] name = "parity-db" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59e9ab494af9e6e813c72170f0d3c1de1500990d62c97cc05cc7576f91aa402f" +checksum = "592a28a24b09c9dc20ac8afaa6839abc417c720afe42c12e1e4a9d6aa2508d2e" dependencies = [ "blake2 0.10.6", "crc32fast", @@ -8373,18 +8287,19 @@ dependencies = [ "libc", "log", "lz4", - "memmap2", - "parking_lot 0.12.1", - "rand 0.8.5", + "memmap2 0.5.10", + "parking_lot 0.12.3", + "rand", "siphasher", "snap", + "winapi", ] [[package]] name = "parity-scale-codec" -version = "3.6.5" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dec8a8073036902368c2cdc0387e85ff9a37054d7e7c98e592145e0c92cd4fb" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec 0.7.4", "bitvec", @@ -8397,11 +8312,11 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.5" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312270ee71e1cd70289dacf597cab7b207aa107d2f28191c2ae45b2ece18a260" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -8438,12 +8353,12 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", + "parking_lot_core 0.9.10", ] [[package]] @@ -8462,15 +8377,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.4.1", + "redox_syscall 0.5.1", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -8480,28 +8395,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" [[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "pbkdf2" -version = "0.8.0" +name = "password-hash" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +checksum = "346f04948ba92c43e8469c1ee6736c7563d71012b17d40745260fe106aac2166" dependencies = [ - "crypto-mac 0.11.1", + "base64ct", + "rand_core 0.6.4", + "subtle 2.5.0", ] [[package]] -name = "pbkdf2" -version = "0.11.0" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -8510,6 +8418,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", + "password-hash", ] [[package]] @@ -8527,26 +8436,17 @@ dependencies = [ "base64 0.13.1", ] -[[package]] -name = "pem-rfc7468" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" -dependencies = [ - "base64ct", -] - [[package]] name = "percent-encoding" -version = "2.3.0" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.5" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae9cee2a55a544be8b89dc6848072af97a20f2422603c10865be2a42b580fff5" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" dependencies = [ "memchr", "thiserror", @@ -8555,9 +8455,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.5" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81d78524685f5ef2a3b3bd1cafbc9fcabb036253d9b1463e726a91cd16e2dfc2" +checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459" dependencies = [ "pest", "pest_generator", @@ -8565,22 +8465,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.5" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68bd1206e71118b5356dae5ddc61c8b11e28b09ef6a31acbd15ea48a28e0c227" +checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "pest_meta" -version = "2.7.5" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c747191d4ad9e4a4ab9c8798f1e82a39affe7ef9648390b7e5548d18e099de6" +checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd" dependencies = [ "once_cell", "pest", @@ -8589,32 +8489,32 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.6.4" +version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap 2.2.6", ] [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -8625,9 +8525,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -8637,55 +8537,47 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" +checksum = "464db0c665917b13ebb5d453ccdec4add5658ee1adc7affc7677615356a8afaf" dependencies = [ "atomic-waker", - "fastrand 2.0.1", + "fastrand 2.1.0", "futures-io", ] -[[package]] -name = "pkcs8" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" -dependencies = [ - "der 0.6.1", - "spki 0.6.0", -] - [[package]] name = "pkcs8" version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" dependencies = [ - "der 0.7.8", - "spki 0.7.2", + "der", + "spki", ] [[package]] name = "pkg-config" -version = "0.3.27" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] name = "platforms" -version = "3.2.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14e6ab3f592e6fb464fc9712d8d6e6912de6473954635fd76a589d832cffcbb0" +checksum = "db23d408679286588f4d4644f965003d056e3dd5abcaaa938116871d7ce2fee7" [[package]] name = "polkadot-approval-distribution" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafcdaca311b3f8ea463548cc2f62289a2689d3198ea8cba2d100fab378fff3c" +checksum = "c71bcf7eaa793354f996553b9b472833f761d9cd9e9bf6b2123895da4df6a25b" dependencies = [ + "bitvec", "futures", "futures-timer", + "itertools 0.10.5", "polkadot-node-jaeger", "polkadot-node-metrics", "polkadot-node-network-protocol", @@ -8693,15 +8585,15 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-bitfield-distribution" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "316fa25f773ac3f470578d2dc2ff73cefc2a01c9ea0a9a00767529184701792c" +checksum = "9b156f5a0a20ffcd852e266b865ad9149c6180a4cf1af07f334567c3b86f0fec" dependencies = [ "always-assert", "futures", @@ -8710,15 +8602,15 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "tracing-gum", ] [[package]] name = "polkadot-availability-distribution" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "118ed63ece1ec1ccf240ab44d932a932ae778ece57a6fba34953b7c0b436f6b1" +checksum = "156b913d3eb7981ac8d540bacef09d5dac3a5d0584fa5a27fc8971870a02040a" dependencies = [ "derive_more", "fatality", @@ -8730,7 +8622,7 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "schnellru", "sp-core", "sp-keystore", @@ -8740,9 +8632,9 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13245b9f37a4d409c47cf46f74d2601df82f1bf12678b1a792ad1aa5effebd13" +checksum = "d736bca91fe70f303d09a1e251b7d3cb39164c94948d95a7769256ece066a3ed" dependencies = [ "async-trait", "fatality", @@ -8754,19 +8646,21 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-network", "schnellru", "thiserror", + "tokio", "tracing-gum", ] [[package]] name = "polkadot-cli" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0d87ec2b375e4f353d9fc22fa8d405578e44f1f12a7ff74936a3997f69d62f" +checksum = "5509ed80ddcbb63c88b9f346b22f4b663e52dadf475118ec06406a0688817c55" dependencies = [ + "cfg-if", "clap", "frame-benchmarking-cli", "futures", @@ -8784,6 +8678,7 @@ dependencies = [ "sp-io", "sp-keyring", "sp-maybe-compressed-blob", + "sp-runtime", "substrate-build-script-utils", "thiserror", "try-runtime-cli", @@ -8791,9 +8686,9 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f5ed0e739de576e41203ba99b9da1347998174a84fb5ea825f1a8e30e1dff88" +checksum = "c82682bdd0aea251ab8f31a1b06f4c2c1c494e80fed4fc13ca9bc7622870bc82" dependencies = [ "bitvec", "fatality", @@ -8814,9 +8709,9 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08d1d6ca24e1b13f8069e015cfab794344212dd7436aadd61de8086a82664ef" +checksum = "44c2f38f3195108e9da39b9845895bb3dff76f1c7b31409143febeb1560cd276" dependencies = [ "parity-scale-codec", "scale-info", @@ -8827,15 +8722,15 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa05fec2897e38a2ec42df5f84110fbb170dbe549d5d1e454f635b141cb2aca" +checksum = "f5331cccd51a1593bc26a1619964f49876629589139cdf46151c21a6308c6bad" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -8853,9 +8748,9 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9714c537368095f1bc2e70c45fb8ae3347c19b344f8d5b4722cc781690a74924" +checksum = "4842b32ecf4ab29521f1f9dd199c35398cd101883912f74e070658cd465037af" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -8868,9 +8763,9 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9acc782f4c0efb0809cc325a49b50c498255a973dfc665e940043af20936d525" +checksum = "3165cced1fd975f43d21e8a0701b19461d07131ace5feae2bfeb8ea005953683" dependencies = [ "futures", "futures-timer", @@ -8878,21 +8773,22 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "sc-network", "sc-network-common", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-keystore", "tracing-gum", ] [[package]] name = "polkadot-network-bridge" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7355e7f9cac8e5fe4899796e92aea2ea94678854dc44e21890a33d4c6c6ec3" +checksum = "48f34d1b7dde0d43c37aeacb37c199cbfc1c541a3ff03317fcb6bcc2d69501f6" dependencies = [ "always-assert", "async-trait", @@ -8900,7 +8796,7 @@ dependencies = [ "fatality", "futures", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", @@ -8914,9 +8810,9 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bed91a561c9edfc5bd1d8e432cec8cecde63aaf12131cc19881d67e39be0fce" +checksum = "1060f6954c43f120751ad3f2a54155541893fcf9a966f4a9ce5192ee7888fa1f" dependencies = [ "futures", "parity-scale-codec", @@ -8933,16 +8829,17 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976e5fcd0c10fbe37d120a9e4702324585e529498c56d03fd7b529f17644fe34" +checksum = "427edaa41cc878f0d22b3248e900d1f65760a92f6e230e7a54ff6118b8ef9c79" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", + "itertools 0.10.5", "kvdb", - "merlin 2.0.1", + "merlin", "parity-scale-codec", "polkadot-node-jaeger", "polkadot-node-primitives", @@ -8950,9 +8847,12 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "rand", + "rand_chacha 0.3.1", + "rand_core 0.6.4", "sc-keystore", "schnellru", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "sp-application-crypto", "sp-consensus", "sp-consensus-slots", @@ -8963,9 +8863,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9d1018400db515cec0748e4c83d6010601d1784350dfd465386a7ee47699cd3" +checksum = "669f4ba3485a915853e94db99cf0dc5af9bccacd76b4d6f06550c5ecbd33d4aa" dependencies = [ "bitvec", "futures", @@ -8986,9 +8886,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051940f4f7214dcc370077ead642052cda2c7316641ea9ff1f05624be2a272d2" +checksum = "307ec8006475fd2f5f878bbfd7c74368f4fde0fd10096925a85b5e027ace4889" dependencies = [ "bitvec", "fatality", @@ -8999,6 +8899,7 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-primitives", "polkadot-statement-table", + "schnellru", "sp-keystore", "thiserror", "tracing-gum", @@ -9006,9 +8907,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77cea47f010914b5e52f2f1eb96c058cb117045c5864c733236e7b24ea103d22" +checksum = "b8133ce90b5bfc6d81c8d124dd26ec86624eb88bb33e57c0fb59d1262c9224ea" dependencies = [ "futures", "polkadot-node-subsystem", @@ -9022,9 +8923,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb2306632d1ee08cc2f4d5945b4ec795fd79ce801ae03e79961c18877220ed2" +checksum = "1a4335b31f5d7dd3c59a7a061ca32061d290244fde416186fd22bee5093cf4bb" dependencies = [ "async-trait", "futures", @@ -9044,25 +8945,24 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e8787fcec6e036d21421adf3db0295c142a878c482e0aba2e5aefcf050f10" +checksum = "23b25733a45754fa4f049d26289994e379be21b132ca36982378604b53341104" dependencies = [ "futures", "polkadot-node-metrics", "polkadot-node-subsystem", - "polkadot-primitives", + "polkadot-node-subsystem-types", "sc-client-api", "sc-consensus-babe", - "sp-blockchain", "tracing-gum", ] [[package]] name = "polkadot-node-core-chain-selection" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8028469b10f5f1fa10ea9b08cb09bb53bcb55a25298e4154928d3aaf7d5d066a" +checksum = "c77a7c69bd67b0840c0f97c61637b798f6ec49c6a1c4cf153e4d8e8b22e34c45" dependencies = [ "futures", "futures-timer", @@ -9078,9 +8978,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662387f0e7b23596326754796fbb6f52e32c3deb0c11f9ff341e23a0a7139608" +checksum = "ea6fb7b632e37b5eff4d3ceb246a6d7277c82bb573cbc2360c37719a5e00df82" dependencies = [ "fatality", "futures", @@ -9098,9 +8998,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0f57ce13de845fe1441fa3ab3405dcb142d3dc0ea985c4e28efa35b97d07d0" +checksum = "8c904246202cb80fc3e3872e142d74958903515c3b91d3d4d88907cf8bca46e2" dependencies = [ "async-trait", "futures", @@ -9116,9 +9016,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" -version = "3.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a010a14312c5c5eec800397cc60cce10131d4a29cedf563ee639fc7b9b27ba1" +checksum = "d343298e502e687bc2f8ae837cad538a9b5d60ce714ace58120cb91aeb41d1c1" dependencies = [ "bitvec", "fatality", @@ -9134,9 +9034,9 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a67ac3aa0a0e89ff20d5eb761fca78c124848a2627e35343e824d78cc9fe91" +checksum = "f9be87118cc96f05bd5a35bee2f8c495b894d23fbff1c954b15d7dbe4516564c" dependencies = [ "bitvec", "fatality", @@ -9146,17 +9046,20 @@ dependencies = [ "polkadot-node-subsystem", "polkadot-node-subsystem-util", "polkadot-primitives", + "schnellru", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f58224dbfbd773947ff3fccc3318bda11909e8a0f7c36f7f1234c0c1f25a62a" +checksum = "99c07e2dad8712e1e5978c6404aca20d2c7f1b5d6151d60277f49ce949b3ed5d" dependencies = [ "always-assert", + "array-bytes 6.2.3", + "blake3", "cfg-if", "futures", "futures-timer", @@ -9168,23 +9071,25 @@ dependencies = [ "polkadot-node-core-pvf-common", "polkadot-node-metrics", "polkadot-node-primitives", + "polkadot-node-subsystem", "polkadot-parachain-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "slotmap", "sp-core", "sp-maybe-compressed-blob", "sp-wasm-interface", "tempfile", + "thiserror", "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe14484e66b365748bd4b2988cc2c68e03146bc399bdf8139f9eb5cf6c6cf0" +checksum = "1536bf89078dca39061f2a4d742e11dc14da38ffa5b6ce84e5c454cf9fd9b151" dependencies = [ "futures", "polkadot-node-primitives", @@ -9199,34 +9104,37 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94004d011a260b8efdf6ddf80ac815ba6ede84bb46e32d588161c1d860c5a65d" +checksum = "2781bf5b07873b37ed5a76b28866367ea2529d4b91497c3db560c0eb59b2a2d9" dependencies = [ "cfg-if", "cpu-time", "futures", "landlock", "libc", + "nix 0.27.1", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", "sc-executor", "sc-executor-common", "sc-executor-wasmtime", + "seccompiler", "sp-core", + "sp-crypto-hashing", "sp-externalities", "sp-io", "sp-tracing", - "tokio", + "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-runtime-api" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dccc7a95fea3562bd3a47f22c0e4ddcb755114dc0477f3173db8d5ebf0d84f50" +checksum = "7065d7dd209b05ceaf3781ca0a7cdfcb0071c3a61a8357e37dff8587a94928d2" dependencies = [ "futures", "polkadot-node-metrics", @@ -9240,15 +9148,15 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cfe6d4769181dce55b1b8fc53f0bd85bb4aa20473702fbce95a94abafa19379" +checksum = "e14e65e3d9990d1f8f793a23c05c6aa82a551e551225ab86d2625474afef748f" dependencies = [ "lazy_static", "log", "mick-jaeger", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-primitives", "polkadot-primitives", "sc-network", @@ -9259,11 +9167,11 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c51a586fc3ef87c685588a650c18882b4cf069d8adc0d7d9bd2670749cb4e82b" +checksum = "a4ca58a67371546b66a011f0e27551094a8499a53223b16c164e769d25d981d0" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "futures", "futures-timer", "log", @@ -9279,9 +9187,9 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6de513655bf71400299cda1ccaebfa612fd3965e7ce5a9120b4ff37bfc80931" +checksum = "67c3b078794c9c383ee3ceff65f2713ec81c033c6d8785ead5f7797e914c1fe3" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -9294,7 +9202,7 @@ dependencies = [ "polkadot-node-jaeger", "polkadot-node-primitives", "polkadot-primitives", - "rand 0.8.5", + "rand", "sc-authority-discovery", "sc-network", "strum 0.24.1", @@ -9304,16 +9212,17 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e82ee5edac871310bd1ce16a035ad2fc901d6ddd69ea0bbabc7f0a70a02770a" +checksum = "1d9521abb7028ce7040f66a0786423bee2cdb7725ca46e5cee1f86191bcb2ed3" dependencies = [ + "bitvec", "bounded-vec", "futures", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-primitives", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "serde", "sp-application-crypto", "sp-consensus-babe", @@ -9327,9 +9236,9 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e89d3f964ebd57275c2fff4d3cc755d210698fedeac1a0a238c0eb31534c96d" +checksum = "c7865c507f0eab9d816c40b1d4e2acb4e8f77db9efc8c0af23942d6b0f50e6f6" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -9338,11 +9247,12 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1013b3bac6e9b76bbd71433c3eba36b5c0fa9306bfc473ec02e3a104e156d2" +checksum = "bf0e971c1377901212059b794b48acac9a855cac83f2e07dc1b708ca0e77ba64" dependencies = [ "async-trait", + "bitvec", "derive_more", "futures", "orchestra", @@ -9357,16 +9267,18 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", + "sp-blockchain", "sp-consensus-babe", + "sp-runtime", "substrate-prometheus-endpoint", "thiserror", ] [[package]] name = "polkadot-node-subsystem-util" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8134075bfee921305ff229412e9282a3351215bf049c6a403197cc795f919941" +checksum = "4937553bd1a5f9ee9343a1a227ae07237b48a29c99ecd53217b090ca84b753c6" dependencies = [ "async-trait", "derive_more", @@ -9377,7 +9289,7 @@ dependencies = [ "kvdb", "parity-db", "parity-scale-codec", - "parking_lot 0.11.2", + "parking_lot 0.12.3", "pin-project", "polkadot-node-jaeger", "polkadot-node-metrics", @@ -9388,7 +9300,7 @@ dependencies = [ "polkadot-overseer", "polkadot-primitives", "prioritized-metered-channel", - "rand 0.8.5", + "rand", "sc-client-api", "schnellru", "sp-application-crypto", @@ -9400,15 +9312,15 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2f547e981cbd72357ba30952193844d30de5063e9d304c117c9b941f12b5f84" +checksum = "97415bc09e9dd20d44a019eaf0bb803ab3239a7eca20820b181e53901966fdbc" dependencies = [ "async-trait", "futures", "futures-timer", "orchestra", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", @@ -9423,13 +9335,12 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" -version = "3.0.0" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42265630c0c48e25d7ee5a9f4bdcafd003be65c0a44deeb6541620ca169fa519" +checksum = "4b87dda07862f2b16f2c2b7d315f2b4549c896562d973d466b6d19de36aba30d" dependencies = [ "bounded-collections", "derive_more", - "frame-support", "parity-scale-codec", "polkadot-core-primitives", "scale-info", @@ -9437,16 +9348,18 @@ dependencies = [ "sp-core", "sp-runtime", "sp-std", + "sp-weights", ] [[package]] name = "polkadot-primitives" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4508ff6b035edc08c54bb61238500179963f6f1eb8266dce6a5625509124bc" +checksum = "7e01b525a35852e2861397eecbdb4a03dda69f14f7ca04968f2e06d6cba51dfb" dependencies = [ "bitvec", "hex-literal", + "log", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain-primitives", @@ -9468,9 +9381,9 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce0432643ea2e4923db1f0ba6c82305c53725e18c857e911c4d979e4f7aafae5" +checksum = "9bf68469a4e01a0c8a16869fde6de3071fbebdf836058c8afe8396470ef2c462" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -9486,6 +9399,7 @@ dependencies = [ "sc-consensus-grandpa", "sc-consensus-grandpa-rpc", "sc-rpc", + "sc-rpc-spec-v2", "sc-sync-state-rpc", "sc-transaction-pool-api", "sp-api", @@ -9501,9 +9415,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a788f8ed8b33262c33f72d78e3416c5991e40d333178ae43000a92181ee44bca" +checksum = "b1abd7bff20e17e025a4e001aff55dfefcfd7ef8a8ae138de44998a012e227f2" dependencies = [ "bitvec", "frame-benchmarking", @@ -9517,8 +9431,10 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-election-provider-multi-phase", "pallet-fast-unstake", + "pallet-identity 31.0.0", "pallet-session", "pallet-staking", "pallet-staking-reward-fn", @@ -9526,7 +9442,6 @@ dependencies = [ "pallet-transaction-payment", "pallet-treasury", "pallet-vesting", - "pallet-xcm-benchmarks", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-parachains", @@ -9552,11 +9467,11 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfe45b01d9d621174c9c0eef0871aeead5986393838206fe58df3ae414bcb8d2" +checksum = "4fed9088becfd874b6dbf064f9d1dd1bfa2e3c2188459a572aac2e689c028772" dependencies = [ - "bs58 0.5.0", + "bs58 0.5.1", "frame-benchmarking", "parity-scale-codec", "polkadot-primitives", @@ -9566,9 +9481,9 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936dbae8a7a88dba07da726d779126716e05364d8475ced1c313f32755050a02" +checksum = "8ce601c5f1005ff1d315c1e5c161a73e63e54bf23527f98c2bfa3ffc5b22f5e6" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -9582,6 +9497,7 @@ dependencies = [ "pallet-authorship", "pallet-babe", "pallet-balances", + "pallet-broker", "pallet-message-queue", "pallet-session", "pallet-staking", @@ -9592,13 +9508,14 @@ dependencies = [ "polkadot-parachain-primitives", "polkadot-primitives", "polkadot-runtime-metrics", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rustc-hex", "scale-info", "serde", "sp-api", "sp-application-crypto", + "sp-arithmetic", "sp-core", "sp-inherents", "sp-io", @@ -9614,9 +9531,9 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc65d44c4dd6a8be74194dcac66552dd4e79ee0bcc287349721925e8238177a" +checksum = "322db94a98084bf62ac2c58194856d823455ceb74000c9602f817b8b738a8f78" dependencies = [ "async-trait", "frame-benchmarking", @@ -9638,6 +9555,7 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "parity-db", "parity-scale-codec", + "parking_lot 0.12.3", "polkadot-approval-distribution", "polkadot-availability-bitfield-distribution", "polkadot-availability-distribution", @@ -9731,21 +9649,20 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6992cb6e2ba744752f9f403cb5e0f70ac5431f39f9ea859a3978f22c79799cb" +checksum = "38a4ef148c9bbed26f8630311ac26c9df1c07195a46a84fb5e8e7e7122e90248" dependencies = [ "arrayvec 0.7.4", "bitvec", "fatality", "futures", "futures-timer", - "indexmap 1.9.3", + "indexmap 2.2.6", "parity-scale-codec", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", - "polkadot-node-subsystem-types", "polkadot-node-subsystem-util", "polkadot-primitives", "sp-keystore", @@ -9756,85 +9673,195 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22b2a11cb8871f7e30a8f5e455c92d19a186065644ee00f9acda550ff89dacce" +checksum = "a18144720acd47e1243b60c20bfb03f73dc67cbaf61bf2820991961e1ebb803b" dependencies = [ "parity-scale-codec", "polkadot-primitives", "sp-core", + "tracing-gum", ] [[package]] -name = "polling" -version = "2.8.0" +name = "polkavm" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if", - "concurrent-queue", "libc", "log", - "pin-project-lite 0.2.13", - "windows-sys 0.48.0", + "polkavm-assembler", + "polkavm-common 0.9.0", + "polkavm-linux-raw", ] [[package]] -name = "polling" -version = "3.3.0" +name = "polkavm-assembler" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53b6af1f60f36f8c2ac2aad5459d75a5a9b4be1e8cdd40264f315d78193e531" +checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" dependencies = [ - "cfg-if", - "concurrent-queue", - "pin-project-lite 0.2.13", - "rustix 0.38.25", - "tracing", - "windows-sys 0.48.0", + "log", ] [[package]] -name = "poly1305" +name = "polkavm-common" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +checksum = "92c99f7eee94e7be43ba37eef65ad0ee8cbaf89b7c00001c3f6d2be985cb1817" + +[[package]] +name = "polkavm-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" dependencies = [ - "cpufeatures", - "opaque-debug 0.3.0", - "universal-hash 0.5.1", + "log", ] [[package]] -name = "polyval" -version = "0.5.3" +name = "polkavm-derive" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1" +checksum = "79fa916f7962348bd1bb1a65a83401675e6fc86c51a0fdbcf92a3108e58e6125" +dependencies = [ + "polkavm-derive-impl-macro 0.8.0", +] + +[[package]] +name = "polkavm-derive" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae8c4bea6f3e11cd89bb18bcdddac10bd9a24015399bd1c485ad68a985a19606" +dependencies = [ + "polkavm-derive-impl-macro 0.9.0", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c10b2654a8a10a83c260bfb93e97b262cf0017494ab94a65d389e0eda6de6c9c" +dependencies = [ + "polkavm-common 0.8.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "polkavm-derive-impl" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fdfc49717fb9a196e74a5d28e0bc764eb394a2c803eb11133a31ac996c60c" +dependencies = [ + "polkavm-common 0.9.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15e85319a0d5129dc9f021c62607e0804f5fb777a05cdda44d750ac0732def66" +dependencies = [ + "polkavm-derive-impl 0.8.0", + "syn 2.0.66", +] + +[[package]] +name = "polkavm-derive-impl-macro" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ba81f7b5faac81e528eb6158a6f3c9e0bb1008e0ffa19653bc8dea925ecb429" +dependencies = [ + "polkavm-derive-impl 0.9.0", + "syn 2.0.66", +] + +[[package]] +name = "polkavm-linker" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7be503e60cf56c0eb785f90aaba4b583b36bff00e93997d93fef97f9553c39" +dependencies = [ + "gimli 0.28.1", + "hashbrown 0.14.5", + "log", + "object 0.32.2", + "polkavm-common 0.9.0", + "regalloc2 0.9.3", + "rustc-demangle", +] + +[[package]] +name = "polkavm-linux-raw" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" + +[[package]] +name = "polling" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" +dependencies = [ + "autocfg", + "bitflags 1.3.2", + "cfg-if", + "concurrent-queue", + "libc", + "log", + "pin-project-lite 0.2.14", + "windows-sys 0.48.0", +] + +[[package]] +name = "polling" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645493cf344456ef24219d02a768cf1fb92ddf8c92161679ae3d91b91a637be3" dependencies = [ "cfg-if", + "concurrent-queue", + "hermit-abi", + "pin-project-lite 0.2.14", + "rustix 0.38.34", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ "cpufeatures", - "opaque-debug 0.3.0", - "universal-hash 0.4.1", + "opaque-debug 0.3.1", + "universal-hash", ] [[package]] name = "polyval" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52cff9d1d4dee5fe6d03729099f4a310a41179e0a10dbf542039873f2e826fb" +checksum = "9d1fe60d06143b2430aa532c94cfe9e29783047f06c0d7fd359a9a51b729fa25" dependencies = [ "cfg-if", "cpufeatures", - "opaque-debug 0.3.0", - "universal-hash 0.5.1", + "opaque-debug 0.3.1", + "universal-hash", ] [[package]] name = "portable-atomic" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bccab0e7fd7cc19f820a1c8c91720af652d0c88dc9664dd72aef2614f04af3b" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" [[package]] name = "powerfmt" @@ -9889,11 +9916,21 @@ dependencies = [ "termtree", ] +[[package]] +name = "prettier-please" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22020dfcf177fcc7bf5deaf7440af371400c67c0de14c399938d8ed4fb4645d3" +dependencies = [ + "proc-macro2", + "syn 2.0.66", +] + [[package]] name = "prettyplease" -version = "0.1.25" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +checksum = "f28f53e8b192565862cf99343194579a022eb9c7dd3a8d03134734803c7b3125" dependencies = [ "proc-macro2", "syn 1.0.109", @@ -9901,12 +9938,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.15" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" dependencies = [ "proc-macro2", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -9925,9 +9962,9 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" -version = "0.5.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e99f0c89bd88f393aab44a4ab949351f7bc7e7e1179d11ecbfe50cbe4c47e342" +checksum = "a172e6cc603231f2cf004232eabcecccc0da53ba576ab286ef7baa0cfc7927ad" dependencies = [ "coarsetime", "crossbeam-queue", @@ -9951,11 +9988,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.20.7", + "toml_edit 0.21.1", ] [[package]] @@ -9984,35 +10021,35 @@ dependencies = [ [[package]] name = "proc-macro-warning" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b698b0b09d40e9b7c1a47b132d66a8b54bcd20583d9b6d06e4535e383b4405c" +checksum = "834da187cfe638ae8abb0203f0b33e5ccdb02a28e7199f2f47b3e2754f50edca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" dependencies = [ "unicode-ident", ] [[package]] name = "prometheus" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" dependencies = [ "cfg-if", "fnv", "lazy_static", "memchr", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "thiserror", ] @@ -10024,7 +10061,7 @@ checksum = "5d6fa99d535dd930d1249e6c79cb3c2915f9172a540fe2b02a4c8f9ca954721e" dependencies = [ "dtoa", "itoa", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus-client-derive-encode", ] @@ -10036,7 +10073,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -10046,7 +10083,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", - "prost-derive", + "prost-derive 0.11.9", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive 0.12.6", ] [[package]] @@ -10056,14 +10103,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", - "heck", + "heck 0.4.1", "itertools 0.10.5", "lazy_static", "log", "multimap", "petgraph", - "prettyplease 0.1.25", - "prost", + "prettyplease 0.1.11", + "prost 0.11.9", "prost-types", "regex", "syn 1.0.109", @@ -10084,13 +10131,26 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.11.0", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "prost-types" version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "prost", + "prost 0.11.9", ] [[package]] @@ -10102,9 +10162,24 @@ dependencies = [ "cc", ] +[[package]] +name = "quanta" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + [[package]] name = "quartz-runtime" -version = "1.3.0" +version = "1.9.0" dependencies = [ "app-promotion-rpc", "cumulus-pallet-aura-ext", @@ -10141,7 +10216,7 @@ dependencies = [ "pallet-balances", "pallet-balances-adapter", "pallet-base-fee", - "pallet-collator-selection", + "pallet-collator-selection 5.0.0", "pallet-collective", "pallet-common", "pallet-configuration", @@ -10160,6 +10235,7 @@ dependencies = [ "pallet-inflation", "pallet-maintenance", "pallet-membership", + "pallet-message-queue", "pallet-nonfungible", "pallet-preimage", "pallet-ranked-collective", @@ -10179,6 +10255,7 @@ dependencies = [ "pallet-unique", "pallet-utility", "pallet-xcm", + "parachains-common", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-common", @@ -10191,6 +10268,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", @@ -10258,7 +10336,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94b0b33c13a79f669c85defaf4c275dc86a0c0372807d0ca3d78e0bb87274863" dependencies = [ "bytes", - "rand 0.8.5", + "rand", "ring 0.16.20", "rustc-hash", "rustls 0.20.9", @@ -10266,14 +10344,14 @@ dependencies = [ "thiserror", "tinyvec", "tracing", - "webpki 0.22.4", + "webpki", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -10284,19 +10362,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - [[package]] name = "rand" version = "0.8.5" @@ -10343,7 +10408,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.15", ] [[package]] @@ -10353,25 +10418,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" dependencies = [ "num-traits", - "rand 0.8.5", + "rand", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rand_pcg" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" dependencies = [ - "rand_core 0.5.1", + "rand_core 0.6.4", ] [[package]] -name = "rand_pcg" -version = "0.3.1" +name = "raw-cpuid" +version = "11.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59cad018caf63deb318e5a4586d99a24424a364f40f1e5778c29aca23f4fc73e" +checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd" dependencies = [ - "rand_core 0.6.4", + "bitflags 2.5.0", ] [[package]] @@ -10382,9 +10447,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -10392,27 +10457,14 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" dependencies = [ "crossbeam-deque", "crossbeam-utils", ] -[[package]] -name = "rcgen" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" -dependencies = [ - "pem", - "ring 0.16.20", - "time", - "x509-parser 0.13.2", - "yasna", -] - [[package]] name = "rcgen" version = "0.10.0" @@ -10436,64 +10488,63 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.3.5" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" dependencies = [ "bitflags 1.3.2", ] [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", ] [[package]] name = "redox_users" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ - "getrandom 0.2.11", + "getrandom 0.2.15", "libredox", "thiserror", ] [[package]] name = "reed-solomon-novelpoly" -version = "1.0.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58130877ca403ab42c864fbac74bb319a0746c07a634a92a5cfc7f54af272582" +checksum = "87413ebb313323d431e85d0afc5a68222aaed972843537cbfe5f061cf1b4bcab" dependencies = [ "derive_more", "fs-err", - "itertools 0.11.0", "static_init", "thiserror", ] [[package]] name = "ref-cast" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acde58d073e9c79da00f2b5b84eed919c8326832648a5b109b3fce1bb1175280" +checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7473c2cfcf90008193dd0e3e16599455cb601a9fce322b5bb55de799664925" +checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -10508,16 +10559,29 @@ dependencies = [ "smallvec", ] +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" -version = "1.10.2" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.3", - "regex-syntax 0.8.2", + "regex-automata 0.4.6", + "regex-syntax 0.8.3", ] [[package]] @@ -10531,13 +10595,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.2", + "regex-syntax 0.8.3", ] [[package]] @@ -10548,9 +10612,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "resolv-conf" @@ -10562,17 +10626,6 @@ dependencies = [ "quick-error", ] -[[package]] -name = "rfc6979" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" -dependencies = [ - "crypto-bigint 0.4.9", - "hmac 0.12.1", - "zeroize", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -10580,7 +10633,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" dependencies = [ "hmac 0.12.1", - "subtle 2.4.1", + "subtle 2.5.0", ] [[package]] @@ -10600,16 +10653,17 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.5" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", - "getrandom 0.2.11", + "cfg-if", + "getrandom 0.2.15", "libc", "spin 0.9.8", "untrusted 0.9.0", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -10655,9 +10709,9 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4198843a4ec01f56b58ee26e15df123593da562a07b838c66c4e519dbfc1922d" +checksum = "165988588402ce7dc2d32dfba280cbbd59befc444d8f95579b999ecd8575ef27" dependencies = [ "binary-merkle-tree", "frame-benchmarking", @@ -10683,7 +10737,7 @@ dependencies = [ "pallet-democracy", "pallet-elections-phragmen", "pallet-grandpa", - "pallet-identity 25.0.0", + "pallet-identity 31.0.0", "pallet-im-online", "pallet-indices", "pallet-membership", @@ -10697,6 +10751,7 @@ dependencies = [ "pallet-ranked-collective", "pallet-recovery", "pallet-referenda", + "pallet-root-testing", "pallet-scheduler", "pallet-session", "pallet-society", @@ -10751,9 +10806,9 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "272eaa4f1b4b5357d89d1f8f504cb5ee81a105bf7e5c295f053c6e521f2a199b" +checksum = "0033b0335cd7cb691fbcd16346e151ffb21ad4e2a8675eda06b48275b8f52549" dependencies = [ "frame-support", "polkadot-primitives", @@ -10763,8 +10818,15 @@ dependencies = [ "sp-runtime", "sp-weights", "staging-xcm", + "staging-xcm-builder", ] +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + [[package]] name = "rpassword" version = "7.3.1" @@ -10776,17 +10838,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "rtcp" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1919efd6d4a6a85d13388f9487549bb8e359f17198cc03ffd72f79b553873691" -dependencies = [ - "bytes", - "thiserror", - "webrtc-util", -] - [[package]] name = "rtnetlink" version = "0.10.1" @@ -10797,7 +10848,7 @@ dependencies = [ "log", "netlink-packet-route", "netlink-proto", - "nix", + "nix 0.24.3", "thiserror", "tokio", ] @@ -10812,25 +10863,11 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "rtp" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a095411ff00eed7b12e4c6a118ba984d113e1079582570d56a5ee723f11f80" -dependencies = [ - "async-trait", - "bytes", - "rand 0.8.5", - "serde", - "thiserror", - "webrtc-util", -] - [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -10850,7 +10887,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.20", + "semver 1.0.23", ] [[package]] @@ -10892,52 +10929,53 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.25" +version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "errno", "libc", - "linux-raw-sys 0.4.11", - "windows-sys 0.48.0", + "linux-raw-sys 0.4.14", + "windows-sys 0.52.0", ] [[package]] name = "rustls" -version = "0.19.1" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" dependencies = [ - "base64 0.13.1", "log", "ring 0.16.20", - "sct 0.6.1", - "webpki 0.21.4", + "sct", + "webpki", ] [[package]] name = "rustls" -version = "0.20.9" +version = "0.21.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.16.20", - "sct 0.7.1", - "webpki 0.22.4", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", ] [[package]] name = "rustls" -version = "0.21.9" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", - "ring 0.17.5", - "rustls-webpki", - "sct 0.7.1", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.4", + "subtle 2.5.0", + "zeroize", ] [[package]] @@ -10947,7 +10985,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.1.2", + "rustls-pki-types", "schannel", "security-framework", ] @@ -10958,24 +11009,51 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" dependencies = [ - "base64 0.21.5", + "base64 0.21.7", ] +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + [[package]] name = "rustls-webpki" version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.5", + "ring 0.17.8", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", "untrusted 0.9.0", ] [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" [[package]] name = "ruzstd" @@ -11001,9 +11079,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "safe_arch" @@ -11025,9 +11103,9 @@ dependencies = [ [[package]] name = "sc-allocator" -version = "20.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66b4c5976a9cff7fcf24c946276a62ea7837862b6f3bf9f8011f08faf4f08474" +checksum = "4715fddb2bd1862aa21f6312528ab339b7d03ef5ec654e3aa200a3119392392f" dependencies = [ "log", "sp-core", @@ -11037,9 +11115,9 @@ dependencies = [ [[package]] name = "sc-authority-discovery" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb7e0e8a4ea5304b65d49c0085a458ed2e43394f95457689875d3e0c6e118dee" +checksum = "f987a536468e06b66fe3cac296b27dc532f301199e0278bc42ac32b8eb3a4a9d" dependencies = [ "async-trait", "futures", @@ -11047,11 +11125,12 @@ dependencies = [ "ip_network", "libp2p", "log", - "multihash", + "multihash 0.18.1", + "multihash-codetable", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network", "sp-api", @@ -11066,16 +11145,15 @@ dependencies = [ [[package]] name = "sc-basic-authorship" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0aa6c85e3e0b5af9cab7078166d8c4575b7b9edac0ade6be1aadee828420104" +checksum = "295be922b93bd4bc77edadffe66ac85a09436284afe7f12c1efd4d01ec530d07" dependencies = [ "futures", "futures-timer", "log", "parity-scale-codec", "sc-block-builder", - "sc-client-api", "sc-proposer-metrics", "sc-telemetry", "sc-transaction-pool-api", @@ -11090,27 +11168,31 @@ dependencies = [ [[package]] name = "sc-block-builder" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d3999b9b758c09a6c1155e481b683ee87712f071cc5a0679f9ee4906a14a404" +checksum = "033b5ee0fa6d770c9db8cd59f6d1f88e792c088238278fcb836b5c851936a62d" dependencies = [ "parity-scale-codec", - "sc-client-api", "sp-api", "sp-block-builder", "sp-blockchain", "sp-core", "sp-inherents", "sp-runtime", + "sp-trie", ] [[package]] name = "sc-chain-spec" -version = "24.0.0" +version = "30.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec7e711ea9870d3fb8e2a3ea5b601a9e20c63d0d2f457f40146407721e246a77" +checksum = "5dfb28048e5b2d168870e2205d3e41db1f387a781831a8b8b82c9f10536c2742" dependencies = [ - "memmap2", + "array-bytes 6.2.3", + "docify", + "log", + "memmap2 0.9.4", + "parity-scale-codec", "sc-chain-spec-derive", "sc-client-api", "sc-executor", @@ -11120,38 +11202,43 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", + "sp-crypto-hashing", + "sp-genesis-builder", + "sp-io", "sp-runtime", "sp-state-machine", ] [[package]] name = "sc-chain-spec-derive" -version = "10.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f25158f791eb48715da9322375598b541cadd1f193674e8a4d77c79ffa3d95d" +checksum = "f2e80fbdaea194762d4b4b0eec389037c25ad102676203b42d684774ae3019b8" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "sc-cli" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22c61058223f80c1f961b03f7737529609a3283eef91129e971a1966101c18ea" +checksum = "20c2eae4d9396b19403f89f058a6a684066b58e051b1310f246eb9b41a7b54fe" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "chrono", "clap", "fdlimit", "futures", + "itertools 0.10.5", "libp2p-identity", "log", "names", + "parity-bip39", "parity-scale-codec", - "rand 0.8.5", + "rand", "regex", "rpassword", "sc-client-api", @@ -11173,21 +11260,20 @@ dependencies = [ "sp-runtime", "sp-version", "thiserror", - "tiny-bip39", "tokio", ] [[package]] name = "sc-client-api" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7d32101f415f4d7ddbe8b5de1c1387a78d6dce070e26407ec605fe9f3fc9e23" +checksum = "08db275ca98f1fe44db2e2058893b182b85ef11cee7cf271edffd449a1179fc4" dependencies = [ "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor", "sc-transaction-pool-api", "sc-utils", @@ -11207,11 +11293,11 @@ dependencies = [ [[package]] name = "sc-client-db" -version = "0.32.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4ced79f609a44782874d856cf39d256838957195ef34f4fb8ced90bf4b725d0" +checksum = "6bd93f124c30ec885696128a639e190293bee2a6430cc04248d656093b5d4f42" dependencies = [ - "hash-db 0.16.0", + "hash-db", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", @@ -11219,7 +11305,7 @@ dependencies = [ "log", "parity-db", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-state-db", "schnellru", @@ -11234,9 +11320,9 @@ dependencies = [ [[package]] name = "sc-consensus" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86e4100cc8fb3876708e1ec5a7c63af3baa75febd5051beb9ddd1e4835fdfc27" +checksum = "4da51746e9689ecee65d6c1ac32e89a7b0452ee1ce377485e94c285e9690dcfd" dependencies = [ "async-trait", "futures", @@ -11244,7 +11330,7 @@ dependencies = [ "libp2p-identity", "log", "mockall", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-utils", "serde", @@ -11260,9 +11346,9 @@ dependencies = [ [[package]] name = "sc-consensus-aura" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e3e282836a7deeeb71d965a0942828f81ae2b03fd67515b733d5f33dd5da855" +checksum = "988701c58dcd9521412cfcbb54457b17546bb4363f021ee8131af409a027b879" dependencies = [ "async-trait", "futures", @@ -11290,9 +11376,9 @@ dependencies = [ [[package]] name = "sc-consensus-babe" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a48ef5eaf7bffc647dfdfd42c7c02a929d89410b065beeb80753fd94f5fe70d" +checksum = "a65da2a2d198d0c06be3614eabc254b40ebb27516dd17bee56d24cbe08d0c19e" dependencies = [ "async-trait", "fork-tree", @@ -11302,7 +11388,7 @@ dependencies = [ "num-rational", "num-traits", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-consensus-epochs", @@ -11317,6 +11403,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", + "sp-crypto-hashing", "sp-inherents", "sp-keystore", "sp-runtime", @@ -11326,9 +11413,9 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a78a543d8d2e8d9a6a8b60f16ac12e6fbeffbc2322ef8fa139f733ce53ccaa8" +checksum = "ec114d8e12b82b298abdfbca76e7aac3af42865510dfb0f92fd3992e7edbb383" dependencies = [ "futures", "jsonrpsee", @@ -11349,18 +11436,18 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" -version = "10.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3709a96723feaeb7a7ca0d3f7995d084029f8effeeb09d45975a8aa3ba1a63b" +checksum = "5a49993da0847cf1ef84184e24e8d95f71efac2e940556678bf9e45a8fd0a47f" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fnv", "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-consensus", "sc-network", @@ -11374,25 +11461,27 @@ dependencies = [ "sp-consensus", "sp-consensus-beefy", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-mmr-primitives", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", "wasm-timer", ] [[package]] name = "sc-consensus-beefy-rpc" -version = "10.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1699fe1791dd985a5dd6075c84136027eb3e2ccff46d3e5273fdbd5b246f763" +checksum = "179b561aa302c0a5a572c5484a50f85e4ccd55025fc14daddabf5fe16e8150e1" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-consensus-beefy", "sc-rpc", "serde", @@ -11404,9 +11493,9 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eafc0534bb118f614fc50fe066e423dbecfedf816cd9c43e0b492e30c1782c8" +checksum = "e892ae8bf5faa9042b6ec46396db1b4d9ded180a5f82afe3236fdebe0195f850" dependencies = [ "fork-tree", "parity-scale-codec", @@ -11418,12 +11507,12 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" -version = "0.16.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cbc5db21ea2c4ba65b23315e73e69e8155630fb47c84b93d40b0e759c9d86d" +checksum = "e19945689693bbea950220bf7af1c79a2f70f5f37b97f7e6d136dcaf2b34f4a5" dependencies = [ - "ahash 0.8.6", - "array-bytes 6.2.0", + "ahash 0.8.11", + "array-bytes 6.2.3", "async-trait", "dyn-clone", "finality-grandpa", @@ -11432,8 +11521,8 @@ dependencies = [ "futures-timer", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -11441,6 +11530,7 @@ dependencies = [ "sc-network", "sc-network-common", "sc-network-gossip", + "sc-network-sync", "sc-telemetry", "sc-transaction-pool-api", "sc-utils", @@ -11452,6 +11542,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", + "sp-crypto-hashing", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -11460,9 +11551,9 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" -version = "0.16.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c545dac29d5dd002170e063ca0725be95ef653be135d251f91dbe053f63173" +checksum = "68cd632a2a33d82e67cfd57dda6d966a6e25df08a4698c8d6ea7010515c5aebc" dependencies = [ "finality-grandpa", "futures", @@ -11481,9 +11572,9 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" -version = "0.32.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7577e49019ece17432c51ddbd4f6b02829b1f784a72b7064855ad70dc08b3f" +checksum = "c0741690ea4a51823f2828a545d8df184d5e0b526ca306c467be557dfac1d074" dependencies = [ "assert_matches", "async-trait", @@ -11517,9 +11608,9 @@ dependencies = [ [[package]] name = "sc-consensus-slots" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2059681962e33394682627e7bd7245b5094236594f5c97c4c96988d901bda534" +checksum = "80b431251c43b5af64b0f2758a387061f53fa045bdbf97d7353fe06aa9ddfb7b" dependencies = [ "async-trait", "futures", @@ -11541,13 +11632,14 @@ dependencies = [ [[package]] name = "sc-executor" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225f2ad733bc7234a6638d5203624194824b2f78ab631bc911223f536a66b9c8" +checksum = "7b8f8ddc63df8219768b729f9098ecd4362d2756b40784071cd44c3041f1d51d" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-executor-common", + "sc-executor-polkavm", "sc-executor-wasmtime", "schnellru", "sp-api", @@ -11564,10 +11656,11 @@ dependencies = [ [[package]] name = "sc-executor-common" -version = "0.26.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "169c1cfe81ba0e0d44ab4ada1600e30b6a9de588c792db73e32a854a6e3e1a87" +checksum = "00308c10173ec6446ccc2b96cd3a3037e64c94a424f94daa8c96f288794f4d34" dependencies = [ + "polkavm", "sc-allocator", "sp-maybe-compressed-blob", "sp-wasm-interface", @@ -11575,17 +11668,29 @@ dependencies = [ "wasm-instrument", ] +[[package]] +name = "sc-executor-polkavm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63b9c814d3a94df7a323d728a6961a3b9ec8c5c5979eb858ec098ddf2838cfc0" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface", +] + [[package]] name = "sc-executor-wasmtime" -version = "0.26.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9167d733e928c528273be63b905ec750cfda85d740453071463da69f7d633bc" +checksum = "fa37286464bd16146c612e3193a56df728815d23f9bf0faac7df898c0944c87f" dependencies = [ "anyhow", "cfg-if", "libc", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "rustix 0.36.17", "sc-allocator", "sc-executor-common", @@ -11596,9 +11701,9 @@ dependencies = [ [[package]] name = "sc-informant" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7189a0b95fe5d79895a107c6c057bc9351cd9c867552200815199cde25bcdb9d" +checksum = "2e9005c37100c6ea2b06668f72ba5bc927b5a2445ed26b008ddf1875998dea41" dependencies = [ "ansi_term", "futures", @@ -11607,18 +11712,19 @@ dependencies = [ "sc-client-api", "sc-network", "sc-network-common", + "sc-network-sync", "sp-blockchain", "sp-runtime", ] [[package]] name = "sc-keystore" -version = "22.0.0" +version = "28.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abecdf9778fccc254c0b5e227ea8b90fd59247044a30ad293a068b180427d244" +checksum = "3ef7283da5d643ef89ed094e1b23451ec70386a9474d337cdaa0ef81870bb2d4" dependencies = [ - "array-bytes 6.2.0", - "parking_lot 0.12.1", + "array-bytes 6.2.3", + "parking_lot 0.12.3", "serde_json", "sp-application-crypto", "sp-core", @@ -11628,13 +11734,14 @@ dependencies = [ [[package]] name = "sc-mixnet" -version = "0.1.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53ea71ec60601c18d6adcaf7a62698fc2e886c16dc8fdf8d61b3b76244dea38" +checksum = "248d9be75de68e34f6490065c398b8177ff967902d93e6b88527a0e8c00903ad" dependencies = [ "array-bytes 4.2.0", "arrayvec 0.7.4", "blake2 0.10.6", + "bytes", "futures", "futures-timer", "libp2p-identity", @@ -11642,7 +11749,7 @@ dependencies = [ "mixnet", "multiaddr", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-network", "sc-transaction-pool-api", @@ -11657,11 +11764,11 @@ dependencies = [ [[package]] name = "sc-network" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01f519592a971199c486d412dbf38ba54096857080bf4b9d29c9ffabcfee3745" +checksum = "4067423488686ff78561ed0d32ac7e2617edd31219088b1322e85e945e62de29" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "asynchronous-codec", @@ -11676,10 +11783,10 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "partial_sort", "pin-project", - "rand 0.8.5", + "rand", "sc-client-api", "sc-network-common", "sc-utils", @@ -11692,6 +11799,8 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", + "tokio-stream", "unsigned-varint", "wasm-timer", "zeroize", @@ -11699,16 +11808,16 @@ dependencies = [ [[package]] name = "sc-network-bitswap" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fe63a55e03d8bc796ff1e94e7fb62a62acfd7a80a47865a97b55c13371c3e05" +checksum = "8dacf210f4e36e53dc3d3ff1cfd72e4378eb973568c261e7c62bc8daaec9f945" dependencies = [ "async-channel 1.9.0", "cid", "futures", "libp2p-identity", "log", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -11720,9 +11829,9 @@ dependencies = [ [[package]] name = "sc-network-common" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d236686d15275e4aa49ca929a06fb6fac28aa70e35ee185b981036c149f9e9d" +checksum = "551dba7ce65d136788c3154044fb425e2cb6e883d20c3cd25c0720a5b5251ed4" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -11738,17 +11847,18 @@ dependencies = [ [[package]] name = "sc-network-gossip" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b884a9f7cd348c4c1899c0bbf95237e39dffba4baec48d4b98c1046f6bb04fa5" +checksum = "06e36f8665cba733bd0690e864ef59cb87627120e57607b768e6e7cf30cecd20" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", "futures", "futures-timer", "libp2p", "log", "sc-network", "sc-network-common", + "sc-network-sync", "schnellru", "sp-runtime", "substrate-prometheus-endpoint", @@ -11757,17 +11867,17 @@ dependencies = [ [[package]] name = "sc-network-light" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac888fd720ef8bb2ff7d2b7f7b2e54d17bb85a417cf1e1b6f0f64f7e644936d" +checksum = "d4c4a77832e7d86e2b8f579339a47ebc16eec560bb4d62c42f0daad10700a512" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "async-channel 1.9.0", "futures", "libp2p-identity", "log", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-network", @@ -11779,11 +11889,11 @@ dependencies = [ [[package]] name = "sc-network-sync" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10c697aa8f52cf194b9f00113a7d0d3ce5d1456bedd6169a9caae10737f02907" +checksum = "b7dfdaf49edeaa23ae0da1a9bf6ea3e308c11822cb3a853996f1203b06249411" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "async-channel 1.9.0", "async-trait", "fork-tree", @@ -11793,7 +11903,7 @@ dependencies = [ "log", "mockall", "parity-scale-codec", - "prost", + "prost 0.12.6", "prost-build", "sc-client-api", "sc-consensus", @@ -11810,22 +11920,24 @@ dependencies = [ "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "tokio", "tokio-stream", ] [[package]] name = "sc-network-transactions" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7c9bfc7b58ce229d1512158b8f13dc849ec24857d1c29a41a867fb8afb5c09" +checksum = "1b3824e7a1aa29ed3d2294810c8e018a6df3798eec236f3043a62945daf7d9b1" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "futures", "libp2p", "log", "parity-scale-codec", "sc-network", "sc-network-common", + "sc-network-sync", "sc-utils", "sp-consensus", "sp-runtime", @@ -11834,11 +11946,11 @@ dependencies = [ [[package]] name = "sc-offchain" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47950facab8dedf71c39667ccce8834252944e8f091f3a3bcdfc0b4503573da4" +checksum = "d9d03fd90a535f30badaee9763a2124b9c68dae406e29497f406bfd45cbc7eac" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "bytes", "fnv", "futures", @@ -11850,8 +11962,8 @@ dependencies = [ "num_cpus", "once_cell", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "sc-client-api", "sc-network", "sc-network-common", @@ -11869,9 +11981,9 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" -version = "0.16.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "221845dce4e7adb57eca5f73318699b377cff29aef92a586e71aa5cef62f879b" +checksum = "f680a0bed67dab19898624246376ba85d5f70a89859ba030830aacd079c28d3c" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -11879,15 +11991,15 @@ dependencies = [ [[package]] name = "sc-rpc" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb277280b6b3519e4a2e693b75d4ca516ebb4a928162e6a1791b217b2be60c9f" +checksum = "6d796d75b22785b09c58478f1418b75c9787d598a0d2ab8edbd0072731ec4aaa" dependencies = [ "futures", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-block-builder", "sc-chain-spec", "sc-client-api", @@ -11912,9 +12024,9 @@ dependencies = [ [[package]] name = "sc-rpc-api" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def499ac717db8442fe18543e52330d5f105027b666df73c0b38e81e9105078b" +checksum = "3705feca378ef3f3f84fb337480405a611a15c8637b2449ed514ca63765e421b" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -11933,11 +12045,14 @@ dependencies = [ [[package]] name = "sc-rpc-server" -version = "10.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e8083e1b026dcf397f8c1122b3fba6cc744c6962996df6a30e0fb75223f7637" +checksum = "65f705946ae375fc47ee9a2e2df0b7e339a1fb8c8eb5c9eb6f206619d27946a7" dependencies = [ + "futures", + "governor", "http", + "hyper", "jsonrpsee", "log", "serde_json", @@ -11949,26 +12064,29 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198ea9287111b4060ce1d70dce99804b99d1a92b5fb23a79d94bf0cb460ca3ce" +checksum = "66dcea3fe5f0bcbaf08d6a42e877ae8f50b9cdbc87f65f7c79fbe5003e3969dc" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "futures", "futures-util", "hex", "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", + "rand", "sc-chain-spec", "sc-client-api", + "sc-rpc", "sc-transaction-pool-api", "sc-utils", "serde", "sp-api", "sp-blockchain", "sp-core", + "sp-rpc", "sp-runtime", "sp-version", "thiserror", @@ -11978,9 +12096,9 @@ dependencies = [ [[package]] name = "sc-service" -version = "0.32.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3623ae5bd7b089da9796a3f1edd974c94f34dd4b4b527146662ef409ae9cd38c" +checksum = "42678fb737ea101658a8288cd3fcc0bff59ef40cd1a1c4f4d4042c3fa17bae41" dependencies = [ "async-trait", "directories", @@ -11990,10 +12108,9 @@ dependencies = [ "jsonrpsee", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", - "sc-block-builder", + "rand", "sc-chain-spec", "sc-client-api", "sc-client-db", @@ -12016,6 +12133,7 @@ dependencies = [ "sc-transaction-pool", "sc-transaction-pool-api", "sc-utils", + "schnellru", "serde", "serde_json", "sp-api", @@ -12043,26 +12161,25 @@ dependencies = [ [[package]] name = "sc-state-db" -version = "0.27.0" +version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3635fe572adfe796886e18910c8b94f7ce67f9ae3e2c161176e122ddf0baa7e4" +checksum = "9863fb81595a25b908d7143c1a3e162d237e67890088363df4a121fe37c49d08" dependencies = [ "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", ] [[package]] name = "sc-storage-monitor" -version = "0.13.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9acfc934aa5b0185e861ce81245685086c7231fcb2b582da4afc4d0bd62a98" +checksum = "d54aa61816b82fbe136f3c39b40ecb27bc7302c0c9039cc426b2c6f492666ac5" dependencies = [ "clap", "fs4", "log", - "sc-client-db", "sp-core", "thiserror", "tokio", @@ -12070,9 +12187,9 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe1efc0811813b73b9bb6eccc630ccd43d13b4306255a41ef55b9304d32e64c2" +checksum = "8fa4c5d5add3ee03e2b0aa02c827b8e3bc307be7c403eb534f95d5c81d372f78" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -12090,37 +12207,39 @@ dependencies = [ [[package]] name = "sc-sysinfo" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60967710b85e650652832df73915b64c315f7b437e53c4635bd26106d6d05c21" +checksum = "f098da1a83dc5b4e69ef66f7dfc5c0a82bc63defe8dcb0aaa1819e9b2bd6d744" dependencies = [ + "derive_more", "futures", "libc", "log", - "rand 0.8.5", + "rand", "rand_pcg", "regex", "sc-telemetry", "serde", "serde_json", "sp-core", + "sp-crypto-hashing", "sp-io", "sp-std", ] [[package]] name = "sc-telemetry" -version = "12.0.0" +version = "17.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e214e4d46cac02321bc3dc6fd72f019ac10819d1ac8f24f6935a4ae74ef273" +checksum = "6c6807ebd9f43ab628931842d3aaa9404ddfd07013e9c7027ca603f496939577" dependencies = [ "chrono", "futures", "libp2p", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "sc-utils", "serde", "serde_json", @@ -12130,17 +12249,18 @@ dependencies = [ [[package]] name = "sc-tracing" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83bcd745ea216ba0c0a344cff2c41b12e27846d5fca4b28f56ff77e1d3ff3634" +checksum = "83e8f5e8eb36f887dba06e1392717e27e4edf12d23d5220dba8ee851de8b174e" dependencies = [ "ansi_term", - "atty", "chrono", + "is-terminal", "lazy_static", "libc", "log", - "parking_lot 0.12.1", + "parity-scale-codec", + "parking_lot 0.12.3", "regex", "rustc-hash", "sc-client-api", @@ -12160,21 +12280,21 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" -version = "10.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c4ae9e4f957d7274ac6b59d667b66262caf6482dbb1b63f1c370528626b1272" +checksum = "151cdf86d79abf22cf2a240a7ca95041c908dbd96c2ae9a818073042aa210964" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "sc-transaction-pool" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f6db45a057a619670e07deefb4e69aab83386f076363db424907da2b2e82590" +checksum = "d56300f466670067cca98a931b0b6cbc8b018c0d296eb915c1473bac45b7cd73" dependencies = [ "async-trait", "futures", @@ -12182,7 +12302,7 @@ dependencies = [ "linked-hash-map", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sc-client-api", "sc-transaction-pool-api", "sc-utils", @@ -12190,6 +12310,7 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", + "sp-crypto-hashing", "sp-runtime", "sp-tracing", "sp-transaction-pool", @@ -12199,9 +12320,9 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1491607f296bb8cce09a5eb3a03320c60ad52bb8120127b26f69c32bcaccd8f2" +checksum = "3609025d39a1b75f1ee4f490dc52e000de144948a73cacd788f5995df5ebe8bf" dependencies = [ "async-trait", "futures", @@ -12216,25 +12337,25 @@ dependencies = [ [[package]] name = "sc-utils" -version = "11.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a4769c82dde62b9243dcc166be52e0c5d2d61cf2599923271118d9c8b997b1" +checksum = "1863d482be044f4768ef5de6119dc70b5e31e6e9f71ad225c177474d6540e424" dependencies = [ "async-channel 1.9.0", "futures", "futures-timer", "lazy_static", "log", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "prometheus", "sp-arithmetic", ] [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if", @@ -12246,11 +12367,11 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", @@ -12258,55 +12379,56 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "schnellru" -version = "0.2.1" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +checksum = "c9a8ef13a93c54d20580de1e5c413e624e53121d42fc7e2c11d10ef7f8b02367" dependencies = [ - "ahash 0.8.6", + "ahash 0.8.11", "cfg-if", "hashbrown 0.13.2", ] [[package]] name = "schnorrkel" -version = "0.9.1" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "021b403afe70d81eea68f6ea12f6b3c9588e5d536a94c3bf80f15e7faa267862" +checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" dependencies = [ "arrayref", - "arrayvec 0.5.2", - "curve25519-dalek 2.1.3", - "getrandom 0.1.16", - "merlin 2.0.1", - "rand 0.7.3", - "rand_core 0.5.1", - "sha2 0.8.2", - "subtle 2.4.1", + "arrayvec 0.7.4", + "curve25519-dalek-ng", + "merlin", + "rand_core 0.6.4", + "sha2 0.9.9", + "subtle-ng", "zeroize", ] [[package]] name = "schnorrkel" -version = "0.10.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "844b7645371e6ecdf61ff246ba1958c29e802881a749ae3fb1993675d210d28d" +checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ + "aead", "arrayref", "arrayvec 0.7.4", - "curve25519-dalek-ng", - "merlin 3.0.0", + "curve25519-dalek 4.1.2", + "getrandom_or_panic", + "merlin", "rand_core 0.6.4", - "sha2 0.9.9", - "subtle-ng", + "serde_bytes", + "sha2 0.10.8", + "subtle 2.5.0", "zeroize", ] @@ -12322,80 +12444,54 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152" -[[package]] -name = "sct" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] - [[package]] name = "sct" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.5", + "ring 0.17.8", "untrusted 0.9.0", ] -[[package]] -name = "sdp" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d22a5ef407871893fd72b4562ee15e4742269b173959db4b8df6f538c414e13" -dependencies = [ - "rand 0.8.5", - "substring", - "thiserror", - "url", -] - [[package]] name = "sec1" -version = "0.3.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ - "base16ct 0.1.1", - "der 0.6.1", + "base16ct", + "der", "generic-array 0.14.7", - "pkcs8 0.9.0", - "subtle 2.4.1", + "pkcs8", + "serdect", + "subtle 2.5.0", "zeroize", ] [[package]] -name = "sec1" -version = "0.7.3" +name = "seccompiler" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +checksum = "345a3e4dddf721a478089d4697b83c6c0a8f5bf16086f6c13397e4534eb6e2e5" dependencies = [ - "base16ct 0.2.0", - "der 0.7.8", - "generic-array 0.14.7", - "pkcs8 0.10.2", - "subtle 2.4.1", - "zeroize", + "libc", ] [[package]] name = "secp256k1" -version = "0.24.3" +version = "0.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" +checksum = "d24b59d129cdadea20aea4fb2352fa053712e5d713eee47d700cd4b2bc002f10" dependencies = [ "secp256k1-sys", ] [[package]] name = "secp256k1-sys" -version = "0.6.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" +checksum = "e5d1746aae42c19d583c3c1a8c646bfad910498e2051c551a7f2e3c0c9fbb7eb" dependencies = [ "cc", ] @@ -12411,11 +12507,11 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", "core-foundation", "core-foundation-sys", "libc", @@ -12424,9 +12520,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -12443,9 +12539,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" dependencies = [ "serde", ] @@ -12458,29 +12554,38 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.193" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] +[[package]] +name = "serde_bytes" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" -version = "1.0.193" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", @@ -12489,10 +12594,20 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.4" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serdect" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" dependencies = [ + "base16ct", "serde", ] @@ -12506,7 +12621,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -12520,18 +12635,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "sha2" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" -dependencies = [ - "block-buffer 0.7.3", - "digest 0.8.1", - "fake-simd", - "opaque-debug 0.2.3", -] - [[package]] name = "sha2" version = "0.9.9" @@ -12542,7 +12645,7 @@ dependencies = [ "cfg-if", "cpufeatures", "digest 0.9.0", - "opaque-debug 0.3.0", + "opaque-debug 0.3.1", ] [[package]] @@ -12596,29 +12699,19 @@ dependencies = [ [[package]] name = "shlex" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" dependencies = [ "libc", ] -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - [[package]] name = "signature" version = "2.2.0" @@ -12642,6 +12735,12 @@ dependencies = [ "wide", ] +[[package]] +name = "simple-mermaid" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "620a1d43d70e142b1d46a929af51d44f383db9c7a2ec122de2cd992ccfcf3c18" + [[package]] name = "siphasher" version = "0.3.11" @@ -12665,9 +12764,9 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e902c6b7e8f86718aee7989d6c8ea851d9772cb54a3389f2d729d8df41167ec" +checksum = "ada4c82b85daa6134837918889b341716e4918c608b3cc5345ae67ea85a187c6" dependencies = [ "enumn", "parity-scale-codec", @@ -12678,18 +12777,18 @@ dependencies = [ [[package]] name = "slotmap" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342" +checksum = "dbff4acf519f630b3a3ddcfaea6c06b42174d9a44bc70c620e9ed1649d58b82a" dependencies = [ "version_check", ] [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smol" @@ -12717,10 +12816,10 @@ dependencies = [ "arrayvec 0.7.4", "async-lock 2.8.0", "atomic-take", - "base64 0.21.5", + "base64 0.21.7", "bip39", "blake2-rfc", - "bs58 0.5.0", + "bs58 0.5.1", "chacha20", "crossbeam-queue", "derive_more", @@ -12730,21 +12829,21 @@ dependencies = [ "fnv", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.2", + "hashbrown 0.14.5", "hex", "hmac 0.12.1", "itertools 0.11.0", "libsecp256k1", - "merlin 3.0.0", + "merlin", "no-std-net", "nom", "num-bigint", "num-rational", "num-traits", - "pbkdf2 0.12.2", + "pbkdf2", "pin-project", "poly1305", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "ruzstd", "schnorrkel 0.10.2", @@ -12758,7 +12857,7 @@ dependencies = [ "soketto", "twox-hash", "wasmi", - "x25519-dalek 2.0.0", + "x25519-dalek 2.0.1", "zeroize", ] @@ -12770,7 +12869,7 @@ checksum = "256b5bad1d6b49045e95fe87492ce73d5af81545d8b4d8318a872d2007024c33" dependencies = [ "async-channel 1.9.0", "async-lock 2.8.0", - "base64 0.21.5", + "base64 0.21.7", "blake2-rfc", "derive_more", "either", @@ -12779,15 +12878,15 @@ dependencies = [ "futures-channel", "futures-lite 1.13.0", "futures-util", - "hashbrown 0.14.2", + "hashbrown 0.14.5", "hex", "itertools 0.11.0", "log", "lru 0.11.1", "no-std-net", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "pin-project", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "serde", "serde_json", @@ -12800,25 +12899,25 @@ dependencies = [ [[package]] name = "snap" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" +checksum = "1b6b67fb9a61334225b5b790716f609cd58395f895b3fe8b328786812a40bc3b" [[package]] name = "snow" -version = "0.9.4" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58021967fd0a5eeeb23b08df6cc244a4d4a5b4aec1d27c9e02fad1a58b4cd74e" +checksum = "850948bee068e713b8ab860fe1adc4d109676ab4c3b621fd8147f06b261f2f85" dependencies = [ - "aes-gcm 0.10.3", + "aes-gcm", "blake2 0.10.6", "chacha20poly1305", - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "rand_core 0.6.4", - "ring 0.17.5", + "ring 0.17.8", "rustc_version", "sha2 0.10.8", - "subtle 2.4.1", + "subtle 2.5.0", ] [[package]] @@ -12833,12 +12932,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -12854,17 +12953,17 @@ dependencies = [ "http", "httparse", "log", - "rand 0.8.5", + "rand", "sha-1", ] [[package]] name = "sp-api" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f582f92ce47c86e4ffffe81fdd5120fea7c850dc0800653a7fa203bcc1532335" +checksum = "cb3fb2cdf7ee9b8d6ec7c2d8740b1a506e393dc18c7c2776764b47136d72dce7" dependencies = [ - "hash-db 0.16.0", + "hash-db", "log", "parity-scale-codec", "scale-info", @@ -12873,6 +12972,7 @@ dependencies = [ "sp-externalities", "sp-metadata-ir", "sp-runtime", + "sp-runtime-interface", "sp-state-machine", "sp-std", "sp-trie", @@ -12882,24 +12982,24 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" -version = "12.0.0" +version = "17.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a896941b2d27365a6f937ebce11e36d55132dc32104f6a48b4cd765b55efd252" +checksum = "63a5680d94c55e1c7dc54e9e09b4827314fab44f9300f0be170898dc402318de" dependencies = [ "Inflector", "blake2 0.10.6", - "expander 2.0.0", - "proc-macro-crate 1.3.1", + "expander 2.1.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "sp-application-crypto" -version = "27.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a93da025616ab59639f8e378df579c5aaa2c8b9999f328a0239156a57c991b53" +checksum = "13ca6121c22c8bd3d1dce1f05c479101fd0d7b159bef2a3e8c834138d839c75c" dependencies = [ "parity-scale-codec", "scale-info", @@ -12911,9 +13011,9 @@ dependencies = [ [[package]] name = "sp-arithmetic" -version = "20.0.0" +version = "25.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f80b5c16afb61dde1037a469d570adcc686440036429e50abe2301ba9d61aad5" +checksum = "910c07fa263b20bf7271fdd4adcb5d3217dfdac14270592e0780223542e7e114" dependencies = [ "integer-sqrt", "num-traits", @@ -12926,9 +13026,9 @@ dependencies = [ [[package]] name = "sp-authority-discovery" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e204d85bad6f02a5ae8fbba83c365e20459e979fd69db5575ba4b3ea1025ab3c" +checksum = "5ab47c385784b3f9646a21d5dcb236399083d77420a1269e70c04772336c519f" dependencies = [ "parity-scale-codec", "scale-info", @@ -12940,9 +13040,9 @@ dependencies = [ [[package]] name = "sp-block-builder" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cd16df3d1cdad862d3e764f10f7675876b011e032907423fdfa377ae2ec8575" +checksum = "97e155e388d7e41c39a27f40f50c2517facdbf20dde4a73f40ec8f1f30ce190e" dependencies = [ "sp-api", "sp-inherents", @@ -12952,14 +13052,14 @@ dependencies = [ [[package]] name = "sp-blockchain" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4932b97cde61874f395bab9b02443e3bd2046943abb280b63f83da9d0b623ea7" +checksum = "d00084ddd62a3bad1fc4c04cdb1cdbcbb55d813dbd4e42d52e42e8b6599fb210" dependencies = [ "futures", "log", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "schnellru", "sp-api", "sp-consensus", @@ -12971,9 +13071,9 @@ dependencies = [ [[package]] name = "sp-consensus" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c5d7170fb7cfb18024ef7eeb40d272d22b9c3587d85cde2d091e8463b397f06" +checksum = "ed6f1ae58a74d619bd2c1d7939b4aa805f4226c7454ec3591c8a59fb0cc6477f" dependencies = [ "async-trait", "futures", @@ -12987,9 +13087,9 @@ dependencies = [ [[package]] name = "sp-consensus-aura" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643a7c486a645f398d219d1fbcc8a416cad5018164a212fefde5c2ef00a182e4" +checksum = "334d0088b7de70a94d58e7e93acd8d5101b35fadca7e19fa26788203b22e309b" dependencies = [ "async-trait", "parity-scale-codec", @@ -13005,9 +13105,9 @@ dependencies = [ [[package]] name = "sp-consensus-babe" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "268f9b2e36d4e136c09ad87876cdcfd7ff734cb5917f333fefebff248f95a24f" +checksum = "eb593ec8ec674a583d6fc5386b7f8964a9db78dcaabc0595559145a4053c9f6c" dependencies = [ "async-trait", "parity-scale-codec", @@ -13025,9 +13125,9 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" -version = "10.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e18fe984ea745727e645c43d6a955bc471b3bcd36aa8d260c3bd0deeada0c5" +checksum = "7e2b03bc552702dd20fd3dad01631b13ca3e62e814ad278fe3012f5e3bb3e100" dependencies = [ "lazy_static", "parity-scale-codec", @@ -13036,7 +13136,9 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-io", + "sp-keystore", "sp-mmr-primitives", "sp-runtime", "sp-std", @@ -13045,9 +13147,9 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" -version = "10.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28bbee685900110419913f281ce0f29457fbc17418f00d15f0212c8043aba167" +checksum = "71df706a104a752101b52f12cca7f5b7ffe1ca6ce9b4b1eb8c5d04356f248fa5" dependencies = [ "finality-grandpa", "log", @@ -13064,9 +13166,9 @@ dependencies = [ [[package]] name = "sp-consensus-slots" -version = "0.29.0" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "895b0c176d4eead833ddee5251d3cccbaeb0191ca3f33f84b11d347bebc6e21f" +checksum = "e0a5c47c52ad58aa349f7c13cb356ab45c32964ee28354c27fd6e4b417cb2644" dependencies = [ "parity-scale-codec", "scale-info", @@ -13077,37 +13179,38 @@ dependencies = [ [[package]] name = "sp-core" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9ebb090ead698a6df04347c86a31ba91a387edb8a58534ec70c4f977d1e1e87" +checksum = "26d7a0fd8f16dcc3761198fc83be12872f823b37b749bc72a3a6a1f702509366" dependencies = [ - "array-bytes 6.2.0", + "array-bytes 6.2.3", "bitflags 1.3.2", "blake2 0.10.6", "bounded-collections", - "bs58 0.5.0", + "bs58 0.5.1", "dyn-clonable", "ed25519-zebra 3.1.0", "futures", - "hash-db 0.16.0", + "hash-db", "hash256-std-hasher", "impl-serde", - "lazy_static", + "itertools 0.10.5", + "k256", "libsecp256k1", "log", - "merlin 2.0.1", + "merlin", + "parity-bip39", "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "paste", "primitive-types", - "rand 0.8.5", - "regex", + "rand", "scale-info", - "schnorrkel 0.9.1", + "schnorrkel 0.11.4", "secp256k1", "secrecy", "serde", - "sp-core-hashing", + "sp-crypto-hashing", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -13116,17 +13219,16 @@ dependencies = [ "ss58-registry", "substrate-bip39", "thiserror", - "tiny-bip39", "tracing", "w3f-bls", "zeroize", ] [[package]] -name = "sp-core-hashing" -version = "13.0.0" +name = "sp-crypto-hashing" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8524f01591ee58b46cd83c9dbc0fcffd2fd730dabec4f59326cd58a00f17e2" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" dependencies = [ "blake2b_simd", "byteorder", @@ -13137,42 +13239,42 @@ dependencies = [ ] [[package]] -name = "sp-core-hashing-proc-macro" -version = "13.0.0" +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ce3e6931303769197da81facefa86159fa1085dcd96ecb7e7407b5b93582a0" +checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" dependencies = [ "quote", - "sp-core-hashing", - "syn 2.0.39", + "sp-crypto-hashing", + "syn 2.0.66", ] [[package]] name = "sp-database" -version = "9.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c6e8c710d6a71512af6f42d9dba9c3d1f6ad793846480babf459bbde3d60a94" +checksum = "722cbecdbf5b94578137dbd07feb51e95f7de221be0c1ff4dcfe0bb4cd986929" dependencies = [ "kvdb", - "parking_lot 0.12.1", + "parking_lot 0.12.3", ] [[package]] name = "sp-debug-derive" -version = "12.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50535e1a5708d3ba5c1195b59ebefac61cc8679c2c24716b87a86e8b7ed2e4a1" +checksum = "48d09fa0a5f7299fb81ee25ae3853d26200f7a348148aed6de76be905c007dbe" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "sp-externalities" -version = "0.23.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884d05160bc89d0943d1c9fb8006c3d44b80f37f8af607aeff8d4d9cc82e279a" +checksum = "a1d6a4572eadd4a63cff92509a210bf425501a0c5e76574b30a366ac77653787" dependencies = [ "environmental", "parity-scale-codec", @@ -13182,9 +13284,9 @@ dependencies = [ [[package]] name = "sp-genesis-builder" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0cb71d40ad47e40bdcce5ae5531c7d7ba579cd495a0e0413642fb063fa66f84" +checksum = "16a1192b502d38c6d17b1005a7b3e7a6ab835df996803968ae3be9e8f7399ee4" dependencies = [ "serde_json", "sp-api", @@ -13194,9 +13296,9 @@ dependencies = [ [[package]] name = "sp-inherents" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604229aa145be0cff853b47ffed8bc2c62eb08ec6974d6307b9a559c378e6dc5" +checksum = "3b5e46ccc5848542648dcf05f882e41de2e341d0eeca97ff2b7dfad0f38e8500" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -13209,18 +13311,20 @@ dependencies = [ [[package]] name = "sp-io" -version = "27.0.0" +version = "33.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ced350da15e8ba3a106206840acc42a6d3eb0d7e8bf7aa43ab00eac0bdf956f" +checksum = "3e09bba780b55bd9e67979cd8f654a31e4a6cf45426ff371394a65953d2177f2" dependencies = [ "bytes", "ed25519-dalek", "libsecp256k1", "log", "parity-scale-codec", + "polkavm-derive 0.9.1", "rustversion", "secp256k1", "sp-core", + "sp-crypto-hashing", "sp-externalities", "sp-keystore", "sp-runtime-interface", @@ -13234,11 +13338,10 @@ dependencies = [ [[package]] name = "sp-keyring" -version = "28.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "655ec0b35cb9cb9029fb323aa676b07d58deb872cecc7566e50278409a00ee95" +checksum = "a07a31da596d705b3a3458d784a897af7fd2f8090de436dc386a112e8ea7f34f" dependencies = [ - "lazy_static", "sp-core", "sp-runtime", "strum 0.24.1", @@ -13246,22 +13349,21 @@ dependencies = [ [[package]] name = "sp-keystore" -version = "0.31.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8ec5ebbba70bee83d79c3fe5e49f12df0a4bb6029858ddf9a15eea7539a592" +checksum = "bdbab8b61bd61d5f8625a0c75753b5d5a23be55d3445419acd42caf59cf6236b" dependencies = [ "parity-scale-codec", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "sp-core", "sp-externalities", - "thiserror", ] [[package]] name = "sp-maybe-compressed-blob" -version = "9.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8846768f036429227e49f6ab523fbee4bc6edfee278a361bf27999590fe020d4" +checksum = "f0c768c11afbe698a090386876911da4236af199cd38a5866748df4d8628aeff" dependencies = [ "thiserror", "zstd 0.12.4", @@ -13269,9 +13371,9 @@ dependencies = [ [[package]] name = "sp-metadata-ir" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca9ff0e522a74725ac92f009d38deeb12e880f5296afbd78a6c6b970b773278" +checksum = "fa0b5e87e56c1bb26d9524d48dd127121d630f895bd5914a34f0b017489f7c1d" dependencies = [ "frame-metadata", "parity-scale-codec", @@ -13281,9 +13383,9 @@ dependencies = [ [[package]] name = "sp-mixnet" -version = "0.1.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf61f28ca97aab6c21a3c6e0ed496e60d505e5de1f43fd4ba748c9afaa4fc85" +checksum = "22d9da31673ad5771faf8cd0e62ab0c183ea71a630d187b926bc52af379cb1de" dependencies = [ "parity-scale-codec", "scale-info", @@ -13294,9 +13396,9 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3b33c20a4b1dd5a0069ced6997078a2af5d625f2c53d1b69bef9e131f42d77" +checksum = "518fcd8710618d104e04c9e63e697d3406180afbe55cc5400168019647fc5880" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -13313,9 +13415,9 @@ dependencies = [ [[package]] name = "sp-npos-elections" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee3536d7fd990c30864ca545d7bdbee02dc66a92ac2a7a66ab4e21521992a7b" +checksum = "e03ec553bc1a0f4d3aa902d3c5b3cdbe76f8218c642cbca0305722b3f8bbc826" dependencies = [ "parity-scale-codec", "scale-info", @@ -13328,9 +13430,9 @@ dependencies = [ [[package]] name = "sp-offchain" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9310227f043ed99877b0449a683025a7461431a00995dcd6ef423a273d0fd85d" +checksum = "c041d932d7debf1d2e073ecece1425aadae7482689cd4bf148d5886b28bd10d7" dependencies = [ "sp-api", "sp-core", @@ -13339,9 +13441,9 @@ dependencies = [ [[package]] name = "sp-panic-handler" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00e40857ed3e0187f145b037c733545c5633859f1bd1d1b09deb52805fa696a" +checksum = "d8f5a17a0a11de029a8b811cb6e8b32ce7e02183cc04a3e965c383246798c416" dependencies = [ "backtrace", "lazy_static", @@ -13350,9 +13452,9 @@ dependencies = [ [[package]] name = "sp-rpc" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51867fea921f54bbaa2bf505f373559b5f3b80e8d7f38ecb9677f0d3795a3e6a" +checksum = "b26650747f5c204afd8c637df5e882ea912a890cf974fe67c36b430318fc451c" dependencies = [ "rustc-hash", "serde", @@ -13361,19 +13463,21 @@ dependencies = [ [[package]] name = "sp-runtime" -version = "28.0.0" +version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d9c40ff7303e62219b55635e5245d963358cb77d6916250991ebcb82c0be2c6" +checksum = "ec3cb126971e7db2f0fcf8053dce740684c438c7180cfca1959598230f342c58" dependencies = [ + "docify", "either", "hash256-std-hasher", "impl-trait-for-tuples", "log", "parity-scale-codec", "paste", - "rand 0.8.5", + "rand", "scale-info", "serde", + "simple-mermaid", "sp-application-crypto", "sp-arithmetic", "sp-core", @@ -13384,13 +13488,14 @@ dependencies = [ [[package]] name = "sp-runtime-interface" -version = "21.0.0" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f365332922a8cfa98ab00c6d08b1b0f24e159e730dd554e720d950ff3371b1f" +checksum = "e48a675ea4858333d4d755899ed5ed780174aa34fec15953428d516af5452295" dependencies = [ "bytes", "impl-trait-for-tuples", "parity-scale-codec", + "polkavm-derive 0.8.0", "primitive-types", "sp-externalities", "sp-runtime-interface-proc-macro", @@ -13403,22 +13508,23 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" -version = "15.0.0" +version = "18.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2afcbd1bd18d323371111b66b7ac2870bdc1c86c3d7b0dae67b112ca52b4d8" +checksum = "0195f32c628fee3ce1dfbbf2e7e52a30ea85f3589da9fe62a8b816d70fc06294" dependencies = [ "Inflector", - "proc-macro-crate 1.3.1", + "expander 2.1.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "sp-session" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248dd8f49aa96b56bf0a7d513691ddb4194f9359fdb93e94397eabdef1036085" +checksum = "6a61ea4ca90f644da2c25edee711b53b1c0b8d50628ceef372224ea24d252b57" dependencies = [ "parity-scale-codec", "scale-info", @@ -13432,9 +13538,9 @@ dependencies = [ [[package]] name = "sp-staking" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee0feed0137234598bd1f76d0b468c585ea16619ea9ed1acbba82dd24ac79788" +checksum = "4114cde17987eaa2f17b8850a8c856b90364666cdbc920d511e7a1cde0574d24" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -13447,15 +13553,15 @@ dependencies = [ [[package]] name = "sp-state-machine" -version = "0.32.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96e087fa4430befd2047b61d912c9d6fa4eaed408c4b58b46c6e9acd7965f2d3" +checksum = "1eae0eac8034ba14437e772366336f579398a46d101de13dbb781ab1e35e67c5" dependencies = [ - "hash-db 0.16.0", + "hash-db", "log", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "smallvec", "sp-core", "sp-externalities", @@ -13469,40 +13575,41 @@ dependencies = [ [[package]] name = "sp-statement-store" -version = "7.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8654bcd37602b1811414050d34d14f543873bd4e64e50d210a0116b660c600" +checksum = "b90e8440d72e0ae5d273374af3ebe16768d05b40dff1f487835dd2f826ee9568" dependencies = [ - "aes-gcm 0.10.3", - "curve25519-dalek 4.1.1", + "aes-gcm", + "curve25519-dalek 4.1.2", "ed25519-dalek", "hkdf", "parity-scale-codec", - "rand 0.8.5", + "rand", "scale-info", "sha2 0.10.8", "sp-api", "sp-application-crypto", "sp-core", + "sp-crypto-hashing", "sp-externalities", "sp-runtime", "sp-runtime-interface", "sp-std", "thiserror", - "x25519-dalek 2.0.0", + "x25519-dalek 2.0.1", ] [[package]] name = "sp-std" -version = "12.0.0" +version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c78c5a66682568cc7b153603c5d01a2cc8f5c221c7b1e921517a0eef18ae05" +checksum = "12f8ee986414b0a9ad741776762f4083cd3a5128449b982a3919c4df36874834" [[package]] name = "sp-storage" -version = "17.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016f20812cc51bd479cc88d048c35d44cd3adde4accdb159d49d6050f2953595" +checksum = "8dba5791cb3978e95daf99dad919ecb3ec35565604e88cd38d805d9d4981e8bd" dependencies = [ "impl-serde", "parity-scale-codec", @@ -13514,9 +13621,9 @@ dependencies = [ [[package]] name = "sp-timestamp" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004a7f453240db80b2967c0e1c6411836efc7daa7afae98fd16202caa51460e0" +checksum = "64d51fcd008fd5a79d61dba98c7ae89c2460a49dff07001bf1e9b12535d49536" dependencies = [ "async-trait", "parity-scale-codec", @@ -13528,9 +13635,9 @@ dependencies = [ [[package]] name = "sp-tracing" -version = "14.0.0" +version = "16.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d727cb5265641ffbb7d4e42c18b63e29f6cfdbd240aae3bcf093c3d6eb29a19" +checksum = "0351810b9d074df71c4514c5228ed05c250607cba131c1c9d1526760ab69c05c" dependencies = [ "parity-scale-codec", "sp-std", @@ -13541,9 +13648,9 @@ dependencies = [ [[package]] name = "sp-transaction-pool" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7cd2afe89c474339d15d06e73639171ebe4d280be6904d9349072103da21427" +checksum = "0484eaf40c2abda75bda9688298cc8f6e02161176e3aab501207c8ccf4d4b3e1" dependencies = [ "sp-api", "sp-runtime", @@ -13551,9 +13658,9 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" -version = "23.0.0" +version = "29.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ae7c4954431b8479f7b2b6b82f0551cc360a1ee59b6a5276eef86a1099eaed" +checksum = "ba0c99e0852ddd18159c2dc6100c2b5852e49211d8afe373cbce33d1da0050dd" dependencies = [ "async-trait", "parity-scale-codec", @@ -13567,22 +13674,22 @@ dependencies = [ [[package]] name = "sp-trie" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e359b358263cc322c3f678c272a3a519621d9853dcfa1374dfcbdb5f54c6f85" +checksum = "f1aa91ad26c62b93d73e65f9ce7ebd04459c4bad086599348846a81988d6faa4" dependencies = [ - "ahash 0.8.6", - "hash-db 0.16.0", - "hashbrown 0.13.2", + "ahash 0.8.11", + "hash-db", "lazy_static", "memory-db", "nohash-hasher", "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "scale-info", "schnellru", "sp-core", + "sp-externalities", "sp-std", "thiserror", "tracing", @@ -13592,16 +13699,16 @@ dependencies = [ [[package]] name = "sp-version" -version = "26.0.0" +version = "32.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e93da332eba3cb59a65f128da5edd5c70e1475692b45470104e7465b1278471" +checksum = "1c0219b1aeb89e36d13bd43a718920a9087dbb66c567e672c4639cefb2fefc05" dependencies = [ "impl-serde", "parity-scale-codec", "parity-wasm", "scale-info", "serde", - "sp-core-hashing-proc-macro", + "sp-crypto-hashing-proc-macro", "sp-runtime", "sp-std", "sp-version-proc-macro", @@ -13610,21 +13717,21 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" -version = "12.0.0" +version = "13.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49535d8c7184dab46d15639c68374a30cbb1534e392fa09a1ebb059a993ad436" +checksum = "e9bc3fed32d6dacbbbfb28dd1fe0224affbb737cb6cbfca1d9149351c2b69a7d" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "sp-wasm-interface" -version = "18.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d85813d46a22484cdf5e5afddbbe85442dd1b4d84d67a8c7792f92f9f93607" +checksum = "9ef97172c42eb4c6c26506f325f48463e9bc29b2034a587f1b9e48c751229bee" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -13636,16 +13743,16 @@ dependencies = [ [[package]] name = "sp-weights" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "751676c1263e7f3600af16bad26a7978a816bc532676fe05eafa23b862c05b9e" +checksum = "9af6c661fe3066b29f9e1d258000f402ff5cc2529a9191972d214e5871d0ba87" dependencies = [ + "bounded-collections", "parity-scale-codec", "scale-info", "serde", "smallvec", "sp-arithmetic", - "sp-core", "sp-debug-derive", "sp-std", ] @@ -13658,7 +13765,7 @@ checksum = "c87e960f4dca2788eeb86bbdde8dd246be8948790b7618d656e68f9b720a86e8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -13685,30 +13792,29 @@ dependencies = [ ] [[package]] -name = "spki" -version = "0.6.0" +name = "spinning_top" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" dependencies = [ - "base64ct", - "der 0.6.1", + "lock_api", ] [[package]] name = "spki" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", - "der 0.7.8", + "der", ] [[package]] name = "ss58-registry" -version = "1.44.0" +version = "1.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35935738370302d5e33963665b77541e4b990a3e919ec904c837a56cfc891de1" +checksum = "4743ce898933fbff7bbf414f497c459a782d496269644b3d650a398ae6a487ba" dependencies = [ "Inflector", "num-format", @@ -13727,9 +13833,9 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-parachain-info" -version = "0.4.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a1bcf863664ca5708d92894fc30d2c6606c7dbb7d7cfcf43b9ae69d5b83f4fb" +checksum = "4df1c48ca2892cb0694c7e10fbcfc8d15fe0fd0b763d61fbc587a870fbb97147" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -13742,10 +13848,11 @@ dependencies = [ [[package]] name = "staging-xcm" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abd0c2e401a1e264379131c27676bc65c9631aaa508044bc04d8ce60a7d8524" +checksum = "e6ee775f7fc9dfae15d9d5a806efa7d3215f7b7b1cfd225809285a0281addeab" dependencies = [ + "array-bytes 6.2.3", "bounded-collections", "derivative", "environmental", @@ -13760,9 +13867,9 @@ dependencies = [ [[package]] name = "staging-xcm-builder" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa3b14246daaf0301dd35d698bac570d82ba0c6c6c1d3e149b93bcf377b2fc6b" +checksum = "41c905c7e545eb80efdbf62470575a37935260503494453ffa3c1ac6207d06c9" dependencies = [ "frame-support", "frame-system", @@ -13783,9 +13890,9 @@ dependencies = [ [[package]] name = "staging-xcm-executor" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a85a421053f810f3ed988ba3cc39d926c95f70f1ae73282aa8cd5c50072173b" +checksum = "e30434a78d4392b698bc7854c00f52d83c1c544da4be1912f898958c3e32f062" dependencies = [ "environmental", "frame-benchmarking", @@ -13793,6 +13900,7 @@ dependencies = [ "impl-trait-for-tuples", "log", "parity-scale-codec", + "scale-info", "sp-arithmetic", "sp-core", "sp-io", @@ -13836,11 +13944,24 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "strobe-rs" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fabb238a1cccccfa4c4fb703670c0d157e1256c1ba695abf1b93bd2bb14bab2d" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "keccak", + "subtle 2.5.0", + "zeroize", +] + [[package]] name = "strsim" -version = "0.10.0" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "struct-versioning" @@ -13861,9 +13982,9 @@ dependencies = [ [[package]] name = "strum" -version = "0.25.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29" [[package]] name = "strum_macros" @@ -13871,7 +13992,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -13880,60 +14001,41 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", - "syn 2.0.39", -] - -[[package]] -name = "stun" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e94b1ec00bad60e6410e058b52f1c66de3dc5fe4d62d09b3e52bb7d3b73e25" -dependencies = [ - "base64 0.13.1", - "crc", - "lazy_static", - "md-5", - "rand 0.8.5", - "ring 0.16.20", - "subtle 2.4.1", - "thiserror", - "tokio", - "url", - "webrtc-util", + "syn 2.0.66", ] [[package]] name = "substrate-bip39" -version = "0.4.5" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e620c7098893ba667438b47169c00aacdd9e7c10e042250ce2b60b087ec97328" +checksum = "a2b564c293e6194e8b222e52436bcb99f60de72043c7f845cf6c4406db4df121" dependencies = [ - "hmac 0.11.0", - "pbkdf2 0.8.0", - "schnorrkel 0.9.1", - "sha2 0.9.9", + "hmac 0.12.1", + "pbkdf2", + "schnorrkel 0.11.4", + "sha2 0.10.8", "zeroize", ] [[package]] name = "substrate-build-script-utils" -version = "9.0.0" +version = "11.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a3b7556a62d77b7b8abc34e425817f6f563c2f2aa7142f1c4e93e6422156cc1" +checksum = "b285e7d183a32732fdc119f3d81b7915790191fad602b7c709ef247073c77a2e" [[package]] name = "substrate-frame-rpc-system" -version = "25.0.0" +version = "31.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c241af714c378075b1185e574202cbb9105e849b8c9ea44ef87880bdb3e9a75" +checksum = "3c0da351445855b0d5bff2721c64508dc790d5cc0804d1d395074c8dafeb2170" dependencies = [ "frame-system-rpc-runtime-api", "futures", @@ -13951,9 +14053,9 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ededbe617291db8a47d6e5155486ff1e5425f0bbf5dcb7f752730466a62bd293" +checksum = "0d8fe06b03b8a291c09507c42f92a2c2c10dd3d62975d02c7f64a92d87bfe09b" dependencies = [ "hyper", "log", @@ -13964,9 +14066,9 @@ dependencies = [ [[package]] name = "substrate-rpc-client" -version = "0.30.0" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5575c2bef89385e5406565b8fe5620856d414e3846c60927a78f0788cb288c8c" +checksum = "e71c3305c6159e3f4cfc158f88ceefb94dd86b2c92c6120ad51a9d9c31c0dce6" dependencies = [ "async-trait", "jsonrpsee", @@ -13978,9 +14080,9 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" -version = "24.0.0" +version = "30.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d57888ccce554552c535346893a497d2cfd232f15b6b676d130cdd5bf3f2ccea" +checksum = "ff3afa7be8eca9226448012fa58eeaaab9c42be60214471d304658ac4856052b" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -13996,32 +14098,24 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" -version = "14.0.0" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ab1707dbbd129622b771a9b80b25f0ebf1c04854b907bc44b51ec96fb4005b" +checksum = "f55ed4ff2945faa132b9658cb581a3a5cf14dd90b5e217b3e16724eb202ed6c6" dependencies = [ - "ansi_term", "build-helper", "cargo_metadata", + "console", "filetime", "parity-wasm", + "polkavm-linker", "sp-maybe-compressed-blob", "strum 0.24.1", "tempfile", - "toml 0.7.8", + "toml 0.8.13", "walkdir", "wasm-opt", ] -[[package]] -name = "substring" -version = "1.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" -dependencies = [ - "autocfg", -] - [[package]] name = "subtle" version = "1.0.0" @@ -14030,9 +14124,9 @@ checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" [[package]] name = "subtle" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subtle-ng" @@ -14053,9 +14147,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.39" +version = "2.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" dependencies = [ "proc-macro2", "quote", @@ -14103,32 +14197,41 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" [[package]] name = "tempfile" -version = "3.8.1" +version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ "cfg-if", - "fastrand 2.0.1", - "redox_syscall 0.4.1", - "rustix 0.38.25", - "windows-sys 0.48.0", + "fastrand 2.1.0", + "rustix 0.38.34", + "windows-sys 0.52.0", ] [[package]] name = "termcolor" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix 0.38.34", + "windows-sys 0.48.0", +] + [[package]] name = "termtree" version = "0.4.1" @@ -14169,9 +14272,9 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] @@ -14193,18 +14296,18 @@ checksum = "e4c60d69f36615a077cc7663b9cb8e42275722d23e58a7fa3d2c7f2915d09d04" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -14215,9 +14318,9 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", @@ -14268,12 +14371,13 @@ dependencies = [ [[package]] name = "time" -version = "0.3.30" +version = "0.3.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" dependencies = [ "deranged", "itoa", + "num-conv", "powerfmt", "serde", "time-core", @@ -14288,32 +14392,14 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" dependencies = [ + "num-conv", "time-core", ] -[[package]] -name = "tiny-bip39" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" -dependencies = [ - "anyhow", - "hmac 0.12.1", - "once_cell", - "pbkdf2 0.11.0", - "rand 0.8.5", - "rustc-hash", - "sha2 0.10.8", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -14323,16 +14409,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde", - "serde_json", -] - [[package]] name = "tinyvec" version = "1.6.0" @@ -14350,32 +14426,32 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.34.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c014766411e834f7af5b8f4cf46257aab4036ca95e9d2c144a10f59ad6f5b9" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", "libc", "mio", "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite 0.2.13", + "parking_lot 0.12.3", + "pin-project-lite 0.2.14", "signal-hook-registry", - "socket2 0.5.5", + "socket2 0.5.7", "tokio-macros", "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -14385,7 +14461,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" dependencies = [ "pin-project", - "rand 0.8.5", + "rand", "tokio", ] @@ -14395,35 +14471,45 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.9", + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", "tokio-util", ] [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-io", "futures-sink", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tokio", - "tracing", ] [[package]] @@ -14437,21 +14523,21 @@ dependencies = [ [[package]] name = "toml" -version = "0.7.8" +version = "0.8.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.19.15", + "toml_edit 0.22.13", ] [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" dependencies = [ "serde", ] @@ -14462,22 +14548,33 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", - "serde", - "serde_spanned", + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] name = "toml_edit" -version = "0.20.7" +version = "0.22.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" +checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" dependencies = [ - "indexmap 2.1.0", + "indexmap 2.2.6", + "serde", + "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.6.9", ] [[package]] @@ -14486,6 +14583,10 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", "tracing", @@ -14497,14 +14598,14 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.5.0", "bytes", "futures-core", "futures-util", "http", "http-body", "http-range-header", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tower-layer", "tower-service", ] @@ -14528,7 +14629,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ "log", - "pin-project-lite 0.2.13", + "pin-project-lite 0.2.14", "tracing-attributes", "tracing-core", ] @@ -14541,7 +14642,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -14566,12 +14667,11 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32c0555bd635d9adbf8dec0bf45f7c2aef7541121d648ba37f5f792a211077b6" +checksum = "461fe686e103f3afc4c93a56474193ffc46d4b2770f8df5d56e025e8bb54960c" dependencies = [ "coarsetime", - "polkadot-node-jaeger", "polkadot-primitives", "tracing", "tracing-gum-proc-macro", @@ -14579,15 +14679,15 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "4.0.0" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35756d8c1a227ec525853a1080bf890d03d939deb2bc50d4d43c96516c795d0d" +checksum = "0f074568687ffdfd0adb6005aa8d1d96840197f2c159f80471285f08694cf0ce" dependencies = [ - "expander 2.0.0", - "proc-macro-crate 1.3.1", + "expander 2.1.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -14640,7 +14740,7 @@ version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" dependencies = [ - "hash-db 0.16.0", + "hash-db", "hashbrown 0.13.2", "log", "smallvec", @@ -14652,7 +14752,7 @@ version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff28e0f815c2fea41ebddf148e008b077d2faddb026c9555b29696114d602642" dependencies = [ - "hash-db 0.16.0", + "hash-db", "hashbrown 0.13.2", "log", "rustc-hex", @@ -14665,17 +14765,7 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ - "hash-db 0.16.0", -] - -[[package]] -name = "triehash" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1631b201eb031b563d2e85ca18ec8092508e262a3196ce9bd10a67ec87b9f5c" -dependencies = [ - "hash-db 0.15.2", - "rlp", + "hash-db", ] [[package]] @@ -14694,7 +14784,7 @@ dependencies = [ "idna 0.2.3", "ipnet", "lazy_static", - "rand 0.8.5", + "rand", "smallvec", "socket2 0.4.10", "thiserror", @@ -14715,7 +14805,7 @@ dependencies = [ "ipconfig", "lazy_static", "lru-cache", - "parking_lot 0.12.1", + "parking_lot 0.12.3", "resolv-conf", "smallvec", "thiserror", @@ -14726,15 +14816,15 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "try-runtime-cli" -version = "0.35.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "845090aa8572116b06813914fc1d09448fe895d82982b63d58de4f91b4eb79b6" +checksum = "80765dc36d90e9f2112dccc6e5d70df50ab1239dba8e004bcc70cc77b3a9712d" dependencies = [ "async-trait", "clap", @@ -14773,25 +14863,6 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" -[[package]] -name = "turn" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4712ee30d123ec7ae26d1e1b218395a16c87cdbaf4b3925d170d684af62ea5e8" -dependencies = [ - "async-trait", - "base64 0.13.1", - "futures", - "log", - "md-5", - "rand 0.8.5", - "ring 0.16.20", - "stun", - "thiserror", - "tokio", - "webrtc-util", -] - [[package]] name = "twox-hash" version = "1.6.3" @@ -14800,7 +14871,7 @@ checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ "cfg-if", "digest 0.10.7", - "rand 0.8.5", + "rand", "static_assertions", ] @@ -14814,7 +14885,6 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" name = "uc-rpc" version = "0.1.4" dependencies = [ - "anyhow", "app-promotion-rpc", "frame-benchmarking", "hex-literal", @@ -14864,9 +14934,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -14885,9 +14955,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "unicode-xid" @@ -14897,7 +14967,7 @@ checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" [[package]] name = "unique-node" -version = "1.3.0" +version = "1.9.0" dependencies = [ "app-promotion-rpc", "clap", @@ -14907,6 +14977,7 @@ dependencies = [ "cumulus-client-consensus-common", "cumulus-client-consensus-proposer", "cumulus-client-network", + "cumulus-client-parachain-inherent", "cumulus-client-service", "cumulus-primitives-aura", "cumulus-primitives-core", @@ -14914,6 +14985,7 @@ dependencies = [ "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", + "cumulus-test-relay-sproof-builder", "fc-api", "fc-consensus", "fc-db", @@ -14964,6 +15036,7 @@ dependencies = [ "sp-offchain", "sp-runtime", "sp-session", + "sp-state-machine", "sp-timestamp", "sp-transaction-pool", "substrate-build-script-utils", @@ -14981,7 +15054,7 @@ dependencies = [ [[package]] name = "unique-runtime" -version = "1.3.0" +version = "1.9.0" dependencies = [ "app-promotion-rpc", "cumulus-pallet-aura-ext", @@ -15018,7 +15091,7 @@ dependencies = [ "pallet-balances", "pallet-balances-adapter", "pallet-base-fee", - "pallet-collator-selection", + "pallet-collator-selection 5.0.0", "pallet-collective", "pallet-common", "pallet-configuration", @@ -15037,6 +15110,7 @@ dependencies = [ "pallet-inflation", "pallet-maintenance", "pallet-membership", + "pallet-message-queue", "pallet-nonfungible", "pallet-preimage", "pallet-ranked-collective", @@ -15056,6 +15130,7 @@ dependencies = [ "pallet-unique", "pallet-utility", "pallet-xcm", + "parachains-common", "parity-scale-codec", "polkadot-parachain-primitives", "polkadot-runtime-common", @@ -15068,6 +15143,7 @@ dependencies = [ "sp-block-builder", "sp-consensus-aura", "sp-core", + "sp-genesis-builder", "sp-inherents", "sp-io", "sp-offchain", @@ -15081,22 +15157,12 @@ dependencies = [ "staging-xcm", "staging-xcm-builder", "staging-xcm-executor", - "substrate-wasm-builder", - "up-common", - "up-data-structs", - "up-pov-estimate-rpc", - "up-rpc", - "up-sponsorship", -] - -[[package]] -name = "universal-hash" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" -dependencies = [ - "generic-array 0.14.7", - "subtle 2.4.1", + "substrate-wasm-builder", + "up-common", + "up-data-structs", + "up-pov-estimate-rpc", + "up-rpc", + "up-sponsorship", ] [[package]] @@ -15106,7 +15172,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" dependencies = [ "crypto-common", - "subtle 2.4.1", + "subtle 2.5.0", ] [[package]] @@ -15135,7 +15201,7 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "up-common" -version = "1.3.0" +version = "1.9.0" dependencies = [ "cumulus-primitives-core", "fp-rpc", @@ -15196,19 +15262,19 @@ dependencies = [ [[package]] name = "up-sponsorship" version = "0.1.0" -source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v1.3.0#6071a67116a08ef81083337360de376b63c0ea1c" +source = "git+https://github.com/uniquenetwork/pallet-sponsoring?branch=polkadot-v1.9.0#f61acb0c67e58e16f9a4d9ab3a82b5cac1a5bede" dependencies = [ "impl-trait-for-tuples", ] [[package]] name = "url" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" dependencies = [ "form_urlencoded", - "idna 0.4.0", + "idna 0.5.0", "percent-encoding", ] @@ -15218,15 +15284,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" -[[package]] -name = "uuid" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" -dependencies = [ - "getrandom 0.2.11", -] - [[package]] name = "valuable" version = "0.1.0" @@ -15266,7 +15323,7 @@ dependencies = [ "arrayref", "constcat", "digest 0.10.7", - "rand 0.8.5", + "rand", "rand_chacha 0.3.1", "rand_core 0.6.4", "sha2 0.10.8", @@ -15275,26 +15332,17 @@ dependencies = [ "zeroize", ] -[[package]] -name = "waitgroup" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292" -dependencies = [ - "atomic-waker", -] - [[package]] name = "waker-fn" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" [[package]] name = "walkdir" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" dependencies = [ "same-file", "winapi-util", @@ -15321,11 +15369,20 @@ version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +[[package]] +name = "wasix" +version = "0.12.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1fbb4ef9bbca0c1170e0b00dd28abc9e3b68669821600cad1caaed606583c6d" +dependencies = [ + "wasi 0.11.0+wasi-snapshot-preview1", +] + [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -15333,24 +15390,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.38" +version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ "cfg-if", "js-sys", @@ -15360,9 +15417,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -15370,37 +15427,37 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-instrument" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1dafb3e60065305741e83db35c6c2584bb3725b692b5b66148a38d72ace6cd" +checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" dependencies = [ "parity-wasm", ] [[package]] name = "wasm-opt" -version = "0.116.0" +version = "0.116.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc942673e7684671f0c5708fc18993569d184265fd5223bb51fc8e5b9b6cfd52" +checksum = "2fd87a4c135535ffed86123b6fb0f0a5a0bc89e50416c942c5f0662c645f679c" dependencies = [ "anyhow", "libc", @@ -15453,9 +15510,9 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.31.0" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f341edb80021141d4ae6468cbeefc50798716a347d4085c3811900049ea8945" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" dependencies = [ "smallvec", "spin 0.9.8", @@ -15466,9 +15523,9 @@ dependencies = [ [[package]] name = "wasmi_arena" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" +checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_core" @@ -15494,9 +15551,9 @@ dependencies = [ [[package]] name = "wasmparser-nostd" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" dependencies = [ "indexmap-nostd", ] @@ -15545,7 +15602,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" dependencies = [ "anyhow", - "base64 0.21.5", + "base64 0.21.7", "bincode", "directories-next", "file-per-thread-logger", @@ -15674,9 +15731,9 @@ dependencies = [ "log", "mach", "memfd", - "memoffset 0.8.0", + "memoffset", "paste", - "rand 0.8.5", + "rand", "rustix 0.36.17", "wasmtime-asm-macros", "wasmtime-environ", @@ -15698,31 +15755,21 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.65" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" dependencies = [ "js-sys", "wasm-bindgen", ] -[[package]] -name = "webpki" -version = "0.21.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] - [[package]] name = "webpki" version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.5", + "ring 0.17.8", "untrusted 0.9.0", ] @@ -15732,228 +15779,14 @@ version = "0.22.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" dependencies = [ - "webpki 0.22.4", -] - -[[package]] -name = "webpki-roots" -version = "0.25.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" - -[[package]] -name = "webrtc" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3bc9049bdb2cea52f5fd4f6f728184225bdb867ed0dc2410eab6df5bdd67bb" -dependencies = [ - "arc-swap", - "async-trait", - "bytes", - "hex", - "interceptor", - "lazy_static", - "log", - "rand 0.8.5", - "rcgen 0.9.3", - "regex", - "ring 0.16.20", - "rtcp", - "rtp", - "rustls 0.19.1", - "sdp", - "serde", - "serde_json", - "sha2 0.10.8", - "stun", - "thiserror", - "time", - "tokio", - "turn", - "url", - "waitgroup", - "webrtc-data", - "webrtc-dtls", - "webrtc-ice", - "webrtc-mdns", - "webrtc-media", - "webrtc-sctp", - "webrtc-srtp", - "webrtc-util", -] - -[[package]] -name = "webrtc-data" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef36a4d12baa6e842582fe9ec16a57184ba35e1a09308307b67d43ec8883100" -dependencies = [ - "bytes", - "derive_builder", - "log", - "thiserror", - "tokio", - "webrtc-sctp", - "webrtc-util", -] - -[[package]] -name = "webrtc-dtls" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a00f4242f2db33307347bd5be53263c52a0331c96c14292118c9a6bb48d267" -dependencies = [ - "aes 0.6.0", - "aes-gcm 0.10.3", - "async-trait", - "bincode", - "block-modes", - "byteorder", - "ccm", - "curve25519-dalek 3.2.0", - "der-parser 8.2.0", - "elliptic-curve 0.12.3", - "hkdf", - "hmac 0.12.1", - "log", - "p256", - "p384", - "rand 0.8.5", - "rand_core 0.6.4", - "rcgen 0.10.0", - "ring 0.16.20", - "rustls 0.19.1", - "sec1 0.3.0", - "serde", - "sha1", - "sha2 0.10.8", - "signature 1.6.4", - "subtle 2.4.1", - "thiserror", - "tokio", - "webpki 0.21.4", - "webrtc-util", - "x25519-dalek 2.0.0", - "x509-parser 0.13.2", -] - -[[package]] -name = "webrtc-ice" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" -dependencies = [ - "arc-swap", - "async-trait", - "crc", - "log", - "rand 0.8.5", - "serde", - "serde_json", - "stun", - "thiserror", - "tokio", - "turn", - "url", - "uuid", - "waitgroup", - "webrtc-mdns", - "webrtc-util", -] - -[[package]] -name = "webrtc-mdns" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" -dependencies = [ - "log", - "socket2 0.4.10", - "thiserror", - "tokio", - "webrtc-util", -] - -[[package]] -name = "webrtc-media" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f72e1650a8ae006017d1a5280efb49e2610c19ccc3c0905b03b648aee9554991" -dependencies = [ - "byteorder", - "bytes", - "rand 0.8.5", - "rtp", - "thiserror", -] - -[[package]] -name = "webrtc-sctp" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d47adcd9427eb3ede33d5a7f3424038f63c965491beafcc20bc650a2f6679c0" -dependencies = [ - "arc-swap", - "async-trait", - "bytes", - "crc", - "log", - "rand 0.8.5", - "thiserror", - "tokio", - "webrtc-util", -] - -[[package]] -name = "webrtc-srtp" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6183edc4c1c6c0175f8812eefdce84dfa0aea9c3ece71c2bf6ddd3c964de3da5" -dependencies = [ - "aead 0.4.3", - "aes 0.7.5", - "aes-gcm 0.9.4", - "async-trait", - "byteorder", - "bytes", - "ctr 0.8.0", - "hmac 0.11.0", - "log", - "rtcp", - "rtp", - "sha-1", - "subtle 2.4.1", - "thiserror", - "tokio", - "webrtc-util", -] - -[[package]] -name = "webrtc-util" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" -dependencies = [ - "async-trait", - "bitflags 1.3.2", - "bytes", - "cc", - "ipnet", - "lazy_static", - "libc", - "log", - "nix", - "rand 0.8.5", - "thiserror", - "tokio", - "winapi", + "webpki", ] [[package]] name = "westend-runtime" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e833bb935995cb8da9848b974f37801c66163502929ecf22ca15878b8e8edbb7" +checksum = "3ef1f629f711d7d110a1d13a12d3b4ab8fdc4ec3f97abbe9d1f0d248014a9e72" dependencies = [ "binary-merkle-tree", "bitvec", @@ -15983,7 +15816,7 @@ dependencies = [ "pallet-elections-phragmen", "pallet-fast-unstake", "pallet-grandpa", - "pallet-identity 25.0.0", + "pallet-identity 31.0.0", "pallet-im-online", "pallet-indices", "pallet-membership", @@ -15999,6 +15832,7 @@ dependencies = [ "pallet-proxy", "pallet-recovery", "pallet-referenda", + "pallet-root-testing", "pallet-scheduler", "pallet-session", "pallet-session-benchmarking", @@ -16057,9 +15891,9 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "4.0.0" +version = "10.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "682c32c5f5e6d51c431bf66c33fc502c66e7b25488c0bd92f5ee020c329f2beb" +checksum = "38ee9606d7d954aef2b22107e80fc128a467cd8d6f1d347f64e417f88b2833c8" dependencies = [ "frame-support", "polkadot-primitives", @@ -16069,6 +15903,7 @@ dependencies = [ "sp-runtime", "sp-weights", "staging-xcm", + "staging-xcm-builder", ] [[package]] @@ -16080,14 +15915,14 @@ dependencies = [ "either", "home", "once_cell", - "rustix 0.38.25", + "rustix 0.38.34", ] [[package]] name = "wide" -version = "0.7.13" +version = "0.7.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +checksum = "cd8dc749a1b03f3c255a3064a4f5c0ee5ed09b7c6bc6d4525d31f779cd74d7fc" dependencies = [ "bytemuck", "safe_arch", @@ -16095,9 +15930,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "653f141f39ec16bba3c5abe400a0c60da7468261cc2cbf36805022876bc721a8" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" [[package]] name = "winapi" @@ -16117,11 +15952,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" dependencies = [ - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -16136,7 +15971,7 @@ version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9" dependencies = [ - "windows-core", + "windows-core 0.51.1", "windows-targets 0.48.5", ] @@ -16149,6 +15984,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.5", +] + [[package]] name = "windows-sys" version = "0.45.0" @@ -16167,6 +16011,15 @@ dependencies = [ "windows-targets 0.48.5", ] +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.5", +] + [[package]] name = "windows-targets" version = "0.42.2" @@ -16197,6 +16050,22 @@ dependencies = [ "windows_x86_64_msvc 0.48.5", ] +[[package]] +name = "windows-targets" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +dependencies = [ + "windows_aarch64_gnullvm 0.52.5", + "windows_aarch64_msvc 0.52.5", + "windows_i686_gnu 0.52.5", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.5", + "windows_x86_64_gnu 0.52.5", + "windows_x86_64_gnullvm 0.52.5", + "windows_x86_64_msvc 0.52.5", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" @@ -16209,6 +16078,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" + [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -16221,6 +16096,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" + [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -16233,6 +16114,18 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" + [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -16245,6 +16138,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" + [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -16257,6 +16156,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" + [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -16269,6 +16174,12 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" + [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -16281,11 +16192,26 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" -version = "0.5.19" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829846f3e3db426d4cee4510841b71a8e58aa2a76b1132579487ae430ccd9c7b" +checksum = "86c949fede1d13936a99f14fafd3e76fd642b556dd2ce96287fbe2e0151bfac6" dependencies = [ "memchr", ] @@ -16322,48 +16248,29 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ - "curve25519-dalek 4.1.1", + "curve25519-dalek 4.1.2", "rand_core 0.6.4", "serde", "zeroize", ] -[[package]] -name = "x509-parser" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" -dependencies = [ - "asn1-rs 0.3.1", - "base64 0.13.1", - "data-encoding", - "der-parser 7.0.0", - "lazy_static", - "nom", - "oid-registry 0.4.0", - "ring 0.16.20", - "rusticata-macros", - "thiserror", - "time", -] - [[package]] name = "x509-parser" version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" dependencies = [ - "asn1-rs 0.5.2", + "asn1-rs", "base64 0.13.1", "data-encoding", - "der-parser 8.2.0", + "der-parser", "lazy_static", "nom", - "oid-registry 0.6.1", + "oid-registry", "rusticata-macros", "thiserror", "time", @@ -16371,14 +16278,14 @@ dependencies = [ [[package]] name = "xcm-procedural" -version = "4.0.0" +version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401e2b62628da9246dececb06fe58118196557dd8deb9ce12d95cc4aaf56003f" +checksum = "f4717a97970a9cda70d7db53cf50d2615c2f6f6b7c857445325b4a39ea7aa2cd" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -16390,8 +16297,8 @@ dependencies = [ "futures", "log", "nohash-hasher", - "parking_lot 0.12.1", - "rand 0.8.5", + "parking_lot 0.12.3", + "rand", "static_assertions", ] @@ -16406,29 +16313,29 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.26" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.26" +version = "0.7.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -16441,7 +16348,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.39", + "syn 2.0.66", ] [[package]] @@ -16484,9 +16391,9 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index c7bb61f678..513e617702 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ members = [ 'runtime/tests', 'runtime/unique', ] -package.version = "1.3.0" +package.version = "1.9.0" resolver = "2" [profile.release] @@ -31,10 +31,10 @@ inherits = "release" [workspace.dependencies] # Unique app-promotion-rpc = { path = "primitives/app_promotion_rpc", default-features = false } -evm-coder = { version = "0.4.2", default-features = false, features = ['bondrewd'] } +evm-coder = { version = "0.4.3", default-features = false, features = ['bondrewd'] } pallet-app-promotion = { path = "pallets/app-promotion", default-features = false } pallet-balances-adapter = { default-features = false, path = "pallets/balances-adapter" } -pallet-charge-transaction = { package = "pallet-template-transaction-payment", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v1.3.0" } +pallet-charge-transaction = { package = "pallet-template-transaction-payment", default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v1.9.0" } pallet-collator-selection = { default-features = false, path = "pallets/collator-selection" } pallet-common = { default-features = false, path = "pallets/common" } pallet-configuration = { default-features = false, path = "pallets/configuration" } @@ -61,7 +61,7 @@ up-common = { path = "primitives/common", default-features = false } up-data-structs = { path = "primitives/data-structs", default-features = false } up-pov-estimate-rpc = { path = "primitives/pov-estimate-rpc", default-features = false } up-rpc = { path = "primitives/rpc", default-features = false } -up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v1.3.0" } +up-sponsorship = { default-features = false, git = "https://github.com/uniquenetwork/pallet-sponsoring", branch = "polkadot-v1.9.0" } # Unique: Runtimes opal-runtime = { path = "runtime/opal" } @@ -69,149 +69,155 @@ quartz-runtime = { path = "runtime/quartz" } unique-runtime = { path = "runtime/unique" } # Frontier (Unique patches over the Parity version) -fc-api = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fc-consensus = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fc-db = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fc-mapping-sync = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } +fc-api = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fc-consensus = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fc-db = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fc-mapping-sync = { git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fc-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fc-rpc-core = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fp-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fp-rpc = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } fp-self-contained = { default-features = false, features = [ "serde", -], git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } -pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.3.0" } +], git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +fp-storage = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +pallet-base-fee = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +pallet-ethereum = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +pallet-evm = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } +pallet-evm-precompile-simple = { default-features = false, git = "https://github.com/uniquenetwork/unique-frontier", branch = "unique-polkadot-v1.9.0" } # Parity codec = { default-features = false, features = ['derive'], package = 'parity-scale-codec', version = "3.6.5" } -cumulus-client-cli = "0.4.0" -cumulus-client-collator = "0.4.0" -cumulus-client-consensus-aura = "0.4.0" -cumulus-client-consensus-common = "0.4.0" -cumulus-client-consensus-proposer = "0.4.0" -cumulus-client-network = "0.4.0" -cumulus-client-service = "0.4.0" -cumulus-pallet-aura-ext = { default-features = false, version = "0.4.0" } -cumulus-pallet-dmp-queue = { default-features = false, version = "0.4.0" } -cumulus-pallet-parachain-system = { default-features = false, version = "0.4.0" } -cumulus-pallet-xcm = { default-features = false, version = "0.4.0" } -cumulus-pallet-xcmp-queue = { default-features = false, version = "0.4.0" } -cumulus-primitives-aura = { default-features = false, version = "0.4.0" } -cumulus-primitives-core = { default-features = false, version = "0.4.0" } -cumulus-primitives-parachain-inherent = { default-features = false, version = "0.4.0" } -cumulus-primitives-timestamp = { default-features = false, version = "0.4.0" } -cumulus-primitives-utility = { default-features = false, version = "0.4.0" } -cumulus-relay-chain-inprocess-interface = "0.4.0" -cumulus-relay-chain-interface = "0.4.0" -cumulus-relay-chain-minimal-node = "0.4.0" -frame-executive = { default-features = false, version = "25.0.0" } -frame-support = { default-features = false, version = "25.0.0" } -frame-system = { default-features = false, version = "25.0.0" } -frame-system-rpc-runtime-api = { default-features = false, version = "23.0.0" } -pallet-aura = { default-features = false, version = "24.0.0" } -pallet-authorship = { default-features = false, version = "25.0.0" } -pallet-balances = { default-features = false, version = "25.0.0" } -pallet-collective = { default-features = false, version = "25.0.0" } -pallet-democracy = { default-features = false, version = "25.0.0" } -pallet-membership = { default-features = false, version = "25.0.0" } -pallet-preimage = { default-features = false, version = "25.0.0" } -pallet-ranked-collective = { default-features = false, version = "25.0.0" } -pallet-referenda = { default-features = false, version = "25.0.0" } -pallet-scheduler = { default-features = false, version = "26.0.0" } -pallet-session = { default-features = false, version = "25.0.0" } -pallet-state-trie-migration = { default-features = false, version = "26.0.0" } -pallet-sudo = { default-features = false, version = "25.0.0" } -pallet-timestamp = { default-features = false, version = "24.0.0" } -pallet-transaction-payment = { default-features = false, version = "25.0.0" } -pallet-transaction-payment-rpc = "27.0.0" -pallet-transaction-payment-rpc-runtime-api = { default-features = false, version = "25.0.0" } -pallet-treasury = { default-features = false, version = "24.0.0" } -pallet-utility = { default-features = false, version = "25.0.0" } -pallet-xcm = { default-features = false, version = "4.0.0" } +cumulus-client-cli = "0.10.0" +cumulus-client-collator = "0.10.0" +cumulus-client-consensus-aura = "0.10.0" +cumulus-client-consensus-common = "0.10.0" +cumulus-client-consensus-proposer = "0.10.0" +cumulus-client-network = "0.10.0" +cumulus-client-service = "0.10.0" +cumulus-client-parachain-inherent = "0.4.0" +cumulus-pallet-aura-ext = { default-features = false, version = "0.10.0" } +cumulus-pallet-dmp-queue = { default-features = false, version = "0.10.0" } +cumulus-pallet-parachain-system = { default-features = false, version = "0.10.0" } +cumulus-pallet-xcm = { default-features = false, version = "0.10.0" } +cumulus-pallet-xcmp-queue = { default-features = false, version = "0.10.0" } +cumulus-primitives-aura = { default-features = false, version = "0.10.0" } +cumulus-primitives-core = { default-features = false, version = "0.10.0" } +cumulus-primitives-parachain-inherent = { default-features = false, version = "0.10.0" } +cumulus-primitives-timestamp = { default-features = false, version = "0.10.0" } +cumulus-primitives-utility = { default-features = false, version = "0.10.0" } +cumulus-relay-chain-inprocess-interface = "0.10.0" +cumulus-relay-chain-interface = "0.10.0" +cumulus-relay-chain-minimal-node = "0.10.0" +cumulus-test-relay-sproof-builder = "0.10.0" +parachains-common = { default-features = false, version = "10.0.0"} +frame-executive = { default-features = false, version = "31.0.0" } +frame-support = { default-features = false, version = "31.0.0" } +frame-system = { default-features = false, version = "31.0.0" } +frame-system-rpc-runtime-api = { default-features = false, version = "29.0.0" } +pallet-aura = { default-features = false, version = "30.0.0" } +pallet-authorship = { default-features = false, version = "31.0.0" } +pallet-balances = { default-features = false, version = "31.0.0" } +pallet-collective = { default-features = false, version = "31.0.0" } +pallet-democracy = { default-features = false, version = "31.0.0" } +pallet-membership = { default-features = false, version = "31.0.0" } +pallet-preimage = { default-features = false, version = "31.0.0" } +pallet-ranked-collective = { default-features = false, version = "31.0.0" } +pallet-referenda = { default-features = false, version = "31.0.0" } +pallet-scheduler = { default-features = false, version = "32.0.0" } +pallet-session = { default-features = false, version = "31.0.0" } +pallet-state-trie-migration = { default-features = false, version = "32.0.0" } +pallet-sudo = { default-features = false, version = "31.0.0" } +pallet-timestamp = { default-features = false, version = "30.0.0" } +pallet-transaction-payment = { default-features = false, version = "31.0.0" } +pallet-transaction-payment-rpc = "33.0.0" +pallet-transaction-payment-rpc-runtime-api = { default-features = false, version = "31.0.0" } +pallet-treasury = { default-features = false, version = "30.0.0" } +pallet-utility = { default-features = false, version = "31.0.0" } +pallet-xcm = { default-features = false, version = "10.0.1" } +pallet-message-queue = { default-features = false, version = "34.0.0" } parity-scale-codec = { version = "3.6.5", features = ["derive"], default-features = false } -polkadot-cli = "4.0.0" -polkadot-parachain-primitives = { default-features = false, version = "3.0.0" } -polkadot-primitives = "4.0.0" -polkadot-runtime-common = { default-features = false, version = "4.0.0" } -polkadot-service = "4.0.0" -sc-basic-authorship = "0.31.0" -sc-chain-spec = "24.0.0" -sc-cli = "0.33.0" -sc-client-api = "25.0.0" -sc-consensus = "0.30.0" -sc-consensus-manual-seal = "0.32.0" -sc-executor = "0.29.0" -sc-network = "0.31.0" -sc-network-sync = "0.30.0" -sc-rpc = "26.0.0" -sc-rpc-api = "0.30.0" -sc-service = "0.32.0" -sc-sysinfo = "24.0.0" -sc-telemetry = "12.0.0" -sc-tracing = "25.0.0" -sc-transaction-pool = "25.0.0" +polkadot-cli = "10.0.0" +polkadot-parachain-primitives = { default-features = false, version = "9.0.0" } +polkadot-primitives = "10.0.0" +polkadot-runtime-common = { default-features = false, version = "10.0.0" } +polkadot-service = "10.0.0" +sc-basic-authorship = "0.37.0" +sc-chain-spec = "30.0.0" +sc-cli = "0.39.0" +sc-client-api = "31.0.0" +sc-consensus = "0.36.0" +sc-consensus-manual-seal = "0.38.0" +sc-executor = "0.35.0" +sc-network = "0.37.0" +sc-network-sync = "0.36.0" +sc-rpc = "32.0.0" +sc-rpc-api = "0.36.0" +sc-service = "0.38.0" +sc-sysinfo = "30.0.0" +sc-telemetry = "17.0.0" +sc-tracing = "31.0.0" +sc-transaction-pool = "31.0.0" scale-info = { version = "2.9.0", default-features = false, features = ["derive"] } -sp-api = { default-features = false, version = "23.0.0" } -sp-arithmetic = { default-features = false, version = "20.0.0" } -sp-block-builder = { default-features = false, version = "23.0.0" } -sp-blockchain = "25.0.0" -sp-consensus-aura = { default-features = false, version = "0.29.0" } -sp-core = { default-features = false, version = "25.0.0" } -sp-externalities = "0.23.0" -sp-inherents = { default-features = false, version = "23.0.0" } -sp-io = { default-features = false, version = "27.0.0" } -sp-keystore = "0.31.0" -sp-offchain = { default-features = false, version = "23.0.0" } -sp-runtime = { default-features = false, version = "28.0.0" } -sp-session = { default-features = false, version = "24.0.0" } -sp-staking = { default-features = false, version = "23.0.0" } -sp-state-machine = "0.32.0" -sp-std = { default-features = false, version = "12.0.0" } -sp-storage = { default-features = false, version = "17.0.0" } -sp-timestamp = "23.0.0" -sp-tracing = "14.0.0" -sp-transaction-pool = { default-features = false, version = "23.0.0" } -sp-trie = { default-features = false, version = "26.0.0" } -sp-version = { default-features = false, version = "26.0.0" } -sp-weights = { default-features = false, version = "24.0.0" } -staging-parachain-info = { default-features = false, version = "0.4.0" } -staging-xcm = { default-features = false, version = "4.0.0" } -staging-xcm-builder = { default-features = false, version = "4.0.0" } -staging-xcm-executor = { default-features = false, version = "4.0.0" } -substrate-frame-rpc-system = "25.0.0" -substrate-prometheus-endpoint = "0.16.0" +sp-api = { default-features = false, version = "29.0.0" } +sp-arithmetic = { default-features = false, version = "25.0.0" } +sp-block-builder = { default-features = false, version = "29.0.0" } +sp-blockchain = "31.0.0" +sp-consensus-aura = { default-features = false, version = "0.35.0" } +sp-core = { default-features = false, version = "31.0.0" } +sp-externalities = "0.27.0" +sp-inherents = { default-features = false, version = "29.0.0" } +sp-io = { default-features = false, version = "33.0.0" } +sp-keystore = "0.37.0" +sp-offchain = { default-features = false, version = "29.0.0" } +sp-runtime = { default-features = false, version = "34.0.0" } +sp-session = { default-features = false, version = "30.0.0" } +sp-staking = { default-features = false, version = "29.0.0" } +sp-state-machine = "0.38.0" +sp-std = { default-features = false, version = "14.0.0" } +sp-storage = { default-features = false, version = "20.0.0" } +sp-timestamp = "29.0.0" +sp-tracing = "16.0.0" +sp-transaction-pool = { default-features = false, version = "29.0.0" } +sp-trie = { default-features = false, version = "32.0.0" } +sp-version = { default-features = false, version = "32.0.0" } +sp-weights = { default-features = false, version = "30.0.0" } +sp-genesis-builder = { default-features = false, version = "0.10.0" } +staging-parachain-info = { default-features = false, version = "0.10.0" } +staging-xcm = { default-features = false, version = "10.0.0" } +staging-xcm-builder = { default-features = false, version = "10.0.0" } +staging-xcm-executor = { default-features = false, version = "10.0.0" } +substrate-frame-rpc-system = "31.0.0" +substrate-prometheus-endpoint = "0.17.0" # Parity: Build utils -substrate-build-script-utils = "9.0.0" -substrate-wasm-builder = "14.0.0" +substrate-build-script-utils = "11.0.0" +substrate-wasm-builder = "20.0.0" # Parity: Benchmarking -frame-benchmarking = { default-features = false, version = "25.0.0" } -frame-benchmarking-cli = "29.0.0" -frame-system-benchmarking = { default-features = false, version = "25.0.0" } +frame-benchmarking = { default-features = false, version = "31.0.0" } +frame-benchmarking-cli = "35.0.0" +frame-system-benchmarking = { default-features = false, version = "31.0.0" } # Parity: Try Runtime -frame-try-runtime = { default-features = false, version = "0.31.0" } -try-runtime-cli = "0.35.0" +frame-try-runtime = { default-features = false, version = "0.37.0" } +try-runtime-cli = "0.41.0" # ORML -orml-traits = { default-features = false, git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "unique-polkadot-v1.3.0" } -orml-vesting = { default-features = false, git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "unique-polkadot-v1.3.0" } -orml-xcm-support = { default-features = false, git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "unique-polkadot-v1.3.0" } -orml-xtokens = { default-features = false, git = "https://github.com/uniquenetwork/open-runtime-module-library", branch = "unique-polkadot-v1.3.0" } +orml-traits = { version = "0.9.1", default-features = false } +orml-vesting = { version = "0.9.1", default-features = false } +orml-xcm-support = { version = "0.9.1", default-features = false } +orml-xtokens = { version = "0.9.1", default-features = false } # Other derivative = { version = "2.2.0", features = ["use_core"] } -ethereum = { version = "0.14.0", default-features = false } -evm-core = { git = "https://github.com/rust-blockchain/evm", rev = "b7b82c7e1fc57b7449d6dfa6826600de37cc1e65", default-features = false } +ethereum = { version = "0.15.0", default-features = false, features = ["with-codec"] } +evm-core = { version = "0.41.0", default-features = false } hex-literal = "0.4.1" impl-trait-for-tuples = "0.2.2" -jsonrpsee = { version = "0.16.3", features = ["macros", "server"] } +jsonrpsee = { version = "0.22.5", features = ["macros", "server"] } log = { version = "0.4.20", default-features = false } num_enum = { version = "0.7.0", default-features = false } serde = { default-features = false, features = ['derive'], version = "1.0.188" } +serde_json = "1" smallvec = "1.11.1" diff --git a/Makefile b/Makefile index 1d7edf3064..92ff8b011b 100644 --- a/Makefile +++ b/Makefile @@ -7,25 +7,25 @@ _help: @echo " bench-unique" NATIVE_FUNGIBLE_EVM_STUBS=./pallets/balances-adapter/src/stubs -NATIVE_FUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/nativeFungible.json +NATIVE_FUNGIBLE_EVM_ABI=./js-packages/evm-abi/abi/nativeFungible.json FUNGIBLE_EVM_STUBS=./pallets/fungible/src/stubs -FUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/fungible.json +FUNGIBLE_EVM_ABI=./js-packages/evm-abi/abi/fungible.json NONFUNGIBLE_EVM_STUBS=./pallets/nonfungible/src/stubs -NONFUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/nonFungible.json +NONFUNGIBLE_EVM_ABI=./js-packages/evm-abi/abi/nonFungible.json REFUNGIBLE_EVM_STUBS=./pallets/refungible/src/stubs -REFUNGIBLE_EVM_ABI=./js-packages/tests/eth/abi/reFungible.json -REFUNGIBLE_TOKEN_EVM_ABI=./js-packages/tests/eth/abi/reFungibleToken.json +REFUNGIBLE_EVM_ABI=./js-packages/evm-abi/abi/reFungible.json +REFUNGIBLE_TOKEN_EVM_ABI=./js-packages/evm-abi/abi/reFungibleToken.json CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/ -CONTRACT_HELPERS_ABI=./js-packages/tests/eth/abi/contractHelpers.json +CONTRACT_HELPERS_ABI=./js-packages/evm-abi/abi/contractHelpers.json COLLECTION_HELPER_STUBS=./pallets/unique/src/eth/stubs/ -COLLECTION_HELPER_ABI=./js-packages/tests/eth/abi/collectionHelpers.json +COLLECTION_HELPER_ABI=./js-packages/evm-abi/abi/collectionHelpers.json -TESTS_API=./js-packages/tests/eth/api/ +TESTS_API=./js-packages/evm-abi/api/ .PHONY: regenerate_solidity regenerate_solidity: UniqueFungible.sol UniqueNFT.sol UniqueRefungible.sol UniqueRefungibleToken.sol ContractHelpers.sol CollectionHelpers.sol diff --git a/README.md b/README.md index 11ad4b15e7..1db8c06954 100644 --- a/README.md +++ b/README.md @@ -52,17 +52,17 @@ curl https://sh.rustup.rs -sSf | sh 2. Remove all installed toolchains with `rustup toolchain list` and `rustup toolchain uninstall `. -3. Install toolchain nightly-2023-05-22 and make it default: +3. Install toolchain nightly-2024-04-10 and make it default: ```bash -rustup toolchain install nightly-2023-05-22 -rustup default nightly-2023-05-22 +rustup toolchain install nightly-2024-04-10 +rustup default nightly-2024-04-10 ``` 4. Add wasm target for nightly toolchain: ```bash -rustup target add wasm32-unknown-unknown --toolchain nightly-2023-05-22 +rustup target add wasm32-unknown-unknown --toolchain nightly-2024-04-10 ``` 5. Build: @@ -87,9 +87,9 @@ Note: checkout this project and all related projects (see below) in the sibling ### Build relay ``` -git clone https://github.com/paritytech/polkadot.git +git clone https://github.com/paritytech/polkadot-sdk.git cd polkadot -git checkout release-v0.9.43 +git checkout release-polkadot-v1.9.0 cargo build --release ``` diff --git a/client/rpc/Cargo.toml b/client/rpc/Cargo.toml index bd1ce62919..9debde9a87 100644 --- a/client/rpc/Cargo.toml +++ b/client/rpc/Cargo.toml @@ -5,8 +5,7 @@ name = "uc-rpc" version = "0.1.4" [dependencies] -anyhow = "1.0.75" -jsonrpsee = { version = "0.16.3", features = ["macros", "server"] } +jsonrpsee = { workspace = true } parity-scale-codec = { workspace = true } trie-db = { version = "0.27.1", default-features = false } zstd = { version = "0.12.4", default-features = false } diff --git a/client/rpc/src/lib.rs b/client/rpc/src/lib.rs index fd117b56ea..14892587d6 100644 --- a/client/rpc/src/lib.rs +++ b/client/rpc/src/lib.rs @@ -17,14 +17,13 @@ // Original License use std::sync::Arc; -use anyhow::anyhow; use app_promotion_rpc::AppPromotionApi as AppPromotionRuntimeApi; pub use app_promotion_unique_rpc::AppPromotionApiServer; -use jsonrpsee::{core::RpcResult as Result, proc_macros::rpc}; +use jsonrpsee::{core::RpcResult as Result, proc_macros::rpc, types::ErrorCode}; use parity_scale_codec::Decode; -use sp_api::{ApiExt, BlockT, ProvideRuntimeApi}; +use sp_api::{ApiExt, ProvideRuntimeApi}; use sp_blockchain::HeaderBackend; -use sp_runtime::traits::{AtLeast32BitUnsigned, Member}; +use sp_runtime::traits::{AtLeast32BitUnsigned, Block as BlockT, Member}; use up_data_structs::{ CollectionId, CollectionLimits, CollectionStats, Property, PropertyKeyPermission, RpcCollection, TokenChild, TokenData, TokenId, @@ -345,7 +344,7 @@ macro_rules! pass_method { api_version } else { // unreachable for our runtime - return Err(anyhow!("api is not available").into()) + return Err(ErrorCode::MethodNotFound.into()) }; let result = $(if _api_version < $ver { @@ -354,8 +353,8 @@ macro_rules! pass_method { { api.$method_name(at, $($($map)? ($name)),*) }; Ok(result - .map_err(|e| anyhow!("unable to query: {e}"))? - .map_err(|e| anyhow!("runtime error: {e:?}"))$(.map($mapper))??) + .map_err(|_| ErrorCode::InternalError /* TODO proper error */)? + .map_err(|_| ErrorCode::InvalidParams)$(.map($mapper))??) } }; } @@ -513,7 +512,7 @@ where { api_version } else { - return Err(anyhow!("api is not available").into()); + return Err(ErrorCode::MethodNotFound.into()); }; let result = if api_version >= 3 { api.token_data(at, collection, token_id, string_keys_to_bytes_keys(keys)) @@ -537,8 +536,8 @@ where }) }; Ok(result - .map_err(|e| anyhow!("unable to query: {e}"))? - .map_err(|e| anyhow!("runtime error: {e:?}"))?) + .map_err(|_| ErrorCode::InternalError /* TODO proper error */)? + .map_err(|_| ErrorCode::InvalidParams)?) } fn string_keys_to_bytes_keys(keys: Option>) -> Option>> { diff --git a/doc/demo_milestone1-2.md b/doc/demo_milestone1-2.md index 0ad38e7370..f6031b70c4 100755 --- a/doc/demo_milestone1-2.md +++ b/doc/demo_milestone1-2.md @@ -17,7 +17,7 @@ on substrate 2 version. The node can be run using docker container: ``` -docker-compose up -d +docker compose up -d ``` #### NFT Tracking Module diff --git a/kb/how-not-to-break-rpc.md b/doc/how-not-to-break-rpc.md similarity index 100% rename from kb/how-not-to-break-rpc.md rename to doc/how-not-to-break-rpc.md diff --git a/js-packages/.vscode/settings.json b/js-packages/.vscode/settings.json index f738082dbb..5780018d2f 100644 --- a/js-packages/.vscode/settings.json +++ b/js-packages/.vscode/settings.json @@ -3,8 +3,9 @@ "RUN_GOV_TESTS": "1", "RUN_XCM_TESTS": "1" }, - "mochaExplorer.files": "src/**/*.test.ts", - "mochaExplorer.require": "ts-node/register", + "mochaExplorer.files": "tests/**/*.test.ts", + "mochaExplorer.esmLoader": true, + "mochaExplorer.nodeArgv": ["--loader", "ts-node/esm"], "eslint.format.enable": true, "[javascript]": { "editor.defaultFormatter": "dbaeumer.vscode-eslint" diff --git a/js-packages/tests/eth/abi/collectionHelpers.json b/js-packages/evm-abi/abi/collectionHelpers.json similarity index 100% rename from js-packages/tests/eth/abi/collectionHelpers.json rename to js-packages/evm-abi/abi/collectionHelpers.json diff --git a/js-packages/tests/eth/abi/contractHelpers.json b/js-packages/evm-abi/abi/contractHelpers.json similarity index 100% rename from js-packages/tests/eth/abi/contractHelpers.json rename to js-packages/evm-abi/abi/contractHelpers.json diff --git a/js-packages/tests/eth/abi/fungible.json b/js-packages/evm-abi/abi/fungible.json similarity index 100% rename from js-packages/tests/eth/abi/fungible.json rename to js-packages/evm-abi/abi/fungible.json diff --git a/js-packages/tests/eth/abi/fungibleDeprecated.json b/js-packages/evm-abi/abi/fungibleDeprecated.json similarity index 100% rename from js-packages/tests/eth/abi/fungibleDeprecated.json rename to js-packages/evm-abi/abi/fungibleDeprecated.json diff --git a/js-packages/tests/eth/abi/nativeFungible.json b/js-packages/evm-abi/abi/nativeFungible.json similarity index 100% rename from js-packages/tests/eth/abi/nativeFungible.json rename to js-packages/evm-abi/abi/nativeFungible.json diff --git a/js-packages/tests/eth/abi/nonFungible.json b/js-packages/evm-abi/abi/nonFungible.json similarity index 100% rename from js-packages/tests/eth/abi/nonFungible.json rename to js-packages/evm-abi/abi/nonFungible.json diff --git a/js-packages/tests/eth/abi/nonFungibleDeprecated.json b/js-packages/evm-abi/abi/nonFungibleDeprecated.json similarity index 100% rename from js-packages/tests/eth/abi/nonFungibleDeprecated.json rename to js-packages/evm-abi/abi/nonFungibleDeprecated.json diff --git a/js-packages/tests/eth/abi/reFungible.json b/js-packages/evm-abi/abi/reFungible.json similarity index 100% rename from js-packages/tests/eth/abi/reFungible.json rename to js-packages/evm-abi/abi/reFungible.json diff --git a/js-packages/tests/eth/abi/reFungibleDeprecated.json b/js-packages/evm-abi/abi/reFungibleDeprecated.json similarity index 100% rename from js-packages/tests/eth/abi/reFungibleDeprecated.json rename to js-packages/evm-abi/abi/reFungibleDeprecated.json diff --git a/js-packages/tests/eth/abi/reFungibleToken.json b/js-packages/evm-abi/abi/reFungibleToken.json similarity index 100% rename from js-packages/tests/eth/abi/reFungibleToken.json rename to js-packages/evm-abi/abi/reFungibleToken.json diff --git a/js-packages/tests/eth/abi/reFungibleTokenDeprecated.json b/js-packages/evm-abi/abi/reFungibleTokenDeprecated.json similarity index 100% rename from js-packages/tests/eth/abi/reFungibleTokenDeprecated.json rename to js-packages/evm-abi/abi/reFungibleTokenDeprecated.json diff --git a/js-packages/tests/eth/api/CollectionHelpers.sol b/js-packages/evm-abi/api/CollectionHelpers.sol similarity index 100% rename from js-packages/tests/eth/api/CollectionHelpers.sol rename to js-packages/evm-abi/api/CollectionHelpers.sol diff --git a/js-packages/tests/eth/api/ContractHelpers.sol b/js-packages/evm-abi/api/ContractHelpers.sol similarity index 100% rename from js-packages/tests/eth/api/ContractHelpers.sol rename to js-packages/evm-abi/api/ContractHelpers.sol diff --git a/js-packages/tests/eth/api/UniqueFungible.sol b/js-packages/evm-abi/api/UniqueFungible.sol similarity index 100% rename from js-packages/tests/eth/api/UniqueFungible.sol rename to js-packages/evm-abi/api/UniqueFungible.sol diff --git a/js-packages/tests/eth/api/UniqueNFT.sol b/js-packages/evm-abi/api/UniqueNFT.sol similarity index 100% rename from js-packages/tests/eth/api/UniqueNFT.sol rename to js-packages/evm-abi/api/UniqueNFT.sol diff --git a/js-packages/tests/eth/api/UniqueNativeFungible.sol b/js-packages/evm-abi/api/UniqueNativeFungible.sol similarity index 100% rename from js-packages/tests/eth/api/UniqueNativeFungible.sol rename to js-packages/evm-abi/api/UniqueNativeFungible.sol diff --git a/js-packages/tests/eth/api/UniqueRefungible.sol b/js-packages/evm-abi/api/UniqueRefungible.sol similarity index 100% rename from js-packages/tests/eth/api/UniqueRefungible.sol rename to js-packages/evm-abi/api/UniqueRefungible.sol diff --git a/js-packages/tests/eth/api/UniqueRefungibleToken.sol b/js-packages/evm-abi/api/UniqueRefungibleToken.sol similarity index 100% rename from js-packages/tests/eth/api/UniqueRefungibleToken.sol rename to js-packages/evm-abi/api/UniqueRefungibleToken.sol diff --git a/js-packages/evm-abi/package.json b/js-packages/evm-abi/package.json new file mode 100644 index 0000000000..afc7a863c4 --- /dev/null +++ b/js-packages/evm-abi/package.json @@ -0,0 +1,12 @@ +{ + "author": "Unique Network", + "license": "Apache 2.0", + "description": "EVM interfaces for Unique Network chains", + "engines": { + "node": ">=18" + }, + "name": "@unique-nft/evm-abi", + "type": "module", + "version": "1.0.0", + "main": "index.js" +} diff --git a/js-packages/package.json b/js-packages/package.json index 553f37fca8..a7f6c65d9f 100644 --- a/js-packages/package.json +++ b/js-packages/package.json @@ -26,8 +26,10 @@ "@types/node": "^20.8.10", "@typescript-eslint/eslint-plugin": "^6.10.0", "@typescript-eslint/parser": "^6.10.0", - "@unique/opal-types": "workspace:*", - "@unique/playgrounds": "workspace:*", + "@unique-nft/evm-abi": "workspace:*", + "@unique-nft/opal-testnet-types": "workspace:*", + "@unique-nft/playgrounds": "workspace:*", + "@unique/test-utils": "workspace:*", "chai": "^4.3.10", "chai-subset": "^1.6.0", "eslint": "^8.53.0", @@ -45,9 +47,9 @@ "prepublish": "yarn tsc", "lint": "eslint --ext .ts .", "fix": "yarn lint --fix", - "polkadot-types-fetch-metadata": "yarn ts-node --esm scripts/fetchMetadata.ts", - "polkadot-types-from-defs": "ts-node --esm ./node_modules/.bin/polkadot-types-from-defs --endpoint scripts/metadata.json --input types/ --package .", - "polkadot-types-from-chain": "ts-node --esm ./node_modules/.bin/polkadot-types-from-chain --endpoint scripts/metadata.json --output types/ --package .", + "polkadot-types-fetch-metadata": "yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm scripts/fetchMetadata.ts", + "polkadot-types-from-defs": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./node_modules/.bin/polkadot-types-from-defs --endpoint scripts/metadata.json --input types/ --package .", + "polkadot-types-from-chain": "node --no-warnings=ExperimentalWarning --loader ts-node/esm ./node_modules/.bin/polkadot-types-from-chain --endpoint scripts/metadata.json --output types/ --package .", "polkadot-types": "echo \"export default {}\" > types/lookup.ts && yarn polkadot-types-fetch-metadata && yarn polkadot-types-from-defs && yarn polkadot-types-from-defs && yarn polkadot-types-from-chain && rm types/registry.ts" }, "resolutions": { @@ -57,8 +59,10 @@ "packageManager": "yarn@3.6.1", "workspaces": [ "types", + "evm-abi", "playgrounds", "scripts", + "test-utils", "tests" ] } diff --git a/js-packages/playgrounds/package.json b/js-packages/playgrounds/package.json index bb4af8cc33..82e0ae5ed9 100644 --- a/js-packages/playgrounds/package.json +++ b/js-packages/playgrounds/package.json @@ -1,18 +1,17 @@ { - "author": "", - "license": "SEE LICENSE IN ../../../LICENSE", - "description": "Playground scripts", + "author": "Unique Network", + "license": "Apache 2.0", + "description": "Helpers for Unique Network chain", "engines": { - "node": ">=16" + "node": ">=18" }, - "name": "@unique/playgrounds", + "name": "@unique-nft/playgrounds", "type": "module", "version": "1.0.0", "main": "unique.js", "dependencies": { "@polkadot/api": "10.10.1", "@polkadot/util": "^12.5.1", - "@polkadot/util-crypto": "^12.5.1", - "@unique/opal-types": "workspace:*" + "@polkadot/util-crypto": "^12.5.1" } } diff --git a/js-packages/tests/util/authorizeEnactUpgrade.ts b/js-packages/scripts/authorizeEnactUpgrade.ts similarity index 91% rename from js-packages/tests/util/authorizeEnactUpgrade.ts rename to js-packages/scripts/authorizeEnactUpgrade.ts index 3bd854fec1..d1b7b80219 100644 --- a/js-packages/tests/util/authorizeEnactUpgrade.ts +++ b/js-packages/scripts/authorizeEnactUpgrade.ts @@ -1,6 +1,6 @@ import {readFile} from 'fs/promises'; import {u8aToHex} from '@polkadot/util'; -import {usingPlaygrounds} from './index.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; import {blake2AsHex} from '@polkadot/util-crypto'; diff --git a/js-packages/scripts/benchmarks/mintFee/index.ts b/js-packages/scripts/benchmarks/mintFee/index.ts index 329c2ecb5d..ffec129c35 100644 --- a/js-packages/scripts/benchmarks/mintFee/index.ts +++ b/js-packages/scripts/benchmarks/mintFee/index.ts @@ -1,36 +1,38 @@ -import {usingEthPlaygrounds} from '@unique/tests/eth/util/index.js'; -import {EthUniqueHelper} from '@unique/tests/eth/util/playgrounds/unique.dev.js'; +import {usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; import {readFile} from 'fs/promises'; -import type {ICrossAccountId} from '@unique/playgrounds/types.js'; +import type {ICrossAccountId} from '@unique-nft/playgrounds/types.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import {UniqueNFTCollection} from '@unique/playgrounds/unique.js'; +import {UniqueNFTCollection} from '@unique-nft/playgrounds/unique.js'; import {Contract} from 'web3-eth-contract'; import {createObjectCsvWriter} from 'csv-writer'; import {convertToTokens, createCollectionForBenchmarks, PERMISSIONS, PROPERTIES} from '../utils/common.js'; -import {makeNames} from '@unique/tests/util/index.js'; -import type {ContractImports} from '@unique/tests/eth/util/playgrounds/types.js'; +import {makeNames} from '@unique/test-utils/util.js'; +import type {ContractImports} from '@unique/test-utils/eth/types.js'; const {dirname} = makeNames(import.meta.url); +const EVM_ABI_DIR = `${dirname}/../../../evm-abi`; + export const CONTRACT_IMPORT: ContractImports[] = [ { - fsPath: `${dirname}/../../../tests/eth/api/CollectionHelpers.sol`, + fsPath: `${EVM_ABI_DIR}/api/CollectionHelpers.sol`, solPath: 'eth/api/CollectionHelpers.sol', }, { - fsPath: `${dirname}/../../../tests/eth/api/ContractHelpers.sol`, + fsPath: `${EVM_ABI_DIR}/api/ContractHelpers.sol`, solPath: 'eth/api/ContractHelpers.sol', }, { - fsPath: `${dirname}/../../../tests/eth/api/UniqueRefungibleToken.sol`, + fsPath: `${EVM_ABI_DIR}/api/UniqueRefungibleToken.sol`, solPath: 'eth/api/UniqueRefungibleToken.sol', }, { - fsPath: `${dirname}/../../../tests/eth/api/UniqueRefungible.sol`, + fsPath: `${EVM_ABI_DIR}/api/UniqueRefungible.sol`, solPath: 'eth/api/UniqueRefungible.sol', }, { - fsPath: `${dirname}/../../../tests/eth/api/UniqueNFT.sol`, + fsPath: `${EVM_ABI_DIR}/api/UniqueNFT.sol`, solPath: 'eth/api/UniqueNFT.sol', }, ]; diff --git a/js-packages/scripts/benchmarks/nesting/index.ts b/js-packages/scripts/benchmarks/nesting/index.ts index 9fc72b559d..749c79d728 100644 --- a/js-packages/scripts/benchmarks/nesting/index.ts +++ b/js-packages/scripts/benchmarks/nesting/index.ts @@ -1,58 +1,60 @@ -import {usingEthPlaygrounds} from '@unique/tests/eth/util/index.js'; -import {EthUniqueHelper} from '@unique/tests/eth/util/playgrounds/unique.dev.js'; +import {usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; import {readFile} from 'fs/promises'; import type {IKeyringPair} from '@polkadot/types/types'; import {Contract} from 'web3-eth-contract'; import {convertToTokens} from '../utils/common.js'; -import {makeNames} from '@unique/tests/util/index.js'; -import type {ContractImports} from '@unique/tests/eth/util/playgrounds/types.js'; +import {makeNames} from '@unique/test-utils/util.js'; +import type {ContractImports} from '@unique/test-utils/eth/types.js'; import type {RMRKNestableMintable} from './ABIGEN/index.js'; const {dirname} = makeNames(import.meta.url); +const NODE_MODULES = `${dirname}/../../../../node_modules`; + export const CONTRACT_IMPORT: ContractImports[] = [ { - fsPath: `${dirname}/../../../../node_modules/@rmrk-team/evm-contracts/contracts/RMRK/nestable/RMRKNestable.sol`, + fsPath: `${NODE_MODULES}/@rmrk-team/evm-contracts/contracts/RMRK/nestable/RMRKNestable.sol`, solPath: '@rmrk-team/evm-contracts/contracts/RMRK/nestable/RMRKNestable.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@rmrk-team/evm-contracts/contracts/RMRK/nestable/IERC6059.sol`, + fsPath: `${NODE_MODULES}/@rmrk-team/evm-contracts/contracts/RMRK/nestable/IERC6059.sol`, solPath: '@rmrk-team/evm-contracts/contracts/RMRK/nestable/IERC6059.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@rmrk-team/evm-contracts/contracts/RMRK/core/RMRKCore.sol`, + fsPath: `${NODE_MODULES}/@rmrk-team/evm-contracts/contracts/RMRK/core/RMRKCore.sol`, solPath: '@rmrk-team/evm-contracts/contracts/RMRK/core/RMRKCore.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol`, + fsPath: `${NODE_MODULES}/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol`, solPath: '@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol`, + fsPath: `${NODE_MODULES}/@openzeppelin/contracts/token/ERC721/IERC721.sol`, solPath: '@openzeppelin/contracts/token/ERC721/IERC721.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol`, + fsPath: `${NODE_MODULES}/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol`, solPath: '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@openzeppelin/contracts/utils/Address.sol`, + fsPath: `${NODE_MODULES}/@openzeppelin/contracts/utils/Address.sol`, solPath: '@openzeppelin/contracts/utils/Address.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@openzeppelin/contracts/utils/Context.sol`, + fsPath: `${NODE_MODULES}/@openzeppelin/contracts/utils/Context.sol`, solPath: '@openzeppelin/contracts/utils/Context.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol`, + fsPath: `${NODE_MODULES}/@openzeppelin/contracts/utils/introspection/IERC165.sol`, solPath: '@openzeppelin/contracts/utils/introspection/IERC165.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@rmrk-team/evm-contracts/contracts/RMRK/library/RMRKErrors.sol`, + fsPath: `${NODE_MODULES}/@rmrk-team/evm-contracts/contracts/RMRK/library/RMRKErrors.sol`, solPath: '@rmrk-team/evm-contracts/contracts/RMRK/library/RMRKErrors.sol', }, { - fsPath: `${dirname}/../../../../node_modules/@rmrk-team/evm-contracts/contracts/RMRK/core/IRMRKCore.sol`, + fsPath: `${NODE_MODULES}/@rmrk-team/evm-contracts/contracts/RMRK/core/IRMRKCore.sol`, solPath: '@rmrk-team/evm-contracts/contracts/RMRK/core/IRMRKCore.sol', }, { diff --git a/js-packages/scripts/benchmarks/opsFee/index.ts b/js-packages/scripts/benchmarks/opsFee/index.ts index 848ee47fb1..7c7e7dce3c 100644 --- a/js-packages/scripts/benchmarks/opsFee/index.ts +++ b/js-packages/scripts/benchmarks/opsFee/index.ts @@ -1,15 +1,15 @@ -import {usingEthPlaygrounds} from '@unique/tests/eth/util/index.js'; -import {EthUniqueHelper} from '@unique/tests/eth/util/playgrounds/unique.dev.js'; +import {usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; import {readFile} from 'fs/promises'; -import {CollectionLimitField, CreateCollectionData, TokenPermissionField} from '@unique/tests/eth/util/playgrounds/types.js'; +import {CollectionLimitField, CreateCollectionData, TokenPermissionField} from '@unique/test-utils/eth/types.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import {UniqueFTCollection, UniqueNFTCollection} from '@unique/playgrounds/unique.js'; +import {UniqueFTCollection, UniqueNFTCollection} from '@unique-nft/playgrounds/unique.js'; import {Contract} from 'web3-eth-contract'; import {createObjectCsvWriter} from 'csv-writer'; import {FunctionFeeVM} from '../utils/types.js'; import type {IFunctionFee} from '../utils/types.js'; import {convertToTokens, createCollectionForBenchmarks, PERMISSIONS, PROPERTIES, SUBS_PROPERTIES} from '../utils/common.js'; -import {makeNames} from '@unique/tests/util/index.js'; +import {makeNames} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); @@ -76,7 +76,7 @@ async function erc721CalculateFeeGas( PERMISSIONS, )) as UniqueNFTCollection; - const helperContract = await helper.ethNativeContract.collectionHelpers(ethSigner); + const helperContract = helper.ethNativeContract.collectionHelpers(ethSigner); let zeppelelinContract: Contract | null = null; const ZEPPELIN_OBJECT = '0x' + (await readFile(`${dirname}/../utils/openZeppelin/ERC721/bin/ZeppelinContract.bin`)).toString(); const ZEPPELIN_ABI = JSON.parse((await readFile(`${dirname}/../utils/openZeppelin/ERC721/bin/ZeppelinContract.abi`)).toString()); diff --git a/js-packages/scripts/benchmarks/utils/common.ts b/js-packages/scripts/benchmarks/utils/common.ts index 8661f799d6..5001bb71f4 100644 --- a/js-packages/scripts/benchmarks/utils/common.ts +++ b/js-packages/scripts/benchmarks/utils/common.ts @@ -1,6 +1,6 @@ -import {EthUniqueHelper} from '@unique/tests/eth/util/playgrounds/unique.dev.js'; -import {UniqueNFTCollection, UniqueRFTCollection} from '@unique/playgrounds/unique.js'; -import type {ITokenPropertyPermission, TCollectionMode} from '@unique/playgrounds/types.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {UniqueNFTCollection, UniqueRFTCollection} from '@unique-nft/playgrounds/unique.js'; +import type {ITokenPropertyPermission, TCollectionMode} from '@unique-nft/playgrounds/types.js'; import type {IKeyringPair} from '@polkadot/types/types'; export const PROPERTIES = Array(40) diff --git a/js-packages/scripts/calibrate.ts b/js-packages/scripts/calibrate.ts index 8d34a27fe3..6e9fadd738 100644 --- a/js-packages/scripts/calibrate.ts +++ b/js-packages/scripts/calibrate.ts @@ -1,6 +1,6 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {usingEthPlaygrounds} from '@unique/tests/eth/util/index.js'; -import {EthUniqueHelper} from '@unique/tests//eth/util/playgrounds/unique.dev.js'; +import {usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; class Fract { static ZERO = new Fract(0n); diff --git a/js-packages/scripts/calibrateApply.ts b/js-packages/scripts/calibrateApply.ts index 96abb37dc0..25539f74fb 100644 --- a/js-packages/scripts/calibrateApply.ts +++ b/js-packages/scripts/calibrateApply.ts @@ -1,6 +1,6 @@ import {readFile, writeFile} from 'fs/promises'; import path from 'path'; -import {makeNames, usingPlaygrounds} from '@unique/tests/util/index.js'; +import {makeNames, usingPlaygrounds} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); diff --git a/js-packages/tests/migrations/correctStateAfterMaintenance.ts b/js-packages/scripts/correctStateAfterMaintenance.ts similarity index 92% rename from js-packages/tests/migrations/correctStateAfterMaintenance.ts rename to js-packages/scripts/correctStateAfterMaintenance.ts index 9428c46ffa..13135381b8 100644 --- a/js-packages/tests/migrations/correctStateAfterMaintenance.ts +++ b/js-packages/scripts/correctStateAfterMaintenance.ts @@ -1,5 +1,5 @@ -import config from '../config.js'; -import {usingPlaygrounds} from '../util/index.js'; +import config from '../tests/config.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; import type {u32} from '@polkadot/types-codec'; const WS_ENDPOINT = config.substrateUrl; @@ -37,7 +37,7 @@ export const main = async(options: { wsEndpoint: string; donorSeed: string } = { const signer = await privateKey(options.donorSeed); const txs = skippedBlocks.map((b) => - api.tx.sudo.sudo(api.tx.appPromotion.forceUnstake(b))); + api.tx.appPromotion.resolveSkippedBlocks(b)); const promises = txs.map((tx) => () => helper.signTransaction(signer, tx)); diff --git a/js-packages/scripts/councilproposal.ts b/js-packages/scripts/councilproposal.ts index e6fd801735..9a823cae3e 100644 --- a/js-packages/scripts/councilproposal.ts +++ b/js-packages/scripts/councilproposal.ts @@ -2,6 +2,11 @@ import {ApiPromise, WsProvider} from '@polkadot/api'; import {blake2AsHex} from '@polkadot/util-crypto'; async function main() { + if(process.argv.length != 4) { + console.log('Usage: yarn councilDemocracyProposal '); + process.exit(1); + } + const networkUrl = process.argv[2]; const democracyProposalContent = process.argv[3]; @@ -24,12 +29,12 @@ async function main() { democracyProposal.method.encodedLength, ).method.toHex(); - const proposeUpgradeBatch = api.tx.utility.batchAll([ + const proposeBatch = api.tx.utility.batchAll([ democracyProposalPreimage, councilProposal, ]); - const encodedCall = proposeUpgradeBatch.method.toHex(); + const encodedCall = proposeBatch.method.toHex(); console.log('-----------------'); console.log('Council Proposal: ', `https://polkadot.js.org/apps/?rpc=${networkUrl}#/extrinsics/decode/${encodedCall}`); diff --git a/js-packages/tests/util/createHrmp.ts b/js-packages/scripts/createHrmp.ts similarity index 89% rename from js-packages/tests/util/createHrmp.ts rename to js-packages/scripts/createHrmp.ts index f1189c31c9..7a131d0543 100644 --- a/js-packages/tests/util/createHrmp.ts +++ b/js-packages/scripts/createHrmp.ts @@ -1,5 +1,5 @@ -import {usingPlaygrounds} from './index.js'; -import config from '../config.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; +import config from '../tests/config.js'; const profile = process.argv[2]; if(!profile) throw new Error('missing profile/relay argument'); @@ -27,6 +27,7 @@ await usingPlaygrounds(async (helper, privateKey) => { await bidirOpen(1001, 1004); await bidirOpen(1001, 1005); await bidirOpen(1001, 1006); + await bidirOpen(1001, 1007); break; default: throw new Error(`unknown hrmp config profile: ${profile}`); diff --git a/js-packages/scripts/generateEnv.ts b/js-packages/scripts/generateEnv.ts index 682f88cc2f..7933d4aa2d 100644 --- a/js-packages/scripts/generateEnv.ts +++ b/js-packages/scripts/generateEnv.ts @@ -1,7 +1,7 @@ import {ApiPromise, WsProvider} from '@polkadot/api'; import {readFile} from 'fs/promises'; import {join} from 'path'; -import {makeNames} from '@unique/tests/util/index.js'; +import {makeNames} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); @@ -26,7 +26,7 @@ function setVar(env: string, key: string, value: string): string { async function ff(url: string, regex: RegExp, rep: string | ((substring: string, ...params:any[]) => string)): Promise { const ver = await fetchVersion(url); if(ver.match(regex) === null) - throw new Error(`bad regex for ${url}`); + throw new Error(`bad regex for ${url}, ${regex} had no matches for ${ver}`); return ver.replace(regex, rep as any); } function fixupUnique(version: string): string { @@ -40,24 +40,24 @@ function fixupUnique(version: string): string { (async () => { let env = (await readFile(join(dirname, '../../.env'))).toString(); await Promise.all([ - ff('wss://rpc.polkadot.io/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'POLKADOT_MAINNET_BRANCH', v)), - ff('wss://statemint-rpc.polkadot.io/', /^(....)$/, 'release-parachains-v$1').then(v => env = setVar(env, 'STATEMINT_BUILD_BRANCH', v)), + // Version from polkadot-fellows + //ff('wss://rpc.polkadot.io/', /^(.)(...)(...)$/, 'v$1.$2.$3').then(v => env = setVar(env, 'POLKADOT_MAINNET_BRANCH', v)), + ff('wss://rococo-rpc.polkadot.io/', /^(.)(...)(...)$/, 'v$1.$2.$3').then(v => env = setVar(env, 'POLKADOT_MAINNET_BRANCH', v)), + // ff('wss://statemint-rpc.polkadot.io/', /^(....)$/, 'release-parachains-v$1').then(v => env = setVar(env, 'STATEMINT_BUILD_BRANCH', v)), ff('wss://acala-rpc-0.aca-api.network/', /^(.)(..)(.)$/, '$1.$2.$3').then(v => env = setVar(env, 'ACALA_BUILD_BRANCH', v)), ff('wss://wss.api.moonbeam.network/', /^(....)$/, 'runtime-$1').then(v => env = setVar(env, 'MOONBEAM_BUILD_BRANCH', v)), - ff('wss://ws.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'UNIQUE_MAINNET_BRANCH', fixupUnique(v))), + ff('wss://ws.unique.network/', /^(........)$/, 'release-v$1').then(v => env = setVar(env, 'UNIQUE_MAINNET_BRANCH', fixupUnique(v))), - ff('wss://kusama-rpc.polkadot.io/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'KUSAMA_MAINNET_BRANCH', v)), - ff('wss://statemine-rpc.polkadot.io/', /^(....)$/, 'release-parachains-v$1').then(v => env = setVar(env, 'STATEMINE_BUILD_BRANCH', v)), + //ff('wss://kusama-rpc.polkadot.io/', /^(.)(...)(...)$/, 'v$1.$2.$3').then(v => env = setVar(env, 'KUSAMA_MAINNET_BRANCH', v)), + ff('wss://rococo-rpc.polkadot.io/', /^(.)(...)(...)$/, 'v$1.$2.$3').then(v => env = setVar(env, 'KUSAMA_MAINNET_BRANCH', v)), + // ff('wss://statemine-rpc.polkadot.io/', /^(....)$/, 'release-parachains-v$1').then(v => env = setVar(env, 'STATEMINE_BUILD_BRANCH', v)), ff('wss://karura-rpc-0.aca-api.network/', /^(.)(..)(.)$/, 'release-karura-$1.$2.$3').then(v => env = setVar(env, 'KARURA_BUILD_BRANCH', v)), ff('wss://wss.api.moonriver.moonbeam.network/', /^(....)$/, 'runtime-$1').then(v => env = setVar(env, 'MOONRIVER_BUILD_BRANCH', v)), - ff('wss://ws-quartz.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'QUARTZ_MAINNET_BRANCH', fixupUnique(v))), + ff('wss://ws-quartz.unique.network/', /^(........)$/, 'release-v$1').then(v => env = setVar(env, 'QUARTZ_MAINNET_BRANCH', fixupUnique(v))), - ff('wss://ws-westend.unique.network/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'UNIQUEWEST_MAINNET_BRANCH', v)), - ff('wss://westmint-rpc.polkadot.io/', /^(....)$/, 'parachains-v$1').then(v => env = setVar(env, 'WESTMINT_BUILD_BRANCH', v)), - ff('wss://ws-opal.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'OPAL_MAINNET_BRANCH', fixupUnique(v))), - - ff('wss://ws-eastend.unique.network/', /^(.)(..)(.)$/, 'release-v0.$1.$2').then(v => env = setVar(env, 'UNIQUEEAST_MAINNET_BRANCH', v)), - ff('wss://ws-sapphire.unique.network/', /^(......)$/, 'release-v$1').then(v => env = setVar(env, 'SAPPHIRE_MAINNET_BRANCH', fixupUnique(v))), + ff('wss://eu-ws-westend.unique.network/', /^(.)(..)(.)$/, 'release-v$1.$2.$3').then(v => env = setVar(env, 'UNIQUEWEST_MAINNET_BRANCH', v)), + ff('wss://westmint-rpc.polkadot.io/', /^(.......)$/, 'bad-branch-v$1').then(v => env = setVar(env, 'WESTMINT_BUILD_BRANCH', v)), + ff('wss://ws-opal.unique.network/', /^(........)$/, 'release-v$1').then(v => env = setVar(env, 'OPAL_MAINNET_BRANCH', fixupUnique(v))), ff('wss://rpc.astar.network/', /^(.+)$/, (_, r) => { switch (r) { @@ -65,6 +65,7 @@ function fixupUnique(version: string): string { case '57': return 'v5.4.0'; case '61': return 'v5.11.0'; case '66': return 'v5.18.0'; + case '88': return 'v5.39.1'; default: throw new Error('unknown astar branch for runtime ' + r); } }).then(v => env = setVar(env, 'ASTAR_BUILD_BRANCH', v)), @@ -75,6 +76,7 @@ function fixupUnique(version: string): string { case '100': return 'v5.10.0'; case '104': return 'v5.15.0'; case '106': return 'v5.18.0'; + case '127': return 'v5.39.1'; default: throw new Error('unknown shiden branch for runtime ' + r); } }).then(v => env = setVar(env, 'SHIDEN_BUILD_BRANCH', v)), diff --git a/js-packages/scripts/generate_types/wait_for_first_block.sh b/js-packages/scripts/generate_types/wait_for_first_block.sh deleted file mode 100755 index 53e7dee19f..0000000000 --- a/js-packages/scripts/generate_types/wait_for_first_block.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env bash - -DIR=$(dirname "$0") - -. "$DIR/functions.sh" - -last_block_id=0 -block_id=0 -function get_block { - block_id_hex=$(do_rpc chain_getHeader | jq -r .result.number) - block_id=$((block_id_hex)) - echo Id = $block_id -} - -function had_new_block { - last_block_id=$block_id - get_block - if (( last_block_id != 0 && block_id > last_block_id )); then - return 0 - fi - return 1 -} - -function reset_check { - last_block_id=0 - block_id=0 -} - -while ! had_new_block; do - echo "Waiting for next block..." - sleep 12 -done -reset_check - -echo "Chain is running, but lets wait for another block after a minute, to avoid startup flakiness." -sleep 60 - -while ! had_new_block; do - echo "Waiting for another block..." - sleep 12 -done - -echo "Chain is running!" diff --git a/js-packages/scripts/hrmpchannel.ts b/js-packages/scripts/hrmpchannel.ts new file mode 100644 index 0000000000..72f2f370a9 --- /dev/null +++ b/js-packages/scripts/hrmpchannel.ts @@ -0,0 +1,214 @@ +import {ApiPromise, WsProvider} from '@polkadot/api'; +import {blake2AsHex, encodeAddress} from '@polkadot/util-crypto'; + +export const paraChildSovereignAccount = (relayApi: ApiPromise, paraid: number) => { + // We are getting a *child* parachain sovereign account, + // so we need a child prefix: encoded(b"para") == 0x70617261 + const childPrefix = '70617261'; + + const encodedParaId = relayApi + .createType('u32', paraid) + .toHex(true) + .substring(2 /* skip 0x */); + + const addrBytesLen = 32; + const byteLenInHex = 2; + return '0x' + (childPrefix + encodedParaId).padEnd(addrBytesLen * byteLenInHex, '0'); +}; + +const proposeOpenChannel = async (relayApi: ApiPromise, relayFee: bigint, senderParaId: number, receiverParaId: number, skipBalanceCheck: boolean) => { + const conf: any = await relayApi.query.configuration.activeConfig() + .then(data => data.toJSON()); + const maxCapacity = conf.hrmpChannelMaxCapacity; + const maxSize = conf.hrmpChannelMaxMessageSize; + + const senderDeposit = BigInt(conf.hrmpSenderDeposit); + + const requiredBalance = relayFee + senderDeposit; + const sovereignAccount = paraChildSovereignAccount(relayApi, senderParaId); + const balance = await relayApi.query.system.account(sovereignAccount) + .then(accountInfo => (accountInfo.toJSON() as any).data.free as bigint); + + if(!skipBalanceCheck && balance < requiredBalance) { + throw Error(`Not enough balance on the sender's sovereign account: balance(${balance}) < requiredBalance(${requiredBalance})`); + } + + return relayApi.tx.hrmp.hrmpInitOpenChannel( + receiverParaId, + maxCapacity, + maxSize, + ).method.toHex(); +}; + +const proposeAcceptChannel = async (relayApi: ApiPromise, relayFee: bigint, senderParaId: number, recipientParaId: number, skipBalanceCheck: boolean) => { + const conf: any = await relayApi.query.configuration.activeConfig() + .then(data => data.toJSON()); + const recipientDeposit = BigInt(conf.hrmpRecipientDeposit); + + const requiredBalance = relayFee + recipientDeposit; + + const sovereignAccount = paraChildSovereignAccount(relayApi, recipientParaId); + const balance = await relayApi.query.system.account(sovereignAccount) + .then(accountInfo => (accountInfo.toJSON() as any).data.free as bigint); + + if(!skipBalanceCheck && balance < requiredBalance) { + throw Error(`Not enough balance on the recipient's sovereign account: balance(${balance}) < requiredBalance(${requiredBalance})`); + } + + return relayApi.tx.hrmp.hrmpAcceptOpenChannel(senderParaId).method.toHex(); +}; + +async function main() { + let skipBalanceCheck; + if(process.argv.length == 6) { + skipBalanceCheck = false; + } + else if(process.argv.length == 7 && process.argv[6] == 'skip-balance-check') { + skipBalanceCheck = true; + } else { + console.log('Usage: yarn hrmpChannel [skip-balance-check]'); + process.exit(1); + } + + const relayUrl = process.argv[2]; + const uniqueParachainUrl = process.argv[3]; + const otherParachainUrl = process.argv[4]; + const op = process.argv[5]; + + const relayWsProvider = new WsProvider(relayUrl); + const relayApi = await ApiPromise.create({provider: relayWsProvider}); + + const uniqueWsProvider = new WsProvider(uniqueParachainUrl); + const uniqueApi = await ApiPromise.create({provider: uniqueWsProvider}); + + const otherWsProvider = new WsProvider(otherParachainUrl); + const otherApi = await ApiPromise.create({provider: otherWsProvider}); + + const uniqueParaId = await uniqueApi.query.parachainInfo.parachainId() + .then(data => data.toJSON() as number); + + const otherParaId = await otherApi.query.parachainInfo.parachainId() + .then(data => data.toJSON() as number); + + const relayDecimals = await relayApi.rpc.system.properties() + .then(data => data.tokenDecimals.unwrap()[0].toNumber()); + + const relayFee = 2n * BigInt(10 ** relayDecimals); + + let encodedRelayCall: string; + + if(op == 'open') { + encodedRelayCall = await proposeOpenChannel(relayApi, relayFee, uniqueParaId, otherParaId, skipBalanceCheck); + } else if(op == 'accept') { + encodedRelayCall = await proposeAcceptChannel(relayApi, relayFee, otherParaId, uniqueParaId, skipBalanceCheck); + } else { + throw Error(`Unknown hrmp channel operation: ${op}`); + } + + const proposal = uniqueApi.tx.polkadotXcm.send( + { + V3: { + parents: 1, + interior: 'Here', + }, + }, + { + V3: [ + { + WithdrawAsset: [ + { + id: { + Concrete: { + parents: 0, + interior: 'Here', + }, + }, + fun: { + Fungible: relayFee, + }, + }, + ], + }, + { + BuyExecution: { + fees: { + id: { + Concrete: { + parents: 0, + interior: 'Here', + }, + }, + fun: { + Fungible: relayFee, + }, + }, + weightLimit: 'Unlimited', + }, + }, + { + Transact: { + originKind: 'Native', + requireWeightAtMost: { + refTime: 1000000000, + proofSize: 65536, + }, + call: { + encoded: encodedRelayCall, + }, + }, + }, + 'RefundSurplus', + { + DepositAsset: { + assets: { + Wild: { + AllCounted: 1, + }, + }, + beneficiary: { + parents: 0, + interior: { + X1: { + Parachain: uniqueParaId, + }, + }, + }, + }, + }, + ], + }, + ).method.toHex(); + + const councilMembers = (await uniqueApi.query.council.members()).toJSON() as any[]; + const councilProposalThreshold = Math.floor(councilMembers.length / 2) + 1; + + const democracyProposalHash = blake2AsHex(proposal, 256); + const democracyProposalPreimage = uniqueApi.tx.preimage.notePreimage(proposal).method.toHex(); + + const democracyProposal = uniqueApi.tx.democracy.externalProposeDefault({ + Legacy: democracyProposalHash, + }); + + const councilProposal = uniqueApi.tx.council.propose( + councilProposalThreshold, + democracyProposal, + democracyProposal.method.encodedLength, + ).method.toHex(); + + const proposeBatch = uniqueApi.tx.utility.batchAll([ + democracyProposalPreimage, + councilProposal, + ]); + + const encodedCall = proposeBatch.method.toHex(); + + console.log('-----------------'); + console.log('Council Proposal: ', `https://polkadot.js.org/apps/?rpc=${uniqueParachainUrl}#/extrinsics/decode/${encodedCall}`); + console.log('-----------------'); + + await relayApi.disconnect(); + await uniqueApi.disconnect(); + await otherApi.disconnect(); +} + +await main(); diff --git a/js-packages/tests/util/identitySetter.ts b/js-packages/scripts/identitySetter.ts similarity index 98% rename from js-packages/tests/util/identitySetter.ts rename to js-packages/scripts/identitySetter.ts index eec506b989..f7180104d4 100644 --- a/js-packages/tests/util/identitySetter.ts +++ b/js-packages/scripts/identitySetter.ts @@ -9,8 +9,8 @@ import {encodeAddress} from '@polkadot/keyring'; import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, Pallets} from './index.js'; -import {ChainHelperBase} from '@unique/playgrounds/unique.js'; +import {usingPlaygrounds, Pallets} from '@unique/test-utils/util.js'; +import {ChainHelperBase} from '@unique-nft/playgrounds/unique.js'; const relayUrl = process.argv[2] ?? 'ws://localhost:9844'; const paraUrl = process.argv[3] ?? 'ws://localhost:9944'; diff --git a/js-packages/scripts/package.json b/js-packages/scripts/package.json index bd30606392..044ed614af 100644 --- a/js-packages/scripts/package.json +++ b/js-packages/scripts/package.json @@ -12,9 +12,10 @@ "scripts": { "benchMintingFee": "yarn ts-node benchmarks/mintFee/benchmark.ts", "loadTransfer": "yarn ts-node transfer.nload.ts", - "generateEnv": "yarn ts-node --esm ./generateEnv.ts", - "propose-upgrade": "yarn ts-node --esm ./proposeupgrade.ts", - "propose-fast-track": "yarn ts-node --esm ./proposefasttrack.ts", - "council-democracy-proposal": "yarn ts-node --esm ./councilproposal.ts" + "generateEnv": "node --loader ts-node/esm ./generateEnv.ts", + "proposeUpgrade": "yarn ts-node --esm ./proposeupgrade.ts", + "proposeFastTrack": "yarn ts-node --esm ./proposefasttrack.ts", + "councilDemocracyProposal": "yarn ts-node --esm ./councilproposal.ts", + "hrmpChannel": "yarn ts-node --esm ./hrmpchannel.ts" } } diff --git a/js-packages/scripts/proposefasttrack.ts b/js-packages/scripts/proposefasttrack.ts index ceac4cf1a9..9e06d33a34 100644 --- a/js-packages/scripts/proposefasttrack.ts +++ b/js-packages/scripts/proposefasttrack.ts @@ -2,20 +2,30 @@ import {ApiPromise, WsProvider} from '@polkadot/api'; import {blake2AsHex} from '@polkadot/util-crypto'; async function main() { + if(process.argv.length != 4) { + console.log('Usage: yarn proposeFastTrack '); + process.exit(1); + } + const networkUrl = process.argv[2]; + const proposal = process.argv[3]; const wsProvider = new WsProvider(networkUrl); const api = await ApiPromise.create({provider: wsProvider}); - const externalDemocracyProposal = (await api.query.democracy.nextExternal() as any).unwrap()[0]; - let proposalHash; - if(externalDemocracyProposal.isInline) { - proposalHash = blake2AsHex(externalDemocracyProposal.asInline, 256); - } else if(externalDemocracyProposal.isLegacy) { - proposalHash = externalDemocracyProposal.asLegacy.toJSON().hash; + + if(proposal == 'existing-external-proposal') { + const externalDemocracyProposal = (await api.query.democracy.nextExternal() as any).unwrap()[0]; + if(externalDemocracyProposal.isInline) { + proposalHash = blake2AsHex(externalDemocracyProposal.asInline, 256); + } else if(externalDemocracyProposal.isLegacy) { + proposalHash = externalDemocracyProposal.asLegacy.toJSON().hash; + } else { + proposalHash = externalDemocracyProposal.asLookup.toJSON().hash; + } } else { - proposalHash = externalDemocracyProposal.asLookup.toJSON().hash; + proposalHash = proposal; } const voringPeriod = 7200; diff --git a/js-packages/scripts/proposeupgrade.ts b/js-packages/scripts/proposeupgrade.ts index f9372a7d6d..48118784f1 100644 --- a/js-packages/scripts/proposeupgrade.ts +++ b/js-packages/scripts/proposeupgrade.ts @@ -3,6 +3,11 @@ import {blake2AsHex} from '@polkadot/util-crypto'; import {readFileSync} from 'fs'; async function main() { + if(process.argv.length != 4) { + console.log('Usage: proposeUpgrade '); + process.exit(1); + } + const networkUrl = process.argv[2]; const wasmFile = process.argv[3]; diff --git a/js-packages/tests/util/relayIdentitiesChecker.ts b/js-packages/scripts/relayIdentitiesChecker.ts similarity index 98% rename from js-packages/tests/util/relayIdentitiesChecker.ts rename to js-packages/scripts/relayIdentitiesChecker.ts index c2003d5c3e..95653cc415 100644 --- a/js-packages/tests/util/relayIdentitiesChecker.ts +++ b/js-packages/scripts/relayIdentitiesChecker.ts @@ -7,7 +7,7 @@ // Example: `yarn checkRelayIdentities wss://polkadot-rpc.dwellir.com wss://kusama-rpc.dwellir.com` import {encodeAddress} from '@polkadot/keyring'; -import {usingPlaygrounds} from './index.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; import {getIdentities, getSubs, getSupers, constructSubInfo} from './identitySetter.js'; const relay1Url = process.argv[2] ?? 'ws://localhost:9844'; diff --git a/js-packages/tests/migrations/runCheckState.ts b/js-packages/scripts/runCheckState.ts similarity index 100% rename from js-packages/tests/migrations/runCheckState.ts rename to js-packages/scripts/runCheckState.ts diff --git a/js-packages/tests/util/setCode.ts b/js-packages/scripts/setCode.ts similarity index 88% rename from js-packages/tests/util/setCode.ts rename to js-packages/scripts/setCode.ts index c7b09494c6..9b3917be70 100644 --- a/js-packages/tests/util/setCode.ts +++ b/js-packages/scripts/setCode.ts @@ -1,6 +1,6 @@ import {readFile} from 'fs/promises'; import {u8aToHex} from '@polkadot/util'; -import {usingPlaygrounds} from './index.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; const codePath = process.argv[2]; if(!codePath) throw new Error('missing code path argument'); diff --git a/js-packages/scripts/transfer.nload.ts b/js-packages/scripts/transfer.nload.ts index 8878d07aab..5ef0b71fb2 100644 --- a/js-packages/scripts/transfer.nload.ts +++ b/js-packages/scripts/transfer.nload.ts @@ -17,8 +17,8 @@ /* eslint-disable @typescript-eslint/no-floating-promises */ import os from 'os'; import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds} from '@unique/tests/util/index.js'; -import {UniqueHelper} from '@unique/playgrounds/unique.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; +import {UniqueHelper} from '@unique-nft/playgrounds/unique.js'; import * as notReallyCluster from 'cluster'; // https://github.com/nodejs/node/issues/42271#issuecomment-1063415346 const cluster = notReallyCluster as unknown as notReallyCluster.Cluster; diff --git a/js-packages/scripts/wait_for_first_block.sh b/js-packages/scripts/wait_for_first_block.sh index 8ef51e6a14..2caf07d8a6 100755 --- a/js-packages/scripts/wait_for_first_block.sh +++ b/js-packages/scripts/wait_for_first_block.sh @@ -6,38 +6,52 @@ DIR=$(dirname "$0") last_block_id=0 block_id=0 +counter=0 function get_block { - block_id_hex=$(do_rpc chain_getHeader | jq -r .result.number) - block_id=$((block_id_hex)) - echo Id = $block_id + block_id_hex=$(do_rpc chain_getHeader | jq -r .result.number) + block_id=$((block_id_hex)) + echo Id = $block_id } function had_new_block { - last_block_id=$block_id - get_block - if (( last_block_id != 0 && block_id > last_block_id )); then - return 0 - fi - return 1 + last_block_id=$block_id + get_block + if (( last_block_id != 0 && block_id > last_block_id )); then + return 0 + fi + return 1 } function reset_check { - last_block_id=0 - block_id=0 + last_block_id=0 + block_id=0 + counter=0 } -while ! had_new_block; do - echo "Waiting for next block..." - sleep 12 +while ! had_new_block ; do + echo "Waiting for another block..." + counter=$((counter+1)) + echo "counter="$counter + sleep 12 + if [ $counter -gt 400 ]; then + exit 1; + fi done + reset_check echo "Chain is running, but lets wait for another block after a minute, to avoid startup flakiness." sleep 60 -while ! had_new_block; do - echo "Waiting for another block..." - sleep 12 +while ! had_new_block ; do + echo "Waiting for another block..." + counter=$((counter+1)) + echo "counter="$counter + sleep 12 + if [ $counter -gt 400 ]; then + exit 1; + fi done + echo "Chain is running!" diff --git a/js-packages/tests/eth/util/playgrounds/unique.dev.ts b/js-packages/test-utils/eth/index.ts similarity index 94% rename from js-packages/tests/eth/util/playgrounds/unique.dev.ts rename to js-packages/test-utils/eth/index.ts index 0041fedaee..6f28f620bf 100644 --- a/js-packages/tests/eth/util/playgrounds/unique.dev.ts +++ b/js-packages/test-utils/eth/index.ts @@ -15,24 +15,24 @@ import solc from 'solc'; import {evmToAddress} from '@polkadot/util-crypto'; import type {IKeyringPair} from '@polkadot/types/types'; -import {ArrangeGroup, DevUniqueHelper} from '@unique/playgrounds/unique.dev.js'; +import {ArrangeGroup, DevUniqueHelper} from '@unique/test-utils/index.js'; import type {ContractImports, CompiledContract, CrossAddress, NormalizedEvent, EthProperty} from './types.js'; import {CollectionMode, CreateCollectionData} from './types.js'; // Native contracts ABI -import collectionHelpersAbi from '../../abi/collectionHelpers.json' assert {type: 'json'}; -import nativeFungibleAbi from '../../abi/nativeFungible.json' assert {type: 'json'}; -import fungibleAbi from '../../abi/fungible.json' assert {type: 'json'}; -import fungibleDeprecatedAbi from '../../abi/fungibleDeprecated.json' assert {type: 'json'}; -import nonFungibleAbi from '../../abi/nonFungible.json' assert {type: 'json'}; -import nonFungibleDeprecatedAbi from '../../abi/nonFungibleDeprecated.json' assert {type: 'json'}; -import refungibleAbi from '../../abi/reFungible.json' assert {type: 'json'}; -import refungibleDeprecatedAbi from '../../abi/reFungibleDeprecated.json' assert {type: 'json'}; -import refungibleTokenAbi from '../../abi/reFungibleToken.json' assert {type: 'json'}; -import refungibleTokenDeprecatedAbi from '../../abi/reFungibleTokenDeprecated.json' assert {type: 'json'}; -import contractHelpersAbi from '../../abi/contractHelpers.json' assert {type: 'json'}; -import type {ICrossAccountId, TEthereumAccount, TCollectionMode} from '@unique/playgrounds/types.js'; +import collectionHelpersAbi from '@unique-nft/evm-abi/abi/collectionHelpers.json' assert {type: 'json'}; +import nativeFungibleAbi from '@unique-nft/evm-abi/abi/nativeFungible.json' assert {type: 'json'}; +import fungibleAbi from '@unique-nft/evm-abi/abi/fungible.json' assert {type: 'json'}; +import fungibleDeprecatedAbi from '@unique-nft/evm-abi/abi/fungibleDeprecated.json' assert {type: 'json'}; +import nonFungibleAbi from '@unique-nft/evm-abi/abi/nonFungible.json' assert {type: 'json'}; +import nonFungibleDeprecatedAbi from '@unique-nft/evm-abi/abi/nonFungibleDeprecated.json' assert {type: 'json'}; +import refungibleAbi from '@unique-nft/evm-abi/abi/reFungible.json' assert {type: 'json'}; +import refungibleDeprecatedAbi from '@unique-nft/evm-abi/abi/reFungibleDeprecated.json' assert {type: 'json'}; +import refungibleTokenAbi from '@unique-nft/evm-abi/abi/reFungibleToken.json' assert {type: 'json'}; +import refungibleTokenDeprecatedAbi from '@unique-nft/evm-abi/abi/reFungibleTokenDeprecated.json' assert {type: 'json'}; +import contractHelpersAbi from '@unique-nft/evm-abi/abi/contractHelpers.json' assert {type: 'json'}; +import type {ICrossAccountId, TEthereumAccount, TCollectionMode} from '@unique-nft/playgrounds/types.js'; class EthGroupBase { helper: EthUniqueHelper; diff --git a/js-packages/tests/eth/util/playgrounds/types.ts b/js-packages/test-utils/eth/types.ts similarity index 95% rename from js-packages/tests/eth/util/playgrounds/types.ts rename to js-packages/test-utils/eth/types.ts index 7a251cb3fe..be40385cfd 100644 --- a/js-packages/tests/eth/util/playgrounds/types.ts +++ b/js-packages/test-utils/eth/types.ts @@ -1,5 +1,5 @@ -import {CollectionFlag} from '@unique/playgrounds/types.js'; -import type {TCollectionMode} from '@unique/playgrounds/types.js'; +import {CollectionFlag} from '@unique-nft/playgrounds/types.js'; +import type {TCollectionMode} from '@unique-nft/playgrounds/types.js'; export interface ContractImports { solPath: string; diff --git a/js-packages/tests/eth/util/index.ts b/js-packages/test-utils/eth/util.ts similarity index 92% rename from js-packages/tests/eth/util/index.ts rename to js-packages/test-utils/eth/util.ts index de521d05b5..0ed39e198a 100644 --- a/js-packages/tests/eth/util/index.ts +++ b/js-packages/test-utils/eth/util.ts @@ -4,17 +4,16 @@ import * as path from 'path'; import type {IKeyringPair} from '@polkadot/types/types'; -import config from '../../config.js'; +import config from '../../tests/config.js'; -import {EthUniqueHelper} from './playgrounds/unique.dev.js'; -import {SilentLogger, SilentConsole} from '@unique/playgrounds/unique.dev.js'; -import {makeNames} from '../../util/index.js'; -import type {SchedKind} from '../../util/index.js'; +import {EthUniqueHelper} from './index.js'; +import {SilentLogger, SilentConsole} from '@unique/test-utils'; +import type {SchedKind} from '@unique/test-utils/util.js'; import chai from 'chai'; import chaiAsPromised from 'chai-as-promised'; import chaiLike from 'chai-like'; -import {getTestSeed, MINIMUM_DONOR_FUND, requirePalletsOrSkip} from '../../util/index.js'; +import {getTestSeed, MINIMUM_DONOR_FUND, requirePalletsOrSkip, makeNames} from '@unique/test-utils/util.js'; chai.use(chaiAsPromised); chai.use(chaiLike); diff --git a/js-packages/tests/util/globalSetup.ts b/js-packages/test-utils/globalSetup.ts similarity index 99% rename from js-packages/tests/util/globalSetup.ts rename to js-packages/test-utils/globalSetup.ts index ab7008158d..22191d93ed 100644 --- a/js-packages/tests/util/globalSetup.ts +++ b/js-packages/test-utils/globalSetup.ts @@ -3,7 +3,7 @@ import { usingPlaygrounds, Pallets, DONOR_FUNDING, MINIMUM_DONOR_FUND, LOCKING_PERIOD, UNLOCKING_PERIOD, makeNames, -} from './index.js'; +} from './util.js'; import * as path from 'path'; import {promises as fs} from 'fs'; diff --git a/js-packages/playgrounds/unique.governance.ts b/js-packages/test-utils/governance.ts similarity index 99% rename from js-packages/playgrounds/unique.governance.ts rename to js-packages/test-utils/governance.ts index e3fa2508f2..fef76e7122 100644 --- a/js-packages/playgrounds/unique.governance.ts +++ b/js-packages/test-utils/governance.ts @@ -1,7 +1,7 @@ import {blake2AsHex} from '@polkadot/util-crypto'; import type {PalletDemocracyConviction} from '@polkadot/types/lookup'; -import type {IPhasicEvent, TSigner} from './types.js'; -import {HelperGroup, UniqueHelper} from './unique.js'; +import type {IPhasicEvent, TSigner} from '@unique-nft/playgrounds/types.js'; +import {HelperGroup, UniqueHelper} from '@unique-nft/playgrounds/unique.js'; export class CollectiveGroup extends HelperGroup { /** diff --git a/js-packages/playgrounds/unique.dev.ts b/js-packages/test-utils/index.ts similarity index 90% rename from js-packages/playgrounds/unique.dev.ts rename to js-packages/test-utils/index.ts index d957ed1db6..5f7831acfb 100644 --- a/js-packages/playgrounds/unique.dev.ts +++ b/js-packages/test-utils/index.ts @@ -1,25 +1,25 @@ // Copyright 2019-2022 Unique Network (Gibraltar) Ltd. // SPDX-License-Identifier: Apache-2.0 -import '@unique/opal-types/augment-api.js'; -import '@unique/opal-types/augment-types.js'; -import '@unique/opal-types/types-lookup.js'; +import '@unique-nft/opal-testnet-types/augment-api.js'; +import '@unique-nft/opal-testnet-types/augment-types.js'; +import '@unique-nft/opal-testnet-types/types-lookup.js'; import {stringToU8a} from '@polkadot/util'; import {blake2AsHex, encodeAddress, mnemonicGenerate} from '@polkadot/util-crypto'; -import type {ChainHelperBaseConstructor, UniqueHelperConstructor} from './unique.js'; -import {UniqueHelper, ChainHelperBase, HelperGroup} from './unique.js'; +import type {ChainHelperBaseConstructor, UniqueHelperConstructor} from '@unique-nft/playgrounds/unique.js'; +import {UniqueHelper, ChainHelperBase, HelperGroup} from '@unique-nft/playgrounds/unique.js'; import {ApiPromise, Keyring, WsProvider} from '@polkadot/api'; -import * as defs from '@unique/opal-types/definitions.js'; +import * as defs from '@unique-nft/opal-testnet-types/definitions.js'; import type {IKeyringPair} from '@polkadot/types/types'; import type {EventRecord} from '@polkadot/types/interfaces'; -import type {ICrossAccountId, ILogger, IPovInfo, ISchedulerOptions, ITransactionResult, TSigner} from './types.js'; +import type {ICrossAccountId, ILogger, IPovInfo, ISchedulerOptions, ITransactionResult, TSigner} from '@unique-nft/playgrounds/types.js'; import type {FrameSystemEventRecord, StagingXcmV2TraitsError, StagingXcmV3TraitsOutcome} from '@polkadot/types/lookup'; import type {SignerOptions, VoidFn} from '@polkadot/api/types'; import {spawnSync} from 'child_process'; -import {AcalaHelper, AstarHelper, MoonbeamHelper, PolkadexHelper, RelayHelper, WestmintHelper, ForeignAssetsGroup, XcmGroup, XTokensGroup, TokensGroup} from './unique.xcm.js'; -import {CollectiveGroup, CollectiveMembershipGroup, DemocracyGroup, RankedCollectiveGroup, ReferendaGroup} from './unique.governance.js'; -import type {ICollectiveGroup, IFellowshipGroup} from './unique.governance.js'; +import {AcalaHelper, AstarHelper, MoonbeamHelper, PolkadexHelper, RelayHelper, WestmintHelper, ForeignAssetsGroup, XcmGroup, XTokensGroup, TokensGroup, HydraDxHelper} from './xcm/index.js'; +import {CollectiveGroup, CollectiveMembershipGroup, DemocracyGroup, RankedCollectiveGroup, ReferendaGroup} from './governance.js'; +import type {ICollectiveGroup, IFellowshipGroup} from './governance.js'; export class SilentLogger { log(_msg: any, _level: any): void { } @@ -214,6 +214,23 @@ export class Event { })); }; + static FinCouncil = class extends EventSection('financialCouncil') { + static Proposed = this.Method('Proposed', data => ({ + account: eventHumanData(data, 0), + proposalIndex: eventJsonData(data, 1), + proposalHash: eventHumanData(data, 2), + threshold: eventJsonData(data, 3), + })); + static Closed = this.Method('Closed', data => ({ + proposalHash: eventHumanData(data, 0), + yes: eventJsonData(data, 1), + no: eventJsonData(data, 2), + })); + static Executed = this.Method('Executed', data => ({ + proposalHash: eventHumanData(data, 0), + })); + }; + static TechnicalCommittee = class extends EventSection('technicalCommittee') { static Proposed = this.Method('Proposed', data => ({ account: eventHumanData(data, 0), @@ -475,6 +492,7 @@ export class DevUniqueHelper extends UniqueHelper { scheduler: SchedulerGroup; collatorSelection: CollatorSelectionGroup; council: ICollectiveGroup; + finCouncil: ICollectiveGroup; technicalCommittee: ICollectiveGroup; fellowship: IFellowshipGroup; democracy: DemocracyGroup; @@ -498,6 +516,10 @@ export class DevUniqueHelper extends UniqueHelper { collective: new CollectiveGroup(this, 'council'), membership: new CollectiveMembershipGroup(this, 'councilMembership'), }; + this.finCouncil = { + collective: new CollectiveGroup(this, 'financialCouncil'), + membership: new CollectiveMembershipGroup(this, 'financialCouncilMembership'), + }; this.technicalCommittee = { collective: new CollectiveGroup(this, 'technicalCommittee'), membership: new CollectiveMembershipGroup(this, 'technicalCommitteeMembership'), @@ -667,6 +689,20 @@ export class DevPolkadexHelper extends PolkadexHelper { } } +export class DevHydraDxHelper extends HydraDxHelper { + wait: WaitGroup; + fastDemocracy: HydraFastDemocracyGroup; + + constructor(logger: { log: (msg: any, level: any) => void, level: any }, options: {[key: string]: any} = {}) { + options.helperBase = options.helperBase ?? DevHydraDxHelper; + + super(logger, options); + + this.wait = new WaitGroup(this); + this.fastDemocracy = new HydraFastDemocracyGroup(this); + } +} + export class DevKaruraHelper extends DevAcalaHelper {} export class ArrangeGroup { @@ -1150,6 +1186,91 @@ class MoonbeamFastDemocracyGroup { } } +class HydraFastDemocracyGroup { + helper: DevHydraDxHelper; + + constructor(helper: DevHydraDxHelper) { + this.helper = helper; + } + + async executeProposal(proposalDesciption: string, encodedProposal: string) { + const proposalHash = blake2AsHex(encodedProposal); + const aliceAccount = this.helper.util.fromSeed('//Alice'); + const bobAccount = this.helper.util.fromSeed('//Bob'); + const eveAccount = this.helper.util.fromSeed('//Eve'); + + const councilVotingThreshold = 1; + const technicalCommitteeThreshold = 3; + const fastTrackVotingPeriod = 3; + const fastTrackDelayPeriod = 0; + + console.log(`[democracy] executing '${proposalDesciption}' proposal`); + + // >>> Propose external motion through council >>> + console.log('\t* Propose external motion through council.......'); + const externalMotion = this.helper.democracy.externalProposeMajority({Inline: encodedProposal}); + const encodedMotion = externalMotion?.method.toHex() || ''; + const motionHash = blake2AsHex(encodedMotion); + console.log('\t* Motion hash is %s', motionHash); + + await this.helper.collective.council.propose( + aliceAccount, + councilVotingThreshold, + externalMotion, + externalMotion.encodedLength, + ); + + console.log('\t* Propose external motion through council.......DONE'); + // <<< Propose external motion through council <<< + + // >>> Fast track proposal through technical committee >>> + console.log('\t* Fast track proposal through technical committee.......'); + const fastTrack = this.helper.democracy.fastTrack(proposalHash, fastTrackVotingPeriod, fastTrackDelayPeriod); + const encodedFastTrack = fastTrack?.method.toHex() || ''; + const fastTrackHash = blake2AsHex(encodedFastTrack); + console.log('\t* FastTrack hash is %s', fastTrackHash); + + await this.helper.collective.techCommittee.propose(aliceAccount, technicalCommitteeThreshold, fastTrack, fastTrack.encodedLength); + + const techProposalIdx = await this.helper.collective.techCommittee.proposalCount() - 1; + await this.helper.collective.techCommittee.vote(aliceAccount, fastTrackHash, techProposalIdx, true); + await this.helper.collective.techCommittee.vote(bobAccount, fastTrackHash, techProposalIdx, true); + await this.helper.collective.techCommittee.vote(eveAccount, fastTrackHash, techProposalIdx, true); + + await this.helper.collective.techCommittee.close( + bobAccount, + fastTrackHash, + techProposalIdx, + { + refTime: 1_000_000_000, + proofSize: 1_000_000, + }, + fastTrack.encodedLength, + ); + console.log('\t* Fast track proposal through technical committee.......DONE'); + // <<< Fast track proposal through technical committee <<< + + const democracyStarted = await this.helper.wait.expectEvent(3, Event.Democracy.Started); + const referendumIndex = democracyStarted.referendumIndex; + + // >>> Referendum voting >>> + console.log(`\t* Referendum #${referendumIndex} voting.......`); + await this.helper.democracy.referendumVote(eveAccount, referendumIndex, { + balance: 10_000_000_000_000_000_000n, + vote: {aye: true, conviction: 1}, + }); + console.log(`\t* Referendum #${referendumIndex} voting.......DONE`); + // <<< Referendum voting <<< + + // Wait the proposal to pass + await this.helper.wait.expectEvent(3, Event.Democracy.Passed, event => event.referendumIndex == referendumIndex); + + await this.helper.wait.newBlocks(1); + + console.log(`[democracy] executing '${proposalDesciption}' proposal.......DONE`); + } +} + class WaitGroup { helper: ChainHelperBase; diff --git a/js-packages/test-utils/package.json b/js-packages/test-utils/package.json new file mode 100644 index 0000000000..6e2f4e588d --- /dev/null +++ b/js-packages/test-utils/package.json @@ -0,0 +1,18 @@ +{ + "author": "", + "license": "SEE LICENSE IN ../../../LICENSE", + "description": "Playground scripts", + "engines": { + "node": ">=16" + }, + "name": "@unique/test-utils", + "type": "module", + "version": "1.0.0", + "main": "index.js", + "dependencies": { + "@polkadot/api": "10.10.1", + "@polkadot/util": "^12.5.1", + "@polkadot/util-crypto": "^12.5.1", + "@unique-nft/opal-testnet-types": "workspace:*" + } +} diff --git a/js-packages/tests/util/index.ts b/js-packages/test-utils/util.ts similarity index 95% rename from js-packages/tests/util/index.ts rename to js-packages/test-utils/util.ts index b265eb7490..8836c1136f 100644 --- a/js-packages/tests/util/index.ts +++ b/js-packages/test-utils/util.ts @@ -8,10 +8,10 @@ import chai from 'chai'; import chaiAsPromised from 'chai-as-promised'; import chaiSubset from 'chai-subset'; import {Context} from 'mocha'; -import config from '../config.js'; -import {ChainHelperBase} from '@unique/playgrounds/unique.js'; -import type {ILogger} from '@unique/playgrounds/types.js'; -import {DevUniqueHelper, SilentLogger, SilentConsole, DevMoonbeamHelper, DevMoonriverHelper, DevAcalaHelper, DevKaruraHelper, DevRelayHelper, DevWestmintHelper, DevStatemineHelper, DevStatemintHelper, DevAstarHelper, DevShidenHelper, DevPolkadexHelper} from '@unique/playgrounds/unique.dev.js'; +import config from '../tests/config.js'; +import {ChainHelperBase} from '@unique-nft/playgrounds/unique.js'; +import type {ILogger} from '@unique-nft/playgrounds/types.js'; +import {DevUniqueHelper, SilentLogger, SilentConsole, DevMoonbeamHelper, DevMoonriverHelper, DevAcalaHelper, DevKaruraHelper, DevRelayHelper, DevWestmintHelper, DevStatemineHelper, DevStatemintHelper, DevAstarHelper, DevShidenHelper, DevPolkadexHelper, DevHydraDxHelper} from '@unique/test-utils'; import {dirname} from 'path'; import {fileURLToPath} from 'url'; @@ -91,6 +91,8 @@ export const usingShidenPlaygrounds = (url: string, code: (helper: DevShidenHelp export const usingPolkadexPlaygrounds = (url: string, code: (helper: DevPolkadexHelper, privateKey: (seed: string) => Promise) => Promise) => usingPlaygroundsGeneral(DevPolkadexHelper, url, code); +export const usingHydraDxPlaygrounds = (url: string, code: (helper: DevHydraDxHelper, privateKey: (seed: string) => Promise) => Promise) => usingPlaygroundsGeneral(DevHydraDxHelper, url, code); + export const MINIMUM_DONOR_FUND = 4_000_000n; export const DONOR_FUNDING = 4_000_000n; diff --git a/js-packages/playgrounds/unique.xcm.ts b/js-packages/test-utils/xcm/index.ts similarity index 80% rename from js-packages/playgrounds/unique.xcm.ts rename to js-packages/test-utils/xcm/index.ts index bb0bdc6dd7..a48e6b233f 100644 --- a/js-packages/playgrounds/unique.xcm.ts +++ b/js-packages/test-utils/xcm/index.ts @@ -1,8 +1,8 @@ import {ApiPromise, WsProvider} from '@polkadot/api'; import type {IKeyringPair} from '@polkadot/types/types'; -import {ChainHelperBase, EthereumBalanceGroup, HelperGroup, SubstrateBalanceGroup, UniqueHelper} from './unique.js'; -import type {ILogger, TSigner, TSubstrateAccount} from './types.js'; -import type {AcalaAssetMetadata, DemocracyStandardAccountVote, MoonbeamAssetInfo} from './types.xcm.js'; +import {ChainHelperBase, EthereumBalanceGroup, HelperGroup, SubstrateBalanceGroup, UniqueHelper} from '@unique-nft/playgrounds/unique.js'; +import type {ILogger, TSigner} from '@unique-nft/playgrounds/types.js'; +import type {AcalaAssetMetadata, DemocracyStandardAccountVote, MoonbeamAssetInfo} from './types.js'; export class XcmChainHelper extends ChainHelperBase { @@ -71,6 +71,31 @@ class MoonbeamDemocracyGroup extends HelperGroup { } } +class DemocracyGroup extends HelperGroup { + notePreimagePallet: string; + + constructor(helper: T, options: { [key: string]: any } = {}) { + super(helper); + this.notePreimagePallet = options.notePreimagePallet; + } + + async notePreimage(signer: TSigner, encodedProposal: string) { + await this.helper.executeExtrinsic(signer, `api.tx.${this.notePreimagePallet}.notePreimage`, [encodedProposal], true); + } + + externalProposeMajority(proposal: any) { + return this.helper.constructApiCall('api.tx.democracy.externalProposeMajority', [proposal]); + } + + fastTrack(proposalHash: string, votingPeriod: number, delayPeriod: number) { + return this.helper.constructApiCall('api.tx.democracy.fastTrack', [proposalHash, votingPeriod, delayPeriod]); + } + + async referendumVote(signer: TSigner, referendumIndex: number, accountVote: DemocracyStandardAccountVote) { + await this.helper.executeExtrinsic(signer, 'api.tx.democracy.vote', [referendumIndex, {Standard: accountVote}], true); + } +} + class MoonbeamCollectiveGroup extends HelperGroup { collective: string; @@ -97,6 +122,31 @@ class MoonbeamCollectiveGroup extends HelperGroup { } } +class CollectiveGroup extends HelperGroup { + collective: string; + + constructor(helper: T, palletName: string) { + super(helper); + + this.collective = palletName; + } + + async propose(signer: TSigner, threshold: number, proposalHash: string, lengthBound: number) { + await this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.propose`, [threshold, proposalHash, lengthBound], true); + } + + async vote(signer: TSigner, proposalHash: string, proposalIndex: number, approve: boolean) { + await this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.vote`, [proposalHash, proposalIndex, approve], true); + } + + async close(signer: TSigner, proposalHash: string, proposalIndex: number, weightBound: any, lengthBound: number) { + await this.helper.executeExtrinsic(signer, `api.tx.${this.collective}.close`, [proposalHash, proposalIndex, weightBound, lengthBound], true); + } + + async proposalCount() { + return Number(await this.helper.callRpc(`api.query.${this.collective}.proposalCount`, [])); + } +} class PolkadexXcmHelperGroup extends HelperGroup { async whitelistToken(signer: TSigner, assetId: any) { await this.helper.executeExtrinsic(signer, 'api.tx.xcmHelper.whitelistToken', [assetId], true); @@ -372,3 +422,28 @@ export class PolkadexHelper extends XcmChainHelper { } } +export class HydraDxHelper extends XcmChainHelper { + balance: SubstrateBalanceGroup; + xcm: XcmGroup; + xTokens: XTokensGroup; + democracy: DemocracyGroup; + collective: { + council: CollectiveGroup, + techCommittee: CollectiveGroup, + }; + + constructor(logger?: ILogger, options: { [key: string]: any } = {}) { + super(logger, options.helperBase ?? HydraDxHelper); + options.notePreimagePallet = options.notePreimagePallet ?? 'preimage'; + + this.balance = new SubstrateBalanceGroup(this); + this.xcm = new XcmGroup(this, 'polkadotXcm'); + this.xTokens = new XTokensGroup(this); + this.democracy = new DemocracyGroup(this, options); + this.collective = { + council: new CollectiveGroup(this, 'council'), + techCommittee: new CollectiveGroup(this, 'technicalCommittee'), + }; + } +} + diff --git a/js-packages/playgrounds/types.xcm.ts b/js-packages/test-utils/xcm/types.ts similarity index 100% rename from js-packages/playgrounds/types.xcm.ts rename to js-packages/test-utils/xcm/types.ts diff --git a/js-packages/tests/addCollectionAdmin.test.ts b/js-packages/tests/addCollectionAdmin.test.ts index d53f36622b..aaa91d2a15 100644 --- a/js-packages/tests/addCollectionAdmin.test.ts +++ b/js-packages/tests/addCollectionAdmin.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('Integration Test addCollectionAdmin(collection_id, new_admin_id):', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/adminTransferAndBurn.test.ts b/js-packages/tests/adminTransferAndBurn.test.ts index bf60b55d4c..7b1f4f606d 100644 --- a/js-packages/tests/adminTransferAndBurn.test.ts +++ b/js-packages/tests/adminTransferAndBurn.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub} from './util/index.js'; +import {usingPlaygrounds, expect, itSub} from '@unique/test-utils/util.js'; describe('Integration Test: ownerCanTransfer allows admins to use only transferFrom/burnFrom:', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/allowLists.test.ts b/js-packages/tests/allowLists.test.ts index 4c2f899c4c..498b1b88df 100644 --- a/js-packages/tests/allowLists.test.ts +++ b/js-packages/tests/allowLists.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub} from './util/index.js'; -import type {ICollectionPermissions} from '@unique/playgrounds/types.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, expect, itSub} from '@unique/test-utils/util.js'; +import type {ICollectionPermissions} from '@unique-nft/playgrounds/types.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('Integration Test ext. Allow list tests', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/apiConsts.test.ts b/js-packages/tests/apiConsts.test.ts index f87cb0f18d..c54deef5d9 100644 --- a/js-packages/tests/apiConsts.test.ts +++ b/js-packages/tests/apiConsts.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import {ApiPromise} from '@polkadot/api'; -import {usingPlaygrounds, itSub, expect, COLLECTION_HELPER, CONTRACT_HELPER} from './util/index.js'; +import {usingPlaygrounds, itSub, expect, COLLECTION_HELPER, CONTRACT_HELPER} from '@unique/test-utils/util.js'; const MAX_COLLECTION_DESCRIPTION_LENGTH = 256n; diff --git a/js-packages/tests/approve.test.ts b/js-packages/tests/approve.test.ts index cd1a176c68..074f07d51e 100644 --- a/js-packages/tests/approve.test.ts +++ b/js-packages/tests/approve.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, usingPlaygrounds} from './util/index.js'; -import {CrossAccountId} from '@unique/playgrounds/unique.js'; +import {expect, itSub, Pallets, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {CrossAccountId} from '@unique-nft/playgrounds/unique.js'; diff --git a/js-packages/tests/burnItem.test.ts b/js-packages/tests/burnItem.test.ts index 82551d06e2..4046c03ad9 100644 --- a/js-packages/tests/burnItem.test.ts +++ b/js-packages/tests/burnItem.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from './util/index.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; describe('integration test: ext. burnItem():', () => { diff --git a/js-packages/tests/change-collection-owner.test.ts b/js-packages/tests/change-collection-owner.test.ts index 2c1c97111b..9ca3479d09 100644 --- a/js-packages/tests/change-collection-owner.test.ts +++ b/js-packages/tests/change-collection-owner.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, expect, itSub} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('Integration Test changeCollectionOwner(collection_id, new_owner):', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/config.ts b/js-packages/tests/config.ts index 4c826d0ab3..4f8a3f18d5 100644 --- a/js-packages/tests/config.ts +++ b/js-packages/tests/config.ts @@ -29,6 +29,7 @@ const config = { statemineUrl: process.env.RELAY_STATEMINE_URL || 'ws://127.0.0.1:9948', statemintUrl: process.env.RELAY_STATEMINT_URL || 'ws://127.0.0.1:9948', polkadexUrl: process.env.RELAY_POLKADEX_URL || 'ws://127.0.0.1:9950', + hydraDxUrl: process.env.RELAY_HYDRADX_URL || 'ws://127.0.0.1:9951', }; export default config; diff --git a/js-packages/tests/confirmSponsorship.test.ts b/js-packages/tests/confirmSponsorship.test.ts index 4f471acd52..315cfc3e25 100644 --- a/js-packages/tests/confirmSponsorship.test.ts +++ b/js-packages/tests/confirmSponsorship.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub, Pallets} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, expect, itSub, Pallets} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; async function setSponsorHelper(collection: any, signer: IKeyringPair, sponsorAddress: string) { await collection.setSponsor(signer, sponsorAddress); diff --git a/js-packages/tests/connection.test.ts b/js-packages/tests/connection.test.ts index 48ee110ed9..848efa1b67 100644 --- a/js-packages/tests/connection.test.ts +++ b/js-packages/tests/connection.test.ts @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {itSub, expect, usingPlaygrounds} from './util/index.js'; +import {itSub, expect, usingPlaygrounds} from '@unique/test-utils/util.js'; describe('Connection smoke test', () => { itSub('Connection can be established', async ({helper}) => { diff --git a/js-packages/tests/createCollection.test.ts b/js-packages/tests/createCollection.test.ts index e340dccb6b..81cb5234cc 100644 --- a/js-packages/tests/createCollection.test.ts +++ b/js-packages/tests/createCollection.test.ts @@ -15,10 +15,10 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub, Pallets} from './util/index.js'; -import {CollectionFlag} from '@unique/playgrounds/types.js'; -import type {ICollectionCreationOptions, IProperty} from '@unique/playgrounds/types.js'; -import {UniqueHelper} from '@unique/playgrounds/unique.js'; +import {usingPlaygrounds, expect, itSub, Pallets} from '@unique/test-utils/util.js'; +import {CollectionFlag} from '@unique-nft/playgrounds/types.js'; +import type {ICollectionCreationOptions, IProperty} from '@unique-nft/playgrounds/types.js'; +import {UniqueHelper} from '@unique-nft/playgrounds/unique.js'; async function mintCollectionHelper(helper: UniqueHelper, signer: IKeyringPair, options: ICollectionCreationOptions, type?: 'nft' | 'fungible' | 'refungible') { let collection; diff --git a/js-packages/tests/createItem.test.ts b/js-packages/tests/createItem.test.ts index 5b15792a18..8252b6d6ce 100644 --- a/js-packages/tests/createItem.test.ts +++ b/js-packages/tests/createItem.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub, Pallets} from './util/index.js'; -import type {IProperty, ICrossAccountId} from '@unique/playgrounds/types.js'; -import {UniqueHelper} from '@unique/playgrounds/unique.js'; +import {usingPlaygrounds, expect, itSub, Pallets} from '@unique/test-utils/util.js'; +import type {IProperty, ICrossAccountId} from '@unique-nft/playgrounds/types.js'; +import {UniqueHelper} from '@unique-nft/playgrounds/unique.js'; async function mintTokenHelper(helper: UniqueHelper, collection: any, signer: IKeyringPair, owner: ICrossAccountId, type: 'nft' | 'fungible' | 'refungible'='nft', properties?: IProperty[]) { let token; diff --git a/js-packages/tests/createMultipleItems.test.ts b/js-packages/tests/createMultipleItems.test.ts index 6df4480493..4acdbba8cc 100644 --- a/js-packages/tests/createMultipleItems.test.ts +++ b/js-packages/tests/createMultipleItems.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, Pallets, itSub} from './util/index.js'; +import {usingPlaygrounds, expect, Pallets, itSub} from '@unique/test-utils/util.js'; describe('Integration Test createMultipleItems(collection_id, owner, items_data):', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/createMultipleItemsEx.test.ts b/js-packages/tests/createMultipleItemsEx.test.ts index 9bd8f9e7cb..fb924de7bb 100644 --- a/js-packages/tests/createMultipleItemsEx.test.ts +++ b/js-packages/tests/createMultipleItemsEx.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, Pallets, itSub} from './util/index.js'; -import type {IProperty} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, expect, Pallets, itSub} from '@unique/test-utils/util.js'; +import type {IProperty} from '@unique-nft/playgrounds/types.js'; describe('Integration Test: createMultipleItemsEx', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/creditFeesToTreasury.seqtest.ts b/js-packages/tests/creditFeesToTreasury.seqtest.ts index 5a8a26fd42..581a8d67a9 100644 --- a/js-packages/tests/creditFeesToTreasury.seqtest.ts +++ b/js-packages/tests/creditFeesToTreasury.seqtest.ts @@ -16,8 +16,10 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {ApiPromise} from '@polkadot/api'; -import {usingPlaygrounds, expect, itSub} from './util/index.js'; +import {usingPlaygrounds, expect, itSub} from '@unique/test-utils/util.js'; import type {u32} from '@polkadot/types-codec'; +import { itEth } from '@unique/test-utils/eth/util.js'; +import { ITransactionResult } from '@unique-nft/playgrounds/types'; const TREASURY = '5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z'; const saneMinimumFee = 0.05; @@ -163,4 +165,36 @@ describe('integration test: Fees must be credited to Treasury:', () => { expect(Math.abs(fee - expectedTransferFee)).to.be.lessThan(tolerance); }); + + itEth('Evm Transactions send fees to Treasury', async ({helper}) => { + const value = helper.balance.getOneTokenNominal(); + const gasPrice = await helper.getWeb3().eth.getGasPrice(); + let result = null; + + const lambda = async () => { + result = await helper.executeExtrinsic(alice, 'api.tx.evm.call', [ + helper.address.substrateToEth(alice.address), + helper.address.substrateToEth(bob.address), + '0x', + value, + 25_000, + gasPrice, + null, + null, + [], + ]); + }; + + const totalPaid = await helper.arrange.calculcateFee({ Substrate: alice.address }, lambda); + const evmFees = totalPaid - value; + + const treasuryDepoosited = (result as unknown as ITransactionResult).result.events + .filter(({ event: { method, section } }) => section == 'treasury' && method == 'Deposit') + .map(({ event: { data } }) => data[0].toJSON()); + + const deposit = BigInt(treasuryDepoosited[0]); + + expect(deposit).to.be.equal(evmFees); + }); + }); diff --git a/js-packages/tests/destroyCollection.test.ts b/js-packages/tests/destroyCollection.test.ts index 06ad8a7e0a..f2a8e6e248 100644 --- a/js-packages/tests/destroyCollection.test.ts +++ b/js-packages/tests/destroyCollection.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, expect, usingPlaygrounds, Pallets} from './util/index.js'; +import {itSub, expect, usingPlaygrounds, Pallets} from '@unique/test-utils/util.js'; describe('integration test: ext. destroyCollection():', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/enableDisableTransfer.test.ts b/js-packages/tests/enableDisableTransfer.test.ts index 325269a95a..4880c450f8 100644 --- a/js-packages/tests/enableDisableTransfer.test.ts +++ b/js-packages/tests/enableDisableTransfer.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; describe('Enable/Disable Transfers', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/eth/allowlist.test.ts b/js-packages/tests/eth/allowlist.test.ts index b21367e5a8..cda490d5d4 100644 --- a/js-packages/tests/eth/allowlist.test.ts +++ b/js-packages/tests/eth/allowlist.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {Pallets} from '../util/index.js'; -import {itEth, usingEthPlaygrounds, expect, SponsoringMode} from './util/index.js'; -import {CreateCollectionData} from './util/playgrounds/types.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import {itEth, usingEthPlaygrounds, expect, SponsoringMode} from '@unique/test-utils/eth/util.js'; +import {CreateCollectionData} from '@unique/test-utils/eth/types.js'; describe('EVM contract allowlist', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/base.test.ts b/js-packages/tests/eth/base.test.ts index 67ace6ff04..c5c71b3829 100644 --- a/js-packages/tests/eth/base.test.ts +++ b/js-packages/tests/eth/base.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, usingEthPlaygrounds, expect} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; describe('Contract calls', () => { diff --git a/js-packages/tests/eth/collectionAdmin.test.ts b/js-packages/tests/eth/collectionAdmin.test.ts index 38f73697ae..f05d96529f 100644 --- a/js-packages/tests/eth/collectionAdmin.test.ts +++ b/js-packages/tests/eth/collectionAdmin.test.ts @@ -15,11 +15,11 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {expect} from 'chai'; -import {Pallets} from '../util/index.js'; -import type {IEthCrossAccountId} from '@unique/playgrounds/types.js'; -import {usingEthPlaygrounds, itEth} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; -import {CreateCollectionData} from './util/playgrounds/types.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import type {IEthCrossAccountId} from '@unique-nft/playgrounds/types.js'; +import {usingEthPlaygrounds, itEth} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {CreateCollectionData} from '@unique/test-utils/eth/types.js'; async function recordEthFee(helper: EthUniqueHelper, userAddress: string, call: () => Promise) { const before = await helper.balance.getSubstrate(helper.address.ethToSubstrate(userAddress)); diff --git a/js-packages/tests/eth/collectionHelperAddress.test.ts b/js-packages/tests/eth/collectionHelperAddress.test.ts index 899d6d1e36..12ab85883d 100644 --- a/js-packages/tests/eth/collectionHelperAddress.test.ts +++ b/js-packages/tests/eth/collectionHelperAddress.test.ts @@ -14,9 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {itEth, usingEthPlaygrounds, expect} from './util/index.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import {COLLECTION_HELPER, Pallets} from '../util/index.js'; +import {COLLECTION_HELPER, Pallets} from '@unique/test-utils/util.js'; describe('[eth]CollectionHelperAddress test: ERC20/ERC721 ', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/collectionLimits.test.ts b/js-packages/tests/eth/collectionLimits.test.ts index d1e69e35b0..9314f3beb9 100644 --- a/js-packages/tests/eth/collectionLimits.test.ts +++ b/js-packages/tests/eth/collectionLimits.test.ts @@ -1,7 +1,7 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {Pallets} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import {CollectionLimitField, CreateCollectionData} from './util/playgrounds/types.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {CollectionLimitField, CreateCollectionData} from '@unique/test-utils/eth/types.js'; describe('Can set collection limits', () => { diff --git a/js-packages/tests/eth/collectionProperties.test.ts b/js-packages/tests/eth/collectionProperties.test.ts index 1740b30a21..d764a1554e 100644 --- a/js-packages/tests/eth/collectionProperties.test.ts +++ b/js-packages/tests/eth/collectionProperties.test.ts @@ -14,9 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {itEth, usingEthPlaygrounds, expect} from './util/index.js'; -import {Pallets} from '../util/index.js'; -import type {IProperty, ITokenPropertyPermission} from '@unique/playgrounds/types.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import type {IProperty, ITokenPropertyPermission} from '@unique-nft/playgrounds/types.js'; import type {IKeyringPair} from '@polkadot/types/types'; describe('EVM collection properties', () => { diff --git a/js-packages/tests/eth/collectionSponsoring.test.ts b/js-packages/tests/eth/collectionSponsoring.test.ts index 8f1b653c69..c6e83ec0df 100644 --- a/js-packages/tests/eth/collectionSponsoring.test.ts +++ b/js-packages/tests/eth/collectionSponsoring.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {Pallets, requirePalletsOrSkip, usingPlaygrounds} from '../util/index.js'; -import {itEth, expect} from './util/index.js'; -import {CollectionLimitField, TokenPermissionField} from './util/playgrounds/types.js'; +import {Pallets, requirePalletsOrSkip, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {itEth, expect} from '@unique/test-utils/eth/util.js'; +import {CollectionLimitField, TokenPermissionField} from '@unique/test-utils/eth/types.js'; describe('evm nft collection sponsoring', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/contractSponsoring.test.ts b/js-packages/tests/eth/contractSponsoring.test.ts index ea3b3daae2..3cc79011ca 100644 --- a/js-packages/tests/eth/contractSponsoring.test.ts +++ b/js-packages/tests/eth/contractSponsoring.test.ts @@ -15,10 +15,10 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; -import {itEth, expect, SponsoringMode, usingEthPlaygrounds} from './util/index.js'; -import {usingPlaygrounds} from '../util/index.js'; -import type {CompiledContract} from './util/playgrounds/types.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {itEth, expect, SponsoringMode, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; +import type {CompiledContract} from '@unique/test-utils/eth/types.js'; describe('Sponsoring EVM contracts', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/createCollection.test.ts b/js-packages/tests/eth/createCollection.test.ts index e43c6c69b7..44effd784a 100644 --- a/js-packages/tests/eth/createCollection.test.ts +++ b/js-packages/tests/eth/createCollection.test.ts @@ -16,11 +16,11 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {evmToAddress} from '@polkadot/util-crypto'; -import {Pallets, requirePalletsOrSkip} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import {CREATE_COLLECTION_DATA_DEFAULTS, CollectionLimitField, CollectionMode, CreateCollectionData, TokenPermissionField, emptyAddress} from './util/playgrounds/types.js'; -import {CollectionFlag} from '@unique/playgrounds/types.js'; -import type {IEthCrossAccountId, TCollectionMode} from '@unique/playgrounds/types.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {CREATE_COLLECTION_DATA_DEFAULTS, CollectionLimitField, CollectionMode, CreateCollectionData, TokenPermissionField, emptyAddress} from '@unique/test-utils/eth/types.js'; +import {CollectionFlag} from '@unique-nft/playgrounds/types.js'; +import type {IEthCrossAccountId, TCollectionMode} from '@unique-nft/playgrounds/types.js'; const DECIMALS = 18; const CREATE_COLLECTION_DATA_DEFAULTS_ARRAY = [ diff --git a/js-packages/tests/eth/createFTCollection.seqtest.ts b/js-packages/tests/eth/createFTCollection.seqtest.ts index edf9969928..5464be81c9 100644 --- a/js-packages/tests/eth/createFTCollection.seqtest.ts +++ b/js-packages/tests/eth/createFTCollection.seqtest.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {Pallets, requirePalletsOrSkip} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; const DECIMALS = 18; diff --git a/js-packages/tests/eth/createFTCollection.test.ts b/js-packages/tests/eth/createFTCollection.test.ts index e758856e11..ed1cfc577b 100644 --- a/js-packages/tests/eth/createFTCollection.test.ts +++ b/js-packages/tests/eth/createFTCollection.test.ts @@ -16,9 +16,9 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {evmToAddress} from '@polkadot/util-crypto'; -import {Pallets, requirePalletsOrSkip} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import {CollectionLimitField} from './util/playgrounds/types.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {CollectionLimitField} from '@unique/test-utils/eth/types.js'; const DECIMALS = 18; diff --git a/js-packages/tests/eth/createNFTCollection.seqtest.ts b/js-packages/tests/eth/createNFTCollection.seqtest.ts index 868e68d17d..6b66465218 100644 --- a/js-packages/tests/eth/createNFTCollection.seqtest.ts +++ b/js-packages/tests/eth/createNFTCollection.seqtest.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; describe('Create NFT collection from EVM', () => { diff --git a/js-packages/tests/eth/createNFTCollection.test.ts b/js-packages/tests/eth/createNFTCollection.test.ts index 93e0cf22f7..9fddb9e294 100644 --- a/js-packages/tests/eth/createNFTCollection.test.ts +++ b/js-packages/tests/eth/createNFTCollection.test.ts @@ -16,8 +16,8 @@ import {evmToAddress} from '@polkadot/util-crypto'; import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import {CollectionLimitField} from './util/playgrounds/types.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {CollectionLimitField} from '@unique/test-utils/eth/types.js'; describe('Create NFT collection from EVM', () => { diff --git a/js-packages/tests/eth/createRFTCollection.test.ts b/js-packages/tests/eth/createRFTCollection.test.ts index c8ec871f80..06b2279f4a 100644 --- a/js-packages/tests/eth/createRFTCollection.test.ts +++ b/js-packages/tests/eth/createRFTCollection.test.ts @@ -16,9 +16,9 @@ import {evmToAddress} from '@polkadot/util-crypto'; import type {IKeyringPair} from '@polkadot/types/types'; -import {Pallets, requirePalletsOrSkip} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import {CollectionLimitField} from './util/playgrounds/types.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {CollectionLimitField} from '@unique/test-utils/eth/types.js'; describe('Create RFT collection from EVM', () => { diff --git a/js-packages/tests/eth/crossTransfer.test.ts b/js-packages/tests/eth/crossTransfer.test.ts index d6379060a5..97ef3b02f1 100644 --- a/js-packages/tests/eth/crossTransfer.test.ts +++ b/js-packages/tests/eth/crossTransfer.test.ts @@ -14,8 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {itEth, usingEthPlaygrounds} from './util/index.js'; -import {CrossAccountId} from '@unique/playgrounds/unique.js'; +import {itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {CrossAccountId} from '@unique-nft/playgrounds/unique.js'; import type {IKeyringPair} from '@polkadot/types/types'; describe('Token transfer between substrate address and EVM address. Fungible', () => { diff --git a/js-packages/tests/eth/destroyCollection.test.ts b/js-packages/tests/eth/destroyCollection.test.ts index ccb41148b4..6a8aa71312 100644 --- a/js-packages/tests/eth/destroyCollection.test.ts +++ b/js-packages/tests/eth/destroyCollection.test.ts @@ -15,10 +15,10 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {Pallets} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import type {TCollectionMode} from '@unique/playgrounds/types.js'; -import {CreateCollectionData} from './util/playgrounds/types.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import type {TCollectionMode} from '@unique-nft/playgrounds/types.js'; +import {CreateCollectionData} from '@unique/test-utils/eth/types.js'; describe('Destroy Collection from EVM', function() { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/ethFeesAreCorrect.test.ts b/js-packages/tests/eth/ethFeesAreCorrect.test.ts index b4c92cb879..b65f72b3ee 100644 --- a/js-packages/tests/eth/ethFeesAreCorrect.test.ts +++ b/js-packages/tests/eth/ethFeesAreCorrect.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, usingEthPlaygrounds, expect} from './util/index.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; describe('Eth fees are correct', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/events.test.ts b/js-packages/tests/eth/events.test.ts index 78ef52fff8..5e4d4c3113 100644 --- a/js-packages/tests/eth/events.test.ts +++ b/js-packages/tests/eth/events.test.ts @@ -16,12 +16,12 @@ import {expect} from 'chai'; import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, usingEthPlaygrounds} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; -import type {IEvent, TCollectionMode} from '@unique/playgrounds/types.js'; -import {Pallets, requirePalletsOrSkip} from '../util/index.js'; -import {CollectionLimitField, TokenPermissionField, CreateCollectionData} from './util/playgrounds/types.js'; -import type {NormalizedEvent} from './util/playgrounds/types.js'; +import {itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import type {IEvent, TCollectionMode} from '@unique-nft/playgrounds/types.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {CollectionLimitField, TokenPermissionField, CreateCollectionData} from '@unique/test-utils/eth/types.js'; +import type {NormalizedEvent} from '@unique/test-utils/eth/types.js'; let donor: IKeyringPair; diff --git a/js-packages/tests/eth/evmCoder.test.ts b/js-packages/tests/eth/evmCoder.test.ts index 00ff7a8e5e..c3058feb9b 100644 --- a/js-packages/tests/eth/evmCoder.test.ts +++ b/js-packages/tests/eth/evmCoder.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, expect, usingEthPlaygrounds} from './util/index.js'; +import {itEth, expect, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; const getContractSource = (collectionAddress: string, contractAddress: string): string => ` // SPDX-License-Identifier: MIT diff --git a/js-packages/tests/eth/fractionalizer/fractionalizer.test.ts b/js-packages/tests/eth/fractionalizer/fractionalizer.test.ts index 84024daa3e..5a354bbc7b 100644 --- a/js-packages/tests/eth/fractionalizer/fractionalizer.test.ts +++ b/js-packages/tests/eth/fractionalizer/fractionalizer.test.ts @@ -22,23 +22,25 @@ import {evmToAddress} from '@polkadot/util-crypto'; import {Contract} from 'web3-eth-contract'; -import {usingEthPlaygrounds, expect, itEth} from '../util/index.js'; -import {EthUniqueHelper} from '../util/playgrounds/unique.dev.js'; -import type {CompiledContract} from '../util/playgrounds/types.js'; -import {requirePalletsOrSkip, Pallets, makeNames} from '../../util/index.js'; +import {usingEthPlaygrounds, expect, itEth} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import type {CompiledContract} from '@unique/test-utils/eth/types.js'; +import {requirePalletsOrSkip, Pallets, makeNames} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); let compiledFractionalizer: CompiledContract; +const EVM_ABI_DIR = `${dirname}/../../../evm-abi`; + const compileContract = async (helper: EthUniqueHelper): Promise => { if(!compiledFractionalizer) { compiledFractionalizer = await helper.ethContract.compile('Fractionalizer', (await readFile(`${dirname}/Fractionalizer.sol`)).toString(), [ - {solPath: 'api/CollectionHelpers.sol', fsPath: `${dirname}/../api/CollectionHelpers.sol`}, - {solPath: 'api/ContractHelpers.sol', fsPath: `${dirname}/../api/ContractHelpers.sol`}, - {solPath: 'api/UniqueRefungibleToken.sol', fsPath: `${dirname}/../api/UniqueRefungibleToken.sol`}, - {solPath: 'api/UniqueRefungible.sol', fsPath: `${dirname}/../api/UniqueRefungible.sol`}, - {solPath: 'api/UniqueNFT.sol', fsPath: `${dirname}/../api/UniqueNFT.sol`}, + {solPath: 'api/CollectionHelpers.sol', fsPath: `${EVM_ABI_DIR}/api/CollectionHelpers.sol`}, + {solPath: 'api/ContractHelpers.sol', fsPath: `${EVM_ABI_DIR}/api/ContractHelpers.sol`}, + {solPath: 'api/UniqueRefungibleToken.sol', fsPath: `${EVM_ABI_DIR}/api/UniqueRefungibleToken.sol`}, + {solPath: 'api/UniqueRefungible.sol', fsPath: `${EVM_ABI_DIR}/api/UniqueRefungible.sol`}, + {solPath: 'api/UniqueNFT.sol', fsPath: `${EVM_ABI_DIR}/api/UniqueNFT.sol`}, ]); } return compiledFractionalizer; diff --git a/js-packages/tests/eth/fungible.test.ts b/js-packages/tests/eth/fungible.test.ts index 03e03a23fd..af851ac988 100644 --- a/js-packages/tests/eth/fungible.test.ts +++ b/js-packages/tests/eth/fungible.test.ts @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; describe('Fungible: Plain calls', () => { diff --git a/js-packages/tests/eth/getCode.test.ts b/js-packages/tests/eth/getCode.test.ts index 61fdb1f8e8..c8cbbe023a 100644 --- a/js-packages/tests/eth/getCode.test.ts +++ b/js-packages/tests/eth/getCode.test.ts @@ -14,9 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import {COLLECTION_HELPER, CONTRACT_HELPER} from '../util/index.js'; +import {COLLECTION_HELPER, CONTRACT_HELPER} from '@unique/test-utils/util.js'; describe('RPC eth_getCode', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/helpersSmoke.test.ts b/js-packages/tests/eth/helpersSmoke.test.ts index 11ecbf3a1f..ee4e42589d 100644 --- a/js-packages/tests/eth/helpersSmoke.test.ts +++ b/js-packages/tests/eth/helpersSmoke.test.ts @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; describe('Helpers sanity check', () => { diff --git a/js-packages/tests/eth/marketplace-v2/marketplace.test.ts b/js-packages/tests/eth/marketplace-v2/marketplace.test.ts index 0763f760d9..dd3459f39c 100644 --- a/js-packages/tests/eth/marketplace-v2/marketplace.test.ts +++ b/js-packages/tests/eth/marketplace-v2/marketplace.test.ts @@ -17,10 +17,9 @@ import * as web3 from 'web3'; import type {IKeyringPair} from '@polkadot/types/types'; import {readFile} from 'fs/promises'; -import {SponsoringMode, itEth, usingEthPlaygrounds} from '../util/index.js'; -import {EthUniqueHelper} from '../util/playgrounds/unique.dev.js'; -import {makeNames} from '../../util/index.js'; -import {expect} from 'chai'; +import {SponsoringMode, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {makeNames, expect} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); @@ -41,7 +40,7 @@ describe('Market V2 Contract', () => { async function deployMarket(helper: EthUniqueHelper, marketOwner: string) { const nodeModulesDir = `${dirname}/../../../node_modules`; - const solApiDir = `${dirname}/../api`; + const solApiDir = `${dirname}/../../../evm-abi/api`; return await helper.ethContract.deployByCode( marketOwner, 'Market', diff --git a/js-packages/tests/eth/marketplace/marketplace.test.ts b/js-packages/tests/eth/marketplace/marketplace.test.ts index 65ff90af53..19c4c3e909 100644 --- a/js-packages/tests/eth/marketplace/marketplace.test.ts +++ b/js-packages/tests/eth/marketplace/marketplace.test.ts @@ -16,10 +16,11 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {readFile} from 'fs/promises'; -import {itEth, usingEthPlaygrounds, expect, SponsoringMode} from '../util/index.js'; -import {makeNames} from '../../util/index.js'; +import {itEth, usingEthPlaygrounds, expect, SponsoringMode} from '@unique/test-utils/eth/util.js'; +import {makeNames} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); +const EVM_ABI_DIR = `${dirname}/../../../evm-abi`; describe('Matcher contract usage', () => { const PRICE = 2000n; @@ -50,7 +51,7 @@ describe('Matcher contract usage', () => { itEth('With UNQ', async ({helper}) => { const matcherOwner = await helper.eth.createAccountWithBalance(donor); - const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${dirname}/../api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2); + const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${EVM_ABI_DIR}/api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2); const sponsor = await helper.eth.createAccountWithBalance(donor); const helpers = await helper.ethNativeContract.contractHelpers(matcherOwner); @@ -102,7 +103,7 @@ describe('Matcher contract usage', () => { itEth('With escrow', async ({helper}) => { const matcherOwner = await helper.eth.createAccountWithBalance(donor); - const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${dirname}/../api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2); + const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${EVM_ABI_DIR}/api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2); const sponsor = await helper.eth.createAccountWithBalance(donor); const escrow = await helper.eth.createAccountWithBalance(donor); @@ -166,7 +167,7 @@ describe('Matcher contract usage', () => { itEth('Sell tokens from substrate user via EVM contract', async ({helper}) => { const matcherOwner = await helper.eth.createAccountWithBalance(donor); - const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${dirname}/../api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2); + const matcher = await helper.ethContract.deployByCode(matcherOwner, 'MarketPlace', (await readFile(`${dirname}/MarketPlace.sol`)).toString(), [{solPath: 'api/UniqueNFT.sol', fsPath: `${EVM_ABI_DIR}/api/UniqueNFT.sol`}], helper.eth.DEFAULT_GAS * 2); await helper.eth.transferBalanceFromSubstrate(donor, matcher.options.address); diff --git a/js-packages/tests/eth/migration.seqtest.ts b/js-packages/tests/eth/migration.seqtest.ts index adb1da9807..6502e78b74 100644 --- a/js-packages/tests/eth/migration.seqtest.ts +++ b/js-packages/tests/eth/migration.seqtest.ts @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; import {Struct} from '@polkadot/types'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; import type {InterfaceTypes} from '@polkadot/types/types/registry'; import {ApiPromise} from '@polkadot/api'; diff --git a/js-packages/tests/eth/nativeFungible.test.ts b/js-packages/tests/eth/nativeFungible.test.ts index 36049d1445..847d05ae0c 100644 --- a/js-packages/tests/eth/nativeFungible.test.ts +++ b/js-packages/tests/eth/nativeFungible.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import {UniqueHelper} from '@unique/playgrounds/unique.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {UniqueHelper} from '@unique-nft/playgrounds/unique.js'; describe('NativeFungible: ERC20 calls', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/nativeRpc/estimateGas.test.ts b/js-packages/tests/eth/nativeRpc/estimateGas.test.ts index f0760506c1..8944a4f4db 100644 --- a/js-packages/tests/eth/nativeRpc/estimateGas.test.ts +++ b/js-packages/tests/eth/nativeRpc/estimateGas.test.ts @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {expect, itEth, usingEthPlaygrounds} from '../util/index.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; diff --git a/js-packages/tests/eth/nesting/nest.test.ts b/js-packages/tests/eth/nesting/nest.test.ts index a518c78e6a..b9e7e5a062 100644 --- a/js-packages/tests/eth/nesting/nest.test.ts +++ b/js-packages/tests/eth/nesting/nest.test.ts @@ -1,8 +1,8 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {Contract} from 'web3-eth-contract'; -import {itEth, usingEthPlaygrounds, expect} from '../util/index.js'; -import {EthUniqueHelper} from '../util/playgrounds/unique.dev.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; const createNestingCollection = async ( helper: EthUniqueHelper, diff --git a/js-packages/tests/eth/nonFungible.test.ts b/js-packages/tests/eth/nonFungible.test.ts index c045fc0092..f0bf21f7f6 100644 --- a/js-packages/tests/eth/nonFungible.test.ts +++ b/js-packages/tests/eth/nonFungible.test.ts @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {itEth, usingEthPlaygrounds, expect} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; import type {IKeyringPair} from '@polkadot/types/types'; import {Contract} from 'web3-eth-contract'; -import type {ITokenPropertyPermission} from '@unique/playgrounds/types.js'; -import {CREATE_COLLECTION_DATA_DEFAULTS, TokenPermissionField} from './util/playgrounds/types.js'; +import type {ITokenPropertyPermission} from '@unique-nft/playgrounds/types.js'; +import {CREATE_COLLECTION_DATA_DEFAULTS, TokenPermissionField} from '@unique/test-utils/eth/types.js'; describe('Check ERC721 token URI for NFT', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/payable.test.ts b/js-packages/tests/eth/payable.test.ts index 6dbf0ecc4e..40f7ef8657 100644 --- a/js-packages/tests/eth/payable.test.ts +++ b/js-packages/tests/eth/payable.test.ts @@ -16,9 +16,9 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, expect, usingEthPlaygrounds} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; -import {makeNames} from '../util/index.js'; +import {itEth, expect, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {makeNames} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); @@ -261,11 +261,11 @@ describe('EVM transaction fees', () => { [ { solPath: 'api/CollectionHelpers.sol', - fsPath: `${dirname}/api/CollectionHelpers.sol`, + fsPath: `${dirname}/../../evm-abi/api/CollectionHelpers.sol`, }, { solPath: 'api/UniqueNFT.sol', - fsPath: `${dirname}/api/UniqueNFT.sol`, + fsPath: `${dirname}/../../evm-abi/api/UniqueNFT.sol`, }, ], ); diff --git a/js-packages/tests/eth/precompile.test.ts b/js-packages/tests/eth/precompile.test.ts index a4d04a7de2..ba2a50c701 100644 --- a/js-packages/tests/eth/precompile.test.ts +++ b/js-packages/tests/eth/precompile.test.ts @@ -16,7 +16,7 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; describe('Precompiles', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/proxy/fungibleProxy.test.ts b/js-packages/tests/eth/proxy/fungibleProxy.test.ts index bcf7d37889..ad8d9b9d2b 100644 --- a/js-packages/tests/eth/proxy/fungibleProxy.test.ts +++ b/js-packages/tests/eth/proxy/fungibleProxy.test.ts @@ -17,9 +17,9 @@ import {expect} from 'chai'; import {readFile} from 'fs/promises'; import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, usingEthPlaygrounds} from '../util/index.js'; -import {EthUniqueHelper} from '../util/playgrounds/unique.dev.js'; -import {makeNames} from '../../util/index.js'; +import {itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {makeNames} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); diff --git a/js-packages/tests/eth/proxy/nonFungibleProxy.test.ts b/js-packages/tests/eth/proxy/nonFungibleProxy.test.ts index 3acc0dfdd9..146ac6854c 100644 --- a/js-packages/tests/eth/proxy/nonFungibleProxy.test.ts +++ b/js-packages/tests/eth/proxy/nonFungibleProxy.test.ts @@ -16,9 +16,9 @@ import {readFile} from 'fs/promises'; import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, usingEthPlaygrounds, expect} from '../util/index.js'; -import {EthUniqueHelper} from '../util/playgrounds/unique.dev.js'; -import {makeNames} from '../../util/index.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {makeNames} from '@unique/test-utils/util.js'; const {dirname} = makeNames(import.meta.url); diff --git a/js-packages/tests/eth/proxyContract.test.ts b/js-packages/tests/eth/proxyContract.test.ts index 083cfa3847..1dd4824355 100644 --- a/js-packages/tests/eth/proxyContract.test.ts +++ b/js-packages/tests/eth/proxyContract.test.ts @@ -16,8 +16,8 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, expect, usingEthPlaygrounds} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; +import {itEth, expect, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; describe('EVM payable contracts', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/reFungible.test.ts b/js-packages/tests/eth/reFungible.test.ts index 1b3a19b464..6824fb6e9b 100644 --- a/js-packages/tests/eth/reFungible.test.ts +++ b/js-packages/tests/eth/reFungible.test.ts @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {Pallets, requirePalletsOrSkip} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import type {ITokenPropertyPermission} from '@unique/playgrounds/types.js'; -import {CREATE_COLLECTION_DATA_DEFAULTS, TokenPermissionField} from './util/playgrounds/types.js'; +import type {ITokenPropertyPermission} from '@unique-nft/playgrounds/types.js'; +import {CREATE_COLLECTION_DATA_DEFAULTS, TokenPermissionField} from '@unique/test-utils/eth/types.js'; describe('Refungible: Plain calls', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/reFungibleToken.test.ts b/js-packages/tests/eth/reFungibleToken.test.ts index d30113189b..c4120a67c3 100644 --- a/js-packages/tests/eth/reFungibleToken.test.ts +++ b/js-packages/tests/eth/reFungibleToken.test.ts @@ -14,9 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {Pallets, requirePalletsOrSkip} from '../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; import type {IKeyringPair} from '@polkadot/types/types'; import {Contract} from 'web3-eth-contract'; diff --git a/js-packages/tests/eth/scheduling.test.ts b/js-packages/tests/eth/scheduling.test.ts index 9b19151bb7..0a27e0845f 100644 --- a/js-packages/tests/eth/scheduling.test.ts +++ b/js-packages/tests/eth/scheduling.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import {expect} from 'chai'; -import {itSchedEth} from './util/index.js'; -import {EthUniqueHelper} from './util/playgrounds/unique.dev.js'; -import {Pallets, usingPlaygrounds} from '../util/index.js'; +import {itSchedEth} from '@unique/test-utils/eth/util.js'; +import {EthUniqueHelper} from '@unique/test-utils/eth/index.js'; +import {Pallets, usingPlaygrounds} from '@unique/test-utils/util.js'; describe('Scheduing EVM smart contracts', () => { diff --git a/js-packages/tests/eth/sponsoring.test.ts b/js-packages/tests/eth/sponsoring.test.ts index 8c0b79ec1e..39dada205a 100644 --- a/js-packages/tests/eth/sponsoring.test.ts +++ b/js-packages/tests/eth/sponsoring.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, expect, SponsoringMode} from './util/index.js'; -import {usingPlaygrounds} from '../util/index.js'; +import {itEth, expect, SponsoringMode} from '@unique/test-utils/eth/util.js'; +import {usingPlaygrounds} from '@unique/test-utils/util.js'; describe('EVM sponsoring', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/tokenProperties.test.ts b/js-packages/tests/eth/tokenProperties.test.ts index a3be55eaaf..d88c774d2a 100644 --- a/js-packages/tests/eth/tokenProperties.test.ts +++ b/js-packages/tests/eth/tokenProperties.test.ts @@ -16,11 +16,11 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {Contract} from 'web3-eth-contract'; -import {itEth, usingEthPlaygrounds, expect} from './util/index.js'; -import type {ITokenPropertyPermission} from '@unique/playgrounds/types.js'; -import {Pallets} from '../util/index.js'; -import {UniqueNFTCollection, UniqueNFToken, UniqueRFTCollection} from '@unique/playgrounds/unique.js'; -import {CreateCollectionData, TokenPermissionField} from './util/playgrounds/types.js'; +import {itEth, usingEthPlaygrounds, expect} from '@unique/test-utils/eth/util.js'; +import type {ITokenPropertyPermission} from '@unique-nft/playgrounds/types.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import {UniqueNFTCollection, UniqueNFToken, UniqueRFTCollection} from '@unique-nft/playgrounds/unique.js'; +import {CreateCollectionData, TokenPermissionField} from '@unique/test-utils/eth/types.js'; describe('EVM token properties', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/eth/tokens/callMethodsERC20.test.ts b/js-packages/tests/eth/tokens/callMethodsERC20.test.ts index ca048efd50..80d4267100 100644 --- a/js-packages/tests/eth/tokens/callMethodsERC20.test.ts +++ b/js-packages/tests/eth/tokens/callMethodsERC20.test.ts @@ -14,10 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {Pallets, requirePalletsOrSkip} from '../../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from '../util/index.js'; +import {Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import {CreateCollectionData} from '../util/playgrounds/types.js'; +import {CreateCollectionData} from '@unique/test-utils/eth/types.js'; [ {mode: 'ft' as const, requiredPallets: []}, diff --git a/js-packages/tests/eth/tokens/callMethodsERC721.test.ts b/js-packages/tests/eth/tokens/callMethodsERC721.test.ts index 37055be284..6107b47485 100644 --- a/js-packages/tests/eth/tokens/callMethodsERC721.test.ts +++ b/js-packages/tests/eth/tokens/callMethodsERC721.test.ts @@ -14,10 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {Pallets} from '../../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from '../util/index.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import {CreateCollectionData} from '../util/playgrounds/types.js'; +import {CreateCollectionData} from '@unique/test-utils/eth/types.js'; describe('ERC-721 call methods', () => { diff --git a/js-packages/tests/eth/tokens/minting.test.ts b/js-packages/tests/eth/tokens/minting.test.ts index faaf2be39e..53ecaec7a3 100644 --- a/js-packages/tests/eth/tokens/minting.test.ts +++ b/js-packages/tests/eth/tokens/minting.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {Pallets} from '../../util/index.js'; -import {expect, itEth, usingEthPlaygrounds} from '../util/index.js'; -import {CreateCollectionData} from '../util/playgrounds/types.js'; +import {Pallets} from '@unique/test-utils/util.js'; +import {expect, itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {CreateCollectionData} from '@unique/test-utils/eth/types.js'; describe('Minting tokens', () => { diff --git a/js-packages/tests/eth/transferValue.test.ts b/js-packages/tests/eth/transferValue.test.ts index cffd781bd0..903d7fd999 100644 --- a/js-packages/tests/eth/transferValue.test.ts +++ b/js-packages/tests/eth/transferValue.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, usingEthPlaygrounds} from './util/index.js'; +import {itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; import {expect} from 'chai'; describe('Send value to contract', () => { diff --git a/js-packages/tests/fungible.test.ts b/js-packages/tests/fungible.test.ts index cf4d92e419..d07270cdf0 100644 --- a/js-packages/tests/fungible.test.ts +++ b/js-packages/tests/fungible.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect, requirePalletsOrSkip, Pallets} from './util/index.js'; +import {itSub, usingPlaygrounds, expect, requirePalletsOrSkip, Pallets} from '@unique/test-utils/util.js'; const U128_MAX = (1n << 128n) - 1n; diff --git a/js-packages/tests/getPropertiesRpc.test.ts b/js-packages/tests/getPropertiesRpc.test.ts index aaf21f517b..015c353828 100644 --- a/js-packages/tests/getPropertiesRpc.test.ts +++ b/js-packages/tests/getPropertiesRpc.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; -import {UniqueHelper, UniqueNFTCollection} from '@unique/playgrounds/unique.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {UniqueHelper, UniqueNFTCollection} from '@unique-nft/playgrounds/unique.js'; const collectionProps = [ {key: 'col-0', value: 'col-0-value'}, diff --git a/js-packages/tests/inflation.seqtest.ts b/js-packages/tests/inflation.seqtest.ts index a8bdad6597..a385d1b2d6 100644 --- a/js-packages/tests/inflation.seqtest.ts +++ b/js-packages/tests/inflation.seqtest.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from './util/index.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; const TREASURY = '5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z'; diff --git a/js-packages/tests/limits.test.ts b/js-packages/tests/limits.test.ts index 012d13ccfc..7d6126f271 100644 --- a/js-packages/tests/limits.test.ts +++ b/js-packages/tests/limits.test.ts @@ -15,15 +15,16 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from './util/index.js'; +import {expect, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from '@unique/test-utils/util.js'; describe('Number of tokens per address (NFT)', () => { let alice: IKeyringPair; + let bob: IKeyringPair; before(async () => { await usingPlaygrounds(async (helper, privateKey) => { const donor = await privateKey({url: import.meta.url}); - [alice] = await helper.arrange.createAccounts([10n], donor); + [alice, bob] = await helper.arrange.createAccounts([10n, 0n], donor); }); }); @@ -51,17 +52,40 @@ describe('Number of tokens per address (NFT)', () => { await collection.burnToken(alice, 1); await expect(collection.burn(alice)).to.be.not.rejected; }); + + itSub('Can transfer tokens to address equal to accountTokenOwnershipLimit', async ({helper}) => { + const collection = await helper.nft.mintCollection(alice, {}); + await collection.setLimits(alice, {accountTokenOwnershipLimit: 1}); + + // Limit 1 - can transfer #1 token + const tkn1 = await collection.mintToken(alice); + await collection.transferToken(alice, tkn1.tokenId, {Substrate: bob.address}); + + // Limit 1 - cannot transfer #2 token + const tkn2 = await collection.mintToken(alice); + await expect(collection.transferToken(alice, tkn2.tokenId, {Substrate: bob.address})).to.be.rejectedWith(/common\.AccountTokenLimitExceeded/); + + // Increase limit to 2 + // Now can transfer token #2 + await collection.setLimits(alice, {accountTokenOwnershipLimit: 2}); + await collection.transferToken(alice, tkn2.tokenId, {Substrate: bob.address}); + + // But cannot transfer token #3 + const tkn3 = await collection.mintToken(alice); + await expect(collection.transferToken(alice, tkn3.tokenId, {Substrate: bob.address})).to.be.rejectedWith(/common\.AccountTokenLimitExceeded/); + }); }); describe('Number of tokens per address (ReFungible)', () => { let alice: IKeyringPair; + let bob: IKeyringPair; before(async function() { await usingPlaygrounds(async (helper, privateKey) => { requirePalletsOrSkip(this, helper, [Pallets.ReFungible]); const donor = await privateKey({url: import.meta.url}); - [alice] = await helper.arrange.createAccounts([10n], donor); + [alice, bob] = await helper.arrange.createAccounts([10n, 0n], donor); }); }); @@ -89,6 +113,28 @@ describe('Number of tokens per address (ReFungible)', () => { await collection.burnToken(alice, 1); await expect(collection.burn(alice)).to.be.not.rejected; }); + + itSub('Can transfer tokens to address equal to accountTokenOwnershipLimit', async ({helper}) => { + const collection = await helper.rft.mintCollection(alice, {}); + await collection.setLimits(alice, {accountTokenOwnershipLimit: 1}); + + // Limit 1 - can transfer #1 token + const tkn1 = await collection.mintToken(alice); + await collection.transferToken(alice, tkn1.tokenId, {Substrate: bob.address}); + + // Limit 1 - cannot transfer #2 token + const tkn2 = await collection.mintToken(alice); + await expect(collection.transferToken(alice, tkn2.tokenId, {Substrate: bob.address})).to.be.rejectedWith(/common\.AccountTokenLimitExceeded/); + + // Increase limit to 2 + // Now can transfer token #2 + await collection.setLimits(alice, {accountTokenOwnershipLimit: 2}); + await collection.transferToken(alice, tkn2.tokenId, {Substrate: bob.address}); + + // But cannot transfer token #3 + const tkn3 = await collection.mintToken(alice); + await expect(collection.transferToken(alice, tkn3.tokenId, {Substrate: bob.address})).to.be.rejectedWith(/common\.AccountTokenLimitExceeded/); + }); }); // todo:playgrounds skipped ~ postponed diff --git a/js-packages/tests/maintenance.seqtest.ts b/js-packages/tests/maintenance.seqtest.ts index eddc5dccc5..6fc8adc37f 100644 --- a/js-packages/tests/maintenance.seqtest.ts +++ b/js-packages/tests/maintenance.seqtest.ts @@ -16,9 +16,9 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {ApiPromise} from '@polkadot/api'; -import {expect, itSched, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from './util/index.js'; -import {itEth} from './eth/util/index.js'; -import {main as correctState} from './migrations/correctStateAfterMaintenance.js'; +import {expect, itSched, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {itEth} from '@unique/test-utils/eth/util.js'; +import {main as correctState} from '@unique/scripts/correctStateAfterMaintenance.js'; import type {PalletBalancesIdAmount} from '@polkadot/types/lookup'; import type {Vec} from '@polkadot/types-codec'; diff --git a/js-packages/tests/migrations/942057-appPromotion/README.md b/js-packages/tests/migrations/942057-appPromotion/README.md deleted file mode 100644 index fcdf6bb048..0000000000 --- a/js-packages/tests/migrations/942057-appPromotion/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Update Procedure - -- Enable maintenance mode -- [Collect migration data using ChainQL](#stakers-data-loading) -- ❗️❗️❗️ Initiate the runtime upgrade only at this point ❗️❗️❗️ -- Wait for the upgrade to complete -- [Execute offchain migration](#execute-offchain-migration) -- Disable maintenance mode - -## Stakers Data Loading - -Set the environment variable (WS_RPC). For example, ws://localhost:9944. Execute the following command: - -```sh -chainql --tla-str=chainUrl= stakersParser.jsonnet > output.json -``` - -where `` - is the network address. - -Example for Opal: - -```sh -chainql --tla-str=chainUrl=wss://eu-ws-opal.unique.network:443 stakersParser.jsonnet > output.json -``` - -To install chainql, execute the following command: - -```sh -cargo install chainql -``` - -## Execute offchain migration - -To run, you need to set an environment variables: -- `SUPERUSER_SEED` – the sudo key seed. -- `WS_RPC` – the network address - -Run the migration by executing the following command: - -```sh -npx ts-node --esm executeMigration.ts -``` diff --git a/js-packages/tests/migrations/942057-appPromotion/collectData.ts b/js-packages/tests/migrations/942057-appPromotion/collectData.ts deleted file mode 100644 index 2575fee678..0000000000 --- a/js-packages/tests/migrations/942057-appPromotion/collectData.ts +++ /dev/null @@ -1,12 +0,0 @@ -import {exec} from 'child_process'; -import path from 'path'; -import {dirname} from 'path'; -import {fileURLToPath} from 'url'; - -export const collectData = () => { - const dirName = dirname(fileURLToPath(import.meta.url)); - - const pathToScript = path.resolve(dirName, './stakersParser.jsonnet'); - const outputPath = path.resolve(dirName, './output.json'); - exec(`chainql --tla-str=chainUrl=ws://127.0.0.1:9944 ${pathToScript} > ${outputPath}`); -}; diff --git a/js-packages/tests/migrations/942057-appPromotion/executeMigration.ts b/js-packages/tests/migrations/942057-appPromotion/executeMigration.ts deleted file mode 100644 index b9c887c712..0000000000 --- a/js-packages/tests/migrations/942057-appPromotion/executeMigration.ts +++ /dev/null @@ -1,11 +0,0 @@ -import {migrateLockedToFreeze} from './lockedToFreeze.js'; - - -const WS_RPC = process.env.WS_RPC || 'wss://ws-opal.unique.network:443'; -const SUPERUSER_SEED = process.env.SUPERUSER_SEED || ''; - -migrateLockedToFreeze({ - wsEndpoint: WS_RPC, - donorSeed: SUPERUSER_SEED, -}) - .catch(console.error); \ No newline at end of file diff --git a/js-packages/tests/migrations/942057-appPromotion/index.ts b/js-packages/tests/migrations/942057-appPromotion/index.ts deleted file mode 100644 index cc7aea9716..0000000000 --- a/js-packages/tests/migrations/942057-appPromotion/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type {Migration} from '../../util/frankensteinMigrate.js'; -import {collectData} from './collectData.js'; -import {migrateLockedToFreeze} from './lockedToFreeze.js'; - -export const migration: Migration = { - async before() { - await collectData(); - }, - async after() { - await migrateLockedToFreeze(); - }, -}; \ No newline at end of file diff --git a/js-packages/tests/migrations/942057-appPromotion/lockedToFreeze.ts b/js-packages/tests/migrations/942057-appPromotion/lockedToFreeze.ts deleted file mode 100644 index 2e1980453e..0000000000 --- a/js-packages/tests/migrations/942057-appPromotion/lockedToFreeze.ts +++ /dev/null @@ -1,259 +0,0 @@ -// import { usingApi, privateKey, onlySign } from "./../../load/lib"; -import * as fs from 'fs'; -import {usingPlaygrounds} from '../../util/index.js'; -import path, {dirname} from 'path'; -import {isInteger, parse} from 'lossless-json'; -import {fileURLToPath} from 'url'; -import config from '../../config.js'; - - -const WS_ENDPOINT = config.substrateUrl; -const DONOR_SEED = '//Alice'; -const UPDATE_IF_VERSION = 942057; - -export function customNumberParser(value: any) { - return isInteger(value) ? BigInt(value) : parseFloat(value); -} - -export const migrateLockedToFreeze = async(options: { wsEndpoint: string; donorSeed: string } = { - wsEndpoint: WS_ENDPOINT, - donorSeed: DONOR_SEED, -}) => { - await usingPlaygrounds(async (helper, privateKey) => { - const api = helper.getApi(); - // 1. Check version equal 942057 or skip - console.log((api.consts.system.version as any).specVersion.toNumber()); - if((api.consts.system.version as any).specVersion.toNumber() != UPDATE_IF_VERSION) { - console.log("Version isn't 942057."); - return; - } - - // 2. Get sudo signer - const signer = await privateKey(options.donorSeed); - console.log('2. Getting sudo:', signer.address); - - // 3. Parse data to migrate - console.log('3. Parsing chainql results...'); - const dirName = dirname(fileURLToPath(import.meta.url)); - const parsingResult = parse(fs.readFileSync(path.resolve(dirName, 'output.json'), 'utf-8'), undefined, customNumberParser); - - const chainqlImportData = parsingResult as { - address: string; - balance: string; - account: { - fee_frozen: string, - free: string, - misc_frozen: string, - reserved: string, - }, - locks: { - amount: string, - id: string, - }[], - stakes: object, - unstakes: object, - }[]; - testChainqlData(chainqlImportData); - - const stakers = chainqlImportData.map((i) => i.address); - - // 3.1 Split into chunks by 100 - console.log('3.1 Splitting into chunks...'); - const stakersChunks = chunk(stakers, 100); - console.log('3.1 Done, total chunks:', stakersChunks.length); - - // 4. Get signer/sudo nonce - console.log('4. Getting sudo nonce...'); - const signerAccount = ( - await api.query.system.account(signer.address) - ).toJSON() as any; - - let nonce: number = signerAccount.nonce; - console.log('4. Sudo nonce is:', nonce); - - // 5. Only sign upgradeAccounts-transactions for each chunk - console.log('5. Signing transactions...'); - const signedTxs = []; - for(const chunk of stakersChunks) { - const tx = api.tx.sudo.sudo(api.tx.appPromotion.upgradeAccounts(chunk)); - const signed = tx.sign(signer, { - blockHash: api.genesisHash, - genesisHash: api.genesisHash, - runtimeVersion: api.runtimeVersion, - nonce: nonce++, - }); - signedTxs.push(signed); - } - - // 6. Send all signed transactions - console.log('6. Sending transactions...'); - const promises = signedTxs.map((tx) => api.rpc.author.submitAndWatchExtrinsic(tx)); - // 6.1 Wait all transactions settled - console.log('6.1 Waiting all transactions settled...'); - const res = await Promise.allSettled(promises); - - console.log('Wait 5 blocks for transactions to be included in a block...'); - await helper.wait.newBlocks(5); - // 6.2 Filter failed transactions - console.log('6.2 Getting failed transactions...'); - const failedTx = res.filter((r) => r.status == 'rejected') as PromiseRejectedResult[]; - console.log('6.2. total failedTxs:', failedTx.length); - - // 6.3 Log the reasons of failed tx - for(const tx of failedTx) { - console.log(tx.reason); - } - - // 7. Check balances for 10 blocks: - console.log('7. Check balances...'); - let blocksLeft = 10; - let notMigrated = stakers; - const suspiciousAccounts = []; - do { - console.log('blocks left:', blocksLeft); - const _notMigrated: string[] = []; - console.log('accounts to migrate...', notMigrated.length); - for(const accountToMigrate of notMigrated) { - let accountMigrated = true; - // 7.0 get data from chainql: - const oldAccount = chainqlImportData.find(acc => acc.address === accountToMigrate); - if(!oldAccount) { - console.log('Cannot find old account data for', accountMigrated); - accountMigrated = false; - _notMigrated.push(accountToMigrate); - continue; - } - - // 7.1 system.account - const balance = await api.query.system.account(accountToMigrate) as any; - // new balances - const free = balance.data.free; - const reserved = balance.data.reserved; - const frozen = balance.data.frozen; - // old balances - const oldFree = oldAccount.account.free; - const oldReserved = oldAccount.account.reserved; - const oldFrozen = oldAccount.account.fee_frozen; - // asserts new = old - if(oldFree.toString() !== free.toString()) { - console.log('Old free !== New free, which is probably not a problem', oldFree.toString(), free.toString()); - suspiciousAccounts.push(accountToMigrate); - } - if(oldFrozen.toString() !== frozen.toString()) { - console.log('Old frozen !== New frozen, which is probably not a problem', oldFrozen.toString(), frozen.toString()); - suspiciousAccounts.push(accountToMigrate); - } - if(oldReserved.toString() !== reserved.toString()) { - console.log('Old reserved !== New reserved, which is probably not a problem', oldReserved.toString(), reserved.toString()); - suspiciousAccounts.push(accountToMigrate); - } - - // 7.2 balances.locks: no id appstake - const locks = await helper.balance.getLocked(accountToMigrate); - const appPromoLocks = locks.filter(lock => lock.id === 'appstake'); - if(appPromoLocks.length !== 0) { - console.log('Account still has app-promo lock'); - accountMigrated = false; - } - - // 7.3 balances.freezes set... - let freezes = await api.query.balances.freezes(accountToMigrate) as any; - freezes = freezes.map((freez: any) => ({id: freez.id.toString(), amount: freez.amount.toString()})); - if(!freezes) { - console.log('Account does not have freezes'); - accountMigrated = false; - } else { - const oldAppPromoLocks = oldAccount.locks.filter(l => l.id === '0x6170707374616b65'); // get app promo locks - // should be only one freez for each account - if(freezes.length !== 1) { - console.log('freezes.length !== 1 and old appPromoLocks.length', freezes.length, oldAppPromoLocks.length); - accountMigrated = false; - } else { - const appPromoFreez = freezes[0]; - // freez-amount should be equal to migrated lock amount - if(appPromoFreez.amount.toString() !== oldAppPromoLocks[0].amount.toString()) { - console.log('freezes amount !== old appPromoLocks amount', appPromoFreez.amount.toString(), oldAppPromoLocks[0].amount.toString()); - accountMigrated = false; - } - // freez id should be correct - if(appPromoFreez.id !== '0x6170707374616b656170707374616b65') { - console.log('Got freez with incorrect id:', appPromoFreez.id); - accountMigrated = false; - } - } - } - - // 7.4 Stakes number the same - const stakesNumber = await helper.staking.getStakesNumber({Substrate: accountToMigrate}); - const oldStakesNumber = oldAccount.stakes ? Object.keys(oldAccount.stakes).length : 0; - if(stakesNumber.toString() !== oldStakesNumber.toString()) { - console.log('Old stakes number !== New stakes number', oldStakesNumber, stakesNumber); - accountMigrated = false; - } - - // 7.5 Total pendingUnstake + total staked = old locked - const pendingUnstakes = await helper.staking.getPendingUnstake({Substrate: accountToMigrate}); - const totalStaked = await helper.staking.getTotalStaked({Substrate: accountToMigrate}); - const totalBalanceInAppPromo = pendingUnstakes + totalStaked; - if(totalBalanceInAppPromo.toString() !== oldAccount.balance.toString()) { - console.log('totalBalanceInAppPromo !== old locked in app promo', totalBalanceInAppPromo.toString(), oldAccount.balance.toString()); - accountMigrated = false; - } - - // 8 Add to not-migrated - if(!accountMigrated) { - console.log('Add to not migrated:', accountToMigrate); - _notMigrated.push(accountToMigrate); - } - } - - blocksLeft--; - notMigrated = _notMigrated; - await helper.wait.newBlocks(1); - } while(blocksLeft > 0 && notMigrated.length !== 0); - - console.log('Not migrated accounts...', notMigrated.length); - if(suspiciousAccounts.length > 0) { - console.log('Saving suspicious accounts to suspicious.json:'); - fs.writeFileSync('./suspicious.json', JSON.stringify(suspiciousAccounts)); - } - if(notMigrated.length > 0) { - console.log('Saving not migrated list to failed.json:'); - notMigrated.forEach(console.log); - fs.writeFileSync('./failed.json', JSON.stringify(notMigrated)); - process.exit(1); - } else { - console.log('Migration success'); - } - }, options.wsEndpoint); -}; - -const chunk = (arr: T[], size: number) => - Array.from({length: Math.ceil(arr.length / size)}, (_: any, i: number) => - arr.slice(i * size, i * size + size)); - -const testChainqlData = (data: any) => { - const wrongData = []; - for(const account of data) { - try { - if(account.address == null) throw Error('no address in data'); - if(account.balance == null) throw Error('no balance in data'); - if(account.account == null) throw Error('no account in data'); - if(account.account.fee_frozen == null) throw Error('no account.fee_frozen in data'); - if(account.account.misc_frozen == null) throw Error('no account.misc_frozen in data'); - if(account.account.free == null) throw Error('no account.free in data'); - if(account.account.reserved == null) throw Error('no account.reserved in data'); - if(account.locks == null) throw Error('no locks in data'); - if(account.locks[0].amount == null) throw Error('no locks.amount in data'); - if(account.locks[0].id == null) throw Error('no locks.id in data'); - } catch (error) { - wrongData.push(account.address); - console.log((error as Error).message, account.address); - } - if(wrongData.length > 0) { - console.log(data); - throw Error('Chainql data not correct'); - } - } - console.log('Chainql data correct'); -}; diff --git a/js-packages/tests/migrations/942057-appPromotion/stakersParser.jsonnet b/js-packages/tests/migrations/942057-appPromotion/stakersParser.jsonnet deleted file mode 100644 index e516f6f828..0000000000 --- a/js-packages/tests/migrations/942057-appPromotion/stakersParser.jsonnet +++ /dev/null @@ -1,29 +0,0 @@ -function(chainUrl) - - local - state = cql.chain(chainUrl).latest, - locked_balances = state.Balances.Locks._preloadKeys, - accountsRaw = state.System.Account._preloadKeys, - stakers = state.AppPromotion.Staked._preloadKeys, - unstakes = state.AppPromotion.PendingUnstake._preloadKeys, - locks = [ - { [k]: std.filter(function(l) l.id == '0x6170707374616b65', locked_balances[k]) } - for k in std.objectFields(locked_balances) - ], - unstakersData = [ - { [pair[0]]: { block: block, value: pair[1] } } - - for block in std.objectFields(unstakes) - for pair in unstakes[block] - ], - non_empty_locks = std.prune(locks) - ; - - std.map(function(a) { - address: std.objectFields(a)[0], - balance: a[std.objectFields(a)[0]][0].amount, - account: accountsRaw[std.objectFields(a)[0]].data, - locks: locked_balances[std.objectFields(a)[0]], - stakes: if std.objectHas(stakers, std.objectFields(a)[0]) then stakers[std.objectFields(a)[0]] else null, - unstakes: std.filterMap(function(b) std.objectHas(b, std.objectFields(a)[0]), function(c) std.objectValues(c)[0], unstakersData), - }, non_empty_locks) diff --git a/js-packages/tests/nativeFungible.test.ts b/js-packages/tests/nativeFungible.test.ts index 3a350bd60b..5504845061 100644 --- a/js-packages/tests/nativeFungible.test.ts +++ b/js-packages/tests/nativeFungible.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from './util/index.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; describe('Native fungible', () => { let root: IKeyringPair; diff --git a/js-packages/tests/nextSponsoring.test.ts b/js-packages/tests/nextSponsoring.test.ts index 42172d0256..3dbefc6444 100644 --- a/js-packages/tests/nextSponsoring.test.ts +++ b/js-packages/tests/nextSponsoring.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, usingPlaygrounds} from './util/index.js'; +import {expect, itSub, Pallets, usingPlaygrounds} from '@unique/test-utils/util.js'; const SPONSORING_TIMEOUT = 5; diff --git a/js-packages/tests/package.json b/js-packages/tests/package.json index c7f0fbbd17..722de7bac9 100644 --- a/js-packages/tests/package.json +++ b/js-packages/tests/package.json @@ -13,9 +13,9 @@ "mocha": "^10.1.0" }, "scripts": { - "setup": "yarn ts-node --esm ./util/globalSetup.ts", - "setIdentities": "yarn ts-node --esm ./util/identitySetter.ts", - "checkRelayIdentities": "yarn ts-node --esm ./util/relayIdentitiesChecker.ts", + "setup": "yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm ../test-utils/globalSetup.ts", + "setIdentities": "yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm ../scripts/identitySetter.ts", + "checkRelayIdentities": "yarn node --no-warnings=ExperimentalWarning --loader ts-node/esm ../scripts/relayIdentitiesChecker.ts", "_test": "yarn setup && yarn mocha --timeout 9999999 --loader=ts-node/esm.mjs", "_testParallel": "yarn setup && yarn mocha --timeout 9999999 --parallel --loader=ts-node/esm.mjs", "test": "yarn _test './**/*.*test.ts'", diff --git a/js-packages/tests/pallet-presence.test.ts b/js-packages/tests/pallet-presence.test.ts index 05c333b3eb..62e84e06ce 100644 --- a/js-packages/tests/pallet-presence.test.ts +++ b/js-packages/tests/pallet-presence.test.ts @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {itSub, usingPlaygrounds, expect} from './util/index.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; // Pallets that must always be present const requiredPallets = [ @@ -49,6 +49,7 @@ const requiredPallets = [ 'configuration', 'xtokens', 'maintenance', + 'messagequeue', ]; // Pallets that depend on consensus and governance configuration @@ -79,6 +80,8 @@ describe('Pallet presence', () => { 'scheduler', 'technicalcommittee', 'technicalcommitteemembership', + 'financialcouncil', + 'financialcouncilmembership', 'identity', ]; const testUtils = 'testutils'; diff --git a/js-packages/tests/performance.seq.test.ts b/js-packages/tests/performance.seq.test.ts index 67afa31f85..d4e7b3fb99 100644 --- a/js-packages/tests/performance.seq.test.ts +++ b/js-packages/tests/performance.seq.test.ts @@ -16,9 +16,9 @@ import {ApiPromise} from '@polkadot/api'; import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from './util/index.js'; -import type {ICrossAccountId, IProperty} from '@unique/playgrounds/types.js'; -import {UniqueHelper} from '@unique/playgrounds/unique.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; +import type {ICrossAccountId, IProperty} from '@unique-nft/playgrounds/types.js'; +import {UniqueHelper} from '@unique-nft/playgrounds/unique.js'; describe('Performace tests', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/refungible.test.ts b/js-packages/tests/refungible.test.ts index eb45cba9b2..2b2def90b8 100644 --- a/js-packages/tests/refungible.test.ts +++ b/js-packages/tests/refungible.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from './util/index.js'; +import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; const MAX_REFUNGIBLE_PIECES = 1_000_000_000_000_000_000_000n; diff --git a/js-packages/tests/removeCollectionAdmin.test.ts b/js-packages/tests/removeCollectionAdmin.test.ts index b4ece227c6..122d4faf2e 100644 --- a/js-packages/tests/removeCollectionAdmin.test.ts +++ b/js-packages/tests/removeCollectionAdmin.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('Integration Test removeCollectionAdmin(collection_id, account_id):', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/removeCollectionSponsor.test.ts b/js-packages/tests/removeCollectionSponsor.test.ts index 287c17eafe..7593960285 100644 --- a/js-packages/tests/removeCollectionSponsor.test.ts +++ b/js-packages/tests/removeCollectionSponsor.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('integration test: ext. removeCollectionSponsor():', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/rpc.test.ts b/js-packages/tests/rpc.test.ts index 01dd703ed4..13eb787b02 100644 --- a/js-packages/tests/rpc.test.ts +++ b/js-packages/tests/rpc.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect} from './util/index.js'; -import {ICrossAccountId} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, itSub, expect} from '@unique/test-utils/util.js'; +import {ICrossAccountId} from '@unique-nft/playgrounds/types.js'; describe('integration test: RPC methods', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/scheduler.seqtest.ts b/js-packages/tests/scheduler.seqtest.ts index d78ed3a853..8152463aa2 100644 --- a/js-packages/tests/scheduler.seqtest.ts +++ b/js-packages/tests/scheduler.seqtest.ts @@ -14,9 +14,9 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -import {expect, itSched, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from './util/index.js'; +import {expect, itSched, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from '@unique/test-utils/util.js'; import type {IKeyringPair} from '@polkadot/types/types'; -import {DevUniqueHelper, Event} from '@unique/playgrounds/unique.dev.js'; +import {DevUniqueHelper, Event} from '@unique/test-utils'; describe('Scheduling token and balance transfers', () => { let superuser: IKeyringPair; diff --git a/js-packages/tests/setCollectionLimits.test.ts b/js-packages/tests/setCollectionLimits.test.ts index eb00007142..e392b5c571 100644 --- a/js-packages/tests/setCollectionLimits.test.ts +++ b/js-packages/tests/setCollectionLimits.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; const accountTokenOwnershipLimit = 0; const sponsoredDataSize = 0; diff --git a/js-packages/tests/setCollectionSponsor.test.ts b/js-packages/tests/setCollectionSponsor.test.ts index 6b60cf0709..630e3eccd2 100644 --- a/js-packages/tests/setCollectionSponsor.test.ts +++ b/js-packages/tests/setCollectionSponsor.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect, Pallets} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect, Pallets} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('integration test: ext. setCollectionSponsor():', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/setPermissions.test.ts b/js-packages/tests/setPermissions.test.ts index c76212652b..c972abe2db 100644 --- a/js-packages/tests/setPermissions.test.ts +++ b/js-packages/tests/setPermissions.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('Integration Test: Set Permissions', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/appPromotion/appPromotion.seqtest.ts b/js-packages/tests/sub/appPromotion/appPromotion.seqtest.ts index 192a5a645a..76b7fab774 100644 --- a/js-packages/tests/sub/appPromotion/appPromotion.seqtest.ts +++ b/js-packages/tests/sub/appPromotion/appPromotion.seqtest.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, Pallets, requirePalletsOrSkip} from '../../util/index.js'; -import {expect} from '../../eth/util/index.js'; +import {itSub, usingPlaygrounds, Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {expect} from '@unique/test-utils/eth/util.js'; let superuser: IKeyringPair; let donor: IKeyringPair; diff --git a/js-packages/tests/sub/appPromotion/appPromotion.test.ts b/js-packages/tests/sub/appPromotion/appPromotion.test.ts index 9d3b3912fd..9c0af019e7 100644 --- a/js-packages/tests/sub/appPromotion/appPromotion.test.ts +++ b/js-packages/tests/sub/appPromotion/appPromotion.test.ts @@ -17,9 +17,9 @@ import type {IKeyringPair} from '@polkadot/types/types'; import { itSub, usingPlaygrounds, Pallets, requirePalletsOrSkip, LOCKING_PERIOD, UNLOCKING_PERIOD, -} from '../../util/index.js'; -import {DevUniqueHelper} from '@unique/playgrounds/unique.dev.js'; -import {itEth, expect, SponsoringMode} from '../../eth/util/index.js'; +} from '@unique/test-utils/util.js'; +import {DevUniqueHelper} from '@unique/test-utils'; +import {itEth, expect, SponsoringMode} from '@unique/test-utils/eth/util.js'; let donor: IKeyringPair; let palletAdmin: IKeyringPair; diff --git a/js-packages/tests/sub/check-event/burnItemEvent.test.ts b/js-packages/tests/sub/check-event/burnItemEvent.test.ts index 046eed43eb..3f504e669a 100644 --- a/js-packages/tests/sub/check-event/burnItemEvent.test.ts +++ b/js-packages/tests/sub/check-event/burnItemEvent.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub} from '../../util/index.js'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, expect, itSub} from '@unique/test-utils/util.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; describe('Burn Item event ', () => { diff --git a/js-packages/tests/sub/check-event/createCollectionEvent.test.ts b/js-packages/tests/sub/check-event/createCollectionEvent.test.ts index 68be7d5115..aec5454221 100644 --- a/js-packages/tests/sub/check-event/createCollectionEvent.test.ts +++ b/js-packages/tests/sub/check-event/createCollectionEvent.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect} from '../../util/index.js'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, itSub, expect} from '@unique/test-utils/util.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; describe('Create collection event ', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/check-event/createItemEvent.test.ts b/js-packages/tests/sub/check-event/createItemEvent.test.ts index 9abc2e9753..6bfa4de221 100644 --- a/js-packages/tests/sub/check-event/createItemEvent.test.ts +++ b/js-packages/tests/sub/check-event/createItemEvent.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from '../../util/index.js'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; describe('Create Item event ', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/check-event/createMultipleItemsEvent.test.ts b/js-packages/tests/sub/check-event/createMultipleItemsEvent.test.ts index 92ff73f93b..318eb59e05 100644 --- a/js-packages/tests/sub/check-event/createMultipleItemsEvent.test.ts +++ b/js-packages/tests/sub/check-event/createMultipleItemsEvent.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect} from '../../util/index.js'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, itSub, expect} from '@unique/test-utils/util.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; describe('Create Multiple Items Event event ', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/check-event/destroyCollectionEvent.test.ts b/js-packages/tests/sub/check-event/destroyCollectionEvent.test.ts index 53951f6240..bb87d273e6 100644 --- a/js-packages/tests/sub/check-event/destroyCollectionEvent.test.ts +++ b/js-packages/tests/sub/check-event/destroyCollectionEvent.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from '../../util/index.js'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; describe('Destroy collection event ', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/check-event/transferEvent.test.ts b/js-packages/tests/sub/check-event/transferEvent.test.ts index e43827ef1f..3e9c805907 100644 --- a/js-packages/tests/sub/check-event/transferEvent.test.ts +++ b/js-packages/tests/sub/check-event/transferEvent.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub} from '../../util/index.js'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, expect, itSub} from '@unique/test-utils/util.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; describe('Transfer event ', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/check-event/transferFromEvent.test.ts b/js-packages/tests/sub/check-event/transferFromEvent.test.ts index f6fd282955..1195efc037 100644 --- a/js-packages/tests/sub/check-event/transferFromEvent.test.ts +++ b/js-packages/tests/sub/check-event/transferFromEvent.test.ts @@ -16,8 +16,8 @@ // https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub} from '../../util/index.js'; -import type {IEvent} from '@unique/playgrounds/types.js'; +import {usingPlaygrounds, expect, itSub} from '@unique/test-utils/util.js'; +import type {IEvent} from '@unique-nft/playgrounds/types.js'; describe('Transfer event ', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/collator-selection/collatorSelection.seqtest.ts b/js-packages/tests/sub/collator-selection/collatorSelection.seqtest.ts index b7302a13af..ee98c47b4c 100644 --- a/js-packages/tests/sub/collator-selection/collatorSelection.seqtest.ts +++ b/js-packages/tests/sub/collator-selection/collatorSelection.seqtest.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub, Pallets, requirePalletsOrSkip} from '../../util/index.js'; +import {usingPlaygrounds, expect, itSub, Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; async function nodeAddress(name: string) { // eslint-disable-next-line require-await diff --git a/js-packages/tests/sub/collator-selection/identity.seqtest.ts b/js-packages/tests/sub/collator-selection/identity.seqtest.ts index c041906616..29c9ce92b4 100644 --- a/js-packages/tests/sub/collator-selection/identity.seqtest.ts +++ b/js-packages/tests/sub/collator-selection/identity.seqtest.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, expect, itSub, Pallets, requirePalletsOrSkip} from '../../util/index.js'; -import {UniqueHelper} from '@unique/playgrounds/unique.js'; +import {usingPlaygrounds, expect, itSub, Pallets, requirePalletsOrSkip} from '@unique/test-utils/util.js'; +import {UniqueHelper} from '@unique-nft/playgrounds/unique.js'; async function getIdentities(helper: UniqueHelper) { const identities: [string, any][] = []; diff --git a/js-packages/tests/sub/governance/council.test.ts b/js-packages/tests/sub/governance/council.test.ts index d1f4bbe38d..d963370276 100644 --- a/js-packages/tests/sub/governance/council.test.ts +++ b/js-packages/tests/sub/governance/council.test.ts @@ -1,8 +1,8 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../../util/index.js'; -import {Event} from '@unique/playgrounds/unique.dev.js'; -import {initCouncil, democracyLaunchPeriod, democracyVotingPeriod, democracyEnactmentPeriod, councilMotionDuration, democracyFastTrackVotingPeriod, fellowshipRankLimit, clearCouncil, clearTechComm, initTechComm, clearFellowship, dummyProposal, dummyProposalCall, initFellowship, defaultEnactmentMoment, fellowshipPropositionOrigin} from './util.js'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '@unique/test-utils/util.js'; +import {Event} from '@unique/test-utils'; +import {initCouncil, democracyLaunchPeriod, democracyVotingPeriod, democracyEnactmentPeriod, councilMotionDuration, democracyFastTrackVotingPeriod, fellowshipRankLimit, clearCouncil, clearTechComm, initTechComm, clearFellowship, dummyProposal, dummyProposalCall, initFellowship, defaultEnactmentMoment, fellowshipPropositionOrigin, initFinCouncil} from './util.js'; import type {ICounselors} from './util.js'; describeGov('Governance: Council tests', () => { @@ -192,14 +192,33 @@ describeGov('Governance: Council tests', () => { expect(techCommMembers).to.not.contains(techComm.andy.address); }); - itSub.skip('Council member can add Fellowship member', async ({helper}) => { + itSub('Council can remove FinCouncil member', async ({helper}) => { + const finCouncil = await initFinCouncil(donor, sudoer); + const removeMemberPrpoposal = helper.finCouncil.membership.removeMemberCall(finCouncil.andy.address); + await proposalFromMoreThanHalfCouncil(removeMemberPrpoposal); + + const finCouncilMembers = await helper.finCouncil.membership.getMembers(); + expect(finCouncilMembers).to.not.contains(finCouncil.andy.address); + }); + + itSub('Council can add FinCouncil member', async ({helper}) => { + await initFinCouncil(donor, sudoer); + const newFinCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberPrpoposal = helper.finCouncil.membership.addMemberCall(newFinCouncilMember.address); + await proposalFromMoreThanHalfCouncil(addMemberPrpoposal); + + const finCouncilMembers = await helper.finCouncil.membership.getMembers(); + expect(finCouncilMembers).to.contains(newFinCouncilMember.address); + }); + + itSub('Council member can add Fellowship member', async ({helper}) => { const newFellowshipMember = helper.arrange.createEmptyAccount(); await expect(helper.council.collective.execute( counselors.alex, helper.fellowship.collective.addMemberCall(newFellowshipMember.address), )).to.be.fulfilled; - const fellowshipMembers = (await helper.callRpc('api.query.fellowshipCollective.members')).toJSON(); - expect(fellowshipMembers).to.contains(newFellowshipMember.address); + expect(await helper.fellowship.collective.getMembers()).to.be.deep.contain(newFellowshipMember.address); + await clearFellowship(sudoer); }); itSub('>50% Council can promote Fellowship member', async ({helper}) => { @@ -227,16 +246,14 @@ describeGov('Governance: Council tests', () => { await clearFellowship(sudoer); }); - itSub('>50% Council can add\remove Fellowship member', async ({helper}) => { + itSub('>50% Council can remove Fellowship member', async ({helper}) => { try { - const newMember = helper.arrange.createEmptyAccount(); + const fellowship = await initFellowship(donor, sudoer); + const memberRank6 = fellowship[6][0]; - const proposalAdd = helper.fellowship.collective.addMemberCall(newMember.address); - const proposalRemove = helper.fellowship.collective.removeMemberCall(newMember.address, fellowshipRankLimit); - await expect(proposalFromMoreThanHalfCouncil(proposalAdd)).to.be.fulfilled; - expect(await helper.fellowship.collective.getMembers()).to.be.deep.contain(newMember.address); + const proposalRemove = helper.fellowship.collective.removeMemberCall(memberRank6.address, fellowshipRankLimit); await expect(proposalFromMoreThanHalfCouncil(proposalRemove)).to.be.fulfilled; - expect(await helper.fellowship.collective.getMembers()).to.be.not.deep.contain(newMember.address); + expect(await helper.fellowship.collective.getMembers()).to.be.not.deep.contain(memberRank6.address); } finally { await clearFellowship(sudoer); @@ -328,6 +345,22 @@ describeGov('Governance: Council tests', () => { )).to.be.rejectedWith('BadOrigin'); }); + itSub('[Negative] Council member can\'t add FinCouncil member', async ({helper}) => { + const newFinCouncilMember = helper.arrange.createEmptyAccount(); + await expect(helper.council.collective.execute( + counselors.alex, + helper.finCouncil.membership.addMemberCall(newFinCouncilMember.address), + )).rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council member can\'t remove FinCouncil member', async ({helper}) => { + const finCouncil = await initFinCouncil(donor, sudoer); + await expect(helper.council.collective.execute( + counselors.alex, + helper.finCouncil.membership.removeMemberCall(finCouncil.ildar.address), + )).rejectedWith('BadOrigin'); + }); + itSub('[Negative] Council member cannot promote/demote a Fellowship member', async ({helper}) => { const fellowship = await initFellowship(donor, sudoer); const memberWithRankOne = fellowship[1][0]; @@ -454,4 +487,21 @@ describeGov('Governance: Council tests', () => { await expect(helper.council.collective.close(counselors.filip, proposalHash, proposalIndex)).to.be.rejectedWith('TooEarly'); }); + itSub('[Negative] Council can\'t veto Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(proposalFromAllCouncil(helper.democracy.vetoExternalCall(preimageHash))) + .rejectedWith('BadOrigin'); + }); + + itSub('[Negative] Council member can\'t veto Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.council.collective.execute( + counselors.charu, + helper.democracy.vetoExternalCall(preimageHash), + )).rejectedWith('BadOrigin'); + }); }); diff --git a/js-packages/tests/sub/governance/democracy.test.ts b/js-packages/tests/sub/governance/democracy.test.ts index ae5bd89c1b..37f91a6be9 100644 --- a/js-packages/tests/sub/governance/democracy.test.ts +++ b/js-packages/tests/sub/governance/democracy.test.ts @@ -1,7 +1,7 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../../util/index.js'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '@unique/test-utils/util.js'; import {clearFellowship, democracyLaunchPeriod, democracyTrackMinRank, dummyProposalCall, fellowshipConfirmPeriod, fellowshipMinEnactPeriod, fellowshipPreparePeriod, fellowshipPropositionOrigin, initFellowship, voteUnanimouslyInFellowship} from './util.js'; -import {Event} from '@unique/playgrounds/unique.dev.js'; +import {Event} from '@unique/test-utils'; describeGov('Governance: Democracy tests', () => { let regularUser: IKeyringPair; diff --git a/js-packages/tests/sub/governance/electsudo.test.ts b/js-packages/tests/sub/governance/electsudo.test.ts index 8f134b4f78..dd5566c941 100644 --- a/js-packages/tests/sub/governance/electsudo.test.ts +++ b/js-packages/tests/sub/governance/electsudo.test.ts @@ -1,6 +1,6 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../../util/index.js'; -import {Event} from '@unique/playgrounds/unique.dev.js'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '@unique/test-utils/util.js'; +import {Event} from '@unique/test-utils'; import {initCouncil, democracyLaunchPeriod, democracyVotingPeriod, democracyEnactmentPeriod, clearCouncil, clearTechComm, initTechComm, ITechComms} from './util.js'; import type {ICounselors} from './util.js'; diff --git a/js-packages/tests/sub/governance/fellowship.test.ts b/js-packages/tests/sub/governance/fellowship.test.ts index 649ad1e054..f44126b528 100644 --- a/js-packages/tests/sub/governance/fellowship.test.ts +++ b/js-packages/tests/sub/governance/fellowship.test.ts @@ -1,6 +1,6 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../../util/index.js'; -import {DevUniqueHelper, Event} from '@unique/playgrounds/unique.dev.js'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '@unique/test-utils/util.js'; +import {DevUniqueHelper, Event} from '@unique/test-utils'; import {initCouncil, democracyLaunchPeriod, democracyVotingPeriod, democracyFastTrackVotingPeriod, fellowshipRankLimit, clearCouncil, clearTechComm, clearFellowship, defaultEnactmentMoment, dummyProposal, dummyProposalCall, fellowshipPropositionOrigin, initFellowship, initTechComm, voteUnanimouslyInFellowship, democracyTrackMinRank, fellowshipPreparePeriod, fellowshipConfirmPeriod, fellowshipMinEnactPeriod, democracyTrackId, hardResetFellowshipReferenda, hardResetDemocracy, hardResetGovScheduler} from './util.js'; import type {ICounselors, ITechComms} from './util.js'; diff --git a/js-packages/tests/sub/governance/financialCouncil.test.ts b/js-packages/tests/sub/governance/financialCouncil.test.ts new file mode 100644 index 0000000000..549f958535 --- /dev/null +++ b/js-packages/tests/sub/governance/financialCouncil.test.ts @@ -0,0 +1,440 @@ +import type {IKeyringPair} from '@polkadot/types/types'; +import {usingPlaygrounds, itSub, expect, describeGov} from '@unique/test-utils/util.js'; +import {Event} from '@unique/test-utils'; +import {democracyFastTrackVotingPeriod, IFinCounselors, clearTechComm, dummyProposalCall, initFinCouncil, clearFinCouncil, democracyLaunchPeriod, initFellowship, dummyProposal, fellowshipPropositionOrigin, defaultEnactmentMoment, initCouncil, clearCouncil, clearFellowship} from './util.js'; + + +describeGov('Governance: Financial Council tests', () => { + let donor: IKeyringPair; + let finCounselors: IFinCounselors; + let sudoer: IKeyringPair; + + const moreThanHalfCouncilThreshold = 2; + + before(async function() { + await usingPlaygrounds(async (helper, privateKey) => { + sudoer = await privateKey('//Alice'); + donor = await privateKey({url: import.meta.url}); + }); + }); + + beforeEach(async () => { + finCounselors = await initFinCouncil(donor, sudoer); + }); + + afterEach(async () => { + await clearFinCouncil(sudoer); + await clearTechComm(sudoer); + }); + + async function proposalFromMoreThanHalfFinCouncil(proposal: any) { + return await usingPlaygrounds(async (helper) => { + expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3); + const proposeResult = await helper.finCouncil.collective.propose( + finCounselors.ildar, + proposal, + moreThanHalfCouncilThreshold, + ); + + const councilProposedEvent = Event.FinCouncil.Proposed.expect(proposeResult); + const proposalIndex = councilProposedEvent.proposalIndex; + const proposalHash = councilProposedEvent.proposalHash; + + await helper.finCouncil.collective.vote(finCounselors.greg, proposalHash, proposalIndex, true); + await helper.finCouncil.collective.vote(finCounselors.ildar, proposalHash, proposalIndex, true); + + return await helper.finCouncil.collective.close(finCounselors.ildar, proposalHash, proposalIndex); + }); + } + + async function proposalFromAllFinCouncil(proposal: any) { + return await usingPlaygrounds(async (helper) => { + expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3); + const proposeResult = await helper.finCouncil.collective.propose( + finCounselors.ildar, + proposal, + moreThanHalfCouncilThreshold, + ); + + const councilProposedEvent = Event.FinCouncil.Proposed.expect(proposeResult); + const proposalIndex = councilProposedEvent.proposalIndex; + const proposalHash = councilProposedEvent.proposalHash; + + await helper.finCouncil.collective.vote(finCounselors.greg, proposalHash, proposalIndex, true); + await helper.finCouncil.collective.vote(finCounselors.ildar, proposalHash, proposalIndex, true); + await helper.finCouncil.collective.vote(finCounselors.andy, proposalHash, proposalIndex, true); + + return await helper.finCouncil.collective.close(finCounselors.andy, proposalHash, proposalIndex); + }); + } + + itSub('FinCouncil member can register foreign asset', async ({helper}) => { + const location = { + parents: 1, + interior: {X3: [ + { + Parachain: 1000, + }, + { + PalletInstance: 50, + }, + { + GeneralIndex: 1984, + }, + ]}, + }; + const assetId = {Concrete: location}; + + const registerForeignAssetCall = helper.constructApiCall( + 'api.tx.foreignAssets.forceRegisterForeignAsset', + [{V3: assetId}, helper.util.str2vec('New Asset'), 'NEW', {Fungible: 10}], + ); + + await helper.finCouncil.collective.execute(finCounselors.andy, registerForeignAssetCall); + + const asset = await helper.foreignAssets.foreignCollectionId(location); + expect(asset).not.null; + }); + + itSub('[Negative] FinCouncil can\'t fast-track Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.wait.parachainBlockMultiplesOf(35n); + + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(proposalFromAllFinCouncil(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0))) + .rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot fast-track Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil can\'t cancel Democracy proposals', async ({helper}) => { + const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n); + const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex; + + await expect(proposalFromAllFinCouncil(helper.democracy.cancelProposalCall(proposalIndex))) + .rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot cancel Democracy proposals', async ({helper}) => { + const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n); + const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex; + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.democracy.cancelProposalCall(proposalIndex), + )) + .to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil can\'t cancel ongoing Democracy referendums', async ({helper}) => { + await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper)); + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + await expect(proposalFromAllFinCouncil(helper.democracy.emergencyCancelCall(referendumIndex))) + .rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot cancel ongoing Democracy referendums', async ({helper}) => { + await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper)); + const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started); + const referendumIndex = startedEvent.referendumIndex; + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.democracy.emergencyCancelCall(referendumIndex), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil can\'t veto Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(proposalFromAllFinCouncil(helper.democracy.vetoExternalCall(preimageHash))) + .rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member can\'t veto Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.democracy.vetoExternalCall(preimageHash), + )).rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot blacklist Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(proposalFromAllFinCouncil(helper.democracy.blacklistCall(preimageHash))).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot blacklist Democracy proposals', async ({helper}) => { + const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true); + await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.democracy.blacklistCall(preimageHash), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil can\'t cancel Fellowship referendums', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const fellowshipProposer = fellowship[5][0]; + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + fellowshipProposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + await expect(proposalFromAllFinCouncil(helper.fellowship.referenda.cancelCall(referendumIndex))) + .rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot cancel Fellowship referendums', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const fellowshipProposer = fellowship[5][0]; + const proposal = dummyProposal(helper); + + const submitResult = await helper.fellowship.referenda.submit( + fellowshipProposer, + fellowshipPropositionOrigin, + proposal, + defaultEnactmentMoment, + ); + + const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex; + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.fellowship.referenda.cancelCall(referendumIndex), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot add a Fellowship member', async ({helper}) => { + const newFellowshipMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.fellowship.collective.addMemberCall(newFellowshipMember.address); + + await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot add a Fellowship member', async ({helper}) => { + const newFellowshipMember = helper.arrange.createEmptyAccount(); + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.fellowship.collective.addMemberCall(newFellowshipMember.address), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot submit regular democracy proposal', async ({helper}) => { + const councilProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n); + + await expect(proposalFromAllFinCouncil(councilProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot externally propose SuperMajorityAgainst', async ({helper}) => { + const commiteeProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper)); + + await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot submit regular democracy proposal', async ({helper}) => { + const memberProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot externally propose SimpleMajority', async ({helper}) => { + const commiteeProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper)); + + await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot externally propose SuperMajorityApprove', async ({helper}) => { + const commiteeProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper)); + + await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot externally propose SuperMajorityAgainst', async ({helper}) => { + const memberProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper)); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot externally propose SimpleMajority', async ({helper}) => { + const memberProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper)); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot externally propose SuperMajorityApprove', async ({helper}) => { + const memberProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper)); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + memberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot add/remove a Council member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address); + const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address); + + await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot add/remove a Council member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address); + const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + addMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + removeMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot add/remove a FinCouncil member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.finCouncil.membership.addMemberCall(newCouncilMember.address); + const removeMemberProposal = helper.finCouncil.membership.removeMemberCall(finCounselors.ildar.address); + + await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot add/remove a FinCouncil prime member', async ({helper}) => { + const setPrimeCall = helper.finCouncil.membership.setPrimeCall(finCounselors.andy.address); + const clearPrimeCall = helper.finCouncil.membership.clearPrimeCall(); + + await expect(proposalFromAllFinCouncil(setPrimeCall)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllFinCouncil(clearPrimeCall)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot add/remove a FinCouncil prime member', async ({helper}) => { + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.finCouncil.membership.setPrimeCall(finCounselors.andy.address), + )).to.be.rejectedWith('BadOrigin'); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.finCouncil.membership.clearPrimeCall(), + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot add/remove a FinCouncil member', async ({helper}) => { + const newCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.finCouncil.membership.addMemberCall(newCouncilMember.address); + const removeMemberProposal = helper.finCouncil.membership.removeMemberCall(finCounselors.ildar.address); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + addMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + removeMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot set/clear Council prime member', async ({helper}) => { + const counselors = await initCouncil(donor, sudoer); + const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address); + const proposalForClear = await helper.council.membership.clearPrimeCall(); + + await expect(proposalFromAllFinCouncil(proposalForSet)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllFinCouncil(proposalForClear)).to.be.rejectedWith('BadOrigin'); + await clearCouncil(sudoer); + }); + + itSub('[Negative] FinCouncil member cannot set/clear Council prime member', async ({helper}) => { + const counselors = await initCouncil(donor, sudoer); + const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address); + const proposalForClear = await helper.council.membership.clearPrimeCall(); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + proposalForSet, + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + proposalForClear, + )).to.be.rejectedWith('BadOrigin'); + await clearCouncil(sudoer); + }); + + itSub('[Negative] FinCouncil cannot add/remove a TechComm member', async ({helper}) => { + const newCommMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newCommMember.address); + const removeMemberProposal = helper.technicalCommittee.membership.removeMemberCall(newCommMember.address); + + await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin'); + await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil member cannot add/remove a TechComm member', async ({helper}) => { + const newCommMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newCommMember.address); + const removeMemberProposal = helper.technicalCommittee.membership.removeMemberCall(newCommMember.address); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + addMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + removeMemberProposal, + )).to.be.rejectedWith('BadOrigin'); + }); + + itSub('[Negative] FinCouncil cannot remove a Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + + await expect(proposalFromAllFinCouncil(helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5))).to.be.rejectedWith('BadOrigin'); + await clearFellowship(sudoer); + }); + + itSub('[Negative] FinCouncil member cannot remove a Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + + await expect(helper.finCouncil.collective.execute( + finCounselors.andy, + helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5), + )).to.be.rejectedWith('BadOrigin'); + await clearFellowship(sudoer); + }); + + +}); diff --git a/js-packages/tests/sub/governance/init.test.ts b/js-packages/tests/sub/governance/init.test.ts index fe6f44a67b..9b4c645f22 100644 --- a/js-packages/tests/sub/governance/init.test.ts +++ b/js-packages/tests/sub/governance/init.test.ts @@ -1,6 +1,6 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../../util/index.js'; -import {Event} from '@unique/playgrounds/unique.dev.js'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '@unique/test-utils/util.js'; +import {Event} from '@unique/test-utils'; import {democracyLaunchPeriod, democracyVotingPeriod, democracyEnactmentPeriod, clearCouncil, clearTechComm, clearFellowship} from './util.js'; import type {ICounselors, ITechComms} from './util.js'; diff --git a/js-packages/tests/sub/governance/technicalCommittee.test.ts b/js-packages/tests/sub/governance/technicalCommittee.test.ts index 0fe8badde1..2dea4ef70e 100644 --- a/js-packages/tests/sub/governance/technicalCommittee.test.ts +++ b/js-packages/tests/sub/governance/technicalCommittee.test.ts @@ -1,6 +1,6 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '../../util/index.js'; -import {Event} from '@unique/playgrounds/unique.dev.js'; +import {usingPlaygrounds, itSub, expect, Pallets, requirePalletsOrSkip, describeGov} from '@unique/test-utils/util.js'; +import {Event} from '@unique/test-utils'; import {initCouncil, democracyLaunchPeriod, democracyFastTrackVotingPeriod, clearCouncil, clearTechComm, clearFellowship, defaultEnactmentMoment, dummyProposal, dummyProposalCall, fellowshipPropositionOrigin, initFellowship, initTechComm, hardResetFellowshipReferenda, hardResetDemocracy, hardResetGovScheduler} from './util.js'; import type {ITechComms} from './util.js'; @@ -119,17 +119,60 @@ describeGov('Governance: Technical Committee tests', () => { Event.FellowshipReferenda.Cancelled.expect(cancelProposal); }); - itSub.skip('TechComm member can add a Fellowship member', async ({helper}) => { + itSub('TechComm member can add a Fellowship member', async ({helper}) => { const newFellowshipMember = helper.arrange.createEmptyAccount(); await expect(helper.technicalCommittee.collective.execute( techcomms.andy, helper.fellowship.collective.addMemberCall(newFellowshipMember.address), )).to.be.fulfilled; - const fellowshipMembers = (await helper.callRpc('api.query.fellowshipCollective.members')).toJSON(); - expect(fellowshipMembers).to.contains(newFellowshipMember.address); + expect(await helper.fellowship.collective.getMembers()).to.be.deep.contain(newFellowshipMember.address); await clearFellowship(sudoer); }); + itSub('[Negative] TechComm can\'t add FinCouncil member', async ({helper}) => { + const newFinCouncilMember = helper.arrange.createEmptyAccount(); + const addMemberProposal = helper.finCouncil.membership.addMemberCall(newFinCouncilMember.address); + await expect(proposalFromAllCommittee(addMemberProposal)).rejectedWith('BadOrigin'); + + const finCouncilMembers = await helper.finCouncil.membership.getMembers(); + expect(finCouncilMembers).to.not.contains(newFinCouncilMember.address); + }); + + + itSub('[Negative] TechComm member can\'t add FinCouncil member', async ({helper}) => { + const newFinCouncilMember = helper.arrange.createEmptyAccount(); + await expect(helper.technicalCommittee.collective.execute( + techcomms.greg, + helper.finCouncil.membership.addMemberCall(newFinCouncilMember.address), + )).rejectedWith('BadOrigin'); + }); + + itSub('[Negative] TechComm member cannot register foreign asset', async ({helper}) => { + const location = { + parents: 1, + interior: {X3: [ + { + Parachain: 1000, + }, + { + PalletInstance: 50, + }, + { + GeneralIndex: 1985, + }, + ]}, + }; + const assetId = {Concrete: location}; + + const foreignAssetProposal = helper.constructApiCall( + 'api.tx.foreignAssets.forceRegisterForeignAsset', + [{V3: assetId}, helper.util.str2vec('New Asset2'), 'NEW', {Fungible: 10}], + ); + + await expect(helper.technicalCommittee.collective.execute(techcomms.andy, foreignAssetProposal)) + .to.be.rejectedWith('BadOrigin'); + }); + itSub('[Negative] TechComm cannot submit regular democracy proposal', async ({helper}) => { const councilProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n); @@ -191,12 +234,36 @@ describeGov('Governance: Technical Committee tests', () => { }); - itSub.skip('[Negative] TechComm cannot promote/demote Fellowship member', async () => { + itSub('[Negative] TechComm cannot promote/demote Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const memberWithRankOne = fellowship[1][0]; + + const promoteProposal = helper.fellowship.collective.promoteCall(memberWithRankOne.address); + await expect(proposalFromAllCommittee(promoteProposal)).rejectedWith('BadOrigin'); + + const demoteProposal = helper.fellowship.collective.demoteCall(memberWithRankOne.address); + await expect(proposalFromAllCommittee(demoteProposal)).rejectedWith('BadOrigin'); + await clearFellowship(sudoer); }); - itSub.skip('[Negative] TechComm member cannot promote/demote Fellowship member', async () => { + itSub('[Negative] TechComm member cannot promote/demote Fellowship member', async ({helper}) => { + const fellowship = await initFellowship(donor, sudoer); + const memberWithRankOne = fellowship[1][0]; + + const promoteProposal = helper.fellowship.collective.promoteCall(memberWithRankOne.address); + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + promoteProposal, + )).to.be.rejectedWith('BadOrigin'); + + const demoteProposal = helper.fellowship.collective.demoteCall(memberWithRankOne.address); + await expect(helper.technicalCommittee.collective.execute( + techcomms.andy, + demoteProposal, + )).to.be.rejectedWith('BadOrigin'); + await clearFellowship(sudoer); }); itSub('[Negative] TechComm cannot add/remove a Council member', async ({helper}) => { diff --git a/js-packages/tests/sub/governance/util.ts b/js-packages/tests/sub/governance/util.ts index bbebc56449..8e891e45c7 100644 --- a/js-packages/tests/sub/governance/util.ts +++ b/js-packages/tests/sub/governance/util.ts @@ -1,9 +1,9 @@ import type {IKeyringPair} from '@polkadot/types/types'; import {xxhashAsHex} from '@polkadot/util-crypto'; import type {u32} from '@polkadot/types-codec'; -import {usingPlaygrounds, expect} from '../../util/index.js'; -import {UniqueHelper} from '@unique/playgrounds/unique.js'; -import {DevUniqueHelper} from '@unique/playgrounds/unique.dev.js'; +import {usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {UniqueHelper} from '@unique-nft/playgrounds/unique.js'; +import {DevUniqueHelper} from '@unique/test-utils'; export const democracyLaunchPeriod = 35; export const democracyVotingPeriod = 35; @@ -29,12 +29,62 @@ export interface ICounselors { filip: IKeyringPair; irina: IKeyringPair; } + +export interface IFinCounselors { + greg: IKeyringPair; + ildar: IKeyringPair; + andy: IKeyringPair; +} + export interface ITechComms { greg: IKeyringPair; andy: IKeyringPair; constantine: IKeyringPair; } +export function initFinCouncil(donor: IKeyringPair, superuser: IKeyringPair): Promise { + return usingPlaygrounds(async (helper) => { + const [greg, ildar, andy] = await helper.arrange.createAccounts([10_000n, 10_000n, 10_000n], donor); + const sudo = helper.getSudo(); + { + const members = (await helper.callRpc('api.query.financialCouncilMembership.members')).toJSON() as []; + if(members.length != 0) { + await clearFinCouncil(superuser); + } + } + const expectedMembers = [greg, ildar, andy]; + for(const member of expectedMembers) { + await sudo.executeExtrinsic(superuser, 'api.tx.financialCouncilMembership.addMember', [member.address]); + } + await sudo.executeExtrinsic(superuser, 'api.tx.financialCouncilMembership.setPrime', [greg.address]); + { + const members = (await helper.callRpc('api.query.financialCouncilMembership.members')).toJSON(); + expect(members).to.containSubset(expectedMembers.map((x: IKeyringPair) => x.address)); + expect(members.length).to.be.equal(expectedMembers.length); + } + + return { + greg, + ildar, + andy, + }; + }); +} + +export async function clearFinCouncil(superuser: IKeyringPair) { + await usingPlaygrounds(async (helper) => { + let members = (await helper.callRpc('api.query.financialCouncilMembership.members')).toJSON(); + if(members.length) { + const sudo = helper.getSudo(); + for(const address of members) { + await sudo.executeExtrinsic(superuser, 'api.tx.financialCouncilMembership.removeMember', [address]); + } + members = (await helper.callRpc('api.query.financialCouncilMembership.members')).toJSON(); + } + expect(members).to.be.deep.equal([]); + }); +} + export async function initCouncil(donor: IKeyringPair, superuser: IKeyringPair) { let counselors: IKeyringPair[] = []; diff --git a/js-packages/tests/sub/nesting/admin.test.ts b/js-packages/tests/sub/nesting/admin.test.ts index 5734806f2a..8ac9be23c6 100644 --- a/js-packages/tests/sub/nesting/admin.test.ts +++ b/js-packages/tests/sub/nesting/admin.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from '../../util/index.js'; -import {CrossAccountId} from '@unique/playgrounds/unique.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {CrossAccountId} from '@unique-nft/playgrounds/unique.js'; describe('Nesting by collection admin', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/collectionProperties.seqtest.ts b/js-packages/tests/sub/nesting/collectionProperties.seqtest.ts index 16d9c99781..ec373c99f2 100644 --- a/js-packages/tests/sub/nesting/collectionProperties.seqtest.ts +++ b/js-packages/tests/sub/nesting/collectionProperties.seqtest.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip, sizeOfProperty} from '../../util/index.js'; +import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip, sizeOfProperty} from '@unique/test-utils/util.js'; describe('Integration Test: Collection Properties with sudo', () => { let superuser: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/collectionProperties.test.ts b/js-packages/tests/sub/nesting/collectionProperties.test.ts index 076f7c2578..9a0896f0b8 100644 --- a/js-packages/tests/sub/nesting/collectionProperties.test.ts +++ b/js-packages/tests/sub/nesting/collectionProperties.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip, sizeOfProperty} from '../../util/index.js'; +import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip, sizeOfProperty} from '@unique/test-utils/util.js'; describe('Integration Test: Collection Properties', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/common.test.ts b/js-packages/tests/sub/nesting/common.test.ts index c104f526dc..aaf8435af9 100644 --- a/js-packages/tests/sub/nesting/common.test.ts +++ b/js-packages/tests/sub/nesting/common.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, usingPlaygrounds} from '../../util/index.js'; -import {CrossAccountId, UniqueNFTCollection, UniqueRFTCollection} from '@unique/playgrounds/unique.js'; +import {expect, itSub, Pallets, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {CrossAccountId, UniqueNFTCollection, UniqueRFTCollection} from '@unique-nft/playgrounds/unique.js'; let alice: IKeyringPair; let bob: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/e2e.test.ts b/js-packages/tests/sub/nesting/e2e.test.ts index badda2eaec..dbc0baea51 100644 --- a/js-packages/tests/sub/nesting/e2e.test.ts +++ b/js-packages/tests/sub/nesting/e2e.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from '../../util/index.js'; -import {CrossAccountId} from '@unique/playgrounds/unique.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {CrossAccountId} from '@unique-nft/playgrounds/unique.js'; describe('Composite nesting tests', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/graphs.test.ts b/js-packages/tests/sub/nesting/graphs.test.ts index 23df4c01fc..d1a0c551cd 100644 --- a/js-packages/tests/sub/nesting/graphs.test.ts +++ b/js-packages/tests/sub/nesting/graphs.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from '../../util/index.js'; -import {UniqueHelper, UniqueNFTCollection, UniqueNFToken} from '@unique/playgrounds/unique.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {UniqueHelper, UniqueNFTCollection, UniqueNFToken} from '@unique-nft/playgrounds/unique.js'; /** * ```dot diff --git a/js-packages/tests/sub/nesting/nesting.negative.test.ts b/js-packages/tests/sub/nesting/nesting.negative.test.ts index cfb7e7fa65..ec2d492c90 100644 --- a/js-packages/tests/sub/nesting/nesting.negative.test.ts +++ b/js-packages/tests/sub/nesting/nesting.negative.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, usingPlaygrounds} from '../../util/index.js'; -import {UniqueFTCollection, UniqueNFTCollection, UniqueNFToken, UniqueRFTCollection, UniqueRFToken} from '@unique/playgrounds/unique.js'; -import {itEth} from '../../eth/util/index.js'; +import {expect, itSub, Pallets, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {UniqueFTCollection, UniqueNFTCollection, UniqueNFToken, UniqueRFTCollection, UniqueRFToken} from '@unique-nft/playgrounds/unique.js'; +import {itEth} from '@unique/test-utils/eth/util.js'; let alice: IKeyringPair; let bob: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/propertyPermissions.test.ts b/js-packages/tests/sub/nesting/propertyPermissions.test.ts index fc9de22797..e936b5fa38 100644 --- a/js-packages/tests/sub/nesting/propertyPermissions.test.ts +++ b/js-packages/tests/sub/nesting/propertyPermissions.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, usingPlaygrounds, expect} from '../../util/index.js'; -import {UniqueNFTCollection, UniqueRFTCollection} from '@unique/playgrounds/unique.js'; +import {itSub, Pallets, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {UniqueNFTCollection, UniqueRFTCollection} from '@unique-nft/playgrounds/unique.js'; describe('Integration Test: Access Rights to Token Properties', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/refungible.test.ts b/js-packages/tests/sub/nesting/refungible.test.ts index 019472ae7f..ae45a213ed 100644 --- a/js-packages/tests/sub/nesting/refungible.test.ts +++ b/js-packages/tests/sub/nesting/refungible.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, usingPlaygrounds} from '../../util/index.js'; +import {expect, itSub, Pallets, usingPlaygrounds} from '@unique/test-utils/util.js'; describe('ReFungible-specific nesting tests', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/tokenProperties.seqtest.ts b/js-packages/tests/sub/nesting/tokenProperties.seqtest.ts index c864ddfdf4..7513d1dc2f 100644 --- a/js-packages/tests/sub/nesting/tokenProperties.seqtest.ts +++ b/js-packages/tests/sub/nesting/tokenProperties.seqtest.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip, sizeOfProperty} from '../../util/index.js'; +import {itSub, Pallets, usingPlaygrounds, expect, requirePalletsOrSkip, sizeOfProperty} from '@unique/test-utils/util.js'; describe('Integration Test: Token Properties with sudo', () => { let superuser: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/tokenProperties.test.ts b/js-packages/tests/sub/nesting/tokenProperties.test.ts index 6ba079a565..620847bb86 100644 --- a/js-packages/tests/sub/nesting/tokenProperties.test.ts +++ b/js-packages/tests/sub/nesting/tokenProperties.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect, sizeOfProperty} from '../../util/index.js'; -import {UniqueHelper, UniqueNFToken, UniqueRFToken} from '@unique/playgrounds/unique.js'; +import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect, sizeOfProperty} from '@unique/test-utils/util.js'; +import {UniqueHelper, UniqueNFToken, UniqueRFToken} from '@unique-nft/playgrounds/unique.js'; describe('Integration Test: Token Properties', () => { let alice: IKeyringPair; // collection owner diff --git a/js-packages/tests/sub/nesting/unnest.test.ts b/js-packages/tests/sub/nesting/unnest.test.ts index 85156ff996..7a1eb18c27 100644 --- a/js-packages/tests/sub/nesting/unnest.test.ts +++ b/js-packages/tests/sub/nesting/unnest.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, usingPlaygrounds} from '../../util/index.js'; -import {CrossAccountId, UniqueFTCollection, UniqueNFToken, UniqueRFToken} from '@unique/playgrounds/unique.js'; +import {expect, itSub, Pallets, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {CrossAccountId, UniqueFTCollection, UniqueNFToken, UniqueRFToken} from '@unique-nft/playgrounds/unique.js'; describe('Integration Test: Unnesting', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/nesting/unnesting.negative.test.ts b/js-packages/tests/sub/nesting/unnesting.negative.test.ts index 997264faf4..32d16bc52e 100644 --- a/js-packages/tests/sub/nesting/unnesting.negative.test.ts +++ b/js-packages/tests/sub/nesting/unnesting.negative.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, usingPlaygrounds} from '../../util/index.js'; -import {CrossAccountId} from '@unique/playgrounds/unique.js'; +import {expect, itSub, usingPlaygrounds} from '@unique/test-utils/util.js'; +import {CrossAccountId} from '@unique-nft/playgrounds/unique.js'; describe('Negative Test: Unnesting', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/refungible/burn.test.ts b/js-packages/tests/sub/refungible/burn.test.ts index 7f9d6fe2bd..4cee1cb9a6 100644 --- a/js-packages/tests/sub/refungible/burn.test.ts +++ b/js-packages/tests/sub/refungible/burn.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from '../../util/index.js'; +import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; describe('Refungible: burn', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/sub/refungible/nesting.test.ts b/js-packages/tests/sub/refungible/nesting.test.ts index bec9455570..7c1644d9cb 100644 --- a/js-packages/tests/sub/refungible/nesting.test.ts +++ b/js-packages/tests/sub/refungible/nesting.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {expect, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from '../../util/index.js'; +import {expect, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from '@unique/test-utils/util.js'; describe('Refungible nesting', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/sub/refungible/repartition.test.ts b/js-packages/tests/sub/refungible/repartition.test.ts index f678eb42d9..648761f8ba 100644 --- a/js-packages/tests/sub/refungible/repartition.test.ts +++ b/js-packages/tests/sub/refungible/repartition.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from '../../util/index.js'; +import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; describe('integration test: Refungible functionality:', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/sub/refungible/transfer.test.ts b/js-packages/tests/sub/refungible/transfer.test.ts index 4aef955a56..6ab8d4b1fc 100644 --- a/js-packages/tests/sub/refungible/transfer.test.ts +++ b/js-packages/tests/sub/refungible/transfer.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from '../../util/index.js'; +import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; describe('Refungible transfer tests', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/transfer.test.ts b/js-packages/tests/transfer.test.ts index cb9cafe83d..15f8f4d403 100644 --- a/js-packages/tests/transfer.test.ts +++ b/js-packages/tests/transfer.test.ts @@ -15,9 +15,9 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itEth, usingEthPlaygrounds} from './eth/util/index.js'; -import {itSub, Pallets, usingPlaygrounds, expect} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itEth, usingEthPlaygrounds} from '@unique/test-utils/eth/util.js'; +import {itSub, Pallets, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('Integration Test Transfer(recipient, collection_id, item_id, value)', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/transferFrom.test.ts b/js-packages/tests/transferFrom.test.ts index d791a054f7..277693e7a5 100644 --- a/js-packages/tests/transferFrom.test.ts +++ b/js-packages/tests/transferFrom.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, Pallets, usingPlaygrounds, expect} from './util/index.js'; -import {NON_EXISTENT_COLLECTION_ID} from '@unique/playgrounds/types.js'; +import {itSub, Pallets, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; +import {NON_EXISTENT_COLLECTION_ID} from '@unique-nft/playgrounds/types.js'; describe('Integration Test transferFrom(from, recipient, collection_id, item_id, value):', () => { let alice: IKeyringPair; diff --git a/js-packages/tests/tx-version-presence.test.ts b/js-packages/tests/tx-version-presence.test.ts index 5671fe59be..31698767a6 100644 --- a/js-packages/tests/tx-version-presence.test.ts +++ b/js-packages/tests/tx-version-presence.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import {Metadata} from '@polkadot/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; let metadata: Metadata; diff --git a/js-packages/tests/util/frankensteinMigrate.ts b/js-packages/tests/util/frankensteinMigrate.ts deleted file mode 100644 index a17e50574f..0000000000 --- a/js-packages/tests/util/frankensteinMigrate.ts +++ /dev/null @@ -1,9 +0,0 @@ -import {migration as locksToFreezesMigration} from '../migrations/942057-appPromotion/index.js'; -export interface Migration { - before: () => Promise, - after: () => Promise, -} - -export const migrations: {[key: string]: Migration} = { - 'v942057': locksToFreezesMigration, -}; diff --git a/js-packages/tests/vesting.test.ts b/js-packages/tests/vesting.test.ts index a9a59f0dc1..3ac99babee 100644 --- a/js-packages/tests/vesting.test.ts +++ b/js-packages/tests/vesting.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, usingPlaygrounds, expect} from './util/index.js'; +import {itSub, usingPlaygrounds, expect} from '@unique/test-utils/util.js'; describe('Vesting', () => { let donor: IKeyringPair; diff --git a/js-packages/tests/xcm/lowLevelXcmQuartz.test.ts b/js-packages/tests/xcm/lowLevelXcmQuartz.test.ts index ef9453a321..2d7de1a593 100644 --- a/js-packages/tests/xcm/lowLevelXcmQuartz.test.ts +++ b/js-packages/tests/xcm/lowLevelXcmQuartz.test.ts @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, describeXCM, usingPlaygrounds, usingKaruraPlaygrounds, usingMoonriverPlaygrounds, usingShidenPlaygrounds, usingRelayPlaygrounds} from '../util/index.js'; +import {itSub, describeXCM, usingPlaygrounds, usingKaruraPlaygrounds, usingMoonriverPlaygrounds, usingShidenPlaygrounds} from '@unique/test-utils/util.js'; import {QUARTZ_CHAIN, QTZ_DECIMALS, SHIDEN_DECIMALS, karuraUrl, moonriverUrl, shidenUrl, SAFE_XCM_VERSION, XcmTestHelper, TRANSFER_AMOUNT, SENDER_BUDGET, relayUrl} from './xcm.types.js'; import {hexToString} from '@polkadot/util'; diff --git a/js-packages/tests/xcm/lowLevelXcmUnique.test.ts b/js-packages/tests/xcm/lowLevelXcmUnique.test.ts index f396b347d7..0ac532e4e9 100644 --- a/js-packages/tests/xcm/lowLevelXcmUnique.test.ts +++ b/js-packages/tests/xcm/lowLevelXcmUnique.test.ts @@ -16,10 +16,10 @@ import type {IKeyringPair} from '@polkadot/types/types'; import config from '../config.js'; -import {itSub, describeXCM, usingPlaygrounds, usingAcalaPlaygrounds, usingMoonbeamPlaygrounds, usingAstarPlaygrounds, usingPolkadexPlaygrounds, usingRelayPlaygrounds} from '../util/index.js'; +import {itSub, describeXCM, usingPlaygrounds, usingAcalaPlaygrounds, usingMoonbeamPlaygrounds, usingAstarPlaygrounds, usingPolkadexPlaygrounds, usingHydraDxPlaygrounds} from '@unique/test-utils/util.js'; import {nToBigInt} from '@polkadot/util'; import {hexToString} from '@polkadot/util'; -import {ASTAR_DECIMALS, SAFE_XCM_VERSION, SENDER_BUDGET, UNIQUE_CHAIN, UNQ_DECIMALS, XcmTestHelper, acalaUrl, astarUrl, moonbeamUrl, polkadexUrl, relayUrl, uniqueAssetId} from './xcm.types.js'; +import {ASTAR_DECIMALS, SAFE_XCM_VERSION, SENDER_BUDGET, UNIQUE_CHAIN, UNQ_DECIMALS, XcmTestHelper, acalaUrl, astarUrl, hydraDxUrl, moonbeamUrl, polkadexUrl, uniqueAssetId} from './xcm.types.js'; const testHelper = new XcmTestHelper('unique'); @@ -364,3 +364,40 @@ describeXCM('[XCMLL] Integration test: Exchanging tokens with Astar', () => { await testHelper.rejectReserveTransferUNQfrom('astar', alice); }); }); + +describeXCM('[XCMLL] Integration test: Exchanging tokens with HydraDx', () => { + let alice: IKeyringPair; + let randomAccount: IKeyringPair; + + before(async () => { + await usingPlaygrounds(async (helper, privateKey) => { + alice = await privateKey('//Alice'); + console.log(config.acalaUrl); + randomAccount = helper.arrange.createEmptyAccount(); + + // Set the default version to wrap the first message to other chains. + await helper.getSudo().xcm.setSafeXcmVersion(alice, SAFE_XCM_VERSION); + await helper.balance.transferToSubstrate(alice, randomAccount.address, SENDER_BUDGET); + }); + + await usingHydraDxPlaygrounds(hydraDxUrl, async (helper) => { + await helper.balance.transferToSubstrate(alice, randomAccount.address, 10000000000000n); + }); + }); + + itSub('Should connect and send UNQ to HydraDx', async () => { + await testHelper.sendUnqTo('hydraDx', randomAccount); + }); + + itSub('Should connect to HydraDx and send UNQ back', async () => { + await testHelper.sendUnqBack('hydraDx', alice, randomAccount); + }); + + itSub('HydraDx can send only up to its balance', async () => { + await testHelper.sendOnlyOwnedBalance('hydraDx', alice); + }); + + itSub('Should not accept reserve transfer of UNQ from HydraDx', async () => { + await testHelper.rejectReserveTransferUNQfrom('hydraDx', alice); + }); +}); \ No newline at end of file diff --git a/js-packages/tests/xcm/xcm.types.ts b/js-packages/tests/xcm/xcm.types.ts index a9de81522e..e0a304f47c 100644 --- a/js-packages/tests/xcm/xcm.types.ts +++ b/js-packages/tests/xcm/xcm.types.ts @@ -1,7 +1,6 @@ import type {IKeyringPair} from '@polkadot/types/types'; -import {hexToString} from '@polkadot/util'; -import {expect, usingAcalaPlaygrounds, usingAstarPlaygrounds, usingKaruraPlaygrounds, usingMoonbeamPlaygrounds, usingMoonriverPlaygrounds, usingPlaygrounds, usingPolkadexPlaygrounds, usingRelayPlaygrounds, usingShidenPlaygrounds} from '../util/index.js'; -import {DevUniqueHelper, Event} from '@unique/playgrounds/unique.dev.js'; +import {expect, usingAcalaPlaygrounds, usingAstarPlaygrounds, usingHydraDxPlaygrounds, usingKaruraPlaygrounds, usingMoonbeamPlaygrounds, usingMoonriverPlaygrounds, usingPlaygrounds, usingPolkadexPlaygrounds, usingRelayPlaygrounds, usingShidenPlaygrounds} from '@unique/test-utils/util.js'; +import {DevUniqueHelper, Event} from '@unique/test-utils'; import config from '../config.js'; export const UNIQUE_CHAIN = +(process.env.RELAY_UNIQUE_ID || 2037); @@ -10,6 +9,7 @@ export const ACALA_CHAIN = +(process.env.RELAY_ACALA_ID || 2000); export const MOONBEAM_CHAIN = +(process.env.RELAY_MOONBEAM_ID || 2004); export const ASTAR_CHAIN = +(process.env.RELAY_ASTAR_ID || 2006); export const POLKADEX_CHAIN = +(process.env.RELAY_POLKADEX_ID || 2040); +export const HYDRADX_CHAIN = +(process.env.RELAY_HYDRADX_ID || 2034); export const QUARTZ_CHAIN = +(process.env.RELAY_QUARTZ_ID || 2095); export const STATEMINE_CHAIN = +(process.env.RELAY_STATEMINE_ID || 1000); @@ -25,6 +25,7 @@ export const acalaUrl = config.acalaUrl; export const moonbeamUrl = config.moonbeamUrl; export const astarUrl = config.astarUrl; export const polkadexUrl = config.polkadexUrl; +export const hydraDxUrl = config.hydraDxUrl; export const karuraUrl = config.karuraUrl; export const moonriverUrl = config.moonriverUrl; @@ -87,6 +88,7 @@ export const NETWORKS = { moonriver: usingMoonriverPlaygrounds, karura: usingKaruraPlaygrounds, shiden: usingShidenPlaygrounds, + hydraDx: usingHydraDxPlaygrounds, } as const; type NetworkNames = keyof typeof NETWORKS; @@ -108,6 +110,8 @@ export function mapToChainId(networkName: keyof typeof NETWORKS): number { return KARURA_CHAIN; case 'shiden': return SHIDEN_CHAIN; + case 'hydraDx': + return HYDRADX_CHAIN; } } @@ -127,6 +131,8 @@ export function mapToChainUrl(networkName: NetworkNames): string { return karuraUrl; case 'shiden': return shidenUrl; + case 'hydraDx': + return hydraDxUrl; } } @@ -277,7 +283,7 @@ export class XcmTestHelper { since the hash is being checked to ensure it matches what was sent. */ - if(networkName == 'polkadex') { + if(networkName == 'polkadex' || networkName =='hydraDx') { await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Fail, event => event.messageHash == messageSent.messageHash); } else { await helper.wait.expectEvent(maxWaitBlocks, Event.XcmpQueue.Success, event => event.messageHash == messageSent.messageHash); diff --git a/js-packages/tests/xcm/xcmOpal.test.ts b/js-packages/tests/xcm/xcmOpal.test.ts index 46b6531746..28db4f2484 100644 --- a/js-packages/tests/xcm/xcmOpal.test.ts +++ b/js-packages/tests/xcm/xcmOpal.test.ts @@ -16,7 +16,7 @@ import type {IKeyringPair} from '@polkadot/types/types'; import config from '../config.js'; -import {itSub, expect, describeXCM, usingPlaygrounds, usingWestmintPlaygrounds, usingRelayPlaygrounds} from '../util/index.js'; +import {itSub, expect, describeXCM, usingPlaygrounds, usingWestmintPlaygrounds, usingRelayPlaygrounds} from '@unique/test-utils/util.js'; import {XcmTestHelper} from './xcm.types.js'; const STATEMINE_CHAIN = +(process.env.RELAY_WESTMINT_ID || 1000); diff --git a/js-packages/tests/xcm/xcmQuartz.test.ts b/js-packages/tests/xcm/xcmQuartz.test.ts index fe9f6efa9c..67dc5afaa8 100644 --- a/js-packages/tests/xcm/xcmQuartz.test.ts +++ b/js-packages/tests/xcm/xcmQuartz.test.ts @@ -15,8 +15,8 @@ // along with Unique Network. If not, see . import type {IKeyringPair} from '@polkadot/types/types'; -import {itSub, expect, describeXCM, usingPlaygrounds, usingKaruraPlaygrounds, usingRelayPlaygrounds, usingMoonriverPlaygrounds, usingStateminePlaygrounds, usingShidenPlaygrounds} from '../util/index.js'; -import {DevUniqueHelper, Event} from '@unique/playgrounds/unique.dev.js'; +import {itSub, expect, describeXCM, usingPlaygrounds, usingKaruraPlaygrounds, usingRelayPlaygrounds, usingMoonriverPlaygrounds, usingStateminePlaygrounds, usingShidenPlaygrounds} from '@unique/test-utils/util.js'; +import {DevUniqueHelper, Event} from '@unique/test-utils'; import {STATEMINE_CHAIN, QUARTZ_CHAIN, KARURA_CHAIN, MOONRIVER_CHAIN, SHIDEN_CHAIN, STATEMINE_DECIMALS, KARURA_DECIMALS, QTZ_DECIMALS, RELAY_DECIMALS, SHIDEN_DECIMALS, karuraUrl, moonriverUrl, relayUrl, shidenUrl, statemineUrl} from './xcm.types.js'; import {hexToString} from '@polkadot/util'; import {XcmTestHelper} from './xcm.types.js'; diff --git a/js-packages/tests/xcm/xcmUnique.test.ts b/js-packages/tests/xcm/xcmUnique.test.ts index af2778c83a..1df2091d6d 100644 --- a/js-packages/tests/xcm/xcmUnique.test.ts +++ b/js-packages/tests/xcm/xcmUnique.test.ts @@ -16,8 +16,8 @@ import type {IKeyringPair} from '@polkadot/types/types'; import config from '../config.js'; -import {itSub, expect, describeXCM, usingPlaygrounds, usingAcalaPlaygrounds, usingRelayPlaygrounds, usingMoonbeamPlaygrounds, usingStatemintPlaygrounds, usingAstarPlaygrounds, usingPolkadexPlaygrounds} from '../util/index.js'; -import {Event} from '@unique/playgrounds/unique.dev.js'; +import {itSub, expect, describeXCM, usingPlaygrounds, usingAcalaPlaygrounds, usingRelayPlaygrounds, usingMoonbeamPlaygrounds, usingStatemintPlaygrounds, usingAstarPlaygrounds, usingPolkadexPlaygrounds} from '@unique/test-utils/util.js'; +import {Event} from '@unique/test-utils'; import {hexToString, nToBigInt} from '@polkadot/util'; import {ACALA_CHAIN, ASTAR_CHAIN, MOONBEAM_CHAIN, POLKADEX_CHAIN, SAFE_XCM_VERSION, STATEMINT_CHAIN, UNIQUE_CHAIN, expectFailedToTransact, expectUntrustedReserveLocationFail, uniqueAssetId, uniqueVersionedMultilocation} from './xcm.types.js'; import {XcmTestHelper} from './xcm.types.js'; diff --git a/js-packages/types/package.json b/js-packages/types/package.json index c96323229d..5d3364fd2f 100644 --- a/js-packages/types/package.json +++ b/js-packages/types/package.json @@ -5,7 +5,7 @@ "engines": { "node": ">=16" }, - "name": "@unique/opal-types", + "name": "@unique-nft/opal-testnet-types", "type": "module", "version": "1.0.0", "main": "index.js", diff --git a/js-packages/yarn.lock b/js-packages/yarn.lock index 6d35f99181..4cea4024c1 100644 --- a/js-packages/yarn.lock +++ b/js-packages/yarn.lock @@ -1242,22 +1242,27 @@ __metadata: languageName: node linkType: hard -"@unique/opal-types@workspace:*, @unique/opal-types@workspace:types": +"@unique-nft/evm-abi@workspace:*, @unique-nft/evm-abi@workspace:evm-abi": version: 0.0.0-use.local - resolution: "@unique/opal-types@workspace:types" + resolution: "@unique-nft/evm-abi@workspace:evm-abi" + languageName: unknown + linkType: soft + +"@unique-nft/opal-testnet-types@workspace:*, @unique-nft/opal-testnet-types@workspace:types": + version: 0.0.0-use.local + resolution: "@unique-nft/opal-testnet-types@workspace:types" dependencies: "@polkadot/typegen": ^10.10.1 languageName: unknown linkType: soft -"@unique/playgrounds@workspace:*, @unique/playgrounds@workspace:playgrounds": +"@unique-nft/playgrounds@workspace:*, @unique-nft/playgrounds@workspace:playgrounds": version: 0.0.0-use.local - resolution: "@unique/playgrounds@workspace:playgrounds" + resolution: "@unique-nft/playgrounds@workspace:playgrounds" dependencies: "@polkadot/api": 10.10.1 "@polkadot/util": ^12.5.1 "@polkadot/util-crypto": ^12.5.1 - "@unique/opal-types": "workspace:*" languageName: unknown linkType: soft @@ -1267,6 +1272,17 @@ __metadata: languageName: unknown linkType: soft +"@unique/test-utils@workspace:*, @unique/test-utils@workspace:test-utils": + version: 0.0.0-use.local + resolution: "@unique/test-utils@workspace:test-utils" + dependencies: + "@polkadot/api": 10.10.1 + "@polkadot/util": ^12.5.1 + "@polkadot/util-crypto": ^12.5.1 + "@unique-nft/opal-testnet-types": "workspace:*" + languageName: unknown + linkType: soft + "@unique/tests@workspace:tests": version: 0.0.0-use.local resolution: "@unique/tests@workspace:tests" @@ -6001,8 +6017,10 @@ __metadata: "@types/node": ^20.8.10 "@typescript-eslint/eslint-plugin": ^6.10.0 "@typescript-eslint/parser": ^6.10.0 - "@unique/opal-types": "workspace:*" - "@unique/playgrounds": "workspace:*" + "@unique-nft/evm-abi": "workspace:*" + "@unique-nft/opal-testnet-types": "workspace:*" + "@unique-nft/playgrounds": "workspace:*" + "@unique/test-utils": "workspace:*" chai: ^4.3.10 chai-as-promised: ^7.1.1 chai-like: ^1.1.1 diff --git a/node/cli/Cargo.toml b/node/cli/Cargo.toml index 7875a8a5cf..4635aecfe1 100644 --- a/node/cli/Cargo.toml +++ b/node/cli/Cargo.toml @@ -42,6 +42,8 @@ cumulus-primitives-parachain-inherent = { features = ["std"], workspace = true } cumulus-relay-chain-inprocess-interface = { workspace = true } cumulus-relay-chain-interface = { workspace = true } cumulus-relay-chain-minimal-node = { workspace = true } +cumulus-client-parachain-inherent = { workspace = true } +cumulus-test-relay-sproof-builder = { workspace = true } frame-benchmarking = { workspace = true } frame-benchmarking-cli = { workspace = true } opal-runtime = { workspace = true, optional = true } @@ -66,6 +68,7 @@ sc-tracing = { workspace = true } sc-transaction-pool = { workspace = true } serde = { workspace = true } sp-api = { workspace = true } +sp-state-machine = { workspace = true } sp-block-builder = { workspace = true } sp-blockchain = { workspace = true } sp-consensus-aura = { workspace = true } diff --git a/node/cli/src/chain_spec.rs b/node/cli/src/chain_spec.rs index 46baba03d4..98725e62ad 100644 --- a/node/cli/src/chain_spec.rs +++ b/node/cli/src/chain_spec.rs @@ -14,8 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -use std::collections::BTreeMap; - +use default_runtime::WASM_BINARY; #[cfg(all(not(feature = "unique-runtime"), not(feature = "quartz-runtime")))] pub use opal_runtime as default_runtime; #[cfg(all(not(feature = "unique-runtime"), feature = "quartz-runtime"))] @@ -23,7 +22,7 @@ pub use quartz_runtime as default_runtime; use sc_chain_spec::{ChainSpecExtension, ChainSpecGroup}; use sc_service::ChainType; use serde::{Deserialize, Serialize}; -use serde_json::map::Map; +use serde_json::{json, map::Map}; use sp_core::{sr25519, Pair, Public}; use sp_runtime::traits::{IdentifyAccount, Verify}; #[cfg(feature = "unique-runtime")] @@ -141,193 +140,106 @@ where AccountPublic::from(get_from_seed::(seed)).into_account() } -#[cfg(not(feature = "unique-runtime"))] -macro_rules! testnet_genesis { - ( - $runtime:path, - $root_key:expr, - $initial_invulnerables:expr, - $endowed_accounts:expr, - $id:expr - ) => {{ - use $runtime::*; - - RuntimeGenesisConfig { - system: SystemConfig { - code: WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - balances: BalancesConfig { - balances: $endowed_accounts - .iter() - .cloned() - // 1e13 UNQ - .map(|k| (k, 1 << 100)) - .collect(), - }, - sudo: SudoConfig { - key: Some($root_key), - }, - - vesting: VestingConfig { vesting: vec![] }, - parachain_info: ParachainInfoConfig { - parachain_id: $id.into(), - ..Default::default() - }, - collator_selection: CollatorSelectionConfig { - invulnerables: $initial_invulnerables - .iter() - .cloned() - .map(|(acc, _)| acc) - .collect(), - }, - session: SessionConfig { - keys: $initial_invulnerables - .into_iter() - .map(|(acc, aura)| { - ( - acc.clone(), // account id - acc, // validator id - SessionKeys { aura }, // session keys - ) - }) - .collect(), - }, - evm: EVMConfig { - accounts: BTreeMap::new(), - ..Default::default() - }, - ..Default::default() +pub fn test_config(chain_id: &str, relay_chain: &str) -> DefaultChainSpec { + DefaultChainSpec::builder( + WASM_BINARY.expect("WASM binary was not build, please build it!"), + Extensions { + relay_chain: relay_chain.into(), + para_id: PARA_ID, + }, + ) + .with_id(&format!( + "{}_{}", + default_runtime::VERSION.spec_name, + chain_id + )) + .with_name(&format!( + "{}{}", + default_runtime::VERSION.spec_name.to_uppercase(), + if cfg!(feature = "unique-runtime") { + "" + } else { + " by UNIQUE" } - }}; + )) + .with_properties(chain_properties()) + .with_chain_type(ChainType::Development) + .with_genesis_config_patch(genesis_patch()) + .build() } -#[cfg(feature = "unique-runtime")] -macro_rules! testnet_genesis { - ( - $runtime:path, - $root_key:expr, - $initial_invulnerables:expr, - $endowed_accounts:expr, - $id:expr - ) => {{ - use $runtime::*; - - RuntimeGenesisConfig { - system: SystemConfig { - code: WASM_BINARY - .expect("WASM binary was not build, please build it!") - .to_vec(), - ..Default::default() - }, - balances: BalancesConfig { - balances: $endowed_accounts - .iter() - .cloned() - // 1e13 UNQ - .map(|k| (k, 1 << 100)) - .collect(), - }, - sudo: SudoConfig { - key: Some($root_key), - }, - vesting: VestingConfig { vesting: vec![] }, - parachain_info: ParachainInfoConfig { - parachain_id: $id.into(), - ..Default::default() - }, - aura: AuraConfig { - authorities: $initial_invulnerables - .into_iter() - .map(|(_, aura)| aura) - .collect(), - }, - evm: EVMConfig { - accounts: BTreeMap::new(), - ..Default::default() - }, - ..Default::default() - } - }}; -} +fn genesis_patch() -> serde_json::Value { + use default_runtime::*; -pub fn development_config() -> DefaultChainSpec { - let mut properties = Map::new(); - properties.insert("tokenSymbol".into(), default_runtime::TOKEN_SYMBOL.into()); - properties.insert("tokenDecimals".into(), default_runtime::DECIMALS.into()); - properties.insert( - "ss58Format".into(), - default_runtime::SS58Prefix::get().into(), - ); + let invulnerables = ["Alice", "Bob"]; - DefaultChainSpec::from_genesis( - // Name - format!( - "{}{}", - default_runtime::VERSION.spec_name.to_uppercase(), - if cfg!(feature = "unique-runtime") { - "" - } else { - " by UNIQUE" - } - ) - .as_str(), - // ID - format!("{}_dev", default_runtime::VERSION.spec_name).as_str(), - ChainType::Local, - move || { - testnet_genesis!( - default_runtime, - // Sudo account - get_account_id_from_seed::("Alice"), - [ - ( - get_account_id_from_seed::("Alice"), - get_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_from_seed::("Bob"), - ), - ], - // Pre-funded accounts - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - PARA_ID - ) + #[allow(unused_mut)] + let mut patch = json!({ + "parachainInfo": { + "parachainId": PARA_ID, }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - None, - // Properties - Some(properties), - // Extensions - Extensions { - relay_chain: "rococo-dev".into(), - para_id: PARA_ID, + + "aura": { + "authorities": invulnerables.into_iter() + .map(get_from_seed::) + .collect::>(), }, - ) + + // We don't have Session pallet in production anywhere, + // Adding this config makes baedeker think we have pallet-session, and it tries to + // reconfigure chain using it, which makes no sense, because then aura knows no + // authority, as baedeker expects them to be configured by session pallet. + // "session": { + // "keys": invulnerables.into_iter() + // .map(|name| { + // let account = get_account_id_from_seed::(name); + // let aura = get_from_seed::(name); + // + // ( + // /* account id: */ account.clone(), + // /* validator id: */ account, + // /* session keys: */ SessionKeys { aura }, + // ) + // }) + // .collect::>() + // }, + + "sudo": { + "key": get_account_id_from_seed::("Alice"), + }, + + "balances": { + "balances": &[ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ].into_iter() + .map(|k| (k, /* ~1.2e+12 UNQ */ 1u128 << 100)) + .collect::>(), + }, + }); + + #[cfg(feature = "unique-runtime")] + { + patch + .as_object_mut() + .expect("the genesis patch is always an object; qed") + .remove("session"); + } + + patch } -pub fn local_testnet_config() -> DefaultChainSpec { +fn chain_properties() -> sc_chain_spec::Properties { let mut properties = Map::new(); properties.insert("tokenSymbol".into(), default_runtime::TOKEN_SYMBOL.into()); properties.insert("tokenDecimals".into(), default_runtime::DECIMALS.into()); @@ -336,67 +248,5 @@ pub fn local_testnet_config() -> DefaultChainSpec { default_runtime::SS58Prefix::get().into(), ); - DefaultChainSpec::from_genesis( - // Name - format!( - "{}{}", - default_runtime::VERSION.impl_name.to_uppercase(), - if cfg!(feature = "unique-runtime") { - "" - } else { - " by UNIQUE" - } - ) - .as_str(), - // ID - format!("{}_local", default_runtime::VERSION.spec_name).as_str(), - ChainType::Local, - move || { - testnet_genesis!( - default_runtime, - // Sudo account - get_account_id_from_seed::("Alice"), - [ - ( - get_account_id_from_seed::("Alice"), - get_from_seed::("Alice"), - ), - ( - get_account_id_from_seed::("Bob"), - get_from_seed::("Bob"), - ), - ], - // Pre-funded accounts - vec![ - get_account_id_from_seed::("Alice"), - get_account_id_from_seed::("Bob"), - get_account_id_from_seed::("Charlie"), - get_account_id_from_seed::("Dave"), - get_account_id_from_seed::("Eve"), - get_account_id_from_seed::("Ferdie"), - get_account_id_from_seed::("Alice//stash"), - get_account_id_from_seed::("Bob//stash"), - get_account_id_from_seed::("Charlie//stash"), - get_account_id_from_seed::("Dave//stash"), - get_account_id_from_seed::("Eve//stash"), - get_account_id_from_seed::("Ferdie//stash"), - ], - PARA_ID - ) - }, - // Bootnodes - vec![], - // Telemetry - None, - // Protocol ID - None, - None, - // Properties - Some(properties), - // Extensions - Extensions { - relay_chain: "westend-local".into(), - para_id: PARA_ID, - }, - ) + properties } diff --git a/node/cli/src/cli.rs b/node/cli/src/cli.rs index e3806cc0f9..82bae4057d 100644 --- a/node/cli/src/cli.rs +++ b/node/cli/src/cli.rs @@ -24,7 +24,7 @@ use crate::chain_spec; #[derive(Debug, Parser)] pub enum Subcommand { /// Export the genesis state of the parachain. - ExportGenesisState(cumulus_client_cli::ExportGenesisStateCommand), + ExportGenesisState(cumulus_client_cli::ExportGenesisHeadCommand), /// Export the genesis wasm of the parachain. ExportGenesisWasm(cumulus_client_cli::ExportGenesisWasmCommand), @@ -106,6 +106,16 @@ pub struct Cli { #[clap(long)] pub no_hardware_benchmarks: bool, + /// Make future pool the same size as the ready pool. + /// + /// By default, future pool is factor 10 smaler than the ready pool, which causes transactions to be dropped as they + /// are retracted, without the ability to move them back to the ready pool after revalidation. + /// + /// This switch makes that transactions still can be dropped, but only when there is more transactions than the pool + /// size configured with `--pool-limit` (amount of txes), `--pool-kbytes` (size of all txes in kbytes). + #[clap(long)] + pub increase_future_pool: bool, + /// Relaychain arguments #[structopt(raw = true)] pub relaychain_args: Vec, diff --git a/node/cli/src/command.rs b/node/cli/src/command.rs index 6ed625d191..674e24b684 100644 --- a/node/cli/src/command.rs +++ b/node/cli/src/command.rs @@ -63,8 +63,8 @@ macro_rules! no_runtime_err { fn load_spec(id: &str) -> std::result::Result, String> { Ok(match id { - "dev" => Box::new(chain_spec::development_config()), - "" | "local" => Box::new(chain_spec::local_testnet_config()), + "dev" => Box::new(chain_spec::test_config("dev", "rococo-dev")), + "" | "local" => Box::new(chain_spec::test_config("local", "westend-local")), path => { let path = std::path::PathBuf::from(path); #[allow(clippy::redundant_clone)] @@ -337,10 +337,7 @@ pub fn run() -> Result<()> { Ok(cmd.run(components.client, components.backend, None)) }), Some(Subcommand::ExportGenesisState(cmd)) => { - construct_sync_run!(|components, cli, cmd, _config| { - let spec = cli.load_spec(&cmd.shared_params.chain.clone().unwrap_or_default())?; - cmd.run(&*spec, &*components.client) - }) + construct_sync_run!(|components, cli, cmd, _config| cmd.run(components.client)) } Some(Subcommand::ExportGenesisWasm(cmd)) => { construct_sync_run!(|_components, cli, cmd, _config| { @@ -352,13 +349,17 @@ pub fn run() -> Result<()> { Some(Subcommand::Benchmark(cmd)) => { use frame_benchmarking_cli::{BenchmarkCmd, SUBSTRATE_REFERENCE_HARDWARE}; use polkadot_cli::Block; - use sp_io::SubstrateHostFunctions; + + use crate::service::ParachainHostFunctions; + + type Header = ::Header; + type Hasher =
::Hashing; let runner = cli.create_runner(cmd)?; // Switch on the concrete benchmark sub-command- match cmd { BenchmarkCmd::Pallet(cmd) => { - runner.sync_run(|config| cmd.run::(config)) + runner.sync_run(|config| cmd.run::(config)) } BenchmarkCmd::Block(cmd) => runner.sync_run(|config| { let partials = new_partial::< @@ -402,7 +403,7 @@ pub fn run() -> Result<()> { use std::{future::Future, pin::Pin}; use polkadot_cli::Block; - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; + use sc_executor::NativeExecutionDispatch; use try_runtime_cli::block_building_info::timestamp_with_aura_info; let runner = cli.create_runner(cmd)?; @@ -422,21 +423,27 @@ pub fn run() -> Result<()> { Ok(( match config.chain_spec.runtime_id() { #[cfg(feature = "unique-runtime")] - RuntimeId::Unique => Box::pin(cmd.run::::ExtendHostFunctions, - >, _>(info_provider)), + RuntimeId::Unique => Box::pin( + cmd + .run::::ExtendHostFunctions, _>( + info_provider, + ), + ), #[cfg(feature = "quartz-runtime")] - RuntimeId::Quartz => Box::pin(cmd.run::::ExtendHostFunctions, - >, _>(info_provider)), - - RuntimeId::Opal => Box::pin(cmd.run::::ExtendHostFunctions, - >, _>(info_provider)), + RuntimeId::Quartz => Box::pin( + cmd + .run::::ExtendHostFunctions, _>( + info_provider, + ), + ), + + RuntimeId::Opal => Box::pin( + cmd + .run::::ExtendHostFunctions, _>( + info_provider, + ), + ), runtime_id => return Err(no_runtime_err!(runtime_id).into()), }, task_manager, @@ -451,7 +458,7 @@ pub fn run() -> Result<()> { let runner = cli.create_runner(&cli.run.normalize())?; let collator_options = cli.run.collator_options(); - runner.run_node_until_exit(|config| async move { + runner.run_node_until_exit(|mut config| async move { let hwbench = if !cli.no_hardware_benchmarks { config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(database_path); @@ -460,6 +467,10 @@ pub fn run() -> Result<()> { } else { None }; + + if cli.increase_future_pool { + config.transaction_pool.future = config.transaction_pool.ready.clone(); + } let extensions = chain_spec::Extensions::try_get(&*config.chain_spec); diff --git a/node/cli/src/rpc.rs b/node/cli/src/rpc.rs index 2e52d5ffbc..9be511c6de 100644 --- a/node/cli/src/rpc.rs +++ b/node/cli/src/rpc.rs @@ -35,7 +35,6 @@ use sc_transaction_pool::{ChainApi, Pool}; use sp_api::ProvideRuntimeApi; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; use sp_inherents::CreateInherentDataProviders; -use sp_runtime::traits::BlakeTwo256; use up_common::types::opaque::*; use crate::service::RuntimeApiDep; @@ -44,18 +43,13 @@ use crate::service::RuntimeApiDep; type FullBackend = sc_service::TFullBackend; /// Full client dependencies. -pub struct FullDeps { +pub struct FullDeps { /// The client instance to use. pub client: Arc, /// Transaction pool instance. pub pool: Arc

, - /// The SelectChain Strategy - pub select_chain: SC, /// Whether to deny unsafe calls pub deny_unsafe: DenyUnsafe, - - /// Runtime identification (read from the chain spec) - pub runtime_id: RuntimeId, /// Executor params for PoV estimating #[cfg(feature = "pov-estimate")] pub exec_params: uc_rpc::pov_estimate::ExecutorParams, @@ -65,13 +59,13 @@ pub struct FullDeps { } /// Instantiate all Full RPC extensions. -pub fn create_full( +pub fn create_full( io: &mut RpcModule<()>, - deps: FullDeps, + deps: FullDeps, ) -> Result<(), Box> where C: ProvideRuntimeApi + StorageProvider + AuxStore, - C: HeaderBackend + HeaderMetadata + 'static, + C: HeaderBackend + HeaderMetadata, C: Send + Sync + 'static, C: BlockchainEvents, C::Api: RuntimeApiDep, @@ -80,10 +74,7 @@ where R: RuntimeInstance + Send + Sync + 'static, ::CrossAccountId: serde::Serialize, C: sp_api::CallApiAt< - sp_runtime::generic::Block< - sp_runtime::generic::Header, - sp_runtime::OpaqueExtrinsic, - >, + generic::Block, sp_runtime::OpaqueExtrinsic>, >, for<'de> ::CrossAccountId: serde::Deserialize<'de>, { @@ -97,11 +88,8 @@ where let FullDeps { client, pool, - select_chain: _, deny_unsafe, - runtime_id: _, - #[cfg(feature = "pov-estimate")] exec_params, diff --git a/node/cli/src/service.rs b/node/cli/src/service.rs index 5f954078c8..3e729fa67b 100644 --- a/node/cli/src/service.rs +++ b/node/cli/src/service.rs @@ -36,10 +36,11 @@ use cumulus_client_consensus_aura::collators::lookahead::{ use cumulus_client_consensus_common::ParachainBlockImport as TParachainBlockImport; use cumulus_client_consensus_proposer::Proposer; use cumulus_client_service::{ - build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, DARecoveryProfile, - StartRelayChainTasksParams, + build_relay_chain_interface, prepare_node_config, start_relay_chain_tasks, + CollatorSybilResistance, DARecoveryProfile, StartRelayChainTasksParams, }; use cumulus_primitives_core::ParaId; +use cumulus_primitives_parachain_inherent::ParachainInherentData; use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface}; use fc_mapping_sync::{kv::MappingSyncWorker, EthereumBlockNotificationSinks, SyncStrategy}; use fc_rpc::{ @@ -66,20 +67,25 @@ use sc_rpc::SubscriptionTaskExecutor; use sc_service::{Configuration, PartialComponents, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use serde::{Deserialize, Serialize}; -use sp_api::{ProvideRuntimeApi, StateBackend}; +use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder; use sp_blockchain::{Error as BlockChainError, HeaderBackend, HeaderMetadata}; use sp_consensus_aura::sr25519::AuthorityPair as AuraAuthorityPair; use sp_keystore::KeystorePtr; -use sp_runtime::traits::BlakeTwo256; +use sp_state_machine::Backend as StateBackend; use substrate_prometheus_endpoint::Registry; use tokio::time::Interval; use up_common::types::{opaque::*, Nonce}; -use crate::{ - chain_spec::RuntimeIdentification, - rpc::{create_eth, create_full, EthDeps, FullDeps}, -}; +pub type ParachainHostFunctions = ( + sp_io::SubstrateHostFunctions, + cumulus_client_service::storage_proof_size::HostFunctions, +); + +use cumulus_primitives_core::PersistedValidationData; +use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; + +use crate::rpc::{create_eth, create_full, EthDeps, FullDeps}; /// Unique native executor instance. #[cfg(feature = "unique-runtime")] @@ -99,7 +105,7 @@ impl NativeExecutionDispatch for UniqueRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; /// Otherwise we only use the default Substrate host functions. #[cfg(not(feature = "runtime-benchmarks"))] - type ExtendHostFunctions = (); + type ExtendHostFunctions = ParachainHostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { unique_runtime::api::dispatch(method, data) @@ -117,7 +123,7 @@ impl NativeExecutionDispatch for QuartzRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; /// Otherwise we only use the default Substrate host functions. #[cfg(not(feature = "runtime-benchmarks"))] - type ExtendHostFunctions = (); + type ExtendHostFunctions = ParachainHostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { quartz_runtime::api::dispatch(method, data) @@ -134,7 +140,7 @@ impl NativeExecutionDispatch for OpalRuntimeExecutor { type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; /// Otherwise we only use the default Substrate host functions. #[cfg(not(feature = "runtime-benchmarks"))] - type ExtendHostFunctions = (); + type ExtendHostFunctions = ParachainHostFunctions; fn dispatch(method: &str, data: &[u8]) -> Option> { opal_runtime::api::dispatch(method, data) @@ -229,6 +235,28 @@ ez_bounds!( pub trait LookaheadApiDep: cumulus_primitives_aura::AuraUnincludedSegmentApi {} ); +fn ethereum_parachain_inherent() -> (sp_timestamp::InherentDataProvider, ParachainInherentData) { + let (relay_parent_storage_root, relay_chain_state) = + RelayStateSproofBuilder::default().into_state_root_and_proof(); + let vfp = PersistedValidationData { + // This is a hack to make `cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases` + // happy. Relay parent number can't be bigger than u32::MAX. + relay_parent_number: u32::MAX, + relay_parent_storage_root, + ..Default::default() + }; + + ( + sp_timestamp::InherentDataProvider::from_system_time(), + ParachainInherentData { + validation_data: vfp, + relay_chain_state, + downward_messages: Default::default(), + horizontal_messages: Default::default(), + }, + ) +} + /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to @@ -249,7 +277,7 @@ pub fn new_partial( sc_service::Error, > where - sc_client_api::StateBackendFor: sp_api::StateBackend, + sc_client_api::StateBackendFor: StateBackend, RuntimeApi: sp_api::ConstructRuntimeApi> + Send + Sync @@ -356,7 +384,7 @@ pub async fn start_node( hwbench: Option, ) -> sc_service::error::Result<(TaskManager, Arc>)> where - sc_client_api::StateBackendFor: sp_api::StateBackend, + sc_client_api::StateBackendFor: StateBackend, Runtime: RuntimeInstance + Send + Sync + 'static, ::CrossAccountId: Serialize, for<'de> ::CrossAccountId: Deserialize<'de>, @@ -398,33 +426,25 @@ where .await .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; - // Aura is sybil-resistant, collator-selection is generally too. - let block_announce_validator = - cumulus_client_network::AssumeSybilResistance::allow_seconded_messages(); - let validator = parachain_config.role.is_authority(); let prometheus_registry = parachain_config.prometheus_registry().cloned(); let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + cumulus_client_service::build_network(cumulus_client_service::BuildNetworkParams { + parachain_config: ¶chain_config, net_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(|_| { - Box::new(block_announce_validator) - })), - warp_sync_params: None, - block_relay: None, - })?; - - let select_chain = params.select_chain.clone(); - - let runtime_id = parachain_config.chain_spec.runtime_id(); + // Aura is sybil-resistant, collator-selection is generally too. + sybil_resistance_level: CollatorSybilResistance::Resistant, + }) + .await?; // Frontier let fee_history_cache: FeeHistoryCache = Arc::new(Mutex::new(BTreeMap::new())); @@ -477,9 +497,7 @@ where fee_history_cache, eth_block_data_cache, network, - runtime_id, transaction_pool, - select_chain, overrides, ); @@ -490,7 +508,6 @@ where let full_deps = FullDeps { client: client.clone(), - runtime_id, #[cfg(feature = "pov-estimate")] exec_params: uc_rpc::pov_estimate::ExecutorParams { @@ -505,10 +522,9 @@ where deny_unsafe, pool: transaction_pool.clone(), - select_chain, }; - create_full::<_, _, _, Runtime, _>(&mut rpc_handle, full_deps)?; + create_full::<_, _, Runtime, _>(&mut rpc_handle, full_deps)?; let eth_deps = EthDeps { client, @@ -528,7 +544,9 @@ where eth_pubsub_notification_sinks, overrides, sync: sync_service.clone(), - pending_create_inherent_data_providers: |_, ()| async move { Ok(()) }, + pending_create_inherent_data_providers: |_, ()| async move { + Ok(ethereum_parachain_inherent()) + }, }; create_eth::< @@ -760,6 +778,7 @@ where relay_client: relay_chain_interface, sync_oracle, keystore, + #[cfg(not(feature = "lookahead"))] slot_duration, proposer, collator_service, @@ -781,6 +800,8 @@ where relay_chain_slot_duration, #[cfg(not(feature = "lookahead"))] collation_request_receiver: None, + #[cfg(feature = "lookahead")] + reinitialize: false, }; task_manager.spawn_essential_handle().spawn( @@ -975,12 +996,12 @@ where async move { let time = sp_timestamp::InherentDataProvider::from_system_time(); - let mocked_parachain = cumulus_primitives_parachain_inherent::MockValidationDataInherentDataProvider { + let mocked_parachain = cumulus_client_parachain_inherent::MockValidationDataInherentDataProvider { current_para_block, relay_offset: 1000, relay_blocks_per_para_block: 2, para_blocks_per_relay_epoch: 0, - xcm_config: cumulus_primitives_parachain_inherent::MockXcmConfig::new( + xcm_config: cumulus_client_parachain_inherent::MockXcmConfig::new( &*client_for_xcm, block, Default::default(), @@ -989,6 +1010,7 @@ where relay_randomness_config: (), raw_downward_messages: vec![], raw_horizontal_messages: vec![], + additional_key_values: None, }; let slot = @@ -1007,8 +1029,6 @@ where #[cfg(feature = "pov-estimate")] let rpc_backend = backend.clone(); - let runtime_id = config.chain_spec.runtime_id(); - // Frontier let fee_history_cache: FeeHistoryCache = Arc::new(Mutex::new(BTreeMap::new())); let fee_history_limit = 2048; @@ -1060,9 +1080,7 @@ where fee_history_cache, eth_block_data_cache, network, - runtime_id, transaction_pool, - select_chain, overrides, ); @@ -1072,8 +1090,6 @@ where let mut rpc_module = RpcModule::new(()); let full_deps = FullDeps { - runtime_id, - #[cfg(feature = "pov-estimate")] exec_params: uc_rpc::pov_estimate::ExecutorParams { wasm_method: config.wasm_method, @@ -1088,10 +1104,9 @@ where deny_unsafe, client: client.clone(), pool: transaction_pool.clone(), - select_chain, }; - create_full::<_, _, _, Runtime, _>(&mut rpc_module, full_deps)?; + create_full::<_, _, Runtime, _>(&mut rpc_module, full_deps)?; let eth_deps = EthDeps { client, @@ -1112,7 +1127,9 @@ where overrides, sync: sync_service.clone(), // We don't have any inherents except parachain built-ins, which we can't even extract from inside `run_aura`. - pending_create_inherent_data_providers: |_, ()| async move { Ok(()) }, + pending_create_inherent_data_providers: |_, ()| async move { + Ok(ethereum_parachain_inherent()) + }, }; create_eth::< diff --git a/pallets/app-promotion/CHANGELOG.md b/pallets/app-promotion/CHANGELOG.md index 06144b553c..def5c205e1 100644 --- a/pallets/app-promotion/CHANGELOG.md +++ b/pallets/app-promotion/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. +## [0.2.2] - 2024-03-21 + +### Changed + +- Unstake of skipped blocks is now available to `Signed` origin. + ## [0.2.1] - 2023-06-23 ### Changed diff --git a/pallets/app-promotion/Cargo.toml b/pallets/app-promotion/Cargo.toml index 263026465a..84439ab2d4 100644 --- a/pallets/app-promotion/Cargo.toml +++ b/pallets/app-promotion/Cargo.toml @@ -9,7 +9,7 @@ homepage = 'https://unique.network' license = 'GPLv3' name = 'pallet-app-promotion' repository = 'https://github.com/UniqueNetwork/unique-chain' -version = '0.2.1' +version = '0.2.2' [package.metadata.docs.rs] targets = ['x86_64-unknown-linux-gnu'] diff --git a/pallets/app-promotion/src/lib.rs b/pallets/app-promotion/src/lib.rs index 885f20ebb8..e2202b5038 100644 --- a/pallets/app-promotion/src/lib.rs +++ b/pallets/app-promotion/src/lib.rs @@ -689,21 +689,18 @@ pub mod pallet { /// Called for blocks that, for some reason, have not been unstacked /// - /// # Permissions - /// - /// * Sudo /// /// # Arguments /// - /// * `origin`: Must be `Root`. + /// * `origin`: Must be `Signed`. /// * `pending_blocks`: Block numbers that will be processed. #[pallet::call_index(9)] #[pallet::weight(::WeightInfo::on_initialize(PENDING_LIMIT_PER_BLOCK*pending_blocks.len() as u32))] - pub fn force_unstake( + pub fn resolve_skipped_blocks( origin: OriginFor, pending_blocks: Vec>, ) -> DispatchResult { - ensure_root(origin)?; + ensure_signed(origin)?; ensure!( pending_blocks diff --git a/pallets/collator-selection/src/benchmarking.rs b/pallets/collator-selection/src/benchmarking.rs index 40282faf9b..df9e033866 100644 --- a/pallets/collator-selection/src/benchmarking.rs +++ b/pallets/collator-selection/src/benchmarking.rs @@ -33,7 +33,8 @@ //! Benchmarking setup for pallet-collator-selection use frame_benchmarking::v2::{ - account, benchmarks, impl_benchmark_test_suite, whitelisted_caller, BenchmarkError, + account, benchmarks, impl_benchmark_test_suite, impl_test_function, whitelisted_caller, + BenchmarkError, }; use frame_support::{ assert_ok, diff --git a/pallets/collator-selection/src/mock.rs b/pallets/collator-selection/src/mock.rs index 9488abdf38..f5e42e4e4e 100644 --- a/pallets/collator-selection/src/mock.rs +++ b/pallets/collator-selection/src/mock.rs @@ -91,6 +91,12 @@ impl system::Config for Test { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = ConstU32<16>; + type RuntimeTask = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); } parameter_types! { @@ -111,7 +117,6 @@ impl pallet_balances::Config for Test { type MaxReserves = MaxReserves; type ReserveIdentifier = [u8; 8]; type FreezeIdentifier = [u8; 16]; - type MaxHolds = MaxHolds; type MaxFreezes = MaxFreezes; type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; diff --git a/pallets/evm-transaction-payment/src/lib.rs b/pallets/evm-transaction-payment/src/lib.rs index 4056840c19..7ff5267def 100644 --- a/pallets/evm-transaction-payment/src/lib.rs +++ b/pallets/evm-transaction-payment/src/lib.rs @@ -287,8 +287,7 @@ where } fn pay_priority_fee(tip: Self::LiquidityInfo) { - as OnChargeEVMTransaction>::pay_priority_fee( - tip.0, - ) + let Some(imbalance) = tip.0 else { return }; + OU::on_unbalanced(imbalance) } } diff --git a/pallets/foreign-assets/Cargo.toml b/pallets/foreign-assets/Cargo.toml index 7d51138071..39b56bb046 100644 --- a/pallets/foreign-assets/Cargo.toml +++ b/pallets/foreign-assets/Cargo.toml @@ -21,6 +21,7 @@ sp-std = { workspace = true } staging-xcm = { workspace = true } staging-xcm-executor = { workspace = true } up-data-structs = { workspace = true } +derivative = { workspace = true } [features] default = ["std"] diff --git a/pallets/foreign-assets/src/benchmarking.rs b/pallets/foreign-assets/src/benchmarking.rs index ba5632c22b..a9ec387604 100644 --- a/pallets/foreign-assets/src/benchmarking.rs +++ b/pallets/foreign-assets/src/benchmarking.rs @@ -32,8 +32,7 @@ mod benchmarks { #[benchmark] fn force_register_foreign_asset() -> Result<(), BenchmarkError> { - let location = - MultiLocation::from(X3(Parachain(1000), PalletInstance(42), GeneralIndex(1))); + let asset_id: AssetId = (Parachain(1000), PalletInstance(42), GeneralIndex(1)).into(); let name = create_u16_data::(); let token_prefix = create_data::(); let mode = ForeignCollectionMode::NFT; @@ -41,7 +40,7 @@ mod benchmarks { #[extrinsic_call] _( RawOrigin::Root, - Box::new(location.into()), + Box::new(asset_id.into()), name, token_prefix, mode, diff --git a/pallets/foreign-assets/src/lib.rs b/pallets/foreign-assets/src/lib.rs index 01a00dfcb9..888524f7cb 100644 --- a/pallets/foreign-assets/src/lib.rs +++ b/pallets/foreign-assets/src/lib.rs @@ -25,25 +25,24 @@ use core::ops::Deref; -use frame_support::{dispatch::DispatchResult, pallet_prelude::*, traits::EnsureOrigin, PalletId}; +use derivative::Derivative; +use frame_support::{ + dispatch::DispatchResult, pallet_prelude::*, storage_alias, traits::EnsureOrigin, PalletId, +}; use frame_system::pallet_prelude::*; use pallet_common::{ dispatch::CollectionDispatch, erc::CrossAccountId, XcmExtensions, NATIVE_FUNGIBLE_COLLECTION_ID, }; use sp_runtime::traits::AccountIdConversion; use sp_std::{boxed::Box, vec, vec::Vec}; -use staging_xcm::{ - opaque::latest::{prelude::XcmError, Weight}, - v3::{prelude::*, MultiAsset, XcmContext}, - VersionedAssetId, -}; +use staging_xcm::{v4::prelude::*, VersionedAssetId}; use staging_xcm_executor::{ traits::{ConvertLocation, Error as XcmExecutorError, TransactAsset, WeightTrader}, - Assets, + AssetsInHolding, }; use up_data_structs::{ - budget::ZeroBudget, CollectionId, CollectionMode, CollectionName, CollectionTokenPrefix, - CreateCollectionData, CreateFungibleData, CreateItemData, TokenId, + budget::ZeroBudget, CollectionFlags, CollectionId, CollectionMode, CollectionName, + CollectionTokenPrefix, CreateCollectionData, CreateFungibleData, CreateItemData, TokenId, }; pub mod weights; @@ -54,8 +53,44 @@ mod benchmarking; pub use module::*; pub use weights::WeightInfo; +/// Status of storage migration from an old XCM version to a new one. +#[derive(Clone, Copy, PartialEq, Eq, RuntimeDebug, Encode, Decode, TypeInfo, MaxEncodedLen)] +pub enum MigrationStatus { + V3ToV4(MigrationStatusV3ToV4), +} + +/// Status of storage migration from XCMv3 to XCMv4. +#[derive(Clone, Copy, PartialEq, Eq, RuntimeDebug, Encode, Decode, TypeInfo, MaxEncodedLen)] +pub enum MigrationStatusV3ToV4 { + /// The migration is completed. + Done, + + /// An asset is skipped during the migration + /// due to its inconsistent state. + SkippedInconsistentAssetData(staging_xcm::v3::AssetId), + + /// An asset instance is skipped during the migration + /// due to its inconsistent state. + SkippedInconsistentAssetInstanceData { + asset_id: staging_xcm::v3::AssetId, + asset_instance: staging_xcm::v3::AssetInstance, + }, + + /// An asset is skipped during the migration + /// because it couldn't be converted to the new XCM version. + SkippedNotConvertibleAssetId(staging_xcm::v3::AssetId), + + /// An asset instance is skipped during the migration + /// because it couldn't be converted to the new XCM version. + SkippedNotConvertibleAssetInstance { + asset_id: staging_xcm::v3::AssetId, + asset_instance: staging_xcm::v3::AssetInstance, + }, +} + #[frame_support::pallet] pub mod module { + use frame_support::traits::BuildGenesisConfig; use pallet_common::CollectionIssuer; use up_data_structs::CollectionDescription; @@ -72,15 +107,15 @@ pub mod module { type RuntimeEvent: From> + IsType<::RuntimeEvent>; /// Origin for force registering of a foreign asset. - type ForceRegisterOrigin: EnsureOrigin; + type ManagerOrigin: EnsureOrigin; /// The ID of the foreign assets pallet. type PalletId: Get; /// Self-location of this parachain. - type SelfLocation: Get; + type SelfLocation: Get; - /// The converter from a MultiLocation to a CrossAccountId. + /// The converter from a Location to a CrossAccountId. type LocationToAccountId: ConvertLocation; /// Weight information for the extrinsics in this module. @@ -97,35 +132,38 @@ pub mod module { } #[pallet::event] - #[pallet::generate_deposit(fn deposit_event)] + #[pallet::generate_deposit(pub(crate) fn deposit_event)] pub enum Event { /// The foreign asset registered. ForeignAssetRegistered { collection_id: CollectionId, asset_id: Box, }, + + /// The migration status. + MigrationStatus(MigrationStatus), } /// The corresponding collections of foreign assets. #[pallet::storage] #[pallet::getter(fn foreign_asset_to_collection)] pub type ForeignAssetToCollection = - StorageMap<_, Twox64Concat, staging_xcm::v3::AssetId, CollectionId, OptionQuery>; + StorageMap<_, Blake2_128Concat, staging_xcm::v4::AssetId, CollectionId, OptionQuery>; /// The corresponding foreign assets of collections. #[pallet::storage] #[pallet::getter(fn collection_to_foreign_asset)] pub type CollectionToForeignAsset = - StorageMap<_, Twox64Concat, CollectionId, staging_xcm::v3::AssetId, OptionQuery>; + StorageMap<_, Blake2_128Concat, CollectionId, staging_xcm::v4::AssetId, OptionQuery>; /// The correponding NFT token id of reserve NFTs #[pallet::storage] #[pallet::getter(fn foreign_reserve_asset_instance_to_token_id)] pub type ForeignReserveAssetInstanceToTokenId = StorageDoubleMap< - Hasher1 = Twox64Concat, + Hasher1 = Blake2_128Concat, Key1 = CollectionId, Hasher2 = Blake2_128Concat, - Key2 = staging_xcm::v3::AssetInstance, + Key2 = staging_xcm::v4::AssetInstance, Value = TokenId, QueryKind = OptionQuery, >; @@ -134,15 +172,18 @@ pub mod module { #[pallet::storage] #[pallet::getter(fn token_id_to_foreign_reserve_asset_instance)] pub type TokenIdToForeignReserveAssetInstance = StorageDoubleMap< - Hasher1 = Twox64Concat, + Hasher1 = Blake2_128Concat, Key1 = CollectionId, Hasher2 = Blake2_128Concat, Key2 = TokenId, - Value = staging_xcm::v3::AssetInstance, + Value = staging_xcm::v4::AssetInstance, QueryKind = OptionQuery, >; + const STORAGE_VERSION: StorageVersion = StorageVersion::new(staging_xcm::v4::VERSION as u16); + #[pallet::pallet] + #[pallet::storage_version(STORAGE_VERSION)] pub struct Pallet(_); #[pallet::call] @@ -156,7 +197,7 @@ pub mod module { token_prefix: CollectionTokenPrefix, mode: ForeignCollectionMode, ) -> DispatchResult { - T::ForceRegisterOrigin::ensure_origin(origin.clone())?; + T::ManagerOrigin::ensure_origin(origin.clone())?; let asset_id: AssetId = versioned_asset_id .as_ref() @@ -165,7 +206,7 @@ pub mod module { .map_err(|()| Error::::BadForeignAssetId)?; ensure!( - !>::contains_key(asset_id), + !>::contains_key(&asset_id), >::ForeignAssetAlreadyRegistered, ); @@ -185,11 +226,15 @@ pub mod module { token_prefix, description, mode: mode.into(), + flags: CollectionFlags { + foreign: true, + ..Default::default() + }, ..Default::default() }, )?; - >::insert(asset_id, collection_id); + >::insert(&asset_id, collection_id); >::insert(collection_id, asset_id); Self::deposit_event(Event::::ForeignAssetRegistered { @@ -200,9 +245,217 @@ pub mod module { Ok(()) } } + + #[pallet::genesis_config] + #[derive(Derivative)] + #[derivative(Default(bound = ""))] + pub struct GenesisConfig(PhantomData); + + #[pallet::genesis_build] + impl BuildGenesisConfig for GenesisConfig { + fn build(&self) { + >::in_code_storage_version().put::>(); + } + } + + #[pallet::hooks] + impl Hooks> for Pallet { + fn on_runtime_upgrade() -> Weight { + if Self::on_chain_storage_version() < staging_xcm::v4::VERSION as u16 { + let put_version_weight = T::DbWeight::get().writes(1); + let fix_foreign_flag_weight = Self::fix_foreign_flag(); + let weight_v3_to_v4 = Self::migrate_v3_to_v4(); + + Self::in_code_storage_version().put::(); + + put_version_weight + .saturating_add(fix_foreign_flag_weight) + .saturating_add(weight_v3_to_v4) + } else { + Weight::zero() + } + } + } +} + +mod v3_storage { + use super::*; + + #[storage_alias] + pub type ForeignAssetToCollection = + StorageMap, Twox64Concat, staging_xcm::v3::AssetId, CollectionId, OptionQuery>; + + #[storage_alias] + pub type CollectionToForeignAsset = + StorageMap, Twox64Concat, CollectionId, staging_xcm::v3::AssetId, OptionQuery>; + + #[storage_alias] + pub type ForeignReserveAssetInstanceToTokenId = StorageDoubleMap< + Pallet, + Twox64Concat, + CollectionId, + Blake2_128Concat, + staging_xcm::v3::AssetInstance, + TokenId, + OptionQuery, + >; + + #[storage_alias] + pub type TokenIdToForeignReserveAssetInstance = StorageDoubleMap< + Pallet, + Twox64Concat, + CollectionId, + Blake2_128Concat, + TokenId, + staging_xcm::v3::AssetInstance, + OptionQuery, + >; } impl Pallet { + fn fix_foreign_flag() -> Weight { + let mut weight = Weight::zero(); + + for (_, collection_id) in v3_storage::ForeignAssetToCollection::::iter() { + pallet_common::CollectionById::::mutate(collection_id, |collection| { + if let Some(collection) = collection { + collection.flags.foreign = true; + } + }); + + weight = weight.saturating_add(T::DbWeight::get().reads_writes(2, 1)); + } + + weight + } + + fn migrate_v3_to_v4() -> Weight { + let event_weight = T::DbWeight::get().writes(1); + let collection_migration_weight = Self::migrate_collections(); + + Self::deposit_event(Event::::MigrationStatus(MigrationStatus::V3ToV4( + MigrationStatusV3ToV4::Done, + ))); + + collection_migration_weight.saturating_add(event_weight) + } + + fn migrate_collections() -> Weight { + use MigrationStatus::*; + use MigrationStatusV3ToV4::*; + + let mut weight = Weight::zero(); + + for (fwd_asset_id, collection_id) in v3_storage::ForeignAssetToCollection::::drain() { + let bwd_asset_id = v3_storage::CollectionToForeignAsset::::take(collection_id); + weight = weight.saturating_add(T::DbWeight::get().reads(2)); + + let Some(bwd_asset_id) = bwd_asset_id else { + Self::deposit_event(Event::::MigrationStatus(V3ToV4( + SkippedInconsistentAssetData(fwd_asset_id), + ))); + + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + continue; + }; + + if fwd_asset_id != bwd_asset_id { + Self::deposit_event(Event::::MigrationStatus(V3ToV4( + SkippedInconsistentAssetData(fwd_asset_id), + ))); + + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + continue; + } + + let Ok(asset_id) = staging_xcm::v4::AssetId::try_from(fwd_asset_id) else { + Self::deposit_event(Event::::MigrationStatus(V3ToV4( + SkippedNotConvertibleAssetId(fwd_asset_id), + ))); + + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + continue; + }; + + >::insert(&asset_id, collection_id); + >::insert(collection_id, asset_id); + weight = weight.saturating_add(T::DbWeight::get().writes(2)); + + let migrate_tokens_weight = Self::migrate_tokens(&fwd_asset_id, collection_id); + weight = weight.saturating_add(migrate_tokens_weight); + } + + weight + } + + fn migrate_tokens(asset_id: &staging_xcm::v3::AssetId, collection_id: CollectionId) -> Weight { + use MigrationStatus::*; + use MigrationStatusV3ToV4::*; + + let mut weight = Weight::zero(); + + for (fwd_asset_instance, token_id) in + v3_storage::ForeignReserveAssetInstanceToTokenId::::drain_prefix(collection_id) + { + let bwd_asset_instance = v3_storage::TokenIdToForeignReserveAssetInstance::::take( + collection_id, + token_id, + ); + weight = weight.saturating_add(T::DbWeight::get().reads(2)); + + let Some(bwd_asset_instance) = bwd_asset_instance else { + Self::deposit_event(Event::::MigrationStatus(V3ToV4( + SkippedInconsistentAssetInstanceData { + asset_id: *asset_id, + asset_instance: fwd_asset_instance, + }, + ))); + + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + continue; + }; + + if fwd_asset_instance != bwd_asset_instance { + Self::deposit_event(Event::::MigrationStatus(V3ToV4( + SkippedInconsistentAssetInstanceData { + asset_id: *asset_id, + asset_instance: fwd_asset_instance, + }, + ))); + + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + continue; + } + + let Ok(asset_instance) = staging_xcm::v4::AssetInstance::try_from(fwd_asset_instance) + else { + Self::deposit_event(Event::::MigrationStatus(V3ToV4( + SkippedNotConvertibleAssetInstance { + asset_id: *asset_id, + asset_instance: fwd_asset_instance, + }, + ))); + + weight = weight.saturating_add(T::DbWeight::get().writes(1)); + continue; + }; + + >::insert( + collection_id, + &asset_instance, + token_id, + ); + >::insert( + collection_id, + token_id, + asset_instance, + ); + weight = weight.saturating_add(T::DbWeight::get().writes(2)); + } + + weight + } + fn pallet_account() -> T::CrossAccountId { let owner: T::AccountId = T::PalletId::get().into_account_truncating(); T::CrossAccountId::from_sub(owner) @@ -221,11 +474,9 @@ impl Pallet { /// If the multilocation doesn't match the patterns listed above, /// or the `` points to a foreign collection, /// `None` is returned, identifying that the given multilocation doesn't correspond to a local collection. - fn local_asset_id_to_collection(asset_id: &AssetId) -> Option { - let AssetId::Concrete(asset_location) = asset_id else { - return None; - }; - + fn local_asset_id_to_collection( + AssetId(asset_location): &AssetId, + ) -> Option { let self_location = T::SelfLocation::get(); if *asset_location == Here.into() || *asset_location == self_location { @@ -386,32 +637,25 @@ impl Pallet { } } +// #[derive()] +// pub enum Migration { + +// } + impl TransactAsset for Pallet { - fn can_check_in( - _origin: &MultiLocation, - _what: &MultiAsset, - _context: &XcmContext, - ) -> XcmResult { + fn can_check_in(_origin: &Location, _what: &Asset, _context: &XcmContext) -> XcmResult { Err(XcmError::Unimplemented) } - fn check_in(_origin: &MultiLocation, _what: &MultiAsset, _context: &XcmContext) {} + fn check_in(_origin: &Location, _what: &Asset, _context: &XcmContext) {} - fn can_check_out( - _dest: &MultiLocation, - _what: &MultiAsset, - _context: &XcmContext, - ) -> XcmResult { + fn can_check_out(_dest: &Location, _what: &Asset, _context: &XcmContext) -> XcmResult { Err(XcmError::Unimplemented) } - fn check_out(_dest: &MultiLocation, _what: &MultiAsset, _context: &XcmContext) {} + fn check_out(_dest: &Location, _what: &Asset, _context: &XcmContext) {} - fn deposit_asset( - what: &MultiAsset, - to: &MultiLocation, - _context: Option<&XcmContext>, - ) -> XcmResult { + fn deposit_asset(what: &Asset, to: &Location, _context: Option<&XcmContext>) -> XcmResult { let to = T::LocationToAccountId::convert_location(to) .ok_or(XcmExecutorError::AccountIdConversionFailed)?; @@ -440,10 +684,10 @@ impl TransactAsset for Pallet { } fn withdraw_asset( - what: &MultiAsset, - from: &MultiLocation, + what: &Asset, + from: &Location, _maybe_context: Option<&XcmContext>, - ) -> Result { + ) -> Result { let from = T::LocationToAccountId::convert_location(from) .ok_or(XcmExecutorError::AccountIdConversionFailed)?; @@ -468,11 +712,11 @@ impl TransactAsset for Pallet { } fn internal_transfer_asset( - what: &MultiAsset, - from: &MultiLocation, - to: &MultiLocation, + what: &Asset, + from: &Location, + to: &Location, _context: &XcmContext, - ) -> Result { + ) -> Result { let from = T::LocationToAccountId::convert_location(from) .ok_or(XcmExecutorError::AccountIdConversionFailed)?; @@ -534,18 +778,15 @@ impl Deref for CollectionLocality { } pub struct CurrencyIdConvert(PhantomData); -impl sp_runtime::traits::Convert> +impl sp_runtime::traits::Convert> for CurrencyIdConvert { - fn convert(collection_id: CollectionId) -> Option { + fn convert(collection_id: CollectionId) -> Option { if collection_id == NATIVE_FUNGIBLE_COLLECTION_ID { Some(T::SelfLocation::get()) } else { >::collection_to_foreign_asset(collection_id) - .and_then(|asset_id| match asset_id { - AssetId::Concrete(location) => Some(location), - _ => None, - }) + .map(|AssetId(location)| location) .or_else(|| { T::SelfLocation::get() .pushed_with_interior(GeneralIndex(collection_id.0.into())) @@ -580,9 +821,9 @@ impl WeightTrader for FreeForAll { fn buy_weight( &mut self, weight: Weight, - payment: Assets, + payment: AssetsInHolding, _xcm: &XcmContext, - ) -> Result { + ) -> Result { log::trace!(target: "fassets::weight", "buy_weight weight: {:?}, payment: {:?}", weight, payment); Ok(payment) } diff --git a/pallets/identity/src/tests.rs b/pallets/identity/src/tests.rs index c80e55233a..8372ee1c06 100644 --- a/pallets/identity/src/tests.rs +++ b/pallets/identity/src/tests.rs @@ -88,6 +88,12 @@ impl frame_system::Config for Test { type SS58Prefix = (); type OnSetCode = (); type MaxConsumers = ConstU32<16>; + type RuntimeTask = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); } impl pallet_balances::Config for Test { @@ -103,7 +109,6 @@ impl pallet_balances::Config for Test { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = (); - type MaxHolds = (); type MaxFreezes = (); } diff --git a/pallets/inflation/src/tests.rs b/pallets/inflation/src/tests.rs index 74958be22c..fbd0d45c0a 100644 --- a/pallets/inflation/src/tests.rs +++ b/pallets/inflation/src/tests.rs @@ -58,7 +58,6 @@ impl pallet_balances::Config for Test { type MaxReserves = (); type ReserveIdentifier = (); type FreezeIdentifier = (); - type MaxHolds = (); type MaxFreezes = (); type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; @@ -103,6 +102,12 @@ impl frame_system::Config for Test { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = ConstU32<16>; + type RuntimeTask = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); } parameter_types! { diff --git a/pallets/nonfungible/src/erc.rs b/pallets/nonfungible/src/erc.rs index 81c77bce9e..997f8b901f 100644 --- a/pallets/nonfungible/src/erc.rs +++ b/pallets/nonfungible/src/erc.rs @@ -718,7 +718,7 @@ fn get_token_permission( .map_err(|_| Error::Revert("no permissions for collection".into()))?; let a = token_property_permissions .get(key) - .map(Clone::clone) + .cloned() .ok_or_else(|| { let key = String::from_utf8(key.clone().into_inner()).unwrap_or_default(); Error::Revert(alloc::format!("no permission for key {key}")) diff --git a/pallets/nonfungible/src/lib.rs b/pallets/nonfungible/src/lib.rs index 0ea6459446..8db862a582 100644 --- a/pallets/nonfungible/src/lib.rs +++ b/pallets/nonfungible/src/lib.rs @@ -746,7 +746,7 @@ impl Pallet { .ok_or(ArithmeticError::Overflow)?; ensure!( - balance_to < collection.limits.account_token_ownership_limit(), + balance_to <= collection.limits.account_token_ownership_limit(), >::AccountTokenLimitExceeded, ); diff --git a/pallets/refungible/src/erc.rs b/pallets/refungible/src/erc.rs index 441d0bb9f8..56f97a4a08 100644 --- a/pallets/refungible/src/erc.rs +++ b/pallets/refungible/src/erc.rs @@ -761,7 +761,7 @@ fn get_token_permission( .map_err(|_| Error::Revert("no permissions for collection".into()))?; let a = token_property_permissions .get(key) - .map(Clone::clone) + .cloned() .ok_or_else(|| { let key = String::from_utf8(key.clone().into_inner()).unwrap_or_default(); Error::Revert(alloc::format!("no permission for key {key}")) diff --git a/pallets/refungible/src/lib.rs b/pallets/refungible/src/lib.rs index 47966766a6..bb89ba0d2d 100644 --- a/pallets/refungible/src/lib.rs +++ b/pallets/refungible/src/lib.rs @@ -679,7 +679,7 @@ impl Pallet { .checked_add(1) .ok_or(ArithmeticError::Overflow)?; ensure!( - account_balance_to < collection.limits.account_token_ownership_limit(), + account_balance_to <= collection.limits.account_token_ownership_limit(), >::AccountTokenLimitExceeded, ); diff --git a/runtime/common/config/ethereum.rs b/runtime/common/config/ethereum.rs index 6c8e5d58d0..6e7d8c45af 100644 --- a/runtime/common/config/ethereum.rs +++ b/runtime/common/config/ethereum.rs @@ -92,6 +92,7 @@ impl pallet_evm::Config for Runtime { type OnChargeTransaction = pallet_evm_transaction_payment::WrappedEVMCurrencyAdapter; type FindAuthor = EthereumFindAuthor; + type SuicideQuickClearLimit = ConstU32<0>; type Timestamp = crate::Timestamp; type WeightInfo = pallet_evm::weights::SubstrateWeight; type GasLimitPovSizeRatio = ProofSizePerGas; diff --git a/runtime/common/config/governance/fellowship.rs b/runtime/common/config/governance/fellowship.rs index ebeeedd09e..13b90dc0ff 100644 --- a/runtime/common/config/governance/fellowship.rs +++ b/runtime/common/config/governance/fellowship.rs @@ -1,5 +1,6 @@ use pallet_gov_origins::Origin as GovOrigins; use pallet_ranked_collective::{Config as RankedConfig, Rank, TallyOf}; +use sp_runtime::traits::ReplaceWithDefault; use super::*; use crate::{ @@ -63,17 +64,18 @@ impl pallet_referenda::Config for Runtime { impl RankedConfig for Runtime { type WeightInfo = pallet_ranked_collective::weights::SubstrateWeight; type RuntimeEvent = RuntimeEvent; - // Promotion is by any of: - // - Council member. - // - Technical committee member. + type AddOrigin = FellowshipAddOrigin; + type RemoveOrigin = FellowshipPromoteDemoteOrigin; + type ExchangeOrigin = FellowshipPromoteDemoteOrigin; + type MemberSwappedHandler = (); type PromoteOrigin = FellowshipPromoteDemoteOrigin; - // Demotion is by any of: - // - Council member. - // - Technical committee member. type DemoteOrigin = FellowshipPromoteDemoteOrigin; type Polls = FellowshipReferenda; type MinRankOfClass = ClassToRankMapper; type VoteWeight = pallet_ranked_collective::Geometric; + + #[cfg(feature = "runtime-benchmarks")] + type BenchmarkSetup = (); } pub struct EnsureFellowshipProposition; @@ -96,6 +98,14 @@ where } } +pub type FellowshipAddOrigin = EitherOf< + EnsureRoot, + EitherOf< + MapSuccess>, + MapSuccess>, + >, +>; + pub type FellowshipPromoteDemoteOrigin = EitherOf< MapSuccess, Replace>>, MapSuccess>>, diff --git a/runtime/common/config/governance/financial_council.rs b/runtime/common/config/governance/financial_council.rs new file mode 100644 index 0000000000..a9947464e7 --- /dev/null +++ b/runtime/common/config/governance/financial_council.rs @@ -0,0 +1,56 @@ +use super::*; + +parameter_types! { + pub FinancialCouncilMaxProposals: u32 = 100; + pub FinancialCouncilMaxMembers: u32 = 100; +} + +#[cfg(not(feature = "gov-test-timings"))] +use crate::governance_timings::financial_council as financial_council_timings; + +#[cfg(feature = "gov-test-timings")] +pub mod financial_council_timings { + use super::*; + + parameter_types! { + pub FinancialCouncilMotionDuration: BlockNumber = 35; + } +} + +pub type FinancialCollective = pallet_collective::Instance3; +impl pallet_collective::Config for Runtime { + type RuntimeOrigin = RuntimeOrigin; + type Proposal = RuntimeCall; + type RuntimeEvent = RuntimeEvent; + type MotionDuration = financial_council_timings::FinancialCouncilMotionDuration; + type MaxProposals = FinancialCouncilMaxProposals; + type MaxMembers = FinancialCouncilMaxMembers; + type DefaultVote = pallet_collective::PrimeDefaultVote; + type WeightInfo = pallet_collective::weights::SubstrateWeight; + type SetMembersOrigin = EnsureRoot; + type MaxProposalWeight = MaxCollectivesProposalWeight; +} + +pub type FinancialCollectiveMembership = pallet_membership::Instance3; +impl pallet_membership::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type AddOrigin = RootOrMoreThanHalfCouncil; + type RemoveOrigin = RootOrMoreThanHalfCouncil; + type SwapOrigin = RootOrMoreThanHalfCouncil; + type ResetOrigin = EnsureRoot; + type PrimeOrigin = RootOrMoreThanHalfCouncil; + type MembershipInitialized = FinancialCouncil; + type MembershipChanged = FinancialCouncil; + type MaxMembers = FinancialCouncilMaxMembers; + type WeightInfo = pallet_membership::weights::SubstrateWeight; +} + +pub type FinancialCouncilMember = pallet_collective::EnsureMember; + +pub type RootOrFinancialCouncilMember = + EitherOfDiverse, FinancialCouncilMember>; + +pub type AllFinancialCouncil = + pallet_collective::EnsureProportionAtLeast; + +pub type RootOrAllFinancialCouncil = EitherOfDiverse, AllFinancialCouncil>; diff --git a/runtime/common/config/governance/mod.rs b/runtime/common/config/governance/mod.rs index 58521a20e7..a4ef213f62 100644 --- a/runtime/common/config/governance/mod.rs +++ b/runtime/common/config/governance/mod.rs @@ -36,8 +36,8 @@ pub use up_common::{ }; use crate::{ - Balances, Council, OriginCaller, Preimage, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, - Scheduler, TechnicalCommittee, Treasury, + Balances, Council, FinancialCouncil, OriginCaller, Preimage, Runtime, RuntimeCall, + RuntimeEvent, RuntimeOrigin, Scheduler, TechnicalCommittee, Treasury, }; pub mod council; @@ -49,6 +49,9 @@ pub use democracy::*; pub mod technical_committee; pub use technical_committee::*; +pub mod financial_council; +pub use financial_council::*; + pub mod fellowship; pub use fellowship::*; diff --git a/runtime/common/config/orml.rs b/runtime/common/config/orml.rs index d98d82ab57..48a0ad3d00 100644 --- a/runtime/common/config/orml.rs +++ b/runtime/common/config/orml.rs @@ -19,7 +19,7 @@ use frame_system::EnsureSigned; use orml_traits::{location::AbsoluteReserveProvider, parameter_type_with_key}; use pallet_foreign_assets::CurrencyIdConvert; use sp_runtime::traits::Convert; -use staging_xcm::latest::{Junction::*, Junctions::*, MultiLocation, Weight}; +use staging_xcm::latest::prelude::*; use staging_xcm_executor::XcmExecutor; use up_common::{ constants::*, @@ -44,18 +44,18 @@ parameter_types! { } parameter_type_with_key! { - pub ParachainMinFee: |_location: MultiLocation| -> Option { + pub ParachainMinFee: |_location: Location| -> Option { Some(100_000_000_000) }; } -pub struct AccountIdToMultiLocation; -impl Convert for AccountIdToMultiLocation { - fn convert(account: AccountId) -> MultiLocation { - X1(AccountId32 { +pub struct AccountIdToLocation; +impl Convert for AccountIdToLocation { + fn convert(account: AccountId) -> Location { + AccountId32 { network: None, id: account.into(), - }) + } .into() } } @@ -75,14 +75,16 @@ impl orml_xtokens::Config for Runtime { type Balance = Balance; type CurrencyId = CollectionId; type CurrencyIdConvert = CurrencyIdConvert; - type AccountIdToMultiLocation = AccountIdToMultiLocation; + type AccountIdToLocation = AccountIdToLocation; type SelfLocation = SelfLocation; type XcmExecutor = XcmExecutor>; type Weigher = Weigher; type BaseXcmWeight = BaseXcmWeight; type MaxAssetsForTransfer = MaxAssetsForTransfer; type MinXcmFee = ParachainMinFee; - type MultiLocationsFilter = Everything; + type LocationsFilter = Everything; type ReserveProvider = AbsoluteReserveProvider; type UniversalLocation = UniversalLocation; + type RateLimiter = (); + type RateLimiterId = (); } diff --git a/runtime/common/config/pallets/foreign_asset.rs b/runtime/common/config/pallets/foreign_asset.rs index 60924bdea2..b57ae0f15c 100644 --- a/runtime/common/config/pallets/foreign_asset.rs +++ b/runtime/common/config/pallets/foreign_asset.rs @@ -24,7 +24,7 @@ pub struct LocationToCrossAccountId; impl staging_xcm_executor::traits::ConvertLocation for LocationToCrossAccountId { - fn convert_location(location: &MultiLocation) -> Option { + fn convert_location(location: &Location) -> Option { LocationToAccountId::convert_location(location) .map(ConfigCrossAccountId::from_sub) .or_else(|| { @@ -40,10 +40,10 @@ impl pallet_foreign_assets::Config for Runtime { type RuntimeEvent = RuntimeEvent; #[cfg(feature = "governance")] - type ForceRegisterOrigin = governance::RootOrTechnicalCommitteeMember; + type ManagerOrigin = governance::RootOrFinancialCouncilMember; #[cfg(not(feature = "governance"))] - type ForceRegisterOrigin = EnsureRoot; + type ManagerOrigin = EnsureRoot; type PalletId = ForeignAssetPalletId; type SelfLocation = SelfLocation; diff --git a/runtime/common/config/parachain.rs b/runtime/common/config/parachain.rs index eeaca59bb1..2b9cac95a6 100644 --- a/runtime/common/config/parachain.rs +++ b/runtime/common/config/parachain.rs @@ -14,12 +14,14 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -use frame_support::{parameter_types, weights::Weight}; +use cumulus_primitives_core::AggregateMessageOrigin; +use frame_support::{parameter_types, traits::EnqueueWithOrigin, weights::Weight}; use up_common::constants::*; -use crate::{DmpQueue, Runtime, RuntimeEvent, XcmpQueue}; +use crate::{MessageQueue, Runtime, RuntimeEvent, XcmpQueue}; parameter_types! { + pub const RelayMsgOrigin: AggregateMessageOrigin = AggregateMessageOrigin::Parent; pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); } @@ -28,13 +30,9 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SelfParaId = staging_parachain_info::Pallet; type OnSystemEvent = (); - // type DownwardMessageHandlers = cumulus_primitives_utility::UnqueuedDmpAsParent< - // MaxDownwardMessageWeight, - // XcmExecutor, - // Call, - // >; + type WeightInfo = cumulus_pallet_parachain_system::weights::SubstrateWeight; type OutboundXcmpMessageSource = XcmpQueue; - type DmpMessageHandler = DmpQueue; + type DmpQueue = EnqueueWithOrigin; type ReservedDmpWeight = ReservedDmpWeight; type ReservedXcmpWeight = ReservedXcmpWeight; type XcmpMessageHandler = XcmpQueue; diff --git a/runtime/common/config/substrate.rs b/runtime/common/config/substrate.rs index 1977555f8c..5f54b46556 100644 --- a/runtime/common/config/substrate.rs +++ b/runtime/common/config/substrate.rs @@ -15,6 +15,7 @@ // along with Unique Network. If not, see . use frame_support::{ + derive_impl, dispatch::DispatchClass, ord_parameter_types, parameter_types, traits::{ @@ -42,8 +43,8 @@ use up_common::{constants::*, types::*}; use crate::{ runtime_common::DealWithFees, Balances, Block, OriginCaller, PalletInfo, Runtime, RuntimeCall, - RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, SS58Prefix, System, - Treasury, Version, + RuntimeEvent, RuntimeFreezeReason, RuntimeHoldReason, RuntimeOrigin, RuntimeTask, SS58Prefix, + System, Treasury, Version, }; parameter_types! { @@ -72,13 +73,12 @@ parameter_types! { .build_or_panic(); } +#[derive_impl(frame_system::config_preludes::ParaChainDefaultConfig as frame_system::DefaultConfig)] impl frame_system::Config for Runtime { /// The data to be stored in an account. type AccountData = pallet_balances::AccountData; /// The identifier used to distinguish between accounts. type AccountId = AccountId; - /// The basic call filter to use in dispatchable. - type BaseCallFilter = Everything; /// Maximum number of block number to block hash mappings to keep (oldest pruned first). type BlockHashCount = BlockHashCount; /// The block type. @@ -87,12 +87,8 @@ impl frame_system::Config for Runtime { type BlockLength = RuntimeBlockLength; /// The weight of the overhead invoked on the block import process, independent of the extrinsics included in that block. type BlockWeights = RuntimeBlockWeights; - /// The aggregated dispatch type that is available for extrinsics. - type RuntimeCall = RuntimeCall; /// The weight of database operations that the runtime can invoke. type DbWeight = RocksDbWeight; - /// The ubiquitous event type. - type RuntimeEvent = RuntimeEvent; /// The type for hashing blocks and tries. type Hash = Hash; /// The hashing algorithm used. @@ -101,10 +97,6 @@ impl frame_system::Config for Runtime { type Nonce = Nonce; /// The lookup mechanism to get account ID from whatever is passed in dispatchers. type Lookup = AccountIdLookup; - /// What to do if an account is fully reaped from the system. - type OnKilledAccount = (); - /// What to do if a new account is created. - type OnNewAccount = (); type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; /// The ubiquitous origin type. type RuntimeOrigin = RuntimeOrigin; @@ -136,6 +128,7 @@ impl pallet_state_trie_migration::Config for Runtime { // Only root can perform this migration type SignedFilter = EnsureSignedBy; type MaxKeyLen = MigrationMaxKeyLen; + type RuntimeHoldReason = RuntimeHoldReason; } impl pallet_timestamp::Config for Runtime { @@ -176,7 +169,6 @@ impl pallet_balances::Config for Runtime { type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; type FreezeIdentifier = [u8; 16]; - type MaxHolds = MaxHolds; type MaxFreezes = MaxFreezes; } diff --git a/runtime/common/config/xcm.rs b/runtime/common/config/xcm.rs index 506598e7c5..e7bdc32cf1 100644 --- a/runtime/common/config/xcm.rs +++ b/runtime/common/config/xcm.rs @@ -14,57 +14,58 @@ // You should have received a copy of the GNU General Public License // along with Unique Network. If not, see . -use cumulus_primitives_core::ParaId; +use cumulus_primitives_core::{AggregateMessageOrigin, ParaId}; use frame_support::{ parameter_types, - traits::{ConstU32, Everything, Get, Nothing, ProcessMessageError}, + traits::{ + ConstU32, EnqueueWithOrigin, Everything, Get, Nothing, ProcessMessageError, TransformOrigin, + }, }; use frame_system::EnsureRoot; use orml_traits::location::AbsoluteReserveProvider; use orml_xcm_support::MultiNativeAsset; use pallet_foreign_assets::FreeForAll; use pallet_xcm::XcmPassthrough; +use parachains_common::message_queue::{NarrowOriginToSibling, ParaIdToSibling}; use polkadot_parachain_primitives::primitives::Sibling; use polkadot_runtime_common::xcm_sender::NoPriceForMessageDelivery; use sp_std::marker::PhantomData; -use staging_xcm::{ - latest::{prelude::*, MultiLocation, Weight}, - v3::Instruction, -}; +use staging_xcm::latest::prelude::*; use staging_xcm_builder::{ - AccountId32Aliases, EnsureXcmOrigin, FixedWeightBounds, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, + AccountId32Aliases, EnsureXcmOrigin, FixedWeightBounds, FrameTransactionalProcessor, + ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, }; use staging_xcm_executor::{ traits::{Properties, ShouldExecute}, XcmExecutor, }; -use up_common::types::AccountId; +use up_common::{constants::MAXIMUM_BLOCK_WEIGHT, types::AccountId}; #[cfg(feature = "governance")] use crate::runtime_common::config::governance; use crate::{ - xcm_barrier::Barrier, AllPalletsWithSystem, Balances, ForeignAssets, ParachainInfo, - ParachainSystem, PolkadotXcm, RelayNetwork, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, - XcmpQueue, + runtime_common::config::parachain::RelayMsgOrigin, xcm_barrier::Barrier, AllPalletsWithSystem, + Balances, ForeignAssets, MessageQueue, ParachainInfo, ParachainSystem, PolkadotXcm, + RelayNetwork, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, XcmpQueue, }; parameter_types! { - pub const RelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayLocation: Location = Location::parent(); pub RelayOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub UniversalLocation: InteriorMultiLocation = ( + pub UniversalLocation: InteriorLocation = ( GlobalConsensus(crate::RelayNetwork::get()), Parachain(ParachainInfo::get().into()), ).into(); - pub SelfLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(ParachainInfo::get().into()))); + pub SelfLocation: Location = Location::new(1, Parachain(ParachainInfo::get().into())); // One XCM operation is 1_000_000 weight - almost certainly a conservative estimate. pub UnitWeightCost: Weight = Weight::from_parts(1_000_000, 1000); // ? pub const MaxInstructions: u32 = 100; + pub const MessageQueueServiceWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); // TODO } -/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// Type for specifying how a `Location` can be converted into an `AccountId`. This is used /// when determining ownership of accounts for asset transacting and when attempting to use XCM /// `Transact` in order to determine the dispatch Origin. pub type LocationToAccountId = ( @@ -111,7 +112,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( pub trait TryPass { fn try_pass( - origin: &MultiLocation, + origin: &Location, message: &mut [Instruction], ) -> Result<(), ProcessMessageError>; } @@ -119,7 +120,7 @@ pub trait TryPass { #[impl_trait_for_tuples::impl_for_tuples(30)] impl TryPass for Tuple { fn try_pass( - origin: &MultiLocation, + origin: &Location, message: &mut [Instruction], ) -> Result<(), ProcessMessageError> { for_tuples!( #( @@ -143,7 +144,7 @@ where Allow: ShouldExecute, { fn should_execute( - origin: &MultiLocation, + origin: &Location, message: &mut [Instruction], max_weight: Weight, properties: &mut Properties, @@ -190,11 +191,7 @@ where type CallDispatcher = RuntimeCall; type SafeCallFilter = Nothing; type Aliasers = Nothing; -} - -#[cfg(feature = "runtime-benchmarks")] -parameter_types! { - pub ReachableDest: Option = Some(Parent.into()); + type TransactionalProcessor = FrameTransactionalProcessor; } impl pallet_xcm::Config for Runtime { @@ -221,21 +218,58 @@ impl pallet_xcm::Config for Runtime { type AdminOrigin = EnsureRoot; type MaxRemoteLockConsumers = ConstU32<0>; type RemoteLockConsumerIdentifier = (); - #[cfg(feature = "runtime-benchmarks")] - type ReachableDest = ReachableDest; +} + +#[cfg(feature = "runtime-benchmarks")] +impl pallet_xcm::benchmarking::Config for Runtime { + type DeliveryHelper = (); + + fn reachable_dest() -> Option { + Some(Parent.into()) + } + + fn get_asset() -> Asset { + (Location::here(), 1_000_000_000_000_000_000u128).into() + } } impl cumulus_pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor>; } + +impl pallet_message_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type WeightInfo = pallet_message_queue::weights::SubstrateWeight; + + #[cfg(not(feature = "runtime-benchmarks"))] + type MessageProcessor = staging_xcm_builder::ProcessXcmMessage< + AggregateMessageOrigin, + XcmExecutor>, + RuntimeCall, + >; + + #[cfg(feature = "runtime-benchmarks")] + type MessageProcessor = + pallet_message_queue::mock_helpers::NoopMessageProcessor; + + type Size = u32; + // The XCMP queue pallet is only ever able to handle the `Sibling(ParaId)` origin: + type QueueChangeHandler = NarrowOriginToSibling; + type QueuePausedQuery = NarrowOriginToSibling; + type HeapSize = ConstU32<{ 64 * 1024 }>; + type MaxStale = ConstU32<8>; + type ServiceWeight = MessageQueueServiceWeight; +} + impl cumulus_pallet_xcmp_queue::Config for Runtime { - type WeightInfo = (); + type WeightInfo = cumulus_pallet_xcmp_queue::weights::SubstrateWeight; type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor>; + type XcmpQueue = TransformOrigin; + type MaxInboundSuspended = ConstU32<1000>; + type ChannelInfo = ParachainSystem; type VersionWrapper = PolkadotXcm; - type ExecuteOverweightOrigin = frame_system::EnsureRoot; #[cfg(feature = "governance")] type ControllerOrigin = governance::RootOrTechnicalCommitteeMember; @@ -249,6 +283,6 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { impl cumulus_pallet_dmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; - type XcmExecutor = XcmExecutor>; - type ExecuteOverweightOrigin = frame_system::EnsureRoot; + type WeightInfo = cumulus_pallet_dmp_queue::weights::SubstrateWeight; + type DmpSink = EnqueueWithOrigin; } diff --git a/runtime/common/construct_runtime.rs b/runtime/common/construct_runtime.rs index 19da6ab6df..a3137c8c96 100644 --- a/runtime/common/construct_runtime.rs +++ b/runtime/common/construct_runtime.rs @@ -80,6 +80,12 @@ macro_rules! construct_runtime { #[cfg(feature = "governance")] Scheduler: pallet_scheduler = 49, + #[cfg(feature = "governance")] + FinancialCouncil: pallet_collective:: = 97, + + #[cfg(feature = "governance")] + FinancialCouncilMembership: pallet_membership:: = 98, + #[cfg(feature = "governance")] Origins: pallet_gov_origins = 99, @@ -88,6 +94,7 @@ macro_rules! construct_runtime { PolkadotXcm: pallet_xcm = 51, CumulusXcm: cumulus_pallet_xcm = 52, DmpQueue: cumulus_pallet_dmp_queue = 53, + MessageQueue: pallet_message_queue = 54, // Unique Pallets Inflation: pallet_inflation = 60, diff --git a/runtime/common/mod.rs b/runtime/common/mod.rs index 2c9793dd9a..10e5d1c461 100644 --- a/runtime/common/mod.rs +++ b/runtime/common/mod.rs @@ -107,21 +107,7 @@ pub type Executive = frame_executive::Executive< type NegativeImbalance = >::NegativeImbalance; -pub struct DealWithFees; -impl OnUnbalanced for DealWithFees { - fn on_unbalanceds(mut fees_then_tips: impl Iterator) { - if let Some(fees) = fees_then_tips.next() { - // for fees, 100% to treasury - let mut split = fees.ration(100, 0); - if let Some(tips) = fees_then_tips.next() { - // for tips, if any, 100% to treasury - tips.ration_merge_into(100, 0, &mut split); - } - Treasury::on_unbalanced(split.0); - // Author::on_unbalanced(split.1); - } - } -} +pub(crate) type DealWithFees = Treasury; pub struct RelayChainBlockNumberProvider(sp_std::marker::PhantomData); diff --git a/runtime/common/runtime_apis.rs b/runtime/common/runtime_apis.rs index 6997e4f1fe..71c8d280e2 100644 --- a/runtime/common/runtime_apis.rs +++ b/runtime/common/runtime_apis.rs @@ -40,9 +40,10 @@ macro_rules! impl_common_runtime_apis { Permill, traits::{Block as BlockT}, transaction_validity::{TransactionSource, TransactionValidity}, - ApplyExtrinsicResult, DispatchError, + ApplyExtrinsicResult, DispatchError, ExtrinsicInclusionMode, }; use frame_support::{ + genesis_builder_helper::{build_config, create_default_config}, pallet_prelude::Weight, traits::OnFinalize, }; @@ -243,7 +244,7 @@ macro_rules! impl_common_runtime_apis { Executive::execute_block(block) } - fn initialize_block(header: &::Header) { + fn initialize_block(header: &::Header) -> ExtrinsicInclusionMode { Executive::initialize_block(header) } } @@ -442,7 +443,7 @@ macro_rules! impl_common_runtime_apis { ) } - fn extrinsic_filter(xts: Vec<::Extrinsic>) -> Vec { + fn extrinsic_filter(xts: Vec<::Extrinsic>) -> Vec { xts.into_iter().filter_map(|xt| match xt.0.function { RuntimeCall::Ethereum(pallet_ethereum::Call::transact { transaction }) => Some(transaction), _ => None @@ -535,9 +536,10 @@ macro_rules! impl_common_runtime_apis { ) { use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList}; use frame_support::traits::StorageInfoTrait; + use pallet_xcm::benchmarking::Pallet as PalletXcmBenchmarks; let mut list = Vec::::new(); - list_benchmark!(list, extra, pallet_xcm, PolkadotXcm); + list_benchmark!(list, extra, pallet_xcm, PalletXcmBenchmarks::); list_benchmark!(list, extra, pallet_evm_migration, EvmMigration); list_benchmark!(list, extra, pallet_common, Common); @@ -578,6 +580,7 @@ macro_rules! impl_common_runtime_apis { ) -> Result, sp_runtime::RuntimeString> { use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark}; use sp_storage::TrackedStorageKey; + use pallet_xcm::benchmarking::Pallet as PalletXcmBenchmarks; let allowlist: Vec = vec![ // Total Issuance @@ -601,7 +604,8 @@ macro_rules! impl_common_runtime_apis { let mut batches = Vec::::new(); let params = (&config, &allowlist); - add_benchmark!(params, batches, pallet_xcm, PolkadotXcm); + + add_benchmark!(params, batches, pallet_xcm, PalletXcmBenchmarks::); add_benchmark!(params, batches, pallet_evm_migration, EvmMigration); add_benchmark!(params, batches, pallet_common, Common); @@ -707,6 +711,16 @@ macro_rules! impl_common_runtime_apis { ) } } + + impl sp_genesis_builder::GenesisBuilder for Runtime { + fn create_default_config() -> Vec { + create_default_config::() + } + + fn build_config(config: Vec) -> sp_genesis_builder::Result { + build_config::(config) + } + } } } } diff --git a/runtime/common/sponsoring.rs b/runtime/common/sponsoring.rs index 3dccc7e02f..36acb5ea18 100644 --- a/runtime/common/sponsoring.rs +++ b/runtime/common/sponsoring.rs @@ -341,12 +341,11 @@ impl SponsorshipPredict for UniqueSponsorshipPredict { }; if let Some(last_tx_block) = last_tx_block { - return Some( + return Some(u64::from( last_tx_block .saturating_add(limit.into()) - .saturating_sub(block_number) - .into(), - ); + .saturating_sub(block_number), + )); } let token_exists = match collection.mode { diff --git a/runtime/common/tests/xcm.rs b/runtime/common/tests/xcm.rs index 444cec6513..d3b8521d74 100644 --- a/runtime/common/tests/xcm.rs +++ b/runtime/common/tests/xcm.rs @@ -22,7 +22,12 @@ use staging_xcm::{ }; use super::{last_events, new_test_ext, AccountId}; -use crate::{PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin}; +use crate::{ + runtime_common::config::xcm::XcmExecutorConfig, PolkadotXcm, Runtime, RuntimeCall, + RuntimeEvent, RuntimeOrigin, +}; + +type XcmExecutor = staging_xcm_executor::XcmExecutor>; const ALICE: AccountId = AccountId::new([0u8; 32]); const BOB: AccountId = AccountId::new([1u8; 32]); @@ -32,35 +37,37 @@ const INITIAL_BALANCE: u128 = 10_000_000_000_000_000_000_000; // 10_000 UNQ #[test] pub fn xcm_transact_is_forbidden() { new_test_ext(vec![(ALICE, INITIAL_BALANCE)]).execute_with(|| { - PolkadotXcm::execute( - RuntimeOrigin::signed(ALICE), - Box::new(VersionedXcm::from(Xcm(vec![Transact { - origin_kind: OriginKind::Native, - require_weight_at_most: Weight::from_parts(1000, 1000), - call: RuntimeCall::Balances( - pallet_balances::Call::::transfer_keep_alive { - dest: BOB.into(), - value: INITIAL_BALANCE / 2, - }, - ) - .encode() - .into(), - }]))), - Weight::from_parts(1001000, 2000), - ) - .expect( - "XCM execute must succeed, the error should be in the `PolkadotXcm::Attempted` event", - ); + let max_weight = Weight::from_parts(1001000, 2000); - let xcm_event = &last_events(1)[0]; - match xcm_event { - RuntimeEvent::PolkadotXcm(pallet_xcm::Event::::Attempted { - outcome: Outcome::Incomplete(_weight, Error::NoPermission), - }) => { /* Pass */ } - _ => panic!( - "Expected PolkadotXcm.Attempted(Incomplete(_weight, NoPermission)),\ - found: {xcm_event:#?}" - ), + let origin: Location = AccountId32 { + network: None, + id: *ALICE.as_ref(), } + .into(); + let message = Xcm(vec![Transact { + origin_kind: OriginKind::Native, + require_weight_at_most: Weight::from_parts(1000, 1000), + call: RuntimeCall::Balances(pallet_balances::Call::::transfer_keep_alive { + dest: BOB.into(), + value: INITIAL_BALANCE / 2, + }) + .encode() + .into(), + }]); + let mut hash = message.using_encoded(sp_io::hashing::blake2_256); + let weight_limit = max_weight; + let weight_credit = max_weight; + + let error = XcmExecutor::prepare_and_execute( + origin, + message, + &mut hash, + weight_limit, + weight_credit, + ) + .ensure_complete() + .expect_err("XCM Transact shouldn't succeed"); + + assert_eq!(error, Error::NoPermission); }); } diff --git a/runtime/common/weights/xcm.rs b/runtime/common/weights/xcm.rs index 1a60938db8..1c1db2e9ef 100644 --- a/runtime/common/weights/xcm.rs +++ b/runtime/common/weights/xcm.rs @@ -2,8 +2,8 @@ //! Autogenerated weights for pallet_xcm //! -//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 29.0.0 -//! DATE: 2023-11-29, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 35.0.1 +//! DATE: 2024-05-27, STEPS: `50`, REPEAT: 80, LOW RANGE: `[]`, HIGH RANGE: `[]` //! WORST CASE MAP SIZE: `1000000` //! EXECUTION: , WASM-EXECUTION: Compiled, CHAIN: None, DB CACHE: 1024 @@ -49,37 +49,44 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `278` // Estimated: `3743` - // Minimum execution time: 22_693_000 picoseconds. - Weight::from_parts(23_155_000, 3743) + // Minimum execution time: 18_977_000 picoseconds. + Weight::from_parts(19_535_000, 3743) .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn teleport_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `169` - // Estimated: `1489` - // Minimum execution time: 21_165_000 picoseconds. - Weight::from_parts(21_568_000, 1489) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) } - /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) - /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) fn reserve_transfer_assets() -> Weight { // Proof Size summary in bytes: - // Measured: `169` - // Estimated: `1489` - // Minimum execution time: 20_929_000 picoseconds. - Weight::from_parts(21_295_000, 1489) - .saturating_add(T::DbWeight::get().reads(1_u64)) + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + } + /// Storage: `Benchmark::Override` (r:0 w:0) + /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) } fn execute() -> Weight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_580_000 picoseconds. - Weight::from_parts(7_829_000, 0) + // Minimum execution time: 6_781_000 picoseconds. + Weight::from_parts(7_006_000, 0) } /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -87,8 +94,8 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 7_503_000 picoseconds. - Weight::from_parts(7_703_000, 0) + // Minimum execution time: 6_489_000 picoseconds. + Weight::from_parts(6_849_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1) @@ -97,8 +104,8 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_505_000 picoseconds. - Weight::from_parts(2_619_000, 0) + // Minimum execution time: 2_216_000 picoseconds. + Weight::from_parts(2_347_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1) @@ -121,8 +128,8 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `278` // Estimated: `3743` - // Minimum execution time: 26_213_000 picoseconds. - Weight::from_parts(26_652_000, 3743) + // Minimum execution time: 24_128_000 picoseconds. + Weight::from_parts(24_629_000, 3743) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(5_u64)) } @@ -144,8 +151,8 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `461` // Estimated: `3926` - // Minimum execution time: 27_648_000 picoseconds. - Weight::from_parts(28_084_000, 3926) + // Minimum execution time: 25_408_000 picoseconds. + Weight::from_parts(25_912_000, 3926) .saturating_add(T::DbWeight::get().reads(6_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } @@ -155,41 +162,41 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `0` // Estimated: `0` - // Minimum execution time: 2_529_000 picoseconds. - Weight::from_parts(2_650_000, 0) + // Minimum execution time: 2_270_000 picoseconds. + Weight::from_parts(2_379_000, 0) .saturating_add(T::DbWeight::get().writes(1_u64)) } - /// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) + /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_supported_version() -> Weight { // Proof Size summary in bytes: - // Measured: `196` - // Estimated: `11086` - // Minimum execution time: 15_973_000 picoseconds. - Weight::from_parts(16_358_000, 11086) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `192` + // Estimated: `13557` + // Minimum execution time: 17_924_000 picoseconds. + Weight::from_parts(18_191_000, 13557) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) + /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notifiers() -> Weight { // Proof Size summary in bytes: - // Measured: `200` - // Estimated: `11090` - // Minimum execution time: 16_027_000 picoseconds. - Weight::from_parts(16_585_000, 11090) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `196` + // Estimated: `13561` + // Minimum execution time: 17_998_000 picoseconds. + Weight::from_parts(18_412_000, 13561) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn already_notified_target() -> Weight { // Proof Size summary in bytes: // Measured: `207` - // Estimated: `13572` - // Minimum execution time: 16_817_000 picoseconds. - Weight::from_parts(17_137_000, 13572) - .saturating_add(T::DbWeight::get().reads(5_u64)) + // Estimated: `16047` + // Minimum execution time: 19_437_000 picoseconds. + Weight::from_parts(19_891_000, 16047) + .saturating_add(T::DbWeight::get().reads(6_u64)) } /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -207,33 +214,33 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { // Proof Size summary in bytes: // Measured: `345` // Estimated: `6285` - // Minimum execution time: 24_551_000 picoseconds. - Weight::from_parts(24_975_000, 6285) + // Minimum execution time: 24_038_000 picoseconds. + Weight::from_parts(24_400_000, 6285) .saturating_add(T::DbWeight::get().reads(7_u64)) .saturating_add(T::DbWeight::get().writes(3_u64)) } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn notify_target_migration_fail() -> Weight { // Proof Size summary in bytes: // Measured: `239` - // Estimated: `8654` - // Minimum execution time: 8_412_000 picoseconds. - Weight::from_parts(8_710_000, 8654) - .saturating_add(T::DbWeight::get().reads(3_u64)) + // Estimated: `11129` + // Minimum execution time: 10_817_000 picoseconds. + Weight::from_parts(11_066_000, 11129) + .saturating_add(T::DbWeight::get().reads(4_u64)) } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) fn migrate_version_notify_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `207` - // Estimated: `11097` - // Minimum execution time: 16_427_000 picoseconds. - Weight::from_parts(16_774_000, 11097) - .saturating_add(T::DbWeight::get().reads(4_u64)) + // Measured: `203` + // Estimated: `13568` + // Minimum execution time: 18_143_000 picoseconds. + Weight::from_parts(18_592_000, 13568) + .saturating_add(T::DbWeight::get().reads(5_u64)) .saturating_add(T::DbWeight::get().writes(2_u64)) } - /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) + /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) @@ -247,12 +254,51 @@ impl pallet_xcm::WeightInfo for SubstrateWeight { /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) fn migrate_and_notify_old_targets() -> Weight { // Proof Size summary in bytes: - // Measured: `349` - // Estimated: `11239` - // Minimum execution time: 30_394_000 picoseconds. - Weight::from_parts(30_868_000, 11239) - .saturating_add(T::DbWeight::get().reads(9_u64)) + // Measured: `345` + // Estimated: `13710` + // Minimum execution time: 31_871_000 picoseconds. + Weight::from_parts(32_364_000, 13710) + .saturating_add(T::DbWeight::get().reads(10_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } + /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) + /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) + /// Storage: `PolkadotXcm::Queries` (r:0 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn new_query() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `1621` + // Minimum execution time: 4_750_000 picoseconds. + Weight::from_parts(5_014_000, 1621) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(2_u64)) + } + /// Storage: `PolkadotXcm::Queries` (r:1 w:1) + /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) + fn take_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `7773` + // Estimated: `11238` + // Minimum execution time: 25_672_000 picoseconds. + Weight::from_parts(25_937_000, 11238) + .saturating_add(T::DbWeight::get().reads(1_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } + /// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1) + /// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`) + /// Storage: `ForeignAssets::ForeignAssetToCollection` (r:1 w:0) + /// Proof: `ForeignAssets::ForeignAssetToCollection` (`max_values`: None, `max_size`: Some(614), added: 3089, mode: `MaxEncodedLen`) + /// Storage: `ParachainInfo::ParachainId` (r:1 w:0) + /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) + fn claim_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `366` + // Estimated: `4079` + // Minimum execution time: 44_409_000 picoseconds. + Weight::from_parts(45_102_000, 4079) + .saturating_add(T::DbWeight::get().reads(3_u64)) + .saturating_add(T::DbWeight::get().writes(1_u64)) + } } diff --git a/runtime/opal/Cargo.toml b/runtime/opal/Cargo.toml index 517c7f796f..a81aa2ccf9 100644 --- a/runtime/opal/Cargo.toml +++ b/runtime/opal/Cargo.toml @@ -31,6 +31,7 @@ pov-estimate = [] runtime-benchmarks = [ "pallet-preimage/runtime-benchmarks", 'cumulus-pallet-parachain-system/runtime-benchmarks', + 'parachains-common/runtime-benchmarks', 'frame-benchmarking', 'frame-support/runtime-benchmarks', 'frame-system-benchmarking', @@ -61,6 +62,7 @@ runtime-benchmarks = [ 'pallet-unique/runtime-benchmarks', 'pallet-utility/runtime-benchmarks', 'pallet-xcm/runtime-benchmarks', + 'pallet-message-queue/runtime-benchmarks', 'polkadot-runtime-common/runtime-benchmarks', 'sp-runtime/runtime-benchmarks', 'staging-xcm-builder/runtime-benchmarks', @@ -73,6 +75,7 @@ std = [ 'cumulus-primitives-aura/std', 'cumulus-primitives-core/std', 'cumulus-primitives-utility/std', + 'parachains-common/std', 'frame-executive/std', 'frame-support/std', 'frame-system-rpc-runtime-api/std', @@ -127,6 +130,8 @@ std = [ 'pallet-treasury/std', 'pallet-unique/std', 'pallet-utility/std', + 'pallet-xcm/std', + 'pallet-message-queue/std', 'polkadot-runtime-common/std', 'serde', 'sp-api/std', @@ -141,6 +146,7 @@ std = [ 'sp-storage/std', 'sp-transaction-pool/std', 'sp-version/std', + 'sp-genesis-builder/std', 'staging-parachain-info/std', 'staging-xcm-builder/std', 'staging-xcm-executor/std', @@ -220,6 +226,7 @@ try-runtime = [ 'pallet-unique/try-runtime', 'pallet-utility/try-runtime', 'pallet-xcm/try-runtime', + 'pallet-message-queue/try-runtime', 'polkadot-runtime-common/try-runtime', 'staging-parachain-info/try-runtime', ] @@ -248,6 +255,7 @@ cumulus-primitives-aura = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-timestamp = { workspace = true } cumulus-primitives-utility = { workspace = true } +parachains-common = { workspace = true } frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } @@ -269,6 +277,7 @@ pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-treasury = { workspace = true } pallet-utility = { workspace = true } pallet-xcm = { workspace = true } +pallet-message-queue = { workspace = true } parity-scale-codec = { workspace = true } polkadot-parachain-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } @@ -287,6 +296,7 @@ sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } +sp-genesis-builder = { workspace = true } staging-parachain-info = { workspace = true } staging-xcm = { workspace = true } staging-xcm-builder = { workspace = true } diff --git a/runtime/opal/src/governance_timings.rs b/runtime/opal/src/governance_timings.rs index 78baad1682..f786f77d21 100644 --- a/runtime/opal/src/governance_timings.rs +++ b/runtime/opal/src/governance_timings.rs @@ -52,3 +52,11 @@ pub mod technical_committee { pub TechnicalMotionDuration: BlockNumber = 15 * MINUTES; } } + +pub mod financial_council { + use super::*; + + parameter_types! { + pub FinancialCouncilMotionDuration: BlockNumber = 15 * MINUTES; + } +} diff --git a/runtime/opal/src/lib.rs b/runtime/opal/src/lib.rs index 79d644e18e..46e46988be 100644 --- a/runtime/opal/src/lib.rs +++ b/runtime/opal/src/lib.rs @@ -49,7 +49,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("opal"), impl_name: create_runtime_str!("opal"), authoring_version: 1, - spec_version: 10030070, + spec_version: 10090072, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 3, diff --git a/runtime/opal/src/xcm_barrier.rs b/runtime/opal/src/xcm_barrier.rs index 4febe9adda..495f9f37a5 100644 --- a/runtime/opal/src/xcm_barrier.rs +++ b/runtime/opal/src/xcm_barrier.rs @@ -15,15 +15,15 @@ // along with Unique Network. If not, see . use frame_support::{match_types, traits::Everything}; -use staging_xcm::latest::{Junctions::*, MultiLocation}; +use staging_xcm::latest::{Junctions::*, Location}; use staging_xcm_builder::{ AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, TakeWeightCredit, TrailingSetTopicAsId, }; match_types! { - pub type ParentOnly: impl Contains = { - MultiLocation { parents: 1, interior: Here } + pub type ParentOnly: impl Contains = { + Location { parents: 1, interior: Here } }; } diff --git a/runtime/quartz/Cargo.toml b/runtime/quartz/Cargo.toml index 5ecec4362c..49715d7e53 100644 --- a/runtime/quartz/Cargo.toml +++ b/runtime/quartz/Cargo.toml @@ -24,6 +24,7 @@ quartz-runtime = ['app-promotion', 'collator-selection', 'foreign-assets', 'gove runtime-benchmarks = [ "pallet-preimage/runtime-benchmarks", 'cumulus-pallet-parachain-system/runtime-benchmarks', + 'parachains-common/runtime-benchmarks', 'frame-benchmarking', 'frame-support/runtime-benchmarks', 'frame-system-benchmarking', @@ -58,6 +59,7 @@ runtime-benchmarks = [ 'pallet-unique/runtime-benchmarks', 'pallet-utility/runtime-benchmarks', 'pallet-xcm/runtime-benchmarks', + 'pallet-message-queue/runtime-benchmarks', 'polkadot-runtime-common/runtime-benchmarks', 'sp-runtime/runtime-benchmarks', 'staging-xcm-builder/runtime-benchmarks', @@ -69,6 +71,7 @@ std = [ 'cumulus-pallet-xcmp-queue/std', 'cumulus-primitives-core/std', 'cumulus-primitives-utility/std', + 'parachains-common/std', 'frame-executive/std', 'frame-support/std', 'frame-system-rpc-runtime-api/std', @@ -127,6 +130,8 @@ std = [ 'pallet-treasury/std', 'pallet-unique/std', 'pallet-utility/std', + 'pallet-xcm/std', + 'pallet-message-queue/std', 'polkadot-runtime-common/std', 'serde', 'sp-api/std', @@ -140,6 +145,7 @@ std = [ 'sp-std/std', 'sp-transaction-pool/std', 'sp-version/std', + 'sp-genesis-builder/std', 'staging-parachain-info/std', 'staging-xcm-builder/std', 'staging-xcm-executor/std', @@ -210,6 +216,7 @@ try-runtime = [ 'pallet-unique/try-runtime', 'pallet-utility/try-runtime', 'pallet-xcm/try-runtime', + 'pallet-message-queue/try-runtime', 'polkadot-runtime-common/try-runtime', 'staging-parachain-info/try-runtime', ] @@ -236,6 +243,7 @@ cumulus-pallet-xcmp-queue = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-timestamp = { workspace = true } cumulus-primitives-utility = { workspace = true } +parachains-common = { workspace = true } frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } @@ -257,6 +265,7 @@ pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-treasury = { workspace = true } pallet-utility = { workspace = true } pallet-xcm = { workspace = true } +pallet-message-queue = { workspace = true } parity-scale-codec = { workspace = true } polkadot-parachain-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } @@ -275,6 +284,7 @@ sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } +sp-genesis-builder = { workspace = true } staging-parachain-info = { workspace = true } staging-xcm = { workspace = true } staging-xcm-builder = { workspace = true } diff --git a/runtime/quartz/src/governance_timings.rs b/runtime/quartz/src/governance_timings.rs index affc0cb2f9..72a8df1813 100644 --- a/runtime/quartz/src/governance_timings.rs +++ b/runtime/quartz/src/governance_timings.rs @@ -52,3 +52,11 @@ pub mod technical_committee { pub TechnicalMotionDuration: BlockNumber = 3 * DAYS; } } + +pub mod financial_council { + use super::*; + + parameter_types! { + pub FinancialCouncilMotionDuration: BlockNumber = 3 * DAYS; + } +} diff --git a/runtime/quartz/src/lib.rs b/runtime/quartz/src/lib.rs index a4b896e01e..2086eec4b4 100644 --- a/runtime/quartz/src/lib.rs +++ b/runtime/quartz/src/lib.rs @@ -51,7 +51,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_name: create_runtime_str!("quartz"), authoring_version: 1, - spec_version: 10030070, + spec_version: 10090072, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 3, @@ -64,7 +64,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { impl_name: create_runtime_str!("sapphire"), authoring_version: 1, - spec_version: 10030070, + spec_version: 10090072, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 3, diff --git a/runtime/quartz/src/xcm_barrier.rs b/runtime/quartz/src/xcm_barrier.rs index 905a66e016..9565d356cd 100644 --- a/runtime/quartz/src/xcm_barrier.rs +++ b/runtime/quartz/src/xcm_barrier.rs @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . use frame_support::{match_types, traits::Everything}; -use staging_xcm::latest::{Junctions::*, MultiLocation}; +use staging_xcm::latest::{Junctions::*, Location}; use staging_xcm_builder::{ AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, TakeWeightCredit, TrailingSetTopicAsId, @@ -24,13 +24,13 @@ use staging_xcm_builder::{ use crate::PolkadotXcm; match_types! { - pub type ParentOnly: impl Contains = { - MultiLocation { parents: 1, interior: Here } + pub type ParentOnly: impl Contains = { + Location { parents: 1, interior: Here } }; - pub type ParentOrSiblings: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(_) } + pub type ParentOrSiblings: impl Contains = { + Location { parents: 1, interior: Here } | + Location { parents: 1, interior: X1(_) } }; } diff --git a/runtime/tests/src/lib.rs b/runtime/tests/src/lib.rs index 616032682a..5e89014536 100644 --- a/runtime/tests/src/lib.rs +++ b/runtime/tests/src/lib.rs @@ -98,6 +98,14 @@ impl system::Config for Test { type SS58Prefix = SS58Prefix; type OnSetCode = (); type MaxConsumers = ConstU32<16>; + + type RuntimeTask = (); + + type SingleBlockMigrations = (); + type MultiBlockMigrator = (); + type PreInherents = (); + type PostInherents = (); + type PostTransactions = (); } parameter_types! { @@ -117,7 +125,6 @@ impl pallet_balances::Config for Test { type ReserveIdentifier = [u8; 8]; type MaxFreezes = MaxLocks; type FreezeIdentifier = [u8; 8]; - type MaxHolds = MaxLocks; type RuntimeHoldReason = RuntimeHoldReason; type RuntimeFreezeReason = RuntimeFreezeReason; } @@ -237,6 +244,7 @@ impl pallet_evm::Config for Test { type BlockHashMapping = SubstrateBlockHashMapping; type Timestamp = Timestamp; type GasLimitPovSizeRatio = ConstU64<0>; + type SuicideQuickClearLimit = ConstU32<0>; } impl pallet_evm_coder_substrate::Config for Test {} diff --git a/runtime/unique/Cargo.toml b/runtime/unique/Cargo.toml index b23c2e0d16..16ce1ac045 100644 --- a/runtime/unique/Cargo.toml +++ b/runtime/unique/Cargo.toml @@ -21,6 +21,8 @@ limit-testing = ['pallet-unique/limit-testing', 'up-data-structs/limit-testing'] pov-estimate = [] runtime-benchmarks = [ "pallet-preimage/runtime-benchmarks", + 'cumulus-pallet-parachain-system/runtime-benchmarks', + 'parachains-common/runtime-benchmarks', 'frame-benchmarking', 'frame-support/runtime-benchmarks', 'frame-system-benchmarking', @@ -55,6 +57,7 @@ runtime-benchmarks = [ 'pallet-unique/runtime-benchmarks', 'pallet-utility/runtime-benchmarks', 'pallet-xcm/runtime-benchmarks', + 'pallet-message-queue/runtime-benchmarks', 'polkadot-runtime-common/runtime-benchmarks', 'sp-runtime/runtime-benchmarks', 'staging-xcm-builder/runtime-benchmarks', @@ -67,6 +70,7 @@ std = [ 'cumulus-pallet-xcmp-queue/std', 'cumulus-primitives-core/std', 'cumulus-primitives-utility/std', + 'parachains-common/std', 'frame-executive/std', 'frame-support/std', 'frame-system-rpc-runtime-api/std', @@ -125,6 +129,8 @@ std = [ 'pallet-treasury/std', 'pallet-unique/std', 'pallet-utility/std', + 'pallet-xcm/std', + 'pallet-message-queue/std', 'polkadot-runtime-common/std', 'sp-api/std', 'sp-block-builder/std', @@ -137,6 +143,7 @@ std = [ 'sp-std/std', 'sp-transaction-pool/std', 'sp-version/std', + 'sp-genesis-builder/std', 'staging-parachain-info/std', 'staging-xcm-builder/std', 'staging-xcm-executor/std', @@ -212,6 +219,7 @@ try-runtime = [ 'pallet-unique/try-runtime', 'pallet-utility/try-runtime', 'pallet-xcm/try-runtime', + 'pallet-message-queue/try-runtime', 'polkadot-runtime-common/try-runtime', 'staging-parachain-info/try-runtime', ] @@ -239,6 +247,7 @@ cumulus-pallet-xcmp-queue = { workspace = true } cumulus-primitives-core = { workspace = true } cumulus-primitives-timestamp = { workspace = true } cumulus-primitives-utility = { workspace = true } +parachains-common = { workspace = true } frame-executive = { workspace = true } frame-support = { workspace = true } frame-system = { workspace = true } @@ -260,6 +269,7 @@ pallet-transaction-payment-rpc-runtime-api = { workspace = true } pallet-treasury = { workspace = true } pallet-utility = { workspace = true } pallet-xcm = { workspace = true } +pallet-message-queue = { workspace = true } parity-scale-codec = { workspace = true } polkadot-parachain-primitives = { workspace = true } polkadot-runtime-common = { workspace = true } @@ -278,6 +288,7 @@ sp-std = { workspace = true } sp-storage = { workspace = true } sp-transaction-pool = { workspace = true } sp-version = { workspace = true } +sp-genesis-builder = { workspace = true } staging-parachain-info = { workspace = true } staging-xcm = { workspace = true } staging-xcm-builder = { workspace = true } diff --git a/runtime/unique/src/governance_timings.rs b/runtime/unique/src/governance_timings.rs index affc0cb2f9..72a8df1813 100644 --- a/runtime/unique/src/governance_timings.rs +++ b/runtime/unique/src/governance_timings.rs @@ -52,3 +52,11 @@ pub mod technical_committee { pub TechnicalMotionDuration: BlockNumber = 3 * DAYS; } } + +pub mod financial_council { + use super::*; + + parameter_types! { + pub FinancialCouncilMotionDuration: BlockNumber = 3 * DAYS; + } +} diff --git a/runtime/unique/src/lib.rs b/runtime/unique/src/lib.rs index af4690f808..c460c66a44 100644 --- a/runtime/unique/src/lib.rs +++ b/runtime/unique/src/lib.rs @@ -49,7 +49,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("unique"), impl_name: create_runtime_str!("unique"), authoring_version: 1, - spec_version: 10030070, + spec_version: 10090072, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 3, diff --git a/runtime/unique/src/xcm_barrier.rs b/runtime/unique/src/xcm_barrier.rs index 905a66e016..9565d356cd 100644 --- a/runtime/unique/src/xcm_barrier.rs +++ b/runtime/unique/src/xcm_barrier.rs @@ -15,7 +15,7 @@ // along with Unique Network. If not, see . use frame_support::{match_types, traits::Everything}; -use staging_xcm::latest::{Junctions::*, MultiLocation}; +use staging_xcm::latest::{Junctions::*, Location}; use staging_xcm_builder::{ AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, TakeWeightCredit, TrailingSetTopicAsId, @@ -24,13 +24,13 @@ use staging_xcm_builder::{ use crate::PolkadotXcm; match_types! { - pub type ParentOnly: impl Contains = { - MultiLocation { parents: 1, interior: Here } + pub type ParentOnly: impl Contains = { + Location { parents: 1, interior: Here } }; - pub type ParentOrSiblings: impl Contains = { - MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(_) } + pub type ParentOrSiblings: impl Contains = { + Location { parents: 1, interior: Here } | + Location { parents: 1, interior: X1(_) } }; } diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000000..dd74b80852 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "nightly-2024-04-10" +components = ["clippy", "rust-analyzer", "rust-src", "rustfmt"] +targets = ["wasm32-unknown-unknown"]